summaryrefslogtreecommitdiff
path: root/dev-build
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-04 05:48:38 -0500
commitbfd9c39e4712ebdb442d4ca0673061faed1e70e1 (patch)
tree0d7a74b4463ee387f9cf9368ceb1b757f694f72a /dev-build
parentf716a9fe6455d39eef01e718aae68dae61c19704 (diff)
downloadbaldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.gz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.tar.xz
baldeagleos-repo-bfd9c39e4712ebdb442d4ca0673061faed1e70e1.zip
Revert "Adding metadata"
This reverts commit f716a9fe6455d39eef01e718aae68dae61c19704.
Diffstat (limited to 'dev-build')
-rw-r--r--dev-build/autoconf-archive/Manifest3
-rw-r--r--dev-build/autoconf-archive/autoconf-archive-2023.02.20.ebuild18
-rw-r--r--dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild25
-rw-r--r--dev-build/autoconf-archive/autoconf-archive-2024.10.16-r2.ebuild26
-rw-r--r--dev-build/autoconf-archive/files/autoconf-archive-2024.10.16-lua.patch209
-rw-r--r--dev-build/autoconf-archive/metadata.xml12
-rw-r--r--dev-build/autoconf-dickey/Manifest4
-rw-r--r--dev-build/autoconf-dickey/autoconf-dickey-2.52_p20250126.ebuild53
-rw-r--r--dev-build/autoconf-dickey/autoconf-dickey-2.52_p20260412.ebuild53
-rw-r--r--dev-build/autoconf-dickey/metadata.xml12
-rw-r--r--dev-build/autoconf-vanilla/Manifest7
-rw-r--r--dev-build/autoconf-vanilla/autoconf-vanilla-2.13-r1.ebuild69
-rw-r--r--dev-build/autoconf-vanilla/autoconf-vanilla-2.69-r2.ebuild103
-rw-r--r--dev-build/autoconf-vanilla/autoconf-vanilla-2.71-r2.ebuild93
-rw-r--r--dev-build/autoconf-vanilla/autoconf-vanilla-2.72-r2.ebuild104
-rw-r--r--dev-build/autoconf-vanilla/autoconf-vanilla-9999.ebuild104
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.13-destdir.patch26
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.13-gentoo.patch36
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.13-perl-5.26.patch12
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.13-test-fixes.patch18
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.61-darwin.patch11
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.69-fix-libtool-test.patch31
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.69-make-tests-bash5-compatible.patch63
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26-2.patch30
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26.patch28
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch35
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.71-conflicts.patch47
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.71-darwin.patch11
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.71-make-4.4.patch25
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.71-time.patch49
-rw-r--r--dev-build/autoconf-vanilla/files/autoconf-2.72-conflicts.patch49
-rw-r--r--dev-build/autoconf-vanilla/metadata.xml11
-rw-r--r--dev-build/autoconf-wrapper/Manifest2
-rw-r--r--dev-build/autoconf-wrapper/autoconf-wrapper-20231224.ebuild47
-rw-r--r--dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild47
-rw-r--r--dev-build/autoconf-wrapper/autoconf-wrapper-99999999.ebuild47
-rw-r--r--dev-build/autoconf-wrapper/metadata.xml13
-rw-r--r--dev-build/autoconf/Manifest10
-rw-r--r--dev-build/autoconf/autoconf-2.13-r9.ebuild68
-rw-r--r--dev-build/autoconf/autoconf-2.69-r11.ebuild90
-rw-r--r--dev-build/autoconf/autoconf-2.71-r9.ebuild105
-rw-r--r--dev-build/autoconf/autoconf-2.72-r7.ebuild106
-rw-r--r--dev-build/autoconf/autoconf-2.73-r2.ebuild113
-rw-r--r--dev-build/autoconf/autoconf-2.73.ebuild108
-rw-r--r--dev-build/autoconf/autoconf-9999.ebuild113
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-Clang-16-fixes-for-various-tests.patch331
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-K-R-decls-clang.patch346
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-destdir.patch26
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-gentoo.patch36
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-perl-5.26.patch12
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-skip-AC_FUNC_GETLOADAVG-test.patch20
-rw-r--r--dev-build/autoconf/files/autoconf-2.13-test-fixes.patch18
-rw-r--r--dev-build/autoconf/files/autoconf-2.61-darwin.patch11
-rw-r--r--dev-build/autoconf/files/autoconf-2.69-K-R-decls-clang.patch394
-rw-r--r--dev-build/autoconf/files/autoconf-2.69-fix-libtool-test.patch31
-rw-r--r--dev-build/autoconf/files/autoconf-2.69-make-tests-bash5-compatible.patch63
-rw-r--r--dev-build/autoconf/files/autoconf-2.69-perl-5.26-2.patch30
-rw-r--r--dev-build/autoconf/files/autoconf-2.69-perl-5.26.patch28
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-AC_C_BIGENDIAN-lto.patch50
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch35
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang-deux.patch94
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang.patch114
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-bash52.patch65
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-cxx11typo.patch31
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-darwin.patch11
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-make-4.4.patch25
-rw-r--r--dev-build/autoconf/files/autoconf-2.71-time.patch49
-rw-r--r--dev-build/autoconf/files/autoconf-2.72-Port-AC_SYS_LARGEFILE-to-CXX.patch87
-rw-r--r--dev-build/autoconf/files/autoconf-2.72-Port-C11-test-to-C-20.patch28
-rw-r--r--dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch104
-rw-r--r--dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch161
-rw-r--r--dev-build/autoconf/files/autoconf-2.73-darwin.patch13
-rw-r--r--dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch12
-rw-r--r--dev-build/autoconf/metadata.xml11
-rw-r--r--dev-build/automake-vanilla/Manifest7
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-1.11.6-r1.ebuild112
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-1.15.1-r1.ebuild127
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-1.16.5-r1.ebuild137
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-1.17-r1.ebuild124
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-1.18.1-r1.ebuild135
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-1.18.ebuild134
-rw-r--r--dev-build/automake-vanilla/automake-vanilla-9999.ebuild134
-rw-r--r--dev-build/automake-vanilla/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch77
-rw-r--r--dev-build/automake-vanilla/files/automake-1.11.6-perl-5.16.patch128
-rw-r--r--dev-build/automake-vanilla/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch37
-rw-r--r--dev-build/automake-vanilla/files/automake-1.16.5-apostrophe-in-tests.patch51
-rw-r--r--dev-build/automake-vanilla/files/automake-1.16.5-fix-instmany-python.sh-test.patch26
-rw-r--r--dev-build/automake-vanilla/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch26
-rw-r--r--dev-build/automake-vanilla/files/automake-1.16.5-py3-compile.patch73
-rw-r--r--dev-build/automake-vanilla/metadata.xml12
-rw-r--r--dev-build/automake-wrapper/Manifest2
-rw-r--r--dev-build/automake-wrapper/automake-wrapper-20240607.ebuild48
-rw-r--r--dev-build/automake-wrapper/automake-wrapper-20250528.ebuild48
-rw-r--r--dev-build/automake-wrapper/automake-wrapper-99999999.ebuild48
-rw-r--r--dev-build/automake-wrapper/metadata.xml13
-rw-r--r--dev-build/automake/Manifest5
-rw-r--r--dev-build/automake/automake-1.11.6-r5.ebuild97
-rw-r--r--dev-build/automake/automake-1.17-r3.ebuild157
-rw-r--r--dev-build/automake/automake-1.18.1-r1.ebuild152
-rw-r--r--dev-build/automake/automake-9999.ebuild152
-rw-r--r--dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch77
-rw-r--r--dev-build/automake/files/automake-1.11.6-perl-5.16.patch120
-rw-r--r--dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch31
-rw-r--r--dev-build/automake/files/automake-1.17-perl-5.41.patch25
-rw-r--r--dev-build/automake/files/automake-1.17-perl-no-werror.patch460
-rw-r--r--dev-build/automake/metadata.xml12
-rw-r--r--dev-build/b2/Manifest1
-rw-r--r--dev-build/b2/b2-5.4.2.ebuild72
-rw-r--r--dev-build/b2/files/b2-4.9.2-add-none-feature-options.patch22
-rw-r--r--dev-build/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch16
-rw-r--r--dev-build/b2/files/b2-4.9.2-disable_python_rpath.patch11
-rw-r--r--dev-build/b2/files/b2-5.4.2-no-implicit-march-flags.patch148
-rw-r--r--dev-build/b2/files/site-config.jam11
-rw-r--r--dev-build/b2/metadata.xml11
-rw-r--r--dev-build/bazel-buildtools/Manifest3
-rw-r--r--dev-build/bazel-buildtools/bazel-buildtools-8.2.1.ebuild69
-rw-r--r--dev-build/bazel-buildtools/bazel-buildtools-8.5.1.ebuild69
-rw-r--r--dev-build/bazel-buildtools/metadata.xml19
-rw-r--r--dev-build/bazelisk/Manifest4
-rw-r--r--dev-build/bazelisk/bazelisk-1.28.1.ebuild43
-rw-r--r--dev-build/bazelisk/bazelisk-1.29.0.ebuild43
-rw-r--r--dev-build/bazelisk/metadata.xml23
-rw-r--r--dev-build/bmake/Manifest4
-rw-r--r--dev-build/bmake/bmake-20251111.ebuild71
-rw-r--r--dev-build/bmake/bmake-20260406.ebuild75
-rw-r--r--dev-build/bmake/bmake-20260508.ebuild75
-rw-r--r--dev-build/bmake/files/bmake-20210206-tests.patch18
-rw-r--r--dev-build/bmake/files/bmake-20210314-mk-fixes.patch66
-rw-r--r--dev-build/bmake/files/bmake-20250618-lua-test.patch10
-rw-r--r--dev-build/bmake/metadata.xml12
-rw-r--r--dev-build/boost-m4/Manifest2
-rw-r--r--dev-build/boost-m4/boost-m4-0.4_p20221019-r1.ebuild32
-rw-r--r--dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild30
-rw-r--r--dev-build/boost-m4/files/boost-m4-0.4_p20221019-boost-1.70-system-header-only.patch26
-rw-r--r--dev-build/boost-m4/metadata.xml9
-rw-r--r--dev-build/cargo-make/Manifest238
-rw-r--r--dev-build/cargo-make/cargo-make-0.37.24.ebuild327
-rw-r--r--dev-build/cargo-make/metadata.xml12
-rw-r--r--dev-build/cmake/Manifest19
-rw-r--r--dev-build/cmake/cmake-4.1.4.ebuild334
-rw-r--r--dev-build/cmake/cmake-4.1.5.ebuild334
-rw-r--r--dev-build/cmake/cmake-4.2.4.ebuild333
-rw-r--r--dev-build/cmake/cmake-4.3.1.ebuild333
-rw-r--r--dev-build/cmake/cmake-4.3.2.ebuild333
-rw-r--r--dev-build/cmake/cmake-4.3.3.ebuild333
-rw-r--r--dev-build/cmake/cmake-9999.ebuild333
-rw-r--r--dev-build/cmake/files/50cmake-gentoo.el4
-rw-r--r--dev-build/cmake/files/cmake-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch35
-rw-r--r--dev-build/cmake/files/cmake-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch133
-rw-r--r--dev-build/cmake/files/cmake-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch54
-rw-r--r--dev-build/cmake/files/cmake-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch63
-rw-r--r--dev-build/cmake/files/cmake-3.30.3-cudahostld.patch23
-rw-r--r--dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch28
-rw-r--r--dev-build/cmake/files/cmake.vim3
-rw-r--r--dev-build/cmake/metadata.xml18
-rw-r--r--dev-build/corrosion/Manifest4
-rw-r--r--dev-build/corrosion/corrosion-0.5.2.ebuild41
-rw-r--r--dev-build/corrosion/corrosion-0.6.1-r1.ebuild62
-rw-r--r--dev-build/corrosion/files/corrosion-0.5.2_fix_tests.patch44
-rw-r--r--dev-build/corrosion/files/corrosion-0.6.1_cxxbridge-cmd_no_locked.patch20
-rw-r--r--dev-build/corrosion/metadata.xml15
-rw-r--r--dev-build/dagger/Manifest2
-rw-r--r--dev-build/dagger/dagger-0.9.8.ebuild21
-rw-r--r--dev-build/dagger/metadata.xml11
-rw-r--r--dev-build/dolphin-plugins-makefileactions/Manifest2
-rw-r--r--dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-25.12.3.ebuild60
-rw-r--r--dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-26.04.1.ebuild60
-rw-r--r--dev-build/dolphin-plugins-makefileactions/metadata.xml12
-rw-r--r--dev-build/fobis/Manifest2
-rw-r--r--dev-build/fobis/fobis-3.1.0.ebuild24
-rw-r--r--dev-build/fobis/fobis-3.2.1.ebuild25
-rw-r--r--dev-build/fobis/metadata.xml20
-rw-r--r--dev-build/fpm/Manifest8
-rw-r--r--dev-build/fpm/files/fpm-0.10.0_fpm_toml.patch23
-rw-r--r--dev-build/fpm/files/fpm-0.11.0_fpm_toml.patch23
-rw-r--r--dev-build/fpm/files/fpm-0.12.0_fpm_toml.patch23
-rw-r--r--dev-build/fpm/files/fpm-0.9.0_fpm_toml.patch22
-rw-r--r--dev-build/fpm/fpm-0.10.0.ebuild122
-rw-r--r--dev-build/fpm/fpm-0.11.0.ebuild122
-rw-r--r--dev-build/fpm/fpm-0.12.0.ebuild122
-rw-r--r--dev-build/fpm/fpm-0.9.0.ebuild118
-rw-r--r--dev-build/fpm/metadata.xml14
-rw-r--r--dev-build/fypp/Manifest1
-rw-r--r--dev-build/fypp/files/filevarroot.fypp5
-rw-r--r--dev-build/fypp/fypp-3.2.ebuild29
-rw-r--r--dev-build/fypp/metadata.xml17
-rw-r--r--dev-build/gn/Manifest8
-rw-r--r--dev-build/gn/files/gn-0.2374-test-iwyu.patch18
-rw-r--r--dev-build/gn/files/gn-gen-r5.patch46
-rw-r--r--dev-build/gn/files/gn-gen-r7.patch39
-rw-r--r--dev-build/gn/files/gn-gen-r8.patch38
-rw-r--r--dev-build/gn/gn-0.2122.ebuild70
-rw-r--r--dev-build/gn/gn-0.2217.ebuild66
-rw-r--r--dev-build/gn/gn-0.2227.ebuild66
-rw-r--r--dev-build/gn/gn-0.2235.ebuild66
-rw-r--r--dev-build/gn/gn-0.2289.ebuild66
-rw-r--r--dev-build/gn/gn-0.2318.ebuild66
-rw-r--r--dev-build/gn/gn-0.2354.ebuild66
-rw-r--r--dev-build/gn/gn-0.2374.ebuild67
-rw-r--r--dev-build/gn/gn-9999.ebuild66
-rw-r--r--dev-build/gn/metadata.xml7
-rw-r--r--dev-build/gtk-doc-am/Manifest1
-rw-r--r--dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild33
-rw-r--r--dev-build/gtk-doc-am/metadata.xml12
-rw-r--r--dev-build/guildmaster/Manifest1
-rw-r--r--dev-build/guildmaster/files/sandbox.conf1
-rw-r--r--dev-build/guildmaster/guildmaster-0_pre20250712.ebuild70
-rw-r--r--dev-build/guildmaster/guildmaster-9999.ebuild70
-rw-r--r--dev-build/guildmaster/metadata.xml11
-rw-r--r--dev-build/gyp/Manifest1
-rw-r--r--dev-build/gyp/gyp-20200512145953-r1.ebuild67
-rw-r--r--dev-build/gyp/gyp-99999999999999.ebuild67
-rw-r--r--dev-build/gyp/metadata.xml8
-rw-r--r--dev-build/icmake/Manifest1
-rw-r--r--dev-build/icmake/files/icmake-9.00.00-ar.patch32
-rw-r--r--dev-build/icmake/files/icmake-9.02.02-verbose-build.patch11
-rw-r--r--dev-build/icmake/files/icmake-9.03.01-ar.patch17
-rw-r--r--dev-build/icmake/files/icmake-9.03.01-compressed-docs.patch32
-rw-r--r--dev-build/icmake/icmake-9.03.01-r1.ebuild48
-rw-r--r--dev-build/icmake/metadata.xml8
-rw-r--r--dev-build/just/Manifest236
-rw-r--r--dev-build/just/just-1.48.1.ebuild246
-rw-r--r--dev-build/just/just-1.49.0.ebuild245
-rw-r--r--dev-build/just/just-1.50.0.ebuild245
-rw-r--r--dev-build/just/just-1.51.0.ebuild248
-rw-r--r--dev-build/just/metadata.xml17
-rw-r--r--dev-build/kas/Manifest2
-rw-r--r--dev-build/kas/kas-5.1.ebuild87
-rw-r--r--dev-build/kas/kas-5.2.ebuild89
-rw-r--r--dev-build/kas/metadata.xml22
-rw-r--r--dev-build/kbuild/Manifest2
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.5-gentoo-docdir.patch11
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998.3407-unknown_configure_opt.patch20
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch23
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-bison.patch15
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-lto.patch11
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998.3660-gcc-15.patch19
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998.3660-int-conversion.patch17
-rw-r--r--dev-build/kbuild/files/kbuild-0.1.9998_pre20110817-kash-link-pthread.patch10
-rw-r--r--dev-build/kbuild/kbuild-0.1.9998.3660-r1.ebuild75
-rw-r--r--dev-build/kbuild/kbuild-9999.ebuild68
-rw-r--r--dev-build/kbuild/metadata.xml8
-rw-r--r--dev-build/libtool/Manifest2
-rw-r--r--dev-build/libtool/files/libtool-2.2.10-eprefix.patch11
-rw-r--r--dev-build/libtool/files/libtool-2.2.6a-darwin-module-bundle.patch24
-rw-r--r--dev-build/libtool/files/libtool-2.4.3-use-linux-version-in-fbsd.patch38
-rw-r--r--dev-build/libtool/files/libtool-2.4.6-darwin-use-linux-version.patch13
-rw-r--r--dev-build/libtool/files/libtool-2.4.6-ppc64le.patch111
-rw-r--r--dev-build/libtool/files/libtool-2.4.6-pthread.patch43
-rw-r--r--dev-build/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch21
-rw-r--r--dev-build/libtool/libtool-2.5.4.ebuild153
-rw-r--r--dev-build/libtool/libtool-2.6.0.ebuild154
-rw-r--r--dev-build/libtool/libtool-9999.ebuild153
-rw-r--r--dev-build/libtool/metadata.xml12
-rw-r--r--dev-build/mage/Manifest2
-rw-r--r--dev-build/mage/mage-1.13.0.ebuild21
-rw-r--r--dev-build/mage/mage-1.15.0.ebuild21
-rw-r--r--dev-build/mage/metadata.xml11
-rw-r--r--dev-build/make/Manifest2
-rw-r--r--dev-build/make/files/make-4.4-default-cxx.patch11
-rw-r--r--dev-build/make/files/make-4.4.1-c23.patch58
-rw-r--r--dev-build/make/files/make-4.4.1-jobserver-kill-return-tokens.patch81
-rw-r--r--dev-build/make/make-4.4.1-r100.ebuild102
-rw-r--r--dev-build/make/make-4.4.1-r101.ebuild103
-rw-r--r--dev-build/make/make-4.4.1-r102.ebuild104
-rw-r--r--dev-build/make/make-9999.ebuild109
-rw-r--r--dev-build/make/metadata.xml12
-rw-r--r--dev-build/melange/Manifest2
-rw-r--r--dev-build/melange/melange-0.18.3.ebuild53
-rw-r--r--dev-build/melange/metadata.xml20
-rw-r--r--dev-build/meson-format-array/files/meson-format-array.py43
-rw-r--r--dev-build/meson-format-array/meson-format-array-0.ebuild30
-rw-r--r--dev-build/meson-format-array/metadata.xml9
-rw-r--r--dev-build/meson/Manifest12
-rw-r--r--dev-build/meson/files/meson-1.10.0-python-path.patch39
-rw-r--r--dev-build/meson/files/meson-1.2.1-python-path.patch26
-rw-r--r--dev-build/meson/meson-1.10.2.ebuild239
-rw-r--r--dev-build/meson/meson-1.11.0.ebuild239
-rw-r--r--dev-build/meson/meson-1.11.1.ebuild242
-rw-r--r--dev-build/meson/meson-1.9.2.ebuild239
-rw-r--r--dev-build/meson/meson-9999.ebuild242
-rw-r--r--dev-build/meson/metadata.xml18
-rw-r--r--dev-build/metadata.xml13
-rw-r--r--dev-build/muon/Manifest7
-rw-r--r--dev-build/muon/files/muon-0.3.0-fix-summary-call.patch28
-rw-r--r--dev-build/muon/files/muon-0.5.0-workaround-meson-15093.patch28
-rw-r--r--dev-build/muon/metadata.xml19
-rw-r--r--dev-build/muon/muon-0.2.0-r2.ebuild49
-rw-r--r--dev-build/muon/muon-0.3.0.ebuild71
-rw-r--r--dev-build/muon/muon-0.4.0.ebuild79
-rw-r--r--dev-build/muon/muon-0.5.0.ebuild66
-rw-r--r--dev-build/netsurf-buildsystem/Manifest1
-rw-r--r--dev-build/netsurf-buildsystem/files/gentoo-helpers-r2.sh22
-rw-r--r--dev-build/netsurf-buildsystem/metadata.xml8
-rw-r--r--dev-build/netsurf-buildsystem/netsurf-buildsystem-1.10.ebuild26
-rw-r--r--dev-build/ninja/Manifest3
-rw-r--r--dev-build/ninja/files/ninja-1.13.2-allow-psuedo-fifo.patch88
-rw-r--r--dev-build/ninja/files/ninja-cflags.patch25
-rw-r--r--dev-build/ninja/metadata.xml15
-rw-r--r--dev-build/ninja/ninja-1.13.1.ebuild132
-rw-r--r--dev-build/ninja/ninja-1.13.2-r1.ebuild133
-rw-r--r--dev-build/ninja/ninja-1.13.2.ebuild132
-rw-r--r--dev-build/ninja/ninja-9999.ebuild132
-rw-r--r--dev-build/parmasan-remake/Manifest1
-rw-r--r--dev-build/parmasan-remake/metadata.xml11
-rw-r--r--dev-build/parmasan-remake/parmasan-remake-4.3_p20240220.ebuild65
-rw-r--r--dev-build/parmasan/Manifest1
-rw-r--r--dev-build/parmasan/metadata.xml11
-rw-r--r--dev-build/parmasan/parmasan-0_pre20250221-r1.ebuild26
-rw-r--r--dev-build/pdpmake/Manifest1
-rw-r--r--dev-build/pdpmake/metadata.xml8
-rw-r--r--dev-build/pdpmake/pdpmake-2.0.4.ebuild26
-rw-r--r--dev-build/pmake/Manifest2
-rw-r--r--dev-build/pmake/files/pmake-1.111.1-ldflags.patch13
-rw-r--r--dev-build/pmake/files/pmake-1.98-skipdots.patch12
-rw-r--r--dev-build/pmake/metadata.xml5
-rw-r--r--dev-build/pmake/pmake-1.111.3.3-r1.ebuild65
-rw-r--r--dev-build/qtilitools/Manifest1
-rw-r--r--dev-build/qtilitools/metadata.xml8
-rw-r--r--dev-build/qtilitools/qtilitools-0.1.2.ebuild14
-rw-r--r--dev-build/remake/Manifest2
-rw-r--r--dev-build/remake/files/remake-4.3.1.1.6-configure.patch30
-rw-r--r--dev-build/remake/metadata.xml9
-rw-r--r--dev-build/remake/remake-4.3.1.1.6-r100.ebuild60
-rw-r--r--dev-build/remake/remake-4.4_pre20250217.ebuild79
-rw-r--r--dev-build/rocm-cmake/Manifest5
-rw-r--r--dev-build/rocm-cmake/files/rocm-cmake-6.1.1-license.patch12
-rw-r--r--dev-build/rocm-cmake/files/rocm-cmake-6.1.1-no-rocmchecks-warnings.patch25
-rw-r--r--dev-build/rocm-cmake/metadata.xml25
-rw-r--r--dev-build/rocm-cmake/rocm-cmake-6.3.3.ebuild35
-rw-r--r--dev-build/rocm-cmake/rocm-cmake-6.4.3.ebuild35
-rw-r--r--dev-build/rocm-cmake/rocm-cmake-7.0.2.ebuild42
-rw-r--r--dev-build/rocm-cmake/rocm-cmake-7.1.0.ebuild42
-rw-r--r--dev-build/rocm-cmake/rocm-cmake-7.2.0.ebuild42
-rw-r--r--dev-build/samurai/Manifest2
-rw-r--r--dev-build/samurai/files/samurai-1.2-null_pointer_fix.patch60
-rw-r--r--dev-build/samurai/files/samurai-1.2-phony_targets_fix.patch30
-rw-r--r--dev-build/samurai/metadata.xml15
-rw-r--r--dev-build/samurai/samurai-1.2-r3.ebuild33
-rw-r--r--dev-build/samurai/samurai-1.3.ebuild28
-rw-r--r--dev-build/samurai/samurai-9999.ebuild28
-rw-r--r--dev-build/scons/Manifest3
-rw-r--r--dev-build/scons/files/scons-4.1.0-env-passthrough.patch41
-rw-r--r--dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch96
-rw-r--r--dev-build/scons/metadata.xml20
-rw-r--r--dev-build/scons/scons-4.10.1.ebuild159
-rw-r--r--dev-build/slibtool/Manifest12
-rw-r--r--dev-build/slibtool/metadata.xml16
-rw-r--r--dev-build/slibtool/slibtool-0.6.1.ebuild41
-rw-r--r--dev-build/slibtool/slibtool-0.7.0.ebuild41
-rw-r--r--dev-build/slibtool/slibtool-0.7.1.ebuild41
-rw-r--r--dev-build/slibtool/slibtool-0.7.2.ebuild41
-rw-r--r--dev-build/slibtool/slibtool-0.7.3.ebuild41
-rw-r--r--dev-build/slibtool/slibtool-0.7.4.ebuild41
-rw-r--r--dev-build/slibtool/slibtool-9999.ebuild41
-rw-r--r--dev-build/steve/Manifest1
-rw-r--r--dev-build/steve/metadata.xml8
-rw-r--r--dev-build/steve/steve-1.5.0.ebuild109
-rw-r--r--dev-build/steve/steve-9999.ebuild108
-rw-r--r--dev-build/tinycmmc/Manifest1
-rw-r--r--dev-build/tinycmmc/files/tinycmmc-0.1.0-cmake4.patch48
-rw-r--r--dev-build/tinycmmc/metadata.xml15
-rw-r--r--dev-build/tinycmmc/tinycmmc-0.1.0.ebuild22
-rw-r--r--dev-build/tinycmmc/tinycmmc-9999.ebuild20
-rw-r--r--dev-build/xfce4-dev-tools/Manifest2
-rw-r--r--dev-build/xfce4-dev-tools/metadata.xml8
-rw-r--r--dev-build/xfce4-dev-tools/xfce4-dev-tools-4.20.0.ebuild29
-rw-r--r--dev-build/xfce4-dev-tools/xfce4-dev-tools-4.21.0.ebuild29
-rw-r--r--dev-build/xmake/Manifest1
-rw-r--r--dev-build/xmake/metadata.xml18
-rw-r--r--dev-build/xmake/xmake-3.0.9.ebuild68
-rw-r--r--dev-build/xmake/xmake-9999.ebuild68
372 files changed, 21590 insertions, 0 deletions
diff --git a/dev-build/autoconf-archive/Manifest b/dev-build/autoconf-archive/Manifest
new file mode 100644
index 000000000000..b4fb9cc470fb
--- /dev/null
+++ b/dev-build/autoconf-archive/Manifest
@@ -0,0 +1,3 @@
+DIST autoconf-archive-2023.02.20.tar.xz 678184 BLAKE2B a72469e61a6ef702cbf4e30712c7dbe36369da7dad6e2312eb7026af41a989a47ded0a27975349486b69155f9e8199f89720dc57f98440b2766294a0f8755ee6 SHA512 a744f5aa0c1a813b81ad1528aebf7511bde7f470f34626d2057ed6664127120182e031fec5d22027d4a204544266135f202b8ef453bff70a3b0315c506c82528
+DIST autoconf-archive-2024.10.16-patches.tar.xz 9604 BLAKE2B e180322ec49f39aa456756c5451b15c73485a8583b9a770be14f3940fa0c580db720a1d8ea1eef0f16071d4f77f0763a798ddd685ed213070d4ac609dd36c580 SHA512 d34459c4e9707163626368f612392552b0f5421d304a4a53b691ffd5e65378ed6b2a0dbfad70a7358f71da17f67240d95eee2311eb0f458b82e6f77df7066a64
+DIST autoconf-archive-2024.10.16.tar.xz 677768 BLAKE2B 64554b7258c527f2e6bb115bec08e358bd4f10b940cdbe58c073fb3bdeccab78897250766e600b7e5fd79a76d633135d1caf2c7e81893bd68cab704073cac2c5 SHA512 91140cb666447f12a1d39d7d42f5fe6ea3601bb586f466381c9e949087aafa06aed8d061a4f5d020a3d234eb710e4bb47cd25380bcffd8c423fa1a7af05e988b
diff --git a/dev-build/autoconf-archive/autoconf-archive-2023.02.20.ebuild b/dev-build/autoconf-archive/autoconf-archive-2023.02.20.ebuild
new file mode 100644
index 000000000000..a42e0793e7c6
--- /dev/null
+++ b/dev-build/autoconf-archive/autoconf-archive-2023.02.20.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="GNU Autoconf Macro Archive"
+HOMEPAGE="https://www.gnu.org/software/autoconf-archive/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+# File collisions, bug #540246
+RDEPEND="
+ !=gnome-base/gnome-common-3.14.0-r0
+ !>=gnome-base/gnome-common-3.14.0-r1[-autoconf-archive(+)]
+"
diff --git a/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild b/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild
new file mode 100644
index 000000000000..8111545027f2
--- /dev/null
+++ b/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="GNU Autoconf Macro Archive"
+HOMEPAGE="https://www.gnu.org/software/autoconf-archive/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+# Temporary patchset for 2024.10.16 because a snapshot is too awkward to make
+# Can be dropped on next release
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+# File collisions, bug #540246
+RDEPEND="
+ !=gnome-base/gnome-common-3.14.0-r0
+ !>=gnome-base/gnome-common-3.14.0-r1[-autoconf-archive(+)]
+"
+
+PATCHES=(
+ "${WORKDIR}"/${P}-patches
+)
diff --git a/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r2.ebuild b/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r2.ebuild
new file mode 100644
index 000000000000..14e86289e654
--- /dev/null
+++ b/dev-build/autoconf-archive/autoconf-archive-2024.10.16-r2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="GNU Autoconf Macro Archive"
+HOMEPAGE="https://www.gnu.org/software/autoconf-archive/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+# Temporary patchset for 2024.10.16 because a snapshot is too awkward to make
+# Can be dropped on next release
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+# File collisions, bug #540246
+RDEPEND="
+ !=gnome-base/gnome-common-3.14.0-r0
+ !>=gnome-base/gnome-common-3.14.0-r1[-autoconf-archive(+)]
+"
+
+PATCHES=(
+ "${WORKDIR}"/${P}-patches
+ "${FILESDIR}"/${P}-lua.patch
+)
diff --git a/dev-build/autoconf-archive/files/autoconf-archive-2024.10.16-lua.patch b/dev-build/autoconf-archive/files/autoconf-archive-2024.10.16-lua.patch
new file mode 100644
index 000000000000..dc65abc47075
--- /dev/null
+++ b/dev-build/autoconf-archive/files/autoconf-archive-2024.10.16-lua.patch
@@ -0,0 +1,209 @@
+https://github.com/autoconf-archive/autoconf-archive/pull/318
+
+From 51056b0e139322d0377b0ecd30efd80ec1290dfe Mon Sep 17 00:00:00 2001
+From: Peter Simons <simons@cryp.to>
+Date: Sat, 9 Nov 2024 09:22:08 +0100
+Subject: [PATCH] Revert "Add LuaJIT support to AX_PROG_LUA macro"
+
+---
+ m4/ax_lua.m4 | 109 ++++++++++++++-------------------------------------
+ 1 file changed, 29 insertions(+), 80 deletions(-)
+
+diff --git a/m4/ax_lua.m4 b/m4/ax_lua.m4
+index 5f63cace..a2f2a2ce 100644
+--- a/m4/ax_lua.m4
++++ b/m4/ax_lua.m4
+@@ -49,14 +49,6 @@
+ # interpreter. If LUA is blank, the user's path is searched for an
+ # suitable interpreter.
+ #
+-# Optionally a LUAJIT option may be set ahead of time to look for and
+-# validate a LuaJIT install instead of PUC Lua. Usage might look like:
+-#
+-# AC_ARG_WITH(luajit, [AS_HELP_STRING([--with-luajit],
+-# [Prefer LuaJIT over PUC Lua, even if the latter is newer. Default: no])
+-# ])
+-# AM_CONDITIONAL([LUAJIT], [test "x$with_luajit" != 'xno'])
+-#
+ # If MINIMUM-VERSION is supplied, then only Lua interpreters with a
+ # version number greater or equal to MINIMUM-VERSION will be accepted. If
+ # TOO-BIG-VERSION is also supplied, then only Lua interpreters with a
+@@ -160,7 +152,6 @@
+ #
+ # LICENSE
+ #
+-# Copyright (c) 2023 Caleb Maclennan <caleb@alerque.com>
+ # Copyright (c) 2015 Reuben Thomas <rrt@sc3d.org>
+ # Copyright (c) 2014 Tim Perkins <tprk77@gmail.com>
+ #
+@@ -190,7 +181,7 @@
+ # modified version of the Autoconf Macro, you may extend this special
+ # exception to the GPL to apply to your modified version as well.
+
+-#serial 47
++#serial 48
+
+ dnl =========================================================================
+ dnl AX_PROG_LUA([MINIMUM-VERSION], [TOO-BIG-VERSION],
+@@ -206,14 +197,13 @@ AC_DEFUN([AX_PROG_LUA],
+ AC_ARG_VAR([LUA], [The Lua interpreter, e.g. /usr/bin/lua5.1])
+
+ dnl Find a Lua interpreter.
+- AM_COND_IF([LUAJIT],
+- [_ax_lua_interpreter_list='luajit luajit-2.1.0-beta3 luajit-2.0.5 luajit-2.0.4 luajit-2.0.3'],
+- [_ax_lua_interpreter_list='lua lua5.4 lua54 lua5.3 lua53 lua5.2 lua52 lua5.1 lua51 lua5.0 lua50'])
++ m4_define_default([_AX_LUA_INTERPRETER_LIST],
++ [lua lua5.4 lua54 lua5.3 lua53 lua5.2 lua52 lua5.1 lua51 lua50])
+
+ m4_if([$1], [],
+ [ dnl No version check is needed. Find any Lua interpreter.
+ AS_IF([test "x$LUA" = 'x'],
+- [AC_PATH_PROGS([LUA], [$_ax_lua_interpreter_list], [:])])
++ [AC_PATH_PROGS([LUA], [_AX_LUA_INTERPRETER_LIST], [:])])
+ ax_display_LUA='lua'
+
+ AS_IF([test "x$LUA" != 'x:'],
+@@ -252,7 +242,7 @@ AC_DEFUN([AX_PROG_LUA],
+ [_ax_check_text="for a Lua interpreter with version >= $1, < $2"])
+ AC_CACHE_CHECK([$_ax_check_text],
+ [ax_cv_pathless_LUA],
+- [ for ax_cv_pathless_LUA in $_ax_lua_interpreter_list none; do
++ [ for ax_cv_pathless_LUA in _AX_LUA_INTERPRETER_LIST none; do
+ test "x$ax_cv_pathless_LUA" = 'xnone' && break
+ _AX_LUA_CHK_IS_INTRP([$ax_cv_pathless_LUA], [], [continue])
+ _AX_LUA_CHK_VER([$ax_cv_pathless_LUA], [$1], [$2], [break])
+@@ -285,18 +275,6 @@ AC_DEFUN([AX_PROG_LUA],
+ AC_SUBST([LUA_VERSION], [$ax_cv_lua_version])
+ AC_SUBST([LUA_SHORT_VERSION], [`echo "$LUA_VERSION" | $SED 's|\.||'`])
+
+- AM_COND_IF([LUAJIT], [
+- AC_CACHE_CHECK([for $ax_display_LUA jit version], [ax_cv_luajit_version],
+- [ ax_cv_luajit_version=[`$LUA -e '
+- local _, _, ver = string.find(jit and jit.version, "(%d+%..+)")
+- print(ver or "")'`]
+- ])
+- AS_IF([test "x$ax_cv_luajit_version" = 'x'],
+- [AC_MSG_ERROR([invalid Lua jit version number])])
+- AC_SUBST([LUAJIT_VERSION], [$ax_cv_luajit_version])
+- AC_SUBST([LUAJIT_SHORT_VERSION], [$(echo "$LUAJIT_VERSION" | $SED 's|\.|§|;s|\..*||;s|§|.|')])
+- ])
+-
+ dnl The following check is not supported:
+ dnl At times (like when building shared libraries) you may want to know
+ dnl which OS platform Lua thinks this is.
+@@ -486,50 +464,33 @@ AC_DEFUN([AX_LUA_HEADERS],
+ AC_MSG_ERROR([cannot check Lua headers without knowing LUA_VERSION])
+ ])
+
+- AM_COND_IF([LUAJIT],[
+- dnl Check for LUAJIT_VERSION.
+- AC_MSG_CHECKING([if LUAJIT_VERSION is defined])
+- AS_IF([test "x$LUAJIT_VERSION" != 'x'],
+- [AC_MSG_RESULT([yes])],
+- [ AC_MSG_RESULT([no])
+- AC_MSG_ERROR([cannot check Lua jit headers without knowing LUAJIT_VERSION])
+- ])
+- ])
+-
+ dnl Make LUA_INCLUDE a precious variable.
+ AC_ARG_VAR([LUA_INCLUDE], [The Lua includes, e.g. -I/usr/include/lua5.1])
+
+- dnl Some default directories to search.
+- AM_COND_IF([LUAJIT],
+- [_ax_lua_include_list="
+- /usr/include/luajit-$LUAJIT_VERSION
+- /usr/include/luajit-$LUAJIT_SHORT_VERSION
+- /usr/local/include/luajit-$LUAJIT_VERSION
+- /usr/local/include/luajit-$LUAJIT_SHORT_VERSION"],
+- [_ax_lua_include_list="
+- /usr/include/lua$LUA_VERSION
+- /usr/include/lua-$LUA_VERSION
+- /usr/include/lua/$LUA_VERSION
+- /usr/include/lua$LUA_SHORT_VERSION
+- /usr/local/include/lua$LUA_VERSION
+- /usr/local/include/lua-$LUA_VERSION
+- /usr/local/include/lua/$LUA_VERSION
+- /usr/local/include/lua$LUA_SHORT_VERSION"])
++ dnl Some default directories to search.
++ LUA_SHORT_VERSION=`echo "$LUA_VERSION" | $SED 's|\.||'`
++ m4_define_default([_AX_LUA_INCLUDE_LIST],
++ [ /usr/include/lua$LUA_VERSION \
++ /usr/include/lua-$LUA_VERSION \
++ /usr/include/lua/$LUA_VERSION \
++ /usr/include/lua$LUA_SHORT_VERSION \
++ /usr/local/include/lua$LUA_VERSION \
++ /usr/local/include/lua-$LUA_VERSION \
++ /usr/local/include/lua/$LUA_VERSION \
++ /usr/local/include/lua$LUA_SHORT_VERSION \
++ ])
+
+ dnl Try to find the headers.
+ _ax_lua_saved_cppflags=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $LUA_INCLUDE"
+ AC_CHECK_HEADERS([lua.h lualib.h lauxlib.h luaconf.h])
+- AM_COND_IF([LUAJIT], [AC_CHECK_HEADERS([luajit.h])])
+ CPPFLAGS=$_ax_lua_saved_cppflags
+
+ dnl Try some other directories if LUA_INCLUDE was not set.
+ AS_IF([test "x$LUA_INCLUDE" = 'x' &&
+- test "x$ac_cv_header_lua_h" != 'xyes' ||
+- test "x$with_luajit" != 'xno' &&
+- test "x$ac_cv_header_luajit_h" != 'xyes'],
++ test "x$ac_cv_header_lua_h" != 'xyes'],
+ [ dnl Try some common include paths.
+- for _ax_include_path in $_ax_lua_include_list; do
++ for _ax_include_path in _AX_LUA_INCLUDE_LIST; do
+ test ! -d "$_ax_include_path" && continue
+
+ AC_MSG_CHECKING([for Lua headers in])
+@@ -539,12 +500,10 @@ AC_DEFUN([AX_LUA_HEADERS],
+ AS_UNSET([ac_cv_header_lualib_h])
+ AS_UNSET([ac_cv_header_lauxlib_h])
+ AS_UNSET([ac_cv_header_luaconf_h])
+- AS_UNSET([ac_cv_header_luajit_h])
+
+ _ax_lua_saved_cppflags=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -I$_ax_include_path"
+ AC_CHECK_HEADERS([lua.h lualib.h lauxlib.h luaconf.h])
+- AM_COND_IF([LUAJIT], [AC_CHECK_HEADERS([luajit.h])])
+ CPPFLAGS=$_ax_lua_saved_cppflags
+
+ AS_IF([test "x$ac_cv_header_lua_h" = 'xyes'],
+@@ -662,26 +621,16 @@ AC_DEFUN([AX_LUA_LIBS],
+ dnl Try to find the Lua libs.
+ _ax_lua_saved_libs=$LIBS
+ LIBS="$LIBS $LUA_LIB"
+- AM_COND_IF([LUAJIT],
+- [AC_SEARCH_LIBS([lua_load],
+- [ luajit$LUA_VERSION \
+- luajit$LUA_SHORT_VERSION \
+- luajit-$LUA_VERSION \
+- luajit-$LUA_SHORT_VERSION \
+- luajit],
+- [_ax_found_lua_libs='yes'],
+- [_ax_found_lua_libs='no'],
+- [$_ax_lua_extra_libs])],
+- [AC_SEARCH_LIBS([lua_load],
+- [ lua$LUA_VERSION \
+- lua$LUA_SHORT_VERSION \
+- lua-$LUA_VERSION \
+- lua-$LUA_SHORT_VERSION \
+- lua \
+- ],
+- [_ax_found_lua_libs='yes'],
+- [_ax_found_lua_libs='no'],
+- [$_ax_lua_extra_libs])])
++ AC_SEARCH_LIBS([lua_load],
++ [ lua$LUA_VERSION \
++ lua$LUA_SHORT_VERSION \
++ lua-$LUA_VERSION \
++ lua-$LUA_SHORT_VERSION \
++ lua \
++ ],
++ [_ax_found_lua_libs='yes'],
++ [_ax_found_lua_libs='no'],
++ [$_ax_lua_extra_libs])
+ LIBS=$_ax_lua_saved_libs
+
+ AS_IF([test "x$ac_cv_search_lua_load" != 'xno' &&
+
diff --git a/dev-build/autoconf-archive/metadata.xml b/dev-build/autoconf-archive/metadata.xml
new file mode 100644
index 000000000000..9eca8509dc82
--- /dev/null
+++ b/dev-build/autoconf-archive/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="github">autoconf-archive/autoconf-archive</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/autoconf-dickey/Manifest b/dev-build/autoconf-dickey/Manifest
new file mode 100644
index 000000000000..30238c6c9c6c
--- /dev/null
+++ b/dev-build/autoconf-dickey/Manifest
@@ -0,0 +1,4 @@
+DIST autoconf-2.52-20250126.tgz 870349 BLAKE2B 22e339cdd2187b84ab3260c2596899a2ab3278e097527257568d87714655fc94a38961134b9c73a7f9f13179eb46592cc8672b10dea41cf3c260d4b66f3b0e93 SHA512 a0d93311bc49580d6ee26434a033ddc0a7d66e9ec52f91f990dc5bd86193737dc59ef9bdfee1cd1357750969a92254cf01a051bcf412fc9e0162025e922cb9a0
+DIST autoconf-2.52-20250126.tgz.asc 729 BLAKE2B 00b1edcc8442a7c9ced194038e7aedf616e4caadb1a8a59b2688d7cc45cf735c8cdf03e7ef9def8898baa7aad2b3a78f98f063eeaff0b88b5783a464e76b1d65 SHA512 633d435cbc557067216d34106a41c62a9e8cf19b2e1ac4acc8d46d63cd32ebb6ea8b888f9ca43bee47590f315577cdd41a72a733f84ff860b981b3362e5f251e
+DIST autoconf-2.52-20260412.tgz 873792 BLAKE2B 6232b9489bd616cbccf6044ac26246bd250d9dc0cec0d3b271b1dac6c5f2e78a346844d193cfda66a4689b56f49daedf835257213986c7c909498337718f384d SHA512 7cc9be0a8655f0acea60b0b31d10b6c0160747fdb8b4e8777d1796a0be15c34f40a2aefd8a3b0ed3364ea3cd5cccfe42865988592e44eef567bc8b84c11b691f
+DIST autoconf-2.52-20260412.tgz.asc 729 BLAKE2B 0815087c35e64649dd50dcf80d379c447e3685a26d7ba407d20038fde3f59ba255e1a9dc7f050b54b102f8848ab48c5dac7135c27af522c385c086ff505c47ea SHA512 273bb77f4a5f1060eccebc9d76bf2c50a64b47aca82d514cc2e898e7a44e614fc188b932abe8e28c769dab50cb792a8b1a7a91c259750436bd17f6f747560848
diff --git a/dev-build/autoconf-dickey/autoconf-dickey-2.52_p20250126.ebuild b/dev-build/autoconf-dickey/autoconf-dickey-2.52_p20250126.ebuild
new file mode 100644
index 000000000000..41020e9d5bc6
--- /dev/null
+++ b/dev-build/autoconf-dickey/autoconf-dickey-2.52_p20250126.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: adapt toolchain-autoconf to take econf args?
+# TODO: review our old autoconf-2.52 patches?
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc
+inherit verify-sig
+
+MY_P=${PN/-dickey}-${PV/_p/-}
+DESCRIPTION="Fork of dev-build/autoconf for Thomas Dickey's packages"
+HOMEPAGE="https://invisible-island.net/autoconf/autoconf.html"
+SRC_URI="https://invisible-island.net/archives/autoconf/${MY_P}.tgz"
+SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/autoconf/${MY_P}.tgz.asc )"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+RDEPEND="
+ >=sys-devel/m4-1.4.16
+ >=dev-lang/perl-5.6
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( sec-keys/openpgp-keys-thomasdickey )
+"
+
+src_prepare() {
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ #if [[ ${CHOST} == *-darwin* ]] ; then
+ # PATCHES+=( "${FILESDIR}"/${PN}-2.61-darwin.patch )
+ #fi
+
+ default
+}
+
+src_configure() {
+ local myeconfargs=(
+ --datadir="${EPREFIX}"/usr/share/${PN}
+ --program-suffix=-dickey
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ # -j1 for bug #869278
+ emake -j1 check
+}
diff --git a/dev-build/autoconf-dickey/autoconf-dickey-2.52_p20260412.ebuild b/dev-build/autoconf-dickey/autoconf-dickey-2.52_p20260412.ebuild
new file mode 100644
index 000000000000..41a057a3193e
--- /dev/null
+++ b/dev-build/autoconf-dickey/autoconf-dickey-2.52_p20260412.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: adapt toolchain-autoconf to take econf args?
+# TODO: review our old autoconf-2.52 patches?
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc
+inherit verify-sig
+
+MY_P=${PN/-dickey}-${PV/_p/-}
+DESCRIPTION="Fork of dev-build/autoconf for Thomas Dickey's packages"
+HOMEPAGE="https://invisible-island.net/autoconf/autoconf.html"
+SRC_URI="https://invisible-island.net/archives/autoconf/${MY_P}.tgz"
+SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/autoconf/${MY_P}.tgz.asc )"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+RDEPEND="
+ >=sys-devel/m4-1.4.16
+ >=dev-lang/perl-5.6
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( sec-keys/openpgp-keys-thomasdickey )
+"
+
+src_prepare() {
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ #if [[ ${CHOST} == *-darwin* ]] ; then
+ # PATCHES+=( "${FILESDIR}"/${PN}-2.61-darwin.patch )
+ #fi
+
+ default
+}
+
+src_configure() {
+ local myeconfargs=(
+ --datadir="${EPREFIX}"/usr/share/${PN}
+ --program-suffix=-dickey
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ # -j1 for bug #869278
+ emake -j1 check
+}
diff --git a/dev-build/autoconf-dickey/metadata.xml b/dev-build/autoconf-dickey/metadata.xml
new file mode 100644
index 000000000000..af5286fc415a
--- /dev/null
+++ b/dev-build/autoconf-dickey/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <changelog>https://invisible-island.net/autoconf/autoconf-252/ChangeLog</changelog>
+ <remote-id type="github">ThomasDickey/my-autoconf-snapshots</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/autoconf-vanilla/Manifest b/dev-build/autoconf-vanilla/Manifest
new file mode 100644
index 000000000000..c21b71925bb7
--- /dev/null
+++ b/dev-build/autoconf-vanilla/Manifest
@@ -0,0 +1,7 @@
+DIST autoconf-2.13.tar.gz 443844 BLAKE2B ade10f9d4a0b1a0e8b752eee817cfe100d77b074192b9892330402ddc5b62dda1a3485ce0c36e72191daa9fd49382b99851cb6aa3a13aca8cf2ae6e884638fb6 SHA512 602584f4c77b7a554aaa068eda5409b68eb0b3229e9c224bffb91c83c4314d25de15bd560a323626ff78f6df339c79e1ef8938c54b78ecadf4dc75c5241290ad
+DIST autoconf-2.69-runstatedir_patches.tar.xz 257096 BLAKE2B ae765e0ca7fe8261117f6f6b75611c232fc3d4016c22c86346afa72f2b7e6c3b7ccc1f9dfe134b2443f8bde6d578b503d79cf88472f76ce75b6c2e843ef55b8e SHA512 55f93299fe5243151f6bb782986a7935270f06d5065929f4d365a37aba05703e3ce66ecf7981d30413db50ee6b4f77d81d10a71b539c8a366c5c5a156c5443da
+DIST autoconf-2.69.tar.xz 1214744 BLAKE2B 71d33d72a06e9a05fbed0eda73bc9d8a3805c7c90bf082959862f93f3c5f01192114176e84d84ecb58fa99512eafbc0ab21ad1407be18c8c63bb3dc1117c482d SHA512 995d3e5a8eb1eb37e2b7fae53c6ec7a9b4df997286b7d643344818f94636756b1bf5ff5ea9155e755cb9461149a853dfbf2886fc6bd7132e5afa9c168e306e9b
+DIST autoconf-2.69.tar.xz.sig 556 BLAKE2B 07eaae3429f4bbd3ea40b4b366db383d9e322b03def7956f8961a20a6759072e8c327d4723313097f75caba0513928c37270beda8f8b491888fdd47a2ee80ad6 SHA512 e54082e00522463ba7d6b6ea6d700b8799a41177b34e057dd72abbe46219f0ce58674575d60fb106e37deeee8871d4ccfd85746c2d0e096a71eb096ffdb3020c
+DIST autoconf-2.71.tar.xz 1292296 BLAKE2B 7fd4b98b4cfff10720e8da6ee91045637991643b50fcb3e47a0ecfcc01600f7b7b36fd1c0a5f08b68a418f1bdbd8d5a98de1008157595dd37cc3a31facb61416 SHA512 73d32b4adcbe24e3bafa9f43f59ed3b6efbd3de0f194e5ec90375f35da1199c583f5d3e89139b7edbad35171403709270e339ffa56a2ecb9b3123e9285021ff0
+DIST autoconf-2.72.tar.xz 1389680 BLAKE2B 01caeced9e53d8bd39fb0cf4929322f0d463971b0a96368aa55892026897a9e98c2ca84a77db1b3c6c4483aea54b96da16a7bc00b7ac15e23c6b0471438012db SHA512 c4e9fbd858666d3e5c3b4fe7f89aa3e8e3a0a00dc7e166f8147d937d911b77ba3ac6a016f9d223ccdd830bc8960b3e60397c0607cc6a1fd2c50c7492839ddd17
+DIST autoconf-2.72.tar.xz.sig 833 BLAKE2B cc33101c5d2bd28f233e54a2843d3c81dc9729238b0900a8f23ef17b982aa0e0194892c07b1365246b6c9c0ea74becd288ae581ee34d593131b83538c69a6204 SHA512 7a0d350b23cf47c45811ae35928a4fec67ce1f3adb1965904fe6d9a0fad68139df4902662bcf4731a2f809381cae0b265a8f1f57d0a9a39777250a97a3c481d9
diff --git a/dev-build/autoconf-vanilla/autoconf-vanilla-2.13-r1.ebuild b/dev-build/autoconf-vanilla/autoconf-vanilla-2.13-r1.ebuild
new file mode 100644
index 000000000000..7c7ecd771344
--- /dev/null
+++ b/dev-build/autoconf-vanilla/autoconf-vanilla-2.13-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `autoconf`, as this package is used to submit patches upstream.
+
+inherit toolchain-autoconf
+
+MY_PN=${PN/-vanilla}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="${PV:0:3}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ dev-lang/perl
+ sys-devel/m4
+ test? ( dev-util/dejagnu )
+"
+RDEPEND="
+ ${BDEPEND}
+ sys-apps/texinfo
+ >=dev-build/autoconf-wrapper-13
+"
+
+PATCHES=(
+ "${FILESDIR}"/${MY_P}-gentoo.patch
+ "${FILESDIR}"/${MY_P}-destdir.patch
+ "${FILESDIR}"/${MY_P}-test-fixes.patch #146592
+ "${FILESDIR}"/${MY_P}-perl-5.26.patch
+)
+
+src_configure() {
+ # need to include --exec-prefix and --bindir or our
+ # DESTDIR patch will trigger sandbox hate :(
+ #
+ # need to force locale to C to avoid bugs in the old
+ # configure script breaking the install paths #351982
+ #
+ # force to `awk` so that we don't encode another awk that
+ # happens to currently be installed, but might later be
+ # uninstalled (like mawk). same for m4.
+ export ac_cv_path_M4="m4" ac_cv_prog_AWK="awk"
+ export LC_ALL=C
+
+ toolchain-autoconf_src_configure \
+ --exec-prefix="${EPREFIX}"/usr \
+ --bindir="${EPREFIX}"/usr/bin \
+ --datadir="${EPREFIX}"/usr/share/"${P}" \
+ --infodir="${TC_AUTOCONF_INFOPATH}"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+}
diff --git a/dev-build/autoconf-vanilla/autoconf-vanilla-2.69-r2.ebuild b/dev-build/autoconf-vanilla/autoconf-vanilla-2.69-r2.ebuild
new file mode 100644
index 000000000000..f53aab4834fd
--- /dev/null
+++ b/dev-build/autoconf-vanilla/autoconf-vanilla-2.69-r2.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `autoconf`, as this package is used to submit patches upstream.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ MY_PN=${PN/-vanilla}
+ MY_P=${MY_PN}-${PV}
+
+ # Eric Blake signed 2.69 so use sec-keys/openpgp-keys-m4
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/m4.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${MY_PN}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~polynomial-c/dist/${MY_P}-runstatedir_patches.tar.xz
+ verify-sig? ( mirror://gnu/${MY_PN}/${MY_P}.tar.xz.sig )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-m4 )"
+fi
+
+S="${WORKDIR}"/${MY_P}
+
+inherit toolchain-autoconf
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${PV}"
+
+BDEPEND+="
+ >=sys-devel/m4-1.4.16
+ >=dev-lang/perl-5.6
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-13
+ !~dev-build/${P}:2.5
+"
+
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${MY_PN}-2.69-perl-5.26.patch
+ "${FILESDIR}"/${MY_P}-fix-libtool-test.patch
+ "${FILESDIR}"/${MY_PN}-2.69-perl-5.26-2.patch
+ "${FILESDIR}"/${MY_P}-make-tests-bash5-compatible.patch
+
+ "${WORKDIR}"/patches/${MY_P}-texinfo.patch
+)
+
+TC_AUTOCONF_ENVPREFIX=07
+
+src_unpack() {
+ if use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.sig}
+ fi
+
+ default
+}
+
+src_prepare() {
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${MY_PN}-2.61-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+
+ # This version uses recursive makefiles. As this code is dead by
+ # now, and this 'fix' is getting hacked in from the future back into
+ # the past, I doubt that the sins committed below will have a wide
+ # impact. Don't copy this code.
+ find . \
+ -name Makefile.in \
+ -execdir sed -i '/^pkgdatadir/s/@PACKAGE@/&-vanilla/g' {} + \
+ || die
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+}
diff --git a/dev-build/autoconf-vanilla/autoconf-vanilla-2.71-r2.ebuild b/dev-build/autoconf-vanilla/autoconf-vanilla-2.71-r2.ebuild
new file mode 100644
index 000000000000..c23552cdcafa
--- /dev/null
+++ b/dev-build/autoconf-vanilla/autoconf-vanilla-2.71-r2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `autoconf`, as this package is used to submit patches upstream.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ MY_PN=${PN/-vanilla}
+ MY_P=${MY_PN}-${PV}
+
+ SRC_URI="
+ mirror://gnu/${MY_PN}/${MY_P}.tar.xz
+ https://alpha.gnu.org/pub/gnu/${MY_PN}/${MY_P}.tar.xz
+ "
+
+ if ! [[ ${PV} == *_beta* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain-autoconf
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${PV/_*}"
+
+# for 2.71, our Perl time resolution patch changes our min Perl from 5.6
+# (vanilla upstream for 2.71) to 5.8.
+BDEPEND=">=sys-devel/m4-1.4.16
+ >=dev-lang/perl-5.8"
+RDEPEND="${BDEPEND}
+ >=dev-build/autoconf-wrapper-15
+ sys-devel/gnuconfig
+ !~dev-build/${P}:2.5"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${MY_P}-AC_LANG_CALL_C_cxx.patch
+ "${FILESDIR}"/${MY_P}-time.patch
+ "${FILESDIR}"/${MY_P}-make-4.4.patch
+ "${FILESDIR}"/"${MY_P}"-conflicts.patch
+)
+
+TC_AUTOCONF_ENVPREFIX=07
+
+src_prepare() {
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${MY_PN}-2.71-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ local pdir
+ for pdir in "${WORKDIR}"/{upstream_,}patches ; do
+ if [[ -d "${pdir}" ]] ; then
+ eapply ${pdir}
+ fi
+ done
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf-vanilla/autoconf-vanilla-2.72-r2.ebuild b/dev-build/autoconf-vanilla/autoconf-vanilla-2.72-r2.ebuild
new file mode 100644
index 000000000000..9dfa46167aa1
--- /dev/null
+++ b/dev-build/autoconf-vanilla/autoconf-vanilla-2.72-r2.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `autoconf`, as this package is used to submit patches upstream.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ MY_PN=${PN/-vanilla}
+ # For _beta handling replace with real version number
+ MY_PV="${PV}"
+ MY_P="${MY_PN}-${MY_PV}"
+ #PATCH_TARBALL_NAME="${MY_PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${MY_PN}/${MY_P}.tar.xz
+ https://alpha.gnu.org/pub/gnu/${MY_PN}/${MY_P}.tar.xz
+ https://meyering.net/ac/${MY_P}.tar.xz
+ verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.xz.sig )
+ "
+ S="${WORKDIR}"/${MY_P}
+
+ if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="$(ver_cut 1-2)"
+
+BDEPEND+="
+ >=dev-lang/perl-5.10
+ >=sys-devel/m4-1.4.16
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-15
+ !~dev-build/${P}:2.5
+ sys-devel/gnuconfig
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/"${MY_P}"-conflicts.patch
+)
+
+TC_AUTOCONF_ENVPREFIX=07
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ # Avoid the "dirty" suffix in the git version by generating it
+ # before we run later stages which might modify source files.
+ local ver=$(./build-aux/git-version-gen .tarball-version)
+ echo "${ver}" > .tarball-version || die
+
+ autoreconf -f -i || die
+ fi
+
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${MY_PN}-2.71-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf-vanilla/autoconf-vanilla-9999.ebuild b/dev-build/autoconf-vanilla/autoconf-vanilla-9999.ebuild
new file mode 100644
index 000000000000..19b1e94896b0
--- /dev/null
+++ b/dev-build/autoconf-vanilla/autoconf-vanilla-9999.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `autoconf`, as this package is used to submit patches upstream.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ MY_PN=${PN/-vanilla}
+ # For _beta handling replace with real version number
+ MY_PV="${PV}"
+ MY_P="${MY_PN}-${MY_PV}"
+ #PATCH_TARBALL_NAME="${MY_PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${MY_PN}/${MY_P}.tar.xz
+ https://alpha.gnu.org/pub/gnu/${MY_PN}/${MY_P}.tar.xz
+ https://meyering.net/ac/${MY_P}.tar.xz
+ verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.xz.sig )
+ "
+ S="${WORKDIR}"/${MY_P}
+
+ if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="$(ver_cut 1-2)"
+
+BDEPEND+="
+ >=dev-lang/perl-5.10
+ >=sys-devel/m4-1.4.16
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-15
+ sys-devel/gnuconfig
+ !~dev-build/${P}:2.5
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/"${MY_P}"-conflicts.patch
+)
+
+TC_AUTOCONF_ENVPREFIX=07
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ # Avoid the "dirty" suffix in the git version by generating it
+ # before we run later stages which might modify source files.
+ local ver=$(./build-aux/git-version-gen .tarball-version)
+ echo "${ver}" > .tarball-version || die
+
+ autoreconf -f -i || die
+ fi
+
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${MY_PN}-2.71-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.13-destdir.patch b/dev-build/autoconf-vanilla/files/autoconf-2.13-destdir.patch
new file mode 100644
index 000000000000..47605af5f59c
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.13-destdir.patch
@@ -0,0 +1,26 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -41,18 +41,18 @@
+
+ transform=@program_transform_name@
+
+-prefix = @prefix@
++prefix = $(DESTDIR)@prefix@
+-exec_prefix = @exec_prefix@
++exec_prefix = $(DESTDIR)@exec_prefix@
+
+ # Directory in which to install scripts.
+-bindir = @bindir@
++bindir = $(DESTDIR)@bindir@
+
+ # Directory in which to install library files.
+-datadir = @datadir@
++datadir = $(DESTDIR)@datadir@
+ acdatadir = $(datadir)/autoconf
+
+ # Directory in which to install documentation info files.
+-infodir = @infodir@
++infodir = $(DESTDIR)@infodir@
+
+ #### End of system configuration section. ####
+
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.13-gentoo.patch b/dev-build/autoconf-vanilla/files/autoconf-2.13-gentoo.patch
new file mode 100644
index 000000000000..44f09cba92f0
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.13-gentoo.patch
@@ -0,0 +1,36 @@
+--- a/configure
++++ b/configure
+@@ -654,12 +654,10 @@
+ echo "$ac_t""no" 1>&6
+ fi
+
+-if test "$PERL" != no; then
+- SCRIPTS=autoscan
+-else
+- echo "configure: warning: autoscan will not be built since perl is not found" 1>&2
++if test "$PERL" = no; then
++ PERL=/usr/bin/perl
+ fi
+-
++SCRIPTS=autoscan
+ ac_aux_dir=
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+--- a/configure.in
++++ b/configure.in
+@@ -14,12 +14,10 @@
+ AC_PATH_PROG(PERL, perl, no)
+ AC_SUBST(PERL)dnl
+ AC_SUBST(SCRIPTS)dnl
+-if test "$PERL" != no; then
+- SCRIPTS=autoscan
+-else
+- AC_MSG_WARN(autoscan will not be built since perl is not found)
++if test "$PERL" = no; then
++ PERL=/usr/bin/perl
+ fi
+-
++SCRIPTS=autoscan
+ AC_PROG_INSTALL
+
+ # Work with the GNU or Cygnus source tree layout.
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.13-perl-5.26.patch b/dev-build/autoconf-vanilla/files/autoconf-2.13-perl-5.26.patch
new file mode 100644
index 000000000000..6fbc0cd1bc89
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.13-perl-5.26.patch
@@ -0,0 +1,12 @@
+diff -ruN autoconf-2.13.orig/autoscan.pl autoconf-2.13/autoscan.pl
+--- autoconf-2.13.orig/autoscan.pl 1999-01-05 14:28:42.000000000 +0100
++++ autoconf-2.13/autoscan.pl 2018-12-22 19:55:10.986732296 +0100
+@@ -232,7 +232,7 @@
+ # Strip out comments and variable references.
+ s/#.*//;
+ s/\$\([^\)]*\)//g;
+- s/\${[^\}]*}//g;
++ s/\$\{[^\}]*}//g;
+ s/@[^@]*@//g;
+
+ # Variable assignments.
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.13-test-fixes.patch b/dev-build/autoconf-vanilla/files/autoconf-2.13-test-fixes.patch
new file mode 100644
index 000000000000..b8a7e3b8ce99
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.13-test-fixes.patch
@@ -0,0 +1,18 @@
+newer gcc versions don't provide g77, so if it doesn't exist,
+don't bother trying to test it (and failing)
+
+http://bugs.gentoo.org/146592
+
+--- autoconf-2.13/testsuite/autoconf.s/syntax.exp
++++ autoconf-2.13/testsuite/autoconf.s/syntax.exp
+@@ -5,6 +5,10 @@
+ set macros [exec sed -n $script $srcdir/../acspecific.m4]
+
+ foreach mac $macros {
++ if { [string match "*F77*" "$mac"] && [catch {exec which g77} ignore_output] } then {
++ send_user "XFAIL: $mac\n"
++ continue
++ }
+ send_user "$mac\n"
+ autoconf_test $mac $mac
+ }
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.61-darwin.patch b/dev-build/autoconf-vanilla/files/autoconf-2.61-darwin.patch
new file mode 100644
index 000000000000..83f450e6f5af
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.61-darwin.patch
@@ -0,0 +1,11 @@
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -110,7 +110,7 @@
+ my $autoheader = $ENV{'AUTOHEADER'} || '@bindir@/@autoheader-name@';
+ my $automake = $ENV{'AUTOMAKE'} || 'automake';
+ my $aclocal = $ENV{'ACLOCAL'} || 'aclocal';
+-my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
++my $libtoolize = $ENV{'LIBTOOLIZE'} || 'glibtoolize';
+ my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
+
+ # --install -- as --add-missing in other tools.
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.69-fix-libtool-test.patch b/dev-build/autoconf-vanilla/files/autoconf-2.69-fix-libtool-test.patch
new file mode 100644
index 000000000000..e75eba621606
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.69-fix-libtool-test.patch
@@ -0,0 +1,31 @@
+From 247b02e5a5bb79ca6666e91de02ae2d3cb0cd325 Mon Sep 17 00:00:00 2001
+From: "Gary V. Vaughan" <gary@gnu.org>
+Date: Mon, 3 Nov 2014 07:25:03 +0100
+Subject: tests: avoid spurious test failure with libtool 2.4.3
+
+Based on a report by Bruce Dubbs.
+
+* tests/foreign.at (Libtool): Be tolerant of 'quote' replacing the
+older `quote'.
+
+Signed-off-by: Eric Blake <eblake@redhat.com>
+---
+ tests/foreign.at | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/foreign.at b/tests/foreign.at
+index a9dc33c..d4702cd 100644
+--- a/tests/foreign.at
++++ b/tests/foreign.at
+@@ -57,7 +57,7 @@ AT_CHECK([./config.guess || exit 77], [], [ignore], [ignore])
+ # Make sure at-path contains something valid, and let the test suite
+ # display it when verbose. And fail, skipping would too easily hide
+ # problems.
+-AT_CHECK([sed -n ["s,^.*\`\\(/[^']*\\)'.*,\\1,p"] stdout], [0], [stdout])
++AT_CHECK([sed -n ["s,^[^']*[\`']\\(/[^']*\\)'.*,\\1,p"] stdout], [0], [stdout])
+ AT_CHECK([test -f "`sed -n 1p stdout`"])
+
+ # Older libtoolize installed everything but install-sh...
+--
+cgit v1.0-41-gc330
+
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.69-make-tests-bash5-compatible.patch b/dev-build/autoconf-vanilla/files/autoconf-2.69-make-tests-bash5-compatible.patch
new file mode 100644
index 000000000000..1afcec15bb4f
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.69-make-tests-bash5-compatible.patch
@@ -0,0 +1,63 @@
+From 5b9db67786a428164abafe626ab11a2754aad528 Mon Sep 17 00:00:00 2001
+From: Ondrej Dubaj <odubaj@redhat.com>
+Date: Wed, 28 Aug 2019 07:39:50 +0200
+Subject: Port tests to Bash 5
+
+* tests/local.at (AT_CHECK_ENV, AT_CONFIG_CMP):
+Add BASH_ARGC, BASH_ARGV to list of variables to be ignored when
+comparing variable space dumps.
+(AT_CONFIG_CMP): Also ignore LINENO.
+* tests/m4sh.at: Also unset LINENO in 'reference' and 'test/test-1'.
+---
+ tests/local.at | 5 ++++-
+ tests/m4sh.at | 4 ++--
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/tests/local.at b/tests/local.at
+index a22958c0..852be285 100644
+--- a/tests/local.at
++++ b/tests/local.at
+@@ -325,7 +325,7 @@ if test -f state-env.before && test -f state-env.after; then
+ [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|RANLIB|SET_MAKE|YACC],
+ [GREP|[EF]GREP|SED],
+ [[_@]|.[*#?$].],
+- [argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
++ [argv|ARGC|LINENO|BASH_ARGC|BASH_ARGV|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
+ $act_file ||
+ test $? -eq 1 || echo failed >&2
+ ) 2>stderr-$act_file |
+@@ -382,6 +382,9 @@ do
+ /'\'\\\$\''=/ d
+ /^argv=/ d
+ /^ARGC=/ d
++ /^BASH_ARGC=/ d
++ /^BASH_ARGV=/ d
++ /^LINENO=/ d
+ ' $act_file >at_config_vars-$act_file
+ done
+ AT_CMP([at_config_vars-$1], [at_config_vars-$2])[]dnl
+diff --git a/tests/m4sh.at b/tests/m4sh.at
+index e9d70b02..cbdfcb62 100644
+--- a/tests/m4sh.at
++++ b/tests/m4sh.at
+@@ -254,7 +254,7 @@ AT_CHECK([autom4te -l m4sh $1.as -o $1])
+ # `_oline_', once processed and ran, produces our reference.
+ # We check that we find ourselves by looking at a string which is
+ # available only in the original script: `_oline_'.
+-AT_DATA_LINENO([reference], [false], [__OLINE__], [_oline__])
++AT_DATA_LINENO([reference], [true], [__OLINE__], [_oline__])
+ AT_CHECK([./reference], 0, [stdout])
+
+ # The reference:
+@@ -264,7 +264,7 @@ mv stdout expout
+ # Be sure to be out of the PATH.
+ AT_CHECK([mkdir test || exit 77])
+
+-AT_DATA_LINENO([test/test-1], [false], [__LINENO__], [LINENO])
++AT_DATA_LINENO([test/test-1], [true], [__LINENO__], [LINENO])
+ AT_CHECK([./test/test-1], 0, [expout])
+ AT_CHECK([(PATH=test$PATH_SEPARATOR$PATH; export PATH; exec test-1)],
+ 0, [expout])
+--
+cgit v1.2.1
+
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26-2.patch b/dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26-2.patch
new file mode 100644
index 000000000000..6becf807c43e
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26-2.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/625576
+
+--- autoconf-2.69/bin/autoheader.in
++++ autoconf-2.69/bin/autoheader.in
+@@ -173,6 +173,12 @@
+ # Source what the traces are trying to tell us.
+ verb "$me: running $autoconf to trace from $ARGV[0]";
+ my $quoted_tmp = shell_quote ($tmp);
++my $perl_tmp;
++if ( $tmp =~ /^\// ) {
++ $perl_tmp=$tmp;
++} else {
++ $perl_tmp="./".$tmp;
++}
+ xsystem ("$autoconf"
+ # If you change this list, update the
+ # `Autoheader-preselections' section of autom4te.in.
+@@ -182,9 +188,9 @@
+ . " " . shell_quote ($ARGV[0]) . " >$quoted_tmp/traces.pl");
+
+ local (%verbatim, %symbol);
+-debug "$me: \`do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
+-do "$tmp/traces.pl";
+-warn "couldn't parse $tmp/traces.pl: $@" if $@;
++debug "$me: \`do'ing $perl_tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
++do "$perl_tmp/traces.pl";
++warn "couldn't parse $perl_tmp/traces.pl: $@" if $@;
+ unless ($config_h)
+ {
+ error "error: AC_CONFIG_HEADERS not found in $ARGV[0]";
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26.patch b/dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26.patch
new file mode 100644
index 000000000000..b3d7888ca722
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.69-perl-5.26.patch
@@ -0,0 +1,28 @@
+From e5654a5591884b92633c7785f325626711e7f7aa Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 29 Jan 2013 13:46:48 -0800
+Subject: [PATCH] autoscan: port to perl 5.17
+
+* bin/autoscan.in (scan_sh_file): Escape '{'. This avoids a
+feature that is deprecated in Perl 5.17. Reported by Ray Lauff in
+<http://lists.gnu.org/archive/html/bug-autoconf/2013-01/msg00059.html>.
+---
+ bin/autoscan.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/autoscan.in b/bin/autoscan.in
+index 993a750..db1df79 100644
+--- a/bin/autoscan.in
++++ b/bin/autoscan.in
+@@ -358,7 +358,7 @@ sub scan_sh_file ($)
+ {
+ # Strip out comments and variable references.
+ s/#.*//;
+- s/\${[^\}]*}//g;
++ s/\$\{[^\}]*}//g;
+ s/@[^@]*@//g;
+
+ # Tokens in the code.
+--
+1.9.1
+
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch b/dev-build/autoconf-vanilla/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch
new file mode 100644
index 000000000000..5b53d17135bc
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch
@@ -0,0 +1,35 @@
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=b27bc3e230bb12fdd9a813e38e82bc4c3e22b4cc
+
+Note: we drop the comma from the comment because some packages
+have bad quoting, and while that will need to be sorted when/if
+autoconf 2.72 is released, we've got our hands full with the
+Clang situation right now (bug #871753).
+
+From b27bc3e230bb12fdd9a813e38e82bc4c3e22b4cc Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 31 Aug 2021 16:30:46 -0700
+Subject: Port AC_LANG_CALL(C) to C++
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* lib/autoconf/c.m4 (AC_LANG_CALL(C)): Add an extern "C" if C++.
+Problem reported by Vincent Lefèvre (sr #110532).
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -126,7 +126,13 @@ m4_define([AC_LANG_CALL(C)],
+ m4_if([$2], [main], ,
+ [/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
++ builtin and then its argument prototype would still apply.
++ The 'extern "C"' is for builds by C++ compilers;
++ although this is not generally supported in C code supporting it here
++ has little cost and some practical benefit (sr 110532). */
++#ifdef __cplusplus
++extern "C"
++#endif
+ char $2 ();])], [return $2 ();])])
+
+
+cgit v1.1
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.71-conflicts.patch b/dev-build/autoconf-vanilla/files/autoconf-2.71-conflicts.patch
new file mode 100644
index 000000000000..879664f4096e
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.71-conflicts.patch
@@ -0,0 +1,47 @@
+From 0d784a60bb65eb730a1b5f2b24887192d058629b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org>
+Date: Sat, 4 Nov 2023 00:32:48 +0100
+Subject: [PATCH] Append '-vanilla' to pkgdatadir
+
+---
+ Makefile.am | 3 +++
+ Makefile.in | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 17e1f8f..73d2ea7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,6 +18,9 @@
+
+ ACLOCAL_AMFLAGS = -I m4
+
++# Work around file conflicts against dev-build/autoconf -- Arsen
++pkgdatadir = $(datadir)/@PACKAGE@-vanilla-@VERSION@
++
+ ## All of these will be incrementally updated later, here or in included
+ ## makefile fragments.
+ ETAGS_ARGS =
+diff --git a/Makefile.in b/Makefile.in
+index dcd27f7..704248f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -195,7 +195,6 @@ am__make_running_with_option = \
+ test $$has_opt = yes
+ am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+ am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+-pkgdatadir = $(datadir)/@PACKAGE@-@VERSION@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
+@@ -401,6 +400,7 @@ distuninstallcheck_listfiles = find . -type f -print
+ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+ distcleancheck_listfiles = find . -type f -print
++pkgdatadir = $(datadir)/@PACKAGE@-vanilla-@VERSION@
+ ACLOCAL = @ACLOCAL@
+ AMTAR = @AMTAR@
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+--
+2.42.0
+
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.71-darwin.patch b/dev-build/autoconf-vanilla/files/autoconf-2.71-darwin.patch
new file mode 100644
index 000000000000..c122aee4b22d
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.71-darwin.patch
@@ -0,0 +1,11 @@
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -122,7 +122,7 @@
+ my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
+ my $automake = $ENV{'AUTOMAKE'} || 'automake';
+ my $aclocal = $ENV{'ACLOCAL'} || 'aclocal';
+-my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
++my $libtoolize = $ENV{'LIBTOOLIZE'} || 'glibtoolize';
+ my $intltoolize = $ENV{'INTLTOOLIZE'} || 'intltoolize';
+ my $gtkdocize = $ENV{'GTKDOCIZE'} || 'gtkdocize';
+ my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.71-make-4.4.patch b/dev-build/autoconf-vanilla/files/autoconf-2.71-make-4.4.patch
new file mode 100644
index 000000000000..4dcf05996180
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.71-make-4.4.patch
@@ -0,0 +1,25 @@
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=31f673434ee402258b45e958c88acc8725d82b1a
+https://savannah.gnu.org/bugs/?63040
+https://bugs.gentoo.org/869257
+
+From 31f673434ee402258b45e958c88acc8725d82b1a Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Fri, 9 Sep 2022 16:54:11 -0500
+Subject: Port to GNU make 4.4
+
+* cfg.mk (PATH): Assign eagerly, and simplify shell use, avoiding
+use of the shell entirely if PWD is set, as it should be.
+Problem reported by Sergei Trofimovich in:
+https://lists.gnu.org/r/autoconf-patches/2022-09/msg00007.html
+--- a/cfg.mk
++++ b/cfg.mk
+@@ -18,7 +18,7 @@
+ # This file is '-include'd into GNUmakefile.
+
+ # Build with our own versions of these tools, when possible.
+-export PATH = $(shell echo "`pwd`/tests:$$PATH")
++export PATH := $(or $(PWD),$(shell pwd))/tests:$(PATH)
+
+ # Remove the autoreconf-provided INSTALL, so that we regenerate it.
+ _autoreconf = autoreconf -i -v && rm -f INSTALL
+cgit v1.1
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.71-time.patch b/dev-build/autoconf-vanilla/files/autoconf-2.71-time.patch
new file mode 100644
index 000000000000..8ecfe10f40a3
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.71-time.patch
@@ -0,0 +1,49 @@
+From e194b3c7e00429612a9d40e78ea571687fd25b91 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
+Date: Sun, 1 Aug 2021 19:07:48 +0200
+Subject: [PATCH] Use stat from Time::HiRes (instead of File::stat)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
+---
+ lib/Autom4te/FileUtils.pm | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm
+index a182031b..27a5fd91 100644
+--- a/lib/Autom4te/FileUtils.pm
++++ b/lib/Autom4te/FileUtils.pm
+@@ -34,12 +34,12 @@ This perl module provides various general purpose file handling functions.
+
+ =cut
+
+-use 5.006;
++use 5.008;
+ use strict;
+ use warnings FATAL => 'all';
+
+ use Exporter;
+-use File::stat;
++use Time::HiRes qw(stat);
+ use IO::File;
+
+ use Autom4te::Channels;
+@@ -115,10 +115,11 @@ sub mtime ($)
+ return 0
+ if $file eq '-' || ! -f $file;
+
+- my $stat = stat ($file)
++ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
++ $atime,$mtime,$ctime,$blksize,$blocks) = stat ($file)
+ or fatal "cannot stat $file: $!";
+
+- return $stat->mtime;
++ return $mtime;
+ }
+
+
+--
+2.31.1
+
diff --git a/dev-build/autoconf-vanilla/files/autoconf-2.72-conflicts.patch b/dev-build/autoconf-vanilla/files/autoconf-2.72-conflicts.patch
new file mode 100644
index 000000000000..b15b0267f140
--- /dev/null
+++ b/dev-build/autoconf-vanilla/files/autoconf-2.72-conflicts.patch
@@ -0,0 +1,49 @@
+From ca78a8d7d653ac8199fa0346a814289ed7aef960 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org>
+Date: Sat, 4 Nov 2023 00:32:48 +0100
+Subject: [PATCH] Append '-vanilla' to pkgdatadir
+
+---
+ Makefile.am | 3 +++
+ Makefile.in | 4 +++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1db714b..cb0650a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,6 +18,9 @@
+
+ ACLOCAL_AMFLAGS = -I m4
+
++# Work around file conflicts against dev-build/autoconf -- Arsen
++pkgdatadir = $(datadir)/@PACKAGE@-vanilla-@VERSION@
++
+ ## All of these will be incrementally updated later, here or in included
+ ## makefile fragments.
+ ETAGS_ARGS =
+diff --git a/Makefile.in b/Makefile.in
+index e5b3da5..04a3732 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -195,7 +195,6 @@ am__make_running_with_option = \
+ test $$has_opt = yes
+ am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+ am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+-pkgdatadir = $(datadir)/@PACKAGE@-@VERSION@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
+@@ -398,6 +397,9 @@ distuninstallcheck_listfiles = find . -type f -print
+ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+ distcleancheck_listfiles = find . -type f -print
++
++# Work around file conflicts against dev-build/autoconf -- Arsen
++pkgdatadir = $(datadir)/@PACKAGE@-vanilla-@VERSION@
+ ACLOCAL = @ACLOCAL@
+ AMTAR = @AMTAR@
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+--
+2.43.0
+
diff --git a/dev-build/autoconf-vanilla/metadata.xml b/dev-build/autoconf-vanilla/metadata.xml
new file mode 100644
index 000000000000..4ff4a48125bc
--- /dev/null
+++ b/dev-build/autoconf-vanilla/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="savannah">autoconf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/autoconf-wrapper/Manifest b/dev-build/autoconf-wrapper/Manifest
new file mode 100644
index 000000000000..a7b5745a9235
--- /dev/null
+++ b/dev-build/autoconf-wrapper/Manifest
@@ -0,0 +1,2 @@
+DIST autotools-wrappers-at-20231224.tar.gz 3645 BLAKE2B fbf414240fe3a4b5d2c24ea649cc347df46bf7f0297bc0d27f98265f57753a596929277403496d76d6249f878bffa8be3e77b62ce9138df6920dd9a5216b300a SHA512 a3cc51e1eb1d055a8161b86bc3497a9bea3cb972d8d22b2f9fc712ca5ecb7809e84083a5754705911f2d037cbff83747476e96b412bfe11183273764de0d5331
+DIST autotools-wrappers-at-20260320.tar.gz 3644 BLAKE2B 6f28eab0182ed4029de7bdbe4ec91b228a3a9015acb25fd33626f50103b0a6f9e70bd6a187a60a2cf85cc620276594f74a0c1457aefcf5123cf48cda229b1ca6 SHA512 500893c108c6947fab30c47b82a0147c6702abf49b0b5c4a3c4d9451e1e430e44c4f137ec18ac18024dde5d261f30392f86f89526bd1adf806e492951587d788
diff --git a/dev-build/autoconf-wrapper/autoconf-wrapper-20231224.ebuild b/dev-build/autoconf-wrapper/autoconf-wrapper-20231224.ebuild
new file mode 100644
index 000000000000..3acaa4308269
--- /dev/null
+++ b/dev-build/autoconf-wrapper/autoconf-wrapper-20231224.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="autotools-wrappers-at-${PV}"
+
+# Remember to modify LAST_KNOWN_VER 'upstream' on new autoconf releases!
+
+DESCRIPTION="Wrapper for autoconf to manage multiple autoconf versions"
+HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/autotools-wrappers.git
+ https://github.com/gentoo/autotools-wrappers
+ "
+ inherit git-r3
+else
+ SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+src_prepare() {
+ default
+
+ # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell
+ if use prefix ; then
+ sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' ac-wrapper.sh || die
+ fi
+}
+
+src_install() {
+ exeinto /usr/$(get_libdir)/misc
+ doexe ac-wrapper.sh
+
+ dodir /usr/bin
+ local x=
+ for x in auto{conf,header,m4te,reconf,scan,update} ifnames ; do
+ dosym -r /usr/$(get_libdir)/misc/ac-wrapper.sh /usr/bin/${x}
+ done
+}
diff --git a/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild b/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild
new file mode 100644
index 000000000000..5a2de4e38414
--- /dev/null
+++ b/dev-build/autoconf-wrapper/autoconf-wrapper-20260320.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="autotools-wrappers-at-${PV}"
+
+# Remember to modify LAST_KNOWN_VER 'upstream' on new autoconf releases!
+
+DESCRIPTION="Wrapper for autoconf to manage multiple autoconf versions"
+HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/autotools-wrappers.git
+ https://github.com/gentoo/autotools-wrappers
+ "
+ inherit git-r3
+else
+ SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+src_prepare() {
+ default
+
+ # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell
+ if use prefix ; then
+ sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' ac-wrapper.sh || die
+ fi
+}
+
+src_install() {
+ exeinto /usr/$(get_libdir)/misc
+ doexe ac-wrapper.sh
+
+ dodir /usr/bin
+ local x=
+ for x in auto{conf,header,m4te,reconf,scan,update} ifnames ; do
+ dosym -r /usr/$(get_libdir)/misc/ac-wrapper.sh /usr/bin/${x}
+ done
+}
diff --git a/dev-build/autoconf-wrapper/autoconf-wrapper-99999999.ebuild b/dev-build/autoconf-wrapper/autoconf-wrapper-99999999.ebuild
new file mode 100644
index 000000000000..c9a396206d4f
--- /dev/null
+++ b/dev-build/autoconf-wrapper/autoconf-wrapper-99999999.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="autotools-wrappers-at-${PV}"
+
+# Remember to modify LAST_KNOWN_VER 'upstream' on new autoconf releases!
+
+DESCRIPTION="Wrapper for autoconf to manage multiple autoconf versions"
+HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/autotools-wrappers.git
+ https://github.com/gentoo/autotools-wrappers
+ "
+ inherit git-r3
+else
+ SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_P}"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+src_prepare() {
+ default
+
+ # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell
+ if use prefix ; then
+ sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' ac-wrapper.sh || die
+ fi
+}
+
+src_install() {
+ exeinto /usr/$(get_libdir)/misc
+ doexe ac-wrapper.sh
+
+ dodir /usr/bin
+ local x=
+ for x in auto{conf,header,m4te,reconf,scan,update} ifnames ; do
+ dosym -r /usr/$(get_libdir)/misc/ac-wrapper.sh /usr/bin/${x}
+ done
+}
diff --git a/dev-build/autoconf-wrapper/metadata.xml b/dev-build/autoconf-wrapper/metadata.xml
new file mode 100644
index 000000000000..2847c0b0420f
--- /dev/null
+++ b/dev-build/autoconf-wrapper/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="gentoo">proj/autotools-wrappers</remote-id>
+ <remote-id type="github">gentoo/autotools-wrappers</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/autoconf/Manifest b/dev-build/autoconf/Manifest
new file mode 100644
index 000000000000..7670062a50f7
--- /dev/null
+++ b/dev-build/autoconf/Manifest
@@ -0,0 +1,10 @@
+DIST autoconf-2.13.tar.gz 443844 BLAKE2B ade10f9d4a0b1a0e8b752eee817cfe100d77b074192b9892330402ddc5b62dda1a3485ce0c36e72191daa9fd49382b99851cb6aa3a13aca8cf2ae6e884638fb6 SHA512 602584f4c77b7a554aaa068eda5409b68eb0b3229e9c224bffb91c83c4314d25de15bd560a323626ff78f6df339c79e1ef8938c54b78ecadf4dc75c5241290ad
+DIST autoconf-2.69-runstatedir_patches.tar.xz 257096 BLAKE2B ae765e0ca7fe8261117f6f6b75611c232fc3d4016c22c86346afa72f2b7e6c3b7ccc1f9dfe134b2443f8bde6d578b503d79cf88472f76ce75b6c2e843ef55b8e SHA512 55f93299fe5243151f6bb782986a7935270f06d5065929f4d365a37aba05703e3ce66ecf7981d30413db50ee6b4f77d81d10a71b539c8a366c5c5a156c5443da
+DIST autoconf-2.69.tar.xz 1214744 BLAKE2B 71d33d72a06e9a05fbed0eda73bc9d8a3805c7c90bf082959862f93f3c5f01192114176e84d84ecb58fa99512eafbc0ab21ad1407be18c8c63bb3dc1117c482d SHA512 995d3e5a8eb1eb37e2b7fae53c6ec7a9b4df997286b7d643344818f94636756b1bf5ff5ea9155e755cb9461149a853dfbf2886fc6bd7132e5afa9c168e306e9b
+DIST autoconf-2.69.tar.xz.sig 556 BLAKE2B 07eaae3429f4bbd3ea40b4b366db383d9e322b03def7956f8961a20a6759072e8c327d4723313097f75caba0513928c37270beda8f8b491888fdd47a2ee80ad6 SHA512 e54082e00522463ba7d6b6ea6d700b8799a41177b34e057dd72abbe46219f0ce58674575d60fb106e37deeee8871d4ccfd85746c2d0e096a71eb096ffdb3020c
+DIST autoconf-2.71.tar.xz 1292296 BLAKE2B 7fd4b98b4cfff10720e8da6ee91045637991643b50fcb3e47a0ecfcc01600f7b7b36fd1c0a5f08b68a418f1bdbd8d5a98de1008157595dd37cc3a31facb61416 SHA512 73d32b4adcbe24e3bafa9f43f59ed3b6efbd3de0f194e5ec90375f35da1199c583f5d3e89139b7edbad35171403709270e339ffa56a2ecb9b3123e9285021ff0
+DIST autoconf-2.71.tar.xz.sig 833 BLAKE2B a2641a0bec3b475874811dd21dc32d34672f4f084ea16d48bd0655df37251be810026c20e35869503e664701edcb64f260b142db671e160a554c2ee982838355 SHA512 83e6bf4504f5d188cad1387ce1f1ce4b14f5ee4961bbfd5c83dd281d724392a95b394079bfaa093eb81129873e668b6ca1eee013a60cfb76edf34454756f6667
+DIST autoconf-2.72.tar.xz 1389680 BLAKE2B 01caeced9e53d8bd39fb0cf4929322f0d463971b0a96368aa55892026897a9e98c2ca84a77db1b3c6c4483aea54b96da16a7bc00b7ac15e23c6b0471438012db SHA512 c4e9fbd858666d3e5c3b4fe7f89aa3e8e3a0a00dc7e166f8147d937d911b77ba3ac6a016f9d223ccdd830bc8960b3e60397c0607cc6a1fd2c50c7492839ddd17
+DIST autoconf-2.72.tar.xz.sig 833 BLAKE2B cc33101c5d2bd28f233e54a2843d3c81dc9729238b0900a8f23ef17b982aa0e0194892c07b1365246b6c9c0ea74becd288ae581ee34d593131b83538c69a6204 SHA512 7a0d350b23cf47c45811ae35928a4fec67ce1f3adb1965904fe6d9a0fad68139df4902662bcf4731a2f809381cae0b265a8f1f57d0a9a39777250a97a3c481d9
+DIST autoconf-2.73.tar.xz 1417428 BLAKE2B b5f0b9d3baf883148de8f1d7ae102b8742c0bf57b9ae44286f0da1fef82d7ea8dd1117f04cc85f52254e282f886780165b9773953b3d8ed89130b8419cd288f7 SHA512 be051d542f9bd93752eccbdc9b1f3cf1fa4069a153ef34edd5303bfdf162e24d56e33e70df1b978cebb8d1139a82417bb8299cfe6c38cff8613040a829cc624f
+DIST autoconf-2.73.tar.xz.sig 870 BLAKE2B 6f29c0a5168d5d86929d079f0423121e5e9e724378d335ca65e215be7effac7423c2c40e0d25b13a533f4309afd7fa86e2c8457bcefce7a79e5a2029863fa33f SHA512 6ed4bf2cba7d106248d44cbc38ab84e9be427540ca76df40b16ee02128dbc076f8f2b6f9a92d5965956ad9cf38d90789ba81bf543d4b276c0c8cb03670248862
diff --git a/dev-build/autoconf/autoconf-2.13-r9.ebuild b/dev-build/autoconf/autoconf-2.13-r9.ebuild
new file mode 100644
index 000000000000..ea6f5f056da1
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.13-r9.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-autoconf
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="${PV:0:3}"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ dev-lang/perl
+ sys-devel/m4
+ test? ( dev-util/dejagnu )
+"
+RDEPEND="
+ ${BDEPEND}
+ sys-apps/texinfo
+ >=dev-build/autoconf-wrapper-13
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/${P}-destdir.patch
+ "${FILESDIR}"/${P}-test-fixes.patch #146592
+ "${FILESDIR}"/${P}-perl-5.26.patch
+ "${FILESDIR}"/${P}-K-R-decls-clang.patch
+ "${FILESDIR}"/${P}-Clang-16-fixes-for-various-tests.patch
+ "${FILESDIR}"/${P}-skip-AC_FUNC_GETLOADAVG-test.patch
+)
+
+src_configure() {
+ # make sure configure is newer than configure.in
+ touch configure || die
+
+ # need to include --exec-prefix and --bindir or our
+ # DESTDIR patch will trigger sandbox hate :(
+ #
+ # need to force locale to C to avoid bugs in the old
+ # configure script breaking the install paths #351982
+ #
+ # force to `awk` so that we don't encode another awk that
+ # happens to currently be installed, but might later be
+ # uninstalled (like mawk). same for m4.
+ ac_cv_path_M4="m4" \
+ ac_cv_prog_AWK="awk" \
+ LC_ALL=C \
+ econf \
+ --exec-prefix="${EPREFIX}"/usr \
+ --bindir="${EPREFIX}"/usr/bin \
+ --program-suffix="-${PV}" \
+ --infodir="${TC_AUTOCONF_INFOPATH}"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+}
diff --git a/dev-build/autoconf/autoconf-2.69-r11.ebuild b/dev-build/autoconf/autoconf-2.69-r11.ebuild
new file mode 100644
index 000000000000..539ff2e40731
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.69-r11.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ # Eric Blake signed 2.69 so use sec-keys/openpgp-keys-m4
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/m4.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz
+ https://dev.gentoo.org/~polynomial-c/dist/${P}-runstatedir_patches.tar.xz
+ verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )
+ "
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-m4 )"
+fi
+
+inherit toolchain-autoconf multiprocessing
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${PV}"
+
+BDEPEND+="
+ >=sys-devel/m4-1.4.16
+ >=dev-lang/perl-5.6
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-13
+ !~${CATEGORY}/${P}:2.5
+"
+
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.69-perl-5.26.patch
+ "${FILESDIR}"/${P}-fix-libtool-test.patch
+ "${FILESDIR}"/${PN}-2.69-perl-5.26-2.patch
+ "${FILESDIR}"/${P}-make-tests-bash5-compatible.patch
+ "${FILESDIR}"/${P}-K-R-decls-clang.patch
+
+ "${WORKDIR}"/patches/${P}-texinfo.patch
+)
+
+src_unpack() {
+ if use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig}
+ fi
+
+ default
+}
+
+src_prepare() {
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-2.61-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+}
diff --git a/dev-build/autoconf/autoconf-2.71-r9.ebuild b/dev-build/autoconf/autoconf-2.71-r9.ebuild
new file mode 100644
index 000000000000..c235544d188d
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.71-r9.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ # For _beta handling replace with real version number
+ MY_PV="${PV}"
+ MY_P="${PN}-${MY_PV}"
+ #PATCH_TARBALL_NAME="${PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${PN}/${MY_P}.tar.xz
+ https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz
+ verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.xz.sig )
+ "
+ #SRC_URI+=" https://dev.gentoo.org/~polynomial-c/${PATCH_TARBALL_NAME}.tar.xz"
+ S="${WORKDIR}"/${MY_P}
+
+ if ! [[ ${PV} == *_beta* ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf multiprocessing
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${PV/_*}"
+
+# for 2.71, our Perl time resolution patch changes our min Perl from 5.6
+# (vanilla upstream for 2.71) to 5.8.
+BDEPEND+="
+ >=sys-devel/m4-1.4.16
+ >=dev-lang/perl-5.8
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-15
+ sys-devel/gnuconfig
+ !~${CATEGORY}/${P}:2.5
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-AC_LANG_CALL_C_cxx.patch
+ "${FILESDIR}"/${P}-time.patch
+ "${FILESDIR}"/${P}-AC_C_BIGENDIAN-lto.patch
+ "${FILESDIR}"/${P}-K-R-decls-clang.patch
+ "${FILESDIR}"/${P}-make-4.4.patch
+ "${FILESDIR}"/${P}-K-R-decls-clang-deux.patch
+ "${FILESDIR}"/${P}-cxx11typo.patch
+ "${FILESDIR}"/${P}-bash52.patch
+)
+
+src_prepare() {
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ local pdir
+ for pdir in "${WORKDIR}"/{upstream_,}patches ; do
+ if [[ -d "${pdir}" ]] ; then
+ eapply ${pdir}
+ fi
+ done
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf/autoconf-2.72-r7.ebuild b/dev-build/autoconf/autoconf-2.72-r7.ebuild
new file mode 100644
index 000000000000..d3eb39206896
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.72-r7.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_VER 'upstream' in dev-build/autoconf-wrapper
+# on new autoconf releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOCONF and _autoconf_atom case statement in autotools.eclass.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+else
+ # For _beta handling replace with real version number
+ MY_PV="${PV}"
+ MY_P="${PN}-${MY_PV}"
+ #PATCH_TARBALL_NAME="${PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${PN}/${MY_P}.tar.xz
+ https://alpha.gnu.org/pub/gnu/${PN}/${MY_P}.tar.xz
+ https://meyering.net/ac/${P}.tar.xz
+ verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.xz.sig )
+ "
+ S="${WORKDIR}"/${MY_P}
+
+ if [[ ${PV} != *_beta* ]] && ! [[ $(ver_cut 3) =~ [a-z] ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf multiprocessing
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="$(ver_cut 1-2)"
+
+BDEPEND+="
+ >=dev-lang/perl-5.10
+ >=sys-devel/m4-1.4.16
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-20231224
+ sys-devel/gnuconfig
+ !~${CATEGORY}/${P}:2.5
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
+ "${FILESDIR}"/${PN}-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
+ "${FILESDIR}"/${PN}-2.72-Port-C11-test-to-C-20.patch
+ "${FILESDIR}"/${PN}-2.72-Port-AC_SYS_LARGEFILE-to-CXX.patch
+)
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ # Avoid the "dirty" suffix in the git version by generating it
+ # before we run later stages which might modify source files.
+ local ver=$(./build-aux/git-version-gen .tarball-version)
+ echo "${ver}" > .tarball-version || die
+
+ autoreconf -f -i || die
+ fi
+
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf/autoconf-2.73-r2.ebuild b/dev-build/autoconf/autoconf-2.73-r2.ebuild
new file mode 100644
index 000000000000..9170a04e78bd
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.73-r2.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_VER 'upstream' in dev-build/autoconf-wrapper
+# on new autoconf releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOCONF and _autoconf_atom case statement in autotools.eclass.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+ AUTOCONF_SLOT="9999"
+else
+ #PATCH_TARBALL_NAME="${PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz
+ https://meyering.net/ac/${P}.tar.xz
+ verify-sig? (
+ https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz.sig
+ mirror://gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+
+ AUTOCONF_EXTRA_VER=$(ver_cut 3)
+ if [[ ${AUTOCONF_EXTRA_VER} -ge 90 ]] ; then
+ # Prereleases get no keywords and their slot bumped up
+ # e.g. SLOT for 2.72(.90) -> 2.73
+ AUTOCONF_SLOT=$(ver_cut 1).$((($(ver_cut 2) + 1)))
+ else
+ AUTOCONF_SLOT=$(ver_cut 1-2)
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf multiprocessing
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${AUTOCONF_SLOT}"
+
+BDEPEND+="
+ >=dev-lang/perl-5.10
+ >=sys-devel/m4-1.4.16
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-20260320
+ sys-devel/gnuconfig
+ !~${CATEGORY}/${P}:2.5
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.73-maintainer-mode-autoheader.patch
+)
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ # Avoid the "dirty" suffix in the git version by generating it
+ # before we run later stages which might modify source files.
+ local ver=$(./build-aux/git-version-gen .tarball-version)
+ echo "${ver}" > .tarball-version || die
+
+ export WANT_AUTOCONF=2.5
+ export WANT_AUTOMAKE=1.17
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ fi
+
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-2.73-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf/autoconf-2.73.ebuild b/dev-build/autoconf/autoconf-2.73.ebuild
new file mode 100644
index 000000000000..06adef2d8a42
--- /dev/null
+++ b/dev-build/autoconf/autoconf-2.73.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_VER 'upstream' in dev-build/autoconf-wrapper
+# on new autoconf releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOCONF and _autoconf_atom case statement in autotools.eclass.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+ AUTOCONF_SLOT="9999"
+else
+ #PATCH_TARBALL_NAME="${PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz
+ https://meyering.net/ac/${P}.tar.xz
+ verify-sig? (
+ https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz.sig
+ mirror://gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+
+ AUTOCONF_EXTRA_VER=$(ver_cut 3)
+ if [[ ${AUTOCONF_EXTRA_VER} -ge 90 ]] ; then
+ # Prereleases get no keywords and their slot bumped up
+ # e.g. SLOT for 2.72(.90) -> 2.73
+ AUTOCONF_SLOT=$(ver_cut 1).$((($(ver_cut 2) + 1)))
+ else
+ AUTOCONF_SLOT=$(ver_cut 1-2)
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf multiprocessing
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${AUTOCONF_SLOT}"
+
+BDEPEND+="
+ >=dev-lang/perl-5.10
+ >=sys-devel/m4-1.4.16
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-20260320
+ sys-devel/gnuconfig
+ !~${CATEGORY}/${P}:2.5
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ # Avoid the "dirty" suffix in the git version by generating it
+ # before we run later stages which might modify source files.
+ local ver=$(./build-aux/git-version-gen .tarball-version)
+ echo "${ver}" > .tarball-version || die
+
+ export WANT_AUTOCONF=2.5
+ export WANT_AUTOMAKE=1.17
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ fi
+
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-2.71-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf/autoconf-9999.ebuild b/dev-build/autoconf/autoconf-9999.ebuild
new file mode 100644
index 000000000000..9170a04e78bd
--- /dev/null
+++ b/dev-build/autoconf/autoconf-9999.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_VER 'upstream' in dev-build/autoconf-wrapper
+# on new autoconf releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOCONF and _autoconf_atom case statement in autotools.eclass.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/autoconf.git"
+ inherit git-r3
+ AUTOCONF_SLOT="9999"
+else
+ #PATCH_TARBALL_NAME="${PN}-2.70-patches-01"
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/zackweinberg.asc
+ inherit verify-sig
+
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz
+ https://meyering.net/ac/${P}.tar.xz
+ verify-sig? (
+ https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz.sig
+ mirror://gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+
+ AUTOCONF_EXTRA_VER=$(ver_cut 3)
+ if [[ ${AUTOCONF_EXTRA_VER} -ge 90 ]] ; then
+ # Prereleases get no keywords and their slot bumped up
+ # e.g. SLOT for 2.72(.90) -> 2.73
+ AUTOCONF_SLOT=$(ver_cut 1).$((($(ver_cut 2) + 1)))
+ else
+ AUTOCONF_SLOT=$(ver_cut 1-2)
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-zackweinberg )"
+fi
+
+inherit toolchain-autoconf multiprocessing
+
+DESCRIPTION="Used to create autoconfiguration files"
+HOMEPAGE="https://www.gnu.org/software/autoconf/autoconf.html"
+
+LICENSE="GPL-3+"
+SLOT="${AUTOCONF_SLOT}"
+
+BDEPEND+="
+ >=dev-lang/perl-5.10
+ >=sys-devel/m4-1.4.16
+"
+RDEPEND="
+ ${BDEPEND}
+ >=dev-build/autoconf-wrapper-20260320
+ sys-devel/gnuconfig
+ !~${CATEGORY}/${P}:2.5
+"
+[[ ${PV} == 9999 ]] && BDEPEND+=" >=sys-apps/texinfo-4.3"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.73-maintainer-mode-autoheader.patch
+)
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ # Avoid the "dirty" suffix in the git version by generating it
+ # before we run later stages which might modify source files.
+ local ver=$(./build-aux/git-version-gen .tarball-version)
+ echo "${ver}" > .tarball-version || die
+
+ export WANT_AUTOCONF=2.5
+ export WANT_AUTOMAKE=1.17
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ fi
+
+ # usr/bin/libtool is provided by binutils-apple, need gnu libtool
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-2.73-darwin.patch )
+ fi
+
+ # Save timestamp to avoid later makeinfo call
+ touch -r doc/{,old_}autoconf.texi || die
+
+ toolchain-autoconf_src_prepare
+
+ # Restore timestamp to avoid makeinfo call
+ # We already have an up to date autoconf.info page at this point.
+ touch -r doc/{old_,}autoconf.texi || die
+}
+
+src_test() {
+ emake check TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+}
+
+src_install() {
+ toolchain-autoconf_src_install
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ local f
+ for f in config.{guess,sub} ; do
+ ln -fs ../../gnuconfig/${f} \
+ "${ED}"/usr/share/autoconf-*/build-aux/${f} || die
+ done
+}
diff --git a/dev-build/autoconf/files/autoconf-2.13-Clang-16-fixes-for-various-tests.patch b/dev-build/autoconf/files/autoconf-2.13-Clang-16-fixes-for-various-tests.patch
new file mode 100644
index 000000000000..d158f7974e81
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-Clang-16-fixes-for-various-tests.patch
@@ -0,0 +1,331 @@
+From cb92e8110d1f274b28d5c156a93c525d2b748644 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 9 Nov 2022 08:27:53 +0000
+Subject: [PATCH] Clang 16 fixes for various tests
+
+Fixes -Wimplicit-int and -Wimplicit-function-declaration
+issues in various built-in tests.
+
+Noticed when building XEmacs 21.4 (thanks to matsl for reporting).
+
+Bug: https://bugs.gentoo.org/874366
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/acgeneral.m4
++++ b/acgeneral.m4
+@@ -1988,7 +1988,8 @@ changequote([, ])dnl
+ AC_MSG_CHECKING(size of $1)
+ AC_CACHE_VAL(AC_CV_NAME,
+ [AC_TRY_RUN([#include <stdio.h>
+-main(void)
++#include <stdlib.h>
++int main(void)
+ {
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+--- a/acspecific.m4
++++ b/acspecific.m4
+@@ -371,7 +371,7 @@ changequote(, )dnl
+ sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
+ changequote([, ])dnl
+ AC_CACHE_VAL(ac_cv_prog_cc_${ac_cc}_c_o,
+-[echo 'foo(void){}' > conftest.c
++[echo 'int foo(void){}' > conftest.c
+ # Make sure it works both with $CC and with simple cc.
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+@@ -706,6 +706,7 @@ fi
+ if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ AC_TRY_RUN([#include <ctype.h>
++#include <stdlib.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+ #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+@@ -819,6 +820,7 @@ esac
+
+ AC_CACHE_CHECK(whether closedir returns void, ac_cv_func_closedir_void,
+ [AC_TRY_RUN([#include <sys/types.h>
++#include <stdlib.h>
+ #include <$ac_header_dirent>
+ int closedir(...); int main(void) { exit(closedir(opendir(".")) != 0); }],
+ ac_cv_func_closedir_void=no, ac_cv_func_closedir_void=yes, ac_cv_func_closedir_void=yes)])
+@@ -907,6 +909,8 @@ AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups,
+ changequote(<<, >>)dnl
+ <<
+ /* Thanks to Mike Rendell for this test. */
++#include <stdlib.h>
++#include <unistd.h>
+ #include <sys/types.h>
+ #define NGID 256
+ #undef MAX
+@@ -988,6 +992,7 @@ AC_DEFUN(AC_FUNC_CLOSEDIR_VOID,
+ [AC_REQUIRE([AC_HEADER_DIRENT])dnl
+ AC_CACHE_CHECK(whether closedir returns void, ac_cv_func_closedir_void,
+ [AC_TRY_RUN([#include <sys/types.h>
++#include <stdlib.h>
+ #include <$ac_header_dirent>
+ int closedir(...); int main(void) { exit(closedir(opendir(".")) != 0); }],
+ ac_cv_func_closedir_void=no, ac_cv_func_closedir_void=yes, ac_cv_func_closedir_void=yes)])
+@@ -1001,7 +1006,9 @@ AC_DEFUN(AC_FUNC_FNMATCH,
+ # Some versions of Solaris or SCO have a broken fnmatch function.
+ # So we run a test program. If we are cross-compiling, take no chance.
+ # Thanks to John Oleynick and Franc,ois Pinard for this test.
+-[AC_TRY_RUN([int main(void) { exit (fnmatch ("a*", "abc", 0) != 0); }],
++[AC_TRY_RUN([#include <stdlib.h>
++#include <fnmatch.h>
++int main(void) { exit (fnmatch ("a*", "abc", 0) != 0); }],
+ ac_cv_func_fnmatch_works=yes, ac_cv_func_fnmatch_works=no,
+ ac_cv_func_fnmatch_works=no)])
+ if test $ac_cv_func_fnmatch_works = yes; then
+@@ -1038,6 +1045,7 @@ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
+ #include <sys/types.h>
+ #include <fcntl.h>
+ #include <sys/mman.h>
++#include <stdlib.h>
+
+ /* This mess was copied from the GNU getpagesize.h. */
+ #ifndef HAVE_GETPAGESIZE
+@@ -1165,49 +1173,17 @@ AC_DEFUN(AC_FUNC_GETPGRP,
+ *
+ * Snarfed from Chet Ramey's bash pgrp.c test program
+ */
+-#include <stdio.h>
+-#include <sys/types.h>
+-
+-int pid;
+-int pg1, pg2, pg3, pg4;
+-int ng, np, s, child;
++#include <stdlib.h>
+
+ int main(void)
+ {
+- pid = getpid();
+- pg1 = getpgrp(0);
+- pg2 = getpgrp();
+- pg3 = getpgrp(pid);
+- pg4 = getpgrp(1);
+-
+- /*
+- * If all of these values are the same, it's pretty sure that
+- * we're on a system that ignores getpgrp's first argument.
+- */
+- if (pg2 == pg4 && pg1 == pg3 && pg2 == pg3)
+- exit(0);
+-
+- child = fork();
+- if (child < 0)
+- exit(1);
+- else if (child == 0) {
+- np = getpid();
+- /*
+- * If this is Sys V, this will not work; pgrp will be
+- * set to np because setpgrp just changes a pgrp to be
+- * the same as the pid.
+- */
+- setpgrp(np, pg1);
+- ng = getpgrp(0); /* Same result for Sys V and BSD */
+- if (ng == pg1) {
+- exit(1);
+- } else {
+- exit(0);
+- }
+- } else {
+- wait(&s);
+- exit(s>>8);
+- }
++ /* XXX: Gentoo: This function used to check for
++ BSD vs POSIX getpgrp but the test fails to compile
++ on modern POSIX systems when not relying on implicit
++ function declarations. It has no value anyway on such
++ systems and it's been removed in newer autoconf.
++ */
++ exit(0);
+ }
+ ], ac_cv_func_getpgrp_void=yes, ac_cv_func_getpgrp_void=no,
+ AC_MSG_ERROR(cannot check getpgrp if cross compiling))
+@@ -1220,9 +1196,7 @@ fi
+ AC_DEFUN(AC_FUNC_SETPGRP,
+ [AC_CACHE_CHECK(whether setpgrp takes no argument, ac_cv_func_setpgrp_void,
+ AC_TRY_RUN([
+-#ifdef HAVE_UNISTD_H
+-#include <unistd.h>
+-#endif
++#include <stdlib.h>
+
+ /*
+ * If this system has a BSD-style setpgrp, which takes arguments, exit
+@@ -1230,10 +1204,13 @@ AC_TRY_RUN([
+ */
+ int main(void)
+ {
+- if (setpgrp(1,1) == -1)
+- exit(0);
+- else
+- exit(1);
++ /* XXX: Gentoo: This function used to check for
++ BSD vs POSIX gsetpgrp but the test fails to compile
++ on modern POSIX systems when not relying on implicit
++ function declarations. It has no value anyway on such
++ systems and it's been removed in newer autoconf.
++ */
++ exit(1);
+ }
+ ], ac_cv_func_setpgrp_void=no, ac_cv_func_setpgrp_void=yes,
+ AC_MSG_ERROR(cannot check setpgrp if cross compiling))
+@@ -1255,9 +1232,11 @@ AC_DEFUN(AC_FUNC_VFORK,
+ AC_CHECK_HEADER(vfork.h, AC_DEFINE(HAVE_VFORK_H))
+ AC_CACHE_CHECK(for working vfork, ac_cv_func_vfork_works,
+ [AC_TRY_RUN([/* Thanks to Paul Eggert for this test. */
++#include <stdlib.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/wait.h>
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+@@ -1270,11 +1249,11 @@ AC_CACHE_CHECK(for working vfork, ac_cv_func_vfork_works,
+ but some compilers (e.g. gcc -O) don't grok <vfork.h>.
+ Test for this by using a static variable whose address
+ is put into a register that is clobbered by the vfork. */
+-static
++static void
+ #ifdef __cplusplus
+ sparc_address_test (int arg)
+ #else
+-sparc_address_test (arg) int arg;
++sparc_address_test (int arg)
+ #endif
+ {
+ static pid_t child;
+@@ -1359,6 +1338,8 @@ AC_DEFUN(AC_FUNC_WAIT3,
+ #include <sys/time.h>
+ #include <sys/resource.h>
+ #include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
+ /* HP-UX has wait3 but does not fill in rusage at all. */
+ int main(void) {
+ struct rusage r;
+@@ -1452,7 +1433,8 @@ done
+ fi
+
+ AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
+-[AC_TRY_RUN([find_stack_direction ()
++[AC_TRY_RUN([#include <stdlib.h>
++int find_stack_direction ()
+ {
+ static char *addr = 0;
+ auto char dummy;
+@@ -1582,6 +1564,8 @@ AC_DEFUN(AC_FUNC_UTIME_NULL,
+ # Sequent interprets utime(file, 0) to mean use start of epoch. Wrong.
+ AC_TRY_RUN([#include <sys/types.h>
+ #include <sys/stat.h>
++#include <stdlib.h>
++#include <utime.h>
+ int main(void) {
+ struct stat s, t;
+ exit(!(stat ("conftestdata", &s) == 0 && utime("conftestdata", (long *)0) == 0
+@@ -1598,6 +1582,7 @@ fi
+ AC_DEFUN(AC_FUNC_STRCOLL,
+ [AC_CACHE_CHECK(for working strcoll, ac_cv_func_strcoll_works,
+ [AC_TRY_RUN([#include <string.h>
++#include <stdlib.h>
+ int main (void)
+ {
+ exit (strcoll ("abc", "def") >= 0 ||
+@@ -1614,6 +1599,7 @@ AC_DEFUN(AC_FUNC_SETVBUF_REVERSED,
+ [AC_CACHE_CHECK(whether setvbuf arguments are reversed,
+ ac_cv_func_setvbuf_reversed,
+ [AC_TRY_RUN([#include <stdio.h>
++#include <stdlib.h>
+ /* If setvbuf has the reversed format, exit 0. */
+ int main (void) {
+ /* This call has the arguments reversed.
+@@ -1646,7 +1632,8 @@ LIBS="-lintl $LIBS"])])])
+
+ AC_DEFUN(AC_FUNC_MEMCMP,
+ [AC_CACHE_CHECK(for 8-bit clean memcmp, ac_cv_func_memcmp_clean,
+-[AC_TRY_RUN([
++[AC_TRY_RUN([#include <stdlib.h>
++#include <string.h>
+ int main(void)
+ {
+ char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+@@ -1805,6 +1792,7 @@ AC_TRY_RUN(
+ #if !defined(__STDC__) || __STDC__ != 1
+ #define volatile
+ #endif
++#include <stdlib.h>
+ int main(void) {
+ volatile char c = 255; exit(c < 0);
+ }], ac_cv_c_char_unsigned=yes, ac_cv_c_char_unsigned=no)
+@@ -1819,7 +1807,8 @@ AC_DEFUN(AC_C_LONG_DOUBLE,
+ [if test "$GCC" = yes; then
+ ac_cv_c_long_double=yes
+ else
+-AC_TRY_RUN([int main(void) {
++AC_TRY_RUN([#include <stdlib.h>
++int main(void) {
+ /* The Stardent Vistra knows sizeof(long double), but does not support it. */
+ long double foo = 0.0;
+ /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+@@ -1834,7 +1823,8 @@ fi
+ AC_DEFUN(AC_INT_16_BITS,
+ [AC_OBSOLETE([$0], [; instead use AC_CHECK_SIZEOF(int)])dnl
+ AC_MSG_CHECKING(whether int is 16 bits)
+-AC_TRY_RUN([int main(void) { exit(sizeof(int) != 2); }],
++AC_TRY_RUN([#include <stdlib.h>
++int main(void) { exit(sizeof(int) != 2); }],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(INT_16_BITS)], AC_MSG_RESULT(no))
+ ])
+@@ -1842,7 +1832,8 @@ AC_TRY_RUN([int main(void) { exit(sizeof(int) != 2); }],
+ AC_DEFUN(AC_LONG_64_BITS,
+ [AC_OBSOLETE([$0], [; instead use AC_CHECK_SIZEOF(long)])dnl
+ AC_MSG_CHECKING(whether long int is 64 bits)
+-AC_TRY_RUN([int main(void) { exit(sizeof(long int) != 8); }],
++AC_TRY_RUN([#include <stdlib.h>
++int main(void) { exit(sizeof(long int) != 8); }],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(LONG_64_BITS)], AC_MSG_RESULT(no))
+ ])
+@@ -1862,7 +1853,8 @@ AC_TRY_COMPILE([#include <sys/types.h>
+ not big endian
+ #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
+ if test $ac_cv_c_bigendian = unknown; then
+-AC_TRY_RUN([int main (void) {
++AC_TRY_RUN([#include <stdlib.h>
++int main (void) {
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+@@ -1885,7 +1877,7 @@ AC_DEFUN(AC_C_INLINE,
+ [AC_CACHE_CHECK([for inline], ac_cv_c_inline,
+ [ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+- AC_TRY_COMPILE(, [} $ac_kw foo(void) {], [ac_cv_c_inline=$ac_kw; break])
++ AC_TRY_COMPILE(, [} $ac_kw int foo(void) {], [ac_cv_c_inline=$ac_kw; break])
+ done
+ ])
+ case "$ac_cv_c_inline" in
+@@ -2275,7 +2267,10 @@ AC_DEFUN(AC_SYS_RESTARTABLE_SYSCALLS,
+ i.e. the pid of the child, which means that wait was restarted
+ after getting the signal. */
+ #include <sys/types.h>
++#include <sys/wait.h>
+ #include <signal.h>
++#include <stdlib.h>
++#include <unistd.h>
+ ucatch (isig) { }
+ int main (void) {
+ int i = fork (), status;
+@@ -2444,7 +2439,7 @@ if test "$ac_x_libraries" = NO; then
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS="$LIBS"
+ LIBS="-l$x_direct_test_library $LIBS"
+-AC_TRY_LINK(, [${x_direct_test_function}()],
++AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(0)],
+ [LIBS="$ac_save_LIBS"
+ # We can link X programs with no special library path.
+ ac_x_libraries=],
diff --git a/dev-build/autoconf/files/autoconf-2.13-K-R-decls-clang.patch b/dev-build/autoconf/files/autoconf-2.13-K-R-decls-clang.patch
new file mode 100644
index 000000000000..42c3018aea8c
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-K-R-decls-clang.patch
@@ -0,0 +1,346 @@
+https://bugs.gentoo.org/870412
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b
+
+Backport the K&R decls fix to 2.13 to avoid configure tests
+failing (often "silently", i.e. doesn't fail the build of
+the package overall, just leads to wrong results) with
+newer compilers like the upcoming Clang 16.
+
+From d8ad1096be4352c588b9bc1e16b6758f4f32b96a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
+Date: Mon, 19 Sep 2022 01:38:29 +0200
+Subject: [PATCH] ac{general,specific}: declare void param lists, where apt
+
+--- a/acgeneral.m4
++++ b/acgeneral.m4
+@@ -1542,7 +1542,7 @@ extern "C"
+ ])dnl
+ [/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char $1();
++char $1(void);
+ ]),
+ [$1()],
+ [$2],
+@@ -1597,7 +1597,7 @@ extern "C"
+ ])dnl
+ [/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char $2();
++char $2(void);
+ ])),
+ [$2()],
+ eval "ac_cv_lib_$ac_lib_var=yes",
+@@ -1733,7 +1733,7 @@ dnl [#]line __oline__ "[$]0"
+ [#]line __oline__ "configure"
+ #include "confdefs.h"
+ [$1]
+-int main() {
++int main(void) {
+ [$2]
+ ; return 0; }
+ ])EOF
+@@ -1777,7 +1777,7 @@ dnl [#]line __oline__ "[$]0"
+ [#]line __oline__ "configure"
+ #include "confdefs.h"
+ [$1]
+-int main() {
++int main(void) {
+ [$2]
+ ; return 0; }
+ ])EOF
+@@ -1934,7 +1934,7 @@ extern "C"
+ ])dnl
+ [/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+-char $1();
++char $1(void);
+ ], [
+ /* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+@@ -1988,7 +1988,7 @@ changequote([, ])dnl
+ AC_MSG_CHECKING(size of $1)
+ AC_CACHE_VAL(AC_CV_NAME,
+ [AC_TRY_RUN([#include <stdio.h>
+-main()
++main(void)
+ {
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+--- a/acspecific.m4
++++ b/acspecific.m4
+@@ -202,7 +202,7 @@ AC_DEFUN(AC_PROG_CC_WORKS,
+ [AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works])
+ AC_LANG_SAVE
+ AC_LANG_C
+-AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross)
++AC_TRY_COMPILER([int main(void){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross)
+ AC_LANG_RESTORE
+ AC_MSG_RESULT($ac_cv_prog_cc_works)
+ if test $ac_cv_prog_cc_works = no; then
+@@ -217,7 +217,7 @@ AC_DEFUN(AC_PROG_CXX_WORKS,
+ [AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+-AC_TRY_COMPILER([int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
++AC_TRY_COMPILER([int main(void){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
+ AC_LANG_RESTORE
+ AC_MSG_RESULT($ac_cv_prog_cxx_works)
+ if test $ac_cv_prog_cxx_works = no; then
+@@ -300,7 +300,7 @@ fi])])
+
+ AC_DEFUN(AC_PROG_CC_G,
+ [AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_cc_g,
+-[echo 'void f(){}' > conftest.c
++[echo 'void f(void){}' > conftest.c
+ if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+ else
+@@ -311,7 +311,7 @@ rm -f conftest*
+
+ AC_DEFUN(AC_PROG_CXX_G,
+ [AC_CACHE_CHECK(whether ${CXX-g++} accepts -g, ac_cv_prog_cxx_g,
+-[echo 'void f(){}' > conftest.cc
++[echo 'void f(void){}' > conftest.cc
+ if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+ ac_cv_prog_cxx_g=yes
+ else
+@@ -371,7 +371,7 @@ changequote(, )dnl
+ sed -e 's/[^a-zA-Z0-9_]/_/g' -e 's/^[0-9]/_/'`"
+ changequote([, ])dnl
+ AC_CACHE_VAL(ac_cv_prog_cc_${ac_cc}_c_o,
+-[echo 'foo(){}' > conftest.c
++[echo 'foo(void){}' > conftest.c
+ # Make sure it works both with $CC and with simple cc.
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+@@ -709,7 +709,7 @@ AC_TRY_RUN([#include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+ #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+-int main () { int i; for (i = 0; i < 256; i++)
++int main (void) { int i; for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+ exit (0); }
+ ], , ac_cv_header_stdc=no, :)
+@@ -820,7 +820,7 @@ esac
+ AC_CACHE_CHECK(whether closedir returns void, ac_cv_func_closedir_void,
+ [AC_TRY_RUN([#include <sys/types.h>
+ #include <$ac_header_dirent>
+-int closedir(); main() { exit(closedir(opendir(".")) != 0); }],
++int closedir(...); int main(void) { exit(closedir(opendir(".")) != 0); }],
+ ac_cv_func_closedir_void=no, ac_cv_func_closedir_void=yes, ac_cv_func_closedir_void=yes)])
+ if test $ac_cv_func_closedir_void = yes; then
+ AC_DEFINE(VOID_CLOSEDIR)
+@@ -911,7 +911,7 @@ changequote(<<, >>)dnl
+ #define NGID 256
+ #undef MAX
+ #define MAX(x, y) ((x) > (y) ? (x) : (y))
+-main()
++int main(void)
+ {
+ gid_t gidset[NGID];
+ int i, n;
+@@ -973,7 +973,7 @@ AC_DEFUN(AC_TYPE_SIGNAL,
+ #ifdef __cplusplus
+ extern "C" void (*signal (int, void (*)(int)))(int);
+ #else
+-void (*signal ()) ();
++void (*signal (void)) (void);
+ #endif
+ ],
+ [int i;], ac_cv_type_signal=void, ac_cv_type_signal=int)])
+@@ -989,7 +989,7 @@ AC_DEFUN(AC_FUNC_CLOSEDIR_VOID,
+ AC_CACHE_CHECK(whether closedir returns void, ac_cv_func_closedir_void,
+ [AC_TRY_RUN([#include <sys/types.h>
+ #include <$ac_header_dirent>
+-int closedir(); main() { exit(closedir(opendir(".")) != 0); }],
++int closedir(...); int main(void) { exit(closedir(opendir(".")) != 0); }],
+ ac_cv_func_closedir_void=no, ac_cv_func_closedir_void=yes, ac_cv_func_closedir_void=yes)])
+ if test $ac_cv_func_closedir_void = yes; then
+ AC_DEFINE(CLOSEDIR_VOID)
+@@ -1001,7 +1001,7 @@ AC_DEFUN(AC_FUNC_FNMATCH,
+ # Some versions of Solaris or SCO have a broken fnmatch function.
+ # So we run a test program. If we are cross-compiling, take no chance.
+ # Thanks to John Oleynick and Franc,ois Pinard for this test.
+-[AC_TRY_RUN([main() { exit (fnmatch ("a*", "abc", 0) != 0); }],
++[AC_TRY_RUN([int main(void) { exit (fnmatch ("a*", "abc", 0) != 0); }],
+ ac_cv_func_fnmatch_works=yes, ac_cv_func_fnmatch_works=no,
+ ac_cv_func_fnmatch_works=no)])
+ if test $ac_cv_func_fnmatch_works = yes; then
+@@ -1083,11 +1083,11 @@ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
+ #ifdef __cplusplus
+ extern "C" { void *malloc(unsigned); }
+ #else
+-char *malloc();
++char *malloc(...);
+ #endif
+
+ int
+-main()
++main(void)
+ {
+ char *data, *data2, *data3;
+ int i, pagesize;
+@@ -1172,7 +1172,7 @@ int pid;
+ int pg1, pg2, pg3, pg4;
+ int ng, np, s, child;
+
+-main()
++int main(void)
+ {
+ pid = getpid();
+ pg1 = getpgrp(0);
+@@ -1228,7 +1228,7 @@ AC_TRY_RUN([
+ * If this system has a BSD-style setpgrp, which takes arguments, exit
+ * successfully.
+ */
+-main()
++int main(void)
+ {
+ if (setpgrp(1,1) == -1)
+ exit(0);
+@@ -1291,7 +1291,7 @@ sparc_address_test (arg) int arg;
+ }
+ }
+ }
+-main() {
++int main(void) {
+ pid_t parent = getpid ();
+ pid_t child;
+
+@@ -1360,7 +1360,7 @@ AC_DEFUN(AC_FUNC_WAIT3,
+ #include <sys/resource.h>
+ #include <stdio.h>
+ /* HP-UX has wait3 but does not fill in rusage at all. */
+-main() {
++int main(void) {
+ struct rusage r;
+ int i;
+ /* Use a field that we can force nonzero --
+@@ -1416,7 +1416,7 @@ AC_CACHE_CHECK([for alloca], ac_cv_func_alloca_works,
+ #pragma alloca
+ # else
+ # ifndef alloca /* predefined by HP cc +Olibcalls */
+-char *alloca ();
++char *alloca (...);
+ # endif
+ # endif
+ # endif
+@@ -1464,7 +1464,7 @@ AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
+ else
+ return (&dummy > addr) ? 1 : -1;
+ }
+-main ()
++int main (void)
+ {
+ exit (find_stack_direction() < 0);
+ }], ac_cv_c_stack_direction=1, ac_cv_c_stack_direction=-1,
+@@ -1582,7 +1582,7 @@ AC_DEFUN(AC_FUNC_UTIME_NULL,
+ # Sequent interprets utime(file, 0) to mean use start of epoch. Wrong.
+ AC_TRY_RUN([#include <sys/types.h>
+ #include <sys/stat.h>
+-main() {
++int main(void) {
+ struct stat s, t;
+ exit(!(stat ("conftestdata", &s) == 0 && utime("conftestdata", (long *)0) == 0
+ && stat("conftestdata", &t) == 0 && t.st_mtime >= s.st_mtime
+@@ -1598,7 +1598,7 @@ fi
+ AC_DEFUN(AC_FUNC_STRCOLL,
+ [AC_CACHE_CHECK(for working strcoll, ac_cv_func_strcoll_works,
+ [AC_TRY_RUN([#include <string.h>
+-main ()
++int main (void)
+ {
+ exit (strcoll ("abc", "def") >= 0 ||
+ strcoll ("ABC", "DEF") >= 0 ||
+@@ -1615,7 +1615,7 @@ AC_DEFUN(AC_FUNC_SETVBUF_REVERSED,
+ ac_cv_func_setvbuf_reversed,
+ [AC_TRY_RUN([#include <stdio.h>
+ /* If setvbuf has the reversed format, exit 0. */
+-main () {
++int main (void) {
+ /* This call has the arguments reversed.
+ A reversed system may check and see that the address of main
+ is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */
+@@ -1647,7 +1647,7 @@ LIBS="-lintl $LIBS"])])])
+ AC_DEFUN(AC_FUNC_MEMCMP,
+ [AC_CACHE_CHECK(for 8-bit clean memcmp, ac_cv_func_memcmp_clean,
+ [AC_TRY_RUN([
+-main()
++int main(void)
+ {
+ char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+ exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
+@@ -1805,7 +1805,7 @@ AC_TRY_RUN(
+ #if !defined(__STDC__) || __STDC__ != 1
+ #define volatile
+ #endif
+-main() {
++int main(void) {
+ volatile char c = 255; exit(c < 0);
+ }], ac_cv_c_char_unsigned=yes, ac_cv_c_char_unsigned=no)
+ fi])
+@@ -1819,7 +1819,7 @@ AC_DEFUN(AC_C_LONG_DOUBLE,
+ [if test "$GCC" = yes; then
+ ac_cv_c_long_double=yes
+ else
+-AC_TRY_RUN([int main() {
++AC_TRY_RUN([int main(void) {
+ /* The Stardent Vistra knows sizeof(long double), but does not support it. */
+ long double foo = 0.0;
+ /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+@@ -1834,7 +1834,7 @@ fi
+ AC_DEFUN(AC_INT_16_BITS,
+ [AC_OBSOLETE([$0], [; instead use AC_CHECK_SIZEOF(int)])dnl
+ AC_MSG_CHECKING(whether int is 16 bits)
+-AC_TRY_RUN([main() { exit(sizeof(int) != 2); }],
++AC_TRY_RUN([int main(void) { exit(sizeof(int) != 2); }],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(INT_16_BITS)], AC_MSG_RESULT(no))
+ ])
+@@ -1842,7 +1842,7 @@ AC_TRY_RUN([main() { exit(sizeof(int) != 2); }],
+ AC_DEFUN(AC_LONG_64_BITS,
+ [AC_OBSOLETE([$0], [; instead use AC_CHECK_SIZEOF(long)])dnl
+ AC_MSG_CHECKING(whether long int is 64 bits)
+-AC_TRY_RUN([main() { exit(sizeof(long int) != 8); }],
++AC_TRY_RUN([int main(void) { exit(sizeof(long int) != 8); }],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(LONG_64_BITS)], AC_MSG_RESULT(no))
+ ])
+@@ -1862,7 +1862,7 @@ AC_TRY_COMPILE([#include <sys/types.h>
+ not big endian
+ #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
+ if test $ac_cv_c_bigendian = unknown; then
+-AC_TRY_RUN([main () {
++AC_TRY_RUN([int main (void) {
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+@@ -1885,7 +1885,7 @@ AC_DEFUN(AC_C_INLINE,
+ [AC_CACHE_CHECK([for inline], ac_cv_c_inline,
+ [ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+- AC_TRY_COMPILE(, [} $ac_kw foo() {], [ac_cv_c_inline=$ac_kw; break])
++ AC_TRY_COMPILE(, [} $ac_kw foo(void) {], [ac_cv_c_inline=$ac_kw; break])
+ done
+ ])
+ case "$ac_cv_c_inline" in
+@@ -2277,7 +2277,7 @@ AC_DEFUN(AC_SYS_RESTARTABLE_SYSCALLS,
+ #include <sys/types.h>
+ #include <signal.h>
+ ucatch (isig) { }
+-main () {
++int main (void) {
+ int i = fork (), status;
+ if (i == 0) { sleep (3); kill (getppid (), SIGINT); sleep (3); exit (0); }
+ signal (SIGINT, ucatch);
+@@ -2654,7 +2654,7 @@ AC_CACHE_VAL(ac_cv_exeext,
+ ac_cv_exeext=.exe
+ else
+ rm -f conftest*
+- echo 'int main () { return 0; }' > conftest.$ac_ext
++ echo 'int main (void) { return 0; }' > conftest.$ac_ext
+ ac_cv_exeext=
+ if AC_TRY_EVAL(ac_link); then
+ for file in conftest.*; do
diff --git a/dev-build/autoconf/files/autoconf-2.13-destdir.patch b/dev-build/autoconf/files/autoconf-2.13-destdir.patch
new file mode 100644
index 000000000000..47605af5f59c
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-destdir.patch
@@ -0,0 +1,26 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -41,18 +41,18 @@
+
+ transform=@program_transform_name@
+
+-prefix = @prefix@
++prefix = $(DESTDIR)@prefix@
+-exec_prefix = @exec_prefix@
++exec_prefix = $(DESTDIR)@exec_prefix@
+
+ # Directory in which to install scripts.
+-bindir = @bindir@
++bindir = $(DESTDIR)@bindir@
+
+ # Directory in which to install library files.
+-datadir = @datadir@
++datadir = $(DESTDIR)@datadir@
+ acdatadir = $(datadir)/autoconf
+
+ # Directory in which to install documentation info files.
+-infodir = @infodir@
++infodir = $(DESTDIR)@infodir@
+
+ #### End of system configuration section. ####
+
diff --git a/dev-build/autoconf/files/autoconf-2.13-gentoo.patch b/dev-build/autoconf/files/autoconf-2.13-gentoo.patch
new file mode 100644
index 000000000000..44f09cba92f0
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-gentoo.patch
@@ -0,0 +1,36 @@
+--- a/configure
++++ b/configure
+@@ -654,12 +654,10 @@
+ echo "$ac_t""no" 1>&6
+ fi
+
+-if test "$PERL" != no; then
+- SCRIPTS=autoscan
+-else
+- echo "configure: warning: autoscan will not be built since perl is not found" 1>&2
++if test "$PERL" = no; then
++ PERL=/usr/bin/perl
+ fi
+-
++SCRIPTS=autoscan
+ ac_aux_dir=
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+--- a/configure.in
++++ b/configure.in
+@@ -14,12 +14,10 @@
+ AC_PATH_PROG(PERL, perl, no)
+ AC_SUBST(PERL)dnl
+ AC_SUBST(SCRIPTS)dnl
+-if test "$PERL" != no; then
+- SCRIPTS=autoscan
+-else
+- AC_MSG_WARN(autoscan will not be built since perl is not found)
++if test "$PERL" = no; then
++ PERL=/usr/bin/perl
+ fi
+-
++SCRIPTS=autoscan
+ AC_PROG_INSTALL
+
+ # Work with the GNU or Cygnus source tree layout.
diff --git a/dev-build/autoconf/files/autoconf-2.13-perl-5.26.patch b/dev-build/autoconf/files/autoconf-2.13-perl-5.26.patch
new file mode 100644
index 000000000000..6fbc0cd1bc89
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-perl-5.26.patch
@@ -0,0 +1,12 @@
+diff -ruN autoconf-2.13.orig/autoscan.pl autoconf-2.13/autoscan.pl
+--- autoconf-2.13.orig/autoscan.pl 1999-01-05 14:28:42.000000000 +0100
++++ autoconf-2.13/autoscan.pl 2018-12-22 19:55:10.986732296 +0100
+@@ -232,7 +232,7 @@
+ # Strip out comments and variable references.
+ s/#.*//;
+ s/\$\([^\)]*\)//g;
+- s/\${[^\}]*}//g;
++ s/\$\{[^\}]*}//g;
+ s/@[^@]*@//g;
+
+ # Variable assignments.
diff --git a/dev-build/autoconf/files/autoconf-2.13-skip-AC_FUNC_GETLOADAVG-test.patch b/dev-build/autoconf/files/autoconf-2.13-skip-AC_FUNC_GETLOADAVG-test.patch
new file mode 100644
index 000000000000..280578ac6b0a
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-skip-AC_FUNC_GETLOADAVG-test.patch
@@ -0,0 +1,20 @@
+The macro itself is broken in autoconf-2.13 but this is caused by newer kernels
+etc rather than anything else. Very, very few packages use autoconf-2.13, let
+alone AC_FUNC_GETLOADAVG, so not going to worry about it much.
+
+Do as Fedora and Debian do and skip the test for it.
+
+https://bugs.gentoo.org/406723
+https://bugs.gentoo.org/677926
+--- a/testsuite/autoconf.s/syntax.exp
++++ b/testsuite/autoconf.s/syntax.exp
+@@ -2,7 +2,8 @@
+
+ send_user "Checking for syntax errors in the specific tests...\n"
+ set script {s/^AC_DEFUN(\([^,]*\).*/\1/p}
+-set macros [exec sed -n $script $srcdir/../acspecific.m4]
++# XXX: AC_FUNC_GETLOADAVG skipped for bug #406723, bug #677926
++set macros [exec sed -n $script $srcdir/../acspecific.m4 | grep -v AC_FUNC_GETLOADAVG]
+
+ foreach mac $macros {
+ if { [string match "*F77*" "$mac"] && [catch {exec which g77} ignore_output] } then {
diff --git a/dev-build/autoconf/files/autoconf-2.13-test-fixes.patch b/dev-build/autoconf/files/autoconf-2.13-test-fixes.patch
new file mode 100644
index 000000000000..b8a7e3b8ce99
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.13-test-fixes.patch
@@ -0,0 +1,18 @@
+newer gcc versions don't provide g77, so if it doesn't exist,
+don't bother trying to test it (and failing)
+
+http://bugs.gentoo.org/146592
+
+--- autoconf-2.13/testsuite/autoconf.s/syntax.exp
++++ autoconf-2.13/testsuite/autoconf.s/syntax.exp
+@@ -5,6 +5,10 @@
+ set macros [exec sed -n $script $srcdir/../acspecific.m4]
+
+ foreach mac $macros {
++ if { [string match "*F77*" "$mac"] && [catch {exec which g77} ignore_output] } then {
++ send_user "XFAIL: $mac\n"
++ continue
++ }
+ send_user "$mac\n"
+ autoconf_test $mac $mac
+ }
diff --git a/dev-build/autoconf/files/autoconf-2.61-darwin.patch b/dev-build/autoconf/files/autoconf-2.61-darwin.patch
new file mode 100644
index 000000000000..83f450e6f5af
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.61-darwin.patch
@@ -0,0 +1,11 @@
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -110,7 +110,7 @@
+ my $autoheader = $ENV{'AUTOHEADER'} || '@bindir@/@autoheader-name@';
+ my $automake = $ENV{'AUTOMAKE'} || 'automake';
+ my $aclocal = $ENV{'ACLOCAL'} || 'aclocal';
+-my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
++my $libtoolize = $ENV{'LIBTOOLIZE'} || 'glibtoolize';
+ my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
+
+ # --install -- as --add-missing in other tools.
diff --git a/dev-build/autoconf/files/autoconf-2.69-K-R-decls-clang.patch b/dev-build/autoconf/files/autoconf-2.69-K-R-decls-clang.patch
new file mode 100644
index 000000000000..77444ebc5be6
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.69-K-R-decls-clang.patch
@@ -0,0 +1,394 @@
+https://bugs.gentoo.org/870412
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b
+(and contains a backport of https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=bf5a75953b6d504f0405b1ca33b039b8dd39eef4)
+
+Backport the K&R decls fix to 2.69 to avoid configure tests
+failing (often "silently", i.e. doesn't fail the build of
+the package overall, just leads to wrong results) with
+newer compilers like the upcoming Clang 16.
+
+From e6f401b94b58bb9bb58cd668a996e27663d3e6c7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
+Date: Mon, 19 Sep 2022 12:11:24 +0200
+Subject: [PATCH] backport K&R decl fixes
+
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -97,7 +97,7 @@ m4_define([AC_LANG_PROGRAM(C)],
+ m4_ifdef([_AC_LANG_PROGRAM_C_F77_HOOKS], [_AC_LANG_PROGRAM_C_F77_HOOKS])[]dnl
+ m4_ifdef([_AC_LANG_PROGRAM_C_FC_HOOKS], [_AC_LANG_PROGRAM_C_FC_HOOKS])[]dnl
+ int
+-main ()
++main (void)
+ {
+ dnl Do *not* indent the following line: there may be CPP directives.
+ dnl Don't move the `;' right after for the same reason.
+@@ -130,7 +130,7 @@ m4_if([$2], [main], ,
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char $2 ();])], [return $2 ();])])
++char $2 (void);])], [return $2 ();])])
+
+
+ # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION)
+@@ -154,7 +154,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
+ #define $1 innocuous_$1
+
+ /* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char $1 (); below.
++ which can conflict with char $1 (void); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+@@ -172,7 +172,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char $1 ();
++char $1 (void);
+ /* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+@@ -201,8 +201,8 @@ return test_array @<:@0@:>@;
+ # But we include them only after the EXPRESSION has been evaluated.
+ m4_define([AC_LANG_INT_SAVE(C)],
+ [AC_LANG_PROGRAM([$1
+-static long int longval () { return $2; }
+-static unsigned long int ulongval () { return $2; }
++static long int longval (void) { return $2; }
++static unsigned long int ulongval (void) { return $2; }
+ @%:@include <stdio.h>
+ @%:@include <stdlib.h>],
+ [
+@@ -1625,8 +1625,8 @@ for ac_kw in inline __inline__ __inline; do
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [#ifndef __cplusplus
+ typedef int foo_t;
+-static $ac_kw foo_t static_foo () {return 0; }
+-$ac_kw foo_t foo () {return 0; }
++static $ac_kw foo_t static_foo (void) {return 0; }
++$ac_kw foo_t foo (void) {return 0; }
+ #endif
+ ])],
+ [ac_cv_c_inline=$ac_kw])
+@@ -1949,7 +1949,7 @@ m4_define([_AC_LANG_OPENMP(C)],
+ choke me
+ #endif
+ #include <omp.h>
+-int main () { return omp_get_num_threads (); }
++int main (void) { return omp_get_num_threads (); }
+ ])
+
+ # _AC_LANG_OPENMP(C++)
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -463,9 +463,6 @@ AC_CACHE_CHECK([whether closedir returns void],
+ [ac_cv_func_closedir_void],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+ #include <$ac_header_dirent>
+-#ifndef __cplusplus
+-int closedir ();
+-#endif
+ ],
+ [[return closedir (opendir (".")) != 0;]])],
+ [ac_cv_func_closedir_void=no],
+@@ -893,7 +890,7 @@ AC_CACHE_CHECK([for GNU libc compatible malloc], ac_cv_func_malloc_0_nonnull,
+ [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+ # include <stdlib.h>
+ #else
+-char *malloc ();
++char *malloc (long);
+ #endif
+ ]],
+ [return ! malloc (0);])],
+@@ -1029,7 +1026,7 @@ static const char *tz_strings[] = {
+ /* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+ static int
+-spring_forward_gap ()
++spring_forward_gap (void)
+ {
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+@@ -1066,7 +1063,7 @@ mktime_test (time_t now)
+ }
+
+ static int
+-irix_6_4_bug ()
++irix_6_4_bug (void)
+ {
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+@@ -1108,7 +1105,7 @@ bigtime_test (int j)
+ }
+
+ static int
+-year_2050_test ()
++year_2050_test (void)
+ {
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+@@ -1138,7 +1135,7 @@ year_2050_test ()
+ }
+
+ int
+-main ()
++main (void)
+ {
+ time_t t, delta;
+ int i, j;
+@@ -1232,7 +1229,7 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
+ #include <sys/mman.h>
+
+ #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
+-char *malloc ();
++char *malloc (void *, long);
+ #endif
+
+ /* This mess was copied from the GNU getpagesize.h. */
+@@ -1268,7 +1265,7 @@ char *malloc ();
+ #endif /* no HAVE_GETPAGESIZE */
+
+ int
+-main ()
++main (void)
+ {
+ char *data, *data2, *data3;
+ const char *cdata2;
+@@ -1398,7 +1395,7 @@ AC_CACHE_CHECK([for GNU libc compatible realloc], ac_cv_func_realloc_0_nonnull,
+ [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+ # include <stdlib.h>
+ #else
+-char *realloc ();
++char *realloc (void *, long);
+ #endif
+ ]],
+ [return ! realloc (0, 0);])],
+@@ -1547,11 +1544,8 @@ AC_DEFUN([AC_FUNC_STRTOD],
+ AC_CACHE_CHECK(for working strtod, ac_cv_func_strtod,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ ]AC_INCLUDES_DEFAULT[
+-#ifndef strtod
+-double strtod ();
+-#endif
+ int
+-main()
++main(void)
+ {
+ {
+ /* Some versions of Linux strtod mis-parse strings with leading '+'. */
+@@ -1645,8 +1639,7 @@ AC_CACHE_CHECK([whether strerror_r returns char *],
+ # former has a strerror_r that returns char*, while the latter
+ # has a strerror_r that returns `int'.
+ # This test should segfault on the DEC system.
+- AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT
+- extern char *strerror_r ();],
++ AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+ [[char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ return ! isalpha (x);]])],
+@@ -1879,7 +1872,7 @@ sparc_address_test (arg) int arg;
+ }
+
+ int
+-main ()
++main (void)
+ {
+ pid_t parent = getpid ();
+ pid_t child;
+@@ -1985,7 +1978,7 @@ AC_CACHE_CHECK([for wait3 that fills in rusage],
+ #include <sys/wait.h>
+ /* HP-UX has wait3 but does not fill in rusage at all. */
+ int
+-main ()
++main (void)
+ {
+ struct rusage r;
+ int i;
+--- a/lib/autoconf/headers.m4
++++ b/lib/autoconf/headers.m4
+@@ -712,7 +712,7 @@ if test $ac_cv_header_stdc = yes; then
+
+ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ int
+-main ()
++main (void)
+ {
+ int i;
+ for (i = 0; i < 256; i++)
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -257,7 +257,7 @@ void ucatch (dummy) int dummy; { }
+ #endif
+
+ int
+-main ()
++main (void)
+ {
+ int i = fork (), status;
+
+--- a/lib/autoconf/types.m4
++++ b/lib/autoconf/types.m4
+@@ -267,7 +267,7 @@ AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups,
+ #define MAX(x, y) ((x) > (y) ? (x) : (y))
+
+ int
+-main ()
++main (void)
+ {
+ gid_t gidset[NGID];
+ int i, n;
+--- a/tests/c.at
++++ b/tests/c.at
+@@ -354,7 +354,7 @@ AT_DATA([foo.c],
+ #endif
+ #include <stdio.h>
+
+-int main ()
++int main (void)
+ {
+ #ifdef _OPENMP
+ #pragma omp parallel
+@@ -404,7 +404,7 @@ foo.@OBJEXT@: foo.cpp
+ ]])
+
+ AT_DATA([foo.cpp],
+-[[int main ()
++[[int main (void)
+ {
+ return 0;
+ }
+--- a/tests/compile.at
++++ b/tests/compile.at
+@@ -124,7 +124,7 @@ AC_PROG_CC
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifndef PACKAGE_NAME
+ choke me
+ #endif
+-int main ()
++int main (void)
+ {
+ return 0;
+ }
+@@ -150,7 +150,7 @@ AC_LANG([C++])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#ifndef PACKAGE_NAME
+ choke me
+ #endif
+-int main ()
++int main (void)
+ {
+ return 0;
+ }
+@@ -249,7 +249,7 @@ AT_CHECK([sed -n 's/ *$//; /#define PACKAGE/,$p' stdout], [],
+
+ const char hw[] = "Hello, World\n";
+ int
+-main ()
++main (void)
+ {
+ fputs (hw, stdout);
+ ;
+@@ -269,7 +269,7 @@ AT_KEYWORDS([AC_LANG_DEFINES_PROVIDED])
+
+ AT_DATA([configure.ac],
+ [[AC_INIT
+-AC_COMPILE_IFELSE([int main () { return 0; }], [],
++AC_COMPILE_IFELSE([int main (void) { return 0; }], [],
+ [AC_MSG_ERROR([compiling trivial program failed])])
+ ]])
+
+@@ -280,7 +280,7 @@ AT_CHECK_CONFIGURE([-q])
+
+ AT_DATA([configure.ac],
+ [[AC_INIT
+-AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED()int main () { return 0; }], [],
++AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED()int main (void) { return 0; }], [],
+ [AC_MSG_ERROR([compiling trivial program failed])])
+ ]])
+
+@@ -324,7 +324,7 @@ test $estatus != 2 &&
+ AC_MSG_ERROR([did not get as 2 exit status: $estatus])])
+
+ # The old stinky one.
+-AC_TRY_RUN([int main () { return 3; }],
++AC_TRY_RUN([int main (void) { return 3; }],
+ [AC_MSG_ERROR([saw `return 3' as a success])],
+ [estatus=$?
+ test $estatus != 3 &&
+--- a/tests/fortran.at
++++ b/tests/fortran.at
+@@ -223,7 +223,7 @@ void FOOBAR_F77 (double *x, double *y);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int F77_DUMMY_MAIN () { return 1; }
++ int F77_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main(int argc, char *argv[])
+@@ -301,7 +301,7 @@ void FOOBAR_FC(double *x, double *y);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int FC_DUMMY_MAIN () { return 1; }
++ int FC_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main (int argc, char *argv[])
+@@ -533,7 +533,7 @@ void @foobar@ (int *x);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int F77_DUMMY_MAIN () { return 1; }
++ int F77_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main(int argc, char *argv[])
+@@ -607,7 +607,7 @@ void @foobar@ (int *x);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int FC_DUMMY_MAIN () { return 1; }
++ int FC_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main(int argc, char *argv[])
+--- a/tests/semantics.at
++++ b/tests/semantics.at
+@@ -107,7 +107,7 @@ AT_CHECK_MACRO([AC_CHECK_DECLS],
+ [[int yes = 1;
+ enum { myenum };
+ struct { int x[20]; } mystruct;
+- extern int myfunc();
++ extern int myfunc (void);
+ #define mymacro1(arg) arg
+ #define mymacro2]])
+ # The difference in space-before-open-paren is intentional.
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -1106,9 +1106,7 @@ struct stat;
+ /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+ struct buf { int x; };
+ FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+- char **p;
+- int i;
++static char *e (char **p, int i)
+ {
+ return p[i];
+ }
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -251,10 +251,9 @@ AC_INCLUDES_DEFAULT
+ /* Some platforms explicitly require an extern "C" signal handler
+ when using C++. */
+ #ifdef __cplusplus
+-extern "C" void ucatch (int dummy) { }
+-#else
+-void ucatch (dummy) int dummy; { }
++extern "C"
+ #endif
++void ucatch (int dummy) { }
+
+ int
+ main (void)
diff --git a/dev-build/autoconf/files/autoconf-2.69-fix-libtool-test.patch b/dev-build/autoconf/files/autoconf-2.69-fix-libtool-test.patch
new file mode 100644
index 000000000000..e75eba621606
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.69-fix-libtool-test.patch
@@ -0,0 +1,31 @@
+From 247b02e5a5bb79ca6666e91de02ae2d3cb0cd325 Mon Sep 17 00:00:00 2001
+From: "Gary V. Vaughan" <gary@gnu.org>
+Date: Mon, 3 Nov 2014 07:25:03 +0100
+Subject: tests: avoid spurious test failure with libtool 2.4.3
+
+Based on a report by Bruce Dubbs.
+
+* tests/foreign.at (Libtool): Be tolerant of 'quote' replacing the
+older `quote'.
+
+Signed-off-by: Eric Blake <eblake@redhat.com>
+---
+ tests/foreign.at | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/foreign.at b/tests/foreign.at
+index a9dc33c..d4702cd 100644
+--- a/tests/foreign.at
++++ b/tests/foreign.at
+@@ -57,7 +57,7 @@ AT_CHECK([./config.guess || exit 77], [], [ignore], [ignore])
+ # Make sure at-path contains something valid, and let the test suite
+ # display it when verbose. And fail, skipping would too easily hide
+ # problems.
+-AT_CHECK([sed -n ["s,^.*\`\\(/[^']*\\)'.*,\\1,p"] stdout], [0], [stdout])
++AT_CHECK([sed -n ["s,^[^']*[\`']\\(/[^']*\\)'.*,\\1,p"] stdout], [0], [stdout])
+ AT_CHECK([test -f "`sed -n 1p stdout`"])
+
+ # Older libtoolize installed everything but install-sh...
+--
+cgit v1.0-41-gc330
+
diff --git a/dev-build/autoconf/files/autoconf-2.69-make-tests-bash5-compatible.patch b/dev-build/autoconf/files/autoconf-2.69-make-tests-bash5-compatible.patch
new file mode 100644
index 000000000000..1afcec15bb4f
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.69-make-tests-bash5-compatible.patch
@@ -0,0 +1,63 @@
+From 5b9db67786a428164abafe626ab11a2754aad528 Mon Sep 17 00:00:00 2001
+From: Ondrej Dubaj <odubaj@redhat.com>
+Date: Wed, 28 Aug 2019 07:39:50 +0200
+Subject: Port tests to Bash 5
+
+* tests/local.at (AT_CHECK_ENV, AT_CONFIG_CMP):
+Add BASH_ARGC, BASH_ARGV to list of variables to be ignored when
+comparing variable space dumps.
+(AT_CONFIG_CMP): Also ignore LINENO.
+* tests/m4sh.at: Also unset LINENO in 'reference' and 'test/test-1'.
+---
+ tests/local.at | 5 ++++-
+ tests/m4sh.at | 4 ++--
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/tests/local.at b/tests/local.at
+index a22958c0..852be285 100644
+--- a/tests/local.at
++++ b/tests/local.at
+@@ -325,7 +325,7 @@ if test -f state-env.before && test -f state-env.after; then
+ [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|RANLIB|SET_MAKE|YACC],
+ [GREP|[EF]GREP|SED],
+ [[_@]|.[*#?$].],
+- [argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
++ [argv|ARGC|LINENO|BASH_ARGC|BASH_ARGV|OLDPWD|PIPESTATUS|RANDOM|SECONDS]))=' \
+ $act_file ||
+ test $? -eq 1 || echo failed >&2
+ ) 2>stderr-$act_file |
+@@ -382,6 +382,9 @@ do
+ /'\'\\\$\''=/ d
+ /^argv=/ d
+ /^ARGC=/ d
++ /^BASH_ARGC=/ d
++ /^BASH_ARGV=/ d
++ /^LINENO=/ d
+ ' $act_file >at_config_vars-$act_file
+ done
+ AT_CMP([at_config_vars-$1], [at_config_vars-$2])[]dnl
+diff --git a/tests/m4sh.at b/tests/m4sh.at
+index e9d70b02..cbdfcb62 100644
+--- a/tests/m4sh.at
++++ b/tests/m4sh.at
+@@ -254,7 +254,7 @@ AT_CHECK([autom4te -l m4sh $1.as -o $1])
+ # `_oline_', once processed and ran, produces our reference.
+ # We check that we find ourselves by looking at a string which is
+ # available only in the original script: `_oline_'.
+-AT_DATA_LINENO([reference], [false], [__OLINE__], [_oline__])
++AT_DATA_LINENO([reference], [true], [__OLINE__], [_oline__])
+ AT_CHECK([./reference], 0, [stdout])
+
+ # The reference:
+@@ -264,7 +264,7 @@ mv stdout expout
+ # Be sure to be out of the PATH.
+ AT_CHECK([mkdir test || exit 77])
+
+-AT_DATA_LINENO([test/test-1], [false], [__LINENO__], [LINENO])
++AT_DATA_LINENO([test/test-1], [true], [__LINENO__], [LINENO])
+ AT_CHECK([./test/test-1], 0, [expout])
+ AT_CHECK([(PATH=test$PATH_SEPARATOR$PATH; export PATH; exec test-1)],
+ 0, [expout])
+--
+cgit v1.2.1
+
diff --git a/dev-build/autoconf/files/autoconf-2.69-perl-5.26-2.patch b/dev-build/autoconf/files/autoconf-2.69-perl-5.26-2.patch
new file mode 100644
index 000000000000..6becf807c43e
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.69-perl-5.26-2.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/625576
+
+--- autoconf-2.69/bin/autoheader.in
++++ autoconf-2.69/bin/autoheader.in
+@@ -173,6 +173,12 @@
+ # Source what the traces are trying to tell us.
+ verb "$me: running $autoconf to trace from $ARGV[0]";
+ my $quoted_tmp = shell_quote ($tmp);
++my $perl_tmp;
++if ( $tmp =~ /^\// ) {
++ $perl_tmp=$tmp;
++} else {
++ $perl_tmp="./".$tmp;
++}
+ xsystem ("$autoconf"
+ # If you change this list, update the
+ # `Autoheader-preselections' section of autom4te.in.
+@@ -182,9 +188,9 @@
+ . " " . shell_quote ($ARGV[0]) . " >$quoted_tmp/traces.pl");
+
+ local (%verbatim, %symbol);
+-debug "$me: \`do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
+-do "$tmp/traces.pl";
+-warn "couldn't parse $tmp/traces.pl: $@" if $@;
++debug "$me: \`do'ing $perl_tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
++do "$perl_tmp/traces.pl";
++warn "couldn't parse $perl_tmp/traces.pl: $@" if $@;
+ unless ($config_h)
+ {
+ error "error: AC_CONFIG_HEADERS not found in $ARGV[0]";
diff --git a/dev-build/autoconf/files/autoconf-2.69-perl-5.26.patch b/dev-build/autoconf/files/autoconf-2.69-perl-5.26.patch
new file mode 100644
index 000000000000..b3d7888ca722
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.69-perl-5.26.patch
@@ -0,0 +1,28 @@
+From e5654a5591884b92633c7785f325626711e7f7aa Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 29 Jan 2013 13:46:48 -0800
+Subject: [PATCH] autoscan: port to perl 5.17
+
+* bin/autoscan.in (scan_sh_file): Escape '{'. This avoids a
+feature that is deprecated in Perl 5.17. Reported by Ray Lauff in
+<http://lists.gnu.org/archive/html/bug-autoconf/2013-01/msg00059.html>.
+---
+ bin/autoscan.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/autoscan.in b/bin/autoscan.in
+index 993a750..db1df79 100644
+--- a/bin/autoscan.in
++++ b/bin/autoscan.in
+@@ -358,7 +358,7 @@ sub scan_sh_file ($)
+ {
+ # Strip out comments and variable references.
+ s/#.*//;
+- s/\${[^\}]*}//g;
++ s/\$\{[^\}]*}//g;
+ s/@[^@]*@//g;
+
+ # Tokens in the code.
+--
+1.9.1
+
diff --git a/dev-build/autoconf/files/autoconf-2.71-AC_C_BIGENDIAN-lto.patch b/dev-build/autoconf/files/autoconf-2.71-AC_C_BIGENDIAN-lto.patch
new file mode 100644
index 000000000000..48fbdc6f544b
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-AC_C_BIGENDIAN-lto.patch
@@ -0,0 +1,50 @@
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=234fc6c86613ed3f366dd1d88996e4d5d85ee222
+
+From 234fc6c86613ed3f366dd1d88996e4d5d85ee222 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 27 Jul 2022 08:53:35 -0700
+Subject: Port AC_C_BIGENDIAN to cross gcc -std=c11 -flto
+
+* lib/autoconf/c.m4 (AC_C_BIGENDIAN): Improve the
+inherently-unportable grep trick well enough to survive gcc
+-std=c11 -flto when cross-compiling (sr#110687).
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -1838,8 +1838,8 @@ AC_DEFUN([AC_C_BIGENDIAN],
+ [ac_cv_c_bigendian=no],
+ [ac_cv_c_bigendian=yes],
+ [# Try to guess by grepping values from an object file.
+- AC_COMPILE_IFELSE(
+- [AC_LANG_PROGRAM(
++ AC_LINK_IFELSE(
++ [AC_LANG_SOURCE(
+ [[unsigned short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ unsigned short int ascii_ii[] =
+@@ -1854,13 +1854,20 @@ AC_DEFUN([AC_C_BIGENDIAN],
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+- extern int foo;
+- ]],
+- [[return use_ascii (foo) == use_ebcdic (foo);]])],
+- [if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
++ int
++ main (int argc, char **argv)
++ {
++ /* Intimidate the compiler so that it does not
++ optimize the arrays away. */
++ char *p = argv[0];
++ ascii_mm[1] = *p++; ebcdic_mm[1] = *p++;
++ ascii_ii[1] = *p++; ebcdic_ii[1] = *p++;
++ return use_ascii (argc) == use_ebcdic (*p);
++ }]])],
++ [if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
++ if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+cgit v1.1
diff --git a/dev-build/autoconf/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch b/dev-build/autoconf/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch
new file mode 100644
index 000000000000..5b53d17135bc
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-AC_LANG_CALL_C_cxx.patch
@@ -0,0 +1,35 @@
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=b27bc3e230bb12fdd9a813e38e82bc4c3e22b4cc
+
+Note: we drop the comma from the comment because some packages
+have bad quoting, and while that will need to be sorted when/if
+autoconf 2.72 is released, we've got our hands full with the
+Clang situation right now (bug #871753).
+
+From b27bc3e230bb12fdd9a813e38e82bc4c3e22b4cc Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 31 Aug 2021 16:30:46 -0700
+Subject: Port AC_LANG_CALL(C) to C++
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* lib/autoconf/c.m4 (AC_LANG_CALL(C)): Add an extern "C" if C++.
+Problem reported by Vincent Lefèvre (sr #110532).
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -126,7 +126,13 @@ m4_define([AC_LANG_CALL(C)],
+ m4_if([$2], [main], ,
+ [/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+- builtin and then its argument prototype would still apply. */
++ builtin and then its argument prototype would still apply.
++ The 'extern "C"' is for builds by C++ compilers;
++ although this is not generally supported in C code supporting it here
++ has little cost and some practical benefit (sr 110532). */
++#ifdef __cplusplus
++extern "C"
++#endif
+ char $2 ();])], [return $2 ();])])
+
+
+cgit v1.1
diff --git a/dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang-deux.patch b/dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang-deux.patch
new file mode 100644
index 000000000000..6a3d6580a3f6
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang-deux.patch
@@ -0,0 +1,94 @@
+https://bugs.gentoo.org/870412
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=bf5a75953b6d504f0405b1ca33b039b8dd39eef4
+
+Backport the K&R decls fix to 2.71 to avoid configure tests
+failing (often "silently", i.e. doesn't fail the build of
+the package overall, just leads to wrong results) with
+newer compilers like the upcoming Clang 16.
+
+From bf5a75953b6d504f0405b1ca33b039b8dd39eef4 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Thu, 10 Nov 2022 12:05:30 -0500
+Subject: More fixes for compilers that reject K&R function definitions.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes all of the remaining failures exposed by running the
+testsuite with GCC 12 and
+CC='cc -Wimplicit-function-declaration -Wold-style-definition
+ -Wimplicit-int -Werror'
+.
+
+* lib/autoconf/c.m4 (_AC_C_C89_TEST_GLOBALS): Don’t use K&R function
+ definitions.
+* lib/autoconf/specific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Likewise.
+ (AC_FUNC_MKTIME): Declare functions taking no arguments as ‘fn (void)’
+ not ‘fn ()’.
+* lib/autoconf/c.m4 (_AC_C_C99_TEST_GLOBALS): Declare free().
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -1153,9 +1153,7 @@ struct stat;
+ /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
+ struct buf { int x; };
+ struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+- char **p;
+- int i;
++static char *e (char **p, int i)
+ {
+ return p[i];
+ }
+@@ -1212,6 +1210,7 @@ extern int puts (const char *);
+ extern int printf (const char *, ...);
+ extern int dprintf (int, const char *, ...);
+ extern void *malloc (size_t);
++extern void free (void *);
+
+ // Check varargs macros. These examples are taken from C99 6.10.3.5.
+ // dprintf is used instead of fprintf to avoid needing to declare
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -1091,7 +1091,7 @@ static const char *tz_strings[] = {
+ /* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+ static int
+-spring_forward_gap ()
++spring_forward_gap (void)
+ {
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+@@ -1128,7 +1128,7 @@ mktime_test (time_t now)
+ }
+
+ static int
+-irix_6_4_bug ()
++irix_6_4_bug (void)
+ {
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+@@ -1170,7 +1170,7 @@ bigtime_test (int j)
+ }
+
+ static int
+-year_2050_test ()
++year_2050_test (void)
+ {
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -361,10 +361,9 @@ AC_INCLUDES_DEFAULT
+ /* Some platforms explicitly require an extern "C" signal handler
+ when using C++. */
+ #ifdef __cplusplus
+-extern "C" void ucatch (int dummy) { }
+-#else
+-void ucatch (dummy) int dummy; { }
++extern "C"
+ #endif
++void ucatch (int dummy) { }
+
+ int
+ main (void)
+cgit v1.1
diff --git a/dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang.patch b/dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang.patch
new file mode 100644
index 000000000000..e2e451e86920
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-K-R-decls-clang.patch
@@ -0,0 +1,114 @@
+https://bugs.gentoo.org/870412
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b
+
+Backport the K&R decls fix to 2.71 to avoid configure tests
+failing (often "silently", i.e. doesn't fail the build of
+the package overall, just leads to wrong results) with
+newer compilers like the upcoming Clang 16.
+
+From 8b5e2016c7ed2d67f31b03a3d2e361858ff5299b Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Thu, 1 Sep 2022 16:19:50 -0500
+Subject: Port to compilers that moan about K&R func decls
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* lib/autoconf/c.m4 (AC_LANG_CALL, AC_LANG_FUNC_LINK_TRY):
+Use '(void)' rather than '()' in function prototypes, as the latter
+provokes fatal errors in some compilers nowadays.
+* lib/autoconf/functions.m4 (AC_FUNC_STRTOD):
+* tests/fortran.at (AC_F77_DUMMY_MAIN usage):
+* tests/semantics.at (AC_CHECK_DECLS):
+Don’t use () in a function decl.
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -133,7 +133,7 @@ m4_if([$2], [main], ,
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char $2 ();])], [return $2 ();])])
++char $2 (void);])], [return $2 ();])])
+
+
+ # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION)
+@@ -157,7 +157,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
+ #define $1 innocuous_$1
+
+ /* System header to define __stub macros and hopefully few prototypes,
+- which can conflict with char $1 (); below. */
++ which can conflict with char $1 (void); below. */
+
+ #include <limits.h>
+ #undef $1
+@@ -168,7 +168,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char $1 ();
++char $1 (void);
+ /* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -1613,9 +1613,6 @@ AC_DEFUN([AC_FUNC_STRTOD],
+ AC_CACHE_CHECK(for working strtod, ac_cv_func_strtod,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ ]AC_INCLUDES_DEFAULT[
+-#ifndef strtod
+-double strtod ();
+-#endif
+ int
+ main (void)
+ {
+--- a/tests/fortran.at
++++ b/tests/fortran.at
+@@ -233,7 +233,7 @@ void FOOBAR_F77 (double *x, double *y);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int F77_DUMMY_MAIN () { return 1; }
++ int F77_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main(int argc, char *argv[])
+@@ -315,7 +315,7 @@ void FOOBAR_FC(double *x, double *y);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int FC_DUMMY_MAIN () { return 1; }
++ int FC_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main (int argc, char *argv[])
+@@ -561,7 +561,7 @@ void @foobar@ (int *x);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int F77_DUMMY_MAIN () { return 1; }
++ int F77_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main(int argc, char *argv[])
+@@ -637,7 +637,7 @@ void @foobar@ (int *x);
+ # ifdef __cplusplus
+ extern "C"
+ # endif
+- int FC_DUMMY_MAIN () { return 1; }
++ int FC_DUMMY_MAIN (void) { return 1; }
+ #endif
+
+ int main(int argc, char *argv[])
+--- a/tests/semantics.at
++++ b/tests/semantics.at
+@@ -207,7 +207,7 @@ AT_CHECK_MACRO([AC_CHECK_DECLS],
+ [[extern int yes;
+ enum { myenum };
+ extern struct mystruct_s { int x[20]; } mystruct;
+- extern int myfunc();
++ extern int myfunc (int);
+ #define mymacro1(arg) arg
+ #define mymacro2]])
+ # Ensure we can detect missing declarations of functions whose
+cgit v1.1
diff --git a/dev-build/autoconf/files/autoconf-2.71-bash52.patch b/dev-build/autoconf/files/autoconf-2.71-bash52.patch
new file mode 100644
index 000000000000..1c3c91db1d4f
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-bash52.patch
@@ -0,0 +1,65 @@
+From 412166e185c00d6eacbe67dfcb0326f622ec4020 Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@xry111.site>
+Date: Fri, 30 Sep 2022 11:36:03 -0400
+Subject: [PATCH] Fix testsuite failures with bash 5.2.
+
+Bash v5.2 includes several new optimizations to the number of
+subshells used for various constructs; as a side effect, the value of
+SHLVL is less stable than it used to be. Add SHLVL to the list of
+built-in shell variables with unstable values, to be ignored when
+checking for inappropriate differences to the shell environment
+before and after a macro invocation / between two configure runs.
+
+Problem and solution reported by Xi Ruoyao in
+https://lists.gnu.org/archive/html/autoconf/2022-09/msg00015.html
+Problem also reported by Bruce Dubbs in
+https://lists.gnu.org/archive/html/bug-autoconf/2022-09/msg00010.html
+
+* tests/local.at (_AT_CHECK_ENV, AT_CONFIG_CMP): Ignore changes in
+ value of SHLVL.
+Copyright-paperwork-exempt: yes
+---
+ tests/local.at | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/tests/local.at b/tests/local.at
+index 193fd118..a9cf4050 100644
+--- a/tests/local.at
++++ b/tests/local.at
+@@ -352,7 +352,7 @@ m4_define([AT_CHECK_CONFIGURE],
+ # - AC_SUBST'ed variables
+ # (FIXME: Generate a list of these automatically.)
+ # - _|@|.[*#?$].|argv|ARGC|LINENO|OLDPWD|PIPESTATUS|RANDOM|SECONDS
+-# |START_TIME|ToD|_AST_FEATURES
++# |SHLVL|START_TIME|ToD|_AST_FEATURES
+ # Some variables some shells use and change.
+ # '.[*#?$].' catches '$#' etc. which are displayed like this:
+ # | '!'=18186
+@@ -404,7 +404,7 @@ if test -f state-env.before && test -f state-env.after; then
+ [GREP|[EF]GREP|SED],
+ [[_@]|.[*@%:@?$].],
+ [argv|ARGC|LINENO|BASH_ARGC|BASH_ARGV|OLDPWD|PIPESTATUS|RANDOM],
+- [SECONDS|START_TIME|ToD|_AST_FEATURES]))=' \
++ [SECONDS|SHLVL|START_TIME|ToD|_AST_FEATURES]))=' \
+ $act_file ||
+ test $? -eq 1 || echo failed >&2
+ ) 2>stderr-$act_file |
+@@ -435,6 +435,7 @@ fi
+ # - PPID [bash, zsh]
+ # - RANDOM [bash, zsh]
+ # - SECONDS [bash, zsh]
++# - SHLVL [bash]
+ # - START_TIME [NetBSD sh]
+ # - ToD [NetBSD sh]
+ # - '$' [zsh]
+@@ -483,6 +484,7 @@ do
+ /^PPID=/ d
+ /^RANDOM=/ d
+ /^SECONDS=/ d
++ /^SHLVL=/ d
+ /^START_TIME=/ d
+ /^ToD=/ d
+ /'\'\\\$\''=/ d
+--
+2.39.3
+
diff --git a/dev-build/autoconf/files/autoconf-2.71-cxx11typo.patch b/dev-build/autoconf/files/autoconf-2.71-cxx11typo.patch
new file mode 100644
index 000000000000..ed3f68ea2b9e
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-cxx11typo.patch
@@ -0,0 +1,31 @@
+From f460883035ef849a2248b1713f711292ec19f4f0 Mon Sep 17 00:00:00 2001
+From: Emanuele Giaquinta <emanuele.giaquinta@gmail.com>
+Date: Fri, 14 May 2021 09:06:20 +0300
+Subject: [PATCH] _AC_PROG_CXX_STDCXX_EDITION_TRY: fix typo in variable name
+
+The typo causes "ac_prog_cxx_stdcxx" to be always set to "cxx11",
+regardless of whether the C++ compiler supports C++11.
+Message-Id: <YJ4TXAeJcvU0oSec@FSAPPLE2215.fi.f-secure.com>
+(tiny change)
+---
+ lib/autoconf/c.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
+index 9f881f0b..47434c89 100644
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -2749,8 +2749,8 @@ AC_DEFUN([_AC_PROG_CXX_STDCXX_EDITION_TRY],
+ [AC_REQUIRE([_AC_CXX_CXX$1_TEST_PROGRAM])]dnl
+ [AS_IF([test x$ac_prog_cxx_stdcxx = xno],
+ [AC_MSG_CHECKING([for $CXX option to enable C++$1 features])
+-AC_CACHE_VAL(ac_cv_prog_cxx_$1,
+-[ac_cv_prog_cxx_$1=no
++AC_CACHE_VAL(ac_cv_prog_cxx_cxx$1,
++[ac_cv_prog_cxx_cxx$1=no
+ ac_save_CXX=$CXX
+ AC_LANG_CONFTEST([AC_LANG_DEFINES_PROVIDED][$][ac_cxx_conftest_cxx$1_program])
+ for ac_arg in '' m4_normalize(m4_defn([_AC_CXX_CXX$1_OPTIONS]))
+--
+2.39.3
+
diff --git a/dev-build/autoconf/files/autoconf-2.71-darwin.patch b/dev-build/autoconf/files/autoconf-2.71-darwin.patch
new file mode 100644
index 000000000000..c122aee4b22d
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-darwin.patch
@@ -0,0 +1,11 @@
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -122,7 +122,7 @@
+ my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
+ my $automake = $ENV{'AUTOMAKE'} || 'automake';
+ my $aclocal = $ENV{'ACLOCAL'} || 'aclocal';
+-my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
++my $libtoolize = $ENV{'LIBTOOLIZE'} || 'glibtoolize';
+ my $intltoolize = $ENV{'INTLTOOLIZE'} || 'intltoolize';
+ my $gtkdocize = $ENV{'GTKDOCIZE'} || 'gtkdocize';
+ my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
diff --git a/dev-build/autoconf/files/autoconf-2.71-make-4.4.patch b/dev-build/autoconf/files/autoconf-2.71-make-4.4.patch
new file mode 100644
index 000000000000..4dcf05996180
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-make-4.4.patch
@@ -0,0 +1,25 @@
+https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=31f673434ee402258b45e958c88acc8725d82b1a
+https://savannah.gnu.org/bugs/?63040
+https://bugs.gentoo.org/869257
+
+From 31f673434ee402258b45e958c88acc8725d82b1a Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Fri, 9 Sep 2022 16:54:11 -0500
+Subject: Port to GNU make 4.4
+
+* cfg.mk (PATH): Assign eagerly, and simplify shell use, avoiding
+use of the shell entirely if PWD is set, as it should be.
+Problem reported by Sergei Trofimovich in:
+https://lists.gnu.org/r/autoconf-patches/2022-09/msg00007.html
+--- a/cfg.mk
++++ b/cfg.mk
+@@ -18,7 +18,7 @@
+ # This file is '-include'd into GNUmakefile.
+
+ # Build with our own versions of these tools, when possible.
+-export PATH = $(shell echo "`pwd`/tests:$$PATH")
++export PATH := $(or $(PWD),$(shell pwd))/tests:$(PATH)
+
+ # Remove the autoreconf-provided INSTALL, so that we regenerate it.
+ _autoreconf = autoreconf -i -v && rm -f INSTALL
+cgit v1.1
diff --git a/dev-build/autoconf/files/autoconf-2.71-time.patch b/dev-build/autoconf/files/autoconf-2.71-time.patch
new file mode 100644
index 000000000000..8ecfe10f40a3
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.71-time.patch
@@ -0,0 +1,49 @@
+From e194b3c7e00429612a9d40e78ea571687fd25b91 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
+Date: Sun, 1 Aug 2021 19:07:48 +0200
+Subject: [PATCH] Use stat from Time::HiRes (instead of File::stat)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
+---
+ lib/Autom4te/FileUtils.pm | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm
+index a182031b..27a5fd91 100644
+--- a/lib/Autom4te/FileUtils.pm
++++ b/lib/Autom4te/FileUtils.pm
+@@ -34,12 +34,12 @@ This perl module provides various general purpose file handling functions.
+
+ =cut
+
+-use 5.006;
++use 5.008;
+ use strict;
+ use warnings FATAL => 'all';
+
+ use Exporter;
+-use File::stat;
++use Time::HiRes qw(stat);
+ use IO::File;
+
+ use Autom4te::Channels;
+@@ -115,10 +115,11 @@ sub mtime ($)
+ return 0
+ if $file eq '-' || ! -f $file;
+
+- my $stat = stat ($file)
++ my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
++ $atime,$mtime,$ctime,$blksize,$blocks) = stat ($file)
+ or fatal "cannot stat $file: $!";
+
+- return $stat->mtime;
++ return $mtime;
+ }
+
+
+--
+2.31.1
+
diff --git a/dev-build/autoconf/files/autoconf-2.72-Port-AC_SYS_LARGEFILE-to-CXX.patch b/dev-build/autoconf/files/autoconf-2.72-Port-AC_SYS_LARGEFILE-to-CXX.patch
new file mode 100644
index 000000000000..438c032dbc03
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.72-Port-AC_SYS_LARGEFILE-to-CXX.patch
@@ -0,0 +1,87 @@
+From b71143738516017f0e0d347a4025301c06c40254 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 24 Apr 2024 14:47:56 -0700
+Subject: Port AC_SYS_LARGEFILE to C++
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Problem reported by Zack Weinberg
+<https://savannah.gnu.org/support/?110983>.
+* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE)
+(_AC_SYS_LARGEFILE_PROBE):
+In chatter, say it’s a CPPFLAGS option, not a CC option.
+(_AC_SYS_LARGEFILE_OPTIONS): Omit -n32, as we no longer
+need to worry about IRIX.
+(_AC_SYS_LARGEFILE_PROBE): Fiddle with CPPFLAGS, not CC,
+and don’t worry about -n32.
+---
+ lib/autoconf/specific.m4 | 18 +++++++-----------
+ 1 file changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index a0e1fa8d..0d0191a8 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -132,7 +132,7 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
+ # If you change this macro you may also need to change
+ # _AC_SYS_YEAR2038_OPTIONS.
+ AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
+-[AC_CACHE_CHECK([for $CC option for timestamps after 2038],
++[AC_CACHE_CHECK([for $CPPFLAGS option for timestamps after 2038],
+ [ac_cv_sys_year2038_opts],
+ [ac_save_CPPFLAGS="$CPPFLAGS"
+ ac_opt_found=no
+@@ -262,7 +262,6 @@ m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
+ ["none needed"] dnl Most current systems
+ ["-D_FILE_OFFSET_BITS=64"] dnl X/Open LFS spec
+ ["-D_LARGE_FILES=1"] dnl 32-bit AIX 4.2.1+, 32-bit z/OS
+- ["-n32"] dnl 32-bit IRIX 6, SGI cc (obsolete)
+ ))
+
+ # _AC_SYS_LARGEFILE_PROBE
+@@ -279,25 +278,25 @@ m4_define([_AC_SYS_LARGEFILE_OPTIONS], m4_normalize(
+ # If you change this macro you may also need to change
+ # _AC_SYS_LARGEFILE_OPTIONS.
+ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
+-[AC_CACHE_CHECK([for $CC option to enable large file support],
++[AC_CACHE_CHECK([for $CPPFLAGS option for large files],
+ [ac_cv_sys_largefile_opts],
+- [ac_save_CC="$CC"
++ [ac_save_CPPFLAGS=$CPPFLAGS
+ ac_opt_found=no
+ for ac_opt in _AC_SYS_LARGEFILE_OPTIONS; do
+ AS_IF([test x"$ac_opt" != x"none needed"],
+- [CC="$ac_save_CC $ac_opt"])
++ [CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
+ [AS_IF([test x"$ac_opt" = x"none needed"],
+ [# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
+- CC="$CC -DFTYPE=ino_t"
++ CPPFLAGS="$CPPFLAGS -DFTYPE=ino_t"
+ AC_COMPILE_IFELSE([], [],
+- [CC="$CC -D_FILE_OFFSET_BITS=64"
++ [CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
+ AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
+ ac_cv_sys_largefile_opts=$ac_opt
+ ac_opt_found=yes])
+ test $ac_opt_found = no || break
+ done
+- CC="$ac_save_CC"
++ CPPFLAGS=$ac_save_CPPFLAGS
+ dnl Gnulib implements large file support for native Windows, based on the
+ dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.
+ m4_ifdef([gl_LARGEFILE], [
+@@ -327,9 +326,6 @@ AS_CASE([$ac_cv_sys_largefile_opts],
+ [AC_DEFINE([_LARGE_FILES], [1],
+ [Define to 1 on platforms where this makes off_t a 64-bit type.])],
+
+- ["-n32"],
+- [CC="$CC -n32"],
+-
+ [AC_MSG_ERROR(
+ [internal error: bad value for \$ac_cv_sys_largefile_opts])])
+
+--
+cgit v1.2.3
+
diff --git a/dev-build/autoconf/files/autoconf-2.72-Port-C11-test-to-C-20.patch b/dev-build/autoconf/files/autoconf-2.72-Port-C11-test-to-C-20.patch
new file mode 100644
index 000000000000..798e2936e4d0
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.72-Port-C11-test-to-C-20.patch
@@ -0,0 +1,28 @@
+From e6c9cb69c8c0a4ef9ce0538d7b4106dad3d7ad47 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sun, 26 May 2024 07:04:19 -0700
+Subject: [PATCH] Port C11 test to C++20
+
+Trivial fix suggested by Peter Johansson in:
+https://lists.gnu.org/r/autoconf/2024-05/msg00004.html
+* lib/autoconf/c.m4 (_AC_CXX_CXX11_TEST_MAIN):
+Do not test assigning u8"..." to char const *, as this
+runs afoul of C++20.
+---
+ lib/autoconf/c.m4 | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
+index d4f7fbe..673d62e 100644
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -2638,8 +2638,7 @@ ac_cxx_conftest_cxx11_main='
+ test_template<::test_template<int>> v(test_template<int>(12));
+ }
+ {
+- // Unicode literals
+- char const *utf8 = u8"UTF-8 string \u2500";
++ // Unicode literals. Do not test u8"..." as C++20 would reject it.
+ char16_t const *utf16 = u"UTF-8 string \u2500";
+ char32_t const *utf32 = U"UTF-32 string \u2500";
+ }
diff --git a/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
new file mode 100644
index 000000000000..d9ca338b2e96
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch
@@ -0,0 +1,104 @@
+https://savannah.gnu.org/support/?111273
+https://file.savannah.gnu.org/file/0001-autoreconf-Adapt-to-the-on-disk-situation-after-auto.patch?file_id=57364
+
+From d75171fdf8d03d2e070fcc3dbb5afb942dbd7828 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Sat, 5 Jul 2025 17:20:11 +0200
+Subject: [PATCH] autoreconf: Adapt to the on-disk situation after autopoint
+ has run.
+
+Reported in <https://savannah.gnu.org/support/?111273>.
+
+* bin/autoreconf.in (autoreconf_current_directory): After invoking autopoint,
+rerun aclocal. When doing so, pass extra options "-I m4" if the configure.ac
+does not specify a macro dir.
+---
+ bin/autoreconf.in | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/bin/autoreconf.in b/bin/autoreconf.in
+index 3f6a74fe..eb0d96a9 100644
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -489,6 +489,7 @@ sub autoreconf_current_directory ($)
+ # Actually, it is even more restrictive, as it greps for
+ # '^AM_GNU_GETTEXT_(REQUIRE_)?VERSION('. We did this above, while
+ # scanning configure.ac.
++ my $invoked_autopoint;
+ if (!$uses_liblink && !$uses_iconv && !$uses_gettext)
+ {
+ verb "$configure_ac: not using Gettext";
+@@ -514,6 +515,7 @@ sub autoreconf_current_directory ($)
+ xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
+ $autopoint);
+ }
++ $invoked_autopoint = 1;
+ }
+
+
+@@ -593,6 +595,7 @@ sub autoreconf_current_directory ($)
+ # from the final autoconf invocation.
+ my $aux_dir;
+ my @aux_files;
++ my @macro_dirs;
+ my $uses_liblink_via_traces;
+ my $uses_iconv_via_traces;
+ my $uses_gettext_via_traces;
+@@ -616,6 +619,8 @@ sub autoreconf_current_directory ($)
+ 'AC_CONFIG_AUX_DIR',
+ 'AC_CONFIG_HEADERS',
+ 'AC_CONFIG_SUBDIRS',
++ 'AC_CONFIG_MACRO_DIR_TRACE',
++ 'AC_CONFIG_MACRO_DIR',
+ 'AC_INIT',
+ 'AC_REQUIRE_AUX_FILE',
+ 'AC_PROG_LIBTOOL',
+@@ -640,6 +645,8 @@ sub autoreconf_current_directory ($)
+ my ($macro, @args) = split (/::/);
+ $aux_dir = $args[0] if $macro eq "AC_CONFIG_AUX_DIR";
+ push @aux_files, $args[0] if $macro eq "AC_REQUIRE_AUX_FILE";
++ push @macro_dirs, $args[0] if $macro eq "AC_CONFIG_MACRO_DIR_TRACE"
++ || $macro eq "AC_CONFIG_MACRO_DIR";
+ $uses_autoconf = 1 if $macro eq "AC_INIT";
+ # Here we need to explicitly test for GUILE_FLAGS, because in the
+ # typical situation where configure.ac invokes GUILE_FLAGS,
+@@ -679,6 +686,15 @@ sub autoreconf_current_directory ($)
+ }
+ }
+
++ # When configure.ac does not specify a macro dir, autopoint has
++ # created a directory named 'm4' and copied its *.m4 files into it.
++ # In this case, we need to rerun 'aclocal', in order to pass it the
++ # options "-I m4" this time.
++ if ($invoked_autopoint && !@macro_dirs)
++ {
++ $rerun_aclocal = 1;
++ }
++
+ # Gettext consistency checks.
+ # Some projects intentionally don't call AM_GNU_GETTEXT_(REQUIRE_)VERSION
+ # because they have all of the gettext infrastructure checked into version
+@@ -807,6 +823,8 @@ sub autoreconf_current_directory ($)
+ xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
+ $autopoint);
+ }
++ $invoked_autopoint = 1;
++ $rerun_aclocal = 1;
+ }
+
+
+@@ -824,6 +842,12 @@ sub autoreconf_current_directory ($)
+ }
+ else
+ {
++ # When configure.ac does not specify a macro dir, autopoint has
++ # created a directory named 'm4' and copied its *.m4 files into it.
++ if ($invoked_autopoint && !@macro_dirs)
++ {
++ $aclocal_flags .= " -I m4";
++ }
+ xsystem ("$aclocal $aclocal_flags");
+ }
+ }
+--
+2.43.0
diff --git a/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
new file mode 100644
index 000000000000..33d5cfd0a6b5
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.72-gettext-0.25-autoreconf-Invoke-autopoint-in-more-situations.patch
@@ -0,0 +1,161 @@
+https://savannah.gnu.org/support/?111272
+https://file.savannah.gnu.org/file/0001-autoreconf-Invoke-autopoint-in-more-situations.patch?file_id=57421
+
+From e2a4935b45f273410e975ecf56ab26ad72855df0 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Wed, 2 Jul 2025 02:43:41 +0200
+Subject: [PATCH 1/2] autoreconf: Invoke autopoint in more situations.
+
+Reported in <https://savannah.gnu.org/support/?111272>.
+
+* bin/autoreconf.in (autoreconf_current_directory): Invoke autopoint also when
+the package uses AM_GNU_GETTEXT (without AM_GNU_GETTEXT_VERSION), AM_PO_SUBDIRS,
+AM_ICONV, AC_LIB_LINKFLAGS, AC_LIB_HAVE_LINKFLAGS, AC_LIB_LINKFLAGS_FROM_LIBS,
+or GUILE_FLAGS.
+---
+ bin/autoreconf.in | 80 ++++++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 76 insertions(+), 4 deletions(-)
+
+diff --git a/bin/autoreconf.in b/bin/autoreconf.in
+index a5ffc6fa..207900df 100644
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -440,6 +440,8 @@ sub autoreconf_current_directory ($)
+ # ---------------------- #
+
+ my $uses_autoconf;
++ my $uses_liblink;
++ my $uses_iconv;
+ my $uses_gettext;
+ if (-f $configure_ac)
+ {
+@@ -449,8 +451,13 @@ sub autoreconf_current_directory ($)
+ s/#.*//;
+ s/dnl.*//;
+ $uses_autoconf = 1 if /AC_INIT/;
++ $uses_liblink = 1 if /AC_LIB_HAVE_LINKFLAGS/;
++ $uses_liblink = 1 if /AC_LIB_LINKFLAGS/;
++ $uses_liblink = 1 if /AC_LIB_LINKFLAGS_FROM_LIBS/;
++ $uses_iconv = 1 if /AM_ICONV/;
+ # See below for why we look for gettext here.
+- $uses_gettext = 1 if /^AM_GNU_GETTEXT_(?:REQUIRE_)?VERSION/;
++ $uses_gettext = 1 if /AM_GNU_GETTEXT/;
++ $uses_gettext = 1 if /AM_PO_SUBDIRS/;
+ }
+ if (!$uses_autoconf)
+ {
+@@ -485,7 +492,7 @@ sub autoreconf_current_directory ($)
+ # Actually, it is even more restrictive, as it greps for
+ # '^AM_GNU_GETTEXT_(REQUIRE_)?VERSION('. We did this above, while
+ # scanning configure.ac.
+- if (!$uses_gettext)
++ if (!$uses_liblink && !$uses_iconv && !$uses_gettext)
+ {
+ verb "$configure_ac: not using Gettext";
+ }
+@@ -495,8 +502,21 @@ sub autoreconf_current_directory ($)
+ }
+ else
+ {
+- xsystem_hint ("autopoint is needed because this package uses Gettext",
+- $autopoint);
++ if ($uses_gettext)
++ {
++ xsystem_hint ("autopoint is needed because this package uses Gettext",
++ $autopoint);
++ }
++ elsif ($uses_iconv)
++ {
++ xsystem_hint ("autopoint is needed because this package uses AM_ICONV",
++ $autopoint);
++ }
++ elsif ($uses_liblink)
++ {
++ xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
++ $autopoint);
++ }
+ }
+
+
+@@ -576,6 +596,8 @@ sub autoreconf_current_directory ($)
+ # from the final autoconf invocation.
+ my $aux_dir;
+ my @aux_files;
++ my $uses_liblink_via_traces;
++ my $uses_iconv_via_traces;
+ my $uses_gettext_via_traces;
+ my $uses_libtool;
+ my $uses_intltool;
+@@ -603,6 +625,11 @@ sub autoreconf_current_directory ($)
+ 'AM_PROG_LIBTOOL',
+ 'LT_INIT',
+ 'LT_CONFIG_LTDL_DIR',
++ 'AC_LIB_LINKFLAGS',
++ 'AC_LIB_HAVE_LINKFLAGS',
++ 'AC_LIB_LINKFLAGS_FROM_LIBS',
++ 'GUILE_FLAGS',
++ 'AM_ICONV',
+ 'AM_GNU_GETTEXT',
+ 'AM_INIT_AUTOMAKE',
+ 'GTK_DOC_CHECK',
+@@ -617,6 +644,15 @@ sub autoreconf_current_directory ($)
+ $aux_dir = $args[0] if $macro eq "AC_CONFIG_AUX_DIR";
+ push @aux_files, $args[0] if $macro eq "AC_REQUIRE_AUX_FILE";
+ $uses_autoconf = 1 if $macro eq "AC_INIT";
++ # Here we need to explicitly test for GUILE_FLAGS, because in the
++ # typical situation where configure.ac invokes GUILE_FLAGS,
++ # guile.m4 defines GUILE_FLAGS and uses AC_LIB_LINKFLAGS_FROM_LIBS,
++ # the traces still for AC_LIB_LINKFLAGS_FROM_LIBS are empty.
++ $uses_liblink_via_traces = 1 if $macro eq "AC_LIB_LINKFLAGS"
++ || $macro eq "AC_LIB_HAVE_LINKFLAGS"
++ || $macro eq "AC_LIB_LINKFLAGS_FROM_LIBS"
++ || $macro eq "GUILE_FLAGS";
++ $uses_iconv_via_traces = 1 if $macro eq "AM_ICONV";
+ $uses_gettext_via_traces = 1 if $macro eq "AM_GNU_GETTEXT";
+ $uses_libtool = 1 if $macro eq "AC_PROG_LIBTOOL"
+ || $macro eq "AM_PROG_LIBTOOL"
+@@ -741,6 +777,42 @@ sub autoreconf_current_directory ($)
+ }
+
+
++ # --------------------------------------------- #
++ # Running autopoint, if not already run above. #
++ # --------------------------------------------- #
++
++ if (!$uses_liblink_via_traces && !$uses_iconv_via_traces && !$uses_gettext_via_traces)
++ {
++ verb "$configure_ac: not needing autopoint";
++ }
++ elsif (!$install)
++ {
++ verb "$configure_ac: not running autopoint: --install not given";
++ }
++ elsif ($uses_liblink || $uses_iconv || $uses_gettext)
++ {
++ verb "$configure_ac: not running autopoint a second time";
++ }
++ else
++ {
++ if ($uses_gettext_via_traces)
++ {
++ xsystem_hint ("autopoint is needed because this package uses Gettext",
++ $autopoint);
++ }
++ elsif ($uses_iconv_via_traces)
++ {
++ xsystem_hint ("autopoint is needed because this package uses AM_ICONV",
++ $autopoint);
++ }
++ elsif ($uses_liblink_via_traces)
++ {
++ xsystem_hint ("autopoint is needed because this package uses AC_LIB_LINKFLAGS",
++ $autopoint);
++ }
++ }
++
++
+ # ------------------- #
+ # Rerunning aclocal. #
+ # ------------------- #
+--
+2.43.0
diff --git a/dev-build/autoconf/files/autoconf-2.73-darwin.patch b/dev-build/autoconf/files/autoconf-2.73-darwin.patch
new file mode 100644
index 000000000000..94007e9ad455
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.73-darwin.patch
@@ -0,0 +1,13 @@
+We rename libtoolize -> glibtoolize on macOS to avoid conflicting with
+the system tool.
+--- a/bin/autoreconf.in
++++ b/bin/autoreconf.in
+@@ -130,7 +130,7 @@ my %C = (
+ autom4te => $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@',
+ automake => $ENV{'AUTOMAKE'} || 'automake',
+ aclocal => $ENV{'ACLOCAL'} || 'aclocal',
+- libtoolize => $ENV{'LIBTOOLIZE'} || 'libtoolize',
++ libtoolize => $ENV{'LIBTOOLIZE'} || 'glibtoolize',
+ intltoolize => $ENV{'INTLTOOLIZE'} || 'intltoolize',
+ gtkdocize => $ENV{'GTKDOCIZE'} || 'gtkdocize',
+ autopoint => $ENV{'AUTOPOINT'} || 'autopoint',
diff --git a/dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch b/dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch
new file mode 100644
index 000000000000..4fce66d9490b
--- /dev/null
+++ b/dev-build/autoconf/files/autoconf-2.73-maintainer-mode-autoheader.patch
@@ -0,0 +1,12 @@
+https://savannah.gnu.org/support/index.php?111396
+--- a/bin/autoheader.in
++++ b/bin/autoheader.in
+@@ -232,7 +232,7 @@ if (open (my $fh, "<", $config_h_in))
+ # If the file is empty, $firstline will be undef. We _do_ want to
+ # go ahead and update it in that case.
+ if (defined $firstline
+- && $firstline !~ /^\/\* .*\. Generated from .* by autoheader\. \*\//
++ && $firstline !~ /^\/\* .*\. Generated( automatically)? from .* by autoheader\. \*\//
+ && !$replace_handwritten)
+ {
+ msg 'override', "${config_h_in} was not generated by autoheader";
diff --git a/dev-build/autoconf/metadata.xml b/dev-build/autoconf/metadata.xml
new file mode 100644
index 000000000000..4ff4a48125bc
--- /dev/null
+++ b/dev-build/autoconf/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="savannah">autoconf</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/automake-vanilla/Manifest b/dev-build/automake-vanilla/Manifest
new file mode 100644
index 000000000000..9b0a9548bcb7
--- /dev/null
+++ b/dev-build/automake-vanilla/Manifest
@@ -0,0 +1,7 @@
+DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba
+DIST automake-1.15.1.tar.xz 1509496 BLAKE2B e6ade31089f969140472004cd9854318470228c64e4f8e829d48c5379f62d2c5f8ef9509131c577653e81868d94544ecf6520f86b5d582ebb6ed65c832039f30 SHA512 02f661b2676f1d44334ce1c7188f9913a6874bf46ba487708ad8090ad57905f14aead80fefed815e21effacfbb925e23b944ea7dd32563dca39c1a4174eda688
+DIST automake-1.16.5-tests-c99.patch.xz 7176 BLAKE2B 1fa1d3a499bacc5da9ee9d8ea6cb63d9ab91646a708a53d9bb08eef65fe02a6ab34ff95737042348ea7572bd70c6c7467e260d9441239a00c3571d25d73085f0 SHA512 0065b809219257cbce3c6f6f88459b91a5a29272e0027698e06246181357ffe8d5d40057086438f891d821836441a5a96f2568d52dcd3b5acb80e4d4968cbaf9
+DIST automake-1.16.5.tar.xz 1601740 BLAKE2B 87408abc57e1d4317a2b518fb3606d0f6d156522e7333016dd84747cd8922f27ef7fcc93220b11f794ce52bf8fd9a788d0166a4d1964d7c283905f269977ac7c SHA512 3084ae543aa3fb5a05104ffb2e66cfa9a53080f2343c44809707fd648516869511500dba50dae67ff10f92a1bf3b5a92b2a0fa01cda30adb69b9da03994d9d88
+DIST automake-1.17.tar.xz 1652632 BLAKE2B 53c24c138faf3d2be4e30ababcccd4d157c03e815fc4b7f3e3063b6648cf254dfa63afe6e3285b21309dbf260335c3e67991db3825e7532b158b25ccaead83f5 SHA512 46aba1c9d64a6368b326020803a2999831c1deaf31eaa1c1dfdcfa5138a7f755643294e82a08b6daab3983b31eee725bdb7b9edc4e9a558374c7d1f1b8e854a7
+DIST automake-1.18.1.tar.xz 1652392 BLAKE2B 4461062a4d596dd87caec7d388449f5f8fe7a4faede8fd0d77d1fb3bb5d23caabb3b715fbb9f29f33326bec527f3d8da6251d9282d4007cef9af146d28fe96cf SHA512 8baa16831416a953a743f4e3c0f55cea5ebefe0f5a7a0e390581981d4461d02dc9038415124e974b2ec390c40daaa241802cd7d42c6fafb793f87cf355db2a61
+DIST automake-1.18.tar.xz 1652364 BLAKE2B 45456d6d0fdcd1222c79980ede1df16dfbf18fa4d4698289dbef7c9e24ae8877881678974c5defcce0a9f46b72882b4603e457e8142722174ccf0e495f941550 SHA512 3488d9188a9e11a3e7f911f429ef49d2d92c5ea42262e3e288e1d4de39217facd5a7b7c7ccac06e6fd78a661985af1fe5638353575ebadffb36fc22553e5f782
diff --git a/dev-build/automake-vanilla/automake-vanilla-1.11.6-r1.ebuild b/dev-build/automake-vanilla/automake-vanilla-1.11.6-r1.ebuild
new file mode 100644
index 000000000000..ecd2dcbf47f4
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-1.11.6-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+MY_PN=${PN/-vanilla}
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+RESTRICT="test !test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-10
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="
+ ${RDEPEND}
+ sys-apps/help2man
+"
+BDEPEND="
+ app-arch/gzip
+ test? ( dev-util/dejagnu )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${MY_P}-perl-5.16.patch #424453
+ "${FILESDIR}"/${MY_P}-install-sh-avoid-low-risk-race-in-tmp.patch
+ "${FILESDIR}"/${MY_P}-perl-escape-curly-bracket-r1.patch
+)
+
+src_prepare() {
+ default
+ export WANT_AUTOCONF=2.5
+ export HELP2MAN=true
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+ export TZ="UTC" #589138
+}
+
+src_configure() {
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_compile() {
+ :;
+
+ # TODO: This was missing a || die originally and fails now...
+ #local x
+ #for x in aclocal automake; do
+ # help2man "perl -Ilib ${x}" > doc/${x}-${SLOT}.1 || die
+ #done
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/automake-vanilla-1.15.1-r1.ebuild b/dev-build/automake-vanilla/automake-vanilla-1.15.1-r1.ebuild
new file mode 100644
index 000000000000..3c419f41942a
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-1.15.1-r1.ebuild
@@ -0,0 +1,127 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+inherit flag-o-matic toolchain-funcs
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${MY_PN}.git"
+ inherit git-r3
+else
+ MY_PN=${PN/-vanilla}
+ MY_P=${MY_PN}-${PV}
+
+ SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.xz"
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+# Failures w/ newer dejagnu, not worth backporting the fixes
+RESTRICT="!test? ( test ) test"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ dev-build/autoconf-vanilla:2.69
+ sys-apps/help2man
+ test? (
+ dev-util/dejagnu
+ )
+"
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=vanilla-2.69
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ # Old lex tests fail w/ modern C
+ export CC="$(tc-getCC) $(test-flags-CC -fpermissive)"
+
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_test() {
+ # Can't cope with newer Python versions, so pretend we don't
+ # have it installed.
+ local -x PYTHON=false
+
+ default
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ #rm "${ED}"/usr/share/aclocal/README || die
+ #rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/automake-vanilla-1.16.5-r1.ebuild b/dev-build/automake-vanilla/automake-vanilla-1.16.5-r1.ebuild
new file mode 100644
index 000000000000..fe36bd21e6a1
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-1.16.5-r1.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${MY_PN}.git"
+ inherit git-r3
+else
+ MY_PN=${PN/-vanilla}
+ MY_P=${MY_PN}-${PV}
+
+ SRC_URI="
+ mirror://gnu/${MY_PN}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN/-vanilla}/${PN/-vanilla}-1.16.5-tests-c99.patch.xz
+ "
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+# Failures w/ newer dejagnu, not worth backporting the fixes
+RESTRICT="!test? ( test ) test"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${MY_PN}-1.16.5-py3-compile.patch
+ "${FILESDIR}"/${MY_PN}-1.16.5-fix-instmany-python.sh-test.patch
+ "${FILESDIR}"/${MY_PN}-1.16.5-fix-py-compile-basedir.sh-test.patch
+ # upstreamed
+ "${FILESDIR}"/${MY_PN}-1.16.5-apostrophe-in-tests.patch
+ "${WORKDIR}"/${PN/-vanilla}-1.16.5-tests-c99.patch
+)
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_test() {
+ # Can't cope with newer Python versions, so pretend we don't
+ # have it installed.
+ local -x PYTHON=false
+
+ # Fails with byacc/flex and t/dist-auxdir-many-subdirs.sh doesn't
+ # like our Python hack.
+ emake YACC="bison -y" LEX="flex" XFAIL_TESTS="t/dist-auxdir-many-subdirs.sh" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ #rm "${ED}"/usr/share/aclocal/README || die
+ #rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/automake-vanilla-1.17-r1.ebuild b/dev-build/automake-vanilla/automake-vanilla-1.17-r1.ebuild
new file mode 100644
index 000000000000..043f1022b2ac
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-1.17-r1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+MY_PN=${PN/-vanilla}
+MY_P=${MY_PN}-${PV}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${MY_PN}.git"
+ inherit git-r3
+else
+ SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.xz"
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+"
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ #rm "${ED}"/usr/share/aclocal/README || die
+ #rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/automake-vanilla-1.18.1-r1.ebuild b/dev-build/automake-vanilla/automake-vanilla-1.18.1-r1.ebuild
new file mode 100644
index 000000000000..e93f665bb434
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-1.18.1-r1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-any-r1
+
+MY_PN=${PN/-vanilla}
+MY_P=${MY_PN}-${PV}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${MY_PN}.git"
+ inherit git-r3
+else
+ SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.xz"
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+"
+
+pkg_setup() {
+ # Avoid python-any-r1_pkg_setup
+ :
+}
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ use test && python_setup
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ #rm "${ED}"/usr/share/aclocal/README || die
+ #rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/automake-vanilla-1.18.ebuild b/dev-build/automake-vanilla/automake-vanilla-1.18.ebuild
new file mode 100644
index 000000000000..edf09c982bbd
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-1.18.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-any-r1
+
+MY_PN=${PN/-vanilla}
+MY_P=${MY_PN}-${PV}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${MY_PN}.git"
+ inherit git-r3
+else
+ SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.xz"
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+"
+
+pkg_setup() {
+ # Avoid python-any-r1_pkg_setup
+ :
+}
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ use test && python_setup
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+
+ #rm "${ED}"/usr/share/aclocal/README || die
+ #rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/automake-vanilla-9999.ebuild b/dev-build/automake-vanilla/automake-vanilla-9999.ebuild
new file mode 100644
index 000000000000..14beba3c6811
--- /dev/null
+++ b/dev-build/automake-vanilla/automake-vanilla-9999.ebuild
@@ -0,0 +1,134 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please do not apply any patches which affect the generated output from
+# `automake`, as this package is used to submit patches upstream.
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-any-r1
+
+MY_PN=${PN/-vanilla}
+MY_P=${MY_PN}-${PV}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${MY_PN}.git"
+ inherit git-r3
+else
+ SRC_URI="mirror://gnu/${MY_PN}/${MY_P}.tar.xz"
+
+ S="${WORKDIR}/${MY_P}"
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-11
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+"
+
+pkg_setup() {
+ # Avoid python-any-r1_pkg_setup
+ :
+}
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ use test && python_setup
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/${P}/info"
+ econf \
+ --datadir="${EPREFIX}"/usr/share/automake-vanilla-${PV} \
+ --program-suffix="-vanilla" \
+ --infodir="${MY_INFODIR}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ #rm "${ED}"/usr/share/aclocal/README || die
+ #rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake}-vanilla \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}-vanilla.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/automake-vanilla-${PVR}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-vanilla-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "07automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake-vanilla/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch b/dev-build/automake-vanilla/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch
new file mode 100644
index 000000000000..c435b9004f8d
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch
@@ -0,0 +1,77 @@
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sat, 15 Aug 2015 04:40:57 -0400
+Subject: install-sh: avoid (low risk) race in /tmp
+
+Ensure that nobody can cross privilege boundaries by pre-creating
+symlink on '$tmpdir' path.
+
+Just testing 'mkdir -p' by creating '/tmp/ins$RANDOM-$$/d' is not
+safe because '/tmp' directory is usually world-writeable and
+'/tmp/ins$RANDOM-$$' content could be pretty easily guessed by
+attacker (at least for shells where $RANDOM is not supported).
+So, as the first step, create the '/tmp/ins$RANDOM-$$' without -p.
+This step would fail early if somebody wanted catch us.
+
+Note that systems that implement (and have enabled)
+fs.protected_symlinks kernel feature are not affected even without
+this commit.
+
+References:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455
+https://bugzilla.redhat.com/show_bug.cgi?id=1140725
+
+* lib/install-sh: Implement safer 'mkdir -p' test by running
+'$mkdirprog $mkdir_mode "$tmpdir"' first.
+(scriptversion): Bump.
+
+--- a/lib/install-sh
++++ b/lib/install-sh
+@@ -345,34 +345,41 @@ do
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
++ # $RANDOM is not portable (e.g. dash); use it when possible to
++ # lower collision chance
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
++ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
++ # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
++ # create the $tmpdir first (and fail if unsuccessful) to make sure
++ # that nobody tries to guess the $tmpdir name.
+ if (umask $mkdir_umask &&
+- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
++ $mkdirprog $mkdir_mode "$tmpdir" &&
++ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+- ls_ld_tmpdir=`ls -ld "$tmpdir"`
++ test_tmpdir="$tmpdir/a"
++ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
++ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
++ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+- rmdir "$tmpdir/d" "$tmpdir"
++ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
++ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
diff --git a/dev-build/automake-vanilla/files/automake-1.11.6-perl-5.16.patch b/dev-build/automake-vanilla/files/automake-1.11.6-perl-5.16.patch
new file mode 100644
index 000000000000..19fe249e0c00
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.11.6-perl-5.16.patch
@@ -0,0 +1,128 @@
+https://bugs.gentoo.org/424453
+
+From 6bf58a59a1f3803e57e3f0378aa9344686707b75 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini@gmail.com>
+Date: Mon, 28 May 2012 13:32:03 +0200
+Subject: [PATCH] aclocal: declare function prototypes, do not use '&' in
+ function calls
+
+This change will also fix automake bug#11543 (from a report by Matt
+Burgess).
+
+* aclocal.in: Declare prototypes for almost all functions early, before
+any actual function definition (but omit the prototype for the dynamically
+generated '&search' function). Add prototypes to any function definition.
+Remove '&' from function invocations (i.e., simply use "func(ARGS..)"
+instead of "&func(ARGS...)").
+* THANKS, NEWS: Update.
+
+Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
+---
+ NEWS | 4 ++++
+ THANKS | 1 +
+ aclocal.in | 42 ++++++++++++++++++++++++++++++++++--------
+ 3 files changed, 39 insertions(+), 8 deletions(-)
+
+diff --git a/aclocal.in b/aclocal.in
+index dfb851b..e8855d5 100644
+--- a/aclocal.in
++++ b/aclocal.in
+@@ -152,8 +152,34 @@ my $erase_me;
+
+ ################################################################
+
++# Prototypes for all subroutines.
++
++sub unlink_tmp (;$);
++sub xmkdir_p ($);
++sub check_acinclude ();
++sub reset_maps ();
++sub install_file ($$);
++sub list_compare (\@\@);
++sub scan_m4_dirs ($@);
++sub scan_m4_files ();
++sub add_macro ($);
++sub scan_configure_dep ($);
++sub add_file ($);
++sub scan_file ($$$);
++sub strip_redundant_includes (%);
++sub trace_used_macros ();
++sub scan_configure ();
++sub write_aclocal ($@);
++sub usage ($);
++sub version ();
++sub handle_acdir_option ($$);
++sub parse_arguments ();
++sub parse_ACLOCAL_PATH ();
++
++################################################################
++
+ # Erase temporary file ERASE_ME. Handle signals.
+-sub unlink_tmp
++sub unlink_tmp (;$)
+ {
+ my ($sig) = @_;
+
+@@ -350,7 +376,7 @@ sub scan_m4_dirs ($@)
+ next if $file eq 'aclocal.m4';
+
+ my $fullfile = File::Spec->canonpath ("$m4dir/$file");
+- &scan_file ($type, $fullfile, 'aclocal');
++ scan_file ($type, $fullfile, 'aclocal');
+ }
+ closedir (DIR);
+ }
+@@ -361,12 +387,12 @@ sub scan_m4_files ()
+ {
+ # First, scan configure.ac. It may contain macro definitions,
+ # or may include other files that define macros.
+- &scan_file (FT_USER, $configure_ac, 'aclocal');
++ scan_file (FT_USER, $configure_ac, 'aclocal');
+
+ # Then, scan acinclude.m4 if it exists.
+ if (-f 'acinclude.m4')
+ {
+- &scan_file (FT_USER, 'acinclude.m4', 'aclocal');
++ scan_file (FT_USER, 'acinclude.m4', 'aclocal');
+ }
+
+ # Finally, scan all files in our search paths.
+@@ -380,7 +406,7 @@ sub scan_m4_files ()
+ my $search = "sub search {\nmy \$found = 0;\n";
+ foreach my $key (reverse sort keys %map)
+ {
+- $search .= ('if (/\b\Q' . $key . '\E(?!\w)/) { & add_macro ("' . $key
++ $search .= ('if (/\b\Q' . $key . '\E(?!\w)/) { add_macro ("' . $key
+ . '"); $found = 1; }' . "\n");
+ }
+ $search .= "return \$found;\n};\n";
+@@ -403,7 +429,7 @@ sub add_macro ($)
+
+ verb "saw macro $macro";
+ $macro_seen{$macro} = 1;
+- &add_file ($map{$macro});
++ add_file ($map{$macro});
+ }
+
+ # scan_configure_dep ($file)
+@@ -465,7 +491,7 @@ sub scan_configure_dep ($)
+ }
+
+ add_macro ($_) foreach (@rlist);
+- &scan_configure_dep ($_) foreach @ilist;
++ scan_configure_dep ($_) foreach @ilist;
+ }
+
+ # add_file ($FILE)
+@@ -931,7 +957,7 @@ EOF
+ }
+
+ # Print version and exit.
+-sub version()
++sub version ()
+ {
+ print <<EOF;
+ aclocal (GNU $PACKAGE) $VERSION
+--
+2.1.3
+
diff --git a/dev-build/automake-vanilla/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch b/dev-build/automake-vanilla/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch
new file mode 100644
index 000000000000..bf8819adcf4c
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch
@@ -0,0 +1,37 @@
+http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21001
+
+From 34163794a58b5bd91c5d6bd9adf5437571c7a479 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Tue, 7 Jul 2015 10:54:24 +0200
+Subject: [PATCH] bin/automake: escape '{' in regexp pattern
+
+Based on perlre(1) documentation:
+.. in Perl v5.26, literal uses of a curly bracket will be required
+to be escaped, say by preceding them with a backslash ("\{" ) or
+enclosing them within square brackets ("[{]") ..
+
+References:
+https://bugzilla.redhat.com/1239379
+
+* bin/automake.in (substitute_ac_subst_variables): Escape the
+occurrence of '{' character.
+---
+ bin/automake.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bin/automake.in b/bin/automake.in
+index 0c29184..c294ced 100644
+--- a/automake.in
++++ b/automake.in
+@@ -3898,7 +3898,7 @@ sub substitute_ac_subst_variables_worker
+ sub substitute_ac_subst_variables ($)
+ {
+ my ($text) = @_;
+- $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
++ $text =~ s/\$\{([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+ return $text;
+ }
+
+--
+2.1.0
+
diff --git a/dev-build/automake-vanilla/files/automake-1.16.5-apostrophe-in-tests.patch b/dev-build/automake-vanilla/files/automake-1.16.5-apostrophe-in-tests.patch
new file mode 100644
index 000000000000..866284dfd185
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.16.5-apostrophe-in-tests.patch
@@ -0,0 +1,51 @@
+From ed1368e8803e8934a8bbab52a38753484dba2a37 Mon Sep 17 00:00:00 2001
+From: Karl Berry <karl@freefriends.org>
+Date: Mon, 12 Dec 2022 14:50:33 -0800
+Subject: test: avoid apostrophe in test document.
+
+From automake patch https://bugs.gnu.org/59989
+(though a different solution), suggestion by Frederic Berat.
+
+* t/txinfo-include.sh: avoid apostrophes in test document,
+since Texinfo 7.0 turns them into UTF-8 by default.
+---
+ t/txinfo-include.sh | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/t/txinfo-include.sh b/t/txinfo-include.sh
+index 8a15f01..10fff07 100644
+--- a/t/txinfo-include.sh
++++ b/t/txinfo-include.sh
+@@ -28,6 +28,9 @@ main_TEXINFOS = one.texi two.texi three.texi
+ sub_more_TEXINFOS = sub/desc.texi sub/hist.texi
+ END
+
++# We avoid apostrophes in the test document since Texinfo
++# turns them into UTF-8, which is not easy to grep.
++#
+ cat > main.texi << 'END'
+ \input texinfo
+ @setfilename main.info
+@@ -61,8 +64,8 @@ END
+
+ cat > three.texi << 'END'
+ @node three
+-@chapter Chapter two
+-GNU's Not Unix.
++@chapter Chapter three
++Quux quux quux.
+ END
+
+ mkdir sub
+@@ -106,7 +109,7 @@ check_info_contents ()
+ srcdir=${1-.}
+ $FGREP "Foo bar, baz." $srcdir/main.info
+ $FGREP "Blah Blah Blah." $srcdir/main.info
+- $FGREP "GNU's Not Unix." $srcdir/main.info
++ $FGREP "Quux quux quux." $srcdir/main.info
+ $FGREP 'It does something, really.' $srcdir/sub/more.info
+ $FGREP 'It was written somehow.' $srcdir/sub/more.info
+ }
+--
+cgit v1.1
+
diff --git a/dev-build/automake-vanilla/files/automake-1.16.5-fix-instmany-python.sh-test.patch b/dev-build/automake-vanilla/files/automake-1.16.5-fix-instmany-python.sh-test.patch
new file mode 100644
index 000000000000..5cddb4cfb83f
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.16.5-fix-instmany-python.sh-test.patch
@@ -0,0 +1,26 @@
+From 50daac4f15d207b6b69011b9cdde62b56c1c8b10 Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Fri, 20 Nov 2020 02:17:31 +0100
+Subject: [PATCH 2/2] tests: fix instmany-python.sh: increase limit
+
+Still failing with 4500 on Gentoo. Passing with 7000...
+---
+ t/instmany-python.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/instmany-python.sh b/t/instmany-python.sh
+index dce3594b5..1c482520d 100644
+--- a/t/instmany-python.sh
++++ b/t/instmany-python.sh
+@@ -21,7 +21,7 @@
+ required='python'
+ . test-init.sh
+
+-limit=4500
++limit=7000
+ subdir=long_subdir_name_with_many_characters
+ nfiles=81
+ list=$(seq_ 1 $nfiles)
+--
+2.29.2
+
diff --git a/dev-build/automake-vanilla/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch b/dev-build/automake-vanilla/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch
new file mode 100644
index 000000000000..f49dd253c2d6
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.16.5-fix-py-compile-basedir.sh-test.patch
@@ -0,0 +1,26 @@
+From e3db5b8038a902501a354b6921dcebcb4180f50a Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Fri, 20 Nov 2020 02:13:56 +0100
+Subject: [PATCH 1/2] tests: fix py-compile-basedir.sh: add missing test call
+
+Fixes: b279a0d46 ("tests: in python tests, do not require .pyo files (for python3)")
+---
+ t/py-compile-basedir.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/t/py-compile-basedir.sh b/t/py-compile-basedir.sh
+index 13a22ff1d..1a16ee2d7 100644
+--- a/t/py-compile-basedir.sh
++++ b/t/py-compile-basedir.sh
+@@ -43,7 +43,7 @@ for d in foo foo/bar "$(pwd)/foo" . .. ../foo ''; do
+ py_installed "$d2/sub/$f.pyc"
+ files=$(find "$d2" | grep '\.py[co]$')
+ # with new-enough Python3, there are six files.
+- test $(echo "$files" | wc -l) -eq 4 || $(echo "$files" | wc -l) -eq 6
++ test $(echo "$files" | wc -l) -eq 4 || test $(echo "$files" | wc -l) -eq 6
+ case $d2 in
+ .|..) rm -f $files;;
+ *) rm -rf "$d2";;
+--
+2.29.2
+
diff --git a/dev-build/automake-vanilla/files/automake-1.16.5-py3-compile.patch b/dev-build/automake-vanilla/files/automake-1.16.5-py3-compile.patch
new file mode 100644
index 000000000000..5333520b5db1
--- /dev/null
+++ b/dev-build/automake-vanilla/files/automake-1.16.5-py3-compile.patch
@@ -0,0 +1,73 @@
+From aa449bd4c836abf0320033c5077259fc760b622d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 3 Nov 2019 11:51:19 +0100
+Subject: [PATCH] py-compile: Support -OO for py3.5+, and -O&-OO for pypy3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Michał Górny <mgorny@gentoo.org>
+---
+ lib/py-compile | 29 +++++++++++++++++++++++++----
+ 1 file changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/lib/py-compile b/lib/py-compile
+index e56d98d6e..5b9ae5d5d 100755
+--- a/lib/py-compile
++++ b/lib/py-compile
+@@ -126,12 +126,10 @@ if test "$python_major" -le 2; then
+ import_lib=imp
+ import_test="hasattr(imp, 'get_tag')"
+ import_call=imp.cache_from_source
+- import_arg2=', False' # needed in one call and not the other
+ else
+ import_lib=importlib
+ import_test="hasattr(sys.implementation, 'cache_tag')"
+ import_call=importlib.util.cache_from_source
+- import_arg2=
+ fi
+
+ $PYTHON -c "
+@@ -159,7 +157,7 @@ $PYTHON -O -c "
+ import sys, os, py_compile, $import_lib
+
+ # pypy does not use .pyo optimization
+-if hasattr(sys, 'pypy_translation_info'):
++if hasattr(sys, 'pypy_translation_info') and sys.hexversion < 0x03050000:
+ sys.exit(0)
+
+ files = '''$files'''
+@@ -173,7 +171,30 @@ for file in files.split():
+ sys.stdout.write(file)
+ sys.stdout.flush()
+ if $import_test:
+- py_compile.compile(filepath, $import_call(filepath$import_arg2), path)
++ py_compile.compile(filepath, $import_call(filepath), path)
++ else:
++ py_compile.compile(filepath, filepath + 'o', path)
++sys.stdout.write('\n')" 2>/dev/null || :
++
++$PYTHON -OO -c "
++import sys, os, py_compile, $import_lib
++
++# python<3.5 does not have split files for -O and -OO
++if sys.hexversion < 0x03050000:
++ sys.exit(0)
++
++files = '''$files'''
++sys.stdout.write('Byte-compiling python modules (optimized versions) ...\n')
++for file in files.split():
++ $pathtrans
++ $filetrans
++ if not os.path.exists(filepath) or not (len(filepath) >= 3
++ and filepath[-3:] == '.py'):
++ continue
++ sys.stdout.write(file)
++ sys.stdout.flush()
++ if $import_test:
++ py_compile.compile(filepath, $import_call(filepath), path)
+ else:
+ py_compile.compile(filepath, filepath + 'o', path)
+ sys.stdout.write('\n')" 2>/dev/null || exit $?
+--
+2.25.2
diff --git a/dev-build/automake-vanilla/metadata.xml b/dev-build/automake-vanilla/metadata.xml
new file mode 100644
index 000000000000..6e5b45d8c011
--- /dev/null
+++ b/dev-build/automake-vanilla/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gnu:automake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/automake-wrapper/Manifest b/dev-build/automake-wrapper/Manifest
new file mode 100644
index 000000000000..2efef9f78fbe
--- /dev/null
+++ b/dev-build/automake-wrapper/Manifest
@@ -0,0 +1,2 @@
+DIST autotools-wrappers-at-20240607.tar.gz 3648 BLAKE2B 2b63c6b71b0a1eff801d011ed0829b42944dd5fa409464644036b4b312f2fd27862fa169c8d915db7daf1fb9862d52bbf9e606b274e82dfda3395e568120e6a4 SHA512 3754c34520109e4f2d2cbf45fe24cfc788c61210864a1199c7cc208e91c400d45533fb02934c61a5662f1402ba8464a0aa4ef16de17460646c8c176ab09df0af
+DIST autotools-wrappers-at-20250528.tar.gz 3642 BLAKE2B 74747a89ec1177fc8020f5318c7f9e5fd15ca66e0ee5018722fdd12341ed4393962d558aaaaec270f727280d225125fd933cea49a47792b7bc75f88da70ced9e SHA512 6d17649977278e2f094e8d9f941916d498292c001080cddb78367c61e4da5c221501382b1eb4f2b6e8c5b2101ce9cb2bbc4063f87e23eb1f8c99361764157b54
diff --git a/dev-build/automake-wrapper/automake-wrapper-20240607.ebuild b/dev-build/automake-wrapper/automake-wrapper-20240607.ebuild
new file mode 100644
index 000000000000..808a95e7c34e
--- /dev/null
+++ b/dev-build/automake-wrapper/automake-wrapper-20240607.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' on new automake (major) releases!
+
+MY_P="autotools-wrappers-at-${PV}"
+
+DESCRIPTION="Wrapper for automake to manage multiple automake versions"
+HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/autotools-wrappers.git
+ https://github.com/gentoo/autotools-wrappers
+ "
+ inherit git-r3
+else
+ SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
+ S="${WORKDIR}"/${MY_P}
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+src_prepare() {
+ default
+
+ # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell
+ if use prefix ; then
+ sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper.sh || die
+ fi
+}
+
+src_install() {
+ exeinto /usr/$(get_libdir)/misc
+ doexe am-wrapper.sh
+
+ local x=
+ for x in automake aclocal ; do
+ dosym -r /usr/$(get_libdir)/misc/am-wrapper.sh /usr/bin/${x}
+ done
+
+ keepdir /usr/share/aclocal
+}
diff --git a/dev-build/automake-wrapper/automake-wrapper-20250528.ebuild b/dev-build/automake-wrapper/automake-wrapper-20250528.ebuild
new file mode 100644
index 000000000000..808a95e7c34e
--- /dev/null
+++ b/dev-build/automake-wrapper/automake-wrapper-20250528.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' on new automake (major) releases!
+
+MY_P="autotools-wrappers-at-${PV}"
+
+DESCRIPTION="Wrapper for automake to manage multiple automake versions"
+HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/autotools-wrappers.git
+ https://github.com/gentoo/autotools-wrappers
+ "
+ inherit git-r3
+else
+ SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
+ S="${WORKDIR}"/${MY_P}
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+src_prepare() {
+ default
+
+ # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell
+ if use prefix ; then
+ sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper.sh || die
+ fi
+}
+
+src_install() {
+ exeinto /usr/$(get_libdir)/misc
+ doexe am-wrapper.sh
+
+ local x=
+ for x in automake aclocal ; do
+ dosym -r /usr/$(get_libdir)/misc/am-wrapper.sh /usr/bin/${x}
+ done
+
+ keepdir /usr/share/aclocal
+}
diff --git a/dev-build/automake-wrapper/automake-wrapper-99999999.ebuild b/dev-build/automake-wrapper/automake-wrapper-99999999.ebuild
new file mode 100644
index 000000000000..c965d04d8ff0
--- /dev/null
+++ b/dev-build/automake-wrapper/automake-wrapper-99999999.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' on new automake (major) releases!
+
+MY_P="autotools-wrappers-at-${PV}"
+
+DESCRIPTION="Wrapper for automake to manage multiple automake versions"
+HOMEPAGE="https://gitweb.gentoo.org/proj/autotools-wrappers.git"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/autotools-wrappers.git
+ https://github.com/gentoo/autotools-wrappers
+ "
+ inherit git-r3
+else
+ SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
+ S="${WORKDIR}"/${MY_P}
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+src_prepare() {
+ default
+
+ # usr/bin/aclocal: bad substitution -> /bin/sh != POSIX shell
+ if use prefix ; then
+ sed -i -e '1c\#!'"${EPREFIX}"'/bin/sh' am-wrapper.sh || die
+ fi
+}
+
+src_install() {
+ exeinto /usr/$(get_libdir)/misc
+ doexe am-wrapper.sh
+
+ local x=
+ for x in automake aclocal ; do
+ dosym -r /usr/$(get_libdir)/misc/am-wrapper.sh /usr/bin/${x}
+ done
+
+ keepdir /usr/share/aclocal
+}
diff --git a/dev-build/automake-wrapper/metadata.xml b/dev-build/automake-wrapper/metadata.xml
new file mode 100644
index 000000000000..2847c0b0420f
--- /dev/null
+++ b/dev-build/automake-wrapper/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="gentoo">proj/autotools-wrappers</remote-id>
+ <remote-id type="github">gentoo/autotools-wrappers</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/automake/Manifest b/dev-build/automake/Manifest
new file mode 100644
index 000000000000..0be9664106fd
--- /dev/null
+++ b/dev-build/automake/Manifest
@@ -0,0 +1,5 @@
+DIST automake-1.11.6.tar.xz 1092908 BLAKE2B 17254d81d6920c32aa877b6c892025de8e4060b8bcbe50fff841ada513dd462ddde8fc6838b4976098a812f8fda047e7186cb62cea8175df615dde75a9959144 SHA512 6e4cdf69f07734954f770fd4a7211a8c9dc69fe25a7746bd3c1e01d3139c94cab2900399e87371548833e99687e0d2b59c5e746ab2fdfbc7d47f2c1d439137ba
+DIST automake-1.17.tar.xz 1652632 BLAKE2B 53c24c138faf3d2be4e30ababcccd4d157c03e815fc4b7f3e3063b6648cf254dfa63afe6e3285b21309dbf260335c3e67991db3825e7532b158b25ccaead83f5 SHA512 46aba1c9d64a6368b326020803a2999831c1deaf31eaa1c1dfdcfa5138a7f755643294e82a08b6daab3983b31eee725bdb7b9edc4e9a558374c7d1f1b8e854a7
+DIST automake-1.17.tar.xz.sig 833 BLAKE2B 4564c7189360c61bde7e16a7c3a52b86084fb16b7f4625969fc588a6aa0da687c7b27acf7247822ec0e09e59336acf0ef69784032f255190a070081f6d9da5cc SHA512 180dde452ec097a9267c334044a9ec16bb65cc6ccbc000b7eca0af81ed7ece6f4ce6f6c2be8a2cabca9d48fd46085c81f0ee5d020967104bc25f37f52927829a
+DIST automake-1.18.1.tar.xz 1652392 BLAKE2B 4461062a4d596dd87caec7d388449f5f8fe7a4faede8fd0d77d1fb3bb5d23caabb3b715fbb9f29f33326bec527f3d8da6251d9282d4007cef9af146d28fe96cf SHA512 8baa16831416a953a743f4e3c0f55cea5ebefe0f5a7a0e390581981d4461d02dc9038415124e974b2ec390c40daaa241802cd7d42c6fafb793f87cf355db2a61
+DIST automake-1.18.1.tar.xz.sig 488 BLAKE2B c8efc6847f83d3c1565783ce9d1c22924ca5e409894f7d9f28b2b492b3c2cb6e937fa85f6c36a67fd484fffd0b89cdae0a09239ab71e6da8d01015528a78c9ed SHA512 5a1f0e89a8f3826c766aa98617765f4a576dc278abb7a0a4c0fa04d27d15bf670b79853642914db58731eb4dc737f0b9ad65ba9a07b7bb227e763e90e2e54349
diff --git a/dev-build/automake/automake-1.11.6-r5.ebuild b/dev-build/automake/automake-1.11.6-r5.ebuild
new file mode 100644
index 000000000000..01ed2336b210
--- /dev/null
+++ b/dev-build/automake/automake-1.11.6-r5.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${PV:0:4}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos"
+IUSE="test"
+RESTRICT="test !test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-10
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+DEPEND="
+ ${RDEPEND}
+ sys-apps/help2man
+"
+BDEPEND="
+ app-arch/gzip
+ test? ( dev-util/dejagnu )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-perl-5.16.patch #424453
+ "${FILESDIR}"/${P}-install-sh-avoid-low-risk-race-in-tmp.patch
+ "${FILESDIR}"/${P}-perl-escape-curly-bracket-r1.patch
+)
+
+src_prepare() {
+ default
+ export WANT_AUTOCONF=2.5
+ export HELP2MAN=true
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+ export TZ="UTC" #589138
+}
+
+src_compile() {
+ # Also used in install.
+ MY_INFODIR="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${MY_INFODIR}"
+
+ local x
+ for x in aclocal automake; do
+ help2man "perl -Ilib ${x}" > doc/${x}-${SLOT}.1
+ done
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake} \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${MY_INFODIR}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ local major="$(ver_cut 1)"
+ local minor="$(ver_cut 2)"
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${MY_INFODIR}"
+ EOF
+
+ docompress "${MY_INFODIR}"
+}
diff --git a/dev-build/automake/automake-1.17-r3.ebuild b/dev-build/automake/automake-1.17-r3.ebuild
new file mode 100644
index 000000000000..c8f541bb6d49
--- /dev/null
+++ b/dev-build/automake/automake-1.17-r3.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper
+# on new automake (major) releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass.
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-any-r1 verify-sig
+
+MANGLED_SLOT=${PV:0:4}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_MIN_CLONE_TYPE=single
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jimmeyering.asc
+ if [[ $(ver_cut 3) -ge 90 ]] ; then
+ MANGLED_SLOT=$(ver_cut 1).$(($(ver_cut 2) + 1))
+ SRC_URI="
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz
+ verify-sig? (
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+ else
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ verify-sig? (
+ mirror://gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${MANGLED_SLOT}"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-20240607
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ dev-build/autoconf-wrapper
+ dev-build/autoconf
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+ verify-sig? ( sec-keys/openpgp-keys-jimmeyering )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-perl-5.41.patch
+ "${FILESDIR}"/${P}-perl-no-werror.patch
+)
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ # Also used in install.
+ infopath="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${infopath}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ rm "${ED}"/usr/share/aclocal/README || die
+ rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake} \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${infopath}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ if [[ $(ver_cut 3) -ge 90 ]] ; then
+ local minor=$(($(ver_cut 2) + 1))
+ else
+ local minor="$(ver_cut 2)"
+ fi
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${infopath}"
+ EOF
+
+ docompress "${infopath}"
+}
diff --git a/dev-build/automake/automake-1.18.1-r1.ebuild b/dev-build/automake/automake-1.18.1-r1.ebuild
new file mode 100644
index 000000000000..190934a67fb8
--- /dev/null
+++ b/dev-build/automake/automake-1.18.1-r1.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper
+# on new automake (major) releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass.
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-any-r1 verify-sig
+
+MANGLED_SLOT=${PV:0:4}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_MIN_CLONE_TYPE=single
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karlberry.asc
+ if [[ $(ver_cut 3) -ge 90 ]] ; then
+ MANGLED_SLOT=$(ver_cut 1).$(($(ver_cut 2) + 1))
+ SRC_URI="
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz
+ verify-sig? (
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+ else
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ verify-sig? (
+ mirror://gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${MANGLED_SLOT}"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-20250528
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ dev-build/autoconf-wrapper
+ dev-build/autoconf
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+ verify-sig? ( sec-keys/openpgp-keys-karlberry )
+"
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ # Also used in install.
+ infopath="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${infopath}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ rm "${ED}"/usr/share/aclocal/README || die
+ rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake} \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${infopath}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ if [[ $(ver_cut 3) -ge 90 ]] ; then
+ local minor=$(($(ver_cut 2) + 1))
+ else
+ local minor="$(ver_cut 2)"
+ fi
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${infopath}"
+ EOF
+
+ docompress "${infopath}"
+}
diff --git a/dev-build/automake/automake-9999.ebuild b/dev-build/automake/automake-9999.ebuild
new file mode 100644
index 000000000000..1129bacf1eaf
--- /dev/null
+++ b/dev-build/automake/automake-9999.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes:
+# * Remember to modify LAST_KNOWN_AUTOMAKE_VER 'upstream' in dev-build/automake-wrapper
+# on new automake (major) releases, as well as the dependency in RDEPEND below too.
+# * Update _WANT_AUTOMAKE and _automake_atom case statement in autotools.eclass.
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit python-any-r1 verify-sig
+
+MANGLED_SLOT=${PV:0:4}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_MIN_CLONE_TYPE=single
+ EGIT_REPO_URI="https://git.savannah.gnu.org/r/${PN}.git"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karlberry.asc
+ if [[ $(ver_cut 3) -ge 90 ]] ; then
+ MANGLED_SLOT=$(ver_cut 1).$(($(ver_cut 2) + 1))
+ SRC_URI="
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz
+ verify-sig? (
+ https://alpha.gnu.org/pub/gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+ else
+ SRC_URI="
+ mirror://gnu/${PN}/${P}.tar.xz
+ verify-sig? (
+ mirror://gnu/${PN}/${P}.tar.xz.sig
+ )
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Used to generate Makefile.in from Makefile.am"
+HOMEPAGE="https://www.gnu.org/software/automake/"
+
+LICENSE="GPL-2+ FSFAP"
+# Use Gentoo versioning for slotting.
+SLOT="${MANGLED_SLOT}"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/perl-5.6
+ >=dev-build/automake-wrapper-20250528
+ >=dev-build/autoconf-2.69:*
+ sys-devel/gnuconfig
+"
+BDEPEND="
+ app-alternatives/gzip
+ sys-apps/help2man
+ dev-build/autoconf-wrapper
+ dev-build/autoconf
+ test? (
+ ${PYTHON_DEPS}
+ dev-util/dejagnu
+ sys-devel/bison
+ sys-devel/flex
+ )
+ verify-sig? ( sec-keys/openpgp-keys-karlberry )
+"
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ export WANT_AUTOCONF=2.5
+ # Don't try wrapping the autotools - this thing runs as it tends
+ # to be a bit esoteric, and the script does `set -e` itself.
+ ./bootstrap || die
+ sed -i -e "/APIVERSION=/s:=.*:=${SLOT}:" configure || die
+
+ # bug #628912
+ if ! has_version -b sys-apps/texinfo ; then
+ touch doc/{stamp-vti,version.texi,automake.info} || die
+ fi
+}
+
+src_configure() {
+ # Also used in install.
+ infopath="${EPREFIX}/usr/share/automake-${PV}/info"
+ econf --infodir="${infopath}"
+}
+
+src_test() {
+ # Fails with byacc/flex
+ emake YACC="bison -y" LEX="flex" check
+}
+
+src_install() {
+ default
+
+ # dissuade Portage from removing our dir file
+ touch "${ED}"/usr/share/${P}/info/.keepinfodir || die
+ docompress -x /usr/share/${P}/info/dir
+
+ rm "${ED}"/usr/share/aclocal/README || die
+ rmdir "${ED}"/usr/share/aclocal || die
+ rm \
+ "${ED}"/usr/bin/{aclocal,automake} \
+ "${ED}"/usr/share/man/man1/{aclocal,automake}.1 || die
+
+ # remove all config.guess and config.sub files replacing them
+ # w/a symlink to a specific gnuconfig version
+ local x
+ for x in guess sub ; do
+ dosym ../gnuconfig/config.${x} \
+ /usr/share/${PN}-${SLOT}/config.${x}
+ done
+
+ # Avoid QA message about pre-compressed file in docs
+ local tarfile="${ED}/usr/share/doc/${PF}/amhello-1.0.tar.gz"
+ if [[ -f "${tarfile}" ]] ; then
+ gunzip "${tarfile}" || die
+ fi
+
+ pushd "${D}/${infopath}" >/dev/null || die
+ for f in *.info*; do
+ # Install convenience aliases for versioned Automake pages.
+ ln -s "$f" "${f/./-${PV}.}" || die
+ done
+ popd >/dev/null || die
+
+ if [[ ${PV} == 9999 ]]; then
+ local major="89"
+ local minor="999"
+ else
+ local major="$(ver_cut 1)"
+ if [[ $(ver_cut 3) -ge 90 ]] ; then
+ local minor=$(($(ver_cut 2) + 1))
+ else
+ local minor="$(ver_cut 2)"
+ fi
+ fi
+ local idx="$((99999-(major*1000+minor)))"
+ newenvd - "06automake${idx}" <<-EOF
+ INFOPATH="${infopath}"
+ EOF
+
+ docompress "${infopath}"
+}
diff --git a/dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch b/dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch
new file mode 100644
index 000000000000..c435b9004f8d
--- /dev/null
+++ b/dev-build/automake/files/automake-1.11.6-install-sh-avoid-low-risk-race-in-tmp.patch
@@ -0,0 +1,77 @@
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Sat, 15 Aug 2015 04:40:57 -0400
+Subject: install-sh: avoid (low risk) race in /tmp
+
+Ensure that nobody can cross privilege boundaries by pre-creating
+symlink on '$tmpdir' path.
+
+Just testing 'mkdir -p' by creating '/tmp/ins$RANDOM-$$/d' is not
+safe because '/tmp' directory is usually world-writeable and
+'/tmp/ins$RANDOM-$$' content could be pretty easily guessed by
+attacker (at least for shells where $RANDOM is not supported).
+So, as the first step, create the '/tmp/ins$RANDOM-$$' without -p.
+This step would fail early if somebody wanted catch us.
+
+Note that systems that implement (and have enabled)
+fs.protected_symlinks kernel feature are not affected even without
+this commit.
+
+References:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455
+https://bugzilla.redhat.com/show_bug.cgi?id=1140725
+
+* lib/install-sh: Implement safer 'mkdir -p' test by running
+'$mkdirprog $mkdir_mode "$tmpdir"' first.
+(scriptversion): Bump.
+
+--- a/lib/install-sh
++++ b/lib/install-sh
+@@ -345,34 +345,41 @@ do
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
++ # $RANDOM is not portable (e.g. dash); use it when possible to
++ # lower collision chance
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
++ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
++ # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
++ # create the $tmpdir first (and fail if unsuccessful) to make sure
++ # that nobody tries to guess the $tmpdir name.
+ if (umask $mkdir_umask &&
+- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
++ $mkdirprog $mkdir_mode "$tmpdir" &&
++ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writeable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+- ls_ld_tmpdir=`ls -ld "$tmpdir"`
++ test_tmpdir="$tmpdir/a"
++ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
++ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
++ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+- rmdir "$tmpdir/d" "$tmpdir"
++ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
++ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
diff --git a/dev-build/automake/files/automake-1.11.6-perl-5.16.patch b/dev-build/automake/files/automake-1.11.6-perl-5.16.patch
new file mode 100644
index 000000000000..b35fb39a3fed
--- /dev/null
+++ b/dev-build/automake/files/automake-1.11.6-perl-5.16.patch
@@ -0,0 +1,120 @@
+https://bugs.gentoo.org/424453
+
+From 6bf58a59a1f3803e57e3f0378aa9344686707b75 Mon Sep 17 00:00:00 2001
+From: Stefano Lattarini <stefano.lattarini@gmail.com>
+Date: Mon, 28 May 2012 13:32:03 +0200
+Subject: [PATCH] aclocal: declare function prototypes, do not use '&' in
+ function calls
+
+This change will also fix automake bug#11543 (from a report by Matt
+Burgess).
+
+* aclocal.in: Declare prototypes for almost all functions early, before
+any actual function definition (but omit the prototype for the dynamically
+generated '&search' function). Add prototypes to any function definition.
+Remove '&' from function invocations (i.e., simply use "func(ARGS..)"
+instead of "&func(ARGS...)").
+* THANKS, NEWS: Update.
+
+Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
+--- a/aclocal.in
++++ b/aclocal.in
+@@ -152,8 +152,34 @@ my $erase_me;
+
+ ################################################################
+
++# Prototypes for all subroutines.
++
++sub unlink_tmp (;$);
++sub xmkdir_p ($);
++sub check_acinclude ();
++sub reset_maps ();
++sub install_file ($$);
++sub list_compare (\@\@);
++sub scan_m4_dirs ($@);
++sub scan_m4_files ();
++sub add_macro ($);
++sub scan_configure_dep ($);
++sub add_file ($);
++sub scan_file ($$$);
++sub strip_redundant_includes (%);
++sub trace_used_macros ();
++sub scan_configure ();
++sub write_aclocal ($@);
++sub usage ($);
++sub version ();
++sub handle_acdir_option ($$);
++sub parse_arguments ();
++sub parse_ACLOCAL_PATH ();
++
++################################################################
++
+ # Erase temporary file ERASE_ME. Handle signals.
+-sub unlink_tmp
++sub unlink_tmp (;$)
+ {
+ my ($sig) = @_;
+
+@@ -350,7 +376,7 @@ sub scan_m4_dirs ($@)
+ next if $file eq 'aclocal.m4';
+
+ my $fullfile = File::Spec->canonpath ("$m4dir/$file");
+- &scan_file ($type, $fullfile, 'aclocal');
++ scan_file ($type, $fullfile, 'aclocal');
+ }
+ closedir (DIR);
+ }
+@@ -361,12 +387,12 @@ sub scan_m4_files ()
+ {
+ # First, scan configure.ac. It may contain macro definitions,
+ # or may include other files that define macros.
+- &scan_file (FT_USER, $configure_ac, 'aclocal');
++ scan_file (FT_USER, $configure_ac, 'aclocal');
+
+ # Then, scan acinclude.m4 if it exists.
+ if (-f 'acinclude.m4')
+ {
+- &scan_file (FT_USER, 'acinclude.m4', 'aclocal');
++ scan_file (FT_USER, 'acinclude.m4', 'aclocal');
+ }
+
+ # Finally, scan all files in our search paths.
+@@ -380,7 +406,7 @@ sub scan_m4_files ()
+ my $search = "sub search {\nmy \$found = 0;\n";
+ foreach my $key (reverse sort keys %map)
+ {
+- $search .= ('if (/\b\Q' . $key . '\E(?!\w)/) { & add_macro ("' . $key
++ $search .= ('if (/\b\Q' . $key . '\E(?!\w)/) { add_macro ("' . $key
+ . '"); $found = 1; }' . "\n");
+ }
+ $search .= "return \$found;\n};\n";
+@@ -403,7 +429,7 @@ sub add_macro ($)
+
+ verb "saw macro $macro";
+ $macro_seen{$macro} = 1;
+- &add_file ($map{$macro});
++ add_file ($map{$macro});
+ }
+
+ # scan_configure_dep ($file)
+@@ -465,7 +491,7 @@ sub scan_configure_dep ($)
+ }
+
+ add_macro ($_) foreach (@rlist);
+- &scan_configure_dep ($_) foreach @ilist;
++ scan_configure_dep ($_) foreach @ilist;
+ }
+
+ # add_file ($FILE)
+@@ -931,7 +957,7 @@ EOF
+ }
+
+ # Print version and exit.
+-sub version()
++sub version ()
+ {
+ print <<EOF;
+ aclocal (GNU $PACKAGE) $VERSION
+--
+2.1.3
+
diff --git a/dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch b/dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch
new file mode 100644
index 000000000000..4bd7ab16fb33
--- /dev/null
+++ b/dev-build/automake/files/automake-1.11.6-perl-escape-curly-bracket-r1.patch
@@ -0,0 +1,31 @@
+http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21001
+
+From 34163794a58b5bd91c5d6bd9adf5437571c7a479 Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup@redhat.com>
+Date: Tue, 7 Jul 2015 10:54:24 +0200
+Subject: [PATCH] bin/automake: escape '{' in regexp pattern
+
+Based on perlre(1) documentation:
+.. in Perl v5.26, literal uses of a curly bracket will be required
+to be escaped, say by preceding them with a backslash ("\{" ) or
+enclosing them within square brackets ("[{]") ..
+
+References:
+https://bugzilla.redhat.com/1239379
+
+* bin/automake.in (substitute_ac_subst_variables): Escape the
+occurrence of '{' character.
+--- a/automake.in
++++ b/automake.in
+@@ -3898,7 +3898,7 @@ sub substitute_ac_subst_variables_worker
+ sub substitute_ac_subst_variables ($)
+ {
+ my ($text) = @_;
+- $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
++ $text =~ s/\$\{([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+ return $text;
+ }
+
+--
+2.1.0
+
diff --git a/dev-build/automake/files/automake-1.17-perl-5.41.patch b/dev-build/automake/files/automake-1.17-perl-5.41.patch
new file mode 100644
index 000000000000..425ce723e14d
--- /dev/null
+++ b/dev-build/automake/files/automake-1.17-perl-5.41.patch
@@ -0,0 +1,25 @@
+https://git.savannah.gnu.org/cgit/automake.git/commit/?id=b5403ee7a035872a21135c2ee4871a6c284c91dd
+
+From b5403ee7a035872a21135c2ee4871a6c284c91dd Mon Sep 17 00:00:00 2001
+From: Collin Funk <collin.funk1@gmail.com>
+Date: Thu, 30 Jan 2025 15:34:52 -0800
+Subject: automake: avoid precedence error when using Perl 5.41+.
+
+Reported by Igor Todorovski <itodorov@ca.ibm.com> in
+<https://lists.gnu.org/archive/html/automake/2025-01/msg00000.html>.
+
+* bin/automake.in (transform): Parentheses the '!' operators so
+Perl 5.41.8 doesn't warn about "possible precedence problem".
+--- a/bin/automake.in
++++ b/bin/automake.in
+@@ -6871,7 +6871,7 @@ sub transform ($\%)
+ {
+ my $neg = ($1 eq '!') ? 1 : 0;
+ my $val = transform_token ($token, %$transform, $2);
+- return (!!$val == $neg) ? '##%' : '';
++ return ((!!$val) == $neg) ? '##%' : '';
+ }
+ else
+ {
+--
+cgit v1.1
diff --git a/dev-build/automake/files/automake-1.17-perl-no-werror.patch b/dev-build/automake/files/automake-1.17-perl-no-werror.patch
new file mode 100644
index 000000000000..ff0fb790144f
--- /dev/null
+++ b/dev-build/automake/files/automake-1.17-perl-no-werror.patch
@@ -0,0 +1,460 @@
+https://git.savannah.gnu.org/cgit/automake.git/commit/?id=fc1c3f658517be4fe70bdf33bc6cd594d3faa0b2
+
+From fc1c3f658517be4fe70bdf33bc6cd594d3faa0b2 Mon Sep 17 00:00:00 2001
+From: Karl Berry <karl@freefriends.org>
+Date: Fri, 31 Jan 2025 09:20:47 -0800
+Subject: automake: just use warnings, with no => FATAL.
+
+Per Perl recommendation:
+ https://perldoc.perl.org/warnings#Fatal-Warnings
+Suggested by Collin Funk:
+ https://lists.gnu.org/archive/html/automake/2025-01/msg00003.html
+And in the Perl discussion:
+ https://github.com/Perl/perl5/issues/22954#issuecomment-2622966302
+
+* bin/aclocal.in: just use warnings, not making them fatal.
+* bin/automake.in:
+* contrib/tap-driver.pl:
+* gen-testsuite-part:
+* lib/Automake/ChannelDefs.pm:
+* lib/Automake/Channels.pm:
+* lib/Automake/Condition.pm:
+* lib/Automake/Config.in:
+* lib/Automake/Configure_ac.pm:
+* lib/Automake/DisjConditions.pm:
+* lib/Automake/FileUtils.pm:
+* lib/Automake/General.pm:
+* lib/Automake/Getopt.pm:
+* lib/Automake/Item.pm:
+* lib/Automake/ItemDef.pm:
+* lib/Automake/Language.pm:
+* lib/Automake/Location.pm:
+* lib/Automake/Options.pm:
+* lib/Automake/Rule.pm:
+* lib/Automake/RuleDef.pm:
+* lib/Automake/VarDef.pm:
+* lib/Automake/Variable.pm:
+* lib/Automake/Version.pm:
+* lib/Automake/Wrap.pm:
+* lib/Automake/XFile.pm:
+* t/ax/deltree.pl:
+* t/ax/extract-testsuite-summary.pl:
+* t/check-fd-redirect.sh:
+* t/tap-signal.tap:
+* t/tests-environment-fd-redirect.sh:
+* t/testsuite-summary-count-many.sh:
+--- a/bin/aclocal.in
++++ b/bin/aclocal.in
+@@ -19,9 +19,7 @@
+ # Written by Tom Tromey <tromey@redhat.com>, and
+ # Alexandre Duret-Lutz <adl@gnu.org>.
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ BEGIN
+ {
+--- a/bin/automake.in
++++ b/bin/automake.in
+@@ -22,9 +22,7 @@
+
+ package Automake;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ BEGIN
+ {
+--- a/contrib/tap-driver.pl
++++ b/contrib/tap-driver.pl
+@@ -27,12 +27,12 @@
+ # Imports, static data, and setup. #
+ # ---------------------------------- #
+
+-use warnings FATAL => 'all';
+-use strict;
++use strict; use warnings;
+ use Getopt::Long ();
++
+ use TAP::Parser;
+
+-my $VERSION = '2013-12-24.15'; # UTC
++my $VERSION = '2024-12-03.03'; # UTC
+
+ my $ME = "tap-driver.pl";
+
+--- a/gen-testsuite-part
++++ b/gen-testsuite-part
+@@ -20,8 +20,8 @@
+
+ #--------------------------------------------------------------------------
+
+-use warnings FATAL => "all";
+ use strict;
++use warnings;
+ use File::Basename ();
+ use constant TRUE => 1;
+ use constant FALSE => 0;
+--- a/lib/Automake/ChannelDefs.pm
++++ b/lib/Automake/ChannelDefs.pm
+@@ -49,10 +49,7 @@ shorthand function to output on specific channels.
+
+ =cut
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Exporter;
+
+ use Automake::Channels;
+--- a/lib/Automake/Channels.pm
++++ b/lib/Automake/Channels.pm
+@@ -66,10 +66,7 @@ etc.) that can also be overridden on a per-message basis.
+
+ =cut
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+ use Exporter;
+ use File::Basename;
+--- a/lib/Automake/Condition.pm
++++ b/lib/Automake/Condition.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::Condition;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+ use Exporter;
+
+--- a/lib/Automake/Config.in
++++ b/lib/Automake/Config.in
+@@ -17,9 +17,7 @@
+
+ package Automake::Config;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Exporter;
+
+--- a/lib/Automake/Configure_ac.pm
++++ b/lib/Automake/Configure_ac.pm
+@@ -20,9 +20,7 @@
+
+ package Automake::Configure_ac;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Exporter;
+
+--- a/lib/Automake/DisjConditions.pm
++++ b/lib/Automake/DisjConditions.pm
+@@ -15,9 +15,7 @@
+
+ package Automake::DisjConditions;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Carp;
+ use Automake::Condition qw (TRUE FALSE);
+--- a/lib/Automake/FileUtils.pm
++++ b/lib/Automake/FileUtils.pm
+@@ -34,9 +34,7 @@ This perl module provides various general purpose file handling functions.
+
+ =cut
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ BEGIN
+ {
+--- a/lib/Automake/General.pm
++++ b/lib/Automake/General.pm
+@@ -15,9 +15,7 @@
+
+ package Automake::General;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Exporter;
+ use File::Basename;
+--- a/lib/Automake/Getopt.pm
++++ b/lib/Automake/Getopt.pm
+@@ -35,9 +35,7 @@ line options in conformance to the GNU Coding standards.
+
+ =cut
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Carp qw (confess croak);
+ use Exporter ();
+--- a/lib/Automake/Item.pm
++++ b/lib/Automake/Item.pm
+@@ -15,9 +15,7 @@
+
+ package Automake::Item;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Carp;
+
+--- a/lib/Automake/ItemDef.pm
++++ b/lib/Automake/ItemDef.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::ItemDef;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+
+ =head1 NAME
+--- a/lib/Automake/Language.pm
++++ b/lib/Automake/Language.pm
+@@ -15,9 +15,7 @@
+
+ package Automake::Language;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Class::Struct ();
+
+--- a/lib/Automake/Location.pm
++++ b/lib/Automake/Location.pm
+@@ -15,9 +15,7 @@
+
+ package Automake::Location;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ =head1 NAME
+
+--- a/lib/Automake/Options.pm
++++ b/lib/Automake/Options.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::Options;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Exporter;
+
+ use Automake::Config;
+--- a/lib/Automake/Rule.pm
++++ b/lib/Automake/Rule.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::Rule;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+ use Exporter;
+
+--- a/lib/Automake/RuleDef.pm
++++ b/lib/Automake/RuleDef.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::RuleDef;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+ use Exporter;
+
+--- a/lib/Automake/VarDef.pm
++++ b/lib/Automake/VarDef.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::VarDef;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+ use Exporter;
+
+--- a/lib/Automake/Variable.pm
++++ b/lib/Automake/Variable.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::Variable;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Carp;
+ use Exporter;
+
+--- a/lib/Automake/Version.pm
++++ b/lib/Automake/Version.pm
+@@ -15,9 +15,7 @@
+
+ package Automake::Version;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
++use 5.006; use strict; use warnings;
+
+ use Automake::ChannelDefs;
+
+--- a/lib/Automake/Wrap.pm
++++ b/lib/Automake/Wrap.pm
+@@ -15,10 +15,7 @@
+
+ package Automake::Wrap;
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Exporter;
+
+ our @ISA = qw (Exporter);
+--- a/lib/Automake/XFile.pm
++++ b/lib/Automake/XFile.pm
+@@ -69,10 +69,7 @@ and C<getlines> methods to translate C<\r\n> to C<\n>.
+
+ =cut
+
+-use 5.006;
+-use strict;
+-use warnings FATAL => 'all';
+-
++use 5.006; use strict; use warnings;
+ use Errno;
+ use Exporter;
+ use IO::File;
+--- a/t/ax/deltree.pl
++++ b/t/ax/deltree.pl
+@@ -17,8 +17,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+-use strict;
+-use warnings FATAL => 'all';
++use strict; use warnings;
+ use File::Path qw/rmtree/;
+
+ my $exit_status = 0;
+--- a/t/ax/extract-testsuite-summary.pl
++++ b/t/ax/extract-testsuite-summary.pl
+@@ -17,8 +17,7 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+-use warnings FATAL => 'all';
+-use strict;
++use strict; use warnings;
+
+ my $br = '=' x 76;
+ my @sections = ('');
+--- a/t/check-fd-redirect.sh
++++ b/t/check-fd-redirect.sh
+@@ -81,8 +81,7 @@ do_check
+
+ echo "#! $PERL -w" > foo.test
+ cat >> foo.test <<'END'
+-use warnings FATAL => 'all';
+-use strict;
++use strict; use warnings;
+
+ open (FD3, "<&=3") or die "opening FD3: $!";
+ open (FD4, ">&=4") or die "opening FD4: $!";
+--- a/t/tap-signal.tap
++++ b/t/tap-signal.tap
+@@ -52,7 +52,7 @@ for sig in $all_signals; do
+ # We need autoflush to avoid losing output, which could cause spurious
+ # "no test plan seen" in the TAP driver.
+ BEGIN { $| = 1 }
+- use warnings FATAL => "all";
++ use warnings;
+ print "1..1\\n";
+ print "ok 1\\n";
+ kill $sig, \$\$;
+--- a/t/tests-environment-fd-redirect.sh
++++ b/t/tests-environment-fd-redirect.sh
+@@ -44,8 +44,8 @@ END
+
+ echo "#! $PERL -w" > bar.test
+ cat >>bar.test <<'END'
+-use warnings FATAL => 'all';
+ use strict;
++use warnings;
+ open(FD8, ">&=8") or die "$!";
+ open(FD9, ">&=9") or die "$!";
+ print FD8 " $0: 8888\n";
+--- a/t/testsuite-summary-count-many.sh
++++ b/t/testsuite-summary-count-many.sh
+@@ -52,8 +52,8 @@ END
+ chmod a+x all.test
+
+ $PERL -w -e '
+- use warnings FATAL => "all";
+ use strict;
++ use warnings;
+
+ my $base = 1000;
+ my %count = (
+--
+cgit v1.1
+
+
diff --git a/dev-build/automake/metadata.xml b/dev-build/automake/metadata.xml
new file mode 100644
index 000000000000..6e5b45d8c011
--- /dev/null
+++ b/dev-build/automake/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gnu:automake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/b2/Manifest b/dev-build/b2/Manifest
new file mode 100644
index 000000000000..15ca52d2d1d7
--- /dev/null
+++ b/dev-build/b2/Manifest
@@ -0,0 +1 @@
+DIST b2-5.4.2.tar.gz 1201271 BLAKE2B 573a94ce0300fee53a161e1ba7838890e0a8ea074b568eb2df479f70639d05e28b6d2b4a301d82dddc58f26a83f8d2c41cac41272fe689d456007acb49d1ca6f SHA512 fd68cedc9936a463525df47b87b10c8fb72d9eec8355fd1b460ddf4a9c25369beb282a6a8229d54a01d56a82fcc5224af837fc8bc58042af02e688e9c0d4f4c6
diff --git a/dev-build/b2/b2-5.4.2.ebuild b/dev-build/b2/b2-5.4.2.ebuild
new file mode 100644
index 000000000000..da63bf88a9ed
--- /dev/null
+++ b/dev-build/b2/b2-5.4.2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo flag-o-matic toolchain-funcs
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="A system for large project software construction, simple to use and powerful"
+HOMEPAGE="https://www.bfgroup.xyz/b2/"
+SRC_URI="https://github.com/bfgroup/b2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}/src"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="examples"
+RESTRICT="test"
+
+RDEPEND="!dev-util/boost-build"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.9.2-disable_python_rpath.patch
+ "${FILESDIR}"/${PN}-4.9.2-darwin-gentoo-toolchain.patch
+ "${FILESDIR}"/${PN}-4.9.2-add-none-feature-options.patch
+ "${FILESDIR}"/${PN}-5.4.2-no-implicit-march-flags.patch
+)
+
+src_configure() {
+ # need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100)
+ append-lfs-flags
+}
+
+src_compile() {
+ cd engine || die
+
+ # don't call windres since it leads to broken relocations
+ export B2_DONT_EMBED_MANIFEST=1
+
+ # upstream doesn't want separate flags for CPPFLAGS/LDFLAGS
+ # https://github.com/bfgroup/b2/pull/187#issuecomment-1335688424
+ edo ${CONFIG_SHELL:-${BASH}} ./build.sh cxx \
+ --cxx="$(tc-getCXX)" \
+ --cxxflags="-pthread ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}" \
+ -d+2 \
+ --without-python
+}
+
+src_test() {
+ # Forget tests, b2 is a lost cause
+ :
+}
+
+src_install() {
+ dobin engine/b2
+
+ insinto /usr/share/b2/src
+ doins -r "${FILESDIR}/site-config.jam" \
+ build-system.jam ../example/user-config.jam \
+ build contrib options tools util
+
+ find "${ED}"/usr/share/b2/src -iname '*.py' -delete || die
+
+ dodoc ../notes/relative_source_paths.txt
+
+ if use examples; then
+ docinto examples
+ dodoc -r ../example/.
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+}
diff --git a/dev-build/b2/files/b2-4.9.2-add-none-feature-options.patch b/dev-build/b2/files/b2-4.9.2-add-none-feature-options.patch
new file mode 100644
index 000000000000..620dea0af51b
--- /dev/null
+++ b/dev-build/b2/files/b2-4.9.2-add-none-feature-options.patch
@@ -0,0 +1,22 @@
+--- a/tools/features/debug-feature.jam
++++ b/tools/features/debug-feature.jam
+@@ -18,7 +18,7 @@ common usage is to build release variant with debugging information.
+ |# # end::doc[]
+
+ feature.feature debug-symbols
+- : on off
++ : on off none
+ : propagated ;
+
+ #| tag::prof-doc[]
+--- a/tools/features/optimization-feature.jam
++++ b/tools/features/optimization-feature.jam
+@@ -16,7 +16,7 @@ smaller binary.
+ |# # end::doc[]
+
+ feature.feature optimization
+- : off speed space minimal debug
++ : off none speed space minimal debug
+ : propagated ;
+
+ #| tag::inline-doc[]
diff --git a/dev-build/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch b/dev-build/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch
new file mode 100644
index 000000000000..8de98014dbdc
--- /dev/null
+++ b/dev-build/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch
@@ -0,0 +1,16 @@
+Avoid adding all kinds of things to the toolchain's flags that within
+Gentoo (Prefix) we really shouldn't, such as sysroot, deployment target,
+arch, etc.
+
+--- a/tools/darwin.jam
++++ b/tools/darwin.jam
+@@ -240,6 +240,9 @@
+ }
+ }
+
++ # leave compiler flags etc. up to the toolchain
++ return $(version-feature) ;
++
+ if $(version-feature)
+ {
+ if $(.debug-configuration)
diff --git a/dev-build/b2/files/b2-4.9.2-disable_python_rpath.patch b/dev-build/b2/files/b2-4.9.2-disable_python_rpath.patch
new file mode 100644
index 000000000000..b7b47cc93a47
--- /dev/null
+++ b/dev-build/b2/files/b2-4.9.2-disable_python_rpath.patch
@@ -0,0 +1,11 @@
+--- a/tools/python.jam
++++ b/tools/python.jam
+@@ -1000,7 +1000,7 @@
+ # linux).
+ : $(usage-requirements)
+ <testing.launcher>$(set-PYTHONPATH)
+- <library-path>$(libraries) <dll-path>$(dll-path) <library>python.lib
++ <library-path>$(libraries) <library>python.lib
+ ;
+ }
+
diff --git a/dev-build/b2/files/b2-5.4.2-no-implicit-march-flags.patch b/dev-build/b2/files/b2-5.4.2-no-implicit-march-flags.patch
new file mode 100644
index 000000000000..bd8f862fd0e9
--- /dev/null
+++ b/dev-build/b2/files/b2-5.4.2-no-implicit-march-flags.patch
@@ -0,0 +1,148 @@
+--- a/tools/gcc.jam
++++ b/tools/gcc.jam
+@@ -1157,145 +1157,6 @@
+ # x86 and compatible
+ # The 'native' option appeared in gcc 4.2 so we cannot safely use it as default.
+ # Use i686 instead for 32-bit.
+-toolset.flags gcc OPTIONS <architecture>x86/<address-model>32/<instruction-set> : -march=i686 ;
+-cpu-flags gcc OPTIONS : x86 : native : -march=native ;
+-cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ;
+-cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ;
+-cpu-flags gcc OPTIONS : x86 : i686 : -march=i686 ;
+-cpu-flags gcc OPTIONS : x86 : pentium : -march=pentium ;
+-cpu-flags gcc OPTIONS : x86 : pentium-mmx : -march=pentium-mmx ;
+-cpu-flags gcc OPTIONS : x86 : pentiumpro : -march=pentiumpro ;
+-cpu-flags gcc OPTIONS : x86 : pentium2 : -march=pentium2 ;
+-cpu-flags gcc OPTIONS : x86 : pentium3 : -march=pentium3 ;
+-cpu-flags gcc OPTIONS : x86 : pentium3m : -march=pentium3m ;
+-cpu-flags gcc OPTIONS : x86 : pentium-m : -march=pentium-m ;
+-cpu-flags gcc OPTIONS : x86 : pentium4 : -march=pentium4 ;
+-cpu-flags gcc OPTIONS : x86 : pentium4m : -march=pentium4m ;
+-cpu-flags gcc OPTIONS : x86 : prescott : -march=prescott ;
+-cpu-flags gcc OPTIONS : x86 : nocona : -march=nocona ;
+-cpu-flags gcc OPTIONS : x86 : core2 : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : conroe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : conroe-xe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : conroe-l : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : allendale : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : wolfdale : -march=core2 -msse4.1 ;
+-cpu-flags gcc OPTIONS : x86 : merom : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : merom-xe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : kentsfield : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : kentsfield-xe : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : yorksfield : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : penryn : -march=core2 ;
+-cpu-flags gcc OPTIONS : x86 : corei7 : -march=corei7 ;
+-cpu-flags gcc OPTIONS : x86 : nehalem : -march=corei7 ;
+-cpu-flags gcc OPTIONS : x86 : corei7-avx : -march=corei7-avx ;
+-cpu-flags gcc OPTIONS : x86 : sandy-bridge : -march=corei7-avx ;
+-cpu-flags gcc OPTIONS : x86 : core-avx-i : -march=core-avx-i ;
+-cpu-flags gcc OPTIONS : x86 : ivy-bridge : -march=core-avx-i ;
+-cpu-flags gcc OPTIONS : x86 : haswell : -march=core-avx-i -mavx2 -mfma -mbmi -mbmi2 -mlzcnt ;
+-cpu-flags gcc OPTIONS : x86 : broadwell : -march=broadwell ;
+-cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ;
+-cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ;
+-cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ;
+-cpu-flags gcc OPTIONS : x86 : icelake-client : -march=icelake-client ;
+-cpu-flags gcc OPTIONS : x86 : icelake-server : -march=icelake-server ;
+-cpu-flags gcc OPTIONS : x86 : cascadelake : -march=skylake-avx512 -mavx512vnni ;
+-cpu-flags gcc OPTIONS : x86 : cooperlake : -march=cooperlake ;
+-cpu-flags gcc OPTIONS : x86 : tigerlake : -march=tigerlake ;
+-cpu-flags gcc OPTIONS : x86 : rocketlake : -march=rocketlake ;
+-cpu-flags gcc OPTIONS : x86 : alderlake : -march=alderlake ;
+-cpu-flags gcc OPTIONS : x86 : sapphirerapids : -march=sapphirerapids ;
+-cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ;
+-cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ;
+-cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ;
+-cpu-flags gcc OPTIONS : x86 : athlon : -march=athlon ;
+-cpu-flags gcc OPTIONS : x86 : athlon-tbird : -march=athlon-tbird ;
+-cpu-flags gcc OPTIONS : x86 : athlon-4 : -march=athlon-4 ;
+-cpu-flags gcc OPTIONS : x86 : athlon-xp : -march=athlon-xp ;
+-cpu-flags gcc OPTIONS : x86 : athlon-mp : -march=athlon-mp ;
+-##
+-cpu-flags gcc OPTIONS : x86 : k8 : -march=k8 ;
+-cpu-flags gcc OPTIONS : x86 : opteron : -march=opteron ;
+-cpu-flags gcc OPTIONS : x86 : athlon64 : -march=athlon64 ;
+-cpu-flags gcc OPTIONS : x86 : athlon-fx : -march=athlon-fx ;
+-cpu-flags gcc OPTIONS : x86 : k8-sse3 : -march=k8-sse3 ;
+-cpu-flags gcc OPTIONS : x86 : opteron-sse3 : -march=opteron-sse3 ;
+-cpu-flags gcc OPTIONS : x86 : athlon64-sse3 : -march=athlon64-sse3 ;
+-cpu-flags gcc OPTIONS : x86 : amdfam10 : -march=amdfam10 ;
+-cpu-flags gcc OPTIONS : x86 : barcelona : -march=barcelona ;
+-cpu-flags gcc OPTIONS : x86 : bdver1 : -march=bdver1 ;
+-cpu-flags gcc OPTIONS : x86 : bdver2 : -march=bdver2 ;
+-cpu-flags gcc OPTIONS : x86 : bdver3 : -march=bdver3 ;
+-cpu-flags gcc OPTIONS : x86 : bdver4 : -march=bdver4 ;
+-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ;
+-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ;
+-cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ;
+-cpu-flags gcc OPTIONS : x86 : znver2 : -march=znver2 ;
+-cpu-flags gcc OPTIONS : x86 : znver3 : -march=znver3 ;
+-cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ;
+-cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ;
+-cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ;
+-cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
+-cpu-flags gcc OPTIONS : x86 : c7 : -march=c7 ;
+-##
+-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
+-# Sparc
+-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ;
+-cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ;
+-cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ;
+-cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ;
+-cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ;
+-cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ;
+-cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ;
+-cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ;
+-cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ;
+-cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ;
+-cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ;
+-cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ;
+-cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ;
+-cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ;
+-# RS/6000 & PowerPC
+-cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ;
+-cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ;
+-cpu-flags gcc OPTIONS : power : 601 : -mcpu=601 ;
+-cpu-flags gcc OPTIONS : power : 602 : -mcpu=602 ;
+-cpu-flags gcc OPTIONS : power : 603 : -mcpu=603 ;
+-cpu-flags gcc OPTIONS : power : 603e : -mcpu=603e ;
+-cpu-flags gcc OPTIONS : power : 604 : -mcpu=604 ;
+-cpu-flags gcc OPTIONS : power : 604e : -mcpu=604e ;
+-cpu-flags gcc OPTIONS : power : 620 : -mcpu=620 ;
+-cpu-flags gcc OPTIONS : power : 630 : -mcpu=630 ;
+-cpu-flags gcc OPTIONS : power : 740 : -mcpu=740 ;
+-cpu-flags gcc OPTIONS : power : 7400 : -mcpu=7400 ;
+-cpu-flags gcc OPTIONS : power : 7450 : -mcpu=7450 ;
+-cpu-flags gcc OPTIONS : power : 750 : -mcpu=750 ;
+-cpu-flags gcc OPTIONS : power : 801 : -mcpu=801 ;
+-cpu-flags gcc OPTIONS : power : 821 : -mcpu=821 ;
+-cpu-flags gcc OPTIONS : power : 823 : -mcpu=823 ;
+-cpu-flags gcc OPTIONS : power : 860 : -mcpu=860 ;
+-cpu-flags gcc OPTIONS : power : 970 : -mcpu=970 ;
+-cpu-flags gcc OPTIONS : power : 8540 : -mcpu=8540 ;
+-cpu-flags gcc OPTIONS : power : power : -mcpu=power ;
+-cpu-flags gcc OPTIONS : power : power2 : -mcpu=power2 ;
+-cpu-flags gcc OPTIONS : power : power3 : -mcpu=power3 ;
+-cpu-flags gcc OPTIONS : power : power4 : -mcpu=power4 ;
+-cpu-flags gcc OPTIONS : power : power5 : -mcpu=power5 ;
+-cpu-flags gcc OPTIONS : power : powerpc : -mcpu=powerpc ;
+-cpu-flags gcc OPTIONS : power : powerpc64 : -mcpu=powerpc64 ;
+-cpu-flags gcc OPTIONS : power : rios : -mcpu=rios ;
+-cpu-flags gcc OPTIONS : power : rios1 : -mcpu=rios1 ;
+-cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ;
+-cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ;
+-cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ;
+-cpu-flags gcc OPTIONS : s390x : z196 : -march=z196 ;
+-cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ;
+-cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ;
+-cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ;
+-cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ;
+-# ARM
+-cpu-flags gcc OPTIONS : arm : cortex-a9+vfpv3 : -mcpu=cortex-a9 -mfpu=vfpv3 ;
+-cpu-flags gcc OPTIONS : arm : cortex-a53 : -mcpu=cortex-a53 ;
+-cpu-flags gcc OPTIONS : arm : cortex-r5 : -mcpu=cortex-r5 ;
+-cpu-flags gcc OPTIONS : arm : cortex-r5+vfpv3-d16 : -mcpu=cortex-r5 -mfpu=vfpv3-d16 ;
+ # AIX variant of RS/6000 & PowerPC
+ toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;
+
diff --git a/dev-build/b2/files/site-config.jam b/dev-build/b2/files/site-config.jam
new file mode 100644
index 000000000000..cae7b3f98327
--- /dev/null
+++ b/dev-build/b2/files/site-config.jam
@@ -0,0 +1,11 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+
+# Define two new variants to be used when building boost (or separate boost-libs)
+# on Gentoo. The two variants make use of Gentoo-specific optimization and debug-symbols
+# values "none" which are not part of the official boost distribution.
+# DO NOT RELY ON THE FOLLOWING VARIANTS TO BE PRESENT ON OTHER OS!
+variant gentoorelease : release : <optimization>none <debug-symbols>none <runtime-link>shared ;
+variant gentoodebug : debug : <optimization>none <debug-symbols>on <runtime-link>shared ;
+
diff --git a/dev-build/b2/metadata.xml b/dev-build/b2/metadata.xml
new file mode 100644
index 000000000000..97a8de7cc239
--- /dev/null
+++ b/dev-build/b2/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>soap@gentoo.org</email>
+ <name>David Seifert</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">bfgroup/b2</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/bazel-buildtools/Manifest b/dev-build/bazel-buildtools/Manifest
new file mode 100644
index 000000000000..516daaa59379
--- /dev/null
+++ b/dev-build/bazel-buildtools/Manifest
@@ -0,0 +1,3 @@
+DIST bazel-buildtools-8.2.0-deps.tar.xz 3588700 BLAKE2B 82fe1d797e440645547a4ae318bc0b0072dd5047d0072a80510378c5f874e0219c20c082519eb55c6d3e8cbf28e3ce78505fc84ff2893de9cac481ecd8637522 SHA512 8fb81400bbc8a2333c18942799882491057e385b19c4227e8873628d83f909c86d4a6aeb551c064282d8d57bc1323bf1d3a837a8d00026682b0dc3c353ad9c9e
+DIST bazel-buildtools-8.2.1.gh.tar.gz 342493 BLAKE2B 7d321fc59a075b0835bff9e17f237decd701f9f93efe260b9f954c1583d11c5676ebd28cd782fac39bc6df3dbd7d2a85e33124ee73f692cc69a13bd41ad9bbca SHA512 54b02044ca8e68d07a45f3ed1c1eb0ae3c30e1477b8a0cfba90240fb49f97bf75ae8addfd2ab379ee4c77c1d63c60f2e04392fe1302b43c212fee9957a184479
+DIST bazel-buildtools-8.5.1.gh.tar.gz 350566 BLAKE2B 7cc6789c7cd78b20d786aa171f6fe7632367f132c8200ed11515e32b58ba3c5dfecf77c7a3b48619e6d1219c9a93fa62fafffc017de6d639c4d5aa13e1bf5dff SHA512 133e72c72f1913d1ca73be25ac6ca6ff170a7a5b98c5b5510811ff229cec06ed08fa02dfb061e31a7efae29080eee6753bb8e35b0691baebcbe3723ba77b4ec9
diff --git a/dev-build/bazel-buildtools/bazel-buildtools-8.2.1.ebuild b/dev-build/bazel-buildtools/bazel-buildtools-8.2.1.ebuild
new file mode 100644
index 000000000000..76877eafb77e
--- /dev/null
+++ b/dev-build/bazel-buildtools/bazel-buildtools-8.2.1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+REAL_PN="buildtools"
+
+inherit go-module
+
+DESCRIPTION="Tools for working with Google's Bazel BUILD files"
+HOMEPAGE="https://github.com/bazelbuild/buildtools/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/bazelbuild/${REAL_PN}"
+else
+ SRC_URI="https://github.com/bazelbuild/${REAL_PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+ S="${WORKDIR}/${REAL_PN}-${PV}"
+
+ KEYWORDS="amd64 arm64 ~x86"
+fi
+
+SRC_URI+="
+ https://dev.gentoo.org/~xgqt/distfiles/deps/${PN}-8.2.0-deps.tar.xz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DOCS=( README.md WARNINGS.md )
+
+src_prepare() {
+ default
+
+ rm ./warn/docs/docs.go || die
+}
+
+src_compile() {
+ local go_ldopts="
+ -X main.buildScmRevision=v${PV}
+ -X main.buildVersion=${PV}
+ "
+ local -a go_buildopts=(
+ -ldflags "${go_ldopts}"
+ -o ./bin/
+ )
+ ego build "${go_buildopts[@]}" ./...
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe ./bin/{buildifier,buildozer}
+ newexe ./bin/generatetables bazel-generatetables
+ newexe ./bin/unused_deps bazel-unused_deps
+
+ local app=""
+ for app in buildifier buildozer unused_deps ; do
+ newdoc "${S}/${app}/README.md" "${app}.md"
+ done
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ einfo 'The "generatetables" binary is installed as "bazel-generatetables"'
+ einfo 'and the "unused_deps" binary is installed as "bazel-unused_deps"'.
+}
diff --git a/dev-build/bazel-buildtools/bazel-buildtools-8.5.1.ebuild b/dev-build/bazel-buildtools/bazel-buildtools-8.5.1.ebuild
new file mode 100644
index 000000000000..76877eafb77e
--- /dev/null
+++ b/dev-build/bazel-buildtools/bazel-buildtools-8.5.1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+REAL_PN="buildtools"
+
+inherit go-module
+
+DESCRIPTION="Tools for working with Google's Bazel BUILD files"
+HOMEPAGE="https://github.com/bazelbuild/buildtools/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/bazelbuild/${REAL_PN}"
+else
+ SRC_URI="https://github.com/bazelbuild/${REAL_PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+ S="${WORKDIR}/${REAL_PN}-${PV}"
+
+ KEYWORDS="amd64 arm64 ~x86"
+fi
+
+SRC_URI+="
+ https://dev.gentoo.org/~xgqt/distfiles/deps/${PN}-8.2.0-deps.tar.xz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+DOCS=( README.md WARNINGS.md )
+
+src_prepare() {
+ default
+
+ rm ./warn/docs/docs.go || die
+}
+
+src_compile() {
+ local go_ldopts="
+ -X main.buildScmRevision=v${PV}
+ -X main.buildVersion=${PV}
+ "
+ local -a go_buildopts=(
+ -ldflags "${go_ldopts}"
+ -o ./bin/
+ )
+ ego build "${go_buildopts[@]}" ./...
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe ./bin/{buildifier,buildozer}
+ newexe ./bin/generatetables bazel-generatetables
+ newexe ./bin/unused_deps bazel-unused_deps
+
+ local app=""
+ for app in buildifier buildozer unused_deps ; do
+ newdoc "${S}/${app}/README.md" "${app}.md"
+ done
+
+ einstalldocs
+}
+
+pkg_postinst() {
+ einfo 'The "generatetables" binary is installed as "bazel-generatetables"'
+ einfo 'and the "unused_deps" binary is installed as "bazel-unused_deps"'.
+}
diff --git a/dev-build/bazel-buildtools/metadata.xml b/dev-build/bazel-buildtools/metadata.xml
new file mode 100644
index 000000000000..ee281bf6fe20
--- /dev/null
+++ b/dev-build/bazel-buildtools/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Bazel buildtools contain: 1. buildifier - for formatting BUILD,
+ BUILD.bazel and BUCK files in a standard way, 2. buildozer - for doing
+ command-line operations on these files, 3. unused_deps - for finding
+ unneeded dependencies in java_library rules.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/bazelbuild/buildtools/issues/</bugs-to>
+ <remote-id type="github">bazelbuild/buildtools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/bazelisk/Manifest b/dev-build/bazelisk/Manifest
new file mode 100644
index 000000000000..5ffacbf81916
--- /dev/null
+++ b/dev-build/bazelisk/Manifest
@@ -0,0 +1,4 @@
+DIST bazelisk-1.28.1-deps.tar.xz 2578056 BLAKE2B ca076d248eb1655c62e345cd3cf45af20ee0564418ee6711879cf41a0584484bbc679baa238492a79720b2b9a91f74294d06be441974400ca011ef35970cb1aa SHA512 88a1c50e2db24f6037dbbddce72c9afd11435ddfbc7a2bf2b1352efcd9465856722609297c1169f00b10ae75647dd39566ddd1d5e4529606235fab0a03a8427b
+DIST bazelisk-1.28.1.gh.tar.gz 160928 BLAKE2B f04ba2feca37ad9ad1114a79f6905cb0bf3c16dfec0c8d282b52d449296e184645e0cbdfd135e53c372cc51d78aca5d626fec31d4530f7294364f4747c7ff4f2 SHA512 5bbc97ea7f8d61be1b42e58b3318a15bf1a2766a9d956617fb0f36b360b5c99cb6ed956a6330709ac644538ff466b1b26a15b2f18c07cfd61489f0cc89765b62
+DIST bazelisk-1.29.0-deps.tar.xz 5921060 BLAKE2B 9df46219f9a632e97bd6df3ea0d82e86f34b1d3871b475a45d2248fb263f98e72d2540ab4ae73db5a510fc4b7f4939081b2b836e17a5958976f39f27733da8dd SHA512 047695e53cc4ace31a0531957acc72f9d077f0be2a663f3a2ed313a90068044eda6df3c5007cf00576832becf62f8aa3cffad8ef75743a637b7367f286a1e73b
+DIST bazelisk-1.29.0.gh.tar.gz 167799 BLAKE2B 8fc513c6bd834969b0a30c2728a365605f2eac5a6cefc382e64364353fd1f42f52e018484790859623ff0e5c1521f2e29f0809ab4ec17d35ed3cf34b72fa7e17 SHA512 9335d062c46973265c87b6d4f02b05d7f2e69df2bcb109abe62bf611ed40c1ddd860405d8368ae110f413082cc1eac7210997b94002ecff704885f7803dfadae
diff --git a/dev-build/bazelisk/bazelisk-1.28.1.ebuild b/dev-build/bazelisk/bazelisk-1.28.1.ebuild
new file mode 100644
index 000000000000..8754369d252d
--- /dev/null
+++ b/dev-build/bazelisk/bazelisk-1.28.1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module
+
+DESCRIPTION="A user-friendly launcher for Bazel written in Go"
+HOMEPAGE="https://github.com/bazelbuild/bazelisk/"
+SRC_URI="
+ https://github.com/bazelbuild/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ https://dev.gentoo.org/~xgqt/distfiles/deps/${P}-deps.tar.xz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm64"
+IUSE="+bazel-symlink"
+
+DOCS=( CONTRIBUTING.md README.md )
+
+src_compile() {
+ mkdir -p bin || die
+
+ local go_ldflags="-X main.BazeliskVersion=${PV}"
+ local -a go_buildargs=(
+ -ldflags "${go_ldflags}"
+ -o bin
+ )
+ ego build "${go_buildargs[@]}"
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe "bin/${PN}"
+
+ if use bazel-symlink ; then
+ dosym -r /usr/bin/bazelisk /usr/bin/bazel
+ fi
+
+ einstalldocs
+}
diff --git a/dev-build/bazelisk/bazelisk-1.29.0.ebuild b/dev-build/bazelisk/bazelisk-1.29.0.ebuild
new file mode 100644
index 000000000000..e3a64c3ca084
--- /dev/null
+++ b/dev-build/bazelisk/bazelisk-1.29.0.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module
+
+DESCRIPTION="A user-friendly launcher for Bazel written in Go"
+HOMEPAGE="https://github.com/bazelbuild/bazelisk/"
+
+SRC_URI="
+ https://github.com/bazelbuild/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ https://dev.gentoo.org/~xgqt/distfiles/deps/${P}-deps.tar.xz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="+bazel-symlink"
+
+DOCS=( CONTRIBUTING.md README.md )
+
+src_compile() {
+ mkdir -p bin || die
+
+ local go_ldflags="-X main.BazeliskVersion=${PV}"
+ local -a go_buildargs=(
+ -ldflags "${go_ldflags}"
+ -o bin
+ )
+ ego build "${go_buildargs[@]}"
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe "bin/${PN}"
+ einstalldocs
+
+ if use bazel-symlink ; then
+ dosym -r /usr/bin/bazelisk /usr/bin/bazel
+ fi
+}
diff --git a/dev-build/bazelisk/metadata.xml b/dev-build/bazelisk/metadata.xml
new file mode 100644
index 000000000000..de81e5f355e3
--- /dev/null
+++ b/dev-build/bazelisk/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Bazelisk is a wrapper for Bazel written in Go. It automatically picks a
+ good version of Bazel given your current working directory, downloads it
+ from the official server (if required) and then transparently passes
+ through all command-line arguments to the real Bazel binary. You can call
+ it just like you would call Bazel.
+ </longdescription>
+ <use>
+ <flag name="bazel-symlink">Install bazel symlink that points to bazelisk</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/bazelbuild/bazelisk/issues/</bugs-to>
+ <remote-id type="github">bazelbuild/bazelisk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/bmake/Manifest b/dev-build/bmake/Manifest
new file mode 100644
index 000000000000..7e2c3065c3e1
--- /dev/null
+++ b/dev-build/bmake/Manifest
@@ -0,0 +1,4 @@
+DIST bmake-20251111.tar.gz 896003 BLAKE2B 787d05083273169d869d0184824a3f44acceef5d06e11d2a0dae1a5c9658c034aef4e3062d33d5f893f230fa6de13e54149a60c6a80e9cb24622f09e12583588 SHA512 dbea0379a3f081fee3d3eb009177076e6af13956d1104573179944f767c88981d76ef3186f9c396a2dd8686e03a340ba63a0f0a5bf310b59c343be85a5883580
+DIST bmake-20260406.tar.gz 900053 BLAKE2B d250dfd2872cf6c1b49b1771cf86dce991ddb97819dee5ae595f573f7aced7f05dbe8b7347952f4c49f73023b2f2f4279fad5976ff58333ed3b4f87061b00165 SHA512 ee5520e6aae47b1b94f707877b5a49c4db5defb6061e178fca18ec86e9b6be9728e1b9539a2e45ead57c9f57f21ea9dfbc7875c922f1ddf528707064a2895630
+DIST bmake-20260508.tar.gz 900460 BLAKE2B b78c7f73117b9ee8f1f9a282b7931f5ebf1b13c33ca355d4d76971d00cfcd4baf7b4e1f0c1b42e6abf55b0206c0216120a81b0878dd5f1eaa75675ed716b8491 SHA512 64b81f9d30c06e2cddbe61f0936a2ba1771d9fed391b671553375f6651288e52f9473aaf4d01e0e6e9d62de33cd00ad23711d79b580d867adb48dc1846768e99
+DIST mk-20210330.tar.gz 107380 BLAKE2B 9ac30a117d9ba31635cf8d8d29fdba76f148611f47628403ca8f807081c32509f10498d3c30fd24985e5420af4710fe59fc6315d71f2d0c1cfed93263a06553a SHA512 6acd3ee911442934082f4f877d795b07c5e23022eaa9c0874799d97e92a2f5a663cb45f94b7f9745c49cbbce6b7e755a29e381ccfb9e68a0be1eedbd22fd5d3b
diff --git a/dev-build/bmake/bmake-20251111.ebuild b/dev-build/bmake/bmake-20251111.ebuild
new file mode 100644
index 000000000000..7a2090a4b188
--- /dev/null
+++ b/dev-build/bmake/bmake-20251111.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MK_VER=20210330
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+
+inherit lua-single
+
+DESCRIPTION="NetBSD's portable make"
+HOMEPAGE="http://www.crufty.net/help/sjg/bmake.html"
+SRC_URI="
+ http://void.crufty.net/ftp/pub/sjg/${P}.tar.gz
+ http://void.crufty.net/ftp/pub/sjg/mk-${MK_VER}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="test? ( ${LUA_REQUIRED_USE} )"
+
+BDEPEND="test? ( ${LUA_DEPS} )"
+
+# Skip failing test (sandbox and csh)
+PATCHES=(
+ "${FILESDIR}"/${PN}-20210206-tests.patch
+ "${FILESDIR}"/${PN}-20250618-lua-test.patch
+)
+
+pkg_setup() {
+ use test && lua-single_pkg_setup
+}
+
+src_prepare() {
+ default
+ cd "${WORKDIR}" || die
+ eapply "${FILESDIR}"/${PN}-20210314-mk-fixes.patch
+}
+
+src_configure() {
+ econf \
+ --with-mksrc=../mk \
+ --with-default-sys-path="${EPREFIX}"/usr/share/mk/${PN} \
+ --with-machine_arch=${ARCH}
+}
+
+src_compile() {
+ sh make-bootstrap.sh || die "bootstrap failed"
+}
+
+src_test() {
+ cd unit-tests || die
+
+ # the 'ternary' test uses ${A} internally, which
+ # conflicts with Gentoo's ${A}, hence unset it for
+ # the tests temporarily.
+ env -u A MAKEFLAGS= \
+ "${S}"/bmake -r -m / TEST_MAKE="${S}"/bmake test || die "tests compilation failed"
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.1
+ FORCE_BSD_MK=1 SYS_MK_DIR=. \
+ sh ../mk/install-mk -v -m 644 "${ED}"/usr/share/mk/${PN} \
+ || die "failed to install mk files"
+}
diff --git a/dev-build/bmake/bmake-20260406.ebuild b/dev-build/bmake/bmake-20260406.ebuild
new file mode 100644
index 000000000000..6a0f42c9bf36
--- /dev/null
+++ b/dev-build/bmake/bmake-20260406.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MK_VER=20210330
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+
+inherit lua-single
+
+DESCRIPTION="NetBSD's portable make"
+HOMEPAGE="http://www.crufty.net/help/sjg/bmake.html"
+SRC_URI="
+ http://void.crufty.net/ftp/pub/sjg/${P}.tar.gz
+ http://void.crufty.net/ftp/pub/sjg/mk-${MK_VER}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="test? ( ${LUA_REQUIRED_USE} )"
+
+BDEPEND="
+ test? (
+ ${LUA_DEPS}
+ app-alternatives/bc
+ )"
+
+# Skip failing test (sandbox and csh)
+PATCHES=(
+ "${FILESDIR}"/${PN}-20210206-tests.patch
+ "${FILESDIR}"/${PN}-20250618-lua-test.patch
+)
+
+pkg_setup() {
+ use test && lua-single_pkg_setup
+}
+
+src_prepare() {
+ default
+ cd "${WORKDIR}" || die
+ eapply "${FILESDIR}"/${PN}-20210314-mk-fixes.patch
+}
+
+src_configure() {
+ econf \
+ --with-mksrc=../mk \
+ --with-default-sys-path="${EPREFIX}"/usr/share/mk/${PN} \
+ --with-machine_arch=${ARCH}
+}
+
+src_compile() {
+ sh make-bootstrap.sh || die "bootstrap failed"
+}
+
+src_test() {
+ cd unit-tests || die
+
+ # the 'ternary' test uses ${A} internally, which
+ # conflicts with Gentoo's ${A}, hence unset it for
+ # the tests temporarily.
+ env -u A MAKEFLAGS= \
+ "${S}"/bmake -r -m / TEST_MAKE="${S}"/bmake test || die "tests compilation failed"
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.1
+ FORCE_BSD_MK=1 SYS_MK_DIR=. \
+ sh ../mk/install-mk -v -m 644 "${ED}"/usr/share/mk/${PN} \
+ || die "failed to install mk files"
+}
diff --git a/dev-build/bmake/bmake-20260508.ebuild b/dev-build/bmake/bmake-20260508.ebuild
new file mode 100644
index 000000000000..6a0f42c9bf36
--- /dev/null
+++ b/dev-build/bmake/bmake-20260508.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MK_VER=20210330
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+
+inherit lua-single
+
+DESCRIPTION="NetBSD's portable make"
+HOMEPAGE="http://www.crufty.net/help/sjg/bmake.html"
+SRC_URI="
+ http://void.crufty.net/ftp/pub/sjg/${P}.tar.gz
+ http://void.crufty.net/ftp/pub/sjg/mk-${MK_VER}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="test? ( ${LUA_REQUIRED_USE} )"
+
+BDEPEND="
+ test? (
+ ${LUA_DEPS}
+ app-alternatives/bc
+ )"
+
+# Skip failing test (sandbox and csh)
+PATCHES=(
+ "${FILESDIR}"/${PN}-20210206-tests.patch
+ "${FILESDIR}"/${PN}-20250618-lua-test.patch
+)
+
+pkg_setup() {
+ use test && lua-single_pkg_setup
+}
+
+src_prepare() {
+ default
+ cd "${WORKDIR}" || die
+ eapply "${FILESDIR}"/${PN}-20210314-mk-fixes.patch
+}
+
+src_configure() {
+ econf \
+ --with-mksrc=../mk \
+ --with-default-sys-path="${EPREFIX}"/usr/share/mk/${PN} \
+ --with-machine_arch=${ARCH}
+}
+
+src_compile() {
+ sh make-bootstrap.sh || die "bootstrap failed"
+}
+
+src_test() {
+ cd unit-tests || die
+
+ # the 'ternary' test uses ${A} internally, which
+ # conflicts with Gentoo's ${A}, hence unset it for
+ # the tests temporarily.
+ env -u A MAKEFLAGS= \
+ "${S}"/bmake -r -m / TEST_MAKE="${S}"/bmake test || die "tests compilation failed"
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.1
+ FORCE_BSD_MK=1 SYS_MK_DIR=. \
+ sh ../mk/install-mk -v -m 644 "${ED}"/usr/share/mk/${PN} \
+ || die "failed to install mk files"
+}
diff --git a/dev-build/bmake/files/bmake-20210206-tests.patch b/dev-build/bmake/files/bmake-20210206-tests.patch
new file mode 100644
index 000000000000..49e5f258e91a
--- /dev/null
+++ b/dev-build/bmake/files/bmake-20210206-tests.patch
@@ -0,0 +1,18 @@
+--- a/unit-tests/Makefile
++++ b/unit-tests/Makefile
+@@ -191,7 +191,6 @@ TESTS+= dotwait
+ TESTS+= envfirst
+ TESTS+= error
+ TESTS+= # escape # broken by reverting POSIX changes
+-TESTS+= export
+ TESTS+= export-all
+ TESTS+= export-env
+ TESTS+= export-variants
+@@ -290,7 +289,6 @@ TESTS+= sh-leading-plus
+ TESTS+= sh-meta-chars
+ TESTS+= sh-multi-line
+ TESTS+= sh-single-line
+-TESTS+= shell-csh
+ TESTS+= shell-custom
+ .if exists(/bin/ksh)
+ TESTS+= shell-ksh
diff --git a/dev-build/bmake/files/bmake-20210314-mk-fixes.patch b/dev-build/bmake/files/bmake-20210314-mk-fixes.patch
new file mode 100644
index 000000000000..6dd935863be1
--- /dev/null
+++ b/dev-build/bmake/files/bmake-20210314-mk-fixes.patch
@@ -0,0 +1,66 @@
+# https://bugs.gentoo.org/779340
+# https://bugs.gentoo.org/778458
+# - Fix incorrect linking of shared libraries
+# - Respect LDFLAGS
+# - Do not strip prog binaries
+--- a/mk/lib.mk
++++ b/mk/lib.mk
+@@ -170,7 +170,7 @@ LD_solib= lib${LIB}_pic.a
+ .elif ${TARGET_OSNAME} == "Linux"
+ SHLIB_LD = ${CC}
+ # this is ambiguous of course
+-LD_shared=-shared -Wl,"-soname lib${LIB}.so.${SHLIB_MAJOR}"
++LD_shared=-shared -Wl,-soname,lib${LIB}.so.${SHLIB_MAJOR}
+ LD_solib= -Wl,--whole-archive lib${LIB}_pic.a -Wl,--no-whole-archive
+ .if ${COMPILER_TYPE} == "gcc"
+ # Linux uses GNU ld, which is a multi-pass linker
+@@ -455,11 +455,11 @@ lib${LIB}.${LD_so}: ${SOLIB} ${DPADD}
+ --whole-archive ${SOLIB} --no-whole-archive ${SHLIB_LDADD} \
+ ${SHLIB_LDENDFILE}
+ .else
+- ${SHLIB_LD} ${LD_x} ${LD_shared} \
++ ${SHLIB_LD} ${LD_x} ${LD_shared} ${LDFLAGS} \
+ -o ${.TARGET} ${SOLIB} ${SHLIB_LDADD}
+ .endif
+ .else
+- ${SHLIB_LD} -o ${.TARGET} ${LD_shared} ${LD_solib} ${DLLIB} ${SHLIB_LDADD}
++ ${SHLIB_LD} -o ${.TARGET} ${LD_shared} ${LDFLAGS} ${LD_solib} ${DLLIB} ${SHLIB_LDADD}
+ .endif
+ .endif
+ .if !empty(SHLIB_LINKS)
+--- a/mk/prog.mk
++++ b/mk/prog.mk
+@@ -178,7 +178,7 @@ proginstall:
+ .if defined(PROG)
+ [ -d ${DESTDIR}${BINDIR} ] || \
+ ${INSTALL} -d ${PROG_INSTALL_OWN} -m 775 ${DESTDIR}${BINDIR}
+- ${INSTALL} ${COPY} ${STRIP_FLAG} ${PROG_INSTALL_OWN} -m ${BINMODE} \
++ ${INSTALL} ${COPY} ${PROG_INSTALL_OWN} -m ${BINMODE} \
+ ${PROG} ${DESTDIR}${BINDIR}/${PROG_NAME}
+ .endif
+ .if defined(HIDEGAME)
+--- a/mk/sys/Linux.mk
++++ b/mk/sys/Linux.mk
+@@ -19,12 +19,13 @@ NEED_SOLINKS ?=yes
+ AR ?= ar
+ ARFLAGS ?= rl
+ RANLIB ?= ranlib
++LDFLAGS ?=
+
+ AS ?= as
+ AFLAGS=
+ COMPILE.s ?= ${AS} ${AFLAGS}
+ LINK.s ?= ${CC} ${AFLAGS} ${LDFLAGS}
+-COMPILE.S ?= ${CC} ${AFLAGS} ${CPPFLAGS} -c
++COMPILE.S ?= ${CC} ${AFLAGS} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -c
+ LINK.S ?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
+ .if exists(/usr/local/bin/gcc)
+ CC ?= gcc -pipe
+@@ -65,7 +66,6 @@ LFLAGS=
+ LEX.l ?= ${LEX} ${LFLAGS}
+
+ LD ?= ld
+-LDFLAGS=
+
+ LINT ?= lint
+ LINTFLAGS ?= -chapbx
diff --git a/dev-build/bmake/files/bmake-20250618-lua-test.patch b/dev-build/bmake/files/bmake-20250618-lua-test.patch
new file mode 100644
index 000000000000..ae1f2dd50409
--- /dev/null
+++ b/dev-build/bmake/files/bmake-20250618-lua-test.patch
@@ -0,0 +1,10 @@
+# https://bugs.gentoo.org/959269#c4
+# make the test compatible with lua-5.1
+--- a/unit-tests/check-expect.lua
++++ b/unit-tests/check-expect.lua
+@@ -187,4 +187,4 @@ end
+ for _, fname in ipairs(arg) do
+ check_mk(fname)
+ end
+-os.exit(not had_errors)
++os.exit((not had_errors) and 0 or 1)
diff --git a/dev-build/bmake/metadata.xml b/dev-build/bmake/metadata.xml
new file mode 100644
index 000000000000..fe8a3a5da516
--- /dev/null
+++ b/dev-build/bmake/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jsmolic@gentoo.org</email>
+ <name>Jakov Smolić</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>soap@gentoo.org</email>
+ <name>David Seifert</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/boost-m4/Manifest b/dev-build/boost-m4/Manifest
new file mode 100644
index 000000000000..332259d46721
--- /dev/null
+++ b/dev-build/boost-m4/Manifest
@@ -0,0 +1,2 @@
+DIST boost-m4-0.4_p20221019.tar.gz 43301 BLAKE2B 8363b4e5406232050017c5272f5954509d784604485e9c5d485fbb360cebfa366bc0732886c13b54935deb6b1a85632c42282e3a51e92082ac3f40a78e43bbbb SHA512 43bf52054ad820d3da12dca38af7e71c80053a09c9dd06a9a5af87e87bafd69e36b891c179353e5c5e63970c38456264176769df6de8719fd6526116e9971dc6
+DIST boost-m4-0.4_p20250404.tar.gz 43328 BLAKE2B 1413ee95ac94e63dd592009101b0ebb2a1169ed856dfe588dcfb1ad836851dd99c5b9df4f6f0b4ce0e7590d54cd1e9f5f16b76f806aed1851330c7285d956f2a SHA512 554b5a8b5ca0334b8e9128bd19626e832041e45671f082c33d88ed49d019355e329a4473092927e7257b94926390bf00069eb5adecb751dbe0fb203d9e89da93
diff --git a/dev-build/boost-m4/boost-m4-0.4_p20221019-r1.ebuild b/dev-build/boost-m4/boost-m4-0.4_p20221019-r1.ebuild
new file mode 100644
index 000000000000..13c9b6095b86
--- /dev/null
+++ b/dev-build/boost-m4/boost-m4-0.4_p20221019-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BOOST_COMMIT="0c955e2c32804d6140676052a9e684ca84bf086d"
+
+DESCRIPTION="Another set of autoconf macros for compiling against boost"
+HOMEPAGE="https://github.com/tsuna/boost.m4"
+SRC_URI="https://github.com/tsuna/boost.m4/archive/${BOOST_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/${PN/-/.}-${BOOST_COMMIT}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+
+PATCHES=( "${FILESDIR}/${P}-boost-1.70-system-header-only.patch" )
+
+# boost.m4 has a buildsystem, but the distributer didn't use make dist
+# so we'd have to eautoreconf to use it. Also, its ./configure script
+# DEPENDs on boost. For installing one file, bootstrapping the
+# buildsystem isn't worth it.
+src_configure() { :; }
+
+src_compile() { :; }
+
+src_install() {
+ insinto /usr/share/aclocal
+ doins build-aux/boost.m4
+
+ dodoc AUTHORS NEWS README THANKS
+}
diff --git a/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild b/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild
new file mode 100644
index 000000000000..ffd4d23d14fa
--- /dev/null
+++ b/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+BOOST_COMMIT="c88f9d1d27707d85ba39fbaeedddddd505e76e6c"
+
+DESCRIPTION="Another set of autoconf macros for compiling against boost"
+HOMEPAGE="https://github.com/tsuna/boost.m4"
+SRC_URI="https://github.com/tsuna/boost.m4/archive/${BOOST_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/${PN/-/.}-${BOOST_COMMIT}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+
+# boost.m4 has a buildsystem, but the distributer didn't use make dist
+# so we'd have to eautoreconf to use it. Also, its ./configure script
+# DEPENDs on boost. For installing one file, bootstrapping the
+# buildsystem isn't worth it.
+src_configure() { :; }
+
+src_compile() { :; }
+
+src_install() {
+ insinto /usr/share/aclocal
+ doins build-aux/boost.m4
+
+ dodoc AUTHORS NEWS README THANKS
+}
diff --git a/dev-build/boost-m4/files/boost-m4-0.4_p20221019-boost-1.70-system-header-only.patch b/dev-build/boost-m4/files/boost-m4-0.4_p20221019-boost-1.70-system-header-only.patch
new file mode 100644
index 000000000000..54fb7fc61075
--- /dev/null
+++ b/dev-build/boost-m4/files/boost-m4-0.4_p20221019-boost-1.70-system-header-only.patch
@@ -0,0 +1,26 @@
+Combination of:
+https://github.com/tsuna/boost.m4/commit/8d9ceb2dc54587aa1cace4bc0932a804b0538d36
+https://github.com/tsuna/boost.m4/commit/c88f9d1d27707d85ba39fbaeedddddd505e76e6c
+
+diff -u a/build-aux/boost.m4 b/build-aux/boost.m4
+--- a/build-aux/boost.m4
++++ b/build-aux/boost.m4
+@@ -1332,11 +1332,16 @@
+ # --------------------------------
+ # Look for Boost.System. For the documentation of PREFERRED-RT-OPT, see the
+ # documentation of BOOST_FIND_LIB above. This library was introduced in Boost
+-# 1.35.0.
++# 1.35.0 and is header only since 1.70.
+ BOOST_DEFUN([System],
+-[BOOST_FIND_LIB([system], [$1],
++[
++if test $boost_major_version -ge 170; then
++ BOOST_FIND_HEADER([boost/system/error_code.hpp])
++else
++ BOOST_FIND_LIB([system], [$1],
+ [boost/system/error_code.hpp],
+ [boost::system::error_code e; e.clear();], [], [], [$2])
++fi
+ ])# BOOST_SYSTEM
+
+
diff --git a/dev-build/boost-m4/metadata.xml b/dev-build/boost-m4/metadata.xml
new file mode 100644
index 000000000000..573b19f74105
--- /dev/null
+++ b/dev-build/boost-m4/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!--maintainer-needed-->
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="github">tsuna/boost.m4</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/cargo-make/Manifest b/dev-build/cargo-make/Manifest
new file mode 100644
index 000000000000..02cc2567a3a4
--- /dev/null
+++ b/dev-build/cargo-make/Manifest
@@ -0,0 +1,238 @@
+DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST arbitrary-1.4.1.crate 36816 BLAKE2B 86adbf1a2522e972bf4a7fc26e4d88ec45298dc2ce716a1fe30cd49bebf4d5a65af1f097f83be6ee8c554d4b392657efd32ffa1cb35704585a9816b6e234c067 SHA512 a3507aa0ab684464c3559376beabc0992bbb589ddc85d2426b26238d7c5d1d856df5d9226603fe7ad2b17ac6570d62e86ba4f5a2e65f3cbc9ad52bbe294f8123
+DIST attohttpc-0.28.2.crate 63013 BLAKE2B a7f38fc320bb40da15f7f85ac381347a0ca98fcc04a1c2c279e5449687bd44d41dd6d80611c42a0eaa891f2a063b7185a574f6eb2835e339006f4aedce0f4503 SHA512 570ad6af2c661ddbaf3a2b8f4b0c8a5b1d70762c46a1e9de8ba26f975dc32d5d2eca66b98f628c2dca880a0688f3751e19f46b80fc64d97c6b42fb4dc040ca14
+DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST base64-0.22.1.crate 81597 BLAKE2B 6f216a560bd36e6e6b74e908344b457594cc768d9763070e269b56a14b150cbfc4b7f599d4c2a0a5f783638170ee132f0796fefb14fcac7fd73c58db0791007a SHA512 91cf2e4e7fc8815f9b8a86a7fa722a20eee3dc1dd57111b29e420de87ce7836bcdb1db01d3cafb9a977710ef63e7cc41b7772762323e68e0e832156858aace20
+DIST bitflags-2.8.0.crate 47482 BLAKE2B cfa5dac5bb9fda57a5887773399d2507e83ed30fb0c5a332c48905f912c9b8d3c5e6493a9626a73459cb67d63973efff719ab4153a14e774ff4a632c96872ca2 SHA512 f1bc02c858432b0e1fc3b10f239c5886e51d620d55a75521bdf35c8e8f6b6cf8db97e90e08eb2e96715a2c5b28858af305eb266f1ce0c90f9d3945d6d9bdda8b
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST bstr-1.11.3.crate 351536 BLAKE2B 72a4fcc236942d121f76f42135c332fda2b1ad778d993ee69855c4eb6f909c91491fe6aa68daa0e2d602aea1bce61b1fcf03d03787f84ebb4d63b2bd3f4295fd SHA512 f1082ac8f121c6f9eab4b41c5f60aafe4623696c9f800f9d59f6726efc74f86071910f7749fbcdc8f1c20c83416d58f3ff507978775f602e18ae3d1bb027944d
+DIST bumpalo-3.16.0.crate 85677 BLAKE2B 08da17b757931d2910e0299df53eb62731aa8c4ebd8915859b81d1982b331e7455dfac977c754e500a35ee07ba8eff00a61d2f62be99744e2ddbba06c1268f49 SHA512 a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST bytes-1.9.0.crate 67320 BLAKE2B d5a89fc1dced217bd78c6c50d0494308b69b0841506c4663b6df3755b91a9eedbd242ce1322a71b8a96847db7920b2b15744fb060aa2d69f5c8d9bcbf2745b9a SHA512 e6c0681c535db6035c1fb1c0481725bb8ab341b6324acde07ac4b60cc4f490ec6ff01478bc00fae00ade2bc5420f9d14cc44438e5d156bcce91cc0f06118296b
+DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555
+DIST bzip2-sys-0.1.11+1.0.8.crate 633444 BLAKE2B 01578c512443134fc786669bea4f2ec4b9c457b9936c907315299d8b67ed78045d458c83ccc119f0fad511529fb5af5feff5fa2d983fdae832d2fcc1b343e102 SHA512 d0a86b9f03acb1e4e309d5739dc2e88cab582757d467a433afe0017017f0e5d2c0282529e3a117160958ed170d8d695ecae739805888305df0e35e4dc440582b
+DIST camino-1.1.9.crate 37552 BLAKE2B 28b21517730db408598f83e269ee8aa4dc5388c4b491779ebb6e76c478d407f929bda6906d88d429828d7f01be1762c72ecbb6d8c7aa4a1d1906109a17b45df1 SHA512 27a6a3cf72c46f15a6017aea44a048f2a8eb577aa9d2a088141b1cb7479106152ef0bc00a6cea9332c4df4d0c54aa6bd3dc21159f15640e347407c15a1bbf7ea
+DIST cargo-make-0.37.24.tar.gz 2024611 BLAKE2B 7c2f9d2cb991015f6083da576e2860afdfe86ba8c893d673abe026c740322f252d7cec838cfc98bb13dae214cc69d73c9028e1103f83345aed40a1c138be5ed4 SHA512 2d7c169d65e3049cfe9212dbb578377bcda581d52a2e5543c1c178d6531f9f08c4d0336d2feb6e3889cb7b83891e4dd592c6e5147ef7c09ca3577440231408ba
+DIST cargo-platform-0.1.9.crate 12010 BLAKE2B e178d5a444c6536f0c95f497bdfbb13cadd0d58d55bfae76008bcadc2a042044f432a232f657cb1fdc91b7af4d197cc44bc0cd7a41c9cca6c5da085409ab49d1 SHA512 05cf4c18ed6f3a1193a4567a48f1f3c832ae85faa7487a4e087e5dd8499eabd36c862d8e58af5443933b87aa8becc258011ebbecb2247f8a75067c8ac018676a
+DIST cargo_metadata-0.19.1.crate 26131 BLAKE2B ab8114504cfd55a237893556f9d004a5dfa94fce89e5229dc7906bc76910df84cde89ce461519e49dcba9ef0dbe4c3b7975510544a58164d6478ff0d1d7fb9ba SHA512 5b4f69690a5852127ef505bb87d29cb16e6d6dd7c7b4fa6bc10f78bbbadb4e4bcb2e92ecfc46fbae4d905f83c55418be4d43202273aae44b384295870b509190
+DIST cc-1.2.10.crate 101251 BLAKE2B 12f708028bca112a91c5d00312c93b87b96f4d7f718c1c271cbf12b263148369e09d406cb8c5f250d69fb08b62eb87e7c2fff33f43bdb772fdebccf2927add0d SHA512 bbd8755d390ca8fd209fb22a6b998250bc4765bc8339281498f0170afac7b1112ac5843bc4c604785e734030e2681f58bc5233ebce85e1d1392e3bfc1e654e5f
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c
+DIST chrono-0.4.39.crate 222248 BLAKE2B eeff1694a98e8775524c261c5c46ebf09bf1ffc6222a945576960e8153af99e4549d8c988bd086507fa430f9cb15a3159be85300247ab3c6f5e77ab515f0988b SHA512 5b258f76bea58ab9baa0fe8fb32c41928b8b655c76bb2fbaae9300ef8380cbb881296cee6b9e9886dce62b0759c73e84f6409e374a86cf0c80e3383512f98571
+DIST ci_info-0.14.14.crate 1138778 BLAKE2B 336a1a35e1f3df51cb64e8e406ebea30b25faf988cf6dbdded8bd500f8aa1cae954035cfdcbaeafdbaff457bd22f8b418e1dd1af4f2f23a8ba2a5a15c3d1b116 SHA512 3043c7df2838ed1e536eeae9839bc60ce38cf91a39c03d5b620097743cb491247c69c1bbd77648361fa127eecb512fa3e5bec3b01b0b4921f8c1eb24235094dc
+DIST cliparser-0.1.2.crate 1191086 BLAKE2B b2103c8672879b231328238ff2cff13e6af09608dfd83fa0b5cb2771684fce2d1f1daa711e6028cf78bbfd1d0e83ce21f786d529822c0ed37260c27cf8cfe2ce SHA512 3ddc83775c5570e7b61eacfa447121d5248bf3ae984fc234080779ed4cacd9582655bde68eb7f0ba0e62fb840e5d81b442a5d0f31971c9f8d77edd400e9331d5
+DIST colored-2.2.0.crate 35062 BLAKE2B 60c397914f6a1ed2c8e04a7e1cd96f90fda10e8fe6233dbe31424c0ef46ec41fdee7779d2f5d6968662de23434b7cb7f717c5abdf29022e09ab59b9f8d92ee80 SHA512 4e3266c498a18a464b6640c0b735519f91b30fc1e001236badd4885a7fad80fe230e262fed4a8d07d54b4eb7dd24df4daebce84cfc0a4f29b6582153e11df5ea
+DIST colored-3.0.0.crate 34497 BLAKE2B 6477cfaf974399a2823a714b766800766245c8965abc99f142c4ab72effeb665cbe408e9f34e28ca54a0b1e82859b8712027ec0cf88b98d2c536f0878e7ef6ea SHA512 2e3a0b7625cebe491a884a4bd1d8c4b4355235cf6e1e940768f92968313e09233d2f9a13a623cd44542f7f2894d4a7d64759083e005f22967d0a4991e0491396
+DIST core-foundation-0.9.4.crate 27743 BLAKE2B 5b695e671cc833170bc6bad436b2d0d8d386ffb8181bfcf2e92a1d93cee67c3ba1768cf57064fb91b0897c6aec1be7db40b5bd256a052c1bdaf872ec19f6e15e SHA512 82d0878a1b9e3d56b3666fb5a78f92c6f7806d01665c242c06a640bd6b1fd36260211e92dc05e1a16d1430622bfdd650aabb0b5bd8e5592f74abdcf412448e33
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST cpufeatures-0.2.16.crate 13405 BLAKE2B 06d061cb2577057bd2afbc8cd6783488595701dbc46772533645d86aed71ba8b20905625b897840c90aaebb41360a286935824ca49bdebc0763a81df4bd64402 SHA512 97707ae1b533ecd3a6fe412a22fb70cf4ac278c2d7dba407fa7dbebd110d06f88a7b3aee3fb7cf4b0b5ca88f6fecf390c4d3e5ccbd4d18a75fc2f93a647e7074
+DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266
+DIST crossbeam-deque-0.8.6.crate 22471 BLAKE2B 02b854df171b0430ca8a40349674ff251698d0c322c317055da8678da6661730c945d86737fa4947c3bd824ffe402271ee2f77fd6a505d2d46b4a41454c510c8 SHA512 9368c0c224c4b84356f1d422d8869a5ab4bfb36b0ff69244a9e7a7304ed51f034001cd9b2bc35849df874d36ed34285c66574943573522ea32bbdc5a05df6989
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.21.crate 42691 BLAKE2B cd9015c41f532eb3c90101603f32d383f01e6880718b727d6d1fe46872ae276cda685e1b548cf77dd22bb1a05f0d4c4982332c2bde90e1743dbd7f51919022a7 SHA512 6f4aa7ca10c20da291c4714b56ceb1fab1c06b03b2f4e28e474e9aeb95ab6615a25462dc7819713652c3b5f6a06fa0f24ebc92c533fcf35dfcf2655857d975f8
+DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
+DIST ctrlc-3.4.5.crate 14592 BLAKE2B 189b026f4061b68848851dc694c71c6ecf87d6c6cdb4518a3aa215ac3d77739db43aa68e3c628e51dad99d7ad089ae6c66a6d03bd912ab9748a0793d09c2333b SHA512 3fca36deead46f3ca586f0a07ace804251d3c3e49a9a63e8c34546e2305d08158770304ebd0c9ad6ed499f811cbbee0b76ffee1858aae60852a61a19024db3e6
+DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43
+DIST derive_arbitrary-1.4.1.crate 11521 BLAKE2B 47ab73cc942314a65574d2ef8395dda33361fcd1e33ccdf37843a92b0a5de62540277e6791991ae54835ba4235a9fa504cc8f6d43cbfde20f18f14b70f84defd SHA512 0d499a368f9f97b0a1a52f17fd111109b071c25c2732c206c96485a7a753520ad706320e5a817e1a10e5f8cf154afc6afe0ce09f9187d23b4e2c2ed4961afeb8
+DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
+DIST dirs-next-2.0.0.crate 11689 BLAKE2B f5022bc51dd50bad4ad0fd05b159a4117aca47afbea66dc42c8306ca58f3a550165afbcf9f5f721ef5ad8d357eaff305c6f6e42789354a910d5f1d05d3b7b7c6 SHA512 6ccb732da8ccf7bf35952c22a3b0caa8238319feb0a6cd3b0957e6be12548a2ce507c69cb6d3cbd2adfb37e13e6521c6229da5999edb0e47a292a41c3ea1a766
+DIST dirs-sys-next-0.1.2.crate 10681 BLAKE2B 71431533dbfd6016cc309c14a842ac8d43577abe768e69bd2caaf7d19d743f3ca95b9b0be1747077282089c64485f3d4e24bec8e56d4d883f25e494d328fbf3a SHA512 b3c40a8e93d4f9f4a890718076e14779aedd67a79da61b466788268c1eaea19aa493f043a7e410f5023a23d5509e639a6fc6681fbee30e252a601091cfffa2d5
+DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
+DIST dissimilar-1.0.9.crate 27652 BLAKE2B 2a5d4be38f836dbfc4015c4173156ae1bf769ab3481a4e8ed2a9c2349588403512191d47af7e4210fff7d5c6da40a513a3034e0fbbdb8cdd4bcbaf329da203b6 SHA512 12d9b849b7ed14a4106123ab0a23c96a9f3fffc77eac3d780d0185eed9a6b259f64013460d22a34b01696f947cdee8f12f6a21a7734ef8fa52e9a84c9b60b36a
+DIST duckscript-0.10.0.crate 19827 BLAKE2B 6d2b93a742bbbbea0197d7b02d998d6177c2d8d129eb04718976f1198498c19bff4344afc08fdd425dd78d3f9d5d3e3feab65c6b131912de438c57ea80274320 SHA512 544897df034769da21e1f513f0cfe5304ee9f6850a37f5d97943c4329aad79859ef9d702c434f7c9bccf65afca5951c94b055803b3c9b0fd9f3285faf5dafde4
+DIST duckscriptsdk-0.11.1.crate 111366 BLAKE2B a87694f98251058c858091157017165ab1424f137377f8732ff149117ad949aa40f05619815302ef7f28e318f2e615cf6299e8adf231939206a2019866deb442 SHA512 2dce0e5494df42ab950672a180d8ded44af15cb5ae37b984a6456a4c8ca3992fce96f1160fffc7f4a0f323701f92965d14e52c5226fab6f4b2227d40fa0159fe
+DIST dunce-1.0.5.crate 8244 BLAKE2B 1499ae0bb3d34e8d42e97eaf551308efc95697366b804dc83c51171a939d45bad46fce9f82a39e17b6b92fc833aecc85eabd2104823c7db30396833388125728 SHA512 36d7d75217d629185a9a9187f7d2e2dc346a28be0ad1c21b1b6bcbe3991e9cd11797e53d745c0b3b5ae94cf1e4cf141cdb2322bab86d97cc258b4145e3b97a56
+DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322
+DIST encoding_rs-0.8.35.crate 1381050 BLAKE2B 2db6797e4f226b3836c18496ed77f3fb113fbc075864fd264f23c4fec8396eb3a01c439985ba0586a4464ac4043ddd3acac80e0ecf897cb59569e5065ce2137c SHA512 4b55b53553c5cb6fe05ae81d1c6f3b0bab73ecd3d426b15c58b9de9ea8dd61617bf0bb2e6d3ae2514c7cb6e73019b1a083173d1423b3ece2d190770c597114c4
+DIST envmnt-0.10.4.crate 1194963 BLAKE2B de1311a32bea0fbba21a071ff11efd3adb5b6fe0623967a4d35f805f6b2610c63e96baf8c0e6c6d393f533fee453a337779b5355dd0259257b6211be6254ed53 SHA512 09b3810c46361115695143856e0008263b993d26db7577468ef9f8e9345a2d75f6a32ff09ac00a89431e8f1ec980db40d58408b58e043d5bdf1d978b3cd0000e
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.10.crate 11824 BLAKE2B f9976b538868daba3cd2d47ff2fdcda16b4a436ca767f865f23d1139e7f232aba263dd4aa38d573442c762999c8a8beab8a4a8c10649d21b49090fa65ced1ec7 SHA512 fa4b9a368f254cd90c6f69f6883af4c579829a6da6f31481a1b527ac9602c8ffcb5e9518cdc32c39b5589c151a20e75a7300c8a907d178346185ecc6e8749f3f
+DIST evalexpr-11.3.1.crate 61854 BLAKE2B 7d5bcd610795fdb3242330e93e54e36fea5da2494d778f06cbc01dc3193cb10b4f5f2cdd628f07e38159bb2a28ce8d5f4a6b2b821530856d9a2317423121cbad SHA512 57e992c898372e0fd872e27e0c29de6256e80ad964ddabb6bcc9303ca1e4a2b093cc985eeb48177eab2a4631041bc78755f7c26073a1227f5a0439d8256f6de3
+DIST expect-test-1.5.1.crate 13672 BLAKE2B 69d2b9db16e0f658389b9aed25f212c864abb09f5df64e94dccf9831a68931ffc5b927398515d6cc395c76c53c9ed1e9d2713b1e73a8f0a60fc1a66efede37db SHA512 b5f3f643cb7467a2b78f5057c72469a951e3795816a816a065c51ecd1f54d2c8d557fdbb5dcb0e6d5c17d6e42e6fc4394c73eec2247358b8a47a138a19e9e147
+DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947
+DIST fern-0.7.1.crate 304533 BLAKE2B f525e0dbd7c36690d47fd48eb52651588719de72e185b4922e37ac3bb5fd6c59d03761c69bc3ce7c151728a0d930bf919e80295e743f2e79a52b7e6b9a238792 SHA512 550c47b49364b1e517de67655b9422356434b05be9bc52392d6dcb80a94f738ae84d5e3cf8efae9e3b91f2830fbaa2d19f7f4d37d34bfab1971d8b3fd4805691
+DIST fixedbitset-0.5.7.crate 26537 BLAKE2B 48b7e02d7fa3fb33f05fb2de50a829e2f25d19ac680d59c754faef754ca4678d1671fcdc66d06c39b51b4f937bca44a89b87da195e43a4a905a0d29fa95996f9 SHA512 320b1b47a9f93590f24d5c111c171c401f15a50dc29617c8715b6c9d0b3f26e17f966a87d8628661dfc62ff8dee98524f3b6f4f4391725b1b77db714eb6eef60
+DIST flate2-1.0.35.crate 109188 BLAKE2B 8bd6e51c3bcc06044e5b8d7ead950c3beab6c6337052fd48e86175f0fc98c8d12804274308ee515dc6156bbedb2277dfa2706cdcd7baaf2a789122473248486e SHA512 aa2c4f0ad46cfbc7d2bfbdffd226eaa37f5223a34d132d8fb2dfd04c20d15a96c4882cc377fd72afbc7d13e512f5e9934386b0390a0ab2b171d081335c58fad4
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
+DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST fs_extra-1.3.0.crate 31298 BLAKE2B 96dfb4e886767d3d3850d94cc789867c3ed461feb9da0ba90c600b2b41c3119067953ba795cea5e6c8c338adb6fe6426769a6e6894ea3e02eb1ab11794eb8d5f SHA512 090d2ace0517b86dd2f54c5491366cbb6e1677f64cf64f024f7dc6a3c42c4f8c54b215e954572e2df10ae7f0e956890ecf7ccbeebf66b645c7647409484c845d
+DIST fsio-0.4.0.crate 1139854 BLAKE2B 59136c9daf6f515427f8ac44f7f5b9a075ae764f12c755e31ba277470e6fed428770aef99cb06037d131a95c208dd26988f3961cef8d37a9a1a575f4d4b9b8d5 SHA512 a7bcac0b319fa446e9b02d8e0892cdd5fa898915674f1564546fe7e339ab9911d72841eb0d18f0201f80c0ae2f638b486bb08e965346e4c433112de8eb45036c
+DIST futures-core-0.3.31.crate 14318 BLAKE2B 613d16e4f18547e45ed0dd56a7b908306393e479c379ff64f358844eacb1f8d37008ffbbfe6b1a4ed184e501ee9214db149d9cca31651b7d353ab4a99c8f5ee1 SHA512 d2f4c2476c4f480f724a880ee16566fcdd545579d3cacd2f16745812eed9ac4a7a88d59d4a38b163ef466c6f6b612b9cb06308a09d52256506a8a90e358db935
+DIST futures-io-0.3.31.crate 9047 BLAKE2B 667e62b50be304b68b8437d93b734a0e2433d88a3b410010ed0b04eb2bbfbc9984454c3f0a591f720c9983582c6421d7f870f0733c31337c4c518112f52aea54 SHA512 16d21388f7ca083d2c618ec140cb2c0807ca621b8c338698c367d862b99133ec9edda828f051f3f666472c929e7bf7a5cb334fcf167109c7c392c5cc60b54fdf
+DIST futures-lite-2.6.0.crate 45157 BLAKE2B 987475a28fae8e04dac435867352f8f225e72041b6f73e97609d9c3179d89c35519d34e4dc7a08978337303c904f339549dd69c10f5eca0b0106deee5246a840 SHA512 2e896e15e7251d29f20fc39869432f3b7649fa567a59ca378bd76b67c62d5258651315972b6fcc292e99bc44e8c569a8b2cc8d3882af9ece3624437c0bf31f55
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST git_info-0.1.3.crate 1118729 BLAKE2B 62fb00bfa98be27b226c73b9fae651df1aaad96615acadab286cab8243cf3cdda8c2896952a2407e5e1680eabd55a5a052dcd0a77fc54667698dbda4ab9e1851 SHA512 68f196c217cf066b0a5ae4ac964a0b7936eefa1d20b3b111a609d9b2175c244a055d9d769433efa4633ae18e3ddfcef0b5d841b4ef2a5e5257ed187bc366352b
+DIST glob-0.3.2.crate 22359 BLAKE2B 564b72e2738cce5311aee12d8d6147631cb571f7b96d8d3823098d3dd449bcc23ffed5a6584f8979402bef95536b0e73fe9772f273295a0079782b9f7d88d19f SHA512 d15389441e337e3fab9c30102fe7b4b1b3e68d8cbb5d14162d2fd7e7d01a9812b2d6d6d2a24a60116418be41e2075e70becd6994c13b34365d512521e8debb02
+DIST globset-0.4.15.crate 25177 BLAKE2B 5556f4cd7c311b2ead3a83fb2c84280a48e493f024bfd7269c91cde6ab81315d2d7f051f7cee9d7d34e6c8563c2452f0ec04a9d5a8ba5273bce66f5ff8f9054b SHA512 b9281b8bf48d2e297be533aa31c701c0115978b4e580b684b78a385eb2ecb4125187605368a6858311d6cdf5caae7d733cf1406c79241b7d19e7193f5a111dad
+DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
+DIST hashbrown-0.15.2.crate 138478 BLAKE2B 453888ce68b10cd6e93d787986603fceb29b83fe2dc417e7e57316b9e0060d0bba51ec7fb71d46a038662c99f60deac8237a8f349297208d1d223bcc13f0d0ea SHA512 d6fc0613623f9313533dfcab1240e97f652f78f05baa21419f7edb2eff030c4a2c5f426d3eaae747923cffdd8aa9cc2648340e5fc229395b5eacc6fae087c8cd
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
+DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
+DIST home-0.5.11.crate 9926 BLAKE2B d9c0d3660aa7784f3a26f3930a5ee35dd50cd15b7e252d930240ff9bcb70fdb0169f78c02b5fd82318af8c398d7139be18d2e9675a1b85c7845c90266945da1f SHA512 cd107c4cee793b6db8b29157c3aa2629b5ef1b9fe129fd903fe414faadfa06a881a1b685f1c66fa5aa1deefd3013a210603c952bfa4bf02d5d1f90f75ba9ff18
+DIST http-1.2.0.crate 105932 BLAKE2B efc9fc4ccc4a622781ed895f77c1752baf34e82d249acf97687ac8d4260aeafb333040833d9f8df5916cb105cc8217c8f27ddd021636b9248ad551ebfe4d83a6 SHA512 2c8e7234ec3aa720c9dd762c0bb06367fbc39ea89446fc9d8d2e55052a4ac461559a20a8294c877879f3e94d5db06fe41e2cdbb9664ea7ab1bc8003abb038bb5
+DIST iana-time-zone-0.1.61.crate 27685 BLAKE2B 2091f0bdbfae3f63ff846e27136d9779a2d65f85cef899ea3ab0ff7c987329e6a584cf49c57de566f08e0277bd4981ac3db30ea0cec6a6757ed50d96e2c6583f SHA512 d16c67f435606334042c3a286350db46ff3409f142c0782509b136150b4069aafff0dc5c2ecfb7519dd8d105b9a2e6649df2a7bec33ee3966dc94034c9d5a1c4
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST icu_collections-1.5.0.crate 82762 BLAKE2B ab89336790ceafe62dd72f0aaef16a6eb47fa5e41424ed990e6c059ad431cdb3dcea943436aed0bf9c6eabd7aba12d255a2233fbbcf9cf5f666ef1dfd5b79a16 SHA512 127f1c91101ba69405b10a2590579606df766166fcf1fe6aa9a74c4900296425cba5c47a391a53a01b02026af5581f068fce4a7a400179809f7ed9922b94c0db
+DIST icu_locid-1.5.0.crate 55131 BLAKE2B cde2b988f0af200b8e7851a66b8ae08881670ad6ff79c5caf5135a04c200e5ecd0acf27d8856fb0fce46d502527d506095f469c28f325b9b9d21d2a3657149be SHA512 4b85f0e7cc73166a542b2e502b3ffae1f30d2a9609ab83acf98e90b0edb37fa8ae4592f61ecf48a0ae0779fdd376abeff59e1d5cb97475012eda99ce2a97da57
+DIST icu_locid_transform-1.5.0.crate 29094 BLAKE2B c7bb5c5ed273a6a97279d4599f612dccdd796f3ae717411aa5b21949721989986d8b766041b9c7e49a91cdd42a48fc965effb8d7fb6d33554926d203a6535953 SHA512 1779078e2ef9859bee2bfd5414ad7e4b0f0a40e6813f4ccf8de2bbe8c764fac7f99ef001cce22332a8b3840af22e9c7fb7cc0341cf8ba61303794ebe87071e63
+DIST icu_locid_transform_data-1.5.0.crate 44727 BLAKE2B 7fc5408510886bd7b7d796850a542f2c1d759d2c67492b695245d46b34930e3918513cae2699963f603d2bd02484960b05afd58cefb6c3152ec201880366d44a SHA512 1c00fb962eb4b8c759b1120313bb890f4388d579890d7450b798d6266a7d6adcbbebc8a8dad2f267668ca6f1c059d0bd2209eafbe2a72f4558c85258eba57405
+DIST icu_normalizer-1.5.0.crate 53113 BLAKE2B ccd58f24469da1f237ed9a349f0b3bdbb49b8f5b1995d6254c6e3eab53a71208ff4a0b09bdc68082cdbd288df66499efb19555f41d12a19205d724af22fb504c SHA512 22612b86a24e3ea222469392763ae9d40dcbb37191dd8b9fa1c64332463a4299a53275a1cd3deb7e0f057d137f4312d990762f9925d0ceafbc8839d67c425a13
+DIST icu_normalizer_data-1.5.0.crate 50561 BLAKE2B c7b8c5751c6d6df03b23d63855335ef67b34a0b13b15f1f8a8986943b5131874f5205155889e12253692b39918256fe2cfed70dfe2087011683ab9165a5fd786 SHA512 222fbb819791fb4ec7889e45ed3032ac8d4753e2e9cdce9d0b3f79128baca5ce64157a8a58ecdf39cfddb6c2395001e3cc8828ed51803e85cae133c247cb338f
+DIST icu_properties-1.5.1.crate 64479 BLAKE2B be7d3a1663664095f4af654723ebc74f385a6423fbd3acad325ba0d6188dce9d9321eb323c1b1d8e6d75fc9aaef3d873b609d7049525d2402456c6331bcbf486 SHA512 7e347c0a02a41a3add950290bee90a339091a713546d4369c2995022e64f127f54204b0d46cbb88f396b3bccbd4cf12720a93d8551b73926f78fd5ec01829cac
+DIST icu_properties_data-1.5.0.crate 227993 BLAKE2B 3b3141507077dfdeb4f89316e63e1a651fc5570cda58c6c2d566130858ff67f900c3b151113e6303962fedf1d6b6d617601b21a08c4c0c98e6bf135aace6f299 SHA512 c651d0a50c229acafa648ce234a73bc1d0a85a8bf2369fdadaa62badc741c35e8a7d5392fb1bdb7b720fe2e0f883d1309c78de4ba913691969e5367a4e8bafac
+DIST icu_provider-1.5.0.crate 52722 BLAKE2B b1e53ac677e2db5870df0a91de405ebbc635c3f7931960f3bd744b57350c7536116f3861d4177faed2145b79c1c957d79815fadc2dc85faa656a1f0bb338a16d SHA512 6c11d89c7d2b788a44757f02b0e298b558ebe174fe917664401d91109cdc7bd1aba5526b3cdcee1f066018de1b775bc9dfc294bdfb40476c53d552bd6f29d6a1
+DIST icu_provider_macros-1.5.0.crate 6436 BLAKE2B 7405924dca41db72ce422437434a4affece69f888e5c18d2a92f761a8d83b180f40c8de9a34ec15d0e107b63b2fe0502cebd0a0ae6f98d9d6ee37d197e754703 SHA512 a0dd58d731556a010428fe4aebbc9dbcd626b46d380cf28ba5236ec8824045a20f6f2ec986e0c1e791bc8bc2b692a10306f448279f079b4c37237e4a3c3cef63
+DIST idna-1.0.3.crate 142515 BLAKE2B 6835a64772e5d301c2456a94f8f5f40ebe6828aaeb1d48e3fbe015917dc3ef95ac7cfd0e1f1763e23950482f4b46ef7987928c8dfddebab63947d5a29fb490ac SHA512 e75ab18297878df11d82bf3623b005a3dbf7a6fa38c8f78830c219adc7d6f4ac07dce24a5f1186de69035ec316421319e487396cfacb053674137342d72a4126
+DIST idna_adapter-1.2.0.crate 8206 BLAKE2B 5e8d7dbfea699584542cde53039df9d8c3dd408efa2534f11fce7086f679872c45d9905d6b2cfe523148eda3bb0cd4820a7b14317f91725f3d9cdb475aafbd57 SHA512 1d8b54c19878645749a1bae768dacf353b07d266f2cb3bfa1071a7afb56ca68f534dc1d54cae277b777bc97e5986f297cbe2051a82e14f553ea73cd723d9da7e
+DIST ignore-0.4.23.crate 55901 BLAKE2B 8c5138e723cbccffe84aa215b2e73daa18d8b2d39136a901ba1514def3a67437f79d932e4762578dd1b28dd8360a397aaba29ab8bb67a93a587a1c71cf5d1aa1 SHA512 ae354b00994ae8570751bc5c09167edd0e2891709d4c4878cf75b24619421d23a1b83e28886d54ed9d31aa427f49153e9a5fc42b5de7262abda20c1c0061b299
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+DIST indexmap-2.7.0.crate 85335 BLAKE2B c7430ef510738ac5fc4658f3e4d927ca5cde780774a07848791ea87503be09fb4677c52803f6cdaaed73eee600f47e0595ac3db74a498947d0e180cbd10fb7aa SHA512 efac370b9f365a49489aa2c5406eb503044a4df7d6ceb772e0191b02244b6c2c1bf6c43ad4c8924160c1a2bd76d46c630b500a1c4252fc52366295d1cb04b48d
+DIST itertools-0.14.0.crate 152715 BLAKE2B 3c075b735a6ae4b66980b1f7ca0ccf4237286b140268ea179e4ac01b1349105da227f03ea9ea721d3e762c3cf8b736cc48b6902148eae73addd864b9c79aa219 SHA512 bb168e21281ef3e43f9c93a079fc1938d79b6db2366fe17e26a90f7ce6fa55df73e54a06334cdb2a7b208b0a64473b5af9de76827a9ecb49378a5f9073d2e645
+DIST itoa-1.0.14.crate 11210 BLAKE2B b2d33dc384757963eab3ae7d80bb672d828a549967986e3af8c70fe71a0ad46c4a278da2db4dfccef99e804e6cd4934067e97c0697a33ac3302cafbc46eeb416 SHA512 ea2d38df373652ddacccd11e610dfdad4e3ae7f0d476514e6ac58092733c817bd834e8cd88c3bc4178dd5a646ba628ae626195e0aa407e8534ae3c2a7b049987
+DIST java-properties-2.0.0.crate 11982 BLAKE2B 03ff7845f3e5b380c88768dfa5f529ee022a13f144fd3357fe7421295a2bc8d783e3fd2b3249883a6ac65c0b44d6ab54d4430e28f9ace7d8086115d628f747ef SHA512 524b5952c66fd53bf17b11127d652988f74c504c08f524f3304b47aaf10cb1a909e1f20debd7f8f6b1cadcb2afd321d5ff94bd13c5e5624bea45bb9a077b0f1e
+DIST js-sys-0.3.77.crate 55538 BLAKE2B 8a4c04a8e93bf5dab63784a24320a314cc5cb629df788e116c452857b8c049c6bf357f3bf8f35086eaa81bc2d7f0954001addfd0577d845844871ee138e81bc6 SHA512 d9370ed6ea892bd51ea181630ca661c348f82d575381aa4c8b529113dfcab6687f4d19bceecad7e1b28ebaca74d405862150a5b5ee2d5d55efdaf98eed1ab255
+DIST lazy-regex-3.4.1.crate 7808 BLAKE2B deb502308c6cf9d23749e5e65abbd5023ec79e4c02588e60a04a86d2b83c09ee9f8efb2dbdb704a7b93aec4dcb66e44b3ba7469717fda42a46ef0330be348455 SHA512 97e18958575e6a44608a0ca60d378e7cfe35d929e0e4303e8631033650ebcbd0c4be8b839749b7d8651876bfddc7733197c3352b01dffc2d0734aefa9af199ee
+DIST lazy-regex-proc_macros-3.4.1.crate 6022 BLAKE2B 69cd298bee5ba3a08b1d6870e043e30618280ce329277a5642ba66ab080f2da598bec9242bb73b19575e1e5f4508a80d0d136c40ef1453055756a1b2c989bac9 SHA512 47bfcbc5beabadaf0e6c5063a4f3b094832eb30471c26916e70403c54e2f7f567eb6fa3c181c7b76a85159a5df2990c547461768f635dab4c8a4da9917915e1d
+DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST lenient_semver-0.4.2.crate 331925 BLAKE2B 09b70b9e989ac14c6d24a4623eb01378d8e481017b1165137a6861f580ea030da37a842d4b081b2069f00ff3d4363d87c7142a896cbfee581fca4f730d0467bf SHA512 e00d8cb3f2badc3847a41381c0e8855488c340ce2dd40af51a873d9c57147dc318f6b47fbccaa59a7c3921c4fe0a0fa19626f030bf96dd4fe46721326cfe9292
+DIST lenient_semver_parser-0.4.2.crate 15745 BLAKE2B 565fd4130c37dc6e22d022d235cbb9aa827bbb9283fa0244d6ca873488ad4fcd711dda5d9fb07fc281fd55de3ecaa31513cf7b67133a1e1f0e787a8ef3c1ce94 SHA512 c4193ab5398bc2fbe9022c5fe4146d9b5860b65645dd5ed4220a311f06b83a23df83d0c1130e3390188fcb14635750391bce0938498e80b54140059bd8e04746
+DIST lenient_semver_version_builder-0.4.2.crate 4183 BLAKE2B 466b5ee57af51a23267fbde5584a6712a0eb6514088eb098e8a62c5bfafa6d094e42bc0c1cb8da426834c8bb93c7fed54d14ac2ee9ff73f0c0f28dd7d7ed71e5 SHA512 d3bec955d9f9ab50871f489faf33fc3d0c719c7bf109209f0558d443e1d0511947e6223ad85ee5842f3b2fbb3a5a0dbeda2db088ab5ef2b56519777d881e8bb6
+DIST libc-0.2.169.crate 757901 BLAKE2B 1012cf93d8975aa20fc3f2332e253426ff66be6aed63ace5292cc8568ee419b0f1a4b5b39ddbb78d9c2dfd8d72eb0d068c98faa229ab55556da5e674429f0e97 SHA512 c4566330a7967efc211edf31a23647d1a33aa51fc25aa4e9337716748c8fd4be0ae63679220ff2cf6e892f37d03bc5264c55e8f082eb82574a6ec1fa8e5e45ce
+DIST libredox-0.1.3.crate 6068 BLAKE2B cf09f261d3a945d290ecaaa724903e0042d66eca46dde8a40c261ccb1e82c0d6b9926898eadafc6313fdb9f19cde56377b8a9179935482559c4b9707e327511a SHA512 c62142fdca92388664eef83fc89b8607e2df318cbadff6edf9e3d927837853d5cfeb54445299a82054a0ca81853b0a33536966ab26f1f2e0fa43b39aaaf67c49
+DIST linux-raw-sys-0.4.15.crate 2150898 BLAKE2B d1936eb74377d9bfddccef3830b56eb716c38ea3cb7e13b73325dfd00f9fc0df74bae49e4214dd7f27c257403b8b12cd1ef332d53336279d13f7e9497caf4135 SHA512 b5c39181fb6b901abddd8b2e7b449142e2e5691cddadb8e6b74ddc3b53076b1d410522cfa45af68dd18befd24ff12313c2494cf2cb0cf142e2228bfe42014309
+DIST litemap-0.7.4.crate 28257 BLAKE2B 52989ad353a782e9592357530dca3504e3ef5475bd2f1b2c795b60825d971ee6d3e6da51fbb6bbc26cb3c3303f6a751a3e15d1caa78c0cb888288a965666279c SHA512 5009c486a87b2f52237e15e2e772365424e4780c146776656d8e1551e52bc8e06e5c1cee8db1c59ef20d0463962fc07ba5221a46020a82df17a2f623a175f58f
+DIST lockfree-object-pool-0.1.6.crate 12309 BLAKE2B 47c4b3ade2102e8c5154404d6eb8bab943f0173bab01764192a2ba76e4dc454a7763a7e2c6a3df6a72f2d0971c419bf69af4f81a50636c75cac2dd4c692a7962 SHA512 d4a51c7e92184ded686ebeb06467e26905b12dfda6b4da28f230e73901d7406d611798d823c0e1fb5e2c9efec5ab3eabfcd8aadbfe9e319046b3cd0d31008e90
+DIST log-0.4.25.crate 44876 BLAKE2B ab9433934d16edca42b38f559c3c87f949c4540fc422e6d65c75aedd5055c7a4935ac0f735e7ef5c901a7443e70d60be77079a104dc61a3955b0c900162b3967 SHA512 b420404c82aeb04219e9f63505d60b8853cad44d1de0bec0750715baae21afae806bd4f741bb8964dd39bb5d1e0f5be41bc38d76773bdfd5e920d30533146231
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST miniz_oxide-0.8.3.crate 61827 BLAKE2B ae8626de8711a8b7c2bce52d2e226a3e973ba6919ed33904883ae6287f848fcf40642afdb9ad71bba19db181fe9ea354c85cd81c1dad889588d5df8fcc99b9f2 SHA512 b79cd67a477851b18ed87c887bfd9f40f97059eb3fedbdc3a52eac66b5fcea42cae833eea39fd62becdb057b337f91d27f2087a407d02770feeaea934c0b1e1c
+DIST native-tls-0.2.12.crate 29517 BLAKE2B 76f4bb2aa8fefc306a04ff50a62d6617f71c3c34aa83ed35f11714ef2306fd82f76c7e26ab7ce50f8eabed40602ba02589dde2d98b55ea6113b45cc539c84bb6 SHA512 15fbc9d02134d3d55334d2f02fe4f64be50db991d75720b38d802088f06cf5f844cba6b25dfd7beb92f2cd367ba477ec2098e3c7336c4e5a5a7fd39c753fc723
+DIST nix-0.29.0.crate 318248 BLAKE2B 3a13a88375a359cf77b28d7f77f47f178bd31ef74b7627b6701bc6fc601024706be4e9ac1a076c7cba26b64d3bac4de17aab45fe3c045aa7a36e2d9232e872ca SHA512 86c05084aa0e6238f8d48df0f5ce6e6d7661b589f4f3fbdad43387c59c0d6afafea4badf25d31db1611615de19a0b9ef18ce614846b79a47cad4e2c9367dbe7f
+DIST nu-ansi-term-0.50.1.crate 28536 BLAKE2B fc259654aca2119c1d913e101b0fe7a561b44ba4a6145d309bec23d82ba5e4db916852acafecb727efc92b5dea1641304b26c383ac07a8796e296bb179eaa669 SHA512 c29735a5e1562776251dbd7337a3e4b68eeb299e86c534feab6478512ca5e167b42ebd32c6c461b71187cd375b8a2f587feb962f1501a656543f1429731a95a2
+DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d
+DIST once_cell-1.20.2.crate 33394 BLAKE2B 79dd394fcf1637adfef28b4159ec653c8b71d2bda0e0e36a940c04e3d87698f039dc30c97f26648ecf0d9742962f1f0a117568f7c705a8a3fc167085b0ca3e80 SHA512 bc6005bdab7a154c01e2203fb553a68695727475a9a882cf906d49c054ce886ad92cb491d380b6b9fe71a81b2fd690ce91c9a6cf8dfa8508470ac9acfc8a31c8
+DIST openssl-0.10.68.crate 276578 BLAKE2B da7c42f8a87150c76cde12316fe1c170593e76a4bd55176ca5ab7a43c57d5457246bfa91bf7bbf73ca47c87a066789226529fb7ad57c5e93c551baa67f6a9eba SHA512 2b0c7f5a888b0e398ebee9c0fffb6fdb8408c36f96eb99182ebb9e162106c012334554304ddaaa6689d3ae41cdf638ba08187a40088efb95a5e9f6aca032a22f
+DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c
+DIST openssl-probe-0.1.5.crate 7227 BLAKE2B d1fd6a9498b3ab7f25b228f19043067604bf20790530fd0ab6fe3d4d3bc27f13e6e94d1e7ef49314c3663477d8916b8790b90427f74976143b54b95350895165 SHA512 7e560314150709a34520472698060c4f29689d4e608dc4dde146140aa690350d3603279c693367deeb0f21ab34ef61956143a3447827a2b7a3d578b9ccd6552c
+DIST openssl-sys-0.9.104.crate 72287 BLAKE2B d9af8f2ae8a8dfd53b3bb68433a4dd2a4b30038858ac58aa98d7a23b2d23e0b7c7d8fc36c1733d0330bcb9f51284667b2c32fc5a5bd4d9e1a5df7b98d610a997 SHA512 e812d5323bc0ec7376f176a980dd9856dad6d36513e854d333b93ce8a14c20a9ca61be88db82ba2a8ae4e086df5c3fe6965ed10ac155eb7b502e0225c0124278
+DIST parking-2.2.1.crate 10685 BLAKE2B 3af8020bc27ea921d6023c14f20545f70a5a5a5a216d5f97458d76d3bfc8d9de937f3c92668d31a79de85ce08ed0236d440c64ca1e4fe0a7748f412b941c052b SHA512 2e49137b59000f0467aa9ee0648d53e06cd2b8319d6ea28bf04c621b873469739a34186840b02f08d770d109cca26e161b3de3e4341dd729701885307a6a8177
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST petgraph-0.7.1.crate 736025 BLAKE2B c5c54cbb0ee2a388c11ae29d20d76ab9b9cf4bef996532aa5ec0d08dcf548218915832748bfd759972edb72b917e88a1f935f8e24192befcfbf37c89df28dcff SHA512 3b93ef0b9b92618b7d5fda4fa35322815ff102065d6eb08dd71706473cbe679994014536ffe2b3aad72a82f1e04b78e5878aecf4893fa6bed0ee17f2ad2db873
+DIST pin-project-lite-0.2.16.crate 30504 BLAKE2B efd0b426fcc6ea8852bce499fac61f9755a11c6a2999cbec514f093ba7b3f94b1f2d437ee9abb243e31f3838ac1c74491a212851d7798eb249e209b35e015332 SHA512 971adfe54cfed304647fd944c1c915e78b37eaf0de3a582fb984a5e91f1b7d4db2cf0f53a9a64b64427062d4b41c0a36baddef782411a76ae3be0f8ca45f0718
+DIST pkg-config-0.3.31.crate 20880 BLAKE2B ab7676e810751f89639b60ae70bdebe1d57edc76319f83077c3680049a701a26e72e8cc485fe77cdc4346fe3571d32c59e7384c8c86fef17e00d7d81df5daf43 SHA512 ac3e8062ee8831a4e4fc717b5247dc7f113da7bf6d64ec95cbca7875959a2afa1497bf81d9dfc27206b5fb10027a2509d51dd9ca1c10139d7b4c78128864fdf4
+DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1
+DIST proc-macro2-1.0.93.crate 52388 BLAKE2B dae4493215b88f68cc485bc0ae80f0a48ebad68e0260839b1c367832d1ab778197bf040647b3fe36cfe9d5f7a496e05cd71b5914f531eb129c2d458d5f0be896 SHA512 1ae650e390e4f1b18d05f42d2ffcd025cabf72568a326cd85496c722600108b0aa0ab0161b39fcc931b8b302427f678650e703f4db57aa1a60f1751db881dc6c
+DIST quote-1.0.38.crate 31252 BLAKE2B a3836efbe5c21dec70c684002b47b8fc7cef643c82ee903b537a48bc0707a28106c4b33d98e60ff81e04c7520f7404b1dc4d49446e8d91dded517e476c36e1c2 SHA512 530c47c5e6372b508bf5b2b88a138408a7afa5ef52c47280ed20eccf39f8e97dfc1e0a18c1bd5472efcdc49a7a1e69566333a0a1b4c0b4f0e11e6a7a85bfe8af
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST redox_syscall-0.5.8.crate 26319 BLAKE2B bd69a69e2a0f3d84843a8f76199ef6b3991698ebac58b23f69c26d02f5f3e24e77a9d5e8259e9fbff3887f06d15ced94ff23b5a3272ab475918e6e3e753dcde6 SHA512 5f9632f1f89f4963c36ede4da9b955c3474b673c3414d81cdbb61f46c08eff67167f703a0b06b239beeb2d720f8fa592a5493c0f7e872728b5b95f561ff11348
+DIST redox_users-0.4.6.crate 15585 BLAKE2B 1d60d0b7781395ff271d79264910d24fb021cd8ef612714265abae25b26ac158d48f542f1e73701bf5b99bd67546a7b878e4a14e40cdbd478b35bcc8b4778f5f SHA512 719d63fec42bad3cbed39deb9242ce1daf3f391bccafa8121f63198120371f112d78b0da8d66458519e946581511004983f04b0a697071f22294ac7c831120c9
+DIST regex-1.11.1.crate 254170 BLAKE2B 5cf41012fc2ba8a006c0eb4a922cbbf1614bf300be361c9e2d98956a9a5e9b140e37bea09132fab7bfb633d4439158723624bcf45e8c619c4061b399253c1b82 SHA512 d065f6dc405771518260425f39a5eaaf8cab62e78c91ceed3b3994a9a121674d2484cadaaf816bdad89c87a40550d57b66a3d9de6618a7119a658301ce7e67d8
+DIST regex-automata-0.4.9.crate 618525 BLAKE2B ee3fc41c8c445be4c1aa3e5b19a3e61efd641b1a24e7a1ed55f837c1fba9c816272cb4645c13232b66b170bc7c413802928beb22e3891500141ad4ede65b60b0 SHA512 40bde0ec91cc27bc0c3fa237a37ecee5a1f023dbe006a999c5888f8f578ee2c4c64d9edfe1827546cea8e92ca3c10f8b4d494d81f3d0422b40d90bca9cf598d2
+DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8
+DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358
+DIST run_script-0.11.0.crate 14052 BLAKE2B f87adabf71c80ef6c1f3aced9829a1b5c0fd25331a9013eb2380d8d90846584d2d8c66bed622954a85478e563226a605cd66579c6f636a3ca61d4284a1231856 SHA512 f527d68b1bfb5c1b48776270ee5138c19b10f9ddeaff9968d1ce6aefa6827a26f1af7a7b17869ad7059f4f77e25863d6c9ff5454a24e8b525e3890fd08d1d9ab
+DIST rust_info-0.3.3.crate 1124323 BLAKE2B 6dcca1878981f7a428e8950a52d3641568b35f1af0db3e7ae67c20cd6f45b94450fc9b03f22720790c6ef21f66decd99e649fa8bcb3310e9aee6c99c2a55d2c4 SHA512 1bf95c4502384644d1dc66de20d9df43bc3b07c135eaaa366a9baccd5d4c574cb7c2f5190403011b71da7dc628a4ce81b22f56a3f54bb94aebb574bdc1a54edb
+DIST rustix-0.38.43.crate 379134 BLAKE2B 7e527b0a98485c029b89f2946f07226d772d9ddcce2f21d7fc7b74c2f2377f780d7fb0529f9af1be6a750a0d1a00393534708dff48f4bbd0678cc75ac1a9a6df SHA512 0122fc3ef3b1199105f63e3d06df0992b7fbf4a3f0bf54cf68ff8035ed96329c90c2ec30b365f02a7a9ae1f0018897489f5be77787b4048c2bfe49b30d7839df
+DIST rustls-0.23.21.crate 337106 BLAKE2B 3b7c100e1fd257c3b71b3bdedc6461c507ef5dc8183d460ff6e7ccc9ddfbdc3fae908830a98577d5fdf6b418fa980f31e248488304bb9dc198f94dfae4e31d07 SHA512 0cc7c924c0a72be5de3d49ad67f41e1d6b42bb77905a0923d39852d3a88a5e22f63ff38419c9c6e96a3fa760a9635343fd43960c7b6a9d9586d5aa7ac85eb4e7
+DIST rustls-pki-types-1.10.1.crate 58944 BLAKE2B 1bf83e046802a5eef5dc597bcbe045a7aef146c489ef5fca442bc20a9a80dcb2d15cc8e07ffff45890df069b99698bca2a9463d1c2925a8f1a5eaa673ebf621c SHA512 ec63005b54bb9676fb6ab3f7a399aa816881c34670577e8c8de7f86a46a834e71c2363049ef152475d784f12b6cc9301b4fa20e9d478e95a8f1b9ad75f6ba2d8
+DIST rustls-webpki-0.102.8.crate 204327 BLAKE2B 8db832f181b46bdecc419e1433dd5550bc181cbffa1961aa90b2533f92696ebe15d71d742225bf806e2dc3a4ebb110d48bf62b0677089df1eede6d5a072c0a28 SHA512 8cdd5d07bb8d6c3f0d1d6663babc3b7ccbe8c9b1463870a3dd095c67f46addf4097a715da796c70f1891ebc1d045ae7d7c3a352400e8bfd6687e6cddfd33b1ba
+DIST rustversion-1.0.19.crate 20616 BLAKE2B 025944fe053ef928f26affb890ef6a563b0e63cf6acc0ce7bd4ff104541f819bbda48ebb59fd8a677e44ca1ea21f4a18c209adf2004c9ad79604dfbeca43b5fb SHA512 45b959aea8155ee47c51aa1d87c6c344b5f4b20199a2646ca30bdabe1c2458b014be91fe0c48c29c2261ad9e5de6df7eef7ddead1682e584d4a906c17984baab
+DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
+DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
+DIST schannel-0.1.27.crate 42772 BLAKE2B 55b3cdf596d6d490fdbc10298eed7cb1b1bb8d6349ac8700ac2e7db66e1d75f0a5bea5b1b322bf30cc0f982262e96aa421998151a8ee1e620b5a09d25ad4263f SHA512 f469d03c2be014c248e7b6408f541584f250a9d58bc8dd8ff4d1e63f5720cadba1c0579b1e5d97b58844fadaeff10e9cfae6d5cd33c5de0fa4ebe699a8ead4a8
+DIST security-framework-2.11.1.crate 80188 BLAKE2B 844d36d2b2216cc7055687110d54ea783a7ed9bfe6375fd4dcbea267ec85531e666fe002648110315f42c3364ff5ff5aeba711cf8d1f5358ba65c8393e96f55c SHA512 02786d62fd9dded80bae3942896bc8fea2a90763427f582bf5d9f127ca5682097b59b5dbff2cde373198ba659316ab5906a68d3141ba00c7408b73ebe353fac1
+DIST security-framework-sys-2.14.0.crate 20537 BLAKE2B 50a04eda370788fb769600b0df2f984155d9ff67c753a8b138568c648fc23f90f076092c9a8f984aa3b6590c547171e53b968ecc4f80f6b7edb8cbbf23bce31c SHA512 a6b5a391450ad91118aff3b9d8420e1099fc9f96926043f5c4061a1fd615a00bb1f86f5a06b9a549f45b27a43b5f9ceb5a015d8589d7df258a77dd4b4dfdd7e4
+DIST semver-1.0.24.crate 31267 BLAKE2B 934f55d953ca52f6c11696889182e1e4c660a6eae3917b15b411d91a18b22c6a1178708caf95da93e70e6ea97c0762ed9154333d60bf0a08b156ca7b50c4077e SHA512 751bb04fb50abfbb92b2612e1d1097f612a1ceee1861852681d6ad67fe459d77a72898903b14f2f01d8185fbbc022c7471913785610c2a8e9d6530e48094869a
+DIST serde-1.0.217.crate 79019 BLAKE2B a0aacff795d34583365ddd469fa14c58a6cccf8afbb248210aaff3134c7ce6e34b3d03f437326d7c01b3e78f82a5d19c37ed9fa4372970d8b2793f2889288e1c SHA512 f97b3b54b9e99c9a027390405cc054c3072f49c92803a4ed5f5f69e76a179deda9d77993b645b3581437085912d881da88d0451b9e0da423c64033a23fdd8054
+DIST serde_derive-1.0.217.crate 57749 BLAKE2B 63b4930122d80d64492ba2718630513012202e42bbaa74510729ee66a0e72b8a1ad123784b479697ba562db43868f4bddfdf5e94bb3d744cd68a547471ba40aa SHA512 31020f4533d04b31ae125580a3c5093fad36438d324e2d9b063923aa8c125c654102ae7fbc3b3df892bb41db6b321962a23e0a37950e080055d715d15b18af76
+DIST serde_ignored-0.1.10.crate 11789 BLAKE2B 16900f4e424fe522a72158ffeaa1c279ea96d498317215d2da9ffb61963587914965c87c31023d67be67675721db693d9ecaab6f4b0e064ca438ea8087e8c2d2 SHA512 c8a0b55c975446e06ae6a6ed16690a9b0a942f9e43e84149a8d9727660283e7d42c9e0386af60c7186923edffaf1781013f52739bdd9ea0a5e22dbb006f5a413
+DIST serde_json-1.0.135.crate 154499 BLAKE2B deeb22932145715d6a443b36b9b984b6ace1e254199db9586c48dcfdd270a3208ef127584431e19a826947df705de78f07e58d9126ee1c5ccd2bc73d1e779bd8 SHA512 e19c583aa4a55f1c3b9a4e49b8b5c6b66e91c893db06e52f33e87608be1ff0aa27996065157f45dd4d2c59b752259ae747b2d353fe7cd1d466f56cd8a97fe71d
+DIST serde_spanned-0.6.8.crate 9330 BLAKE2B 630bb2cabd74e8d9736e315ac57c4d2c5c4f72264aab35ecc8e0040cb4186885722051a9f7b8a9006fd121fe58428cbb151e5cf541e7de30b6528c84e968f7ac SHA512 2343a2fda35ff57ed8ff7d8eeadd651821fce7e22f91c2d5797c6af7db9e009b7d637382f6f390c17911912865a5aea1ce87a86fbe36f4b6aeccb065a4c8942d
+DIST sha2-0.10.8.crate 26357 BLAKE2B 1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a SHA512 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785
+DIST shell2batch-0.4.5.crate 1109220 BLAKE2B 930d178d345d88ab302bb44acb948dd3a1fc5e7f97c1093567071856d8835a0b9745ec9b6220204fbae619cc1274f985e0a48ac94123f7e0195b8196ed2a35b3 SHA512 b2c51ce2f2bd050128f9148596d6e9aa718391d733cb424b996c0ae473b5a78f013090b9a53777d93c5439eac2bc9f1bf9ed1277583124ab39571cafe6ba9c8f
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST simd-adler32-0.3.7.crate 12086 BLAKE2B 8e0ae18603b344fd8a6573cc3fe1f8594ad542619a6e0d6e8f62e356a3a97409f4de3a215d561b8ed0e063ab431d81b63967a5a0b6561c45537a27ee84eaa362 SHA512 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee
+DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
+DIST strip-ansi-escapes-0.2.1.crate 8273 BLAKE2B 627315e64f016561a3a2cf14699ce92d9f62e82bc29078c98666384dffa0b84c4270b3fe3c77a62f9bd078ac4a1f7eb7f45df7451716fc4d8551a4a47e17ccb4 SHA512 275639e0a469844cc6e725ad34c4367e63ab69a1c6a43780852c0d39832ebf3526fc11f1a35138e032faa0aacdee447b4f76b20974b7c27a8980665f21a65bf9
+DIST strum_macros-0.26.4.crate 27531 BLAKE2B 7f7d57c957a1591054288fcae6590a5e669fba1b47d8f1a52371ce60fd84f91fdb430e48cc7edbb5fc72914be5ce12af29758b653680da3f4177339b31206750 SHA512 77a17ce47d5e8fe8a89cb6aa6c3ca5d5c2625aea0f93456f05a9994238cd3b08b3f7c6a45e9b3db21bca8fb5759f505f15cc111ac84acbbb34d59cdae8307b0b
+DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd
+DIST suppaftp-6.0.7.crate 62898 BLAKE2B 4c70f41063d46f871443b0134a7bcac0012ac80503f8b6cc3a4827a449e5483843994fe2866c1321f7a60f815df12ecb8393c38d9a303d59293f284671ee33f2 SHA512 549446b6adae3600d12ca641015571fd9514ab06435858d1ce93b32b4070d716431d48fcc0774cef6314b06b7a06754ce4da39a7f50a869d33b11af8b0ac49de
+DIST syn-2.0.96.crate 297497 BLAKE2B 68b62de28ad670572096a1d92ff8ed6fb55fee441f2d429edfeffcc48fa1d4f1cd39327540a4216d94a9763b84831956cb7e5c8ce89b81f1dc5767ea5734620d SHA512 ec2e352a5b0b2aa619774c01d7a7767674a44ffe91dea45d3379bf172d13039c3d37f264e98e26b20fe1d86db6d5190f220831c842f3316469d4ae73c2bfddec
+DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST tempfile-3.15.0.crate 35693 BLAKE2B 1b4d6b17ed4263ff89ef6967650b0c18671b2b80cbfe388cbfd77ca597473e91c1c7aebfc715d0fe4360c20d0f235df31147b1f029b471aea8c57d188f7c2be0 SHA512 82636d50a29e1ea8cc61e80dc1fa28ea4cfaeb6175e5bf0558d6cd6f8da823f50a808a555ec17fc8601acfd0f504e15688fe95f64e8792feeb216bf27678807d
+DIST thiserror-1.0.69.crate 22198 BLAKE2B fdd8ca8c8ca78702377d0bf7b253440519018275b105db980d63229d0d44aa5c39a703e14aa6fe453c779b3c864d8044009dfef893d2a5294950f067656d7a80 SHA512 ef50d2867d965da1dfb29d26faf6de273b5fadf78f95313f6caf44d68bfc610b9bd4b7544200b05bb0861231cfc84e961007f8db83c7905244c492037fd31899
+DIST thiserror-2.0.11.crate 28648 BLAKE2B 973126f9a9ca5f3118e830af11ddde4b26c905e13df89b2888b42facc4e48b3adea53b66405260f6291c3df7ddb85a93856841be3626b005040b3fd15502e2bd SHA512 ba0c3c2615bb9bfb07affa66ffeb2eeda43b16a974dc9a0482165a4a5a502a376e2fd6b569a228a08647de23d291e2c301dedf89d8caa79833b965a184dd5904
+DIST thiserror-impl-1.0.69.crate 18365 BLAKE2B 51663251ea6ec99c59aec35fe73c5f9760809d6b6b7eaa8ecbc8f6939acdc4d0ebc11f9034d9204dde7bd689d5e8303ae0be86e298745e9ef96825bf73453a08 SHA512 579eb796c8885feb01d27638862823acd96c79440655bb444c3445ac00121852603396ce7439aed617c0a0ac69f62102167fde5845411c906997574a46d6d9e3
+DIST thiserror-impl-2.0.11.crate 21067 BLAKE2B 33be76d7ab098eaeeaefb2ea5ef20a73221ac51b491d6339e1fff66e24118854f3640de43241e233c68be17804b90d22d75f1d60f7df274acef4647c871e0e17 SHA512 3fb76f16613064917d2b21f1bab06fd4dec9f40ad1f850aa78c5917854347cf9034a72d2091dc792ac06ce9ff9e29ed2bec3a4330b459abff379356e35c8f701
+DIST time-0.3.37.crate 123257 BLAKE2B 5968d85182e3a945c194c0e405a3c771698472f4b4028a01870e8dedcfc5c10a32e167715c7c12626b46b9ddd758c72e0188b55e45c0396cbaa42a65920ae28e SHA512 6d007507f79c45a7408675b3223bbf83a133bbaf96429ae6a02b5db09acccf884bb8323dc6f3dd05e7ce87a78366a55bafa6c6ba31b04198a31026df4ef425e2
+DIST time-core-0.1.2.crate 7191 BLAKE2B c477ad3410ff29f3bf4a38fc6ac4a043d49b6d2bdf5cf309ffcd2eec3bb6e4c4b62156ee7f069f0b37ea31c163bc75ccbf35abc1db2833cdd4912135e60ddfc9 SHA512 3861724c23cb806829a01186deb5217ae8252c20af622975264e6670cff528f42155039e4937756a9eb312a5580ffab07949437d5504d684a0e70755046cac52
+DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25
+DIST toml-0.8.19.crate 50974 BLAKE2B f68987353837b74421256fd9a76134bfbfe93887cfb25145b65b7e6b31ad2c3a3384829a06f50c771a2a0be0c5467c856cc631af69f586ea056c4f15af9e3b7c SHA512 16fdc58d14516e81badbe8c9a4506db75b559b377c9c4fecee79e76007b31a4abfc8c8868bf9159f79c6f7c0218f93bdcfb92b669b0917db7da42b51ec155751
+DIST toml_datetime-0.6.8.crate 12028 BLAKE2B 62113366771f22b437b2ed0d3bb2489ae9078cb589cfad2ad2e92c81ddbda48f689e5a573366eea4f54c2b3cbc6b37eaa8b442b6d935b631a992de4917268757 SHA512 d38b98db3b2d4eebd3001d88e2135b6fdbae63b200f7e900c6bb9c121dd3f170e557332bd26f237312c1cbef61666716b0cf550c2d730f86fa7cd9eb5f64a16f
+DIST toml_edit-0.22.22.crate 106387 BLAKE2B c658eef2dc8420266a6928d7ef46340372af2593e4db0d3a67ec88aaf8f601d37d1e9b5bac231a799be8a2ee68a7d98b5f651e9c109d23d8b19b60cf75debddb SHA512 0f98b371f7e27ae7f435a207c0915f942af145cc5dfabfe6d57f2b797efa3e706025401e501fccc6df70c001ce27051381556b8e7824447edd23ea25d047da4d
+DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
+DIST uname-0.1.1.crate 6852 BLAKE2B 9ffe386e9819ba6341c644320210456841090625327da79a15ebb9601a299e236de91abe0cc0491ce24756d03ba4498c1baaeff1c24202ddf470a0fc5c5829a5 SHA512 b38f9f3496b3555e2b321813a43fbb419e5b81889a3c777626e7428b22311b5e2d9fac009dfe2378566962cea09ee4b32e2364329b947717939de84aacc543e5
+DIST unicode-ident-1.0.14.crate 47547 BLAKE2B 30e0b6d7f3a967aaf5b9d91237008a60c3a8ded53bda901696e23cea3931dd71b01ddab866dca9e31e17c395d5f5a68f2a938655b693e894962568c2cff5ca15 SHA512 7c6dcd1724e8cfedc37546d1abd49088b633dad228097acc73d7b6cab255b223e830c541144e05a00388fd8ca8066f27c18792419cfa58ee9da4460a38d0bc0a
+DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+DIST url-2.5.4.crate 81097 BLAKE2B 74943c63809ca41a526a146bedae66f91f390fbd2ccbd90f9397d8074ee7ec26535f0f67170eb1d7232e139d8d795fde99be37f53f1bc32c6a6a4d46aad1369f SHA512 8f1d62bfdd45f52fa12ad657a521a3478d0ab54d187346a29dd59cc66a0f140ca96d850948e09f6316f08b44b3fc68526c58bd620fed5d065b7e8528df3cd46d
+DIST utf16_iter-1.0.5.crate 9736 BLAKE2B edcd9776113d4d2b267a9cbd58cab11c5497ff1a8252c4e695de619fc8e5eee1595343c857651774b3670d13392144e9d7df579f2e226842aa7e4e023a76fb65 SHA512 44dcbc5a7db149392fdaa31862be240f78fc5d7616f54be32cfc8f3adbee310e8681ae1bbe6edaad8a7fe6e7759dbac8ae4f69d0dbdbe5350c21dccdbbe975fa
+DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090
+DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
+DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
+DIST vte-0.14.1.crate 57382 BLAKE2B 8ab32f32ae111d8d03d6f3cb5e2e4405a74c8c176b6015fcd1595421bfeeb98c68d59994fa75f9833cd809fbe5bd38807645c665ae327f220559347c57ee4075 SHA512 a3080c98805c2940eab15b492b8ca7c3f4d842507d1b68503c6d9d88784b85c3d7c4dd207cae612d228b6c3f5dbfca0a187dd102728548e027d78aa84f41f95a
+DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasite-0.1.0.crate 2346 BLAKE2B a5a03d04135e3e32354d298386f132f9aa3b5c3806186f0c1eb75138038001d07f3bb5a3c6f8f938c9bba7c84b97b06b5304be3c9f86255d2d00f46a134ccd3e SHA512 06be2f7a2d289136740cc7b9ef9c4addbbf85210312759a7c99f977aa52285e2c3e4e3dade82d454a266ae42aaeeda7e767140b0bcdc1208ecc86aa18afc1384
+DIST wasm-bindgen-0.2.100.crate 48288 BLAKE2B 8fc4f71c7d6cef15f131a9bdbb50e3eaf9f3894a5b6c1d73876824efb731b46e8c3449947893103f23bc15cad228a1b8bcccd45ada20df53b3f3dde6e419c184 SHA512 2a8ea7ec669efe10f5701dc3b2bf496e33afa70c31dbc65fda5191c9c28ddde54fa38bb168a41b0319a4ff0bb5ccd897ce51ccd7e523e647b3544fb390f8a4e3
+DIST wasm-bindgen-backend-0.2.100.crate 32111 BLAKE2B 6bbbef709753e22230176121388a95fdb8f4dd32e0755dce5bf6c1127c54a236af292f319d14b5cd97bdb310fee65288e8f404921b83693e287164cf9d589a2e SHA512 a2ee30c1185644f989af6be34e93149a791c05125de24c0ff91c320f683f6f5d939fe42b8ca09d629096388a39256469f8b96a6e35722ccfdbe8d978c9a51770
+DIST wasm-bindgen-macro-0.2.100.crate 9663 BLAKE2B b8a3fc6b3571f8caf106a9e9f3d9cc48b86096d714c5d0208f03d44d47003b3b26441b5cd68bcd49a8c05758bc1b984e460fb62ab439ff2d68c72766ce20358f SHA512 a1942f838eff5fd54406b573d81fe18f262df48a19535245b1a46cb31db2a022746e861d72e5286c632969d15d416655460d3865309c4947cd3d7965dead5c42
+DIST wasm-bindgen-macro-support-0.2.100.crate 26243 BLAKE2B c18e35978b62dd2822ba8a4f6955cd5154b2a0d81b8e8032c2f8bda42c1c25f74a13f3e1c3a7bf47a823de2517a237e6a1aef18b189bf1f2b934123c58d1eb34 SHA512 0d03eaeda37c9c6ae06c0fa96e872b54780c4cf545b621c730dcc113dd59a8cb6333c5e3818f51365f71913b9669d8a870a06e70729722d03c07a49cff8a4fdf
+DIST wasm-bindgen-shared-0.2.100.crate 8570 BLAKE2B 886fa72cae891d4c2311e12e28f0a7bde9bcaca893603afa3428a402726b3b2bcdb6cb7dca6fdf983bd8fac5f049f0543537f2161318769b43c7eebfc906df27 SHA512 3fca8ddd1c6b2f66f70f6608c9b341822603f1c0dd71d47d27c6be8fe3f2c88598619946627720734b48cf999cafd0c63a08af5db28ea78a1538d2165a5fba61
+DIST web-sys-0.3.77.crate 638246 BLAKE2B 3f21ab03a18d82cffd96432e4f08bfae183b24f9a50dcfc51c927e9973dabfb8b6bb1f3ae044890832809ec91709242c1c37463931770d347fdf521587a72515 SHA512 cd149286105288f7c385a29eae7df2306d4066edfca4de1255efc7bd8a4e8eaafc313dab85091025c3b5d5e333fce8b7fcef1fb824fe4d799bcc9bb78b73c97a
+DIST webpki-roots-0.26.7.crate 249392 BLAKE2B 6e3eccc530fbe66d22cd122b28e743e1052eabfa686c212b0f5056aa18be2ac1ed3672973e1e2deacdd9c3c9761a19e862efee8e4bb66ee61481234635898a0a SHA512 7eb3e7972864518acdacd7b716a223956ffa4454a39b8d4fd44f8fc25f39d113f8583d340f738ccbe4cd8e497906247865bc87ca9b9d8cfc1f1b0984c41a9397
+DIST which-6.0.3.crate 16937 BLAKE2B c4916ce80625b8b869cbf43844d689c62545964cb60f9741851393540a241d1d440dd64517949f3a64a4e9256584393fff84e3cea5f75773c9afd8b7ef580333 SHA512 82048af7dee4bd274f977530a19c2e2c86ac12936b7d814b2a86f13b2063e1a3d7092846d1ab66e3f653bf7ebbf5eae8bbce061a970c5ddb30b151234dd0593d
+DIST whoami-1.5.2.crate 24204 BLAKE2B 29ca6ac8b280d10882d39fe8f15850e2e6035c1e72445c7fb541acdd8784ee756f0a412daf3ea48f7f7755fd5ed68bdd309e85e9380bb9c5af7b05c197b46b14 SHA512 5ecb06b352528e3320cc71c6700f72a79a04791c33f08fde172762f6f2dde25218aa0d405604d0a18a741dba7c370c26cb63b471f09c7b2a6303cdf849606398
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST winnow-0.6.24.crate 165680 BLAKE2B 404b91cf890523dc66b2e1c8ed8610a991cc3551de16894a6aed4d6b720b19f33feba9f2257541f9eef6b51051bb5e15e4b7c9c74653a3bdbb782e273d0605a2 SHA512 b0dc1890a59709c61f06096dd37d94bd41cea0b6dd097ae9651c19acbd2963833f5b9cb6c8274aa7577433bff4b3cc68a9de80f7b285035074b5cc96907f967d
+DIST winsafe-0.0.19.crate 492820 BLAKE2B 4eba26861f85f668e134b08c60e9522b698aed61eaa5e6d4e89ef31c1b97953fa08a5157add52d9a306075df4ad97e9aaf1767eea4208b72401ec0bc1c3eb0e9 SHA512 0555ec74c5acbb69ab08e54d920094e806258079bffaff3f90297bb94a000c7da36d6eba0eae445d425c781465235dd70a198437cf83a1f113438bfd9baf4c21
+DIST write16-1.0.0.crate 7218 BLAKE2B 548796314339463e4b71f8af3d344e45dc89480e103180b6d56c90fcb816ad1a37ab2ba20766c4b9754f2cc686752eb1f3a5a12ec1ed4369a9cef749ad4f3e97 SHA512 655a207b8082bb88e462f992ecb4833cef9d590da06d6356b41d109df2862b49ee5705189c78a607b549e7343035119d158020d58fcad49608e51659357a83c1
+DIST writeable-0.5.5.crate 22354 BLAKE2B e4ff9862c070b413568ce0c75d1eccafcf1db8578eee4795ea9046dadd643f8a77258b437be288b93af247199d63455298ac2cff909226bc432f91c0aa863921 SHA512 818b2546c8ec25816aeaf5e31a1ded927d197bf7256e7c5073738c2709bc58a95d382a0256eb38a99235ae83729b578701261866d42ea3357a26024906e196c1
+DIST yoke-0.7.5.crate 29673 BLAKE2B cd2e42103140e080a29bf579fe5176b36a192f9b1309c1f2fd7557fe93b2f6eadbf6fca4a6a3b1a7b6288403d2f643841dfc7a5b6a4476776943950abe5c1613 SHA512 6bbd99671d1a5a5217890eaa267113d193b3636b265393afb6e72a313f01704d462fe017264f061405e8e84c188b590094c29e3fcf19a63c375ae165d1a0bbef
+DIST yoke-derive-0.7.5.crate 7525 BLAKE2B 9b6b97eaf3c50f0f5ce8cebf685a1a17d4c21eb9b26d38eac99e0a4c0f9d592e95a7843b7a0b897945a14c4eb78ffdf2c0972b448d31d7bc7b077f27aad81d9a SHA512 e30b06b020aa283080905004295fb643c539b130d0d53bda51927b95e79ba562336aad30d8a6202d9a0c62d5b64559a01218c6f02f3faada6003d4b03c205cd6
+DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c
+DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
+DIST zerofrom-0.1.5.crate 5091 BLAKE2B a2b938197957755c4a8ccfb258f60f90931a0a342d9d4bd098c7a25e1c9069148a51ddfffd2b72a6a9856d8c6e66fe1482ab2081a5f3478b4b318062caffff42 SHA512 11f16a1003967b3f30d7b32ffc8541ec05fb335690b08cf4f7554c624ad4312ee0961c83390a997e2a73aee06d8bb09a0ff4e6a5e489f8fb925141e732006544
+DIST zerofrom-derive-0.1.5.crate 8285 BLAKE2B d19bf1b74be89f4d27eda36ba6407d598358d3d69bed64f02903ab7dc509faa006cde9c13e19f5f3cde09cf9049120575263996c922b20da366a11e18baa42dc SHA512 75098e0f1c690bd8476f819f4ea2a7645b88237042a8876259bf4e025b070a4b105caf16ca7a824c5dd6c4690b693fcc74bed9ac0b5e6fdab05a5bed1b5cb298
+DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe
+DIST zerovec-0.10.4.crate 126398 BLAKE2B b078784d6f178bbb9de1c3c1b6c7ef996f00bdd7dfd2924bda921e62f3e09e953fbf50f8d0da99ac6ff6d134f146253846f5663549dcf8df08eaf34b9d4016b3 SHA512 db12bba1d7476ddead92e6dfcdcc30e2e0defff4f263a740244eabee265a2cab265473a663d3dc3210f48e113b66d951da496dfab7965ce1bc792e5f2db422a0
+DIST zerovec-derive-0.10.3.crate 19438 BLAKE2B 9f7df8a4e4a0b62ab25aed967b26509db4bcc5d5b10b3bd73305099a4c49a60be8921484ced1a34d9b7ae30ffa5abe789686f432416a8f1cfc07de1db1dff594 SHA512 caefbffeb35265db9f74933bf07109d57f0da48156cafd4f330af78a5c7eb9ab0831a80789ad4fb119875ebc6cfd7e3de68c9984b77dca5151f9be41f1ae6e09
+DIST zip-2.2.2.crate 108809 BLAKE2B e6d7792b70ab397ef340d37167266b87538d2e0ad422d02b053f6b492c8ed13535ea18d5d4077350286b3c2f79623a01ec89544f6334eddd07c87b0d443f19ae SHA512 0255079792b786a55dd18587daf178456f2b79f83d767ba42504f8b7163eebc152c02500097edd78bb37916444c9ad9905779367c6d743489502468258f1706e
+DIST zopfli-0.8.1.crate 50972 BLAKE2B 27cde48858dc65ec8082d4e0d81e2758f92d3dcc7a1c1f08aa6448e99f2995a865ac3259353b26e787f108c2f88ce3c7610413ea9d3daae6f864900d74565de6 SHA512 799e25c0cc9f0bf2119a7c03225b11ed94e7c3ac83f872a27da8ae15c90206245121c38f5e2b78fece131f5bb428f01fabbfd1b1e18ea456957940042d38f38d
diff --git a/dev-build/cargo-make/cargo-make-0.37.24.ebuild b/dev-build/cargo-make/cargo-make-0.37.24.ebuild
new file mode 100644
index 000000000000..78bd8686dc0f
--- /dev/null
+++ b/dev-build/cargo-make/cargo-make-0.37.24.ebuild
@@ -0,0 +1,327 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.13.4
+
+EAPI=8
+
+CRATES="
+ adler2@2.0.0
+ aho-corasick@1.1.3
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ arbitrary@1.4.1
+ attohttpc@0.28.2
+ autocfg@1.4.0
+ base64@0.22.1
+ bitflags@2.8.0
+ block-buffer@0.10.4
+ bstr@1.11.3
+ bumpalo@3.16.0
+ byteorder@1.5.0
+ bytes@1.9.0
+ bzip2-sys@0.1.11+1.0.8
+ bzip2@0.4.4
+ camino@1.1.9
+ cargo-platform@0.1.9
+ cargo_metadata@0.19.1
+ cc@1.2.10
+ cfg-if@1.0.0
+ cfg_aliases@0.2.1
+ chrono@0.4.39
+ ci_info@0.14.14
+ cliparser@0.1.2
+ colored@2.2.0
+ colored@3.0.0
+ core-foundation-sys@0.8.7
+ core-foundation@0.9.4
+ cpufeatures@0.2.16
+ crc32fast@1.4.2
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crypto-common@0.1.6
+ ctrlc@3.4.5
+ deranged@0.3.11
+ derive_arbitrary@1.4.1
+ digest@0.10.7
+ dirs-next@2.0.0
+ dirs-sys-next@0.1.2
+ displaydoc@0.2.5
+ dissimilar@1.0.9
+ duckscript@0.10.0
+ duckscriptsdk@0.11.1
+ dunce@1.0.5
+ either@1.13.0
+ encoding_rs@0.8.35
+ envmnt@0.10.4
+ equivalent@1.0.1
+ errno@0.3.10
+ evalexpr@11.3.1
+ expect-test@1.5.1
+ fastrand@2.3.0
+ fern@0.7.1
+ fixedbitset@0.5.7
+ flate2@1.0.35
+ fnv@1.0.7
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ form_urlencoded@1.2.1
+ fs_extra@1.3.0
+ fsio@0.4.0
+ futures-core@0.3.31
+ futures-io@0.3.31
+ futures-lite@2.6.0
+ generic-array@0.14.7
+ getrandom@0.2.15
+ git_info@0.1.3
+ glob@0.3.2
+ globset@0.4.15
+ hashbrown@0.12.3
+ hashbrown@0.15.2
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hex@0.4.3
+ home@0.5.11
+ http@1.2.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.61
+ icu_collections@1.5.0
+ icu_locid@1.5.0
+ icu_locid_transform@1.5.0
+ icu_locid_transform_data@1.5.0
+ icu_normalizer@1.5.0
+ icu_normalizer_data@1.5.0
+ icu_properties@1.5.1
+ icu_properties_data@1.5.0
+ icu_provider@1.5.0
+ icu_provider_macros@1.5.0
+ idna@1.0.3
+ idna_adapter@1.2.0
+ ignore@0.4.23
+ indexmap@1.9.3
+ indexmap@2.7.0
+ itertools@0.14.0
+ itoa@1.0.14
+ java-properties@2.0.0
+ js-sys@0.3.77
+ lazy-regex-proc_macros@3.4.1
+ lazy-regex@3.4.1
+ lazy_static@1.5.0
+ lenient_semver@0.4.2
+ lenient_semver_parser@0.4.2
+ lenient_semver_version_builder@0.4.2
+ libc@0.2.169
+ libredox@0.1.3
+ linux-raw-sys@0.4.15
+ litemap@0.7.4
+ lockfree-object-pool@0.1.6
+ log@0.4.25
+ memchr@2.7.4
+ miniz_oxide@0.8.3
+ native-tls@0.2.12
+ nix@0.29.0
+ nu-ansi-term@0.50.1
+ num-conv@0.1.0
+ num-traits@0.2.19
+ num_cpus@1.16.0
+ once_cell@1.20.2
+ openssl-macros@0.1.1
+ openssl-probe@0.1.5
+ openssl-sys@0.9.104
+ openssl@0.10.68
+ parking@2.2.1
+ percent-encoding@2.3.1
+ petgraph@0.7.1
+ pin-project-lite@0.2.16
+ pkg-config@0.3.31
+ powerfmt@0.2.0
+ ppv-lite86@0.2.20
+ proc-macro2@1.0.93
+ quote@1.0.38
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ redox_syscall@0.5.8
+ redox_users@0.4.6
+ regex-automata@0.4.9
+ regex-syntax@0.8.5
+ regex@1.11.1
+ ring@0.17.8
+ run_script@0.11.0
+ rust_info@0.3.3
+ rustix@0.38.43
+ rustls-pki-types@1.10.1
+ rustls-webpki@0.102.8
+ rustls@0.23.21
+ rustversion@1.0.19
+ ryu@1.0.18
+ same-file@1.0.6
+ schannel@0.1.27
+ security-framework-sys@2.14.0
+ security-framework@2.11.1
+ semver@1.0.24
+ serde@1.0.217
+ serde_derive@1.0.217
+ serde_ignored@0.1.10
+ serde_json@1.0.135
+ serde_spanned@0.6.8
+ sha2@0.10.8
+ shell2batch@0.4.5
+ shlex@1.3.0
+ simd-adler32@0.3.7
+ smallvec@1.13.2
+ spin@0.9.8
+ stable_deref_trait@1.2.0
+ strip-ansi-escapes@0.2.1
+ strum_macros@0.26.4
+ subtle@2.6.1
+ suppaftp@6.0.7
+ syn@2.0.96
+ synstructure@0.13.1
+ tempfile@3.15.0
+ thiserror-impl@1.0.69
+ thiserror-impl@2.0.11
+ thiserror@1.0.69
+ thiserror@2.0.11
+ time-core@0.1.2
+ time@0.3.37
+ tinystr@0.7.6
+ toml@0.8.19
+ toml_datetime@0.6.8
+ toml_edit@0.22.22
+ typenum@1.17.0
+ uname@0.1.1
+ unicode-ident@1.0.14
+ untrusted@0.9.0
+ url@2.5.4
+ utf16_iter@1.0.5
+ utf8_iter@1.0.4
+ vcpkg@0.2.15
+ version_check@0.9.5
+ vte@0.14.1
+ walkdir@2.5.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasite@0.1.0
+ wasm-bindgen-backend@0.2.100
+ wasm-bindgen-macro-support@0.2.100
+ wasm-bindgen-macro@0.2.100
+ wasm-bindgen-shared@0.2.100
+ wasm-bindgen@0.2.100
+ web-sys@0.3.77
+ webpki-roots@0.26.7
+ which@6.0.3
+ whoami@1.5.2
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.9
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.52.6
+ winnow@0.6.24
+ winsafe@0.0.19
+ write16@1.0.0
+ writeable@0.5.5
+ yoke-derive@0.7.5
+ yoke@0.7.5
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+ zerofrom-derive@0.1.5
+ zerofrom@0.1.5
+ zeroize@1.8.1
+ zerovec-derive@0.10.3
+ zerovec@0.10.4
+ zip@2.2.2
+ zopfli@0.8.1
+"
+
+inherit cargo
+
+DESCRIPTION="Rust task runner and build tool"
+HOMEPAGE="https://sagiegurari.github.io/cargo-make/"
+SRC_URI="
+ https://github.com/sagiegurari/cargo-make/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD Boost-1.0 ISC MIT MPL-2.0 Unicode-3.0"
+# ring
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openssl +rustls test"
+REQUIRED_USE="?? ( openssl rustls )"
+RESTRICT="!test? ( test )"
+
+DEPEND="openssl? ( dev-libs/openssl:= )"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ dev-build/cargo-make
+ dev-util/rust-script
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_configure() {
+ local myfeatures=(
+ $(usev openssl tls-native)
+ $(usev rustls tls-rustls)
+ )
+ cargo_src_configure --no-default-features
+}
+
+src_test() {
+ local CARGO_SKIP=(
+ # Test checks that S directory name matches PN. This fails as expected.
+ environment::mod_test::get_base_directory_name_valid
+ # Not a git repo
+ io::io_test::get_path_list_dirs_with_gitignore
+ # Requires working rustup https://bugs.gentoo.org/834741
+ installer::crate_installer::crate_installer_test::install_test_with_toolchain_test
+ installer::crate_installer::crate_installer_test::invoke_cargo_install_with_toolchain_test
+ installer::crate_version_check::crate_version_check_test::get_crate_version_for_rustup_component
+ installer::rustup_component_installer::rustup_component_installer_test::install_with_toolchain_test
+ installer::rustup_component_installer::rustup_component_installer_test::is_installed_with_toolchain_non_zero
+ toolchain::toolchain_test::get_cargo_binary_path_valid
+ toolchain::toolchain_test::wrap_command_empty_args
+ toolchain::toolchain_test::wrap_command_none_args
+ toolchain::toolchain_test::wrap_command_with_args
+ toolchain::toolchain_test::wrap_command_with_args_and_simple_variable_toolchain
+ # Requires network access
+ installer::cargo_plugin_installer::cargo_plugin_installer_test::install_crate_already_installed_cargo_make_without_check
+ installer::crate_installer::crate_installer_test::install_already_installed_crate_only_min_version_equal
+ installer::crate_installer::crate_installer_test::install_already_installed_crate_only_min_version_smaller
+ installer::crate_installer::crate_installer_test::install_already_installed_crate_only_version_equal
+ # cargo.eclass removes .crates.toml, which is needed by crate version checks
+ installer::crate_version_check::crate_version_check_test::is_min_version_valid_newer_version
+ installer::crate_version_check::crate_version_check_test::is_version_valid_newer_version
+ installer::crate_version_check::crate_version_check_test::is_version_valid_old_version
+ installer::crate_version_check::crate_version_check_test::is_min_version_valid_same_version
+ installer::crate_version_check::crate_version_check_test::is_version_valid_same_version
+ )
+
+ # https://github.com/sagiegurari/cargo-make/issues/573#issuecomment-886147300
+ set -- cargo make --env CARGO_MAKE_CARGO_BUILD_TEST_FLAGS="-- ${CARGO_SKIP[*]/#/--skip }" test
+ einfo "${@}"
+ "${@}" || die "cargo make test failed"
+}
+
+src_install() {
+ cargo_src_install
+ dodoc README.md
+}
diff --git a/dev-build/cargo-make/metadata.xml b/dev-build/cargo-make/metadata.xml
new file mode 100644
index 000000000000..1ad364dcdb2c
--- /dev/null
+++ b/dev-build/cargo-make/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">sagiegurari/cargo-make</remote-id>
+ </upstream>
+ <use>
+ <flag name="openssl">Enable TLS support with <pkg>dev-libs/openssl</pkg></flag>
+ <flag name="rustls">Enable TLS support with rustls</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-build/cmake/Manifest b/dev-build/cmake/Manifest
new file mode 100644
index 000000000000..9ee401c8d604
--- /dev/null
+++ b/dev-build/cmake/Manifest
@@ -0,0 +1,19 @@
+DIST cmake-4.0.0_rc1-docs.tar.xz 577536 BLAKE2B 74a742ffef8e1af1652746e1c177d4198155145a039635e6a0ea40af463f3a2d45b6c6ce7d3a9b1fee24f0c1cfd1c3aa95c27669ca3c6281d54e701fc0ece202 SHA512 74c20067d3b82493024b2f2711b55b93998ce3b5f35ab5a154f33a8268a35a29d01127c55ce6b85b80ff252d15284ed1065e1338422124f6722a4190a984637c
+DIST cmake-4.1.4-SHA-256.txt 2015 BLAKE2B 6e8b2f7c769fbf7b5dbdec081edd8c9169f80fb9b16119b5ace3e5596a14394abe8287f45c537dc2ded972e521745c909d9b33e242c1d8fe34abda9791cec71d SHA512 c806bc17dbad51b5bd90354bf3df31232bd39f7a8dee30205807cc7e2ba63eaddc1138f8512c860e86d21cc7075f58cda85f4f9f3f9001810a243e6ebef0261c
+DIST cmake-4.1.4-SHA-256.txt.asc 833 BLAKE2B e2685feadb1565a5d14eea89eb5e505dd3988a10f3539d40d44411f425db7baba7fea7cabe894a706e86f58ff8c7332ed26a56711113d099ab27f874177036c3 SHA512 b316dec0ed3f5df1d03b8fdd17afa997df5da723072c4958fe728d4abf5156b36c9e79e0344735a20d31d4a2366aa22b4ae23f334b831ce67ed6bf23183631da
+DIST cmake-4.1.4.tar.gz 12051840 BLAKE2B 0d43042b70b1fe27bb1e1eeb2bda1b24923887cb0fdaca2fff11771c980b7a9b24637559315f58c53066a53aa40dd3e2127de8cf4fd7eb0d25844e27a7a08f17 SHA512 c8a5eb269f98f70db1f52675822e1b371864fa86037ed4f1714f77abaf5c7b3fae307bfc4392add29c2c600b502d8876d7d1bb260e331ee6607cb02356a7e8a8
+DIST cmake-4.1.5-SHA-256.txt 2015 BLAKE2B 1859a418346eb7409e661e4addb72c62adca9c781fb0568083437b8861031b6b732c6a84ceb509f1b894dfe8c024eb0a51fba41f201b2d301c306b13717b43ce SHA512 07b34031e95bd74275ce73f86b8731432885065f9869d1b12424318bdc557ad90871bfaa73087cd4a2880e84c52977c16f0e52887b551437c8041a2a01ba78c7
+DIST cmake-4.1.5-SHA-256.txt.asc 833 BLAKE2B 789375e7d65bdabd4fde8fae0b06bef4bed99689565deb834b447daf6aff9b7836a04db198ebd0c6d88aaa51e224f01c6a78757d42e3a06cd15dfe9d31297232 SHA512 f3e989f0ac81b08297665620efb926774d387bb9ea607a61ec7e1a040332ef0e9174eeab8f28d176e34ef278e0f627a27d9d70d4935a765d3f6f535ab242a2a4
+DIST cmake-4.1.5.tar.gz 12048837 BLAKE2B c62c615a480edfd60c694003e26f70a6d2365d0c7a934eabf3e29c44decab0ce91ee35a1c8a900ee57de86e4222a2fd7575561ce2029e310c145607fd8ce46a8 SHA512 25c585a07b20dab2cb483616b6de03f6338add3a320f28321c46efd4b9b2d41fa3fc3e71991ea75fb20a64dddd2b858f9828a64d860f4b9095288dedc6d429b2
+DIST cmake-4.2.4-SHA-256.txt 2015 BLAKE2B 2f53c1aaedbb9e7421312ecf843f35f7538ad72e6bf4dd41271d8cef6eeab0375d45969c09ff255e0587562276711d77f334e670441a08892ad6bf3ce8e0ed16 SHA512 778023fbd242da7de84d8c3a312466022160cc58206fe9945e97b570fc8011db188c2996d6a47f6b6092345b123197c9d083af56b7002acffb4465c08aab601f
+DIST cmake-4.2.4-SHA-256.txt.asc 833 BLAKE2B 63ad10bdfba3408d2c23c33130519b6404c2e796d0d84cdb46b0bf18567954ef35768ba69343adabfea701fdad73db308ae751c4bffe9679d834f78b1eb0ab5a SHA512 11819ed1c70938f8980597d2a62c89f393efd2e6ca4e2e4b472fc7e78ad89a7f59c3a92cec03ee2baeb551fcbe6a720edeab7790a300e6339b71a9e5efb607d1
+DIST cmake-4.2.4.tar.gz 12348311 BLAKE2B 367f75fb2493caf2c137ffe04857843e4a94ea01b7ac1c3128e18ab550a97db83eda49f2d8e1600dbcf81a528330bb7517ab3a82ab32cbc0936054cda8b07c09 SHA512 255838f89ef5dd01936bbc13252d099e41d99a681e4279d305e3a3b0ddd85597e7e0334b87052d4766a77e7d5ef189dd77259a194e27d1a6f19a0d0a0e8e7d76
+DIST cmake-4.3.1-SHA-256.txt 2015 BLAKE2B f642be0fe25f036e3200587d38b013258b41d3abd9794376611b1bc9b176485bde415e6587f3776f028b9e7f82b6901a6d01cd31aab8a83887edf08555d79161 SHA512 dce1e1a3701962f0e3b7e69ef004d52093a070affba3f4d8dea428e0118562c7c27cd90883fbff0b039ff7fb2e3dbb1986e4827ecad4f10b0685728acd3bbaca
+DIST cmake-4.3.1-SHA-256.txt.asc 833 BLAKE2B 2b8d29633dfb27affcad468258a1d4b529380c4e3a94e5fb25034f3f77bc6f77ade58314e3f5a81e605bbe15077d549f692658605d2fa8a76c0d77d47c2b4305 SHA512 cf8a9ac2e0c9f37d07fc69556933eae56dd8fdc03838060908f1fa64ce4e9d9cede8f46c4a8b73829c3384ad50db804daff3ac6d6af8f5d9c17fa03c961211b4
+DIST cmake-4.3.1.tar.gz 12966559 BLAKE2B 5685a52e9dacc69e267c0616564c8198424ce2a471822d05c63834fed8fe1931e0c9123a4f8f7ab86bb9954d29b2cff0d927d66d1748b8f3fd92a1d0fb8fc1c5 SHA512 010744f82b5448e589a8cbcaa45aea43280e529cafc1897ff311f5c21598c71ee4e822ef7fd679cdf0e49c4d22941f83a3fe21ffde08b2e39bbb92fb94d83ba3
+DIST cmake-4.3.2-SHA-256.txt 2015 BLAKE2B d8dec4928b25922b7d94bf577cefe9f2998f802fc36285df2589aa55de56d035d2c9cc62bb91e556886c92d80ee74fa09e80379702d921b04b70f5979d87b21d SHA512 04ccb8f71544d0923ebe636acd777621dbd7a899bcf782974139131e68e3ad871fba77096917ba3dd1c34b3220c7c63f703c83f9ab1ead821cf5c09fef4ae5cc
+DIST cmake-4.3.2-SHA-256.txt.asc 833 BLAKE2B 5957e0be571c42ebfee57dcb933dfeea78e8103fa364f18dcd65c8ae182538e7054c9fed7446684888f9ede2bcaa8c617c9003e8d1775194f9dc001b8cb82542 SHA512 3e86faa633989affa1e301e045092350750be2943e166c4f29778aee162bc80c9f716da5e806133f4a7fb1cf1d4bcca0d1955764933a473b30e5888be781f17e
+DIST cmake-4.3.2.tar.gz 12968608 BLAKE2B 58e48f7dd618b8732da960fdb3373618dded50d6d57af30f590c2ee77f657744e998b526b3e8f08463e0d9ff7514d14e3e96ad42284fcea0971ed1b52a0a16cf SHA512 ee78390be3907f4ce398e41ece9067952a25c2cba2edd9cb17f12827466d5bf2476ad8a2bba5df95b3d7950bb5122cb1754d005b6544e43901949869adf8c74a
+DIST cmake-4.3.3-SHA-256.txt 2015 BLAKE2B a73f3dfd4a95a353e95cf75c8fe68343020b3936f78da4c1579d49f4bf51360d952193aaf744accd820f9da22e180cfd1f13b029bf13deda293e74306869377f SHA512 23c9851300aa16881cd32d22df69db4189ac2288cc3cdb6cc9534c7de5f2abc0d1d5e53f2b1bdbfce81c4901cb7ea5857019598edd53f95ad0f6554028c65720
+DIST cmake-4.3.3-SHA-256.txt.asc 833 BLAKE2B ff69825df8b777894ef200a418f2b6f1d1cf534d040c54f5b2399aa9a63069d70bb72deeb118245484c00da9a471c8c93a2ea7da26cfe5a3aee3ce23609473e1 SHA512 f1a018f80aa42c62836bd3aeb1a3866d11815041b26adcc3e0f2f0bba482f7564b426a805c3ccf02ff3ad375382ad1a47f0df327c736d2c0428c1573eede33a4
+DIST cmake-4.3.3.tar.gz 12971567 BLAKE2B 30de7da05576d0cc44d67320a2d6fa250c44f5262f73a9e7c3a568cb7f9bda9aee578486911e6dfe2881c55ac618fb7c4443755aec4a105ac54ac304d005a4af SHA512 7f6af59cc53ea412311d54aeb52ad6981c46c53bac1ce0d3bf5944e85952534888267ea952596ad612e2b582f6897a818566963c85b88099f698df0803fe29d9
diff --git a/dev-build/cmake/cmake-4.1.4.ebuild b/dev-build/cmake/cmake-4.1.4.ebuild
new file mode 100644
index 000000000000..5f815951e2e4
--- /dev/null
+++ b/dev-build/cmake/cmake-4.1.4.ebuild
@@ -0,0 +1,334 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/cmake-4.1.5.ebuild b/dev-build/cmake/cmake-4.1.5.ebuild
new file mode 100644
index 000000000000..a3917f21387d
--- /dev/null
+++ b/dev-build/cmake/cmake-4.1.5.ebuild
@@ -0,0 +1,334 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/cmake-4.2.4.ebuild b/dev-build/cmake/cmake-4.2.4.ebuild
new file mode 100644
index 000000000000..0bf58953c507
--- /dev/null
+++ b/dev-build/cmake/cmake-4.2.4.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/cmake-4.3.1.ebuild b/dev-build/cmake/cmake-4.3.1.ebuild
new file mode 100644
index 000000000000..c2fda1de8122
--- /dev/null
+++ b/dev-build/cmake/cmake-4.3.1.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/cmake-4.3.2.ebuild b/dev-build/cmake/cmake-4.3.2.ebuild
new file mode 100644
index 000000000000..c2fda1de8122
--- /dev/null
+++ b/dev-build/cmake/cmake-4.3.2.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/cmake-4.3.3.ebuild b/dev-build/cmake/cmake-4.3.3.ebuild
new file mode 100644
index 000000000000..0bf58953c507
--- /dev/null
+++ b/dev-build/cmake/cmake-4.3.3.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/cmake-9999.ebuild b/dev-build/cmake/cmake-9999.ebuild
new file mode 100644
index 000000000000..c2fda1de8122
--- /dev/null
+++ b/dev-build/cmake/cmake-9999.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+: ${CMAKE_DOCS_PREBUILT:=1}
+
+CMAKE_DOCS_PREBUILT_DEV=sam
+CMAKE_DOCS_VERSION=4.0.0_rc1
+#CMAKE_DOCS_VERSION=${PV}
+#CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# See bug #784815
+CMAKE_DOCS_USEFLAG="+doc"
+
+CMAKE_QA_COMPAT_SKIP=1 # bug #964514; cmake itself is the last pkg we worry about
+
+# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
+# ... but seems fine as of 3.22.3?
+# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
+CMAKE_MAKEFILE_GENERATOR="emake"
+CMAKE_REMOVE_MODULES_LIST=()
+inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
+ toolchain-funcs xdg-utils
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Cross platform Make"
+HOMEPAGE="https://cmake.org/"
+if [[ ${PV} == *9999* ]] ; then
+ CMAKE_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
+
+ if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
+ inherit verify-sig
+
+ SRC_URI+=" verify-sig? (
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt
+ https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}-SHA-256.txt.asc
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt
+ https://github.com/Kitware/CMake/releases/download/v${PV/_/-}/${MY_P}-SHA-256.txt.asc
+ )"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20250904 )"
+fi
+
+[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses test"
+RESTRICT="!test? ( test )"
+
+# >= 1.51.0-r1 for ppc32 workaround (bug #941738)
+RDEPEND="
+ >=app-arch/libarchive-3.3.3:=
+ app-crypt/rhash:0=
+ >=dev-libs/expat-2.0.1
+ >=dev-libs/jsoncpp-1.9.2-r2:0=
+ >=dev-libs/libuv-1.51.0-r1:=
+ >=net-misc/curl-7.21.5[ssl]
+ virtual/zlib:=
+ virtual/pkgconfig
+ dap? ( dev-cpp/cppdap )
+ gui? ( dev-qt/qtbase:6[gui,widgets] )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND+="
+ doc? (
+ dev-python/requests
+ dev-python/sphinx
+ )
+ test? ( app-arch/libarchive[zstd] )
+"
+
+SITEFILE="50${PN}-gentoo.el"
+
+PATCHES=(
+ # Prefix
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
+ # Misc
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
+ "${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
+ # Cuda
+ "${FILESDIR}/${PN}-3.30.3-cudahostld.patch"
+
+ # Upstream fixes (can usually be removed with a version bump)
+)
+
+cmake_src_bootstrap() {
+ # disable running of cmake in bootstrap command
+ sed -i \
+ -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
+ bootstrap || die "sed failed"
+
+ # execinfo.h on Solaris isn't quite what it is on Darwin
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i -e 's/execinfo\.h/blablabla.h/' \
+ Source/kwsys/CMakeLists.txt || die
+ fi
+
+ # bootstrap script isn't exactly /bin/sh compatible
+ tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
+ --prefix="${T}/cmakestrap/" \
+ --parallel=$(get_makeopts_jobs "$(get_nproc)") \
+ || die "Bootstrap failed"
+}
+
+pkg_pretend() {
+ if [[ -z ${EPREFIX} ]] ; then
+ local file
+ local errant_files=()
+
+ # See bug #599684 and bug #753581 (at least)
+ for file in /etc/arch-release /etc/redhat-release /etc/debian_version ; do
+ if [[ -e ${file} ]]; then
+ errant_files+=( "${file}" )
+ fi
+ done
+
+ # If errant files exist
+ if [[ ${#errant_files[@]} -gt 0 ]]; then
+ eerror "Errant files found!"
+ eerror "The presence of these files is known to confuse CMake's"
+ eerror "library path logic. Please (re)move these files:"
+
+ for file in "${errant_files[@]}"; do
+ eerror " mv ${file} ${file}.bak"
+ done
+
+ die "Stray files found in /etc/, see above message"
+ fi
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
+ default
+ else
+ cd "${DISTDIR}" || die
+
+ # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
+ verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
+ verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
+
+ cd "${WORKDIR}" || die
+
+ default
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # Disable Xcode hooks, bug #652134
+ sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
+ Source/CMakeLists.txt || die
+ sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
+ -e '/cmGlobalXCodeGenerator.h/d' \
+ Source/cmake.cxx || die
+ # Disable system integration, bug #933744
+ sed -i -e 's/__APPLE__/__DISABLED__/' \
+ Source/cmFindProgramCommand.cxx \
+ Source/CPack/cmCPackGeneratorFactory.cxx || die
+ sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
+ Source/cmMachO.cxx || die
+ sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
+ Source/CMakeLists.txt || die
+
+ # Disable isysroot usage with GCC, we've properly instructed
+ # where things are via GCC configuration and ldwrapper
+ sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
+ Modules/Platform/Apple-GNU-*.cmake || die
+ # Disable isysroot usage with clang as well
+ sed -i -e '/_SYSROOT_FLAG/d' \
+ Modules/Platform/Apple-Clang.cmake || die
+ # Don't set a POSIX standard, system headers don't like that, #757426
+ sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmLoadCommandCommand.cxx \
+ Source/cmStandardLexer.h \
+ Source/cmSystemTools.cxx \
+ Source/cmTimestamp.cxx
+ sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
+ Source/cmStandardLexer.h
+ fi
+
+ # Add gcc libs to the default link paths
+ sed -i \
+ -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
+ -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
+ -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
+ Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
+
+ ## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
+ ## handle them as part of bootstrapping, sadly.
+
+ # Fix linking on Solaris
+ [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
+
+ # ODR warnings, bug #858335
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
+ filter-lto
+
+ # 4.0.0_rc1 is missing this, fails to configure
+ # https://gitlab.kitware.com/cmake/cmake/-/issues/26712
+ touch .clang-tidy Utilities/.clang-tidy || die
+
+ if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
+ CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
+ cmake_src_bootstrap
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_USE_SYSTEM_LIBRARIES=ON
+ -DCMake_ENABLE_DEBUGGER=$(usex dap)
+ -DCMAKE_DOC_DIR=/share/doc/${PF}
+ -DCMAKE_MAN_DIR=/share/man
+ -DCMAKE_DATA_DIR=/share/${PN}
+ -DSPHINX_MAN=$(usex doc)
+ -DSPHINX_HTML=$(usex doc)
+ -DBUILD_CursesDialog="$(usex ncurses)"
+ -DBUILD_TESTING=$(usex test)
+ -DBUILD_QtDialog=$(usex gui)
+ )
+
+ use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=6 )
+
+ cmake_src_configure
+}
+
+src_test() {
+ # Fix OutDir and SelectLibraryConfigurations tests
+ # these are altered thanks to our eclass
+ sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
+ "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
+ || die
+
+ unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
+
+ pushd "${BUILD_DIR}" > /dev/null || die
+
+ # Excluded tests:
+ local CMAKE_SKIP_TESTS=(
+ # BootstrapTest: we actually bootstrap it every time so why test it?
+ "BootstrapTest"
+ # BundleUtilities: bundle creation broken
+ "BundleUtilities"
+ # CMakeOnly.AllFindModules: pthread issues
+ "CMakeOnly.AllFindModules"
+ # TODO
+ "CompileOptions"
+ # CTest.updatecvs: which fails to commit as root
+ "CTest.UpdateCVS"
+ # Fortran: requires fortran
+ "Fortran"
+ # RunCMake.CompilerLauncher: also requires fortran
+ "RunCMake.CompilerLauncher"
+ # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
+ # debugedit binary is not in the expected location
+ # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
+ # it can't find a deb package that owns libc
+ # RunCMake.CPack_TGZ: requires 64-bit time_t (bug #967480)
+ "RunCMake.CPack_(DEB|RPM|TGZ)"
+ # TestUpload, which requires network access
+ "TestUpload"
+ # RunCMake.CMP0125, known failure reported upstream (bug #829414)
+ "RunCMake.CMP0125"
+ )
+
+ local -x QT_QPA_PLATFORM=offscreen
+
+ cmake_src_test
+}
+
+src_install() {
+ cmake_src_install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
+ fi
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins Auxiliary/vim/syntax/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/indent
+ doins Auxiliary/vim/indent/cmake.vim
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}/${PN}.vim"
+
+ dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
+}
+
+pkg_postinst() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
+
+pkg_postrm() {
+ if use gui; then
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ fi
+}
diff --git a/dev-build/cmake/files/50cmake-gentoo.el b/dev-build/cmake/files/50cmake-gentoo.el
new file mode 100644
index 000000000000..e4a1a6d47cbc
--- /dev/null
+++ b/dev-build/cmake/files/50cmake-gentoo.el
@@ -0,0 +1,4 @@
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'cmake-mode "cmake-mode" "Major mode for editing CMake files." t)
+(add-to-list 'auto-mode-alist '("CMakeLists\\.txt\\'" . cmake-mode))
+(add-to-list 'auto-mode-alist '("\\.cmake\\'" . cmake-mode))
diff --git a/dev-build/cmake/files/cmake-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch b/dev-build/cmake/files/cmake-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
new file mode 100644
index 000000000000..ada6f7b8f5bc
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
@@ -0,0 +1,35 @@
+From 2d155220920c8fd7ad5b4df2d5be923808ee841a Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Tue, 19 Nov 2019 12:28:53 +0100
+Subject: [PATCH 1/6] Don't use .so for modules on darwin/macos. Use .bundle
+ instead.
+
+Patch by Heiko Przybyl
+
+Forward-ported from 2.8.10 to 3.4.0-rc1
+Forward-ported from 3.4.0-rc1 to 3.16.0-rc4
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+--- a/Modules/Platform/Darwin.cmake
++++ b/Modules/Platform/Darwin.cmake
+@@ -42,7 +42,7 @@ set(CMAKE_SHARED_LIBRARY_PREFIX "lib")
+ set(CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
+ set(CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES ".tbd" ".so")
+ set(CMAKE_SHARED_MODULE_PREFIX "lib")
+-set(CMAKE_SHARED_MODULE_SUFFIX ".so")
++set(CMAKE_SHARED_MODULE_SUFFIX ".bundle")
+ set(CMAKE_APPLE_IMPORT_FILE_PREFIX "lib")
+ set(CMAKE_APPLE_IMPORT_FILE_SUFFIX ".tbd")
+ set(CMAKE_MODULE_EXISTS 1)
+@@ -66,7 +66,7 @@ foreach(lang C CXX OBJC OBJCXX)
+ endforeach()
+
+ set(CMAKE_PLATFORM_HAS_INSTALLNAME 1)
+-set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a")
++set(CMAKE_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".bundle" ".a")
+
+ # hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
+ # (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
+--
+2.41.0
+
diff --git a/dev-build/cmake/files/cmake-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch b/dev-build/cmake/files/cmake-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
new file mode 100644
index 000000000000..7ed6fb4b15b3
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
@@ -0,0 +1,133 @@
+From aa8c0176389436e698e2f7e84097b4151b6477bf Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Fri, 1 Mar 2019 23:11:41 +0100
+Subject: [PATCH 2/6] Set some proper paths to make cmake find our tools.
+
+The ebuild now adds an extra / at the end of $EPREFIX so that it is
+never the empty string (so that CMAKE_SYSTEM_PREFIX_PATH remains
+correct)
+
+Original patch by Heiko Przybyl.
+Updated by Chris Reffett (cmake-2.8.8)
+Updated by Johannes Huber (cmake-2.8.9)
+Updated by Michael Palimaka (cmake-2.8.10)
+Updated by Chris Reffett (cmake-2.8.11)
+Updated by Michael Palimaka (cmake-3.0.0)
+Updated by Lars Wendler (cmake-3.9.0_rc2)
+Updated by Benda Xu (cmake-3.13.4)
+Updated by Lars Wendler (cmake-3.14.0_rc1)
+Updated by Lars Wendler (cmake-3.14.0_rc2)
+Updated by Lars Wendler (cmake-3.14.0_rc3)
+Updated by Jacob Floyd (cmake-3.19.2)
+--- a/Modules/Platform/Darwin.cmake
++++ b/Modules/Platform/Darwin.cmake
+@@ -138,9 +138,9 @@ set(CMAKE_LINK_LIBRARY_USING_WEAK_LIBRARY_SUPPORTED TRUE)
+ set(CMAKE_LINK_LIBRARY_USING_WHOLE_ARCHIVE "LINKER:-force_load <LIB_ITEM>")
+ set(CMAKE_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE)
+
+-# default to searching for frameworks first
++# default to searching for frameworks last
+ if(NOT DEFINED CMAKE_FIND_FRAMEWORK)
+- set(CMAKE_FIND_FRAMEWORK FIRST)
++ set(CMAKE_FIND_FRAMEWORK LAST)
+ endif()
+
+ # Older OS X linkers do not report their framework search path
+@@ -162,6 +162,9 @@ endif()
+
+ # set up the default search directories for frameworks
+ set(CMAKE_SYSTEM_FRAMEWORK_PATH
++ @GENTOO_PORTAGE_EPREFIX@MacOSX.sdk/System/Library/Frameworks
++ @GENTOO_PORTAGE_EPREFIX@Frameworks
++ @GENTOO_PORTAGE_EPREFIX@usr/lib
+ ~/Library/Frameworks
+ )
+ if(_CMAKE_OSX_SYSROOT_PATH)
+@@ -219,13 +222,15 @@ if(CMAKE_OSX_SYSROOT)
+ endif()
+ endif()
+
+-# default to searching for application bundles first
++# default to searching for application bundles last
+ if(NOT DEFINED CMAKE_FIND_APPBUNDLE)
+- set(CMAKE_FIND_APPBUNDLE FIRST)
++ set(CMAKE_FIND_APPBUNDLE LAST)
+ endif()
+ # set up the default search directories for application bundles
+ set(_apps_paths)
+ foreach(_path
++ @GENTOO_PORTAGE_EPREFIX@Applications
++ @GENTOO_PORTAGE_EPREFIX@usr/bin
+ "~/Applications"
+ "/Applications"
+ "${OSX_DEVELOPER_ROOT}/../Applications" # Xcode 4.3+
+--- a/Modules/Platform/UnixPaths.cmake
++++ b/Modules/Platform/UnixPaths.cmake
+@@ -30,7 +30,8 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
+ # synchronized
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+ # Standard
+- /usr/local /usr /
++ @GENTOO_PORTAGE_EPREFIX@usr/local @GENTOO_PORTAGE_EPREFIX@usr @GENTOO_PORTAGE_EPREFIX@
++ @GENTOO_HOST@/usr/local /usr /
+
+ # CMake install location
+ "${_CMAKE_INSTALL_DIR}"
+@@ -58,17 +59,33 @@ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+
+ # List common include file locations not under the common prefixes.
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+- # X11
+- /usr/include/X11
++ @GENTOO_PORTAGE_EPREFIX@usr/include
+ )
+
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+- # X11
+- /usr/lib/X11
++ @GENTOO_PORTAGE_GCCLIBDIR@/gcc
++ @GENTOO_PORTAGE_GCCLIBDIR@
++ @GENTOO_PORTAGE_EPREFIX@usr/lib64
++ @GENTOO_PORTAGE_EPREFIX@usr/libx32
++ @GENTOO_PORTAGE_EPREFIX@usr/lib32
++ @GENTOO_PORTAGE_EPREFIX@usr/lib
++ @GENTOO_PORTAGE_EPREFIX@lib
++ )
++
++list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
++ @GENTOO_PORTAGE_EPREFIX@usr/bin
++ @GENTOO_PORTAGE_EPREFIX@bin
+ )
+
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
++ @GENTOO_PORTAGE_GCCLIBDIR@/gcc
++ @GENTOO_PORTAGE_GCCLIBDIR@
++ @GENTOO_PORTAGE_EPREFIX@usr/lib64
++ @GENTOO_PORTAGE_EPREFIX@usr/libx32
++ @GENTOO_PORTAGE_EPREFIX@usr/lib32
++ @GENTOO_PORTAGE_EPREFIX@usr/lib
++ @GENTOO_PORTAGE_EPREFIX@lib
++ @GENTOO_HOST@/lib /usr/lib /usr/lib32 /usr/lib64 /usr/libx32
+ )
+
+ if(CMAKE_SYSROOT_COMPILE)
+@@ -81,11 +98,13 @@ endif()
+ # parsing the implicit directory information from compiler output.
+ set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @GENTOO_PORTAGE_EPREFIX@usr/include
++ @GENTOO_HOST@/usr/include
+ )
+ set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @GENTOO_PORTAGE_EPREFIX@usr/include
++ @GENTOO_HOST@/usr/include
+ )
+ set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
+--
+2.41.0
+
diff --git a/dev-build/cmake/files/cmake-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch b/dev-build/cmake/files/cmake-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
new file mode 100644
index 000000000000..5f9560c4aaa9
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
@@ -0,0 +1,54 @@
+From 30cf2aa7830a09b2bc4132eb3a3920fc0853b827 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 9 Jun 2023 09:57:18 +0100
+Subject: [PATCH 4/6] Ensure that the correct version of Qt is always used.
+
+With the introduction qt-4.8.6, Qt binaries were moved from /usr/bin to
+/usr/$(get_libdir)/qt4/bin, leaving behind in their place symlinks to qtchooser.
+
+There is no guarantee to which version of Qt these symlinks might point, so it
+is necessary to find the correct version explicitly.
+
+Once qmake is found, it is queried for the correct location of all other items.
+
+Bug: https://bugs.gentoo.org/547222
+
+[imported from cmake-3.5.2-FindQt4.patch.]
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Modules/FindQt4.cmake
++++ b/Modules/FindQt4.cmake
+@@ -478,13 +478,23 @@ function(_QT4_FIND_QMAKE QMAKE_NAMES QMAKE_RESULT VERSION_RESULT)
+
+ get_filename_component(qt_install_version "[HKEY_CURRENT_USER\\Software\\trolltech\\Versions;DefaultQtVersion]" NAME)
+
+- find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
+- PATHS
+- ENV QTDIR
+- "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]"
+- PATH_SUFFIXES bin
+- DOC "The qmake executable for the Qt installation to use"
+- )
++ if(CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo)
++ find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
++ PATHS
++ $ENV{EPREFIX}/usr/${CMAKE_INSTALL_LIBDIR}/qt4/bin
++ $ENV{EPREFIX}/usr/bin
++ NO_DEFAULT_PATH
++ DOC "The qmake executable for the Qt installation to use"
++ )
++ else()
++ find_program(QT_QMAKE_EXECUTABLE NAMES ${QMAKE_NAME}
++ PATHS
++ ENV QTDIR
++ "[HKEY_CURRENT_USER\\Software\\Trolltech\\Versions\\${qt_install_version};InstallDir]"
++ PATH_SUFFIXES bin
++ DOC "The qmake executable for the Qt installation to use"
++ )
++ endif()
+
+ set(major 0)
+ if (QT_QMAKE_EXECUTABLE)
+--
+2.41.0
+
diff --git a/dev-build/cmake/files/cmake-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch b/dev-build/cmake/files/cmake-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
new file mode 100644
index 000000000000..b8c9c1fe50b1
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
@@ -0,0 +1,63 @@
+From 91acf58e953fd6e609788e955d84eab9822d5aa4 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 9 Jun 2023 09:58:11 +0100
+Subject: [PATCH 5/6] Respect Gentoo's Python eclasses
+
+[imported from 2.8.10.2-FindPythonLibs.patch]
+[imported from 3.9.0_rc2-FindPythonInterp.patch]
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Modules/FindPythonInterp.cmake
++++ b/Modules/FindPythonInterp.cmake
+@@ -91,6 +91,11 @@ if(PythonInterp_FIND_VERSION)
+ else()
+ set(_PYTHON_FIND_OTHER_VERSIONS ${_PYTHON3_VERSIONS} ${_PYTHON2_VERSIONS} ${_PYTHON1_VERSIONS})
+ endif()
++
++if (CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo)
++ set(_Python_NAMES python)
++endif()
++
+ find_program(PYTHON_EXECUTABLE NAMES ${_Python_NAMES})
+
+ # Set up the versions we know about, in the order we will search. Always add
+@@ -115,12 +120,13 @@ unset(_PYTHON2_VERSIONS)
+ unset(_PYTHON3_VERSIONS)
+
+ # Search for newest python version if python executable isn't found
+-if(NOT PYTHON_EXECUTABLE)
++if(NOT PYTHON_EXECUTABLE AND NOT (CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo))
+ foreach(_CURRENT_VERSION IN LISTS _Python_VERSIONS)
+ set(_Python_NAMES python${_CURRENT_VERSION})
+ if(CMAKE_HOST_WIN32)
+ list(APPEND _Python_NAMES python)
+ endif()
++
+ find_program(PYTHON_EXECUTABLE
+ NAMES ${_Python_NAMES}
+ PATHS
+--- a/Modules/FindPythonLibs.cmake
++++ b/Modules/FindPythonLibs.cmake
+@@ -130,6 +130,19 @@ if(DEFINED PYTHON_VERSION_MAJOR AND DEFINED PYTHON_VERSION_MINOR)
+ endif()
+ list(APPEND _Python_VERSIONS ${_PYTHON_FIND_OTHER_VERSIONS})
+
++# Gentoo portage requires that you use exactly the given python version
++if (CMAKE_GENTOO_BUILD OR CMAKE_BUILD_TYPE STREQUAL Gentoo)
++ execute_process(COMMAND python -c "import sys; sys.stdout.write('.'.join([str(x) for x in sys.version_info[:2]]))"
++ OUTPUT_VARIABLE _Gentoo_Python_VERSION)
++ list(FIND _Python_VERSIONS "${_Gentoo_Python_VERSION}" _Gentoo_Python_INDEX)
++ if (_Gentoo_Python_INDEX EQUAL -1)
++ # the current Gentoo python version is not compatible with what is requested
++ set(_Python_VERSIONS)
++ else ()
++ set(_Python_VERSIONS "${_Gentoo_Python_VERSION}")
++ endif ()
++endif()
++
+ unset(_PYTHON_FIND_OTHER_VERSIONS)
+ unset(_PYTHON1_VERSIONS)
+ unset(_PYTHON2_VERSIONS)
+--
+2.41.0
+
diff --git a/dev-build/cmake/files/cmake-3.30.3-cudahostld.patch b/dev-build/cmake/files/cmake-3.30.3-cudahostld.patch
new file mode 100644
index 000000000000..f8b29730ea9f
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.30.3-cudahostld.patch
@@ -0,0 +1,23 @@
+From 0648f8f75c5f7044cca0f96d26e3ef6ed9440b3d Mon Sep 17 00:00:00 2001
+From: Paul Zander <negril.nx+gentoo@gmail.com>
+Date: Mon, 26 Aug 2024 17:04:04 +0200
+Subject: [PATCH] allow custom CMAKE_CUDA_LINK_LAUNCHER
+
+Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>
+
+diff --git a/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake b/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake
+index 3aa10a2..a58c3ec 100644
+--- a/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake
++++ b/Modules/Internal/CMakeNVCCParseImplicitInfo.cmake
+@@ -77,6 +77,11 @@ macro(cmake_nvcc_parse_implicit_info lang lang_var_)
+ if(_nvcc_link_line)
+ if("x${CMAKE_${lang}_SIMULATE_ID}" STREQUAL "xMSVC")
+ set(CMAKE_${lang}_HOST_LINK_LAUNCHER "${CMAKE_LINKER}")
++ elseif(DEFINED ENV{CUDAHOSTLD})
++ set(CMAKE_${lang}_HOST_LINK_LAUNCHER "$ENV{CUDAHOSTLD}")
++ string(APPEND _nvcc_log " env link launcher name: [${CMAKE_${lang}_HOST_LINK_LAUNCHER}]\n")
++ elseif(DEFINED CMAKE_CUDA_HOST_LINK_LAUNCHER)
++ string(APPEND _nvcc_log " set link launcher name: [${CMAKE_${lang}_HOST_LINK_LAUNCHER}]\n")
+ else()
+ #extract the compiler that is being used for linking
+ separate_arguments(_nvcc_link_line_args UNIX_COMMAND "${_nvcc_link_line}")
diff --git a/dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch b/dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
new file mode 100644
index 000000000000..0f8611771828
--- /dev/null
+++ b/dev-build/cmake/files/cmake-3.31.6-Prefer-pkgconfig-in-FindBLAS.patch
@@ -0,0 +1,28 @@
+diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake
+index 6d60c9d86a..b6664dfe26 100644
+--- a/Modules/FindBLAS.cmake
++++ b/Modules/FindBLAS.cmake
+@@ -7,6 +7,11 @@ FindBLAS
+
+ Find Basic Linear Algebra Subprograms (BLAS) library
+
++Version modified for Gentoo Linux.
++If a valid PkgConfig configuration is found, this overrides and cancels
++all further checks. The upstream behavior can be restored by defining
++GENTOO_REMOVE_CMAKE_BLAS_HACK
++
+ This module finds an installed Fortran library that implements the
+ `BLAS linear-algebra interface`_.
+
+@@ -281,6 +286,11 @@ function(_add_blas_target)
+ endif()
+ endfunction()
+
++# first, try PkgConfig
++if(NOT DEFINED GENTOO_REMOVE_CMAKE_BLAS_HACK)
++ set(BLA_PREFER_PKGCONFIG ON)
++endif()
++
+ if(CMAKE_Fortran_COMPILER_LOADED)
+ include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
+ else()
diff --git a/dev-build/cmake/files/cmake.vim b/dev-build/cmake/files/cmake.vim
new file mode 100644
index 000000000000..5cecd7d05b64
--- /dev/null
+++ b/dev-build/cmake/files/cmake.vim
@@ -0,0 +1,3 @@
+autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in runtime! indent/cmake.vim
+autocmd BufRead,BufNewFile *.cmake,CMakeLists.txt,*.cmake.in setf cmake
+autocmd BufRead,BufNewFile *.ctest,*.ctest.in setf cmake
diff --git a/dev-build/cmake/metadata.xml b/dev-build/cmake/metadata.xml
new file mode 100644
index 000000000000..0d5f2ea4307c
--- /dev/null
+++ b/dev-build/cmake/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <use>
+ <flag name="dap">Build debugger for CMake with Debug Adapter Protocol support via <pkg>dev-cpp/cppdap</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:cmake_project:cmake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/corrosion/Manifest b/dev-build/corrosion/Manifest
new file mode 100644
index 000000000000..e149c8c01d82
--- /dev/null
+++ b/dev-build/corrosion/Manifest
@@ -0,0 +1,4 @@
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST cc-1.0.73.crate 57880 BLAKE2B be8d7a25a54afdd759844e76aec61526fc2bd5ca09480e6cdd3bdcf27e5f9d3a88dc16cbcbf54cd021470a7cc521e1ad468116c112bbd30752bac0d5486939ac SHA512 980f012b90c6410144f6de4995048337e09214f19603076db6d4edb88e9ef9ac9e8c6e25569f66c2be3a47e99298f5886dafc102e1a9122316179aa26bc1c985
+DIST corrosion-0.5.2.tar.gz 91872 BLAKE2B bdf6de522cf7d3b220113f7533201d72dff7bab5adb95c4b9e33ec2638429c38e1541bd9a0a1313faa9fb398c05e8447c6bc871a57de883b7a5135f850c39770 SHA512 2510d4d0484fc12a6b429244b283515fda650b52ea74fbfdcc141298b452b20e2bef800b8f8a573a2bf509f4147ecb2d68e795cbd86cc8edd092f57ccff8b86b
+DIST corrosion-0.6.1.tar.gz 103330 BLAKE2B 312b2fb889b8744d2ee59dce6f646d51a597dccea02cda406cc66a9df72b5a6bca424f80a29f5719dc2732997d99144dfeaaa1554e6e2acde17289e45bbeed86 SHA512 2b0d1ccafd5472f2938d084995662c586f19cb5cd4ead20fa25e9516d595eb5f756cb2d9abb12dccfa944b52a1f8002c69a1a4d955409c9d194c6d885a6d48ca
diff --git a/dev-build/corrosion/corrosion-0.5.2.ebuild b/dev-build/corrosion/corrosion-0.5.2.ebuild
new file mode 100644
index 000000000000..7a0670910fb7
--- /dev/null
+++ b/dev-build/corrosion/corrosion-0.5.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ cc@1.0.73
+"
+
+RUST_MIN_VERSION="1.77.4"
+
+inherit cargo cmake
+
+DESCRIPTION="Marrying Rust and CMake - Easy Rust and C/C++ Integration!"
+HOMEPAGE="https://github.com/corrosion-rs/corrosion"
+SRC_URI="
+ https://github.com/corrosion-rs/corrosion/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ test? ( ${CARGO_CRATE_URIS} )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? ( dev-util/cbindgen )
+ >=dev-build/cmake-3.22
+"
+
+PATCHES=(
+ "${FILESDIR}/corrosion-0.5.2_fix_tests.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCORROSION_BUILD_TESTS=$(usex test)
+ )
+ cmake_src_configure
+}
diff --git a/dev-build/corrosion/corrosion-0.6.1-r1.ebuild b/dev-build/corrosion/corrosion-0.6.1-r1.ebuild
new file mode 100644
index 000000000000..999ac7255b43
--- /dev/null
+++ b/dev-build/corrosion/corrosion-0.6.1-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ bitflags@1.3.2
+ cc@1.0.73
+"
+
+RUST_MIN_VERSION="1.77.4"
+
+inherit cargo cmake
+
+DESCRIPTION="Marrying Rust and CMake - Easy Rust and C/C++ Integration!"
+HOMEPAGE="https://github.com/corrosion-rs/corrosion"
+SRC_URI="
+ https://github.com/corrosion-rs/corrosion/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ test? ( ${CARGO_CRATE_URIS} )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? ( dev-util/cbindgen )
+ >=dev-build/cmake-3.22
+"
+
+PATCHES=(
+ "${FILESDIR}/corrosion-0.6.1_cxxbridge-cmd_no_locked.patch"
+)
+
+CMAKE_SKIP_TESTS=(
+ # requires extensive rust-src cargo packages
+ custom_target_build
+ custom_target_run_test-exe
+ custom_target_run_rust-bin
+ install_lib_build
+ install_lib_run_main-static
+ install_lib_run_main-shared
+ # error[E0425]: cannot find function `print_line` in this scope
+ cargo_config_rustflags_build
+ # must be run but gets skipped sometimes?
+ cargo_config_rustflags_run_cargo_config_rustflags
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCORROSION_BUILD_TESTS=$(usex test)
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ # Some RUSTFLAGS like disabling debuginfo can mess with the tests
+ local -x RUSTFLAGS=
+ cmake_src_test
+}
diff --git a/dev-build/corrosion/files/corrosion-0.5.2_fix_tests.patch b/dev-build/corrosion/files/corrosion-0.5.2_fix_tests.patch
new file mode 100644
index 000000000000..fce435dd307b
--- /dev/null
+++ b/dev-build/corrosion/files/corrosion-0.5.2_fix_tests.patch
@@ -0,0 +1,44 @@
+From https://github.com/corrosion-rs/corrosion/pull/605
+From: Jonathan Schwender <schwenderjonathan@gmail.com>
+Date: Sun, 12 Jan 2025 10:44:14 +0100
+Subject: [PATCH 1/2] Disable rustup_proxy test if rustup is not installed
+
+The test only makes sense if rustc / cargo are behind a rustup proxy.
+If rustup is not installed, we can
+just disable the test.
+--- a/test/find_rust/CMakeLists.txt
++++ b/test/find_rust/CMakeLists.txt
+@@ -1,3 +1,7 @@
+ corrosion_tests_add_test(find_rust "")
+ corrosion_tests_add_test(rustup_proxy "")
+
++find_program(rustup rustup)
++if(NOT rustup)
++ set_tests_properties(rustup_proxy_build rustup_proxy_cleanup PROPERTIES DISABLED 1)
++endif()
+
+From 1127f5bc08491a1dccbb979f92f78a9a7264bba9 Mon Sep 17 00:00:00 2001
+From: Jonathan Schwender <schwenderjonathan@gmail.com>
+Date: Sun, 12 Jan 2025 11:05:52 +0100
+Subject: [PATCH 2/2] tests: Improve parse_target_triple warning regex.
+
+Improve the regex, to ensure it only matches against our specific
+warning. This should hopefully make it more robust, since
+new CMake versions can always introduce new warnings for our
+existing code.
+--- a/test/parse_target_triple/CMakeLists.txt
++++ b/test/parse_target_triple/CMakeLists.txt
+@@ -2,9 +2,9 @@ corrosion_tests_add_test(parse_target_triple "")
+ corrosion_tests_add_test(parse_target_triple_should_fail "")
+
+ set_tests_properties("parse_target_triple_build" PROPERTIES FAIL_REGULAR_EXPRESSION
+- "CMake Warning"
++ "CMake Warning at [^\r\n]*FindRust\.cmake:.*(\r)?\n[ \t]*Failed to parse target-triple `"
+ )
+
+ set_tests_properties("parse_target_triple_should_fail_build" PROPERTIES PASS_REGULAR_EXPRESSION
+- "CMake Warning"
+- )
+\ No newline at end of file
++ "CMake Warning at [^\r\n]*FindRust\.cmake:.*(\r)?\n[ \t]*Failed to parse target-triple `"
++ )
diff --git a/dev-build/corrosion/files/corrosion-0.6.1_cxxbridge-cmd_no_locked.patch b/dev-build/corrosion/files/corrosion-0.6.1_cxxbridge-cmd_no_locked.patch
new file mode 100644
index 000000000000..057aa5376c39
--- /dev/null
+++ b/dev-build/corrosion/files/corrosion-0.6.1_cxxbridge-cmd_no_locked.patch
@@ -0,0 +1,20 @@
+From https://github.com/corrosion-rs/corrosion/commit/4b954fa5a238d78a80aacf85a667f4b426926e71
+From: Jonathan Schwender <schwenderjonathan@gmail.com>
+Date: Sat, 16 May 2026 16:25:49 +0200
+Subject: [PATCH] Install cxxbridge-cmd without --locked
+
+cxxbridge-cmd does not have a lockfile,
+and adding --locked caused issues for users
+using offline mode.
+
+Fixes #672
+--- a/cmake/Corrosion.cmake
++++ b/cmake/Corrosion.cmake
+@@ -1862,7 +1862,6 @@ function(corrosion_add_cxxbridge cxx_target)
+ $CACHE{CORROSION_TOOLS_CARGO} install
+ cxxbridge-cmd
+ --version "${cxx_required_version}"
+- --locked
+ --root "${CMAKE_BINARY_DIR}/corrosion/cxxbridge_v${cxx_required_version}"
+ --quiet
+ # todo: use --target-dir to potentially reuse artifacts
diff --git a/dev-build/corrosion/metadata.xml b/dev-build/corrosion/metadata.xml
new file mode 100644
index 000000000000..c6d5363987be
--- /dev/null
+++ b/dev-build/corrosion/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>azamat.hackimov@gmail.com</email>
+ <name>Azamat H. Hackimov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">corrosion-rs/corrosion</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/dagger/Manifest b/dev-build/dagger/Manifest
new file mode 100644
index 000000000000..16c0284be518
--- /dev/null
+++ b/dev-build/dagger/Manifest
@@ -0,0 +1,2 @@
+DIST dagger-0.9.8-deps.tar.xz 257422892 BLAKE2B 94e5f2a98a7f40cb1a67deaf0db868f507b3abb4482c1dba9542816da289719fc9cb3d8da5b5b6b9e4e636c789d3d80879d3ab32947ebcebd53c49a3a755f81f SHA512 b0509b30bc73c81478c78c7d518c7705750bb72d390d23f15e090c24cdc8fcdf633237fb1c48f1772837ea2bc27c94637f7e457325514616cf7c67f7eb9125b4
+DIST dagger-0.9.8.tar.gz 7366092 BLAKE2B c32390c3e6a1ecf604cb733855b64c8951aedf48ea495285143b70520673924aedd247cac3424b82a0a2ab94588df8f89282819f4a5425bab50542a5600e614a SHA512 54d820867bac00a40dfa2c3f6fd1e650502395def2de975631f3ffaa4d7199014a12625d7eb71f5cf235cdbcfe54005c9980d3f0969a59492cc779489c294a44
diff --git a/dev-build/dagger/dagger-0.9.8.ebuild b/dev-build/dagger/dagger-0.9.8.ebuild
new file mode 100644
index 000000000000..6d0dfbaad93c
--- /dev/null
+++ b/dev-build/dagger/dagger-0.9.8.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module
+
+DESCRIPTION="ci/cd as code that runs anywhere"
+HOMEPAGE="http://dagger.io"
+SRC_URI="https://github.com/dagger/dagger/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+src_compile() {
+ ego build -o bin/dagger ./cmd/dagger
+}
+
+src_install() {
+dobin bin/*
+}
diff --git a/dev-build/dagger/metadata.xml b/dev-build/dagger/metadata.xml
new file mode 100644
index 000000000000..cbf03aefbf72
--- /dev/null
+++ b/dev-build/dagger/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">dagger/dagger</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/dolphin-plugins-makefileactions/Manifest b/dev-build/dolphin-plugins-makefileactions/Manifest
new file mode 100644
index 000000000000..f8a545f37a70
--- /dev/null
+++ b/dev-build/dolphin-plugins-makefileactions/Manifest
@@ -0,0 +1,2 @@
+DIST dolphin-plugins-25.12.3.tar.xz 337964 BLAKE2B ca59dcec606af363da0ffe6bba9de4165f94c738cb8249d0f2f93f294dbaa00a2d2a2a7bf739be01519a0f1faf868cad9ba87ea6447634c45814a2ab80c238b4 SHA512 e79f80cd17f1acb7a8160020625fa59a7983f7762c1c26c620cb856b87470cfede44fc7a0f1c14116b8fc237dfb0fa81e338bf41853bdce901b4015e47fc0b4d
+DIST dolphin-plugins-26.04.1.tar.xz 338580 BLAKE2B 435bbfe3e6f9b4cfb6f3186f1a43e45e52fb00938e1f27b3cff10ab579d01421f0838d5133dcd883d87d4ac766542d7da6450bca68c38a2a33d3704e15af0cd9 SHA512 b6aef3125c406c2ee4afd165274bcf45561a33406548851a383e0231b203e555c33762c313555e46b0ecd54107434eb712188aafda33a1aeae876d5fd484258b
diff --git a/dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-25.12.3.ebuild b/dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-25.12.3.ebuild
new file mode 100644
index 000000000000..76b4fb3035c5
--- /dev/null
+++ b/dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-25.12.3.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+KDE_ORG_NAME="dolphin-plugins"
+MY_PLUGIN_NAME="makefileactions"
+PVCUT=$(ver_cut 1-3)
+KFMIN=6.19.0
+QTMIN=6.10.1
+inherit ecm gear.kde.org
+
+DESCRIPTION="Dolphin plugin for Makefile targets integration"
+HOMEPAGE="https://apps.kde.org/dolphin_plugins/"
+
+LICENSE="GPL-2+"
+SLOT="6"
+KEYWORDS="amd64 arm64 ~x86"
+IUSE=""
+
+DEPEND="
+ >=dev-qt/qtbase-${QTMIN}:6[concurrent,gui,widgets]
+ >=kde-apps/dolphin-${PVCUT}:6
+ >=kde-frameworks/kconfig-${KFMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ >=kde-frameworks/kio-${KFMIN}:6
+ >=kde-frameworks/kjobwidgets-${KFMIN}:6
+"
+RDEPEND="${DEPEND}
+ !<kde-apps/dolphin-plugins-subversion-24.08.2-r1
+ >=kde-apps/dolphin-plugins-common-${PV}
+"
+
+src_prepare() {
+ ecm_src_prepare
+ ecm_punt_po_install
+ # solid, qtdbus only required by mountiso
+ ecm_punt_qt_module DBus
+ ecm_punt_kf_module Solid
+ # kxmlgui, qtnetwork only required by dropbox
+ ecm_punt_qt_module Network
+ ecm_punt_kf_module XmlGui
+ # kcompletion, ktextwidgets only required by other plugins
+ ecm_punt_kf_module Completion
+ ecm_punt_kf_module TextWidgets
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_${MY_PLUGIN_NAME}=ON
+ -DBUILD_bazaar=OFF
+ -DBUILD_dropbox=OFF
+ -DBUILD_git=OFF
+ -DBUILD_hg=OFF
+ -DBUILD_mountiso=OFF
+ -DBUILD_svn=OFF
+ )
+ ecm_src_configure
+}
diff --git a/dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-26.04.1.ebuild b/dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-26.04.1.ebuild
new file mode 100644
index 000000000000..f7f3994df692
--- /dev/null
+++ b/dev-build/dolphin-plugins-makefileactions/dolphin-plugins-makefileactions-26.04.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+KDE_ORG_NAME="dolphin-plugins"
+MY_PLUGIN_NAME="makefileactions"
+PVCUT=$(ver_cut 1-3)
+KFMIN=6.22.0
+QTMIN=6.10.1
+inherit ecm gear.kde.org
+
+DESCRIPTION="Dolphin plugin for Makefile targets integration"
+HOMEPAGE="https://apps.kde.org/dolphin_plugins/"
+
+LICENSE="GPL-2+"
+SLOT="6"
+KEYWORDS="amd64 arm64 ~x86"
+IUSE=""
+
+DEPEND="
+ >=dev-qt/qtbase-${QTMIN}:6[concurrent,gui,widgets]
+ >=kde-apps/dolphin-${PVCUT}:6
+ >=kde-frameworks/kconfig-${KFMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ >=kde-frameworks/kio-${KFMIN}:6
+ >=kde-frameworks/kjobwidgets-${KFMIN}:6
+"
+RDEPEND="${DEPEND}
+ !<kde-apps/dolphin-plugins-subversion-24.08.2-r1
+ >=kde-apps/dolphin-plugins-common-${PV}
+"
+
+src_prepare() {
+ ecm_src_prepare
+ ecm_punt_po_install
+ # solid, qtdbus only required by mountiso
+ ecm_punt_qt_module DBus
+ ecm_punt_kf_module Solid
+ # kxmlgui, qtnetwork only required by dropbox
+ ecm_punt_qt_module Network
+ ecm_punt_kf_module XmlGui
+ # kcompletion, ktextwidgets only required by other plugins
+ ecm_punt_kf_module Completion
+ ecm_punt_kf_module TextWidgets
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_${MY_PLUGIN_NAME}=ON
+ -DBUILD_bazaar=OFF
+ -DBUILD_dropbox=OFF
+ -DBUILD_git=OFF
+ -DBUILD_hg=OFF
+ -DBUILD_mountiso=OFF
+ -DBUILD_svn=OFF
+ )
+ ecm_src_configure
+}
diff --git a/dev-build/dolphin-plugins-makefileactions/metadata.xml b/dev-build/dolphin-plugins-makefileactions/metadata.xml
new file mode 100644
index 000000000000..24e0d59c569a
--- /dev/null
+++ b/dev-build/dolphin-plugins-makefileactions/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>kde@gentoo.org</email>
+ <name>Gentoo KDE Project</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://bugs.kde.org/enter_bug.cgi?product=dolphin</bugs-to>
+ <remote-id type="kde-invent">sdk/dolphin-plugins</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/fobis/Manifest b/dev-build/fobis/Manifest
new file mode 100644
index 000000000000..0541b4c26651
--- /dev/null
+++ b/dev-build/fobis/Manifest
@@ -0,0 +1,2 @@
+DIST FoBiS.py-3.1.0.tar.gz 50502 BLAKE2B b89865372c1d31ea216de1f5ead15f790ab0c09dbf70da9c2ee9100f02db1ff29a2167b3bc3c18319d5a2028c7d672d97c15cfdcd74b5166c0c00d6e8214ef35 SHA512 f5110ecd2ebc17e6c9a7e53b54957b4ac104eed42ffb34b0b2061f4cf43ac847ed3160d5e92c7f9211c28a4bbeaa9f271bcd6e07f0edd2cbfd60f8cb102ac27c
+DIST fobis-3.2.1.tar.gz 52650 BLAKE2B 92f02c5a78f214b4e0bc4f98e0c5e49fc9ca7916cfc8e2fc3000513a15cbc163048939f379d8c9654349d49a5a9291ba3d20cf0711e130b7e5d31c7efc46ff39 SHA512 8637927d7d083c7982e05361eb68307022d7bf3aee38b9111ce69e560cb8066fe63dbf5e0cec82f46098eb84b26643a6a89a622804f454024e1998d697b6eec8
diff --git a/dev-build/fobis/fobis-3.1.0.ebuild b/dev-build/fobis/fobis-3.1.0.ebuild
new file mode 100644
index 000000000000..725a2f7d92ce
--- /dev/null
+++ b/dev-build/fobis/fobis-3.1.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYPI_PN="FoBiS.py"
+PYPI_NO_NORMALIZE=1
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="FoBiS.py, a Fortran Building System for poor men"
+HOMEPAGE="https://github.com/szaghi/FoBiS"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="graphviz"
+RESTRICT="mirror"
+
+RDEPEND="
+ graphviz? ( dev-python/graphviz[${PYTHON_USEDEP}] )
+"
diff --git a/dev-build/fobis/fobis-3.2.1.ebuild b/dev-build/fobis/fobis-3.2.1.ebuild
new file mode 100644
index 000000000000..54ec1913193b
--- /dev/null
+++ b/dev-build/fobis/fobis-3.2.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYPI_PN="FoBiS.py"
+PYPI_NO_NORMALIZE=1
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="FoBiS.py, a Fortran Building System for poor men"
+HOMEPAGE="https://github.com/szaghi/FoBiS"
+SRC_URI="$(pypi_sdist_url "${PN}_py" "${PV}") -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="graphviz"
+RESTRICT="mirror"
+
+RDEPEND="
+ graphviz? ( dev-python/graphviz[${PYTHON_USEDEP}] )
+"
diff --git a/dev-build/fobis/metadata.xml b/dev-build/fobis/metadata.xml
new file mode 100644
index 000000000000..a9a19108725b
--- /dev/null
+++ b/dev-build/fobis/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>torokhov-s-a@yandex.ru</email>
+ <name>Sergey Torokhov</name>
+</maintainer>
+<longdescription lang="en">
+ FoBiS.py, a Fortran Building System for poor men, is a KISS tool
+ for automatic building modern Fortran projects, it being able
+ to automatically resolve inter-modules dependency hierarchy.
+</longdescription>
+<use>
+ <flag name="graphviz">Add support of generation of a dependencies graph</flag>
+</use>
+<upstream>
+ <remote-id type="pypi">FoBiS.py</remote-id>
+ <remote-id type="github">szaghi/FoBiS</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-build/fpm/Manifest b/dev-build/fpm/Manifest
new file mode 100644
index 000000000000..c29ee7b11ed0
--- /dev/null
+++ b/dev-build/fpm/Manifest
@@ -0,0 +1,8 @@
+DIST fpm-0.9.0.F90 1371069 BLAKE2B df3439ca50176f0a8e3b2f48d130dc232da343d7fe5451af73b5bfa72112cfc7e08bc5c0dbaced2c5b5c72f48fc91d059ca533b4b47df23d1e579ebd03690078 SHA512 62f17491a2540d3b5f68435a87916b5e88bbd903a87cb4ecdfaa25e3024357e070c27e51a1f5ccdf22fb05ac8054ed83bb83e8a13c8639a47be822ff1fda9060
+DIST fpm-0.9.0.tar.gz 219603 BLAKE2B cb282913c1c6dd6440e6c7b982e7a5ffd76a2e8177b70da22ee36946feb62229919b8f40a4747a2f0cd8b2c589ee111f063cab50ee0f0bee295cd8cf8946b46a SHA512 b80141408a2192efdd3c0777eb2df01de95ee5740332468ac95f89f6e6199c88c2d4180934ce552403572cadfc755395eb669336fcc9d3d00cb8ee0607205397
+DIST fpm-0.10.0.F90 1413145 BLAKE2B 8b0121b2436cdc6d0d82783a0d083afedb8bf0eb5f8221f140e1a1bea0b03475516f9309b079bed10b85e442ebb8f71f2ddcaddc3647cd56e1d4f32fba27be23 SHA512 dcd97bbe39469040848efef915edc8c6f4af5a5f34713a021e6b58761a3f3ea6301fc8a7cbde7c93ca5446964e2f0bd4a9b9e915acf24bf230ea557ca74b23ef
+DIST fpm-0.10.0.tar.gz 227016 BLAKE2B a6d9592fbfe3115ab43675cf28036dde69df0e2bcf3c7d3d98278566450328e6c3f21777efd8374177e615fcc123babce9a456f08ad1d03e790c16b95547edf2 SHA512 8b81e564ee2d3307472c1627e16b4cc9e13288c40c7ff3ea95f0c55cc4315da34d9319de5256aab9e602dd751c51be8f1fc27711f31fbf22580f58788822b69a
+DIST fpm-0.11.0.F90 1580806 BLAKE2B 52eaca18d4de4011c61d83914568ee07063a8db679996d7dae1719778d5153bed430036129bb514ab0c31e8d500db1ee842f329cf32871a6e8abcee78d2337ac SHA512 0c47fbc593b529c9a3095b12ef6681a8b2f59e2509ca64ad087756d1b400e45f6cbeddb9dd7d21f47ba4658f59a1abf40c626ef52b74b562d20c416c3ec2866c
+DIST fpm-0.11.0.tar.gz 263484 BLAKE2B 1507a7d7e2a823831893d9c2b3411f88540634434822eb1034eebee8c1dceac99d368506805275a8ad552b3f7de3affeea7e935aa6390b6d15f3488cd4b4b76d SHA512 40e4ee5bc16e4d9d336033e3b3f3823e12edd12bcc0af114c2e531af8754b20d76ef0d3f1c62d6a0fe444878d5dd772570cf20bff8fdd1f7a24b03a943be5df1
+DIST fpm-0.12.0.F90 1728278 BLAKE2B 27ea8d0959bea849c3358300b34b54d7acfdb72afaad4d5e3b545794e34c9e0ad0a1fceb0c133d659a6f7515a3610614d31cadf5ff10f0290d377fd60e8fdc6d SHA512 4a41f2f6bdcc7839af5567e07b7704004cc12d41d4a8ebf26c6ef88d054056c2da2bf6b5f699a5b086d69d92a817756c5dd44e4b69f0272ebab983cab3d2e57d
+DIST fpm-0.12.0.tar.gz 290239 BLAKE2B 6af2c0955e7472c092cb3d634766e39fae87c20caa1b3beda725bf3ac75b4a3d91b3174636f78f2a1b6590240436beebe7f7d7acda8e54eb2ad37342ab8214f1 SHA512 556393d58b5ccdbe6168c143e42a294ec8d9b6fb094d3a137afd2fe13ecd6d2d373742c696ebb152a2aac414ea0dad4252b8c094c25d631cf8fa8dab8ef71a21
diff --git a/dev-build/fpm/files/fpm-0.10.0_fpm_toml.patch b/dev-build/fpm/files/fpm-0.10.0_fpm_toml.patch
new file mode 100644
index 000000000000..da03a4761edf
--- /dev/null
+++ b/dev-build/fpm/files/fpm-0.10.0_fpm_toml.patch
@@ -0,0 +1,23 @@
+diff -Naur a/fpm.toml b/fpm.toml
+--- a/fpm.toml
++++ b/fpm.toml
+@@ -10,16 +10,9 @@
+ macros=["FPM_RELEASE_VERSION={version}"]
+
+ [dependencies]
+-toml-f.git = "https://github.com/toml-f/toml-f"
+-toml-f.rev = "d7b892b1d074b7cfc5d75c3e0eb36ebc1f7958c1"
+-M_CLI2.git = "https://github.com/urbanjost/M_CLI2.git"
+-M_CLI2.rev = "7264878cdb1baff7323cc48596d829ccfe7751b8"
+-fortran-regex.git = "https://github.com/perazz/fortran-regex"
+-fortran-regex.tag = "1.1.2"
+-jonquil.git = "https://github.com/toml-f/jonquil"
+-jonquil.rev = "4fbd4cf34d577c0fd25e32667ee9e41bf231ece8"
+-fortran-shlex.git = "https://github.com/perazz/fortran-shlex"
+-fortran-shlex.tag = "1.0.1"
++[build]
++external-modules = ["tomlf","m_cli2","regex_module","shlex_module","jonquil"]
++link = ["toml-f","M_CLI2","fortran-regex","fortran-shlex","jonquil"]
+
+ [[test]]
+ name = "cli-test"
diff --git a/dev-build/fpm/files/fpm-0.11.0_fpm_toml.patch b/dev-build/fpm/files/fpm-0.11.0_fpm_toml.patch
new file mode 100644
index 000000000000..d05134a93c5e
--- /dev/null
+++ b/dev-build/fpm/files/fpm-0.11.0_fpm_toml.patch
@@ -0,0 +1,23 @@
+diff -Naur a/fpm.toml b/fpm.toml
+--- a/fpm.toml
++++ b/fpm.toml
+@@ -10,16 +10,9 @@
+ macros=["FPM_RELEASE_VERSION={version}"]
+
+ [dependencies]
+-toml-f.git = "https://github.com/toml-f/toml-f"
+-toml-f.rev = "d7b892b1d074b7cfc5d75c3e0eb36ebc1f7958c1"
+-M_CLI2.git = "https://github.com/urbanjost/M_CLI2.git"
+-M_CLI2.rev = "7264878cdb1baff7323cc48596d829ccfe7751b8"
+-fortran-regex.git = "https://github.com/perazz/fortran-regex"
+-fortran-regex.tag = "1.1.2"
+-jonquil.git = "https://github.com/toml-f/jonquil"
+-jonquil.rev = "4fbd4cf34d577c0fd25e32667ee9e41bf231ece8"
+-fortran-shlex.git = "https://github.com/perazz/fortran-shlex"
+-fortran-shlex.tag = "1.0.1"
++[build]
++external-modules = ["tomlf","tomlf_constants","tomlf_de_parser","m_cli2","regex_module","shlex_module","jonquil"]
++link = ["toml-f","M_CLI2","fortran-regex","fortran-shlex","jonquil"]
+
+ [[test]]
+ name = "cli-test"
diff --git a/dev-build/fpm/files/fpm-0.12.0_fpm_toml.patch b/dev-build/fpm/files/fpm-0.12.0_fpm_toml.patch
new file mode 100644
index 000000000000..9bbdf35b9ba5
--- /dev/null
+++ b/dev-build/fpm/files/fpm-0.12.0_fpm_toml.patch
@@ -0,0 +1,23 @@
+diff -Naur a/fpm.toml b/fpm.toml
+--- a/fpm.toml
++++ b/fpm.toml
+@@ -10,16 +10,9 @@
+ macros=["FPM_RELEASE_VERSION={version}"]
+
+ [dependencies]
+-toml-f.git = "https://github.com/toml-f/toml-f"
+-toml-f.rev = "d7b892b1d074b7cfc5d75c3e0eb36ebc1f7958c1"
+-M_CLI2.git = "https://github.com/urbanjost/M_CLI2.git"
+-M_CLI2.rev = "7264878cdb1baff7323cc48596d829ccfe7751b8"
+-fortran-regex.git = "https://github.com/perazz/fortran-regex"
+-fortran-regex.tag = "1.1.2"
+-jonquil.git = "https://github.com/toml-f/jonquil"
+-jonquil.rev = "4fbd4cf34d577c0fd25e32667ee9e41bf231ece8"
+-fortran-shlex.git = "https://github.com/perazz/fortran-shlex"
+-fortran-shlex.tag = "2.0.0"
++[build]
++external-modules = ["tomlf","tomlf_constants","tomlf_de_parser","m_cli2","regex_module","shlex_module","jonquil"]
++link = ["toml-f","M_CLI2","fortran-regex","fortran-shlex","jonquil"]
+
+ [[test]]
+ name = "cli-test"
diff --git a/dev-build/fpm/files/fpm-0.9.0_fpm_toml.patch b/dev-build/fpm/files/fpm-0.9.0_fpm_toml.patch
new file mode 100644
index 000000000000..8765e164f516
--- /dev/null
+++ b/dev-build/fpm/files/fpm-0.9.0_fpm_toml.patch
@@ -0,0 +1,22 @@
+diff -Naur a/fpm.toml b/fpm.toml
+--- a/fpm.toml
++++ b/fpm.toml
+@@ -9,15 +9,9 @@
+ [preprocess.cpp]
+ macros=["FPM_RELEASE_VERSION={version}"]
+
+-[dependencies]
+-toml-f.git = "https://github.com/toml-f/toml-f"
+-toml-f.rev = "d7b892b1d074b7cfc5d75c3e0eb36ebc1f7958c1"
+-M_CLI2.git = "https://github.com/urbanjost/M_CLI2.git"
+-M_CLI2.rev = "7264878cdb1baff7323cc48596d829ccfe7751b8"
+-fortran-regex.git = "https://github.com/perazz/fortran-regex"
+-fortran-regex.tag = "1.1.2"
+-jonquil.git = "https://github.com/toml-f/jonquil"
+-jonquil.rev = "4c27c8c1e411fa8790dffcf8c3fa7a27b6322273"
++[build]
++external-modules = ["tomlf","m_cli2","regex_module","jonquil"]
++link = ["toml-f","M_CLI2","fortran-regex","jonquil"]
+
+ [[test]]
+ name = "cli-test"
diff --git a/dev-build/fpm/fpm-0.10.0.ebuild b/dev-build/fpm/fpm-0.10.0.ebuild
new file mode 100644
index 000000000000..d9c7cbf7b07b
--- /dev/null
+++ b/dev-build/fpm/fpm-0.10.0.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_STANDARD="2003"
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fortran-2 python-any-r1 toolchain-funcs
+
+DESCRIPTION="Fortran Package Manager (fpm)"
+HOMEPAGE="https://fpm.fortran-lang.org"
+SRC_URI="
+ https://github.com/fortran-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/fortran-lang/fpm/releases/download/v${PV}/${P}.F90
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp doc test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ dev-libs/fortran-regex
+ dev-libs/fortran-shlex:0/1
+ dev-libs/jonquil:0/2
+ dev-libs/toml-f:0/4
+ dev-libs/M_CLI2
+"
+
+RDEPEND="
+ ${CDEPEND}
+ dev-vcs/git
+"
+
+DEPEND="
+ ${CDEPEND}
+ doc? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ app-text/ford[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( LICENSE PACKAGING.md README.md )
+
+PATCHES="${FILESDIR}/${P}_fpm_toml.patch"
+
+BSDIR="build/bootstrap" # Bootstrap directory path
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+set_build_flags() {
+ OMPFLAG=""
+ if use openmp ; then
+ case $(tc-getFC) in
+ *gfortran* )
+ OMPFLAG="-fopenmp" ;;
+ * )
+ die "Sorry, only GNU gfortran is currently supported in the ebuild" ;;
+ esac
+ fi
+
+ BUILD_FLAGS=( --compiler "$(tc-getFC)"
+ --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/fortran-regex \
+ -I/usr/include/fortran-shlex \
+ -I/usr/include/jonquil/modules \
+ -I/usr/include/M_CLI2 \
+ -I/usr/include/toml-f/modules"
+ --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}"
+ --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}"
+ --archiver "$(tc-getAR)" --link-flag "${LDFLAGS}" )
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ fortran-2_pkg_setup
+ python-any-r1_pkg_setup
+ set_build_flags
+}
+
+src_prepare() {
+ default
+
+ mkdir -p "${BSDIR}" || die
+ cp "${DISTDIR}/${P}.F90" "${BSDIR}/" || die
+
+ # Use favicon.png instead remote icon
+ sed -i -e 's#https://fortran-lang.org/assets/img/fortran_logo_512x512.png#favicon.png#' docs.md || die
+}
+
+src_compile() {
+ default
+
+ # Build a bootstrap binary from the single source version
+ "$(tc-getFC)" -J "${BSDIR}" -o "${BSDIR}"/fpm "${BSDIR}/${P}.F90" || die
+
+ # Use the bootstrap binary to build the feature complete fpm version
+ "${BSDIR}"/fpm build --verbose "${BUILD_FLAGS[@]}" || die
+
+ if use doc ; then
+ einfo "Build API documentation:"
+ ford docs.md || die
+ fi
+}
+
+src_test() {
+ "${BSDIR}"/fpm test --verbose "${BUILD_FLAGS[@]}" || die
+}
+
+src_install() {
+ # Set prefix and pass all used env flags to avoid recompiling with default values
+ "${BSDIR}"/fpm install --prefix "${ED}/usr" "${BUILD_FLAGS[@]}" || die
+
+ use doc && HTML_DOCS=( "${S}"/fpm-doc/. )
+ einstalldocs
+}
diff --git a/dev-build/fpm/fpm-0.11.0.ebuild b/dev-build/fpm/fpm-0.11.0.ebuild
new file mode 100644
index 000000000000..38ea74dfd38f
--- /dev/null
+++ b/dev-build/fpm/fpm-0.11.0.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_STANDARD="2003"
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fortran-2 python-any-r1 toolchain-funcs
+
+DESCRIPTION="Fortran Package Manager (fpm)"
+HOMEPAGE="https://fpm.fortran-lang.org"
+SRC_URI="
+ https://github.com/fortran-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/fortran-lang/fpm/releases/download/v${PV}/${P}.F90
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp doc test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ dev-libs/fortran-regex
+ dev-libs/fortran-shlex:0/1
+ dev-libs/jonquil:0/2
+ dev-libs/toml-f:0/4
+ >=dev-libs/M_CLI2-3.2.0
+"
+
+RDEPEND="
+ ${CDEPEND}
+ dev-vcs/git
+"
+
+DEPEND="
+ ${CDEPEND}
+ doc? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ app-text/ford[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( LICENSE PACKAGING.md README.md )
+
+PATCHES="${FILESDIR}/${P}_fpm_toml.patch"
+
+BSDIR="build/bootstrap" # Bootstrap directory path
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+set_build_flags() {
+ OMPFLAG=""
+ if use openmp ; then
+ case $(tc-getFC) in
+ *gfortran* )
+ OMPFLAG="-fopenmp" ;;
+ * )
+ die "Sorry, only GNU gfortran is currently supported in the ebuild" ;;
+ esac
+ fi
+
+ BUILD_FLAGS=( --compiler "$(tc-getFC)"
+ --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/fortran-regex \
+ -I/usr/include/fortran-shlex \
+ -I/usr/include/jonquil/modules \
+ -I/usr/include/M_CLI2 \
+ -I/usr/include/toml-f/modules"
+ --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}"
+ --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}"
+ --archiver "$(tc-getAR)" --link-flag "${LDFLAGS}" )
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ fortran-2_pkg_setup
+ python-any-r1_pkg_setup
+ set_build_flags
+}
+
+src_prepare() {
+ default
+
+ mkdir -p "${BSDIR}" || die
+ cp "${DISTDIR}/${P}.F90" "${BSDIR}/" || die
+
+ # Use favicon.png instead remote icon
+ sed -i -e 's#https://fortran-lang.org/assets/img/fortran_logo_512x512.png#favicon.png#' docs.md || die
+}
+
+src_compile() {
+ default
+
+ # Build a bootstrap binary from the single source version
+ "$(tc-getFC)" -J "${BSDIR}" -o "${BSDIR}"/fpm "${BSDIR}/${P}.F90" || die
+
+ # Use the bootstrap binary to build the feature complete fpm version
+ "${BSDIR}"/fpm build --verbose "${BUILD_FLAGS[@]}" || die
+
+ if use doc ; then
+ einfo "Build API documentation:"
+ ford docs.md || die
+ fi
+}
+
+src_test() {
+ "${BSDIR}"/fpm test --verbose "${BUILD_FLAGS[@]}" || die
+}
+
+src_install() {
+ # Set prefix and pass all used env flags to avoid recompiling with default values
+ "${BSDIR}"/fpm install --prefix "${ED}/usr" "${BUILD_FLAGS[@]}" || die
+
+ use doc && HTML_DOCS=( "${S}"/fpm-doc/. )
+ einstalldocs
+}
diff --git a/dev-build/fpm/fpm-0.12.0.ebuild b/dev-build/fpm/fpm-0.12.0.ebuild
new file mode 100644
index 000000000000..fdcfb34809f6
--- /dev/null
+++ b/dev-build/fpm/fpm-0.12.0.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_STANDARD="2003"
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fortran-2 python-any-r1 toolchain-funcs
+
+DESCRIPTION="Fortran Package Manager (fpm)"
+HOMEPAGE="https://fpm.fortran-lang.org"
+SRC_URI="
+ https://github.com/fortran-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/fortran-lang/fpm/releases/download/v${PV}/${P}.F90
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp doc test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ dev-libs/fortran-regex
+ dev-libs/fortran-shlex:0/2
+ dev-libs/jonquil:0/2
+ dev-libs/toml-f:0/4
+ >=dev-libs/M_CLI2-3.2.0
+"
+
+RDEPEND="
+ ${CDEPEND}
+ dev-vcs/git
+"
+
+DEPEND="
+ ${CDEPEND}
+ doc? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ app-text/ford[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( LICENSE PACKAGING.md README.md )
+
+PATCHES="${FILESDIR}/${P}_fpm_toml.patch"
+
+BSDIR="build/bootstrap" # Bootstrap directory path
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+set_build_flags() {
+ OMPFLAG=""
+ if use openmp ; then
+ case $(tc-getFC) in
+ *gfortran* )
+ OMPFLAG="-fopenmp" ;;
+ * )
+ die "Sorry, only GNU gfortran is currently supported in the ebuild" ;;
+ esac
+ fi
+
+ BUILD_FLAGS=( --compiler "$(tc-getFC)"
+ --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/fortran-regex \
+ -I/usr/include/fortran-shlex \
+ -I/usr/include/jonquil/modules \
+ -I/usr/include/M_CLI2 \
+ -I/usr/include/toml-f/modules"
+ --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}"
+ --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}"
+ --archiver "$(tc-getAR)" --link-flag "${LDFLAGS}" )
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ fortran-2_pkg_setup
+ python-any-r1_pkg_setup
+ set_build_flags
+}
+
+src_prepare() {
+ default
+
+ mkdir -p "${BSDIR}" || die
+ cp "${DISTDIR}/${P}.F90" "${BSDIR}/" || die
+
+ # Use favicon.png instead remote icon
+ sed -i -e 's#https://fortran-lang.org/assets/img/fortran_logo_512x512.png#favicon.png#' docs.md || die
+}
+
+src_compile() {
+ default
+
+ # Build a bootstrap binary from the single source version
+ "$(tc-getFC)" -J "${BSDIR}" -o "${BSDIR}"/fpm "${BSDIR}/${P}.F90" || die
+
+ # Use the bootstrap binary to build the feature complete fpm version
+ "${BSDIR}"/fpm build --verbose "${BUILD_FLAGS[@]}" || die
+
+ if use doc ; then
+ einfo "Build API documentation:"
+ ford docs.md || die
+ fi
+}
+
+src_test() {
+ "${BSDIR}"/fpm test --verbose "${BUILD_FLAGS[@]}" || die
+}
+
+src_install() {
+ # Set prefix and pass all used env flags to avoid recompiling with default values
+ "${BSDIR}"/fpm install --prefix "${ED}/usr" "${BUILD_FLAGS[@]}" || die
+
+ use doc && HTML_DOCS=( "${S}"/fpm-doc/. )
+ einstalldocs
+}
diff --git a/dev-build/fpm/fpm-0.9.0.ebuild b/dev-build/fpm/fpm-0.9.0.ebuild
new file mode 100644
index 000000000000..61c3dabf6254
--- /dev/null
+++ b/dev-build/fpm/fpm-0.9.0.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+FORTRAN_STANDARD="2003"
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fortran-2 python-any-r1 toolchain-funcs
+
+DESCRIPTION="Fortran Package Manager (fpm)"
+HOMEPAGE="https://fpm.fortran-lang.org"
+SRC_URI="
+ https://github.com/fortran-lang/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/fortran-lang/fpm/releases/download/v${PV}/${P}.F90
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="openmp doc test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ dev-libs/fortran-regex
+ dev-libs/jonquil:0/2
+ dev-libs/toml-f:0/4
+ dev-libs/M_CLI2
+"
+
+RDEPEND="
+ ${CDEPEND}
+ dev-vcs/git
+"
+
+DEPEND="
+ ${CDEPEND}
+ doc? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ app-text/ford[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( LICENSE PACKAGING.md README.md )
+
+PATCHES="${FILESDIR}/${P}_fpm_toml.patch"
+
+BSDIR="build/bootstrap" # Bootstrap directory path
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+set_build_flags() {
+ OMPFLAG=""
+ if use openmp ; then
+ case $(tc-getFC) in
+ *gfortran* )
+ OMPFLAG="-fopenmp" ;;
+ * )
+ die "Sorry, only GNU gfortran is currently supported in the ebuild" ;;
+ esac
+ fi
+
+ BUILD_FLAGS=( --compiler "$(tc-getFC)"
+ --flag "${FCFLAGS} ${OMPFLAG} -I/usr/include/fortran-regex -I/usr/include/jonquil/modules \
+ -I/usr/include/M_CLI2 -I/usr/include/toml-f/modules"
+ --c-compiler "$(tc-getCC)" --c-flag "${CFLAGS}"
+ --cxx-compiler "$(tc-getCXX)" --cxx-flag "${CXXFLAGS}"
+ --archiver "$(tc-getAR)" --link-flag "${LDFLAGS}" )
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ fortran-2_pkg_setup
+ python-any-r1_pkg_setup
+ set_build_flags
+}
+
+src_prepare() {
+ default
+
+ mkdir -p "${BSDIR}" || die
+ cp "${DISTDIR}/${P}.F90" "${BSDIR}/" || die
+
+ # Use favicon.png instead remote icon
+ sed -i -e 's#https://fortran-lang.org/assets/img/fortran_logo_512x512.png#favicon.png#' docs.md || die
+}
+
+src_compile() {
+ default
+
+ # Build a bootstrap binary from the single source version
+ "$(tc-getFC)" -J "${BSDIR}" -o "${BSDIR}"/fpm "${BSDIR}/${P}.F90" || die
+
+ # Use the bootstrap binary to build the feature complete fpm version
+ "${BSDIR}"/fpm build --verbose "${BUILD_FLAGS[@]}" || die
+
+ if use doc ; then
+ einfo "Build API documentation:"
+ ford docs.md || die
+ fi
+}
+
+src_test() {
+ "${BSDIR}"/fpm test --verbose "${BUILD_FLAGS[@]}" || die
+}
+
+src_install() {
+ # Set prefix and pass all used env flags to avoid recompiling with default values
+ "${BSDIR}"/fpm install --prefix "${ED}/usr" "${BUILD_FLAGS[@]}" || die
+
+ use doc && HTML_DOCS=( "${S}"/fpm-doc/. )
+ einstalldocs
+}
diff --git a/dev-build/fpm/metadata.xml b/dev-build/fpm/metadata.xml
new file mode 100644
index 000000000000..fac9ec00a9d6
--- /dev/null
+++ b/dev-build/fpm/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>torokhov-s-a@yandex.ru</email>
+ <name>Sergey Torokhov</name>
+ </maintainer>
+ <use>
+ <flag name="openmp">OpenMP support to build targets in parallel where possible</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">fortran-lang/fpm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/fypp/Manifest b/dev-build/fypp/Manifest
new file mode 100644
index 000000000000..62000f78a196
--- /dev/null
+++ b/dev-build/fypp/Manifest
@@ -0,0 +1 @@
+DIST fypp-3.2.tar.gz 69307 BLAKE2B f84738dafdacc48e41fe67a10d1dafabee8b531b3171f1e0fda6e180ab579cffbd2276f3004a54a428f5adf4409347b639c2339297cfe4d1e8a468cc306b6039 SHA512 79cdaaf540447d72a665360ae8dbdea52d71b2d1a3a8733e35a258d0050d0e77729414e1c59d9905349d3ef61f1a943348efce3fffddd80affd808a0b2660ea3
diff --git a/dev-build/fypp/files/filevarroot.fypp b/dev-build/fypp/files/filevarroot.fypp
new file mode 100644
index 000000000000..9eb9a2a720a7
--- /dev/null
+++ b/dev-build/fypp/files/filevarroot.fypp
@@ -0,0 +1,5 @@
+FILE: ${_FILE_}$:${_LINE_}$
+THIS_FILE: ${_THIS_FILE_}$:${_THIS_LINE_}$
+---
+#:include "filevarroot.inc"
+$:macro()
diff --git a/dev-build/fypp/fypp-3.2.ebuild b/dev-build/fypp/fypp-3.2.ebuild
new file mode 100644
index 000000000000..cdcbd0e9bda9
--- /dev/null
+++ b/dev-build/fypp/fypp-3.2.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Fypp - Python powered Fortran preprocessor"
+HOMEPAGE="https://github.com/aradi/fypp"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RESTRICT="!test? ( test )"
+
+src_prepare() {
+ default
+ cp "${FILESDIR}/filevarroot.fypp" "${S}/test/input/" || die
+}
+
+python_test() {
+ # pass python version as arg
+ test/runtests.sh ${EPYTHON} || die
+}
diff --git a/dev-build/fypp/metadata.xml b/dev-build/fypp/metadata.xml
new file mode 100644
index 000000000000..1a87c738a78b
--- /dev/null
+++ b/dev-build/fypp/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>torokhov-s-a@yandex.ru</email>
+ <name>Sergey Torokhov</name>
+ </maintainer>
+ <longdescription lang="en">
+ Fypp is a Python powered preprocessor.
+ It can be used for any programming languages but its primary aim is to offer a Fortran preprocessor,
+ which helps to extend Fortran with condititional compiling and template metaprogramming capabilities.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">fypp</remote-id>
+ <remote-id type="github">aradi/fypp</remote-id>
+</upstream>
+</pkgmetadata>
diff --git a/dev-build/gn/Manifest b/dev-build/gn/Manifest
new file mode 100644
index 000000000000..2073ac522d65
--- /dev/null
+++ b/dev-build/gn/Manifest
@@ -0,0 +1,8 @@
+DIST gn-0.2122.tar.xz 740444 BLAKE2B df57fb611f26964ed3ac47365080cd043ba4206233450bb39699e78e35b8acff918e94efe4e7cea957199dd2f441dfcf31566e7d64ad10aace9d2c1d538ed6ac SHA512 80c330eac876fc0d6f46038b96eefd19bc1b6e5e89515489c1d02f82675213174fba394398ffc1bdd1405ddcd11b60c2870f3076296390976da74012867faf39
+DIST gn-0.2217.tar.xz 754264 BLAKE2B 671cbe6d3767bf108604cd13fa1363339f1688ed9b2b59a8470225e077762bcc77d491636ba22e73e00ebeaf5054260cbce4e01f4db8cf30b7bf06ecbcb41151 SHA512 9f9872f35c1e8d7b33996377413c81c1cc9d9873fd0e889155089ceb609e6382eae3d776bb3c0cb83fe7c285997f1eca63c2d1807ff895a716cdb52dfc905366
+DIST gn-0.2227.tar.xz 755232 BLAKE2B f7430d4175a91d2f2d3991c346477ee06b450e81fd1424019d3b9316da5def5637db312c2ed68eb392e71f3e0279d894f25f7c44e91b6f1e3e919d2bfaef5e19 SHA512 807bb74f5c9bb16a3f1d871bb1f31ee5415dd3e1ed16acbd0105438f1d8b562d77d44192bc968dbf5486b26de7a103ccf3c9aad4ad84c596509d1c5495af27b4
+DIST gn-0.2235.tar.xz 755696 BLAKE2B a66577a1ce3dc726f4d6b06221428a8fdbced5c9f57bde1cd7538fbc3cef1c81b9a40a386d9f317d24c9400d0a8cca2c593013f4496ba34b6f3a26e49ed6569a SHA512 2acc5937ff684180a6529d80d97ed7b615e43a1e4b58544ae5e00ec6021c51aa99fb9150cb6642c3bebe4545af957f890a32bacc3942948c8b1a47efd30b3db7
+DIST gn-0.2289.tar.xz 762416 BLAKE2B cb3c3e6bc28ba40ccd8b1f30cbcabebdf10e65d7f0072b43fc0f06c07f148e9eb4b3ddaf84f8d3f3f3be1e9153aedd40b9be0b7b14711a28cb92b539c671e60d SHA512 0abadf6af9e6c15c9d2586daa3ba1546990b1e32eb40843417a6dc73b57213da5cf9c403d23ed04af47f9ab3986aae91caf68615ff16562fe1e89ee674df289a
+DIST gn-0.2318.tar.xz 773116 BLAKE2B 67756f7026a050dd2e89efe3985b55f48c6903f258a1807108f3da88c0f3777d6a28783f34a22ec0bdd7a3905f8b97c578a1a3616ad0ac311bbb7a2143a8932b SHA512 6482906411c8a809dd283220301a5f202893cdf292cd9112b0a9bca767637179f7ae6de4497b886af8c1e3c68afdbf8c7d8dc9e70ef6f5bb0bb4c1fd371ce419
+DIST gn-0.2354.tar.xz 784656 BLAKE2B a4a9d7898909adfdf9e975e7c57b00748c68cf42a796509bc9784eeefc46a41c5ad136818aebdc4c77b20305270ddf4516ca7d59c03e80f5bea0f2c1aaf20494 SHA512 c4911837d848a8a12c3f1f1eb2ebb1d865688921f97e369e3dd0d116ff00c6425ab93ee0bab0ee58a96fa378c831b79e74c80a033da782a757b5d2a1de1f7c83
+DIST gn-0.2374.tar.xz 790236 BLAKE2B ffa58e8ac35c334fa19e3cf01806b66567e6b1907940c05321211c33ff5f29d525e7d9508f579f0e0a6f305d8cf2e375447a58490bf1efdd9472350a8453009f SHA512 8d9235afd25206fcf5eaab47e6504ce9c2ed98e1088134826801cc648f542f2b808f840649560bcb30b3cbafb3acf2c60dfbd6ad53de872dddd499636593962e
diff --git a/dev-build/gn/files/gn-0.2374-test-iwyu.patch b/dev-build/gn/files/gn-0.2374-test-iwyu.patch
new file mode 100644
index 000000000000..d70fa9d459d0
--- /dev/null
+++ b/dev-build/gn/files/gn-0.2374-test-iwyu.patch
@@ -0,0 +1,18 @@
+https://gn-review.googlesource.com/c/gn/+/22200
+From: Matt Jolly <kangie@gentoo.org>
+Date: Sun, 26 Apr 2026 18:18:05 +1000
+Subject: [PATCH] IWYU: gn/target.h
+
+Signed-off-by: Matt Jolly <kangie@gentoo.org>
+--- a/src/gn/target_public_pair_unittest.cc
++++ b/src/gn/target_public_pair_unittest.cc
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+
+ #include "gn/target_public_pair.h"
++#include "gn/target.h"
+ #include "util/test/test.h"
+
+ TEST(TargetPublicPairTest, ConstructionAndMutation) {
+--
+2.53.0
diff --git a/dev-build/gn/files/gn-gen-r5.patch b/dev-build/gn/files/gn-gen-r5.patch
new file mode 100644
index 000000000000..80966b3c7f5e
--- /dev/null
+++ b/dev-build/gn/files/gn-gen-r5.patch
@@ -0,0 +1,46 @@
+From ef45f2e73264e62ad3fb24d064453a17099da8d7 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 14 Mar 2020 18:02:51 +0000
+Subject: [PATCH] Remove unwanted cflags/ldflags parameters
+
+---
+ build/gen.py | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/build/gen.py b/build/gen.py
+index 265b1f5..06c6d8b 100755
+--- a/build/gen.py
++++ b/build/gen.py
+@@ -343,11 +343,6 @@ def WriteGNNinja(path, platform, host, options):
+ if options.debug:
+ cflags.extend(['-O0', '-g'])
+ else:
+- cflags.append('-DNDEBUG')
+- cflags.append('-O3')
+- if options.no_strip:
+- cflags.append('-g')
+- ldflags.append('-O3')
+ # Use -fdata-sections and -ffunction-sections to place each function
+ # or data item into its own section so --gc-sections can eliminate any
+ # unused functions and data items.
+@@ -383,7 +378,6 @@ def WriteGNNinja(path, platform, host, options):
+ '-D_FILE_OFFSET_BITS=64',
+ '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
+ '-pthread',
+- '-pipe',
+ '-fno-exceptions',
+ '-fno-rtti',
+ '-fdiagnostics-color',
+@@ -411,9 +405,6 @@ def WriteGNNinja(path, platform, host, options):
+ '-Wno-cast-function-type', # Casting FARPROC to RegDeleteKeyExPtr
+ '-std=gnu++17',
+ ])
+- else:
+- # This is needed by libc++.
+- libs.append('-ldl')
+ elif platform.is_darwin():
+ min_mac_version_flag = '-mmacosx-version-min=10.9'
+ cflags.append(min_mac_version_flag)
+--
+2.32.0
+
diff --git a/dev-build/gn/files/gn-gen-r7.patch b/dev-build/gn/files/gn-gen-r7.patch
new file mode 100644
index 000000000000..f49236021406
--- /dev/null
+++ b/dev-build/gn/files/gn-gen-r7.patch
@@ -0,0 +1,39 @@
+From 74f21d84b06e63cd558a5e69f8195b5f93230a2f Mon Sep 17 00:00:00 2001
+From: Matt Jolly <kangie@gentoo.org>
+Date: Thu, 10 Oct 2024 12:23:12 +1000
+Subject: [PATCH] Update patch to v7
+
+---
+ build/gen.py | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/build/gen.py b/build/gen.py
+index d1c649cb..104ce569 100755
+--- a/build/gen.py
++++ b/build/gen.py
+@@ -432,10 +432,10 @@ def WriteGNNinja(path, platform, host, options, args_list):
+ cflags.extend(['-D_LIBCPP_DEBUG=1', '-D_GLIBCXX_DEBUG=1'])
+ else:
+ cflags.append('-DNDEBUG')
+- cflags.append('-O3')
+- if options.no_strip:
+- cflags.append('-g')
+- ldflags.append('-O3')
++# cflags.append('-O3')
++# if options.no_strip:
++# cflags.append('-g')
++# ldflags.append('-O3')
+ # Use -fdata-sections and -ffunction-sections to place each function
+ # or data item into its own section so --gc-sections can eliminate any
+ # unused functions and data items.
+@@ -482,7 +482,6 @@ def WriteGNNinja(path, platform, host, options, args_list):
+ '-D_FILE_OFFSET_BITS=64',
+ '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
+ '-pthread',
+- '-pipe',
+ '-fno-exceptions',
+ '-fno-rtti',
+ '-fdiagnostics-color',
+--
+2.46.2
+
diff --git a/dev-build/gn/files/gn-gen-r8.patch b/dev-build/gn/files/gn-gen-r8.patch
new file mode 100644
index 000000000000..ed16ad8b32fd
--- /dev/null
+++ b/dev-build/gn/files/gn-gen-r8.patch
@@ -0,0 +1,38 @@
+https://gn-review.googlesource.com/c/gn/+/18760 (partially, at least)
+From: Matt Jolly <kangie@gentoo.org>
+Date: Sat, 17 May 2025 12:38:19 +1000
+Subject: [PATCH] Update patch to v8
+
+--- a/build/gen.py
++++ b/build/gen.py
+@@ -432,10 +432,10 @@ def WriteGNNinja(path, platform, host, options, args_list):
+ cflags.extend(['-D_LIBCPP_DEBUG=1', '-D_GLIBCXX_DEBUG=1'])
+ else:
+ cflags.append('-DNDEBUG')
+- cflags.append('-O3')
+- if options.no_strip:
+- cflags.append('-g')
+- ldflags.append('-O3')
++# cflags.append('-O3')
++# if options.no_strip:
++# cflags.append('-g')
++# ldflags.append('-O3')
+ # Use -fdata-sections and -ffunction-sections to place each function
+ # or data item into its own section so --gc-sections can eliminate any
+ # unused functions and data items.
+@@ -482,7 +482,6 @@ def WriteGNNinja(path, platform, host, options, args_list):
+ '-D_FILE_OFFSET_BITS=64',
+ '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS',
+ '-pthread',
+- '-pipe',
+ '-fno-exceptions',
+ '-fno-rtti',
+ '-fdiagnostics-color',
+@@ -524,8 +524,6 @@
+ '-Wno-implicit-fallthrough',
+ '-Wno-redundant-move',
+ '-Wno-unused-variable',
+- '-Wno-format', # Use of %llx, which is supported by _UCRT, false positive
+- '-Wno-strict-aliasing', # Dereferencing punned pointer
+ '-Wno-cast-function-type', # Casting FARPROC to RegDeleteKeyExPtr
+ ])
diff --git a/dev-build/gn/gn-0.2122.ebuild b/dev-build/gn/gn-0.2122.ebuild
new file mode 100644
index 000000000000..0e5fe0fcea6a
--- /dev/null
+++ b/dev-build/gn/gn-0.2122.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2018-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r5.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ if use elibc_musl ; then # bug 906362
+ export CC="${CC} -D_LARGEFILE64_SOURCE"
+ export CXX="${CXX} -D_LARGEFILE64_SOURCE"
+ fi
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2217.ebuild b/dev-build/gn/gn-0.2217.ebuild
new file mode 100644
index 000000000000..3335b696f0a1
--- /dev/null
+++ b/dev-build/gn/gn-0.2217.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r7.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2227.ebuild b/dev-build/gn/gn-0.2227.ebuild
new file mode 100644
index 000000000000..2dbfac8034dd
--- /dev/null
+++ b/dev-build/gn/gn-0.2227.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r7.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2235.ebuild b/dev-build/gn/gn-0.2235.ebuild
new file mode 100644
index 000000000000..efe0b1eaddf1
--- /dev/null
+++ b/dev-build/gn/gn-0.2235.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r8.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2289.ebuild b/dev-build/gn/gn-0.2289.ebuild
new file mode 100644
index 000000000000..f8b9686bd276
--- /dev/null
+++ b/dev-build/gn/gn-0.2289.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r8.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2318.ebuild b/dev-build/gn/gn-0.2318.ebuild
new file mode 100644
index 000000000000..58deb243f5af
--- /dev/null
+++ b/dev-build/gn/gn-0.2318.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r8.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2354.ebuild b/dev-build/gn/gn-0.2354.ebuild
new file mode 100644
index 000000000000..58deb243f5af
--- /dev/null
+++ b/dev-build/gn/gn-0.2354.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r8.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-0.2374.ebuild b/dev-build/gn/gn-0.2374.ebuild
new file mode 100644
index 000000000000..ac6e6d2e3c1d
--- /dev/null
+++ b/dev-build/gn/gn-0.2374.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r8.patch
+ "${FILESDIR}"/${P}-test-iwyu.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/gn-9999.ebuild b/dev-build/gn/gn-9999.ebuild
new file mode 100644
index 000000000000..650a289f1448
--- /dev/null
+++ b/dev-build/gn/gn-9999.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2018-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo ninja-utils python-any-r1 toolchain-funcs
+
+DESCRIPTION="GN is a meta-build system that generates build files for Ninja"
+HOMEPAGE="https://gn.googlesource.com/"
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gn.googlesource.com/gn"
+else
+ # The version number is derived from `git describe HEAD --abbrev=12`
+ SRC_URI="https://deps.gentoo.zip/dev-build/gn/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/gn-gen-r8.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_configure() {
+ python_setup
+ tc-export AR CC CXX
+ unset CFLAGS
+ set -- ${EPYTHON} build/gen.py --no-last-commit-position --no-strip --no-static-libstdc++ --allow-warnings
+ edo "$@"
+ cat >out/last_commit_position.h <<-EOF || die
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+ #define LAST_COMMIT_POSITION_NUM ${PV##0.}
+ #define LAST_COMMIT_POSITION "${PV}"
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ EOF
+}
+
+src_compile() {
+ eninja -C out gn
+}
+
+src_test() {
+ eninja -C out gn_unittests
+ out/gn_unittests || die
+}
+
+src_install() {
+ dobin out/gn
+ einstalldocs
+
+ insinto /usr/share/vim/vimfiles
+ doins -r misc/vim/{autoload,ftdetect,ftplugin,syntax}
+}
diff --git a/dev-build/gn/metadata.xml b/dev-build/gn/metadata.xml
new file mode 100644
index 000000000000..d981d800e597
--- /dev/null
+++ b/dev-build/gn/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>chromium@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/gtk-doc-am/Manifest b/dev-build/gtk-doc-am/Manifest
new file mode 100644
index 000000000000..ca58663a6510
--- /dev/null
+++ b/dev-build/gtk-doc-am/Manifest
@@ -0,0 +1 @@
+DIST gtk-doc-1.34.0.tar.xz 494116 BLAKE2B cb8550debed9f32b967de9d4ebdde8dbe83551eb8527221d2d788355431f34e62a4beedda3e7f5722516ae8e23794a56b97a4f761ede0f7f2c0ef288624b5f7a SHA512 d962fe31949b5f7c70122c7ebbd98f4d21725697804bf5dd75fd7a6662753a91c9350fd1e8bed22a58a957b173f35e200fcbb4c7c2ebc45ccbc0db2e916b27ea
diff --git a/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild b/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild
new file mode 100644
index 000000000000..bab7d9e36e5c
--- /dev/null
+++ b/dev-build/gtk-doc-am/gtk-doc-am-1.34.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+GNOME_ORG_MODULE="gtk-doc"
+
+inherit gnome.org
+
+DESCRIPTION="Automake files from gtk-doc"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/gtk-doc"
+
+LICENSE="GPL-2+ FDL-1.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+RDEPEND="!<dev-util/gtk-doc-${PV}"
+PDEPEND="virtual/pkgconfig"
+
+# This ebuild doesn't even compile anything, causing tests to fail when updating (bug #316071)
+RESTRICT="test"
+
+src_configure() {
+ :
+}
+
+src_compile() {
+ :
+}
+
+src_install() {
+ insinto /usr/share/aclocal
+ doins buildsystems/autotools/gtk-doc.m4
+}
diff --git a/dev-build/gtk-doc-am/metadata.xml b/dev-build/gtk-doc-am/metadata.xml
new file mode 100644
index 000000000000..ec7485f7ddef
--- /dev/null
+++ b/dev-build/gtk-doc-am/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <upstream>
+ <remote-id type="gnome-gitlab">GNOME/gtk-doc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/guildmaster/Manifest b/dev-build/guildmaster/Manifest
new file mode 100644
index 000000000000..433145277a80
--- /dev/null
+++ b/dev-build/guildmaster/Manifest
@@ -0,0 +1 @@
+DIST guildmaster-463382ba5b47625a9355832cd792a164c54237f9.cb.tar.gz 4774 BLAKE2B 7291f09ce380d0e1a6e4ea8a3370310ac8a7b89f373082eb7bd4b705fba5ffd80d6edb5689fd0b5ca945c58119644b2bec3bd3bcb63e83abb964b9d66dbbf1f3 SHA512 799b2fb0645a0dc0e541cf73b60f779db74308c60922298af43122d3fb3acef0e4021d62c07fbd7c70f99aa8ae033f9fcd87bc71f8be3bba5441953dec367d7d
diff --git a/dev-build/guildmaster/files/sandbox.conf b/dev-build/guildmaster/files/sandbox.conf
new file mode 100644
index 000000000000..d95453bbcb25
--- /dev/null
+++ b/dev-build/guildmaster/files/sandbox.conf
@@ -0,0 +1 @@
+SANDBOX_WRITE="/dev/guild"
diff --git a/dev-build/guildmaster/guildmaster-0_pre20250712.ebuild b/dev-build/guildmaster/guildmaster-0_pre20250712.ebuild
new file mode 100644
index 000000000000..1fee1ce2c30d
--- /dev/null
+++ b/dev-build/guildmaster/guildmaster-0_pre20250712.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-info meson systemd udev
+
+DESCRIPTION="FIFO-like jobserver node via CUSE"
+HOMEPAGE="https://codeberg.org/amonakov/guildmaster"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://codeberg.org/amonakov/guildmaster.git"
+ inherit git-r3
+else
+ GUILDMASTER_COMMIT="463382ba5b47625a9355832cd792a164c54237f9"
+ SRC_URI="https://codeberg.org/amonakov/guildmaster/archive/${GUILDMASTER_COMMIT}.tar.gz -> ${PN}-${GUILDMASTER_COMMIT}.cb.tar.gz"
+ S="${WORKDIR}"/${PN}
+
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="ISC"
+SLOT="0"
+
+DEPEND="sys-fs/fuse:3="
+RDEPEND="
+ ${DEPEND}
+"
+
+pkg_pretend() {
+ local CONFIG_CHECK="~CUSE"
+ check_extra_config
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dopenrc=true
+ -Dsystemd=true
+ -Dsystemdunitdir="$(systemd_get_systemunitdir)"
+ -Dudev=true
+ -Dudevrulesdir="$(get_udevdir)"/rules.d
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ insinto /etc/sandbox.d
+ newins "${FILESDIR}"/sandbox.conf 90guildmaster
+}
+
+pkg_postinst() {
+ udev_reload
+
+ if ! grep -q -s -R -- '--jobserver-auth=fifo:/dev/guild' "${EROOT}"/etc/portage/make.conf ; then
+ elog "In order to use a system-wide guildmaster instance, enable the service:"
+ elog
+ elog " systemctl enable --now guildmaster"
+ elog
+ elog "Then add to your make.conf:"
+ elog
+ elog ' MAKEFLAGS="--jobserver-auth=fifo:/dev/guild"'
+ elog ' NINJAOPTS=""'
+ elog
+ elog "You can use -l in NINJAOPTS but *do not* use -j, as it disables"
+ elog "jobserver support."
+ fi
+}
diff --git a/dev-build/guildmaster/guildmaster-9999.ebuild b/dev-build/guildmaster/guildmaster-9999.ebuild
new file mode 100644
index 000000000000..1fee1ce2c30d
--- /dev/null
+++ b/dev-build/guildmaster/guildmaster-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-info meson systemd udev
+
+DESCRIPTION="FIFO-like jobserver node via CUSE"
+HOMEPAGE="https://codeberg.org/amonakov/guildmaster"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://codeberg.org/amonakov/guildmaster.git"
+ inherit git-r3
+else
+ GUILDMASTER_COMMIT="463382ba5b47625a9355832cd792a164c54237f9"
+ SRC_URI="https://codeberg.org/amonakov/guildmaster/archive/${GUILDMASTER_COMMIT}.tar.gz -> ${PN}-${GUILDMASTER_COMMIT}.cb.tar.gz"
+ S="${WORKDIR}"/${PN}
+
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="ISC"
+SLOT="0"
+
+DEPEND="sys-fs/fuse:3="
+RDEPEND="
+ ${DEPEND}
+"
+
+pkg_pretend() {
+ local CONFIG_CHECK="~CUSE"
+ check_extra_config
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dopenrc=true
+ -Dsystemd=true
+ -Dsystemdunitdir="$(systemd_get_systemunitdir)"
+ -Dudev=true
+ -Dudevrulesdir="$(get_udevdir)"/rules.d
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ insinto /etc/sandbox.d
+ newins "${FILESDIR}"/sandbox.conf 90guildmaster
+}
+
+pkg_postinst() {
+ udev_reload
+
+ if ! grep -q -s -R -- '--jobserver-auth=fifo:/dev/guild' "${EROOT}"/etc/portage/make.conf ; then
+ elog "In order to use a system-wide guildmaster instance, enable the service:"
+ elog
+ elog " systemctl enable --now guildmaster"
+ elog
+ elog "Then add to your make.conf:"
+ elog
+ elog ' MAKEFLAGS="--jobserver-auth=fifo:/dev/guild"'
+ elog ' NINJAOPTS=""'
+ elog
+ elog "You can use -l in NINJAOPTS but *do not* use -j, as it disables"
+ elog "jobserver support."
+ fi
+}
diff --git a/dev-build/guildmaster/metadata.xml b/dev-build/guildmaster/metadata.xml
new file mode 100644
index 000000000000..d2f7fed06523
--- /dev/null
+++ b/dev-build/guildmaster/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="codeberg">amonakov/guildmaster</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/gyp/Manifest b/dev-build/gyp/Manifest
new file mode 100644
index 000000000000..66686b3ce776
--- /dev/null
+++ b/dev-build/gyp/Manifest
@@ -0,0 +1 @@
+DIST gyp-20200512145953.tar.xz 443884 BLAKE2B 74ff269e3e8aa51e6b34f795892f6e8922d098a81b4d855619520d3d366e79b611931cddf4ee2ec60a7e040af11ac8eba7582ad10e24de627df5a4aa4eba6474 SHA512 35bf2af22f2e632b3d6e546e5017df8effd0c7ad80beed9b95ed1e2f294d70215889bc6a0147506461254e951d70189dc48824af10a6620e996945d2cf5586ee
diff --git a/dev-build/gyp/gyp-20200512145953-r1.ebuild b/dev-build/gyp/gyp-20200512145953-r1.ebuild
new file mode 100644
index 000000000000..0c2fe718f717
--- /dev/null
+++ b/dev-build/gyp/gyp-20200512145953-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2017-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit edo python-single-r1
+
+DESCRIPTION="GYP (Generate Your Projects) meta-build system"
+HOMEPAGE="https://gyp.gsrc.io/ https://chromium.googlesource.com/external/gyp"
+
+if [[ ${PV} == 99999999999999 ]]; then
+ EGIT_REPO_URI="https://chromium.googlesource.com/external/gyp"
+ inherit git-r3
+else
+ SRC_URI="https://home.apache.org/~arfrever/distfiles/${P}.tar.xz"
+ KEYWORDS="amd64 arm64 ~loong ppc64 x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+# Needs review after updating to a newer commit
+RESTRICT="test"
+
+RDEPEND="${PYTHON_DEPS}"
+BDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+"
+
+src_prepare() {
+ default
+
+ sed -e "s/' Linux %s' % ' '\.join(platform.linux_distribution())/' Linux'/" -i gyptest.py || die
+ sed \
+ -e "s/import collections/import collections.abc/" \
+ -e "s/collections\.MutableSet/collections.abc.MutableSet/" \
+ -i pylib/gyp/common.py || die
+ sed -e "s/the_dict_key is 'variables'/the_dict_key == 'variables'/" -i pylib/gyp/input.py || die
+ sed \
+ -e "s/import collections/import collections.abc/" \
+ -e "s/collections\.Iterable/collections.abc.Iterable/" \
+ -i pylib/gyp/msvs_emulation.py || die
+ sed \
+ -e "s/os\.environ\['PRESERVE'\] is not ''/os.environ['PRESERVE'] != ''/" \
+ -e "s/conditions is ()/conditions == ()/" \
+ -i test/lib/TestCmd.py || die
+}
+
+src_compile() {
+ edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+ # More errors with DeprecationWarnings enabled.
+ local -x PYTHONWARNINGS=""
+
+ edo "${PYTHON}" gyptest.py --all --verbose
+}
+
+src_install() {
+ edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}"
+ python_optimize
+ einstalldocs
+}
diff --git a/dev-build/gyp/gyp-99999999999999.ebuild b/dev-build/gyp/gyp-99999999999999.ebuild
new file mode 100644
index 000000000000..a343c5bdc06a
--- /dev/null
+++ b/dev-build/gyp/gyp-99999999999999.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2017-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit edo python-single-r1
+
+DESCRIPTION="GYP (Generate Your Projects) meta-build system"
+HOMEPAGE="https://gyp.gsrc.io/ https://chromium.googlesource.com/external/gyp"
+
+if [[ ${PV} == 99999999999999 ]]; then
+ EGIT_REPO_URI="https://chromium.googlesource.com/external/gyp"
+ inherit git-r3
+else
+ SRC_URI="https://home.apache.org/~arfrever/distfiles/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+# Needs review after updating to a newer commit
+RESTRICT="test"
+
+RDEPEND="${PYTHON_DEPS}"
+BDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+"
+
+src_prepare() {
+ default
+
+ sed -e "s/' Linux %s' % ' '\.join(platform.linux_distribution())/' Linux'/" -i gyptest.py || die
+ sed \
+ -e "s/import collections/import collections.abc/" \
+ -e "s/collections\.MutableSet/collections.abc.MutableSet/" \
+ -i pylib/gyp/common.py || die
+ sed -e "s/the_dict_key is 'variables'/the_dict_key == 'variables'/" -i pylib/gyp/input.py || die
+ sed \
+ -e "s/import collections/import collections.abc/" \
+ -e "s/collections\.Iterable/collections.abc.Iterable/" \
+ -i pylib/gyp/msvs_emulation.py || die
+ sed \
+ -e "s/os\.environ\['PRESERVE'\] is not ''/os.environ['PRESERVE'] != ''/" \
+ -e "s/conditions is ()/conditions == ()/" \
+ -i test/lib/TestCmd.py || die
+}
+
+src_compile() {
+ edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+ # More errors with DeprecationWarnings enabled.
+ local -x PYTHONWARNINGS=""
+
+ edo "${PYTHON}" gyptest.py --all --verbose
+}
+
+src_install() {
+ edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}"
+ python_optimize
+ einstalldocs
+}
diff --git a/dev-build/gyp/metadata.xml b/dev-build/gyp/metadata.xml
new file mode 100644
index 000000000000..a94766977fa6
--- /dev/null
+++ b/dev-build/gyp/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cjk@gentoo.org</email>
+ <name>Cjk</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/icmake/Manifest b/dev-build/icmake/Manifest
new file mode 100644
index 000000000000..bf7b36e3c2ca
--- /dev/null
+++ b/dev-build/icmake/Manifest
@@ -0,0 +1 @@
+DIST icmake-9.03.01.tar.gz 393488 BLAKE2B 43bac6944aa816e077a55264064abcb55ff3525842ab923712997248ef198a934fa434352fef3484a8ed0f887a89d9151b8e56ef7c601435d26d1644438b2b55 SHA512 2e6228c3bffa7fa145fd3743b1220d96b5730350718b91be96600cb24317e17aa5138282fe2f603d00dadd57d7a832ecff21a570eab0c21426f94d3208a61184
diff --git a/dev-build/icmake/files/icmake-9.00.00-ar.patch b/dev-build/icmake/files/icmake-9.00.00-ar.patch
new file mode 100644
index 000000000000..0eff669f8e39
--- /dev/null
+++ b/dev-build/icmake/files/icmake-9.00.00-ar.patch
@@ -0,0 +1,32 @@
+--- icmake/bootstrap/flags
++++ icmake/bootstrap/flags
+@@ -14,3 +14,7 @@
+ if [ "${CC}" == "" ] ; then
+ CC="gcc"
+ fi
++
++if [ "${AR}" == "" ] ; then
++ CC="ar"
++fi
+--- icmake/bootstrap/functions
++++ icmake/bootstrap/functions
+@@ -35,7 +35,7 @@
+
+ echo -n .
+
+- try ar crs ../tmp/lib${program}.a */*.o
++ try ${AR} crs ../tmp/lib${program}.a */*.o
+
+ echo -n .
+
+--- icmake/rss/icm_bootstrap
++++ icmake/rss/icm_bootstrap
+@@ -8,7 +8,7 @@
+ echo -n .
+ try ${CC} -c ${CFLAGS} *.c
+ echo -n .
+-try ar rs ../tmp/libicrss.a *.o
++try ${AR} rs ../tmp/libicrss.a *.o
+ echo -n .
+ rm *.o
+ echo .
diff --git a/dev-build/icmake/files/icmake-9.02.02-verbose-build.patch b/dev-build/icmake/files/icmake-9.02.02-verbose-build.patch
new file mode 100644
index 000000000000..dde1af395152
--- /dev/null
+++ b/dev-build/icmake/files/icmake-9.02.02-verbose-build.patch
@@ -0,0 +1,11 @@
+--- icmake/bootstrap/functions
++++ icmake/bootstrap/functions
+@@ -2,7 +2,7 @@
+
+ try()
+ {
+- # echo $*
++ echo $*
+ $* || exit 1
+ }
+
diff --git a/dev-build/icmake/files/icmake-9.03.01-ar.patch b/dev-build/icmake/files/icmake-9.03.01-ar.patch
new file mode 100644
index 000000000000..944cca939746
--- /dev/null
+++ b/dev-build/icmake/files/icmake-9.03.01-ar.patch
@@ -0,0 +1,17 @@
+https://gitlab.com/fbb-git/icmake/-/merge_requests/12
+
+diff --git a/scripts/ib/staticlibrary b/scripts/ib/staticlibrary
+index f051569..e33084f 100644
+--- a/scripts/ib/staticlibrary
++++ b/scripts/ib/staticlibrary
+@@ -4,8 +4,8 @@ void static_library()
+
+ if (g_compiled)
+ {
+- system("ar cr ../lib" LIBRARY + ".a *" OBJ_EXT);
+- system("ranlib ../lib" LIBRARY + ".a");
++ system("${AR:-ar} cr ../lib" LIBRARY + ".a *" OBJ_EXT);
++ system("${RANLIB:-ar} ../lib" LIBRARY + ".a");
+ system("rm *" OBJ_EXT);
+ }
+ }
diff --git a/dev-build/icmake/files/icmake-9.03.01-compressed-docs.patch b/dev-build/icmake/files/icmake-9.03.01-compressed-docs.patch
new file mode 100644
index 000000000000..a8bb04e3102e
--- /dev/null
+++ b/dev-build/icmake/files/icmake-9.03.01-compressed-docs.patch
@@ -0,0 +1,32 @@
+diff --git a/icm_bootstrap b/icm_bootstrap
+index 9a80252..78ece4f 100755
+--- a/icm_bootstrap
++++ b/icm_bootstrap
+@@ -45,11 +45,11 @@ cd doc
+
+ echo man-pages to tmp/${MANDIR}/man1 and .../man7
+ for x in *.1 ; do
+- gzip -9cn $x > ../tmp/${MANDIR}/man1/$x.gz || exit 1
++ cp $x ../tmp/${MANDIR}/man1/$x || exit 1
+ done
+
+ for x in *.7 ; do
+- gzip -9cn $x > ../tmp/${MANDIR}/man7/$x.gz || exit 1
++ cp $x ../tmp/${MANDIR}/man7/$x || exit 1
+ done
+
+ echo documentation to tmp/${DOCDIR} and tmp/${DOCDOCDIR}
+@@ -58,11 +58,11 @@ echo documentation to tmp/${DOCDIR} and tmp/${DOCDOCDIR}
+ # gzip -9cn $x > ../tmp/${DOCDOCDIR}/$x.gz || exit 1
+ #done
+
+-gzip -9cn icmake.ps > ../tmp/${DOCDOCDIR}/icmake.ps.gz || exit 1
++cp icmake.ps ../tmp/${DOCDOCDIR}/icmake.ps || exit 1
+
+ cd ..
+
+-gzip -9cn changelog > tmp/${DOCDIR}/changelog.gz || exit 1
++cp changelog tmp/${DOCDIR}/changelog || exit 1
+
+ try cp -r examples tmp/${DOCDOCDIR}
+
diff --git a/dev-build/icmake/icmake-9.03.01-r1.ebuild b/dev-build/icmake/icmake-9.03.01-r1.ebuild
new file mode 100644
index 000000000000..fbd0e15b0459
--- /dev/null
+++ b/dev-build/icmake/icmake-9.03.01-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="Hybrid between a make utility and a shell scripting language"
+HOMEPAGE="https://fbb-git.gitlab.io/icmake/ https://gitlab.com/fbb-git/icmake"
+SRC_URI="https://gitlab.com/fbb-git/${PN}/-/archive/${PV}/${P}.tar.gz"
+S="${WORKDIR}/${P}/${PN}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.00.00-ar.patch
+ "${FILESDIR}"/${PN}-9.02.02-verbose-build.patch
+ "${FILESDIR}"/${PN}-9.03.01-compressed-docs.patch
+ "${FILESDIR}"/${PN}-9.03.01-ar.patch
+)
+
+src_prepare() {
+ default
+
+ sed -e "/^#define LIBDIR/s/lib/$(get_libdir)/" \
+ -e "/^#define DOCDIR/s/${PN}/${PF}/" \
+ -e "/^#define DOCDOCDIR/s/${PN}-doc/${PF}/" \
+ -i INSTALL.im || die
+
+ # fix build issues (bug #589896)
+ append-cflags -std=gnu99
+
+ tc-export AR CC
+}
+
+src_configure() {
+ ./icm_prepare "${EPREFIX}" || die
+}
+
+src_compile() {
+ ./icm_bootstrap "${EPREFIX}" || die
+}
+
+src_install() {
+ ./icm_install all "${D}" || die
+}
diff --git a/dev-build/icmake/metadata.xml b/dev-build/icmake/metadata.xml
new file mode 100644
index 000000000000..cb2d5608ccb6
--- /dev/null
+++ b/dev-build/icmake/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="gitlab">fbb-git/icmake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/just/Manifest b/dev-build/just/Manifest
new file mode 100644
index 000000000000..aa378691315b
--- /dev/null
+++ b/dev-build/just/Manifest
@@ -0,0 +1,236 @@
+DIST aho-corasick-1.1.4.crate 184015 BLAKE2B 088766e505a828a221a9bca29cb1833ac3964a538cda62d12b723a263fe0e588406af0b710cf87ef67b0ccb9aa3bf69f42e0e5225ade47abe93c73fcaca69ec1 SHA512 c77e35191b00546f5e499fab154170cedd619599e7250f92db9fba0a41c833eb426f214e58b00c5c39f8757406b33492b3241cb8cb233ce384ad0683c3ee4b62
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
+DIST anstream-1.0.0.crate 28916 BLAKE2B a9198a66bd3821349f83d7837ba7546a12a74a6f57e179e480bd6bf4a75848a45dac9a19a27c5e2cf01520c7e917d380b21ec16e4485f69bebe112383ba273f2 SHA512 36bf11821e8bc23607a54842b47950782806ebc7a56233e3c458345d79986745f6ba878e39964ed41404eb5be58f78d0bbcdceeb86d523ba40eedd15f7e1f29d
+DIST anstyle-1.0.14.crate 17787 BLAKE2B ebb3b3986c06628ebfe71665216de68f123840093013fa16c030c25e22ff0731cdcd7161737635c532d45ad0307a1b7f951859a40dbe1c812b3e905550b33b90 SHA512 2e7bbaf0794d209f0f19fb8709214c1b1109c27e14d91a8adc232a9bdfe76e653b2b86e341d71f63903e034c81f6ed63ffe7f123f6d631c0f8d41b56d70037b9
+DIST anstyle-parse-1.0.0.crate 22042 BLAKE2B 418cb53754b325354a76d75cd73652d2e41408911bcfbadf91f668e7d6942d92ae3c379194f1d38bc6aa26a9ad98c92801213ffddf544fd2ce29a1180179a8c4 SHA512 4394616b0aa7a591eb9b9bb758abd2f067a3fe673b060c02857f6d2210a2276c476f32512aa59aee6c5383e3261f2654058ff619d957bee93d62540e10d81085
+DIST anstyle-query-1.1.5.crate 10264 BLAKE2B e1c1bad89ad4c09e48f9d7c417713953f7f468f10f7f61e351137be801b5986ab3d21406411b0b23c42af4a2b5881b85aa68dfc66d23cafca7dfcb88180104b7 SHA512 3b7b888df0b678bd4560981dd94a51a6af9a535cc1a869bb4577e832492bb6de718a3ac80ecf61f8857b3d0ed7b95e444e85bd00ef65a46c6a244d0b0eadd95d
+DIST anstyle-wincon-3.0.11.crate 12638 BLAKE2B 01f1ce85205ed3e573daca145ae420e9f7d78867fc036133be74bbcc9b83231ecbc681b57eb98bec622bcbaaf4bb293d05d3021a29b49a0a71b8ab89b0ae9dfd SHA512 09c3215dc6cef75d6282078e68c5dbd51580b6c8db79a77932d2e74a51d29cb0ef23c31b8a73a71896a45eb5dc5f94aee209bd8f6e5df4c675dabe3cd304a96b
+DIST anyhow-1.0.102.crate 48658 BLAKE2B d9c7b7c50b7319be0e67bb236e0420a67e3fd6d6f4bd53a84cafc7a5385785275151832be472c0063405e6d458b5add3907b670ba5e300e08efaae699ab77c44 SHA512 18064a92b6d577151b6f1be3df0985fdefdc5f7089ac0aa9bc92a2034c780eac5b71b8fbb260217aea122bee7c950ff00abf4b6d8f4143dff889b7164c7d6f0b
+DIST arrayref-0.3.9.crate 9186 BLAKE2B 8d7443944c81bf849fbb8a4e09ee379134c173decc712c6fafe483fb1545fba1f7f735979e5e26976502284502b5c7046f0b6aad59f8731a4ac8e1a51929c979 SHA512 f97e33e7fd65a8e908c21ab918350f71f12d49783162b90c5618660217b36516c39750b292a1248125f12429e4e00af9ff20c3846be81175946b8541d96ee606
+DIST arrayvec-0.7.6.crate 31237 BLAKE2B b9d1df7e3ec47d434a2606fe9540e37e02351873b376a4e113b54461288e9ab20e02285eed5c4bc0f052ec4d6b3c804044413490ea706c31a852624b03bde7bb SHA512 b1f320746018a7f32340a833420089446ec5cefb7f299b4506eab7423d5db49f00b72d8aa8c6600f9159b9480d5eb3ce69407d93f5c9934147860c83e4d6eca8
+DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08
+DIST bitflags-2.11.0.crate 48906 BLAKE2B 35764719b3070c5f9b51d35297803306ce01823ef07d720e5ea5e112c072b45c4d497f6b63285b1a0fce2842b1468bc252b00564c2ece14211d2af2cd26c2faa SHA512 d6c0de6c06ed8d1249dd69de035dfe5b23d9f1a8fcdc7535756622cf660807c5e1c692dee1ac832c06be1ce41b225e3d60f36be4d1896bab7d986d18946f6c48
+DIST bitflags-2.11.1.crate 49082 BLAKE2B c9c875b54e0a12115ecd846ef0a66bc7070d38892285a4142f1b1f26b07d407fa440a2943f310046f5fbc9a2428fcc56f2e44d06360e551d4b27c9b8cf93eab0 SHA512 c91b5a8b420d8e875a0906ef9b518a392487fba5399355aa5e908132149ddea7cc4222dd271cd5072e50dd9abd6e56420f4205652ba32a57af46bf07636604b7
+DIST blake3-1.8.3.crate 207224 BLAKE2B d463a940f84b71209f248fcedf3ebfacf1a31701523b51474b5fb3395f24a5bd553a6337fc5ee120306c45eb7e21329dffa84f546932db41b228fe3093a42ebc SHA512 833a98fdc061669d06714cd126bd5f64af0b052c324bb4f87cf6411f786a532c03b7fd07f0ba56e53aa57509fb3d37a594974d6ca310fada80a35a9a7d17c5db
+DIST blake3-1.8.4.crate 208734 BLAKE2B 80790573c0fcf3b2800bbe03293d13586ae6d08506be8db646d85db492407d0d4c0e3b1bb2f7db16ad8f1747dba8c2d35b2452cf7de15ca9093eb058585d765e SHA512 9f05d02b4e33f6d461f153f0db12d4df74555bdb60a54f948d20fa59d82636921607a3447eba1412429b6d4f39df770a6ab53568a40896781c83987ce62118d6
+DIST blake3-1.8.5.crate 209089 BLAKE2B df1edad491e52751c6bb4a6866f6fd9b41fae119a516ee19db7cfcda753827f8e3cb52e426f5b5fc693ad1dd2a336ed40f0028bb4ed73eb9fb74937862eb5bb0 SHA512 15dacc8243ad27aabd5faedb3bbcff7adecccac652f19d01f2899e5dc37ed7ac4a5147331e26dcfaee845a13f8c0ba9e8bf5d76ae35d54cb88493c71118f393e
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST block2-0.6.2.crate 34505 BLAKE2B 15cd481767a6467f8021f9245c29c2b0fc98a74c022280881c46bbe5cf221cd9c305e884f92d90ccf31e26e5a5a4b3ebb0c88f2345361c244ef7db1d778eb8ab SHA512 865a855e84c975d9a879159e888f097ce2314972c8e01506d2a3b3b65afc9dbe042d764da903df6746925cef6281cec93478bc13df3316ca112c901db8e3fc38
+DIST bstr-1.12.1.crate 354916 BLAKE2B 07b8e047c7a115d7d722ef57a37c5ac1e7ddba080e35b4eed78c3104cd92f08af5e67609faaa7a480ae15031f54c3f5d88784e23c96e659a7f4800c42dad45c3 SHA512 63a1e62d43c4dce00f287421b1ec76accbbab7f0897c8df26227f533af325896c0c8921a873f4125381e7b89fbb69a4358a96698ec6ee61191955464ff1c84ac
+DIST bumpalo-3.20.2.crate 97696 BLAKE2B 0c744cb37279ca82e4c2a60be64c63e61c8290c9ff904c4a2ffd0e23f9ba96b1d63a30cce83fc757cbd40364bbe5e410da024c04cd9481f33831cfacc2133156 SHA512 4c725a4eb436fc9b3302430f5bec699563bed4b6a86c187defba9a83b749089eb6b00a6855afa4d42ac5eb324088eada3c0713f3e8c2d1c85bea4dcca83a4a60
+DIST bytecount-0.6.9.crate 18695 BLAKE2B 8bda63c522124450ad1c4295fe29f675398a249016d3ecb78dc5cf17c4af38a4732faaab8bfeff95a51d69835d346e801a4034455020fb979131d2c5fb9f7791 SHA512 e77fa4d95ec0641f40e937ccfba4a560363284a63b79ededc00fba27080d076546bdaaa81eccf622332b924159328964dff017d017ec7d89b55427a7227975b5
+DIST camino-1.2.2.crate 41202 BLAKE2B 00b1b94d8db456bec382bc2d98d28d9378dd4270543799f64cdba674fde3d7c4aca7170cbc7c43a4b69701140f58a157ae4de5f808e6c03708afed5841dfb421 SHA512 e52415518cc476dce1e6b742b59c81a13748af77be5c15b72d104832350b447f5ddd5a1a0fa9b35b79605561cf6bddbc34810cfe71d11461034f5483f1a0a7e5
+DIST cc-1.2.58.crate 96320 BLAKE2B 55284feb8da7280c59f520505bf49a1e64b17a7239b7dce7f7042bb6656de762584cb717dfef4227638ea08f6fe976a7efd7415677eee8a605232d5baf37df6b SHA512 64dc8dbb23616d149e5a98293b6aebd72566b79a19557de9101edd38a01592cb1c2e9f7eb24893314702ba41fbddf73e4a4c91664a6f7e565af9837c52e1c79d
+DIST cc-1.2.59.crate 96779 BLAKE2B 9998334144446989e686ae2a54472bf99054a15ad767fc06bd9e98038a44884ed2d8c09961ef7e30f30b94f952d9291f49465f6a8fc4c9b392e8c6aa088c970b SHA512 075cd6528067f585cca2aa9e6695c22fc5e5262ce2c91c2c0764ecaf20559f37aa0358f8cf304c1d2ed1fe2b0a7dcf121568d5f6821cde860c204cd68c19d5a0
+DIST cc-1.2.60.crate 97051 BLAKE2B 292350c3fe7dc3e023fe4f7cd07b3a5a7233996963b42391243948f834a17cf69781bab32cf46d62722c45437f50123450811dce8aa0e96ee63f35480cc15d90 SHA512 d67fd7400bd1d20f26f7a6743ac02ad09dba0b8002172b87907f4a7ae2487ee41feb2f24fe375ca91a3ac4fde1dc8b48b6703b74297c9eb42bd1e91ac8fe4e80
+DIST cc-1.2.62.crate 97212 BLAKE2B 790820b89ab25e8a99d9d29b1b23031c858160303b854694a566c1c2d1c377a683db1d6bc3f624c11807b48db30f17ca2aff5af149e2bbf8af3aab2631b5bffe SHA512 0701ef643e7e2c646c7895bd544f9ebc862ad83ca11a640a7f8b1fb5d6d9617ea45eaa8646019daff52d86d32823235fc098598554340b9bf0f91190e06f3012
+DIST cfg-if-1.0.4.crate 9360 BLAKE2B beadbfb273ee97cbb6e3740891fbace57511399ad203459b66b397587d794677a9515cde4e9ec4320c3795518bf1551d72b9a889f8ac4b225168f493288b7c19 SHA512 176e04df7ba783b7143bb84397b777f5c5a1305c08a5c3a218d4a66830620be89ed68992ba27686165bcd3fb2f34b2daf80b2a1d4b481ecc267c988e84d28e9d
+DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c
+DIST chacha20-0.10.0.crate 38763 BLAKE2B 84d3d12379495b724b33accdbafe0209d0ddfeec74115b59228fb03e02089f1531f1396783a408b26cfb90372670c809bee8ab056cc847102cfc92ea065656aa SHA512 97e50d8e16118070ec75c086bae3695513b63c2ad3c5d43e3fb57892f21c9634977bc506c0c094aeb61bc8864518cee3eabf6b81504128ab0a876b2f6860b43a
+DIST chrono-0.4.44.crate 240549 BLAKE2B 7d3d1763ded8808a7402541513d00241c444b5b0503e144b568d2c0dc185ed20111163340a3895f30dc38864206a03d129840ed9a2841760dbcd5be26511c7e6 SHA512 0b1a83885724e9180e71ee9fed146d070d88620d46b74970a67f4af04f583dddc0285e7d09574b99507786568ac7fb3f06a5dfbd25c51490c8d444c145bdee21
+DIST clap-4.6.0.crate 62930 BLAKE2B f184cfb0d40adef5d0b4ee0370208bdeb6587b9dfd1b37f71a577cfdf77101100b4c47809ceecf946a855455ab836273aa6b8bb6570d0c126a82754f16bd95ba SHA512 bc5641690f0a0ed2b660836590174641e568be3d2b92d5dc91a82581fdef0543640190fc3c8ffe765f0245a88c0f9809d4e136af156a3d480a680da28e8ae5f6
+DIST clap-4.6.1.crate 61836 BLAKE2B 0e58b564b1c7792c4380284a61e20324495906764ed7ee7e9e62eac159d5f81508a82deb26cb294c85f236f77be79ce0cbf0253ea7544790ea3a5c0941acef6e SHA512 7e1bf1cdfcf8fe1f67251073e9ebabd92b44a7013a2245dbfc3a7368132600a30662416635a329067b97a8845af3c68274ec6ada3bd72d110b0aee5a4d7c986a
+DIST clap_builder-4.6.0.crate 171122 BLAKE2B 0a6ac216ceee45625500379640f9306015f749c377d14c6c9538fab7988da89b39e260bf8736d7ca055c6db32613fa7a9e73f325fc496d7521ba3453c8558348 SHA512 43b26377a8f15d29f8fdc9ada914888d87111084c5e205308d166789a27d91c2d8db6756b24d48ef8a293c92ca4c27dbf5433db21e336b2116d51377116fabd7
+DIST clap_complete-4.6.0.crate 50747 BLAKE2B 7bae833c4a90c5c27d018f600511aadde0ed6de134a17cba91592434cb086e8969be65819fed46291276df0a0e062bff109d9da5df78439ff4330fa4003d38d3 SHA512 8dd210b58224cfdb0a3926e849258a3a23cab1cebfb9a7f8557e55576d8cf4ff385bdddb5f2d9682e58847859456186ee056ad45cd5e2bba5686e689e403c994
+DIST clap_complete-4.6.2.crate 50291 BLAKE2B c607d0fd3cde57cad402489eef98d2374be0bf6179d97724fc7eeae4bb9884da9d236eeb33b606d1504831c0c813543a062e1ad9d22f7ad4fc87433936f2f95d SHA512 c031870668dad42f2dd789daee2a45017ef3adbed2dc4acdca9d004bfb1a5488eb2f4efab0ce3773102c834315d7d88deb9ae2963dab7c90d9f18089735e267a
+DIST clap_complete-4.6.4.crate 50634 BLAKE2B 19fd2a57ef96cac2016c9e9e371ac41005a790829c2fbc6786adda7ed8e20b7763a3a5a7b2a88bdbaa445b0257d21c781ef964abcd39e77cfc7cf517dad44aaa SHA512 244f7c2929553c35ed28033e41adc8f22c67595e5418ea93b42cc317a0271faa476cf060f52c71a18727450a0f2ccb6ee467abe94af74acb3da5133433da0210
+DIST clap_derive-4.6.0.crate 33435 BLAKE2B 93fef598637bc3674a7682f724412d5b515c3d219fe4d7e854dbb47864be598046e84c025a5245add4e9431b305d232e6207806cd87aff72cb3552c490426aa6 SHA512 4b642e4bda3af45b21fda189094f73b295c6890f2af533e1541be0df8669d1c7d8256a88dfd47f488ea6adab65012a213521d52dd902f9f11fd3b776923da1c7
+DIST clap_derive-4.6.1.crate 33512 BLAKE2B 36d4fcbdd0eb22ed872d27da80a1c22baf718533d43cb762f109f80abc8d7e13a92fd293db40ee2ca18709e7bcb8cab0f06eaf48dde336e67df90e83f6dfbd6b SHA512 ed210527cecfe3791b9d5af7279b337890b46b61fa05fa6979c88db1693ddf0ee5a4eb0904dd93e2da76f5c870963cc79b90d87cfc3cecf166a65364c16ffd06
+DIST clap_lex-1.1.0.crate 13470 BLAKE2B 3e4895620e2922bd95ab6e3aee296457adbe70c2b3b2fca24c48e5bb700ed622401c68f494a266b91f1b82a7ee109ca90d4eee7ab6eff35e28b5fe8038398e5a SHA512 d85237e0558ebc745b08a150ba8115133b1ac1ebfbf6b2abf632863761fb70cb329639bb1c30625b9e786bb27b19438af11c123c508fb39e682f13e294ea6d9a
+DIST clap_mangen-0.3.0.crate 15840 BLAKE2B 1ec60607c76bdb349670ea66bb1930e7d1d13f8dc87dba09c620170f1ad0244658f78464478a1b9eadb3ea1204d23d0b2e509dd609bccc49c416dab3f8a1ccb7 SHA512 eb3957e03ee3f8219ae2cbb94aca91cf0f44b2fb96e7e5426e935b32713873ae2e4af43520ac1b373611ca454723335c696c512592612b28b57194ab6afafd31
+DIST colorchoice-1.0.5.crate 8187 BLAKE2B d6415c5b337e2f4f5176003082e6e8c52f55a45ff959376e7a3f30e5aab1ecd3f84f9cc5e7a8a720398c1b58f99a07cf042695adb0b35178931178cc8d77d2e8 SHA512 af3a5e7e837b280cd8f0578d2ba2a04443d4c5a445577f444af9edeef6cdb47de134f77b07ceda76ea6b2c73b9c10e1d7e3e1beabfd22b85869585c35db88bd5
+DIST constant_time_eq-0.4.2.crate 25831 BLAKE2B cfa8e08e63800b1c88b96d645a965873b168682b34f726a9d3ac6fef0a253378c96e853db3ac12dd5fa474abb10827ab81f41b15a97dc035d39aada0fa945fbf SHA512 552376f3024fd6750d4daafd5f703ecfcc5bec3a2b7f8328de2b5ef2ff3ecfc57c2a4ab636eed19940eb5e118e2c0d354f45354eb9d95d17565ce3b5cb8d5655
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST cpufeatures-0.2.17.crate 13466 BLAKE2B c6392b635542a6fe29958fabe7ce725354a31e24f6f144718553218247881013f56659d2efc671d47394294373db2d4ff8f45c7cb520ac22f2ee5c462858a1dc SHA512 9ae64656a21cfdd0528d87ba95f6213860bf72ccdf866019e65ed6662633e73490f92c42c80125559b3dbb7822090b5faa8ea564c562e04041232809ec2f58a2
+DIST cpufeatures-0.3.0.crate 14156 BLAKE2B 9408d9b8f314a21702bde22f272d47263ef06e8f6fac116edb2464109ae2ff0d10b9d4f54d465bb6c55bea5722326bb8ee541352e6f5e03116a449930fa8375a SHA512 a842c5e7fe435c4339ba0e12169bcf1a2c2ebf4b0d02cf200f91d88a736607a930ba840a7db6a71afc6b125649a9f14ce0977599db917ee78880ec1ed9600f88
+DIST crossbeam-deque-0.8.6.crate 22471 BLAKE2B 02b854df171b0430ca8a40349674ff251698d0c322c317055da8678da6661730c945d86737fa4947c3bd824ffe402271ee2f77fd6a505d2d46b4a41454c510c8 SHA512 9368c0c224c4b84356f1d422d8869a5ab4bfb36b0ff69244a9e7a7304ed51f034001cd9b2bc35849df874d36ed34285c66574943573522ea32bbdc5a05df6989
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.21.crate 42691 BLAKE2B cd9015c41f532eb3c90101603f32d383f01e6880718b727d6d1fe46872ae276cda685e1b548cf77dd22bb1a05f0d4c4982332c2bde90e1743dbd7f51919022a7 SHA512 6f4aa7ca10c20da291c4714b56ceb1fab1c06b03b2f4e28e474e9aeb95ab6615a25462dc7819713652c3b5f6a06fa0f24ebc92c533fcf35dfcf2655857d975f8
+DIST crypto-common-0.1.7.crate 9619 BLAKE2B b9a31ed6f3f06e0709e7c5a86a146018c9ef67e366f27c1d4fe07461d97810951eec60e92ec1531e365bfb9ab1b4cfbdd86b6cefd8b06ef2aa170c38f3c9cae0 SHA512 dcf3a6fc81f2b6528696dc762427fb198faa9b5effe1ee9fbda795da08b0560cfd6c286b55f1360864e95284bd9a52edabcf39fa9bcce71ff0621dbfef538c82
+DIST ctrlc-3.5.2.crate 14194 BLAKE2B cccbde5a877a224f033bb6b6eb26347b343545c6731f99c7f1fadf0308f8a514794e340f233ae9a8edcce902ef7544571af8d4032774625da210317787495d75 SHA512 702e67489d9a77878b7da4aa7d5ffaaf169a2ff9602303d1b5a7b191f51b61b62218a2f9c11ac28784dc7a819659f87885678484866336dc7fdcfe01a0e4e4fc
+DIST derive-where-1.6.1.crate 52475 BLAKE2B 2440e4da5f45e325ee89ebc9c47df6bcf59d40776b96b8bbc50bfacae0298d5ecaf636810d1e48293d6c56f36362d2c71acfd9483ff2f2f269f1226ec9f42395 SHA512 1d2b8e148b98733b3b3107a46cdf36990d4b953fa62072fc48afd836eea3df3d6757e62c395147e05a41d1b2d2acdb19f0ca36435f922ab25a624e43648e3ceb
+DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
+DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
+DIST dirs-6.0.0.crate 14190 BLAKE2B e214cf0c4669fa149d1e3eda1f6ba5b10a4a4b7d13a9050e63c13a4b605aae5d545bb711fb659312dabad26028f190853764acf74c1f6f31014e57c0a53a2281 SHA512 f29f0f932aa627bada67db5bd9d2661b5fb3b18d07030f5d88da28de7049eb872a2f35756cf29c094aacbc2429a3a333b54fb94d70e470288d3ca091cf6d4aa8
+DIST dirs-sys-0.5.0.crate 10157 BLAKE2B 0808bd5c7bfaceef00d62476ff459a8f3ab19fdd4d3a860b04698e51c390285ab8f01690fdec7faf01ccee5734b28c44e50a4358f30de1193a0d54ae5c6622c3 SHA512 c2ca362ad04e92c929e2cea4db359de689e512b7c76246c408f40d10f1d47c5dbbd49238e67edc0a251bd642ee292cae88992e5755035c632baec36cd77c10b2
+DIST dispatch2-0.3.1.crate 55299 BLAKE2B a159e925c2b6ccc7357873b06114a600cd2c9137fb1f179883070aca60b3a4f4d63ec3cc27ff7e597f972ba3ea50621609f49b38c3be83b56cde6c6cc5573178 SHA512 58c2c10ce8e6d68faba8d96b2553979dece0a0733d98ccd22354231611b431ba76e6781729ebbdc52b695c11cadda53e9d26a09a7e11ef4cf47a94902bada878
+DIST dotenvy-0.15.7.crate 20293 BLAKE2B 89a205ca637c31678fdc7249212a6a71a10bea47607279087f719a4929ca30e27f5cf74d4560390ddbb825a58bebc8851a82c3c6ed525922a74206a85bbde6f2 SHA512 208eba7f7d012b71dbdd19d27fad4fa1d2982507d3362167fab72ce819f44972ac0dab6a10f3842f3f8b44d979cf8517240fa4249ee066f4806ef4e38e343bfc
+DIST edit-distance-2.2.2.crate 9002 BLAKE2B fcb0231dcdb4f08fb149ae82ecb2c3bc619b13606e2e47041271334215bef1e0c0c464c290607bfd58cd36c7622a593d84e49665675f33ab35a1ff7011ff7391 SHA512 898af5dd2fc02a054815413fd9df2237943857030e61e51310c01c815e550e8d46de4a6da00e4b873c25ab9cf8b05daec9e09d87938092f8d9e1e7250272d02c
+DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
+DIST errno-0.3.14.crate 12002 BLAKE2B 57fd842a717086ffdcfa5102a8c52bf8210672820366d78aadb6f159055917477e6771e9fbda88787278bf3a116bc7253dcb705b601e54038a93a1820c3c287a SHA512 1de95c9806323d63e7cc95111e67b3ba1ee4b9d47b70cec33485194574d6b584d22ff877dfbc244317822721291d537d9509ae5e46f1b45169cb478a78322366
+DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947
+DIST fastrand-2.4.0.crate 20754 BLAKE2B 94732b591b60f62c460d95af228f11a42ce40416d5287c69bb10eab3e1abec649cf78309b59b2a39d505444e7a13d4a2752653342582d41338f6fa2be86d897c SHA512 9304f29b4404b02dd3bba68d64266c51f8619b850b5d5a407bf706005aadaf80d2dc0b3d212934692412948d207261b09b28c098ed15af203a199b2915a2afe3
+DIST fastrand-2.4.1.crate 20773 BLAKE2B 79fe53f19cbd8343ba15c21adad7397ca9e351d00d77673913063f8f8c02c0753a29828ddc7d52f2f2f68e8e1822f31060fc52d046769f6e768d510cbf2086e1 SHA512 7120edccfb1aac689412f463abb816e3ec2e7c6f7da3576c060229139c11af5e69408bce42dde4d78046cd09ba8db53a6f9c4fdcd68e5fb151b72a0906a8bc7c
+DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST foldhash-0.1.5.crate 21901 BLAKE2B 22c3a266becac17995ac996f5c9caa8dea77e36786c50464e4e7750d8f3f13321a0a1abd3a9abcfd6ff441ddea257066b2dfb7fc6fcf7468f537dbd1b0db737d SHA512 3a634fdec410d87ffced8aa1bf8dacd9316a04c51424563d60b4dd611617041f09085edfd0ec96e6bb0e0db74a0e950b0616d1fb94a31667af35af1637604c22
+DIST futures-core-0.3.32.crate 14684 BLAKE2B d0c3ee59327998990f4cd81b8d76b6d8a58000ffda809ecafc8b7e658abffe4fc45be4b9d5e502436af8e4adef50b1601907b8256a9f65f8467beecd37ede220 SHA512 5848937ad4135fcc488690bc681bf66d6c353f063f87dfe1ea4b79259b9b402896276c10ea80b159a9adfa551abdb5b00a2c6b332af9a898766f87f177a40137
+DIST futures-task-0.3.32.crate 11377 BLAKE2B 290a2e7f7c957acfffc8041a5ce961b84bc6b1d02412ee8dce29cdc9a7d4daccbe430291d1a735c132b907448669aea4e5a3aa292cb5ea4b466b30fcd4e3f98f SHA512 eea93a8490d7083566d7f723c0bfae01583787028ae5d8bba851625b1ccb2587d27db0cbf3d7fbfa36b51bd6d444c54905cc4d56021f43a5a440cc8b0ed73520
+DIST futures-util-0.3.32.crate 168797 BLAKE2B d804428849635088636df69330881d68474db307ac4dd5863d73d1d93c54e90a18e21663864e94f2bd86999356e19b8325e321cd5c63da6e3e05f26c3af836fc SHA512 77705985b5cefd5a9009e631689f5967320cbd1363888cc8b7eef3f7457afb38c793499fc3edd4453bc8771c43436e5da1538ce0c5ef655a5e597f4fda2727b1
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST getopts-0.2.24.crate 21467 BLAKE2B e5468cb141bc8be43ec84606c873fa6e16a49e902e247f7c38a08c6e8088d36964d99b41ae3a98a5350cd8fd15ee8d46762b818c79d1198c0aed576de191b640 SHA512 3b0fd721340f732d3ed3dee38c61a46d83c920d24d96fdc780927c2a02fb9a6910eca4caa57db83d500d76bfb0e7f424a166204fcc4c5a4d87ca3ed30008f5aa
+DIST getrandom-0.2.17.crate 40780 BLAKE2B 49168490a12561828bb324273c1a2dcb98017577f8500fe08a8bb7c3accc37afdc459af264da7b95a4608e53c4edf8fcec3cb240741b2ee7b128012fab975ede SHA512 23033dde606eaeacc0557e21b3c5ef732e083b17ae086dc95ac7d1a8bc1b695a9a6a7073b8ae774ec62e7477a8ea0644d417fa5da7841a3c8118694c21813d1a
+DIST getrandom-0.4.2.crate 53905 BLAKE2B 23aca6717b8fc8bdbc26bffaa1ae3aa35666f82951ced24e1d7b7530feae7eb5e66a9c81b738bbd2b09ead6efa030d2850e0ffb314dc82972fe72af361b961b6 SHA512 191d847be8c21369067b707c2c20cd56531478aca534ce902271e2693e84f6d74306a690759b17a8b1e9c46c639fe0e7be3b2fe41469eba4d7c27bb1c11a442f
+DIST hashbrown-0.15.5.crate 140908 BLAKE2B 6a360eaa2e174ddd1e9761bc19edc4b57b80f84c36bb5d64003c7206755d4175a05f39c001acaf000ec69ced9e28c3853bd64702e2927aa7c38527a53abf2201 SHA512 654682535882733b56dad632851fed93a17ad0b2d3e13e3390d7802450781501e275b0e0b39fa32a6eae092132858ed79b305238cd5771c08987c5d26af6d692
+DIST hashbrown-0.16.1.crate 147785 BLAKE2B c506e64340b65fb462545c52e85a192b21e33025c91adf1d8255e799e8a5743814c60be971db56c0b9b1208dff8147ed4a28d8e37caf8f5646fd367d8d0bc9d7 SHA512 0739f1b2101488f88778e221d86738ce557b8ae12470e2a4444099eb90d876382030d00e789dd4ee44dcd7833a87a6e570fa11ba5823beb1cab3a56784ec2669
+DIST hashbrown-0.17.0.crate 154597 BLAKE2B 1fd03ebd3df85e88abbc498ae8166d3d15f3196c52ce17cd29751be5aaca18d62629b96c1a4fd431e8b38c313e4aefbf78dedbf65bc202d9e4e69dbc1b03f780 SHA512 248f5333b23cb83fd8e439a17df85d0f5bea6dadb0e7cf2cd2d3bd0049494c125ea4fdf74ce2623884d2a3884d444689a0a7cfc9b52ad3d8de40f7498c56ef06
+DIST hashbrown-0.17.1.crate 155512 BLAKE2B 748d3658bf40d6905b47f695e64b70a0c506b9fb0207e023cd50448d5febe92bcbdf19ad8b9be7588f12dad2aba82eab4c8a7a1815adf0a00e17c39f6188f4c6 SHA512 4b6a5a76ec2f020fe34cfa5f5bf4b518ab7d278ece657804663972b6a5ebd64f775bd75d229b7e202702bed9d5b63ddef4de6e274fafe3129809791c6802526a
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hermit-abi-0.5.2.crate 17435 BLAKE2B 695192149342273199ffb026de57e2d906249757b9b4bbceb6b40d3b2298a942a75390aeaa3ad4cad71e5d44687379dfc49598bacdb2cf989ab48864c4b2b517 SHA512 0392a8350288e5d500967bee8e98626024b47a7da331f833b9528bd7318cf43f41eefa46aa6aebd19febfadcbcb2d7c9f70d6ca3631c1618d63c60366dbe7c15
+DIST iana-time-zone-0.1.65.crate 34079 BLAKE2B 4d84dd4655dd42ed9cf49ed8d93d0ad244f42433faa2894a1f8240a49f65021864e8aadb816d5725984bcd5c1a6e8e1ac210b50751e3af8b3ad2a61421a74e4d SHA512 4443d5a01ef4b10eb27ed8c866ed71619ccb594dee81a0350106f39575b9373c6199d925b92112fdf0aaa20f5d955d09fab1867dc1b4cba2841c713d40cde6d6
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST id-arena-2.3.0.crate 12883 BLAKE2B 2a7f498c3ea5632af4a369d46f90106e642bccbb8e36ac7fe37be05c2125989ea2cf625db92a782408ecb5f68d3efbf3006413b5b748815ee42b9dcfb28d0ba2 SHA512 99652279014e63680d66bc8022ec3d2373d6e476646ee5551346fc9e62d1fd94b28c945bfc30df14c85d085aefc7fbb9051fe11012f63a9254bc11f03133f116
+DIST indexmap-2.13.0.crate 102206 BLAKE2B 7f3d070b645741f5960647f64759840b1941c1e28f61ee04d44d7eba0d8f600949cf139bec5fddb1507e4d5a9e12fb709a16415aa014eaff8f5e87cce41a9394 SHA512 f5efe0010603a3f1da8955f5f97c9a39e4d2c5042c0829c057ad739687d990c100d1276022dec23e7cd70efecceca07ad735693bd8a1b21b507b8892110198ad
+DIST indexmap-2.13.1.crate 104085 BLAKE2B e225be37fc18900aadc2d841e46e4e662bc55584e06fc3c41f68d06f30a16622e18c10ee7afafdd4afda9a56bf34bb025488861fd223ca86b57a7404dbd955c6 SHA512 58f54b7d2a05977c12cadcd80e6310e6e87cac5078cd33b16f368ef21b9f8843082556c2f1fe272673bc49ddd12640632e0ebb30148ed3f1b398b7284a8fdc02
+DIST indexmap-2.14.0.crate 104085 BLAKE2B 828d8eede906c2908baecac840757ca8795587a552cc9dbcccde89a3b81444d99395670fd71404c33033aa5a1b905ed0621fc39236024c8b8b385e5d29ca6b5e SHA512 fa6bcaaf1b9bacabc72ae9d0569065325a6741b9ba5dff168ada6ece460175be47741d906d9326b48d30f6c55805d33fb64bfb497490482b4e412ac15a8ea55f
+DIST is_executable-1.0.5.crate 9227 BLAKE2B 03d1967099d75dd42b5031ef6eb75765194fac49f88c0b5a71d95091850d90c40888d567dd516a8327113eaae6f7447e58deb563d2c8451d19e243c38fee1d1f SHA512 59248290fb4598cf89c8c11d6b6ce7158c6acbe3404143c86a6790048dbd52cf6ec94481e65838c77745ae66166fa85b5e563f3668c851a5ec150f7f2996e446
+DIST is_terminal_polyfill-1.70.2.crate 7548 BLAKE2B d84c45a94bc0ede333843ddb5206379f1a7d9df742c7f7940374d6b17b0a9c300e32fed5fe2bc58e6b3bc5d18b5fc58dd4e283c01c2f3b4f10f254b3cf7668c3 SHA512 d62f444e83950bdd441215c0ce681ff774692b35fec2af7181dfa243dd43fe42ff7e10a6e3b1d578712e4130dbfdf471ecdae73a3a584a2856a848d387b6c261
+DIST itoa-1.0.18.crate 15935 BLAKE2B 8e41446056ccd94979f6f5a8fe8c48d6c47abaab99a41715cca31816f859b56e0cbacb998f300b62be8b719a6470f8a087f1439b72f2f6662d1cdd3d552ede5b SHA512 8dbad156e2863c28e2b380901a92414ef00e39f1fcdb06d91a0f3fb73108c2f7f36b699ccd93287808c24c29cca7f1783d48d5ca95f2173502963c0abcb2d09c
+DIST js-sys-0.3.92.crate 101836 BLAKE2B 155682fcdde7976e234a3d8b023a3f7f1b1e3af0059f0791eccbfd96812aac26a125dbe3a1f5c33b8dd4f505e6eef67326a0bc1e1e5d248e10b2240321b812ee SHA512 6153a6c89d2693d777ac0a61a9df209b43046e0df5671bfc5ba2916ded62c9cf2d3689af480d43cf41f6984c452ed68efe57837c84fff26ce847ebab82dc3aad
+DIST js-sys-0.3.94.crate 103723 BLAKE2B 6feacf184d9111ba10af7b9abe792cae47cea7718a290dadfe8a6aff3ea2374bfaf0af06213d1eeacf8bc52c38aafe823c17ddd1e469c98118bba92a57748199 SHA512 290a6ba146e5ff7865c7e6137113013417834c6d77aab24f9488576bf4b2c93bd39619b3bc03ab5b64127ec98d5095540ee6571f5bcf6abe6f9f12f78c3066d2
+DIST js-sys-0.3.95.crate 104031 BLAKE2B 20141a55de6ad577cf1d48efe79dd3ba4a36d7e2b43feec4ef90fefe522dace2146c4746d982cd93b41c410ce6357c7b0bfafcc81366e9f74e09ec5ff61cfb1d SHA512 3e7a3376d6edf12643ad4e75c075bbb4eabfc59e02b0246b88d3f46f2163c932fb08a21d825589a7bc78e0fe92eb5b96502da2a20b6beb39f2ec483fc0725a27
+DIST js-sys-0.3.98.crate 108519 BLAKE2B a41d6534bc87c4c265e01211d2f7c8f4c7ed137ac7001c2cbdad4f24784b4cafa4c689aa0c9b9801beb5c5bbd68818c3d4e7bdb78fefcad88020bfa88beb484f SHA512 afeec49d8a6894d1c7a10d80a6d6500d8677f0c769f74beae8da820932da8ff91ff0e9abcc48fde251e617903578e65af4a9cf88972510e78ae8e1284780675c
+DIST just-1.48.1.crate 313794 BLAKE2B d14b5314e53e62a121b6d20c85ea4acd6339916a78dc03446cbadd361f01ec1176734412ae70d114a8493c9fce3d953c3b3e7284ec6a426a5d8c5b059c976162 SHA512 5a1f4e884a516fc06e1dcb8c7a696169aab2775daf24dc3cf0de69e85ea3e245786ae491cbbde2c49666c77d72f6c74ab48447382a1b35aa04f61f005875c03b
+DIST just-1.49.0.crate 322480 BLAKE2B 1ceaba0b15244f54791f8a2b89089a83ccd77723723216e117264eb7c0276040eabb430830d52d9acce2e9342b0e2feade2ed9c8fe206c82c823c7cfd54a4439 SHA512 4992e94ddf2dff6472702eef05328e109e9532f4222d8a9888ea93019b5b3640e7b4aa98e87da87d5a53a984e8a2b2bec4da8d85fb5db12f1d384432fc444916
+DIST just-1.50.0.crate 324125 BLAKE2B d0746dde48ab43d99133c48f47c5488d6ed8c6b2299bc47c5997dfa2b1d06295fa4fccc4c2dc740a49085bc164f2113a16c8cb687427566cddf4e23aa2e89147 SHA512 5ac1d86bb188d8ded61e34742b321c7bf757f1b3977e85b1802be5781cd7e4a5ef13e5084de51a50ecd0322ec09b429030b74d8d4022810fd090e228cd28a9f0
+DIST just-1.51.0.crate 327031 BLAKE2B e7f00ded52de1f8e960e7677168cffd52324aa70acdf1464d004b9e13d46d3d91207a8f24943a9d644fec361c6ce239b5caba924cfb1869a917a0b7b4c958636 SHA512 d86540bbcb9f4e9bc45d67507c44df9ebd48219dddc7fd811901a21641ca8cf29d45a39f9b1226d20bc555888b135d27a925c9cedf7ebc4d492c6ddda5b991fe
+DIST leb128fmt-0.1.0.crate 14138 BLAKE2B 6353a2520bb93e0a3cfaade09ffbd8cf981d2cf75579e865941f3fea0dc745c54472b369873b1ef4f26dd7f356860e563bc7ca6e7615d600b272c698a55e54eb SHA512 82fbc7f0786185453fbf11fb3ae58e71fce9780f81eb6a56d7b559e3a0c6825751dd8b64f1266aab73fe65f7483a206e42f31ee1a1b7b1801246c6dc9c2ea817
+DIST lexiclean-0.0.1.crate 5362 BLAKE2B c60a82de8de091263d24c8f5de8f04f7a0908b7689d24daff1f85548ca158cc7f81f84a55ec50f4499fea237a26a7892a594f6d5319b2232db06232a0428a291 SHA512 5f60056a6830fcd21ece4fbdbaba5cf4b8bf33d85aa520c32de44a2f821c6dab60d2c9ec108981bd081f394e216ae45b62c9aa7f223eaf6702dd0586157ec868
+DIST libc-0.2.183.crate 816918 BLAKE2B d0c26ca25b0808575aa540a5f0f43acaaa5a972269c5f101122538a1733b37b6aac3696a0d7298fe16974b06efb0b92072252eef40b17b977af24cc857963daf SHA512 017986d4fa8c362f8900c1c82c7381066382a7272cfe114243b8d47637d042c87b5ebef7881cf46727e00e541a0a8270a32db694ce8d78372672cf08224a90b2
+DIST libc-0.2.184.crate 820172 BLAKE2B 61c2c133b14e79a6871eed0fef248a063f19d41def5bdf72bc7f96c3b60eac24b52d13e16f28d68d750a16fe546c26f245cc088782fd26f8fac78da91b1d5c0f SHA512 46e22ca28ee3562bfa2475a944390cf2d864e11d533889c753c4888a56c02b981bf9507b7866bec65c1b1aa32801cc1c57b660bd93149111547ece7ddc55f31e
+DIST libc-0.2.185.crate 821775 BLAKE2B e0e93466a29c9d19f7d9ab3581b491908d06873a9c57a96b0cae2eed0f0d1cb184ebe80bc61e36d5ab316ab35dca529a322b29e6895f7f339e72c79cca7f8ca2 SHA512 c8dbcaaf2e5d8377a4d1003af4a7210fbfe4f9b1e8497f07d88a231a8d5c9f67014e650a5e18e913e7b4d6a1835c4cbc9c31ce0cd224ea28acbdbb39034a300e
+DIST libc-0.2.186.crate 821883 BLAKE2B ebe7aac5f8937a8064c64a0d4dc72e5fc794080e09b96c6d245bdec0fd9a19d49ab38e25306e22e47564764cf5dcde45855237cffc70230a143eca2626bd5c3c SHA512 6a58e671ec6811dff9a0d7d4db8f37d38bcbca9efff20dad4706190e5cdb77b426567754bcf0ef0f2d0c31d6506401f724f3ca500b9bed57bb8605b1141ed690
+DIST libredox-0.1.15.crate 9598 BLAKE2B 07a4220f93d083b4f1e9c49ffbf6c690cbca52866a19bdb455e6bb8b9a4c34391457f9c53a9a630b8c2963165cd35862fa89e905bb77498780f0d571ae7114d9 SHA512 b8162d77a9f32b710ddcc2da6c69d4ed0016c638fe613a204189ec77e48f47a53ff7432f949f053045a879f616718b9e66299fa00fa4bfadeec6529671730702
+DIST libredox-0.1.16.crate 9600 BLAKE2B 88e9e195d1fc59fc5fbc3465a4a30bfe45c79edc117f73f9002a89cc79265e6e890872dc3ab2c357bad26bf77799074cbf99add92b1e8db9748c061af17bd0a2 SHA512 847099a1fa297bfeb1c3b9fdf3dd16edcc494c39a42e38a653551ea6f8bb8a67cbf083bf49ce3980d66481bc9cfac411a5065dc64e12e6e3a8224e0afa4d8163
+DIST linux-raw-sys-0.12.1.crate 3006116 BLAKE2B e23efa27e6052034d41b2149f90d1ee7d6b905808605296ebed66f5fff210c4c18c51ee9c363bd0b93c8e17bc3b70857b594aaf51d44492051291c0e008f8cef SHA512 5cfe8f7e88a2125dda56a3f7a7213fb41cbdb51ddf4f7e44deec21f5b7aa05530e04f67d1b89b9d99d9fb204f27167d8c0e104e6ee6e62a780bcaa679155bb54
+DIST log-0.4.29.crate 51515 BLAKE2B 3f5dc889e895428f27ef107a63004c1b321793b865c29b20293adca81db4e25443e24354af37018c9a60dff1d54897c3b7b2c014a64280523f4a3586a7eeed24 SHA512 31bcf1669c27980f0a8500082c4d0cc500f6cc943518a3dacacc3ad4d8a0c238517f23c2c1969e5a22dbb5d25614adbf4e914c0557e45e1ebc8e7385b2ed14b3
+DIST memchr-2.8.0.crate 97780 BLAKE2B 228ce0b6fe8b168f5c31031690a5eb44466609b64c5c221e0b3f56fe331b4f25c0124d613c94ef030b225000978953641f5b07458d530c1d50eec3e1d54e4274 SHA512 8089238153493a0ff6adf980efd1ea2ba10eeff9f33fff200268692662d24152a8c14a4dac37fbc6a55dca741701fd256174f10a9838ca66f038f08e090de12f
+DIST memmap2-0.9.10.crate 34846 BLAKE2B 9f8e59e9695b36b7d86a4caf14718cba2d609605ba4cf5edd3dd5d67ba04bd4a26de3a775220c190f21a0b81bcfc4f9850995bcbf4f45241250196aa783c09c8 SHA512 d119205790c5f724e7001562f0b5917aa36697cd626e9080e31f7aedc0e8c6027f6d9720b441b969cd1a3bf909720e815557d94ff84ae1d08b8ec0f8842ac9d8
+DIST nix-0.31.2.crate 346284 BLAKE2B 310de6bfc8b7bfdaaef0ac7b441e5fcda8b25722eeb8d91d28d24c08f52cebfbad5d005010af76ba544d0f79594eef8d9248b53346b986a9962f8cc3d3c56f6f SHA512 a7b000095cb1616b24feb12880ef9da3212cce894d70a94501a2bb200ac1d0b7e4b9dd5b993b90ea93304b192b6d28e10dbdb4509d1919ec9252b1a3433592b8
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST num_cpus-1.17.0.crate 15874 BLAKE2B 8b31104cb49696d8994fd05176556056db69ec3e2b7d61b6b0a88f8ea7f4395934df1187c86301a3a56c3dd6be02b5eb2baeb72a991fa3cbf61571767dd1ee76 SHA512 b2d7f664214bceb8acca0758bde4d516267c0c76a70fafa25ed6204eebedd69a110f045682f50cfe6759a9c2178b026df077c5f0f85d020712dab65cf65d0aff
+DIST objc2-0.6.4.crate 275200 BLAKE2B 4cab717b3221aedbc98eedca4bbe722bed8603149737ba01f13fc866e8236c58767a5f8b81c9bcb3b4edd17abf0e621933c2d7ece16895659dbbfb795151766c SHA512 3176d8f44a3245d08972404b8c544962c02e6bb8f198660ee3bd532b376b5a2f7a5f5585f126968c414e58347011dc6ee919f881b78854a7a3d9bb3b190abae9
+DIST objc2-encode-4.1.0.crate 21004 BLAKE2B 6f3b11c96ea4941bd24f2949b8fef5c3bdd91037eb0a0d9af88a0798001e4164e252817fdad0ba7e150f1b2e0c9d4cc0fb976dc01def7ac19d308c989a92f714 SHA512 47a23fca26df26e1efa1045a9778322dc0b2cd232acc2be750a98a1ddaa7f264c39848b14a5d9821573495601dded2893a4bcbc36a0e21ae442b7c9de5c12303
+DIST once_cell-1.21.4.crate 35010 BLAKE2B 9117ed1d478e626b7b7be2e3ff8b68a382b051112c7ca4425367bdae86977671f8b5c576131c82fb437740b6d98b72501f718f4172d39781decac2385e8fbd4d SHA512 af67669b0107f44268ba74c355200cb2ed1aab235a6989a8bc54323eb2c9a45677010f8672e7790edadd4c981e939436e0c3a099d33c06dce9c14fd5ede86155
+DIST once_cell_polyfill-1.70.2.crate 7448 BLAKE2B 5a90f8eeff25a555987b84b9800f9e0b2aa94fb4827f76678ef45d344c4baeae5a079a288fd02a570d0f0099e9b2842d32dd206dbd609212496e77ede47a4d21 SHA512 9e0d07bcd40e4a5c271646d6fce71677acbfa4439b4e818bb4df823eb31eff976ba78239e3a7e0ad21e80ea8d0d3af3e74a7d0a0a55b308d4c777b9b5e1ef8ad
+DIST option-ext-0.2.0.crate 7345 BLAKE2B cbfc03e7c960fe3023512a4ad816d657b4f54f8ecbde9f9c4df4c5fee3b36b68ab463c67ad650778279e01c7ffaa63a0dacbd0c080c8c3d15b1611de0e71f92d SHA512 f8539f97b01af97e0b80fc96556002251befa60f8ddd19613311e62f9dc9834d71c22f5d8e7c53c4925046e38cdcf834c3c28042a4da862d6f6a21ddff8d8e56
+DIST papergrid-0.14.0.crate 57733 BLAKE2B 7ebb798e60c73602c5a7948edc0e4162f13ecd9c90a356b8080da15ad1ace7ee87a5fde326241493b21db84eb95d7958451395d3b6aa84d27a3dce1d6e0a496f SHA512 ba75fe09f39a31b1d99dfcfa801e3797bc2742ceebc2ceb7ea81d15b71f86f907f0b8fcc43b264ea32088a78ca3c7a970496d453f4916042be0d6bc4db54298d
+DIST percent-encoding-2.3.2.crate 11583 BLAKE2B 58925243b23a6a1decc3d92c4ce17d06af5206844ad283b49e69e523ac0db2c36c3f4407af4104ab92c029c2581c228bdf416a054a2531191a9e912448ba4408 SHA512 495b4aac88a7a46420811671d6bd82817e4eb2fe51d5068d11c5b50d0d927895d54c855cb07d4f4ad5a2d42b22f9419ad0183c14781dbfa240804fd49761035a
+DIST pin-project-lite-0.2.17.crate 31034 BLAKE2B 1d3bb970100c2a27c456bf771b4884f3c91c048310d27608161d3a02adf2f9cdddbc8674257c6b58c4ad6c0953e11cddf2fdf5813d95e5ab8425e71032556159 SHA512 0cff4338e3c7b71600fb41db013efe0d01b9cb3fdf95192dc16c5bea58a0f157207ef285ceb01b6b30956f9e751577c5d2a3803103f89a8a0cc6ea728d97a4df
+DIST pretty_assertions-1.4.1.crate 78952 BLAKE2B 016df9fb2f24304b68a6bf4fc8e144387f07a5a15fc8d92757cffad11b4a00e74559abf597d4ac8619a3dfea705c82df1b8c8620c5f32c61ea8f212fd9cbf9f5 SHA512 474f77c61cc17bbe9914c56b98a80e5918450205827cd059d693c2d603ff61a0897cad25dde645cb495200e61ddc14333d15eb8bf2de090a2eb68deeb9aec8b0
+DIST prettyplease-0.2.37.crate 72033 BLAKE2B 997c8d855023ba6dcc7aa3a8f1c0ac6f6ca72dab2804cfcfb0987832ae044ffc5f5d7541e66d7ff5b0679065e5217078a832333e6cb92d89a93660aedaf0b447 SHA512 3273621f42cd2f4f892ee81e130f50e7d30f7254f922a84e55e454c0157bd0a59c678ee352e05007fdb0a62cdab2d7693185990354b81d2b1f5d08b51cff77d0
+DIST proc-macro-error-attr2-2.0.0.crate 7745 BLAKE2B 6e0e6d0d19bc467550de90a075a602f0be1e6ba24b29b84e42f01ccc953dec4f841625a84930a84cc5c00a1959ebdde9919c8d6d21664dd2161ea4a18a6f1d08 SHA512 8dfdd6aa54b03cc3b29e97f6be2a2d0716cb52b751cb7cbce8ceaa9120f95f9567be5869d6c4467ad16560b6db037d2c48ecf5290817c4e06b6acec1d7aaec44
+DIST proc-macro-error2-2.0.1.crate 24807 BLAKE2B 20bc34aff566445280cc874fc0c2a43ef6ea2ff67f674107f816daceee712749fafcdd1a8fd52fc35f8b875375e5fe05a571b717629e6cbd250b42162c2b3837 SHA512 6406a792b780178e80597709fa34923b59f8a9e8ad22fddafd78b3495b943765f5657542078a88dafa0e904073a22fbd9722d45ee175bcb51725e566682a976b
+DIST proc-macro2-1.0.106.crate 59765 BLAKE2B 87f95795621c4c992c370dc3a1240a2d5580e3362356525efe640f8f26ad0492b3c88755d575c080ff7db11376b0d82f31141bf6f86c895249b85e46c081220f SHA512 b726e2c92af434bfa88cd4f53c3fe6db647503567675fb439890dee3d15f5111137e3242b28d164114ce081c10acf3fd11950753ddb349190c87ee04e7d97744
+DIST pulldown-cmark-0.9.6.crate 117378 BLAKE2B 39376ce32138115e2def495b6d2761500da8045677dff9f919526b7c297e00e72484cca51f9b3d6e0cbacf12f681b1651209296845561324750f5544eff516bb SHA512 074d70722bb42cff59f85c209c3f0c00a739d76a22bcca123a33a0a899df49105887565d71525ec5926261efb74b912bcd024714617d83ca72bcef86bc428764
+DIST pulldown-cmark-to-cmark-10.0.4.crate 17917 BLAKE2B 956fec0f042b70754f681640b1ad90454da5376b246a56539a029c4c53f64c6743bf9e4e938cb75bedc2eb3d960a2cc577f78120eff1f9942d6e0b33d7833426 SHA512 00030ee97d0d69738fa160bb0b87cc5777769061775077e162e7daacc52b1558477048d2bc36485576c94bc05f03d01086137740f2f6ed92b13e2c75653bda12
+DIST quote-1.0.45.crate 31564 BLAKE2B 1b2c2c3e6ebabfe10affa4c43ca0bfd1f52d8fd49e1df463e13e63a82de41272089c8e09e4c02e8a33cfee768ace26d4d42a50752de8fb5a776c59806139ad5d SHA512 df96ede01ebd0ed642b758bf1d0862d0e116fc2b3343e14edb657ce5438ccabe743dec4a0a40de4dee98c134d169af9aba459faadf9c7a832b26377e755d49b0
+DIST r-efi-6.0.0.crate 65303 BLAKE2B 79a28aa1e41721ad39ad95837d60a7034f9eedf0f5a32017849e7f4abebf6eb55e79cc144cea52030cade11d6be6fc5ba863e711a74038ffcc67b0d6eef47bfd SHA512 65f8c75c0201c3b922e6bf032ba9e6c648840f60939615565287b9c64d44f3fccbde209d8fe691937949cd76307b59c53801e6bd43ed7b8ada46d5d8fccf7012
+DIST rand-0.10.0.crate 105828 BLAKE2B 070501bad8905263faccbf729cae157d79d17c8059637493e95c0f7c362de1b5a8f549e9857b6b94fc2a3526e88bbed46ef247256ff8aa72ed61e6f0d0413b25 SHA512 a22dad3045436e7a73125cf98e972496d3f896fd130b713233134c65d0cf81a9a3877d987a9c8a77fa1ae1e957d6a622717ca813f1d5c4a7d45f899277ca0ecc
+DIST rand-0.10.1.crate 105801 BLAKE2B f442da8e90eace94adb0d7a1835d54091b0940d5ac75adf60b337edc1964776c06ed06f0e97fd719d7fce4c187d33d7fdc29fe74d5caea05eb2d81e12bb05882 SHA512 514af678610fd4a2abf7cfb8f9e0d738e600b492dce8dff0d30b5e637de5f84995cde4fc29e7ba4884361693087fe94c27544d2ddfc1960fa724d2e375de9f95
+DIST rand_core-0.10.0.crate 22778 BLAKE2B f27a8bc7d691a0f738fe5ae39aec1741f39cee34b02e75f3653e9efa7dd64760b858678ce3aab453968378a7d6a0e242ea921ae6c642f2bd779fe34a9c0b2ed8 SHA512 4b75b43183c0ee19b8c1dec3fa8a1eaebd11556569bd02eb2f5c0497a84543f77c6f4adaf7011d372628abcb7e187686236550a6a2d85b8b2091fe60c1ad4426
+DIST rand_core-0.10.1.crate 22833 BLAKE2B 2fb3972c7a83060afd88e3e1c97c26ac2236222c02259b421109406047fa7599e3408db34d22037eac42887d129692d163b5466190c87cb18b97ea6e12f1ea6b SHA512 7095ef3932cb731fd52a18208100aa01e27cc66aaafd933b70444158258ab2e9542ef0f1d0564f2db8846da597c9b4be5a3c0f865e68607b7d1725582282b94d
+DIST rayon-core-1.13.0.crate 73151 BLAKE2B 31112b2f4ff2a0607daced97e234c6cad1356c79d21c7493f3b19b2747083eca85709d5548c9214bb5186a7e2e5fe0def27c45d69d597cac976bb0956da2aa70 SHA512 dce0adda8f5858d351f628f50168d9097ecca437b77fc0c63ad18fb8b3fcc87f2f513cbcbf57606862e30e81f293a05d245073be75292d1a536d6a4d3e2edb9b
+DIST redox_users-0.5.2.crate 17280 BLAKE2B 7dcb0b6727d4d4a9b2e3b9a2410a53eaa1b0cca807010446f36a658f062f0f33b07475e61f549922a7c5ef4e7ee3693fc154ba33bf7aec710c8053d03ae284ed SHA512 0468d42c9a5aa9b8811d00b4126115bd7e92f96af4ee136cf5387939474e351fa2c01251473691aeb34f5e4c8e8804938adf1bc83b5edffb6d06869b4b816b7b
+DIST regex-1.12.3.crate 153392 BLAKE2B 30f272fc2cda1e36219dfccf0338edacceb5bfada7ac81dd01429661b01b0fa72f6bb343e753e2388251aa0aadc0b5cf61e07670020c9ab351f418c23653ad47 SHA512 73ea9581c861490ad4c8c767c09f1f39be525f4298f5b19ba7b658dfade4c91f7ffd170214382ef4694855c0a48a4db57c39b75d8fa6a9312b07409170c66000
+DIST regex-automata-0.4.14.crate 618012 BLAKE2B f12b0f1e59d32711c113f5f2157a4e1dbd05095c386f0e104ef3d551cf029d0c3346d09f54d5b8a8bdc557ab4d91ab80a224d81b3c522b3c64ad1566972c46cf SHA512 58f8e7c41f71c1df50fc2f4e70ea7f5ab762170494497541b9a09076058f94a799b6fc4da13c40fc26a2f1a0b650b499cb9830338152e96a24e3a32b4994a5e0
+DIST regex-syntax-0.8.10.crate 358781 BLAKE2B fc7961b2c6e4d297f4dcc73cb3f6a82d7d9bf964808beacc86ec8c73f7b572f3d8c7503ccc4441a2d6283b8cfbbbfc49140b31207b5aeabe5a60c8870460c91e SHA512 ca9c36c963c81c2fa36e1105cdd193a9b99ee259de1765e6e8010fb4091e49ac100e2ba0cd117adb0890b32e74421581dd6397eb896772168c6eae9da0a938c3
+DIST roff-1.1.0.crate 13935 BLAKE2B caf1955e4cc0c0bdd250c991f0effbcc0e5ed0e56b7fe97c6cf92cac2619f983b9b15e891163922443231d2af8c55623097b85d361371260e7144790edc1441f SHA512 1ecf60e21d76a980e46c991f43a4e6e0b71056e7429d55e8ceac53efb6cbe446cfd37cdb619d98d96d1205b419444e3f055ce2526f81d86a0e106214c18d588e
+DIST roff-1.1.1.crate 13932 BLAKE2B e9b75aa53900e82a75dc7b9ebfd62888a6864c631abd36f27dacd95442616190ce771dba8c73fbc59689191239c3629cb37be3f149f7aae52c265ebb4fab52d1 SHA512 24e0bbf24ae75f80343d9bbf59eef0dedd04c0ec96f930414d92e8cfdb652029e4ce22e78343683e16d8d51323586f46cb48b4aa17d5f173d498cf434c49c3ee
+DIST rustix-1.1.4.crate 425241 BLAKE2B d0d710cecb9b20fa755e61a27d23b946a5b860211a9e63f34cfde2012bca2b9cc6952b546444a8a06a97ab8bb5817f87fd7fcdc7e3075640fbdb86f189f7f443 SHA512 33619ed2434963a98b0846414656bcc4945ca0e9b883821869fe0cc86db4a74c6961ce1375963ae49c6b5044ad0536eda807dac1320209739c9d669bd80fd75c
+DIST rustversion-1.0.22.crate 21096 BLAKE2B cdf773cda21ebde50da897c0af0e4af14660ce953d3037054a99d8adc3db2dc6e30a57201a45676abfb183c62016a68069848e7537f711b1752339d194b0a378 SHA512 7929352df3e5279ac88cebb26ca89bb13c755f46986d2d1f514d18a3239a63638bf64f8ff153920569d173185d988d692ee676335afba0bf72d47f71babe0e15
+DIST ryu-1.0.23.crate 52823 BLAKE2B 20ab79357165c4fa0eb5139047ea9fb7190de888e7131d8be1860d9c3f81b9aa6eb74b8835d6a277a359ea8457cb9c3f3e10eb08ce696ea88b3c050f70426cce SHA512 46257bb145f9f083347b808ecf5932dc66ffa656550494788c1011116976ec811531cd27e3c28677cfb774fba5effc310bd232e697ebb4f25f059acfb9c82937
+DIST semver-1.0.27.crate 30081 BLAKE2B 760cd2994baba2ab8d63656b39f281304b309152cb3c576a0cf31ebf57294bdb6a10ad73e61f974688b0dd80490e0f4da004f3396cb6988bc90af8eee0961ed9 SHA512 8492a2ce5adf32cf6183d03509766f169b323a9376b061c9659a8752f69de5f45f7c64f474fa907fd9261fe3e9a7691a39c8a603d0c2e8d9484f5946bc27d78c
+DIST semver-1.0.28.crate 33064 BLAKE2B 03bb56f4f0ec6f4cb208277500eba03cc81a7b2a115d64849b2d154066f723d46f8625df7c512cfbb2e402a36cbc5a1627e8041ac2de92daacd4a92a6943979c SHA512 bb44373e60fccb83bc95e4277ea0abdd756a3f77b3334cf6d6b5fceac086910661ab94eb326cdc8fefce0c09220933bdf03bfd142c1594a92c9c1e4e931114b7
+DIST serde-1.0.228.crate 83652 BLAKE2B d1909d671ea6d5c2eb4ce34ee4493ecaf665d416111b4cac754b5d33b85f916296110bae7aa961efd987a2ceb4a31ba645752ce99dd28dedb9f1eecdd4d7b1b2 SHA512 9b645d6214203533b303fc5e88ad4f7686c22df084878d18a0209a92304a340fcb62fdde88a7080cf7a7348d47b9b363885c4e1da90dba08cc99ff620f375e97
+DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171bf337ec16bb1223075cbf81b6b85cd1c8d19abadf42460d0fbea323e2f351eeb6ef823389d519121b74e68edb215 SHA512 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4
+DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003
+DIST serde_json-1.0.149.crate 155994 BLAKE2B 7564c287a05c95feeba2b3a17e2e43ba047b0132b40fc4dd0c09141c2aac559c00bf4c63cbd24c17f12f5e6b49cf38b240d2c6c66677ee7a9edb197aba7d57fd SHA512 85fa8cb7b479f8241a4fd2255dd80e346fa5cde103aa7f25c14ccbcdf0e3276578fd0645e1d2542ee07c7e08c32058ff662bbf03926cd796c38622a12f423d43
+DIST serde_yaml-0.9.34+deprecated.crate 65290 BLAKE2B 1c1f8c7dd1a7952948596d8c727fb6fd36426c7b80ddaba2e6065db7551757e6fb170c77373ba9784f6b32de9f8aec94f90e1c85df98b9ac1f75a7cc8e5da174 SHA512 64329436d18bc3b1a0737afff7c8727f7e04c71b2bf6022f597a45f0860fa3a678eac688f61f0bf7a7846f98809f427c9907625e1d00c8691c383043c1cffaca
+DIST sha2-0.10.9.crate 29271 BLAKE2B 1d614e0efe085cdb40e05726578a9b4ca6bce93f6d3324f5dc0444cb37054912cdaf5d28d468eac2c0046030d920fced2ccd006953b80865ce8a2d43ef3daa81 SHA512 963adeeb4ed8b0e7fc19085e8721ea13e9b3aea5d115ca1b3dbca495ad14810c6450991dd3753807c293c415aaeb1054b8b4124c72e7090cd9e86f09fcbb4f80
+DIST shellexpand-3.1.2.crate 26161 BLAKE2B e30e88b9fd0b62314664cf5a7ae93a648caf5a3edcfcf680378ced47de791bf04f77fed9b5296a241f6000de436a55d761ade701dbb8afc81ab5752f51ca9a12 SHA512 7af494875d469cbff41b0de99fed01b2ff13b9d9736cad591a93758b70e1a107e24d729d12a415cf63f9ddb4906b3d9f28d52e47eaf09d4a84a6f4b87bde8f6e
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST similar-2.7.0.crate 53928 BLAKE2B 41d6aec64403069dcf81a9a00b9db041967b89d09cf9f2371444928f32bbc2a8c6066adb93eaf25c72a257fab87e24c160265d687c4e33848728a4ddd374012a SHA512 4a2559d2e47e7747eb2bde0f02a0e652ff0e116d1d3c3756dd86fd48f114e2b42157b860165e5cc29c2123cf19c64ebd17f023aaa05950de03ab5752562206b3
+DIST similar-3.0.0.crate 77221 BLAKE2B d6f81eaa9aa043fc12069cd6815209383e935363c42bb2639f06eb515aa0136c2df0a676d4632c202b2ffd3818a270261783a254cd22f360bad1fa5f5c71ec43 SHA512 337daa362406235415c769f7fe08cf898c7d0c465d27cabac5617de9dfa567ffcaaf42c61783dc67fa214e73015e7153bba82456b4d6fe5130228629edf01a9d
+DIST similar-3.1.0.crate 78442 BLAKE2B a68f2682af0876871cea3b0978a43285b07ea1050e01f0604e2aa1c016149f2619637ec4c34b9e0c8ee237b08449caa3b79f449cb6161d3f677ad3d25b71b110 SHA512 7c8d5f0a3ba376f1c4dd891772a0c87bed52027b8bcbaadfe30f0c79540e9058e68a706f6388dfc6a55f0970cdc8ef0b887eb924463d49a735e10b01bda0e727
+DIST slab-0.4.12.crate 19080 BLAKE2B 785a1b899fe01c8825f24d90b0b0bb31bded234810f59c71b7e44221387de33fcae220a7d0745f59f79c267673b76e7c8d9fa4c0dcbf8fc5d68be6562018d49b SHA512 cf7c971b99b043d8bc102732a109717cbbec114160e4f7cc4009c66739177778623403c33d6a32efd1620e0ac7b8743c36e0e5563082af7f92f1e4caeceea0d9
+DIST snafu-0.9.0.crate 77135 BLAKE2B 8aaf7065ab212445f290a626c11558e43f15ca68973299b757b911bc95b5329e080c42a79551225c13a4ffdfdc18bd634c3fa8cb25d3704d8ba675d3ad4e66c2 SHA512 3982887649d6c913dd597b4f5b5584f3135cdc4f3f56d57ba387ee538e52d746484d5877808f61631a801257427c329a16f57461b41c85797e45a86d79016b7e
+DIST snafu-derive-0.9.0.crate 31370 BLAKE2B 2659a4707aa4d9bf9b080c88895a2befb029fe04005c9219650103845ddc92bf5464702ff94c744408697dbdfa52c0355a7237743c8fbc3a2e334b76007264a2 SHA512 4d0503bbcd3e469f2601c580dbc2f0d786b0ea6ccc426d11a85a75f2802dde71f02063666cb8493e62a7e03026a5808e49169234a448e5c92bc79f4b6f5e5089
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST strum-0.28.0.crate 8550 BLAKE2B a43ac86204ffe8889e5ec8009bc742c9d13bb04001b92cf7e79faf84bbc4bfec2df3b0170faeede1de11f2c7826d8739fea29460a2c6918ed972ca747b4bffd5 SHA512 673d6aec90d89b1a31ec114723009748b2469c9c07b5e17e86fcd1655e745dfcda4dce7bc4423679903a4650a6693284454aba634cffdaa4735c63b0a475185a
+DIST strum_macros-0.28.0.crate 30964 BLAKE2B b79612a6632a2f1b828a70e5c759e0fcc5996312e5d15adf43295bc04f570f09b91307e0e17941a1528d6eeb2fd640786c40fc4471616f622c310b9cd9890184 SHA512 a50f96bc94c2bfad8d9fd499a4f3f3f3c2cad07c92800867307c808efaf8ba192ee177e4bf7e67f19a717c89439df7773c1749047a9e0c3b0d5bf1d54a040d40
+DIST syn-2.0.117.crate 306011 BLAKE2B bbaec02c4322f522bdfc87caa4ce6fd1e09bbf8f4a102d9ed8728efacdd843a2750f616dce5b2d3a3e46bbb7d57439fbd10e328bc1d4a01e980986cd815798af SHA512 035c2e63542592b6a4058a2a82d4c2c1f5793f84fb1b04cbd393337a26fcf661a1f3bea439ce98a1fe943b1c4d36d2bda16df3bbc3fa6ca35e1548d530dc8416
+DIST tabled-0.18.0.crate 231662 BLAKE2B eb58977c5dfdced3ebd6c9744bf5a87e5ae2137162a3e9b23d1fcb59e1ba0a2a2ef1b73a3b499d6d149b9f8aa70ce2cd5250fb7c5f9295c54f54830ca6e45613 SHA512 85dda27d78b094a33c3d960bac9be72d28fc91325848a53c4583fa40a0caf09821bc832b88c298f63a18c6bdfa78e866ed6410e6557187105ab55065220f7f47
+DIST tabled_derive-0.10.0.crate 12251 BLAKE2B 4590bb63be8c38057ff9ac98c3a73e7bc462e5326d2725579e922b25bd7d5d482af961d75b1e9bc2e06cd9b22a55b6e9ca04d6030ab286594db18283dbdca266 SHA512 2a55dbcfd5cf2b8e4726ec1682c795008b7b95651c69da26ea8fb6f29d3930064f59c2788856fad4a9069927533c52cca0e5ee1e5d4def9dec37f09a3abc6d07
+DIST target-2.1.0.crate 6748 BLAKE2B 5bbe5afa835757063c1f7b8f8df05d2cbad5fb3a94a84c4677f9d63752ca6bc39ff588ffad22038493bcadfcdf80da16605a26d98cc6f772b1cb64ccbef66c59 SHA512 96506bd513a617060005f98c6354adcf66cfc733a73a7983e0061f5637aa915d9d8e987fc1430bbc9181bebbb956625c99912f5dae53492226b65cea8210c637
+DIST tempfile-3.27.0.crate 44780 BLAKE2B 898b8b00613c4617271febdd54dd1e5f66aca54c1e4b60067e508c87c15fe32f0ce2d30b3dd630ecf7083b046d579f31064fa72de09067981c920f4aab86f2ba SHA512 bb20b9b0c5d3301ad05f73f1de538ae240366d9aefa25ca823ba40041a8a11b4a7361a6a9ec03871b14230d42038d7af6d0b652c8c471935b481a1628b59314a
+DIST temptree-0.2.0.crate 6520 BLAKE2B 8a1536fb0cd0d2e2e57d87fd0772f20432baf570f8d59c525687b2baafe363baccff603117152ab12e512a3b32c5b9197088fb1011b204b4eef8db5493d841e3 SHA512 4754a5842ffc9e2334f7a954c7596c46f68cea55c62a5d698653c6e84bcb401d825557f3875eb1f52904930141110c4f69c33f6b7eec07ce8d4a048ab60ba852
+DIST terminal_size-0.4.4.crate 10022 BLAKE2B 217873a3d3ff353e03c8612a4c428570b9ad10f1a01b7ecbf276082716e04934cd5d5a8f8fdf29f6eafa61a7909a4720bfa5b0ca139a4a25365b480dcf0877e9 SHA512 85061564489b4fcb8c5a958c66f6c26de4ac3ef7c95afc38464c0b294e56420a9a5bf533691db2282e6429de5405fe7b6273063c4e79c7c72ed0d00748e6008e
+DIST thiserror-2.0.18.crate 28875 BLAKE2B 4edeb4a39f27204d417d673dd3e2c1dec67a5bcdf44aeea70a02715b6101da290b5ac1534908001bb7d758528777f5be30b428eaf13cf0d8afffdbece054f3f4 SHA512 5e20261c0f8898574b5668c743d292be1763a78f6431918f33eea2ee2badb40743af4f668ed245ad685a90c3ae23631a2ae8266569d8f1e7dea111f08ef12352
+DIST thiserror-impl-2.0.18.crate 21413 BLAKE2B 38d2dd849f6919b2735b23e32250c0750366f2a5ef9dc385262ec00fc8e0cef17ef902211bdacaffef4e59dfcde9ca2d84a0ce4d052a96b4233a21b168e6bfb3 SHA512 52a7b5a98cdc32f7d6911451d75f008599ba3775fecc1f7483b161cc4fa176e5b19659f10abf8189748d769fa23d3a22b774cc5102fce395c6f77a5f107b0553
+DIST typed-arena-2.0.2.crate 11848 BLAKE2B 1d2821519c959b8e5f32942fb106f836a9aa753a43058cad6898588f8e0d9abcbe7a94a91ec8d30c62e59833563df48229c6aeec8bf7a396de20895e39571d11 SHA512 33f43488ff63ab763e4330d124e3290ece41e50ab78b6f12dae3a2be4d7f5bdf6ec876ab3b1f8cd81874e335fc41f3a2254994f250d3d6aba682fce557a6a399
+DIST typenum-1.19.0.crate 76414 BLAKE2B 8083988e0bf1d7927377112b8939607f32af098f198a2bfcc2c5302170d9f6e5b29cf02d3cab16c1ecd0fb9f0a45ea3c6bd4a4e4baaf2dfdf8f694093300deeb SHA512 09ebcd7a2cc11f422469cf4fe706f1988bcd81d628e2bab3f54ae82b0aa5486d03a4392187a3736c13dc0c2027053387f89ac656caff72f36365c8be38bc7ff4
+DIST typenum-1.20.0.crate 105530 BLAKE2B cafd31fa726d6780e7c8eeb9a4785b8ecd1d846c49ad12d0d95666d9960066d16afeb0faab1d5ccd5a4dd47b98e0ae47efdc08fef953b0f2d254968084ed65b3 SHA512 2f511e72395ab9a3d3625de5d350e3a1d78d9192d69727cbb51efc1e41b2b6c28798a2a4347664b50978fdbe83e79568cfb6c53ff5f5656fd0cf0e3689803f54
+DIST unicase-2.9.0.crate 24368 BLAKE2B 6564ceec45d9bbac876cc12015e46f4efb415fdda4a37a62f8dc00ac93fa7a6a643887035caf0c6eb13b07571a2145e393080930fc5d1f71899794a942440409 SHA512 1255c6eb4cb7217f0ccb698f790115d88dac3dae3708832f9cdb135f6cd914b2653048463036bc396d0da0cf415251b53c70e27ad5a1cf39a9bb18d8112aae44
+DIST unicode-ident-1.0.24.crate 49298 BLAKE2B 34ba2906a3ebc06f52a4ba77dff96a8f3fb977718d260886fa9e051c5830765641b65a63977110f3a79f31fa177b385f81b01d56c80f6a0324d36eae72e2ebf0 SHA512 7be712d8d0075ac9341790180e312f66264d3e0255c91b38df0951baa5e446dec24551bb2125a66a1cb9b6ca2f1ea37c0cc15fa3dd74f398ecf4d5302c7dc259
+DIST unicode-segmentation-1.13.2.crate 111829 BLAKE2B dcca4af1f3d432c7f40366f7a29267a698cd0ee9a8d3fdb55c577c3456c75f1d664f8bd1f9a59f9b19b93f073a1af7f89bc7d70f87f7c8ade148187c9b8b4990 SHA512 79652f9c22e755530e3910e8a4e176cc882c4b9895755e1539e20820b6dd74cbd52dcc9185eb11f3f150214fb6a822a4aadb6fe967e9a590602008587c67cf77
+DIST unicode-width-0.2.2.crate 282768 BLAKE2B c03a04bb159969f32447c7823f50b2686c515dff4f7778d2cac07a87cb9488d44844b0bb0b51c6996d8fa1fcb65cf4e6a8a9e697d95c1be8373535bc8d7c4215 SHA512 a0ff6ccc1d154e5a100808d3109fe30afa048c3ff402f0a0de34dbff2d58a7403903002185b33bee7b04dcb578c9dea66225a8697f3cd997205680ae3abce965
+DIST unicode-xid-0.2.6.crate 15744 BLAKE2B b1bad25897717f6346f988d5a7c90c51fb842da113f19aa434a64add8f2e637258d9fab0f7b871fd2aac02e83c68359fc679b326232793cbc804523e2bff5056 SHA512 f68e78484479a5341b14d7e3391e691265851fa00feeca53af745479af6aa9b4ce3570456df785c8362043db9b04e2e57f9bad05d8305946f16af405bc611764
+DIST unsafe-libyaml-0.2.11.crate 62101 BLAKE2B 7ba17f2c19d96fc8999448594ba67bfc0eceaff47a39e560f856d13229ad5e69a9c8ba8794ec814e6b7c3cb7d597b7c7a366c8e880f17c0efc6a03a5677d82bf SHA512 a42c95eaed1ae2e438d3ba19ccd92337327c34f6174a43db80e1f37c507154249c7510e93f81726890c6032c89fe21b1876582afb7fbb811e3931480c4727712
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST uuid-1.23.0.crate 63006 BLAKE2B 77bcbf3c658f0bb5d09bed862b9a8720110d62094a2bf9065ab8f98e6c458e4213767a9152280bdd71941eae7077036deae56adbcdddc14fdcbbac4cbd030061 SHA512 60e476dcbc407a0447f362ee019abb128c0441503e0adacdcac5685ecc16aa680faa575b25fcce147e9c49bfb5b8fa04964a25c5d7e4e9870e0078bf8f18fabf
+DIST uuid-1.23.1.crate 62932 BLAKE2B 8ff58079d6a1eacf2d1baaf1dba6ca5c5da84768a27e2f7f1f9843f6057ed634843ad96a6797b4fdee5a01716ebade8b99433a9b9b3dad794bb9a26d93c81059 SHA512 7f9222285c9e6635d9ed0b03ae945c2037bd7f7486bb05214355c19eb3fc0f7685b3f6b3bb58e158e1dd26cbf4772af7180420305f2ff001a69e90ea6f2c428e
+DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
+DIST wasi-0.11.1+wasi-snapshot-preview1.crate 28477 BLAKE2B bcc773ba28cbe8d820e9e9fbb275fb4451bc7f39b3bd88bcd93850bf2bdb5300489bd8eca27489ccc5f6269b00f4e1b505ae3a33a35d708cd5a414ad307be149 SHA512 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49
+DIST wasip2-1.0.1+wasi-0.2.4.crate 132087 BLAKE2B 9ae5188981d55ab0cfc52668cd822bedde6b03104990bcd070f459a39ef75699a792bfbd33766cdfae852147c2f3ea236aa1d1b792e85c56be21b74aee2232af SHA512 56b88f97224b6b9763f4d2572e986609fc86a98f597930b5cbc8095d4184a0279286c8c79f6ace19bb08ba08854a408a61004bdc6b2f3b72d4f3fcb5e43edceb
+DIST wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06.crate 123354 BLAKE2B d8251ea31999f954eb1264bbc7792ba16a90aec3ed3112fe84b9a93dd8a0e493390b899be9e5e215ebebf644697d3bab680cb07d5e64617cbb57e6b2a28ae95f SHA512 fb136a5475fb4696902d4f4be43e0d5d28cf3bc1b6c83e5e7837499ee038f995c9f084064e2e4585dbc3bd260e0c7c95371526b04933f2c60fb6ce302416215d
+DIST wasm-bindgen-0.2.115.crate 61610 BLAKE2B 6346ce8ddc8f4cbd8fe0365de9da7162cf2f64271b76bca907f46c94440afa52b302d76303fd0ead6964cf1db039fd6cfe13c20f1a7cbb6f6070978cbbc5d136 SHA512 a2cadff7677479be4ada7a725a3041de3a5d808bd9d0d731cfc9cefbfc5d43c5f6ab2561773ca83698f37dafd5b219599cde4095368c3c774365f323b1101171
+DIST wasm-bindgen-0.2.117.crate 61596 BLAKE2B c27f4e8965e4f802521d273ddbadd9fd4fb7582de15bf396f6cd098b53f55ff62cb28dbfa7aed8cdb2f9ef3dd41d5f7e35cd0cac5ae7c6a9e77616cf2039f68f SHA512 7be5118bbd15aeafdbd58af3889e7cd088031d3f1887a0bb5e86e808158dedbdb540f9d513db71adf0874ae93bc6e845ff70f59b98862ee1b76e8ffb53cf1226
+DIST wasm-bindgen-0.2.118.crate 61149 BLAKE2B 3d5655101b382f2870aebfa35eb38cee19402eae18cae102824876f01094e5f505b26ee6f1afafa786b0cbe6b94ecb5c292db54bb85cc453ecacf6fc602bf79f SHA512 a61545f1895fe5a6e9d33b321f8d6e888c73c44b524fc38ac667df4f0cf7cea785d072c3cffc7d7bb26d288ddce90683bcdab3ba09be929016cf1f742020e270
+DIST wasm-bindgen-0.2.121.crate 65838 BLAKE2B a112eae863aa19863974e72b1e204e921977efc5510e5ee17aa06ce02e746942deee967057f0de0887d29f5c88637f80150a6fc3e34a93058a07f259da607168 SHA512 a3420d0fc119b9e1b091afa24b08c9b3692bff28d0488426641c9478ca795a0fe3564120ddbdbb2856f44864e622bea715ce13012d45a6e1b0795ae7057b55df
+DIST wasm-bindgen-macro-0.2.115.crate 9279 BLAKE2B e7ab76a9a125b6ffbd723b08fa461ad8be514011fc7af54a319600bbc258e7a9ec51726a4316e7b3fd75b5cbddf409663f7c908cafef08d30632f15799f98264 SHA512 353d04a52e8746ced675ac92c0cde0798c6b83e0e239b7ff81c46f172b33a5b9c36156a213e8069fd08db756b096e98c01f715005fde4af7fd261496484cbdf2
+DIST wasm-bindgen-macro-0.2.117.crate 9279 BLAKE2B 74bac5c375fd70c682a3fb7f80e45ec237af990d660e9d6bcff3ec117928edcb522c678abdda02de762ae1f593f8bb0a3a71800d1ed6f0e9383194026d8eb97e SHA512 0b736aa543abf13fc9fe1ff7159c22a3e1d208e11db68b229e807915169572b030640fb942a4f3327db170793d2b84d8268a19adca708dcaec90a2700fd54292
+DIST wasm-bindgen-macro-0.2.118.crate 9288 BLAKE2B fb4935cf037278752326a8ee4e78ca89738b426ebc14a90a63e1c37e7bb250e7bc4a08390448b1d49d7dfdc58d1e53ad98f08220c57187584740fa73950b365f SHA512 9370d4abeb445a0d8a89d0fa9156611dacdece4ff809e929987436ac2d6cfb1a3625b892a90f6c1e32f7541592415eb37259ada379b39b2aeddc8f3a2f8f1b3d
+DIST wasm-bindgen-macro-0.2.121.crate 9294 BLAKE2B 762428020014a5d18e9bd8af1426be80553c573799c55792721c907c0136d77c98e21fdaee058136b0ffaa6e997c13599d0132d23ec8c91f8f330e5b7bad618f SHA512 844c4aceb5c1eef783d4ab678b189da004bbea4274de9744ea832d9644bbc08ea8b4a365ab2fcf33295fde235bfe53b21c29e7e30847d1cb0e265ed62302a1fe
+DIST wasm-bindgen-macro-support-0.2.115.crate 63479 BLAKE2B 76fdf41d8f616ad193e4fff3f6d85d8699c9d8926549ea77b02966641c92b931b253bf8bb1a63c749a48a84995ceb2d53b55791ac1acf9344f43d97e09eeb89d SHA512 64111994ce01422726d57cbc564b503b8a8c5af77b7ccd72e23df05c8600ff1147ff8cd1ccc25b90ee08f353d2a286435a208d8b9a815ba7b79759f060d9832a
+DIST wasm-bindgen-macro-support-0.2.117.crate 64391 BLAKE2B 8e35a4533f1c2984bb42e09402148eeca3c51a5e9f4312db4996b873c91456a3ca89eb35ac573e1711f46541bdb64c082365c6ba478ca31ac04814d14277cab9 SHA512 812d7c4842127547a0a0ab852036e43f9dfdf9cfce0535824e165d3016485517ee8cd2ce4979cfaee8ed389f8804ea654e72841873e28a1c7266069c72d0b358
+DIST wasm-bindgen-macro-support-0.2.118.crate 64823 BLAKE2B 22381eb0019bb582dd1b4aab1b33ac3684d6eb8b0a613d1f8909eea82a4df561844e340e81b7c0cadf452039889cb3c1b386aaa4f6c7d25d6852529bb28d8e09 SHA512 36896af83f1d9fc9f72b4709c600db787538b7e889b86a374ff933b5c29ef80d09a2599d54fec051b3559c896ed035243595fbdac834f909860ff47eab2f7185
+DIST wasm-bindgen-macro-support-0.2.121.crate 79901 BLAKE2B a2bf5277242d9f0e89583ed08e98c18e6f6f176342c4462379d00e12ebd7f442f8b157be015a36abaa541ad6a110acc0ff50c8f8b45aee29471568d4c741905f SHA512 ac01daf74ee83db1fd35a7733caeff29f29e1eace54b8b415c935b32b2d48d8802b30ffeea12f73f16785b670c25e5128c894a9bf173e2b112970c3ee1475197
+DIST wasm-bindgen-shared-0.2.115.crate 10545 BLAKE2B fc6a7f18366372be8d259ac4832273db5373cddb2857d42b1ec3f68deab6d63c122f2755252e9059e7e409deef259bb8cb5b9bfe762c57ab9a8631bc19512113 SHA512 260d8e205d4e9ea25b8a731305853dd726f00c3aa9f82d9494b99a4e869573b4ef3730b89818850bb22c1578278a5115fa202356e39f2d8622a5744c92f1e824
+DIST wasm-bindgen-shared-0.2.117.crate 10541 BLAKE2B b8e8bd84ed54f7512d5a96ba7afadbc04e3e1b045a5d11ea39cd66acf7de94d1dbc430313154cd9e84fb0e1c086520a8b0475c797eeea5240a86e159b50d6868 SHA512 74040fad00dc33dd86a5a5bdc6af549b7a31c2c7de6023547af0ae4af09192b48e4d3e11170ffe1fddea7962b7060144139cf13931c217af9e3aa61001593bda
+DIST wasm-bindgen-shared-0.2.118.crate 10565 BLAKE2B a139fbbc5b63fec19708772d7f3cb457c2c24ca73a72618e4bdc65c8090390296e841a9ec5969d1cc0f90cd61351f43b5dd1d0462d08635d90bf01b24ef12b17 SHA512 916d6535f91aedf68b90d2491473d758244e664aee2d82734ed2bd377eaed90e929aa06ce95790ba120405337caea88624cf25fcedbe6af8b0820905e203fcd4
+DIST wasm-bindgen-shared-0.2.121.crate 11270 BLAKE2B 0b66cb8a2518ccf2faa14e292af265ae116304fdfe9fec284f856119c8168e9d0a05dbbcc945eed6bc9a0d4c25933e781a22a816cb43effe0497ad6702d57bcb SHA512 33c037993258552abebe2e3cb3fcd7064e768a4917c1ef3c87ba79b40a3201bdfd27793e78794ec09d7e257dae61a5a8ed283b7651be31c74c2384d4d62b8a86
+DIST wasm-encoder-0.244.0.crate 85804 BLAKE2B 6dabb55c635d13d1d56711a43c655dfcb74bb9f0be10bccd412c21b5dcd63a46b73ff40955ff28aa0fba9341fe22161c8d253762afd587eaf69a7ca49c06e285 SHA512 ab78662abd6bc9edcc14531a87a848eb6c26081ce9bcb9ff15415ceecb48dad98ab6066638947780c65d7689d11502d4dd2353ff3462b4f49e1c1a8c00d2c1d2
+DIST wasm-metadata-0.244.0.crate 21500 BLAKE2B 8da1035b6302c23b00792d90153f74f35eb9cbe913366b43ff7e5d81481c903396b32ad54a416a14b40ff8d4ba329c6fda8c203e4b16f1ab80b3bf4535cde72e SHA512 77677c68dafabacc9697c6090d01fdb171c33ca1663c86dcd3612630b2ea6c41232a7cee125ba416d373edb34ea8e0926d164012461e2ddca8d4d18597feb855
+DIST wasmparser-0.244.0.crate 265607 BLAKE2B fb982e84536afde140d972614bf6c2875ef169f0b68010393e61d8a1041e57d5355e8f0a57df0681ce4159f830e30a59affbd733656aa9c633ad959225007b11 SHA512 d1a1f549fe93e11cf4155a8f5840fa444505ca9184e28163917bd8ddb1d53cb4d2be0335e183ec24625a7db22dd5d7e22c93c697bdd4de0d537b54af4ed7d834
+DIST which-8.0.2.crate 27189 BLAKE2B c20c7c20a641888d273431087d3ea8d3334494fdc284a8c54698a84759e66c320869bdc30c9d9d0d66f264c1f1cfed3744f5da926608dc262ce09fbcfdc4716f SHA512 d3d08e991d3bd5aeb8dca5e3bca9f58c9917815d8ef51b1c9a11a02a12da08b8af0003fcaebc0b284e5d13b85c8d56b84cc4b6a29fa61ea408329e81b3099c0d
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-core-0.62.2.crate 36932 BLAKE2B f291939153338efd768bee7cb3891814a1d46ed5cac1e2ea72a7ac66613842c02e1de89052a53e8b164d1055d9d4a138711929af897486b3a6da02e91aee3103 SHA512 b3b3e95b7ff6df91ebf866f8ec9c5e8f67134a26f1690d286f62fd756ebc5e2c59c583d4fdc213e5aaf6834f2693329f3eccbee83fa0567663cfa7d9d9ca549a
+DIST windows-implement-0.60.2.crate 15325 BLAKE2B 1f4e5b6759224a74f006c3bfb9acd3bb5fb111fdcf6e4f5e838ca10ac200baf48261583386962d357deffbabea4f67f8e257b8ad8b01b5aee6fe67f3822a7c13 SHA512 212fd6c1f25da40f2131b07ce1c0a34c23177c4666bc518e00a9b4f2bd23c1d131bac565fde531c51f21167f9eb1591e381fc6bc44ce952f6945bad6547c1579
+DIST windows-interface-0.59.3.crate 11809 BLAKE2B c3f439e14e85175f12b4403295f063f53d03224ed1842ad3826fb2beb89c2884317105e28d9d9af2000e08b5bf2fd05befa48dcd0325baba168acb19c8341d86 SHA512 6fe54da90ca797a5e1927803febb07d1e2e4db0bdba5a9cd84d823dc9118390c0f988387e8c614949b9f3c3a0fd47743fd0ddec3200f897952c53a57bb34adee
+DIST windows-link-0.2.1.crate 6133 BLAKE2B d1ca714178e6fe12bb3b4caeed9a52a36890989e77ae2dcd6f2d18ae4a21fb8479d304cdff63bb0a5f28acf44eaf104821cff83cd66b3a0406a5f33a800e3641 SHA512 afb0c87beb8914fd9a3e52db6f2f64a840470b9751b66c83892c24cb1c46cda63fb16b1aeafcaa5a1fc7c5ba01da46be63e5227cc108dede8b0bd27785498a6b
+DIST windows-result-0.4.1.crate 13381 BLAKE2B 3960ffb7f15826bd2f8636133412872d7af9c2d89fde07d2183188083e22580ecbef11f423523aa864c0b199a494aabf1d6386d7c7fceeb7ad74575347efbd27 SHA512 a2b7cc53608b8243bf9b19adb75cdc1698b8caf78d939c3afc0c01b1e89f9cb951306cc1673f9b400b926437340681af641ee322f7e761a641ee40e52b21b9f2
+DIST windows-strings-0.5.1.crate 13966 BLAKE2B 9143cfa5a4184bf0aeb62f8c85d0629d7417b74727349cf46f0d1f28d0e255cc218ac5bc39fe1c7f0311c418f23644e84644b8e7833c5b1c8d1f523c3d38d728 SHA512 c1c3e620aeacbbba0159e789cf0a0261e943f626d21392a77ff00d321c867a0a6ea75054f594a63fcc86cb9ba6bb580d96c29e0a8fdffe90e73658aefc3472b2
+DIST windows-sys-0.60.2.crate 2518479 BLAKE2B c2e2f614066e5a9d7ec461d9d25bd441188797ad85e1e923baeb0193e82f5c138ae7fb4ad0255d483f60f7a94e3f5cd8373d01b7485c052c9498937bc40da992 SHA512 a48aa1b66479451e431032737b63dc62eac6f63c251534e258de75bbee4858829faf5e641756566f00e153b08548ba32beb437b5ea42e9531e3fcbd8eb25209d
+DIST windows-sys-0.61.2.crate 2517186 BLAKE2B f4eab0b365aa1df8a353d634da5081237bef0f7b69f02ffcaba232a688e59dfe877c47114de64c81e3cbb929c2fea1143ed6bda56ce935e66d871a993ac29106 SHA512 e6c8f61f0724dafca7821ee9b9c07237ccfee69be269be2fa7318eb48b151285ecf63e860aa1fe303639222fe11268e3773f37c2dd79f923029af58c645edb3f
+DIST windows-targets-0.53.5.crate 7126 BLAKE2B 17a0452fe72a42df4aec8b4ae7798bd611df4f3b093709aee7b8dc991fbc2351edd23e134d12412fb47e9930ae30476b55841d52be5e764fc42a7922e3134ad3 SHA512 285a2ad1c370d8485a84c3921b180416c79ad596ace5ce30a1100fe0d9725139e9302f5728d4874789d8abe5c53e9b30ff4738d969da1c07940bde2b01c7a203
+DIST windows_aarch64_gnullvm-0.53.1.crate 787748 BLAKE2B 78729e1107cf64ffc6a3d70c14cc93e7867578be51d3f6f442914a5f2d065fa86be843b72cd24d707eb59b779e9a719eb28d025619cdc219e379827acb4a16c2 SHA512 5e480e54af09c142ff75e77f733327dd3862f32620e0b075e02bf8119e955ef2f3acfa00f7c7a4d6a2b034d03d70c45e191a40c8af628484d0e76a0b15870cdc
+DIST windows_aarch64_msvc-0.53.1.crate 838009 BLAKE2B 0a04f6d80bd0ab41964e9932040d6c748b6bf10d609bdd35074ba26d245a98281739c8ac68a3fe251d36148a53e1730b0ea2dd5347279e74dea881be43d67707 SHA512 81175036792cab41ede4e3a21ae324e638c39604e14c7a3dae8db4090cec45b385aca32416ccad50ab194ce06d3a71f2e12473767d680348795383dbb2d17426
+DIST windows_i686_gnu-0.53.1.crate 939775 BLAKE2B c6abfbe7b82c7fd95a483da467ce8f12a3777572e34c42777e6378976344c95e5a56e3e7ae47049e14de81aa26f276a723ac5cb61f2c62b141020a97a91f137b SHA512 5af8519d1e0d9947738d5aa339091695467a55b62fe97bac680eb469679180a54e9f65e2ef8d0c34d4e63ede8c16f34a0fbd1f54ff53924ebcd6cef17c3474d2
+DIST windows_i686_gnullvm-0.53.1.crate 857396 BLAKE2B 4fcc61c3634d7b905c946ccaa2f6d03ccf0feb6f8080337d5618959a532fddd5989dbc95d8559bbfb06335865387900e7cfe942cfb67a7724c3c00dc99b1d603 SHA512 492bee10b669c799a93b7ad98ee7a15c0ccde4d13697408612cd345cca2b7efc38b85c550eaf1b83470bee53ff3324045b7b751c3a31ac0e214b9965e05bbffc
+DIST windows_i686_msvc-0.53.1.crate 907688 BLAKE2B f6ae6032836367e9a42261779661abd028d303cfb13c016dd1a745b21b58d62531dd0d7658a6c133d2bf1dd95c538cf24340bb50e6743a82d6be9a622ff371b7 SHA512 b78f2a21e88adb65bf8a81bfa8a133d6ebe18b8394220421bd5f10b619528f118a255dacf6e78014ddb4db8a27b936be7af6e137133d914e1cc0902139a0e0cd
+DIST windows_x86_64_gnu-0.53.1.crate 903712 BLAKE2B b5a86bd4a760fb6d937dc5285d2c594245ed6bbc541ffd6cf6d169c7e4e8c4334523c06c7a59c52f100a05da7976193fbb535ff3bf7db30897d9940d4d5648a4 SHA512 e4c5bbc49202636c03953aa0fff1f1affed69970aae198cb4d1eeb5dda63b9e07b0cfaf46015bca3b8c48fd90d3552488a6a7b17b53aebf9776e996ccbf9c7d5
+DIST windows_x86_64_gnullvm-0.53.1.crate 787739 BLAKE2B b5e3aaba4ecd1e5e21a0b9ce5beaad3f9ef78249f21b3dbdb69af98d5f36d01f2ce65d3188788392b866f296548075857e2f904e30cb79db33fb3134fd78e946 SHA512 30b8919ee9ad36acfac4e28a3b22378ce11ee73d35de60dd9c9217adf14e85222da5526100b0252372e039e559a5bf734ba134b10f707657d542341056947588
+DIST windows_x86_64_msvc-0.53.1.crate 837950 BLAKE2B 5775d30ce763835fa26376d85e9ae6f598b817b8d32b01147e5d197c364a5071ce7b5b09ee6f611fcf30790af79c4e4282e04ced620190629eebcbccabb8d720 SHA512 bb724f4051db90ce49b552021e746769e5dfe3792b522416539960c27f9ace14f63c47f0f240d6563257377129b5f3ba2c262c6fea9610428aa860fe035f189c
+DIST wit-bindgen-0.46.0.crate 60508 BLAKE2B 4422fb47880ecd70749d615ea6ed0a8bcb5941bd9de2c2164a6f1248574363408fcb634e0e9aa0af3e0f278c9311a81212818dff70ef39614646ffdd646b1fe7 SHA512 5d37ac5855797cfb906c983a70780d7cd29d70c4e5b6e54328fc18297feeb89ceda0aa732123280a12610015fbdb42bcd76aae12b1debb281b0a848016134548
+DIST wit-bindgen-0.51.0.crate 68035 BLAKE2B 0cb5e191f866c3782b6a1e822ecbae6e618e08371867462addb027dd5510638e72438d991777877d5754b2932afcb41f2edc1ec1426334a69311905f0f309b6a SHA512 61380c309630ad7f415d467daf1d639ad7a3e8dcd26e5f88aacf0230b52600f150e804821b6a1df9b79cc7fdd4f1d800d043ee7eca770b1947a3cf06f893711e
+DIST wit-bindgen-core-0.51.0.crate 35048 BLAKE2B 1ce5f1bd6d1ceceaeb91d247f63745abfd25b539b57dc12321a2342f55da1207c697641a778ad6bff2bbece300fa52a788c7890e8dc49c5357f48292fed2a693 SHA512 eec78ac1566cc4f03b1d0d7d2e84c3d0fc2458a649c01a45c9c3781034078ed51b4a9852760fe96115006fb3415bcb31b1bf429cb3cac6e51e09a1c0cfc32ed0
+DIST wit-bindgen-rust-0.51.0.crate 57051 BLAKE2B 65c45b1b8b08681ded9bae2b4ac982770fa613bfe850128de1116a51ddd6366423c27e1f704817ad69dc05694e03aabb56af5bad3aeb0aba3cbc9415fad474e7 SHA512 7a5c29b92fa53ac8f8097b04a9507f471003edabcae0223d35180937b9254c62b24d9f4cef790000bd7bc7f6966af3aced2d7196359479480455baf5f4450f9f
+DIST wit-bindgen-rust-macro-0.51.0.crate 14283 BLAKE2B 79bc4a4846ec73ae02fe69fcb7898297647a0c70526fbd555e79a4c76de968f0d4c9e2e497643d9c1e7403bb8176a2108ca25a7cef577b9db3ae04142a3bd1ba SHA512 bdf6ab20b484180bfde867b8c8b03c10fe02a9279895ece43fddbc20b1ffe771128590d3d4c72585e959512808682278e54983d11066e0192d84b7aee830e0e2
+DIST wit-component-0.244.0.crate 256882 BLAKE2B 5e9c706693e3064ffbbe28a23e64e5bc32f6772ed294dce3bd2972b8d951f2820ddcee5f9e651b1acc470740b021986cedb6f0ff7a9bdc2b6e13f997dd341024 SHA512 efbf91954b7c4fc9cf5835783245f3a8cda7e5883c6e244a3da85a64b6b2d74f44ffa5f73309de7451b5e6aaf614664869769b140872ab85913878e52e490a00
+DIST wit-parser-0.244.0.crate 159371 BLAKE2B f46db4840d3cbcd42e5d26b854247d172f8385810a10c437aaa6b67f3f72dcc230a8d75f4e5ccff6ea006c8a52c2fe92f39d9d90cb30ba594c02ae618fb66bb6 SHA512 c554a167ce9802fbc7537700376da70ed6a79f96adeba5a0e4c955a7cc4f2ae4f588071e25735903d4f509f2590341fa39b2edd018cf6d3bf8ad6477b2474b01
+DIST yansi-1.0.1.crate 75497 BLAKE2B c0d396c93a733ed6ec12aca3385d816f39b1f1fbed75da460f491f0cbfc30ba462842ebd1627fa8e5d2b7c0f37913a23747e5f5e23df1cb7c85d965e6c37159b SHA512 182c8c6c60a30a727d8f8b90bbf0527d91fa8ae9d8eb20e5414614b43ee6dc532f4b19241adbfb9299cb0004b39fe627036269b60b0c3860d9e1ea4413aca541
+DIST zmij-1.0.21.crate 26665 BLAKE2B e958b58e2213ad13185ec6df55d07e6c80169afa56133038fa66cefb4a9f49aa786249a486dc09b2d0a2f74e41c0d0d713135f38a84dff8f6239636a6bf3cadb SHA512 a488f11ec8721ddfe42e61d028a128818551de8fccd69d7824504e4ae2efccdc38f716fa5a10ef4de07a8a087e75e819c4a1e0790817e8539b5db697bde14585
diff --git a/dev-build/just/just-1.48.1.ebuild b/dev-build/just/just-1.48.1.ebuild
new file mode 100644
index 000000000000..0b6aab84ea33
--- /dev/null
+++ b/dev-build/just/just-1.48.1.ebuild
@@ -0,0 +1,246 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_MIN_VER="1.87.0"
+
+CRATES="
+ aho-corasick@1.1.4
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ anstream@1.0.0
+ anstyle-parse@1.0.0
+ anstyle-query@1.1.5
+ anstyle-wincon@3.0.11
+ anstyle@1.0.14
+ anyhow@1.0.102
+ arrayref@0.3.9
+ arrayvec@0.7.6
+ autocfg@1.5.0
+ bitflags@2.11.0
+ blake3@1.8.3
+ block-buffer@0.10.4
+ block2@0.6.2
+ bstr@1.12.1
+ bumpalo@3.20.2
+ bytecount@0.6.9
+ camino@1.2.2
+ cc@1.2.58
+ cfg-if@1.0.4
+ cfg_aliases@0.2.1
+ chacha20@0.10.0
+ chrono@0.4.44
+ clap@4.6.0
+ clap_builder@4.6.0
+ clap_complete@4.6.0
+ clap_derive@4.6.0
+ clap_lex@1.1.0
+ clap_mangen@0.3.0
+ colorchoice@1.0.5
+ constant_time_eq@0.4.2
+ core-foundation-sys@0.8.7
+ cpufeatures@0.2.17
+ cpufeatures@0.3.0
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crypto-common@0.1.7
+ ctrlc@3.5.2
+ derive-where@1.6.1
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.5.0
+ dirs@6.0.0
+ dispatch2@0.3.1
+ dotenvy@0.15.7
+ edit-distance@2.2.2
+ equivalent@1.0.2
+ errno@0.3.14
+ fastrand@2.3.0
+ find-msvc-tools@0.1.9
+ fnv@1.0.7
+ foldhash@0.1.5
+ generic-array@0.14.7
+ getopts@0.2.24
+ getrandom@0.2.17
+ getrandom@0.4.2
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ heck@0.5.0
+ hermit-abi@0.5.2
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.65
+ id-arena@2.3.0
+ indexmap@2.13.0
+ is_executable@1.0.5
+ is_terminal_polyfill@1.70.2
+ itoa@1.0.18
+ js-sys@0.3.92
+ leb128fmt@0.1.0
+ lexiclean@0.0.1
+ libc@0.2.183
+ libredox@0.1.15
+ linux-raw-sys@0.12.1
+ log@0.4.29
+ memchr@2.8.0
+ memmap2@0.9.10
+ nix@0.31.2
+ num-traits@0.2.19
+ num_cpus@1.17.0
+ objc2-encode@4.1.0
+ objc2@0.6.4
+ once_cell@1.21.4
+ once_cell_polyfill@1.70.2
+ option-ext@0.2.0
+ papergrid@0.14.0
+ percent-encoding@2.3.2
+ pretty_assertions@1.4.1
+ prettyplease@0.2.37
+ proc-macro-error-attr2@2.0.0
+ proc-macro-error2@2.0.1
+ proc-macro2@1.0.106
+ pulldown-cmark-to-cmark@10.0.4
+ pulldown-cmark@0.9.6
+ quote@1.0.45
+ r-efi@6.0.0
+ rand@0.10.0
+ rand_core@0.10.0
+ rayon-core@1.13.0
+ redox_users@0.5.2
+ regex-automata@0.4.14
+ regex-syntax@0.8.10
+ regex@1.12.3
+ roff@1.1.0
+ rustix@1.1.4
+ rustversion@1.0.22
+ ryu@1.0.23
+ semver@1.0.27
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ serde_yaml@0.9.34+deprecated
+ sha2@0.10.9
+ shellexpand@3.1.2
+ shlex@1.3.0
+ similar@2.7.0
+ snafu-derive@0.9.0
+ snafu@0.9.0
+ strsim@0.11.1
+ strum@0.28.0
+ strum_macros@0.28.0
+ syn@2.0.117
+ tabled@0.18.0
+ tabled_derive@0.10.0
+ target@2.1.0
+ tempfile@3.27.0
+ temptree@0.2.0
+ terminal_size@0.4.4
+ thiserror-impl@2.0.18
+ thiserror@2.0.18
+ typed-arena@2.0.2
+ typenum@1.19.0
+ unicase@2.9.0
+ unicode-ident@1.0.24
+ unicode-segmentation@1.13.2
+ unicode-width@0.2.2
+ unicode-xid@0.2.6
+ unsafe-libyaml@0.2.11
+ utf8parse@0.2.2
+ uuid@1.23.0
+ version_check@0.9.5
+ wasi@0.11.1+wasi-snapshot-preview1
+ wasip2@1.0.1+wasi-0.2.4
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-bindgen-macro-support@0.2.115
+ wasm-bindgen-macro@0.2.115
+ wasm-bindgen-shared@0.2.115
+ wasm-bindgen@0.2.115
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ which@8.0.2
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.62.2
+ windows-implement@0.60.2
+ windows-interface@0.59.3
+ windows-link@0.2.1
+ windows-result@0.4.1
+ windows-strings@0.5.1
+ windows-sys@0.60.2
+ windows-sys@0.61.2
+ windows-targets@0.53.5
+ windows_aarch64_gnullvm@0.53.1
+ windows_aarch64_msvc@0.53.1
+ windows_i686_gnu@0.53.1
+ windows_i686_gnullvm@0.53.1
+ windows_i686_msvc@0.53.1
+ windows_x86_64_gnu@0.53.1
+ windows_x86_64_gnullvm@0.53.1
+ windows_x86_64_msvc@0.53.1
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.46.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ yansi@1.0.1
+ zmij@1.0.21
+ ${PN}@${PV}
+"
+
+inherit cargo shell-completion toolchain-funcs
+
+DESCRIPTION="Just a command runner (with syntax inspired by 'make')"
+HOMEPAGE="
+ https://just.systems/
+ https://crates.io/crates/just
+ https://github.com/casey/just
+"
+SRC_URI="${CARGO_CRATE_URIS}"
+
+LICENSE="CC0-1.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD-2 CC0-1.0 MIT MPL-2.0 Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="amd64 ~arm64"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+src_test() {
+ default
+}
+
+src_prepare() {
+ default
+ tc-export CC
+}
+
+src_install() {
+ local DOCS=( README.md )
+
+ cargo_src_install
+
+ mkdir man || die
+ $(cargo_target_dir)/just --man > man/just.1 || die
+
+ doman man/*
+
+ einstalldocs
+
+ # bash-completion
+ $(cargo_target_dir)/just --completions bash > completions/just.bash || die
+ newbashcomp "completions/${PN}.bash" "${PN}"
+
+ # zsh-completion
+ $(cargo_target_dir)/just --completions zsh > completions/just.zsh || die
+ newzshcomp "completions/${PN}.zsh" "_${PN}"
+
+ # fish-completion
+ $(cargo_target_dir)/just --completions fish > completions/just.fish || die
+ dofishcomp "completions/${PN}.fish"
+}
diff --git a/dev-build/just/just-1.49.0.ebuild b/dev-build/just/just-1.49.0.ebuild
new file mode 100644
index 000000000000..853b9739f9c3
--- /dev/null
+++ b/dev-build/just/just-1.49.0.ebuild
@@ -0,0 +1,245 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_MIN_VER="1.87.0"
+
+CRATES="
+ aho-corasick@1.1.4
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ anstream@1.0.0
+ anstyle-parse@1.0.0
+ anstyle-query@1.1.5
+ anstyle-wincon@3.0.11
+ anstyle@1.0.14
+ anyhow@1.0.102
+ arrayref@0.3.9
+ arrayvec@0.7.6
+ autocfg@1.5.0
+ bitflags@2.11.0
+ blake3@1.8.4
+ block-buffer@0.10.4
+ block2@0.6.2
+ bstr@1.12.1
+ bumpalo@3.20.2
+ bytecount@0.6.9
+ camino@1.2.2
+ cc@1.2.59
+ cfg-if@1.0.4
+ cfg_aliases@0.2.1
+ chacha20@0.10.0
+ chrono@0.4.44
+ clap@4.6.0
+ clap_builder@4.6.0
+ clap_complete@4.6.0
+ clap_derive@4.6.0
+ clap_lex@1.1.0
+ clap_mangen@0.3.0
+ colorchoice@1.0.5
+ constant_time_eq@0.4.2
+ core-foundation-sys@0.8.7
+ cpufeatures@0.2.17
+ cpufeatures@0.3.0
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crypto-common@0.1.7
+ ctrlc@3.5.2
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.5.0
+ dirs@6.0.0
+ dispatch2@0.3.1
+ dotenvy@0.15.7
+ edit-distance@2.2.2
+ equivalent@1.0.2
+ errno@0.3.14
+ fastrand@2.4.0
+ find-msvc-tools@0.1.9
+ fnv@1.0.7
+ foldhash@0.1.5
+ generic-array@0.14.7
+ getopts@0.2.24
+ getrandom@0.2.17
+ getrandom@0.4.2
+ hashbrown@0.15.5
+ hashbrown@0.16.1
+ heck@0.5.0
+ hermit-abi@0.5.2
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.65
+ id-arena@2.3.0
+ indexmap@2.13.1
+ is_executable@1.0.5
+ is_terminal_polyfill@1.70.2
+ itoa@1.0.18
+ js-sys@0.3.94
+ leb128fmt@0.1.0
+ lexiclean@0.0.1
+ libc@0.2.184
+ libredox@0.1.15
+ linux-raw-sys@0.12.1
+ log@0.4.29
+ memchr@2.8.0
+ memmap2@0.9.10
+ nix@0.31.2
+ num-traits@0.2.19
+ num_cpus@1.17.0
+ objc2-encode@4.1.0
+ objc2@0.6.4
+ once_cell@1.21.4
+ once_cell_polyfill@1.70.2
+ option-ext@0.2.0
+ papergrid@0.14.0
+ percent-encoding@2.3.2
+ pretty_assertions@1.4.1
+ prettyplease@0.2.37
+ proc-macro-error-attr2@2.0.0
+ proc-macro-error2@2.0.1
+ proc-macro2@1.0.106
+ pulldown-cmark-to-cmark@10.0.4
+ pulldown-cmark@0.9.6
+ quote@1.0.45
+ r-efi@6.0.0
+ rand@0.10.0
+ rand_core@0.10.0
+ rayon-core@1.13.0
+ redox_users@0.5.2
+ regex-automata@0.4.14
+ regex-syntax@0.8.10
+ regex@1.12.3
+ roff@1.1.1
+ rustix@1.1.4
+ rustversion@1.0.22
+ ryu@1.0.23
+ semver@1.0.28
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ serde_yaml@0.9.34+deprecated
+ sha2@0.10.9
+ shellexpand@3.1.2
+ shlex@1.3.0
+ similar@3.0.0
+ snafu-derive@0.9.0
+ snafu@0.9.0
+ strsim@0.11.1
+ strum@0.28.0
+ strum_macros@0.28.0
+ syn@2.0.117
+ tabled@0.18.0
+ tabled_derive@0.10.0
+ target@2.1.0
+ tempfile@3.27.0
+ temptree@0.2.0
+ terminal_size@0.4.4
+ thiserror-impl@2.0.18
+ thiserror@2.0.18
+ typed-arena@2.0.2
+ typenum@1.19.0
+ unicase@2.9.0
+ unicode-ident@1.0.24
+ unicode-segmentation@1.13.2
+ unicode-width@0.2.2
+ unicode-xid@0.2.6
+ unsafe-libyaml@0.2.11
+ utf8parse@0.2.2
+ uuid@1.23.0
+ version_check@0.9.5
+ wasi@0.11.1+wasi-snapshot-preview1
+ wasip2@1.0.1+wasi-0.2.4
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-bindgen-macro-support@0.2.117
+ wasm-bindgen-macro@0.2.117
+ wasm-bindgen-shared@0.2.117
+ wasm-bindgen@0.2.117
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ which@8.0.2
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.62.2
+ windows-implement@0.60.2
+ windows-interface@0.59.3
+ windows-link@0.2.1
+ windows-result@0.4.1
+ windows-strings@0.5.1
+ windows-sys@0.60.2
+ windows-sys@0.61.2
+ windows-targets@0.53.5
+ windows_aarch64_gnullvm@0.53.1
+ windows_aarch64_msvc@0.53.1
+ windows_i686_gnu@0.53.1
+ windows_i686_gnullvm@0.53.1
+ windows_i686_msvc@0.53.1
+ windows_x86_64_gnu@0.53.1
+ windows_x86_64_gnullvm@0.53.1
+ windows_x86_64_msvc@0.53.1
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.46.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ yansi@1.0.1
+ zmij@1.0.21
+ ${PN}@${PV}
+"
+
+inherit cargo shell-completion toolchain-funcs
+
+DESCRIPTION="Just a command runner (with syntax inspired by 'make')"
+HOMEPAGE="
+ https://just.systems/
+ https://crates.io/crates/just
+ https://github.com/casey/just
+"
+SRC_URI="${CARGO_CRATE_URIS}"
+
+LICENSE="CC0-1.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD-2 CC0-1.0 MIT MPL-2.0 Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="amd64 ~arm64"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+src_test() {
+ default
+}
+
+src_prepare() {
+ default
+ tc-export CC
+}
+
+src_install() {
+ local DOCS=( README.md )
+
+ cargo_src_install
+
+ mkdir man || die
+ $(cargo_target_dir)/just --man > man/just.1 || die
+
+ doman man/*
+
+ einstalldocs
+
+ # bash-completion
+ $(cargo_target_dir)/just --completions bash > completions/just.bash || die
+ newbashcomp "completions/${PN}.bash" "${PN}"
+
+ # zsh-completion
+ $(cargo_target_dir)/just --completions zsh > completions/just.zsh || die
+ newzshcomp "completions/${PN}.zsh" "_${PN}"
+
+ # fish-completion
+ $(cargo_target_dir)/just --completions fish > completions/just.fish || die
+ dofishcomp "completions/${PN}.fish"
+}
diff --git a/dev-build/just/just-1.50.0.ebuild b/dev-build/just/just-1.50.0.ebuild
new file mode 100644
index 000000000000..b500da7a0191
--- /dev/null
+++ b/dev-build/just/just-1.50.0.ebuild
@@ -0,0 +1,245 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_MIN_VER="1.87.0"
+
+CRATES="
+ aho-corasick@1.1.4
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ anstream@1.0.0
+ anstyle-parse@1.0.0
+ anstyle-query@1.1.5
+ anstyle-wincon@3.0.11
+ anstyle@1.0.14
+ anyhow@1.0.102
+ arrayref@0.3.9
+ arrayvec@0.7.6
+ autocfg@1.5.0
+ bitflags@2.11.1
+ blake3@1.8.4
+ block-buffer@0.10.4
+ block2@0.6.2
+ bstr@1.12.1
+ bumpalo@3.20.2
+ bytecount@0.6.9
+ camino@1.2.2
+ cc@1.2.60
+ cfg-if@1.0.4
+ cfg_aliases@0.2.1
+ chacha20@0.10.0
+ chrono@0.4.44
+ clap@4.6.1
+ clap_builder@4.6.0
+ clap_complete@4.6.2
+ clap_derive@4.6.1
+ clap_lex@1.1.0
+ clap_mangen@0.3.0
+ colorchoice@1.0.5
+ constant_time_eq@0.4.2
+ core-foundation-sys@0.8.7
+ cpufeatures@0.2.17
+ cpufeatures@0.3.0
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crypto-common@0.1.7
+ ctrlc@3.5.2
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.5.0
+ dirs@6.0.0
+ dispatch2@0.3.1
+ dotenvy@0.15.7
+ edit-distance@2.2.2
+ equivalent@1.0.2
+ errno@0.3.14
+ fastrand@2.4.1
+ find-msvc-tools@0.1.9
+ fnv@1.0.7
+ foldhash@0.1.5
+ generic-array@0.14.7
+ getopts@0.2.24
+ getrandom@0.2.17
+ getrandom@0.4.2
+ hashbrown@0.15.5
+ hashbrown@0.17.0
+ heck@0.5.0
+ hermit-abi@0.5.2
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.65
+ id-arena@2.3.0
+ indexmap@2.14.0
+ is_executable@1.0.5
+ is_terminal_polyfill@1.70.2
+ itoa@1.0.18
+ js-sys@0.3.95
+ leb128fmt@0.1.0
+ lexiclean@0.0.1
+ libc@0.2.185
+ libredox@0.1.16
+ linux-raw-sys@0.12.1
+ log@0.4.29
+ memchr@2.8.0
+ memmap2@0.9.10
+ nix@0.31.2
+ num-traits@0.2.19
+ num_cpus@1.17.0
+ objc2-encode@4.1.0
+ objc2@0.6.4
+ once_cell@1.21.4
+ once_cell_polyfill@1.70.2
+ option-ext@0.2.0
+ papergrid@0.14.0
+ percent-encoding@2.3.2
+ pretty_assertions@1.4.1
+ prettyplease@0.2.37
+ proc-macro-error-attr2@2.0.0
+ proc-macro-error2@2.0.1
+ proc-macro2@1.0.106
+ pulldown-cmark-to-cmark@10.0.4
+ pulldown-cmark@0.9.6
+ quote@1.0.45
+ r-efi@6.0.0
+ rand@0.10.1
+ rand_core@0.10.1
+ rayon-core@1.13.0
+ redox_users@0.5.2
+ regex-automata@0.4.14
+ regex-syntax@0.8.10
+ regex@1.12.3
+ roff@1.1.1
+ rustix@1.1.4
+ rustversion@1.0.22
+ ryu@1.0.23
+ semver@1.0.28
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ serde_yaml@0.9.34+deprecated
+ sha2@0.10.9
+ shellexpand@3.1.2
+ shlex@1.3.0
+ similar@3.1.0
+ snafu-derive@0.9.0
+ snafu@0.9.0
+ strsim@0.11.1
+ strum@0.28.0
+ strum_macros@0.28.0
+ syn@2.0.117
+ tabled@0.18.0
+ tabled_derive@0.10.0
+ target@2.1.0
+ tempfile@3.27.0
+ temptree@0.2.0
+ terminal_size@0.4.4
+ thiserror-impl@2.0.18
+ thiserror@2.0.18
+ typed-arena@2.0.2
+ typenum@1.20.0
+ unicase@2.9.0
+ unicode-ident@1.0.24
+ unicode-segmentation@1.13.2
+ unicode-width@0.2.2
+ unicode-xid@0.2.6
+ unsafe-libyaml@0.2.11
+ utf8parse@0.2.2
+ uuid@1.23.1
+ version_check@0.9.5
+ wasi@0.11.1+wasi-snapshot-preview1
+ wasip2@1.0.1+wasi-0.2.4
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-bindgen-macro-support@0.2.118
+ wasm-bindgen-macro@0.2.118
+ wasm-bindgen-shared@0.2.118
+ wasm-bindgen@0.2.118
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ which@8.0.2
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.62.2
+ windows-implement@0.60.2
+ windows-interface@0.59.3
+ windows-link@0.2.1
+ windows-result@0.4.1
+ windows-strings@0.5.1
+ windows-sys@0.60.2
+ windows-sys@0.61.2
+ windows-targets@0.53.5
+ windows_aarch64_gnullvm@0.53.1
+ windows_aarch64_msvc@0.53.1
+ windows_i686_gnu@0.53.1
+ windows_i686_gnullvm@0.53.1
+ windows_i686_msvc@0.53.1
+ windows_x86_64_gnu@0.53.1
+ windows_x86_64_gnullvm@0.53.1
+ windows_x86_64_msvc@0.53.1
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.46.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ yansi@1.0.1
+ zmij@1.0.21
+ ${PN}@${PV}
+"
+
+inherit cargo shell-completion toolchain-funcs
+
+DESCRIPTION="Just a command runner (with syntax inspired by 'make')"
+HOMEPAGE="
+ https://just.systems/
+ https://crates.io/crates/just
+ https://github.com/casey/just
+"
+SRC_URI="${CARGO_CRATE_URIS}"
+
+LICENSE="CC0-1.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD-2 CC0-1.0 MIT MPL-2.0 Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+src_test() {
+ default
+}
+
+src_prepare() {
+ default
+ tc-export CC
+}
+
+src_install() {
+ local DOCS=( README.md )
+
+ cargo_src_install
+
+ mkdir man || die
+ $(cargo_target_dir)/just --man > man/just.1 || die
+
+ doman man/*
+
+ einstalldocs
+
+ # bash-completion
+ $(cargo_target_dir)/just --completions bash > completions/just.bash || die
+ newbashcomp "completions/${PN}.bash" "${PN}"
+
+ # zsh-completion
+ $(cargo_target_dir)/just --completions zsh > completions/just.zsh || die
+ newzshcomp "completions/${PN}.zsh" "_${PN}"
+
+ # fish-completion
+ $(cargo_target_dir)/just --completions fish > completions/just.fish || die
+ dofishcomp "completions/${PN}.fish"
+}
diff --git a/dev-build/just/just-1.51.0.ebuild b/dev-build/just/just-1.51.0.ebuild
new file mode 100644
index 000000000000..c0332ec02895
--- /dev/null
+++ b/dev-build/just/just-1.51.0.ebuild
@@ -0,0 +1,248 @@
+# Copyright 2024-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_MIN_VER="1.87.0"
+
+CRATES="
+ aho-corasick@1.1.4
+ android_system_properties@0.1.5
+ ansi_term@0.12.1
+ anstream@1.0.0
+ anstyle-parse@1.0.0
+ anstyle-query@1.1.5
+ anstyle-wincon@3.0.11
+ anstyle@1.0.14
+ anyhow@1.0.102
+ arrayref@0.3.9
+ arrayvec@0.7.6
+ autocfg@1.5.0
+ bitflags@2.11.1
+ blake3@1.8.5
+ block-buffer@0.10.4
+ block2@0.6.2
+ bstr@1.12.1
+ bumpalo@3.20.2
+ bytecount@0.6.9
+ camino@1.2.2
+ cc@1.2.62
+ cfg-if@1.0.4
+ cfg_aliases@0.2.1
+ chacha20@0.10.0
+ chrono@0.4.44
+ clap@4.6.1
+ clap_builder@4.6.0
+ clap_complete@4.6.4
+ clap_derive@4.6.1
+ clap_lex@1.1.0
+ clap_mangen@0.3.0
+ colorchoice@1.0.5
+ constant_time_eq@0.4.2
+ core-foundation-sys@0.8.7
+ cpufeatures@0.2.17
+ cpufeatures@0.3.0
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.21
+ crypto-common@0.1.7
+ ctrlc@3.5.2
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.5.0
+ dirs@6.0.0
+ dispatch2@0.3.1
+ dotenvy@0.15.7
+ equivalent@1.0.2
+ errno@0.3.14
+ fastrand@2.4.1
+ find-msvc-tools@0.1.9
+ fnv@1.0.7
+ foldhash@0.1.5
+ futures-core@0.3.32
+ futures-task@0.3.32
+ futures-util@0.3.32
+ generic-array@0.14.7
+ getopts@0.2.24
+ getrandom@0.2.17
+ getrandom@0.4.2
+ hashbrown@0.15.5
+ hashbrown@0.17.1
+ heck@0.5.0
+ hermit-abi@0.5.2
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.65
+ id-arena@2.3.0
+ indexmap@2.14.0
+ is_executable@1.0.5
+ is_terminal_polyfill@1.70.2
+ itoa@1.0.18
+ js-sys@0.3.98
+ leb128fmt@0.1.0
+ lexiclean@0.0.1
+ libc@0.2.186
+ libredox@0.1.16
+ linux-raw-sys@0.12.1
+ log@0.4.29
+ memchr@2.8.0
+ memmap2@0.9.10
+ nix@0.31.2
+ num-traits@0.2.19
+ num_cpus@1.17.0
+ objc2-encode@4.1.0
+ objc2@0.6.4
+ once_cell@1.21.4
+ once_cell_polyfill@1.70.2
+ option-ext@0.2.0
+ papergrid@0.14.0
+ percent-encoding@2.3.2
+ pin-project-lite@0.2.17
+ pretty_assertions@1.4.1
+ prettyplease@0.2.37
+ proc-macro-error-attr2@2.0.0
+ proc-macro-error2@2.0.1
+ proc-macro2@1.0.106
+ pulldown-cmark-to-cmark@10.0.4
+ pulldown-cmark@0.9.6
+ quote@1.0.45
+ r-efi@6.0.0
+ rand@0.10.1
+ rand_core@0.10.1
+ rayon-core@1.13.0
+ redox_users@0.5.2
+ regex-automata@0.4.14
+ regex-syntax@0.8.10
+ regex@1.12.3
+ roff@1.1.1
+ rustix@1.1.4
+ rustversion@1.0.22
+ ryu@1.0.23
+ semver@1.0.28
+ serde@1.0.228
+ serde_core@1.0.228
+ serde_derive@1.0.228
+ serde_json@1.0.149
+ serde_yaml@0.9.34+deprecated
+ sha2@0.10.9
+ shellexpand@3.1.2
+ shlex@1.3.0
+ similar@3.1.0
+ slab@0.4.12
+ snafu-derive@0.9.0
+ snafu@0.9.0
+ strsim@0.11.1
+ strum@0.28.0
+ strum_macros@0.28.0
+ syn@2.0.117
+ tabled@0.18.0
+ tabled_derive@0.10.0
+ tempfile@3.27.0
+ temptree@0.2.0
+ terminal_size@0.4.4
+ thiserror-impl@2.0.18
+ thiserror@2.0.18
+ typed-arena@2.0.2
+ typenum@1.20.0
+ unicase@2.9.0
+ unicode-ident@1.0.24
+ unicode-segmentation@1.13.2
+ unicode-width@0.2.2
+ unicode-xid@0.2.6
+ unsafe-libyaml@0.2.11
+ utf8parse@0.2.2
+ uuid@1.23.1
+ version_check@0.9.5
+ wasi@0.11.1+wasi-snapshot-preview1
+ wasip2@1.0.1+wasi-0.2.4
+ wasip3@0.4.0+wasi-0.3.0-rc-2026-01-06
+ wasm-bindgen-macro-support@0.2.121
+ wasm-bindgen-macro@0.2.121
+ wasm-bindgen-shared@0.2.121
+ wasm-bindgen@0.2.121
+ wasm-encoder@0.244.0
+ wasm-metadata@0.244.0
+ wasmparser@0.244.0
+ which@8.0.2
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.62.2
+ windows-implement@0.60.2
+ windows-interface@0.59.3
+ windows-link@0.2.1
+ windows-result@0.4.1
+ windows-strings@0.5.1
+ windows-sys@0.60.2
+ windows-sys@0.61.2
+ windows-targets@0.53.5
+ windows_aarch64_gnullvm@0.53.1
+ windows_aarch64_msvc@0.53.1
+ windows_i686_gnu@0.53.1
+ windows_i686_gnullvm@0.53.1
+ windows_i686_msvc@0.53.1
+ windows_x86_64_gnu@0.53.1
+ windows_x86_64_gnullvm@0.53.1
+ windows_x86_64_msvc@0.53.1
+ wit-bindgen-core@0.51.0
+ wit-bindgen-rust-macro@0.51.0
+ wit-bindgen-rust@0.51.0
+ wit-bindgen@0.46.0
+ wit-bindgen@0.51.0
+ wit-component@0.244.0
+ wit-parser@0.244.0
+ yansi@1.0.1
+ zmij@1.0.21
+ ${PN}@${PV}
+"
+
+inherit cargo shell-completion toolchain-funcs
+
+DESCRIPTION="Just a command runner (with syntax inspired by 'make')"
+HOMEPAGE="
+ https://just.systems/
+ https://crates.io/crates/just
+ https://github.com/casey/just
+"
+SRC_URI="${CARGO_CRATE_URIS}"
+
+LICENSE="CC0-1.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD-2 CC0-1.0 MIT MPL-2.0 Unicode-3.0 ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+src_test() {
+ default
+}
+
+src_prepare() {
+ default
+ tc-export CC
+}
+
+src_install() {
+ local DOCS=( README.md )
+
+ cargo_src_install
+
+ mkdir man || die
+ $(cargo_target_dir)/just --man > man/just.1 || die
+
+ doman man/*
+
+ einstalldocs
+
+ # bash-completion
+ $(cargo_target_dir)/just --completions bash > completions/just.bash || die
+ newbashcomp "completions/${PN}.bash" "${PN}"
+
+ # zsh-completion
+ $(cargo_target_dir)/just --completions zsh > completions/just.zsh || die
+ newzshcomp "completions/${PN}.zsh" "_${PN}"
+
+ # fish-completion
+ $(cargo_target_dir)/just --completions fish > completions/just.fish || die
+ dofishcomp "completions/${PN}.fish"
+}
diff --git a/dev-build/just/metadata.xml b/dev-build/just/metadata.xml
new file mode 100644
index 000000000000..cdc3d7209ef1
--- /dev/null
+++ b/dev-build/just/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>joe@wt.gd</email>
+ <name>Joe Kappus</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <changelog>https://github.com/casey/just/raw/master/CHANGELOG.md</changelog>
+ <bugs-to>https://github.com/casey/just/issues</bugs-to>
+ <remote-id type="github">casey/just</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/kas/Manifest b/dev-build/kas/Manifest
new file mode 100644
index 000000000000..c6b2ffb3327a
--- /dev/null
+++ b/dev-build/kas/Manifest
@@ -0,0 +1,2 @@
+DIST kas-5.1.gh.tar.gz 141260 BLAKE2B 1168202fa2ff6d6b72fcde049add8030d963f9b4d25ea882f1d0fea62f6a7624a2de449d13f8925ddaa82b743ec9fac68cc8bc1f73b84feead6c83740940d9bf SHA512 a399f248eb9a1d39a95c525ae43f642db1096a57b2caf94397af80e99cbb218a905186661b850d72b1f3997b7b10782a53980cac793f7859ee95d633f355e583
+DIST kas-5.2.gh.tar.gz 143789 BLAKE2B dce3c92db2e7afcc1d05751e16859724e77eb262d4d21227be160eec7c7d6fb331bb734f5d112eb6b4b4bba05e8266a8b51c1059350cb20a0e81889ef54d9fda SHA512 c9f38f66f68d1b59e5f8bc629cd7808f2e0ca13173e21d0521eb382666c7f12cfd14dba072c5316aae997318044061606c4a0258fe32c6c824a488337e014b3d
diff --git a/dev-build/kas/kas-5.1.ebuild b/dev-build/kas/kas-5.1.ebuild
new file mode 100644
index 000000000000..7efa1e3be4a3
--- /dev/null
+++ b/dev-build/kas/kas-5.1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Setup tool for bitbake based projects"
+HOMEPAGE="
+ https://github.com/siemens/kas
+ https://kas.readthedocs.io/en/latest/
+ https://pypi.org/project/kas/
+"
+# pypi does not package tests
+SRC_URI="
+ https://github.com/siemens/kas/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64"
+
+RDEPEND="
+ >=dev-python/pyyaml-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/kconfiglib-14.1.0[${PYTHON_USEDEP}]
+ >=dev-python/gitpython-3.1.0[${PYTHON_USEDEP}]
+ dev-libs/newt[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/python-gnupg[${PYTHON_USEDEP}]
+ dev-vcs/git
+ dev-vcs/mercurial
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ "tests/test_build.py::test_provenance"
+ "tests/test_commands.py::test_for_all_repos"
+ "tests/test_commands.py::test_checkout_with_ci_rewrite"
+ "tests/test_commands.py::test_checkout_create_refs[noenv]"
+ "tests/test_commands.py::test_checkout_shallow[noenv]"
+ "tests/test_commands.py::test_checkout[noenv]"
+ "tests/test_commands.py::test_repo_includes[noenv]"
+ "tests/test_commands.py::test_repo_includes"
+ "tests/test_commands.py::test_shallow_updates[noenv]"
+ "tests/test_refspec.py::test_refspec_switch[noenv]"
+ "tests/test_refspec.py::test_refspec_absolute[noenv]"
+ "tests/test_refspec.py::test_tag_commit_do_not_match[noenv] "
+ "tests/test_refspec.py::test_unsafe_tag_warning[noenv]"
+ "tests/test_refspec.py::test_tag_branch_same_name[noenv]"
+ "tests/test_refspec.py::test_refspec_warning[noenv]"
+ "tests/test_refspec.py::test_branch_and_tag[noenv]"
+ "tests/test_refspec.py::test_commit_expand[noenv]"
+ "tests/test_refspec.py::test_tag_commit_do_not_match[noenv]"
+ "tests/test_signature_verify.py::test_signed_gpg_invalid[noenv]"
+ "tests/test_signature_verify.py::test_signed_gpg_remove_key[noenv]"
+ "tests/test_signature_verify.py::test_signed_gpg_local_key"
+ "tests/test_commands.py::test_dump[noenv]"
+ "tests/test_commands.py::test_diff"
+ "tests/test_commands.py::test_lockfile"
+ "tests/test_environment_variables.py::test_env_section_export_bb_extra_white"
+ "tests/test_environment_variables.py::test_env_section_export_bb_env_passthrough_additions"
+ "tests/test_environment_variables.py::test_ssh_agent_setup"
+)
+
+EPYTEST_IGNORE=(
+ "tests/test_layers.py"
+ "tests/test_menu.py"
+ "tests/test_patch.py"
+)
+
+pkg_postinst() {
+ optfeature_header "Install optional tools to clone repositories:"
+ optfeature "git repository support" dev-vcs/git
+ optfeature "mercurial repository support" dev-vcs/mercurial
+}
diff --git a/dev-build/kas/kas-5.2.ebuild b/dev-build/kas/kas-5.2.ebuild
new file mode 100644
index 000000000000..6f9701cb6df8
--- /dev/null
+++ b/dev-build/kas/kas-5.2.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Setup tool for bitbake based projects"
+HOMEPAGE="
+ https://github.com/siemens/kas
+ https://kas.readthedocs.io/en/latest/
+ https://pypi.org/project/kas/
+"
+# pypi does not package tests
+SRC_URI="
+ https://github.com/siemens/kas/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/pyyaml-3.0.0[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-2.5.0[${PYTHON_USEDEP}]
+ >=dev-python/kconfiglib-14.1.0[${PYTHON_USEDEP}]
+ >=dev-python/gitpython-3.1.0[${PYTHON_USEDEP}]
+ dev-libs/newt[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ dev-python/python-gnupg[${PYTHON_USEDEP}]
+ dev-vcs/git
+ dev-vcs/mercurial
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_DESELECT=(
+ "tests/test_build.py::test_provenance"
+ "tests/test_commands.py::test_for_all_repos"
+ "tests/test_commands.py::test_checkout_with_ci_rewrite"
+ "tests/test_commands.py::test_checkout_create_refs[noenv]"
+ "tests/test_commands.py::test_checkout_shallow[noenv]"
+ "tests/test_commands.py::test_checkout[noenv]"
+ "tests/test_commands.py::test_invalid_checkout[noenv-test-invalid-tag.yml-RepoRefError]"
+ "tests/test_commands.py::test_repo_includes[noenv]"
+ "tests/test_commands.py::test_repo_includes"
+ "tests/test_commands.py::test_shallow_updates[noenv]"
+ "tests/test_refspec.py::test_refspec_switch[noenv]"
+ "tests/test_refspec.py::test_refspec_absolute[noenv]"
+ "tests/test_refspec.py::test_tag_commit_do_not_match[noenv] "
+ "tests/test_refspec.py::test_unsafe_tag_warning[noenv]"
+ "tests/test_refspec.py::test_tag_branch_same_name[noenv]"
+ "tests/test_refspec.py::test_refspec_warning[noenv]"
+ "tests/test_refspec.py::test_branch_and_tag[noenv]"
+ "tests/test_refspec.py::test_commit_expand[noenv]"
+ "tests/test_refspec.py::test_tag_commit_do_not_match[noenv]"
+ "tests/test_signature_verify.py::test_signed_gpg_invalid[noenv]"
+ "tests/test_signature_verify.py::test_signed_gpg_remove_key[noenv]"
+ "tests/test_signature_verify.py::test_signed_gpg_local_key"
+ "tests/test_commands.py::test_dump[noenv]"
+ "tests/test_commands.py::test_diff"
+ "tests/test_commands.py::test_lockfile"
+ "tests/test_environment_variables.py::test_env_section_export_bb_extra_white"
+ "tests/test_environment_variables.py::test_env_section_export_bb_env_passthrough_additions"
+ "tests/test_environment_variables.py::test_ssh_agent_setup"
+)
+
+EPYTEST_IGNORE=(
+ "tests/test_layers.py"
+ "tests/test_menu.py"
+ "tests/test_patch.py"
+)
+
+pkg_postinst() {
+ optfeature_header "Install optional tools to clone repositories:"
+ optfeature "git repository support" dev-vcs/git
+ optfeature "mercurial repository support" dev-vcs/mercurial
+}
diff --git a/dev-build/kas/metadata.xml b/dev-build/kas/metadata.xml
new file mode 100644
index 000000000000..569cfff38a08
--- /dev/null
+++ b/dev-build/kas/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mh@emlix.com</email>
+ <name>Martin Homuth</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>stkw0@disroot.org</email>
+ <name>David Roman</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/siemens/kas/issues</bugs-to>
+ <changelog>https://github.com/siemens/kas/blob/master/CHANGELOG.md</changelog>
+ <remote-id type="github">siemens/kas</remote-id>
+ <remote-id type="pypi">kas</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/kbuild/Manifest b/dev-build/kbuild/Manifest
new file mode 100644
index 000000000000..7c37bd96480f
--- /dev/null
+++ b/dev-build/kbuild/Manifest
@@ -0,0 +1,2 @@
+DIST kbuild-0.1.9998.3660-r1-fix-clang-16.patch.bz2 11810 BLAKE2B a9f8c084a8b1b7fd76531ad882d5f29ca6bb8e287634e5eef194670dd7716781dc87a105f7765336cae6864864fe08ad9a71a4c608444d0662ebab808e383a10 SHA512 b76ed04f438058618e39748e8243cea98097bc478fe64d3faa4f3ffda8efe30d2bb75f9e9fb1ae0b1b5dac5428a07927095db37af77225dd8448b96866804e57
+DIST kbuild-0.1.9998.3660-src.tar.xz 5281800 BLAKE2B 6c8ca902efddbbdce4588a046edc243ad76bd56cc319c94b4ffb7c25dad7c3ad9e5f816c960c6d80a13374995469d6f1d4c91a20860321a2d12b2456c21ba26f SHA512 d993de9a481a30aef7f4db2bbd6c19ffbeba6e5e505ae2ea63e7479007198d3eb89308860b90a5df8728997fb239ff5e553e6050c136468522c780a2a1e593e2
diff --git a/dev-build/kbuild/files/kbuild-0.1.5-gentoo-docdir.patch b/dev-build/kbuild/files/kbuild-0.1.5-gentoo-docdir.patch
new file mode 100644
index 000000000000..b074a984af4c
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.5-gentoo-docdir.patch
@@ -0,0 +1,11 @@
+--- a/Config.kmk
++++ b/Config.kmk
+@@ -147,7 +147,7 @@
+ MY_INST_DATA := $(MY_INST_ROOT)share/kBuild/
+ endif
+ ifndef MY_INST_DOC
+- MY_INST_DOC := $(MY_INST_ROOT)share/doc/kBuild-$(KBUILD_VERSION)/
++ MY_INST_DOC := $(MY_INST_ROOT)share/doc/$(PF)/
+ endif
+ if !defined(MY_INST_BIN_MODE) && defined(MY_INST_MODE)
+ MY_INST_BIN_MODE := $(MY_INST_MODE),a+x
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998.3407-unknown_configure_opt.patch b/dev-build/kbuild/files/kbuild-0.1.9998.3407-unknown_configure_opt.patch
new file mode 100644
index 000000000000..2714716b7806
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998.3407-unknown_configure_opt.patch
@@ -0,0 +1,20 @@
+--- kbuild-0.1.9998.3407/bootstrap.gmk
++++ kbuild-0.1.9998.3407/bootstrap.gmk
+@@ -151,7 +151,7 @@
+ $(OUTDIR)/kmk/ts-configured: \
+ $(OUTDIR)/kmk/ts-autoreconf \
+ $(OUTDIR)/kmk/fts.h
+- cd $(OUTDIR)/kmk && $(SRCDIR)/src/kmk/configure --disable-load --without-guile
++ cd $(OUTDIR)/kmk && $(SRCDIR)/src/kmk/configure --disable-load
+ echo done > $@
+
+ ifeq ($(KBUILD_HOST),solaris)
+@@ -182,7 +182,7 @@
+ echo done > $@
+
+ $(OUTDIR)/sed/ts-configured: $(OUTDIR)/sed/ts-autoreconf
+- cd $(OUTDIR)/sed && $(SRCDIR)/src/sed/configure --without-libintl --disable-nls
++ cd $(OUTDIR)/sed && $(SRCDIR)/src/sed/configure --disable-nls
+ echo done > $@
+
+ $(OUTDIR)/sed/config.h: $(OUTDIR)/sed/ts-configured
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch b/dev-build/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch
new file mode 100644
index 000000000000..7d7f1f7232eb
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998.3499-fix-CC.patch
@@ -0,0 +1,23 @@
+A few files are compiled with gcc regardless of setting CC
+
+This file seems to do some guesswork, override it with CC if set
+
+Bug: https://bugs.gentoo.org/734302
+
+--- a/kBuild/tools/GCC3.kmk
++++ b/kBuild/tools/GCC3.kmk
+@@ -84,6 +84,14 @@
+ TOOL_GCC3_CXX += -fmessage-length=0
+ endif
+
++ifneq ($(CC),)
++ TOOL_GCC3_CC = $(CC)
++ TOOL_GCC3_LD = $(CC)
++endif
++ifneq ($(AR),)
++ TOOL_GCC3_AR = $(AR)
++endif
++
+ # General Properties used by kBuild
+ TOOL_GCC3_COBJSUFF ?= .o
+ TOOL_GCC3_CFLAGS ?=
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-bison.patch b/dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-bison.patch
new file mode 100644
index 000000000000..822194b1c98b
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-bison.patch
@@ -0,0 +1,15 @@
+--- a/src/kash/Makefile.kmk 2022-11-12 16:42:14.195927909 +0200
++++ b/src/kash/Makefile.kmk 2022-11-12 17:09:46.212159615 +0200
+@@ -210,8 +210,11 @@
+ kash_USES = lex yacc
+ kash_LEXTOOL = FLEX
+ kash_LEXFLAGS = -8
+-#kash_YACCTOOL = BISON
++ifneq (,$(shell bison -V))
++kash_YACCTOOL = BISON
++else
+ kash_YACCTOOL = YACC
++endif
+ kash_YACCFLAGS = -ld
+ kash_SOURCES += \
+ arith.y \
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-lto.patch b/dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-lto.patch
new file mode 100644
index 000000000000..94eb14ee6cb6
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998.3572-fix-lto.patch
@@ -0,0 +1,11 @@
+--- a/src/kmk/remake.c
++++ b/src/kmk/remake.c
+@@ -417,7 +417,7 @@
+ if (!keep_going_flag && file->parent == 0)
+ {
+ const char *msg_joke = 0;
+- extern struct dep *goals;
++ extern struct goaldep *goals;
+
+ /* classics */
+ if (!strcmp (file->name, "fire")
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998.3660-gcc-15.patch b/dev-build/kbuild/files/kbuild-0.1.9998.3660-gcc-15.patch
new file mode 100644
index 000000000000..0ab71235a982
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998.3660-gcc-15.patch
@@ -0,0 +1,19 @@
+diff --git a/src/kmk/glob/fnmatch.c b/src/kmk/glob/fnmatch.c
+index b346e10..008a4a7 100644
+--- a/src/kmk/glob/fnmatch.c
++++ b/src/kmk/glob/fnmatch.c
+@@ -120,14 +120,6 @@ USA. */
+ /* Avoid depending on library functions or files
+ whose names are inconsistent. */
+
+-# if !defined _LIBC && !defined getenv && !defined _MSC_VER
+-extern char *getenv ();
+-# endif
+-
+-# ifndef errno
+-extern int errno;
+-# endif
+-
+ /* This function doesn't exist on most systems. */
+
+ # if !defined HAVE___STRCHRNUL && !defined _LIBC
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998.3660-int-conversion.patch b/dev-build/kbuild/files/kbuild-0.1.9998.3660-int-conversion.patch
new file mode 100644
index 000000000000..9e472abbfdd6
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998.3660-int-conversion.patch
@@ -0,0 +1,17 @@
+Fix int to pointer conversion for clang
+
+Note - this parameter was not actually used inside eval_buffer because of a define.
+
+Bug: https://bugs.gentoo.org/875449
+
+--- a/src/kmk/loadapi.c
++++ b/src/kmk/loadapi.c
+@@ -20,6 +20,8 @@
+ #include "variable.h"
+ #include "dep.h"
+
++#include <string.h>
++
+ /* Allocate a buffer in our context, so we can free it. */
+ char *
+ gmk_alloc (unsigned int len)
diff --git a/dev-build/kbuild/files/kbuild-0.1.9998_pre20110817-kash-link-pthread.patch b/dev-build/kbuild/files/kbuild-0.1.9998_pre20110817-kash-link-pthread.patch
new file mode 100644
index 000000000000..d2b20176ca82
--- /dev/null
+++ b/dev-build/kbuild/files/kbuild-0.1.9998_pre20110817-kash-link-pthread.patch
@@ -0,0 +1,10 @@
+--- kBuild-0.1.9998-pre20110817/src/kash/Makefile.kmk
++++ kBuild-0.1.9998-pre20110817/src/kash/Makefile.kmk
+@@ -59,6 +59,7 @@
+ if "$(USER)" == "bird" && "$(KBUILD_TARGET)" != "win"
+ kash_CFLAGS += -std=gnu99
+ endif
++kash_LIBS += pthread
+ kash_CFLAGS.win.amd64 = -GS-
+ kash_SOURCES = \
+ main.c \
diff --git a/dev-build/kbuild/kbuild-0.1.9998.3660-r1.ebuild b/dev-build/kbuild/kbuild-0.1.9998.3660-r1.ebuild
new file mode 100644
index 000000000000..35893b4ddb74
--- /dev/null
+++ b/dev-build/kbuild/kbuild-0.1.9998.3660-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="A makefile framework for writing simple makefiles for complex tasks"
+HOMEPAGE="https://trac.netlabs.org/kbuild/wiki"
+SRC_URI="
+ https://distfiles.gentoo.org/pub/dev/ceamac@gentoo.org/${CATEGORY}/${PN}/${P}-src.tar.xz
+ https://distfiles.gentoo.org/pub/dev/ceamac@gentoo.org/${CATEGORY}/${PN}/${PN}-0.1.9998.3660-r1-fix-clang-16.patch.bz2
+"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 x86"
+
+BDEPEND="
+ sys-apps/texinfo
+ app-alternatives/lex
+ sys-devel/gettext
+ virtual/pkgconfig
+ app-alternatives/yacc
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.1.9998.3407-unknown_configure_opt.patch"
+ "${FILESDIR}/${PN}-0.1.5-gentoo-docdir.patch"
+ "${FILESDIR}/${PN}-0.1.9998_pre20110817-kash-link-pthread.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3572-fix-bison.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3572-fix-lto.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3660-int-conversion.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3499-fix-CC.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3660-gcc-15.patch"
+
+ "${WORKDIR}/${PN}-0.1.9998.3660-r1-fix-clang-16.patch"
+)
+
+pkg_setup() {
+ # Package fails with distcc (bug #255371)
+ export DISTCC_DISABLE=1
+}
+
+src_prepare() {
+ default
+
+ # 905419 - build fails if /bin/sh is something other than bash
+ sed 's:ln -s /bin/sh:ln -s /bin/bash:' -i bootstrap.gmk || die
+
+ # Add a file with the svn revision this package was pulled from
+ printf '%s\n' "KBUILD_SVN_REV := $(ver_cut 4)" \
+ > SvnInfo.kmk || die
+
+ cd "${S}/src/kmk" || die
+ eautoreconf
+ cd "${S}/src/sed" || die
+ eautoreconf
+
+ sed -e "s@_LDFLAGS\.$(tc-arch)*.*=@& ${LDFLAGS}@g" \
+ -e "s@_CFLAGS\.$(tc-arch)*.*=@& ${CFLAGS}@g" \
+ -e "s@_CXXFLAGS\.$(tc-arch)*.*=@& ${CXXFLAGS}@g" \
+ -i "${S}"/Config.kmk || die #332225
+ tc-export CC PKG_CONFIG RANLIB AR # bug #923130: AR must be both here and below
+}
+
+src_compile() {
+ kBuild/env.sh --full emake -f bootstrap.gmk AUTORECONF=true AR="$(tc-getAR)" \
+ || die "bootstrap failed"
+}
+
+src_install() {
+ kBuild/env.sh kmk NIX_INSTALL_DIR=/usr PATH_INS="${D}" install \
+ || die "install failed"
+}
diff --git a/dev-build/kbuild/kbuild-9999.ebuild b/dev-build/kbuild/kbuild-9999.ebuild
new file mode 100644
index 000000000000..308b44b81180
--- /dev/null
+++ b/dev-build/kbuild/kbuild-9999.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools subversion toolchain-funcs
+
+DESCRIPTION="A makefile framework for writing simple makefiles for complex tasks"
+HOMEPAGE="https://trac.netlabs.org/kbuild/wiki"
+ESVN_REPO_URI="http://svn.netlabs.org/repos/kbuild/trunk"
+
+LICENSE="GPL-3+"
+SLOT="0"
+
+BDEPEND="
+ sys-apps/texinfo
+ app-alternatives/lex
+ sys-devel/gettext
+ virtual/pkgconfig
+ app-alternatives/yacc
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.1.9998.3407-unknown_configure_opt.patch"
+ "${FILESDIR}/${PN}-0.1.5-gentoo-docdir.patch"
+ "${FILESDIR}/${PN}-0.1.9998_pre20110817-kash-link-pthread.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3572-fix-bison.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3572-fix-lto.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3660-int-conversion.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3499-fix-CC.patch"
+ "${FILESDIR}/${PN}-0.1.9998.3660-gcc-15.patch"
+)
+
+pkg_setup() {
+ # Package fails with distcc (bug #255371)
+ export DISTCC_DISABLE=1
+}
+
+src_prepare() {
+ default
+
+ if [[ "${PV}" != *9999 ]] ; then
+ # Add a file with the svn revision this package was pulled from
+ printf '%s\n' "KBUILD_SVN_REV := $(ver_cut 4)" \
+ > SvnInfo.kmk || die
+ fi
+
+ cd "${S}/src/kmk" || die
+ eautoreconf
+ cd "${S}/src/sed" || die
+ eautoreconf
+
+ sed -e "s@_LDFLAGS\.$(tc-arch)*.*=@& ${LDFLAGS}@g" \
+ -e "s@_CFLAGS\.$(tc-arch)*.*=@& ${CFLAGS}@g" \
+ -e "s@_CXXFLAGS\.$(tc-arch)*.*=@& ${CXXFLAGS}@g" \
+ -i "${S}"/Config.kmk || die #332225
+ tc-export CC PKG_CONFIG RANLIB AR # bug #923130: AR must be both here and below
+}
+
+src_compile() {
+ kBuild/env.sh --full emake -f bootstrap.gmk AUTORECONF=true AR="$(tc-getAR)" \
+ || die "bootstrap failed"
+}
+
+src_install() {
+ kBuild/env.sh kmk NIX_INSTALL_DIR=/usr PATH_INS="${D}" install \
+ || die "install failed"
+}
diff --git a/dev-build/kbuild/metadata.xml b/dev-build/kbuild/metadata.xml
new file mode 100644
index 000000000000..b22a815172dd
--- /dev/null
+++ b/dev-build/kbuild/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/libtool/Manifest b/dev-build/libtool/Manifest
new file mode 100644
index 000000000000..d1c7c08acf4a
--- /dev/null
+++ b/dev-build/libtool/Manifest
@@ -0,0 +1,2 @@
+DIST libtool-2.5.4.tar.xz 1056924 BLAKE2B 47de3c49a690d44d7ddd5e3b5e4090c91dc5fbb9c40fc4a3963e150fb7329326ee3e21b8c149974726171c4b0380028e0efc7a369c4f04357eea46f69852e1cc SHA512 eed207094bcc444f4bfbb13710e395e062e3f1d312ca8b186ab0cbd22dc92ddef176a0b3ecd43e02676e37bd9e328791c59a38ef15846d4eae15da4f20315724
+DIST libtool-2.6.0.tar.xz 1086020 BLAKE2B 33346f21fc5ad0e2925b2b12e3aa4715546683181c0323912f31ce9e3e7ac9ee103e2bd608d3d8b45fd82c59c6f2e082ac7baf3946d12169f05c760920ad1117 SHA512 79af0baf14d598b3091fc770b004a80ffb7ecf0cc8440b5947a41d3c8e603566783008deb3248235d87088810b69824003defed3e66dccb6c03c635095c9fb41
diff --git a/dev-build/libtool/files/libtool-2.2.10-eprefix.patch b/dev-build/libtool/files/libtool-2.2.10-eprefix.patch
new file mode 100644
index 000000000000..c4693ee7feeb
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.2.10-eprefix.patch
@@ -0,0 +1,11 @@
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -2087,7 +2087,7 @@
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+ esac
+- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
++ sys_lib_search_path_spec=`$ECHO "@GENTOO_PORTAGE_EPREFIX@/lib @GENTOO_PORTAGE_EPREFIX@/usr/lib $lt_search_path_spec" | $lt_NL2SP`
+ else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ fi])
diff --git a/dev-build/libtool/files/libtool-2.2.6a-darwin-module-bundle.patch b/dev-build/libtool/files/libtool-2.2.6a-darwin-module-bundle.patch
new file mode 100644
index 000000000000..81364d4d02af
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.2.6a-darwin-module-bundle.patch
@@ -0,0 +1,24 @@
+In Gentoo Prefix we go by Apple's convention to give modules the .bundle
+extension.
+http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/500-Linking/bs_linking.html
+(Above link was removed by Apple, the link below contains a copy:
+http://disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/XcodeBuildSystem/500-Linking/bs_linking.html,
+in case it disappears also, the relevant quote:
+
+Bundle. Bundles are executable files that can be loaded at runtime by
+other products. Plug-ins are implemented using bundles. The term bundle
+in this context refers to the binary itself, not to a structured
+hierarchy. Bundles have the .bundle extension; for example,
+MyBundle.bundle.)
+
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -2645,7 +2645,7 @@
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
++ shrext_cmds='`test .$module = .yes && echo .bundle || echo .dylib`'
+ m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
diff --git a/dev-build/libtool/files/libtool-2.4.3-use-linux-version-in-fbsd.patch b/dev-build/libtool/files/libtool-2.4.3-use-linux-version-in-fbsd.patch
new file mode 100644
index 000000000000..aa1e870649b6
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.4.3-use-linux-version-in-fbsd.patch
@@ -0,0 +1,38 @@
+Force linux-style versioning when generating shared libraries on
+Gentoo/FreeBSD hosts only.
+
+Patch by Diego Elio Pettenò
+
+http://bugs.gentoo.org/109105
+
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -2666,7 +2666,14 @@
+ *) objformat=elf ;;
+ esac
+ fi
+- version_type=freebsd-$objformat
++ # Handle Gentoo/FreeBSD as it was Linux
++ case $host_vendor in
++ gentoo)
++ version_type=linux ;;
++ *)
++ version_type=freebsd-$objformat ;;
++ esac
++
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+@@ -2678,6 +2685,12 @@
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
++ linux)
++ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
++ soname_spec='${libname}${release}${shared_ext}$major'
++ need_lib_prefix=no
++ need_version=no
++ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
diff --git a/dev-build/libtool/files/libtool-2.4.6-darwin-use-linux-version.patch b/dev-build/libtool/files/libtool-2.4.6-darwin-use-linux-version.patch
new file mode 100644
index 000000000000..aded304989d2
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.4.6-darwin-use-linux-version.patch
@@ -0,0 +1,13 @@
+* revert old 1.5 behaviour
+
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -2641,7 +2641,7 @@
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
++ library_names_spec='$libname$release$versuffix$shared_ext $libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
diff --git a/dev-build/libtool/files/libtool-2.4.6-ppc64le.patch b/dev-build/libtool/files/libtool-2.4.6-ppc64le.patch
new file mode 100644
index 000000000000..78d86c72956b
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.4.6-ppc64le.patch
@@ -0,0 +1,111 @@
+From 020afd7d6410f73bc205206abe1b88b4890b83b1 Mon Sep 17 00:00:00 2001
+From: Leno Hou <lenohou@gmail.com>
+Date: Sun, 24 Apr 2016 00:46:53 +0800
+Subject: [PATCH] [m4/libtool.m4] linker error for powerpc64le-unknown-linux-gnu
+
+Hi all,
+
+ 1) As we might know, Gentoo has powerpc64le-unknown-linux-gnu compiler
+
+leno@localhost ~ $ powerpc64le-unknown-linux-gnu-gcc -v
+
+Using built-in specs.
+
+COLLECT_GCC=/usr/powerpc64le-unknown-linux-gnu/gcc-bin/5.3.0/powerpc64le-unknown-linux-gnu-gcc
+
+COLLECT_LTO_WRAPPER=/usr/libexec/gcc/powerpc64le-unknown-linux-gnu/5.3.0/lto-wrapper
+
+Target: powerpc64le-unknown-linux-gnu
+
+Configured with:
+/var/tmp/portage/sys-devel/gcc-5.3.0/work/gcc-5.3.0/configure
+--host=powerpc64le-unknown-linux-gnu --build=powerpc64le-unknown-linux-gnu
+--prefix=/usr --bindir=/usr/powerpc64le-unknown-linux-gnu/gcc-bin/5.3.0
+--includedir=/usr/lib/gcc/powerpc64le-unknown-linux-gnu/5.3.0/include
+--datadir=/usr/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0
+--mandir=/usr/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0/man
+--infodir=/usr/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0/info
+--with-gxx-include-dir=/usr/lib/gcc/powerpc64le-unknown-linux-gnu/5.3.0/include/g++-v5
+--with-python-dir=/share/gcc-data/powerpc64le-unknown-linux-gnu/5.3.0/python
+--enable-languages=c,c++,fortran --enable-obsolete --enable-secureplt
+--disable-werror --with-system-zlib --enable-nls --without-included-gettext
+--enable-checking=release --with-bugurl=https://bugs.gentoo.org/
+--with-pkgversion='Gentoo 5.3.0 p1.0, pie-0.6.5' --enable-libstdcxx-time
+--enable-shared --enable-threads=posix --enable-__cxa_atexit
+--enable-clocale=gnu --disable-multilib --enable-altivec
+--disable-fixed-point --enable-targets=all --disable-libgcj
+--enable-libgomp --disable-libmudflap --disable-libssp --disable-libcilkrts
+--enable-lto --without-isl --enable-libsanitizer
+
+Thread model: posix
+
+gcc version 5.3.0 (Gentoo 5.3.0 p1.0, pie-0.6.5)
+
+ 2) And the supported emulations
+
+leno@localhost ~ $ powerpc64le-unknown-linux-gnu-ld -V
+GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
+ Supported emulations:
+ elf64lppc
+ elf32lppc
+ elf32lppclinux
+ elf32lppcsim
+
+ 3) But when I set CHOST="powerpc64le-unkown-linux-gnu" in Gentoo and
+execute aclocal, automake, libtoolize --copy --force, autoconf. When I
+glance in the latest m4/libtool.m4 :
+
+if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+...
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+...
+ *64-bit*)
+ case $host in
+...
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+...
+
+seems linked to $LD='$LD-ld -m elf64ppc' and failed to compile packages.
+
+ 4) Below is my workaround patch and works fine for this case. If this is
+OK for you, Could this to be merged in upstream? Thanks
+
+URL: https://debbugs.gnu.org/23348
+URL: https://bugs.gentoo.org/581314
+---
+ m4/libtool.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/m4/libtool.m4 b/m4/libtool.m4
+index ee292aff5bca..758b6951ae07 100644
+--- a/m4/libtool.m4
++++ b/m4/libtool.m4
+@@ -1417,10 +1417,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+- powerpcle-*linux*)
++ powerpcle-*linux*|powerpc64le-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+- powerpc-*linux*)
++ powerpc-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+--
+2.11.1
+
diff --git a/dev-build/libtool/files/libtool-2.4.6-pthread.patch b/dev-build/libtool/files/libtool-2.4.6-pthread.patch
new file mode 100644
index 000000000000..49b81c1dcda6
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.4.6-pthread.patch
@@ -0,0 +1,43 @@
+http://permalink.gmane.org/gmane.comp.gnu.libtool.patches/11704
+https://bugs.gentoo.org/650876
+
+From: Pavel Raiskup <praiskup <at> redhat.com>
+Subject: [PATCH] libtool: handle the -pthread{,s} options for g++
+Newsgroups: gmane.comp.gnu.libtool.patches
+Date: Thursday 28th November 2013 14:18:05 UTC (over 4 years ago)
+
+As we are forced to pass -nostdlib to g++ for linking, this option
+expectedly disables the effectiveness of passed -pthread flag - so
+add the -lpthread explicitly to $deplibs to link correctly.
+
+References:
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460
+https://bugzilla.redhat.com/show_bug.cgi?id=661333
+http://lists.gnu.org/archive/html/bug-libtool/2013-01/msg00018.htm
+
+* build-aux/ltmain.in (func_mode_link): Explicitly add -lpthread
+flag into $deplibs when -pthread is passed (for g++ only).
+---
+ build-aux/ltmain.in | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in
+index fba05c1..f202b80 100644
+--- a/build-aux/ltmain.in
++++ b/build-aux/ltmain.in
+@@ -5113,6 +5113,16 @@ func_mode_link ()
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
++
++ # As we are forced to pass -nostdlib to g++ during linking, the option
++ # -pthread{,s} is not in effect; add the -lpthread to $deplist
++ # explicitly to link correctly.
++ if test "$tagname" = CXX -a x"$with_gcc" = xyes; then
++ case "$arg" in
++ -pthread*) func_append deplibs " -lpthread" ;;
++ esac
++ fi
++
+ continue
+ ;;
diff --git a/dev-build/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch b/dev-build/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch
new file mode 100644
index 000000000000..b093d74266f2
--- /dev/null
+++ b/dev-build/libtool/files/libtool-2.4.6-pthread_bootstrapped.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/650876
+
+--- a/build-aux/ltmain.sh
++++ b/build-aux/ltmain.sh
+@@ -7127,6 +7127,16 @@
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
++
++ # As we are forced to pass -nostdlib to g++ during linking, the option
++ # -pthread{,s} is not in effect; add the -lpthread to $deplist
++ # explicitly to link correctly.
++ if test "$tagname" = CXX -a x"$with_gcc" = xyes; then
++ case "$arg" in
++ -pthread*) func_append deplibs " -lpthread" ;;
++ esac
++ fi
++
+ continue
+ ;;
+
diff --git a/dev-build/libtool/libtool-2.5.4.ebuild b/dev-build/libtool/libtool-2.5.4.ebuild
new file mode 100644
index 000000000000..d7896fb21db2
--- /dev/null
+++ b/dev-build/libtool/libtool-2.5.4.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with dev-libs/libltdl.
+
+# bug #225559
+LIBTOOLIZE="true"
+WANT_LIBTOOL="none"
+inherit autotools flag-o-matic prefix multiprocessing
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
+ inherit git-r3
+elif false && ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
+ SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
+else
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="A shared library tool for developers"
+HOMEPAGE="https://www.gnu.org/software/libtool/"
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="vanilla"
+
+RDEPEND="
+ sys-devel/gnuconfig
+ >=dev-build/autoconf-2.69:*
+ >=dev-build/automake-1.13:*
+"
+DEPEND="${RDEPEND}"
+[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man"
+
+# Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/
+# for package builds. The patches here are just those which are definitely fine
+# for the system-wide libtool installation as well.
+PATCHES=(
+ # bug #109105
+ "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch
+ # bug #581314
+ "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch
+
+ "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
+ "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
+)
+
+# In 2.5.3/2.5.4, the only difference is something harmless in Makefile.in (bug #940302)
+QA_AM_MAINTAINER_MODE=".*libltdl.*autoconf"
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876
+ ./bootstrap || die
+ else
+ PATCHES+=(
+ "${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876
+ )
+ fi
+
+ # WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway
+ chmod +w build-aux/ltmain.sh || die
+
+ if use vanilla ; then
+ eapply_user
+ return 0
+ else
+ default
+ fi
+
+ if use prefix ; then
+ # seems that libtool has to know about EPREFIX a little bit
+ # better, since it fails to find prefix paths to search libs
+ # from, resulting in some packages building static only, since
+ # libtool is fooled into thinking that libraries are unavailable
+ # (argh...). This could also be fixed by making the gcc wrapper
+ # return the correct result for -print-search-dirs (doesn't
+ # include prefix dirs ...).
+ eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch
+ eprefixify m4/libtool.m4
+ fi
+
+ pushd libltdl >/dev/null || die
+ AT_NOELIBTOOLIZE=yes eautoreconf
+ popd >/dev/null || die
+ AT_NOELIBTOOLIZE=yes eautoreconf
+
+ # Make sure timestamps don't trigger a rebuild of man pages. #556512
+ if [[ ${PV} != *9999 ]] ; then
+ touch doc/*.1 || die
+ export HELP2MAN=true
+ fi
+}
+
+src_configure() {
+ # the libtool script uses bash code in it and at configure time, tries
+ # to find a bash shell. if /bin/sh is bash, it uses that. this can
+ # cause problems for people who switch /bin/sh on the fly to other
+ # shells, so just force libtool to use /bin/bash all the time.
+ # Do not bother hardcoding the full path to sed.
+ # Just rely on $PATH. bug #574550
+ export CONFIG_SHELL="${EPREFIX}"/bin/bash
+ export ac_cv_path_SED="sed"
+ export ac_cv_path_EGREP="grep -E"
+ export ac_cv_path_EGREP_TRADITIONAL="grep -E"
+ export ac_cv_path_FGREP="grep -F"
+ export ac_cv_path_GREP="grep"
+ export ac_cv_path_lt_DD="dd"
+
+ local myeconfargs=(
+ # Split into dev-libs/libltdl
+ --disable-ltdl-install
+
+ # Tests break otherwise (when porting to EAPI 8)
+ # https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html
+ --enable-static
+ )
+
+ [[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ (
+ # The testsuite is sensitive to warnings, expects static
+ # archives to really be archives (not compiler IR), etc.
+ strip-flags
+ filter-flags -fno-semantic-interposition
+ filter-flags '-Wstrict-aliasing=*' '-Werror=*'
+ filter-lto
+
+ emake -Onone check \
+ CFLAGS="${CFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ FFLAGS="${FFLAGS}" \
+ FCFLAGS="${FCFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+ )
+}
+
+src_install() {
+ default
+
+ local x
+ while read -d $'\0' -r x ; do
+ ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die
+ done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0)
+}
diff --git a/dev-build/libtool/libtool-2.6.0.ebuild b/dev-build/libtool/libtool-2.6.0.ebuild
new file mode 100644
index 000000000000..55d747089de7
--- /dev/null
+++ b/dev-build/libtool/libtool-2.6.0.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with dev-libs/libltdl.
+
+# bug #225559
+LIBTOOLIZE="true"
+WANT_LIBTOOL="none"
+inherit autotools flag-o-matic prefix multiprocessing
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
+ inherit git-r3
+elif true || ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
+ # 2.6.0 is an alpha release
+ SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
+else
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="A shared library tool for developers"
+HOMEPAGE="https://www.gnu.org/software/libtool/"
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="vanilla"
+
+RDEPEND="
+ sys-devel/gnuconfig
+ >=dev-build/autoconf-2.69:*
+ >=dev-build/automake-1.13:*
+"
+DEPEND="${RDEPEND}"
+[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man"
+
+# Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/
+# for package builds. The patches here are just those which are definitely fine
+# for the system-wide libtool installation as well.
+PATCHES=(
+ # bug #109105
+ "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch
+ # bug #581314
+ "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch
+
+ "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
+ "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
+)
+
+# In 2.5.3/2.5.4, the only difference is something harmless in Makefile.in (bug #940302)
+QA_AM_MAINTAINER_MODE=".*libltdl.*autoconf"
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876
+ ./bootstrap || die
+ else
+ PATCHES+=(
+ "${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876
+ )
+ fi
+
+ # WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway
+ chmod +w build-aux/ltmain.sh || die
+
+ if use vanilla ; then
+ eapply_user
+ return 0
+ else
+ default
+ fi
+
+ if use prefix ; then
+ # seems that libtool has to know about EPREFIX a little bit
+ # better, since it fails to find prefix paths to search libs
+ # from, resulting in some packages building static only, since
+ # libtool is fooled into thinking that libraries are unavailable
+ # (argh...). This could also be fixed by making the gcc wrapper
+ # return the correct result for -print-search-dirs (doesn't
+ # include prefix dirs ...).
+ eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch
+ eprefixify m4/libtool.m4
+ fi
+
+ pushd libltdl >/dev/null || die
+ AT_NOELIBTOOLIZE=yes eautoreconf
+ popd >/dev/null || die
+ AT_NOELIBTOOLIZE=yes eautoreconf
+
+ # Make sure timestamps don't trigger a rebuild of man pages. #556512
+ if [[ ${PV} != *9999 ]] ; then
+ touch doc/*.1 || die
+ export HELP2MAN=true
+ fi
+}
+
+src_configure() {
+ # the libtool script uses bash code in it and at configure time, tries
+ # to find a bash shell. if /bin/sh is bash, it uses that. this can
+ # cause problems for people who switch /bin/sh on the fly to other
+ # shells, so just force libtool to use /bin/bash all the time.
+ # Do not bother hardcoding the full path to sed.
+ # Just rely on $PATH. bug #574550
+ export CONFIG_SHELL="${EPREFIX}"/bin/bash
+ export ac_cv_path_SED="sed"
+ export ac_cv_path_EGREP="grep -E"
+ export ac_cv_path_EGREP_TRADITIONAL="grep -E"
+ export ac_cv_path_FGREP="grep -F"
+ export ac_cv_path_GREP="grep"
+ export ac_cv_path_lt_DD="dd"
+
+ local myeconfargs=(
+ # Split into dev-libs/libltdl
+ --disable-ltdl-install
+
+ # Tests break otherwise (when porting to EAPI 8)
+ # https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html
+ --enable-static
+ )
+
+ [[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ (
+ # The testsuite is sensitive to warnings, expects static
+ # archives to really be archives (not compiler IR), etc.
+ strip-flags
+ filter-flags -fno-semantic-interposition
+ filter-flags '-Wstrict-aliasing=*' '-Werror=*'
+ filter-lto
+
+ emake -Onone check \
+ CFLAGS="${CFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ FFLAGS="${FFLAGS}" \
+ FCFLAGS="${FCFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+ )
+}
+
+src_install() {
+ default
+
+ local x
+ while read -d $'\0' -r x ; do
+ ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die
+ done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0)
+}
diff --git a/dev-build/libtool/libtool-9999.ebuild b/dev-build/libtool/libtool-9999.ebuild
new file mode 100644
index 000000000000..4a3cad397c03
--- /dev/null
+++ b/dev-build/libtool/libtool-9999.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with dev-libs/libltdl.
+
+# bug #225559
+LIBTOOLIZE="true"
+WANT_LIBTOOL="none"
+inherit autotools flag-o-matic prefix multiprocessing
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/libtool.git"
+ inherit git-r3
+elif ! [[ $(( $(ver_cut 2) % 2 )) -eq 0 ]] ; then
+ SRC_URI="https://alpha.gnu.org/gnu/${PN}/${P}.tar.xz"
+else
+ SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="A shared library tool for developers"
+HOMEPAGE="https://www.gnu.org/software/libtool/"
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="vanilla"
+
+RDEPEND="
+ sys-devel/gnuconfig
+ >=dev-build/autoconf-2.69:*
+ >=dev-build/automake-1.13:*
+"
+DEPEND="${RDEPEND}"
+[[ ${PV} == *9999 ]] && BDEPEND="sys-apps/help2man"
+
+# Note that we have more patches in https://gitweb.gentoo.org/proj/elt-patches.git/
+# for package builds. The patches here are just those which are definitely fine
+# for the system-wide libtool installation as well.
+PATCHES=(
+ # bug #109105
+ "${FILESDIR}"/${PN}-2.4.3-use-linux-version-in-fbsd.patch
+ # bug #581314
+ "${FILESDIR}"/${PN}-2.4.6-ppc64le.patch
+
+ "${FILESDIR}"/${PN}-2.2.6a-darwin-module-bundle.patch
+ "${FILESDIR}"/${PN}-2.4.6-darwin-use-linux-version.patch
+)
+
+# In 2.5.3/2.5.4, the only difference is something harmless in Makefile.in (bug #940302)
+QA_AM_MAINTAINER_MODE=".*libltdl.*autoconf"
+
+src_prepare() {
+ if [[ ${PV} == *9999 ]] ; then
+ eapply "${FILESDIR}"/${PN}-2.4.6-pthread.patch # bug #650876
+ ./bootstrap || die
+ else
+ PATCHES+=(
+ "${FILESDIR}"/${PN}-2.4.6-pthread_bootstrapped.patch # bug #650876
+ )
+ fi
+
+ # WARNING: File build-aux/ltmain.sh is read-only; trying to patch anyway
+ chmod +w build-aux/ltmain.sh || die
+
+ if use vanilla ; then
+ eapply_user
+ return 0
+ else
+ default
+ fi
+
+ if use prefix ; then
+ # seems that libtool has to know about EPREFIX a little bit
+ # better, since it fails to find prefix paths to search libs
+ # from, resulting in some packages building static only, since
+ # libtool is fooled into thinking that libraries are unavailable
+ # (argh...). This could also be fixed by making the gcc wrapper
+ # return the correct result for -print-search-dirs (doesn't
+ # include prefix dirs ...).
+ eapply "${FILESDIR}"/${PN}-2.2.10-eprefix.patch
+ eprefixify m4/libtool.m4
+ fi
+
+ pushd libltdl >/dev/null || die
+ AT_NOELIBTOOLIZE=yes eautoreconf
+ popd >/dev/null || die
+ AT_NOELIBTOOLIZE=yes eautoreconf
+
+ # Make sure timestamps don't trigger a rebuild of man pages. #556512
+ if [[ ${PV} != *9999 ]] ; then
+ touch doc/*.1 || die
+ export HELP2MAN=true
+ fi
+}
+
+src_configure() {
+ # the libtool script uses bash code in it and at configure time, tries
+ # to find a bash shell. if /bin/sh is bash, it uses that. this can
+ # cause problems for people who switch /bin/sh on the fly to other
+ # shells, so just force libtool to use /bin/bash all the time.
+ # Do not bother hardcoding the full path to sed.
+ # Just rely on $PATH. bug #574550
+ export CONFIG_SHELL="${EPREFIX}"/bin/bash
+ export ac_cv_path_SED="sed"
+ export ac_cv_path_EGREP="grep -E"
+ export ac_cv_path_EGREP_TRADITIONAL="grep -E"
+ export ac_cv_path_FGREP="grep -F"
+ export ac_cv_path_GREP="grep"
+ export ac_cv_path_lt_DD="dd"
+
+ local myeconfargs=(
+ # Split into dev-libs/libltdl
+ --disable-ltdl-install
+
+ # Tests break otherwise (when porting to EAPI 8)
+ # https://lists.gnu.org/archive/html/bug-libtool/2014-10/msg00013.html
+ --enable-static
+ )
+
+ [[ ${CHOST} == *-darwin* ]] && myeconfargs+=( "--program-prefix=g" )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ (
+ # The testsuite is sensitive to warnings, expects static
+ # archives to really be archives (not compiler IR), etc.
+ strip-flags
+ filter-flags -fno-semantic-interposition
+ filter-flags '-Wstrict-aliasing=*' '-Werror=*'
+ filter-lto
+
+ emake -Onone check \
+ CFLAGS="${CFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}" \
+ FFLAGS="${FFLAGS}" \
+ FCFLAGS="${FCFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ TESTSUITEFLAGS="--jobs=$(get_makeopts_jobs)"
+ )
+}
+
+src_install() {
+ default
+
+ local x
+ while read -d $'\0' -r x ; do
+ ln -sf "${EPREFIX}"/usr/share/gnuconfig/${x##*/} "${x}" || die
+ done < <(find "${ED}" '(' -name config.guess -o -name config.sub ')' -print0)
+}
diff --git a/dev-build/libtool/metadata.xml b/dev-build/libtool/metadata.xml
new file mode 100644
index 000000000000..3a9f14ae2105
--- /dev/null
+++ b/dev-build/libtool/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gnu:libtool</remote-id>
+ <remote-id type="savannah">libtool</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/mage/Manifest b/dev-build/mage/Manifest
new file mode 100644
index 000000000000..2e9773f5f8c2
--- /dev/null
+++ b/dev-build/mage/Manifest
@@ -0,0 +1,2 @@
+DIST mage-1.13.0.tar.gz 8802625 BLAKE2B eb31c6f69b3e4cefc5816489c4c641740b924fd9dfdb91bf7fb7af6e6e119c09097b5fd6bef4e7194f5eee37945e194c5ddbda939295f4b433605bac4708a268 SHA512 a393a0192ecaf8664f9dd35acfd994993ab1c028a08fb8c925fc569ce58dc9d58baeef4760b012563e3f3a6957c77d548bb33a6b577d12af2e030e2465e6d24b
+DIST mage-1.15.0.tar.gz 8805332 BLAKE2B c94ac3dc00f47ccd46659ef4a83aee8609e101ef1436cc5c836426c0554c5264183e4c9640b257c0422c0301142afe7dd7a819d9796f4096490a66ec8221ebad SHA512 0ddc20d02f471fe9c12b48f53d4c09824741183d0c7e66e67556c0defd7210ae8821c054b4a992b88d4e005dac4a3089515d49e9c5cf989932144bf5e00e868c
diff --git a/dev-build/mage/mage-1.13.0.ebuild b/dev-build/mage/mage-1.13.0.ebuild
new file mode 100644
index 000000000000..521f66fd6e66
--- /dev/null
+++ b/dev-build/mage/mage-1.13.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module
+
+DESCRIPTION="make/rake like tool using go"
+HOMEPAGE="https://magefile.org"
+SRC_URI="https://github.com/magefile/mage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+src_compile() {
+ GOBIN="${S}/bin" go run bootstrap.go || die "build failed"
+}
+
+src_install() {
+dobin bin/mage
+}
diff --git a/dev-build/mage/mage-1.15.0.ebuild b/dev-build/mage/mage-1.15.0.ebuild
new file mode 100644
index 000000000000..579e852a78a7
--- /dev/null
+++ b/dev-build/mage/mage-1.15.0.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module
+
+DESCRIPTION="make/rake like tool using go"
+HOMEPAGE="https://magefile.org"
+SRC_URI="https://github.com/magefile/mage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+src_compile() {
+ GOBIN="${S}/bin" ego run bootstrap.go
+}
+
+src_install() {
+dobin bin/mage
+}
diff --git a/dev-build/mage/metadata.xml b/dev-build/mage/metadata.xml
new file mode 100644
index 000000000000..2470b06def1e
--- /dev/null
+++ b/dev-build/mage/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">magefile/mage</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/make/Manifest b/dev-build/make/Manifest
new file mode 100644
index 000000000000..886bf48fa5dc
--- /dev/null
+++ b/dev-build/make/Manifest
@@ -0,0 +1,2 @@
+DIST make-4.4.1.tar.lz 1305648 BLAKE2B b0c62a85a99b15e38ee9e08c38be9b1c4c6d81a01bc8ea94f83e7f1a93968b9c8c8b69c92bb4112646a58e38bb9d2effdd461fb2a82b1360681351e07c123a26 SHA512 591e9fab2f807bfda908f3376fdbf304c3377a6b15d13f3029456722972e361d205b692855de8ddbce64ff3f404873cbfb65f4097ca4a3b81029dc83bafcc67c
+DIST make-4.4.1.tar.lz.sig 833 BLAKE2B f72d2afaec6f21f4c731a42408200c05ed56532cbee16c1f1a4db2f1d641d27fb3c41ff2becd717e94ded7d079e683ff320c795e5073a95aed731d99666173cd SHA512 a6e4d3ef63456031c357277f0867652776afd0bd801c3be67a3f81b03103dddc5c6471ce50a89a4fd379a535163f22758cadab25a5c2192a2332124bcbbe8d74
diff --git a/dev-build/make/files/make-4.4-default-cxx.patch b/dev-build/make/files/make-4.4-default-cxx.patch
new file mode 100644
index 000000000000..4a56df5da2c8
--- /dev/null
+++ b/dev-build/make/files/make-4.4-default-cxx.patch
@@ -0,0 +1,11 @@
+--- a/src/default.c
++++ b/src/default.c
+@@ -542,7 +542,7 @@ static const char *default_variables[] =
+ "CXX", "gcc",
+ # endif /* __MSDOS__ */
+ # else
+- "CXX", "g++",
++ "CXX", "c++",
+ # endif
+ #endif
+ /* This expands to $(CO) $(COFLAGS) $< $@ if $@ does not exist,
diff --git a/dev-build/make/files/make-4.4.1-c23.patch b/dev-build/make/files/make-4.4.1-c23.patch
new file mode 100644
index 000000000000..88481a15ae2f
--- /dev/null
+++ b/dev-build/make/files/make-4.4.1-c23.patch
@@ -0,0 +1,58 @@
+From 31bc8976fb7bfdde8b9293e6a4eb2becb29a73bc Mon Sep 17 00:00:00 2001
+From: Bobby Bingham <koorogi@koorogi.info>
+Date: Wed, 2 Jul 2025 18:09:28 -0500
+Subject: [PATCH] fix compilation on musl with gcc15
+
+---
+ lib/fnmatch.c | 2 +-
+ src/getopt.c | 2 +-
+ src/getopt.h | 7 -------
+ 3 files changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/lib/fnmatch.c b/lib/fnmatch.c
+index 01da376..9b54022 100644
+--- a/lib/fnmatch.c
++++ b/lib/fnmatch.c
+@@ -121,7 +121,7 @@ USA. */
+ whose names are inconsistent. */
+
+ # if !defined _LIBC && !defined getenv
+-extern char *getenv ();
++extern char *getenv (const char*);
+ # endif
+
+ # ifndef errno
+diff --git a/src/getopt.c b/src/getopt.c
+index 7a792de..9b56abe 100644
+--- a/src/getopt.c
++++ b/src/getopt.c
+@@ -202,7 +202,7 @@ static char *posixly_correct;
+ whose names are inconsistent. */
+
+ #ifndef getenv
+-extern char *getenv ();
++extern char *getenv (const char*);
+ #endif
+
+ static char *
+diff --git a/src/getopt.h b/src/getopt.h
+index df18cee..a6cc621 100644
+--- a/src/getopt.h
++++ b/src/getopt.h
+@@ -96,14 +96,7 @@ struct option
+ #define optional_argument 2
+
+ #if defined (__STDC__) && __STDC__
+-#ifdef __GNU_LIBRARY__
+-/* Many other libraries have conflicting prototypes for getopt, with
+- differences in the consts, in stdlib.h. To avoid compilation
+- errors, only prototype getopt for the GNU C library. */
+ extern int getopt (int argc, char *const *argv, const char *shortopts);
+-#else /* not __GNU_LIBRARY__ */
+-extern int getopt ();
+-#endif /* __GNU_LIBRARY__ */
+ extern int getopt_long (int argc, char *const *argv, const char *shortopts,
+ const struct option *longopts, int *longind);
+ extern int getopt_long_only (int argc, char *const *argv,
+--
+2.50.0
diff --git a/dev-build/make/files/make-4.4.1-jobserver-kill-return-tokens.patch b/dev-build/make/files/make-4.4.1-jobserver-kill-return-tokens.patch
new file mode 100644
index 000000000000..c64c7cb69d56
--- /dev/null
+++ b/dev-build/make/files/make-4.4.1-jobserver-kill-return-tokens.patch
@@ -0,0 +1,81 @@
+https://bugs.gentoo.org/966090
+https://savannah.gnu.org/bugs/index.php?67687#comment3
+https://file.savannah.gnu.org/file/sv67687_release_tokens.diff?file_id=57804
+
+Rebased on make-4.4.1 because of test changes.
+
+commit 04a04b5dfe66de46353c9fe31dd64efab2516257
+Author: Dmitry Goncharov <dgoncharov@users.sf.net>
+Date: Thu Nov 13 00:25:15 2025 -0500
+
+ [SV 67687] Release all jobserver tokens upon a fatal signal.
+
+ * src/commands.c (fatal_error_signal): Call jobserver_clear after
+ reap_childen to let free_child run jobserver_release before the
+ pipe/fifo is closed.
+ * tests/scripts/features/jobserver: Add tests.
+
+--- a/src/commands.c
++++ b/src/commands.c
+@@ -531,7 +531,6 @@ fatal_error_signal (int sig)
+
+ temp_stdin_unlink ();
+ osync_clear ();
+- jobserver_clear ();
+
+ /* A termination signal won't be sent to the entire
+ process group, but it means we want to kill the children. */
+@@ -577,6 +576,8 @@ fatal_error_signal (int sig)
+ while (job_slots_used > 0)
+ reap_children (1, 1);
+
++ jobserver_clear ();
++
+ /* Delete any non-precious intermediate files that were made. */
+
+ remove_intermediates (1);
+--- a/tests/scripts/features/jobserver
++++ b/tests/scripts/features/jobserver
+@@ -198,4 +198,39 @@ all:;@echo "$$MAKEFLAGS"
+ run_make_test(q!all:;@echo hi!, "", "#MAKE#: cannot open jobserver nosuchfile: $ERR_no_such_file\n#MAKE#: $j1err\nhi\n");
+ }
+
++if ($port_type eq 'UNIX') {
++ # sv 67687.
++ # Test that make releases all jobserver tokens upon a fatal signal.
++ #
++ # When the submake releases all its tokens make prints something like
++ #
++ # "make[1]: *** [child.mk:2: a] Terminated
++ # make[1]: *** [child.mk:2: b] Terminated
++ # make: *** [t001.mk:2: all] Terminated".
++ #
++ # When make detects lost jobserver tokens, make prints something like
++ #
++ # "make[1]: *** [child.mk:2: a] Terminated
++ # make[1]: *** [child.mk:2: b] Terminated
++ # make: *** [t001.mk:2: all] Terminated
++ # INTERNAL: exiting with 1 jobserver tokens available; should be 3!".
++ #
++ # This test has to fail if the last line is "exiting with ...".
++ # Anchor \Z ensures that the regex won't match when the "exiting with ..."
++ # message is present, because the preceding "Terminated" message is
++ # followed by a new line.
++ #
++ # "[\w\d ]*" after "Terminated" is for macos.
++ create_file('child.mk',
++'all: a b c
++a b:; @sleep 180
++c:; @sleep 2 && kill -term $$PPID');
++ my $re = '/#MAKE#: \*\*\* \[#MAKEFILE#:2: all\] Terminated[\w\d ]*\Z/';
++ run_make_test(q!
++all:; @$(MAKE) --no-print-directory -f child.mk
++!, '-j3', $re, 512);
++ run_make_test(undef, '--jobserver-style=pipe -j3', $re, 512);
++ unlink('child.mk') unless $keep;
++}
++
+ 1;
+--
+2.51.2
+
diff --git a/dev-build/make/make-4.4.1-r100.ebuild b/dev-build/make/make-4.4.1-r100.ebuild
new file mode 100644
index 000000000000..7f7c774f6694
--- /dev/null
+++ b/dev-build/make/make-4.4.1-r100.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/make.asc
+GUILE_COMPAT=( 2-2 3-0 )
+inherit flag-o-matic unpacker verify-sig guile-single
+
+DESCRIPTION="Standard tool to compile source trees"
+HOMEPAGE="https://www.gnu.org/software/make/make.html"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/make.git"
+ inherit autotools git-r3
+elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then
+ SRC_URI="https://alpha.gnu.org/gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/make/${P}.tar.lz.sig )"
+else
+ SRC_URI="mirror://gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.lz.sig )"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="doc guile nls static test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
+
+DEPEND="
+ guile? ( ${GUILE_DEPS} )
+"
+RDEPEND="
+ ${DEPEND}
+ nls? ( virtual/libintl )
+"
+BDEPEND="
+ $(unpacker_src_uri_depends)
+ doc? ( virtual/texi2dvi )
+ nls? ( sys-devel/gettext )
+ verify-sig? ( sec-keys/openpgp-keys-make )
+ test? ( dev-lang/perl )
+"
+
+DOCS="AUTHORS NEWS README*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.4-default-cxx.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+
+ cd "${S}" || die
+ ./bootstrap || die
+ else
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.lz{,.sig}
+ unpacker ${P}.tar.lz
+ fi
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ eautoreconf
+ fi
+
+ if use guile; then
+ guile_bump_sources
+ fi
+}
+
+pkg_setup() {
+ if use guile; then
+ guile-single_pkg_setup
+ fi
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ local myeconfargs=(
+ --program-prefix=g
+ $(use_with guile)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake all $(usev doc 'pdf html')
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/make.html/. ) DOCS="${DOCS} doc/make.pdf"
+ default
+
+ dosym gmake /usr/bin/make
+ dosym gmake.1 /usr/share/man/man1/make.1
+ guile_unstrip_ccache
+}
diff --git a/dev-build/make/make-4.4.1-r101.ebuild b/dev-build/make/make-4.4.1-r101.ebuild
new file mode 100644
index 000000000000..7a48ec68d94e
--- /dev/null
+++ b/dev-build/make/make-4.4.1-r101.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/make.asc
+GUILE_COMPAT=( 2-2 3-0 )
+inherit flag-o-matic unpacker verify-sig guile-single
+
+DESCRIPTION="Standard tool to compile source trees"
+HOMEPAGE="https://www.gnu.org/software/make/make.html"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/make.git"
+ inherit autotools git-r3
+elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then
+ SRC_URI="https://alpha.gnu.org/gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/make/${P}.tar.lz.sig )"
+else
+ SRC_URI="mirror://gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.lz.sig )"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="doc guile nls static test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
+
+DEPEND="
+ guile? ( ${GUILE_DEPS} )
+"
+RDEPEND="
+ ${DEPEND}
+ nls? ( virtual/libintl )
+"
+BDEPEND="
+ $(unpacker_src_uri_depends)
+ doc? ( virtual/texi2dvi )
+ nls? ( sys-devel/gettext )
+ verify-sig? ( sec-keys/openpgp-keys-make )
+ test? ( dev-lang/perl )
+"
+
+DOCS="AUTHORS NEWS README*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.4-default-cxx.patch
+ "${FILESDIR}"/${PN}-4.4.1-c23.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+
+ cd "${S}" || die
+ ./bootstrap || die
+ else
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.lz{,.sig}
+ unpacker ${P}.tar.lz
+ fi
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ eautoreconf
+ fi
+
+ if use guile; then
+ guile_bump_sources
+ fi
+}
+
+pkg_setup() {
+ if use guile; then
+ guile-single_pkg_setup
+ fi
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ local myeconfargs=(
+ --program-prefix=g
+ $(use_with guile)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake all $(usev doc 'pdf html')
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/make.html/. ) DOCS="${DOCS} doc/make.pdf"
+ default
+
+ dosym gmake /usr/bin/make
+ dosym gmake.1 /usr/share/man/man1/make.1
+ guile_unstrip_ccache
+}
diff --git a/dev-build/make/make-4.4.1-r102.ebuild b/dev-build/make/make-4.4.1-r102.ebuild
new file mode 100644
index 000000000000..72dd7812016b
--- /dev/null
+++ b/dev-build/make/make-4.4.1-r102.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/make.asc
+GUILE_COMPAT=( 2-2 3-0 )
+inherit flag-o-matic unpacker verify-sig guile-single
+
+DESCRIPTION="Standard tool to compile source trees"
+HOMEPAGE="https://www.gnu.org/software/make/make.html"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/make.git"
+ inherit autotools git-r3
+elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then
+ SRC_URI="https://alpha.gnu.org/gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/make/${P}.tar.lz.sig )"
+else
+ SRC_URI="mirror://gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.lz.sig )"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="doc guile nls static test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
+
+DEPEND="
+ guile? ( ${GUILE_DEPS} )
+"
+RDEPEND="
+ ${DEPEND}
+ nls? ( virtual/libintl )
+"
+BDEPEND="
+ $(unpacker_src_uri_depends)
+ doc? ( virtual/texi2dvi )
+ nls? ( sys-devel/gettext )
+ verify-sig? ( sec-keys/openpgp-keys-make )
+ test? ( dev-lang/perl )
+"
+
+DOCS="AUTHORS NEWS README*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.4-default-cxx.patch
+ "${FILESDIR}"/${PN}-4.4.1-c23.patch
+ "${FILESDIR}"/${PN}-4.4.1-jobserver-kill-return-tokens.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+
+ cd "${S}" || die
+ ./bootstrap || die
+ else
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.lz{,.sig}
+ unpacker ${P}.tar.lz
+ fi
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ eautoreconf
+ fi
+
+ if use guile; then
+ guile_bump_sources
+ fi
+}
+
+pkg_setup() {
+ if use guile; then
+ guile-single_pkg_setup
+ fi
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ local myeconfargs=(
+ --program-prefix=g
+ $(use_with guile)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake all $(usev doc 'pdf html')
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/make.html/. ) DOCS="${DOCS} doc/make.pdf"
+ default
+
+ dosym gmake /usr/bin/make
+ dosym gmake.1 /usr/share/man/man1/make.1
+ guile_unstrip_ccache
+}
diff --git a/dev-build/make/make-9999.ebuild b/dev-build/make/make-9999.ebuild
new file mode 100644
index 000000000000..21e2c9546c2f
--- /dev/null
+++ b/dev-build/make/make-9999.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/make.asc
+GUILE_COMPAT=( 2-2 3-0 )
+inherit flag-o-matic unpacker verify-sig guile-single
+
+DESCRIPTION="Standard tool to compile source trees"
+HOMEPAGE="https://www.gnu.org/software/make/make.html"
+if [[ ${PV} == 9999 ]] ; then
+ inherit autotools git-r3
+elif [[ $(ver_cut 3) -ge 90 || $(ver_cut 4) -ge 90 ]] ; then
+ SRC_URI="https://alpha.gnu.org/gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( https://alpha.gnu.org/gnu/make/${P}.tar.lz.sig )"
+else
+ SRC_URI="mirror://gnu/make/${P}.tar.lz"
+ SRC_URI+=" verify-sig? ( mirror://gnu/make/${P}.tar.lz.sig )"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="doc guile nls static test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
+
+DEPEND="
+ guile? ( ${GUILE_DEPS} )
+"
+RDEPEND="
+ ${DEPEND}
+ nls? ( virtual/libintl )
+"
+BDEPEND="
+ $(unpacker_src_uri_depends)
+ doc? ( virtual/texi2dvi )
+ nls? ( sys-devel/gettext )
+ verify-sig? ( sec-keys/openpgp-keys-make )
+ test? ( dev-lang/perl )
+"
+
+DOCS="AUTHORS NEWS README*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.4-default-cxx.patch
+)
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI=("https://git.savannah.gnu.org/git/make.git")
+ git-r3_src_unpack
+
+ EGIT_REPO_URI=(
+ "https://github.com/coreutils/gnulib/"
+ "https://git.savannah.gnu.org/git/gnulib.git"
+ )
+ EGIT_BRANCH=$(. "${S}/bootstrap.conf" && echo "${GNULIB_REVISION}" || die)
+ EGIT_CHECKOUT_DIR=${S}/gnulib
+ git-r3_src_unpack
+
+ cd "${S}" || die
+ ./bootstrap || die
+ else
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.lz{,.sig}
+ unpacker ${P}.tar.lz
+ fi
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ eautoreconf
+ fi
+
+ if use guile; then
+ guile_bump_sources
+ fi
+}
+
+pkg_setup() {
+ if use guile; then
+ guile-single_pkg_setup
+ fi
+}
+
+src_configure() {
+ use static && append-ldflags -static
+ local myeconfargs=(
+ --program-prefix=g
+ $(use_with guile)
+ $(use_enable nls)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake all $(usev doc 'pdf html')
+}
+
+src_install() {
+ use doc && HTML_DOCS=( doc/make.html/. ) DOCS="${DOCS} doc/make.pdf"
+ default
+
+ dosym gmake /usr/bin/make
+ dosym gmake.1 /usr/share/man/man1/make.1
+}
diff --git a/dev-build/make/metadata.xml b/dev-build/make/metadata.xml
new file mode 100644
index 000000000000..068fc3567c55
--- /dev/null
+++ b/dev-build/make/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:gnu:make</remote-id>
+ <remote-id type="savannah">make</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/melange/Manifest b/dev-build/melange/Manifest
new file mode 100644
index 000000000000..3b42f5ce4695
--- /dev/null
+++ b/dev-build/melange/Manifest
@@ -0,0 +1,2 @@
+DIST melange-0.18.3-deps.tar.xz 424648416 BLAKE2B 2cf7e24f009e80bc774f70a99cd34776c0ab800d92434df3f555fc066603ae2fd2e83af9a0e6410d6c6bc6e509378285401b3d160295609de9c0af76dc91e8b8 SHA512 49d006dd4c8cd47a9e32e3be73270757f730878f2eabf64cdd71fec7cdb924daba73dcd3816760ed079de9bf91e444be04bdb6b4f287b74c1389df4e909c13d5
+DIST melange-0.18.3.tar.gz 1970781 BLAKE2B f646a0c0fe255ced2c2104b458a6b6983b0ea7c8b83f2a6fb65870d0104c91e7f9a8b37f1a0c85facdb8c292ea904a299e61fd4f699af474bdf534df44efbf6e SHA512 13f6e6bc86d49460572745506794abbe0a8ed071258c94e30f84c7b3739fbd6873a566871c28a503ef06593ebd6f2a7d7e1e82adafc0dea68f7ab2f40756e841
diff --git a/dev-build/melange/melange-0.18.3.ebuild b/dev-build/melange/melange-0.18.3.ebuild
new file mode 100644
index 000000000000..2656728e1d1f
--- /dev/null
+++ b/dev-build/melange/melange-0.18.3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs go-module edo unpacker
+
+DESCRIPTION="Build APK packages from source code using declarative pipelines"
+HOMEPAGE="https://github.com/chainguard-dev/melange/"
+SRC_URI="
+ https://github.com/chainguard-dev/${PN}/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://dev.gentoo.org/~xgqt/distfiles/deps/${P}-deps.tar.xz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+RESTRICT="test" # Does not work inside Portage sandbox.
+
+CHECKREQS_DISK_BUILD="1800M"
+
+DOCS=( NEWS.md README.md examples )
+
+pkg_setup() {
+ check-reqs_pkg_setup
+}
+
+src_compile() {
+ local -a -r go_buildopts=(
+ -o ./
+ )
+ ego build "${go_buildopts[@]}"
+}
+
+src_test() {
+ local -a -r melange_opts=(
+ ./pkg/sca/testdata/go-fips-bin/go-fips-bin.yaml
+ --arch="$(uname -m)"
+ --generate-index=false
+ --out-dir=pkg/sca/testdata/go-fips-bin/packages/
+ --source-dir=pkg/sca/testdata/go-fips-bin/
+ )
+ edo ./melange build "${melange_opts[@]}"
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe melange
+
+ einstalldocs
+ docompress -x "/usr/share/doc/${PF}/examples"
+}
diff --git a/dev-build/melange/metadata.xml b/dev-build/melange/metadata.xml
new file mode 100644
index 000000000000..98636cd43b51
--- /dev/null
+++ b/dev-build/melange/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Melange can be used to build APK packages using declarative pipelines. It
+ is commonly used to provide custom packages for container images built with
+ apko. The majority of apks are built for use with either the Wolfi or
+ Alpine Linux ecosystems. It's key features are pipeline-oriented builds and
+ multi-architecture by default.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/chainguard-dev/melange/issues/</bugs-to>
+ <remote-id type="github">chainguard-dev/melange</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/meson-format-array/files/meson-format-array.py b/dev-build/meson-format-array/files/meson-format-array.py
new file mode 100644
index 000000000000..84a490cf29eb
--- /dev/null
+++ b/dev-build/meson-format-array/files/meson-format-array.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+import itertools
+import shlex
+import sys
+
+
+def quote(s):
+ """ Surround a value with quotes, escape embedded quotes.
+ >>> quote("foo'bar")
+ "'foo\\\\'bar'"
+ """
+
+ return "'" + s.replace("\\", "\\\\").replace("'", "\\'") + "'"
+
+
+def format_array(args):
+ """ Format shell-compatible expressions as a meson array.
+ >>> format_array(['-O2 -pipe -DFOO="bar baz"'])
+ "['-O2', '-pipe', '-DFOO=bar baz']"
+ """
+
+ # Split each argument according to shell rules
+ args = (shlex.split(x) for x in args)
+
+ # Flatten the resulting list of lists
+ args = itertools.chain.from_iterable(args)
+
+ # Add quotes and escape embedded quotes
+ args = (quote(x) for x in args)
+
+ # Format the result
+ return "[" + ", ".join(args) + "]"
+
+
+def main(args):
+ print(format_array(args))
+
+
+if __name__ == "__main__":
+ main(sys.argv[1:])
diff --git a/dev-build/meson-format-array/meson-format-array-0.ebuild b/dev-build/meson-format-array/meson-format-array-0.ebuild
new file mode 100644
index 000000000000..0b50df97577e
--- /dev/null
+++ b/dev-build/meson-format-array/meson-format-array-0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit edo python-r1
+
+DESCRIPTION="Format shell expressions into a meson array"
+HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RDEPEND="${PYTHON_DEPS}"
+
+src_test() {
+ run_doctest() {
+ edo ${EPYTHON} -B -m doctest "${FILESDIR}/meson-format-array.py"
+ }
+ python_foreach_impl run_doctest
+}
+
+src_install() {
+ python_foreach_impl python_newscript "${FILESDIR}"/meson-format-array.py meson-format-array
+}
diff --git a/dev-build/meson-format-array/metadata.xml b/dev-build/meson-format-array/metadata.xml
new file mode 100644
index 000000000000..f684895450ba
--- /dev/null
+++ b/dev-build/meson-format-array/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>floppym@gentoo.org</email>
+ <name>Mike Gilbert</name>
+ </maintainer>
+ <stabilize-allarches/>
+</pkgmetadata>
diff --git a/dev-build/meson/Manifest b/dev-build/meson/Manifest
new file mode 100644
index 000000000000..d8e9d339368d
--- /dev/null
+++ b/dev-build/meson/Manifest
@@ -0,0 +1,12 @@
+DIST meson-1.10.2.tar.gz 2422765 BLAKE2B 0c6966640988985f8c0af165cb89e0302b0d5e2d506a4c24639971b854dd7e2fe2ea4e4f52be65e0a1524a2c9a4ed71d13093f4881612c82e885ab34d5c46a7a SHA512 43d408fde7390c81eaef63b835deb4acfcae279cf05bcd63a368c4bc1de69b7fb620f801a7700345d4c41e155a4429a43cdef12e60322aa20a33edfaeb5ce7e9
+DIST meson-1.10.2.tar.gz.asc 833 BLAKE2B f4609f3e51f32d290582f3b339e7b008bf244c3cded918fc115393d0f4644485eb7da1b3b56f1743ca3690665f5314486bbbdfa36ecc65019fca14958ef2c4f8 SHA512 55dbfe41eb8b29206536fa71d36eb483a4be35b7528f15ef00c660b828816c72deb34e63bca52c2641f4134917494ff55761835a9dae187986aa9cef7989bf06
+DIST meson-1.11.0.tar.gz 2461494 BLAKE2B 121589b9d5e42430b28a3226f6bdd46697e2b9271c512ae849aa648ba4268359b85daf11717666a78cff021cf710fc907fd3aa172275d6553767d5b8f1909f69 SHA512 9a4c678c523388d51e47ae1f1a506368f539fab0a9c1eb51ae6e148aeb6418ab26bae758c10c4c3d6f41bfc00949003ec52aabbcd7a9dc7bd33de8fa02477926
+DIST meson-1.11.0.tar.gz.asc 833 BLAKE2B 21d00c6901384c79c2c028a0a64e61fd552054c67287f20bcafec24998aea44e5483fc2407b7408c3274f88b51d2ba272c587510c788fa13a218469d73a20186 SHA512 f8e7868cfbfa322e9ff82b53de89130e064e21a80a7b9a70d15490a564b3050c954251395895aa6b278a6a77911cf18bdfdaefd766c59c418d5e91734c4f7a9e
+DIST meson-1.11.1.tar.gz 5190321 BLAKE2B 3fcedb28ae3646e1c6bc1b9596ec3f04af1752bef7de9a0a1086aa103d8e0e91b22c66b85f66751447571d2d8815cf3582aacb1e252ea4af59aa18ae1bbede13 SHA512 c30c98714ab595ca1b5241fbb546c9c5fbb3eada53bfe782652a5734b04d45d66944a5fc8673ee602797c8173e27473036bcb01e09032bbc518567ee89dd6d70
+DIST meson-1.11.1.tar.gz.asc 395 BLAKE2B ed30367a763c06bc4dd241629b31dd416c9ff898a12e72ce4285608f0b1b66ff62a06b42bb90682f45e9d3298a112342fd451ca45fbf2397b30668ff28e5d5e6 SHA512 9115834e1dffefd5468206fb4539ebd4bdbe94d35a86ef2d62947d9268ffab6848994e75878d73d4b7b5880bdb0ab9ed648b77dd37321020461aaa89f11b6b45
+DIST meson-1.9.2.tar.gz 2382854 BLAKE2B f099352abbc0fa8d358cbe406955ddf817453cdc244b36f322e11b5b3020013641d162c68c9bce119cf866e8082a14a3f7db9930b66dfba15805afb32440f555 SHA512 3237e55bb8374f65f40dccd8a93493a42fc425337758b8600b377c5e9795a1bdc97942fc19fedd4c3cb697f87c1d54364a637110704a5dc1a391d712be1463bc
+DIST meson-1.9.2.tar.gz.asc 833 BLAKE2B f161b2918c341172de5f141ac367d7d62a60f2d0eadd793f71fb6a19e8944b4ad6bbfbb25d233862066eec8e422295d46e03ce8aca26e1081f2bcb456b7c1057 SHA512 c8cace334e31d5ba3e4f2da687ed945182e3039dc8bbea94015caa82d373c4b4d96a425eccb7617793fd471040705711b00ab37705dcd2070be6ba089586652b
+DIST meson-reference-1.10.2.3 366569 BLAKE2B 28b37c33cb94f3cad8de68eeaaf210a470d14df68fa00d8fe18b79ab9acee71a725fa9cbcf57c9c470f98acd540123612dfd9974fb67121ce72fdc70168cfab8 SHA512 1defa912aeac9a5768e7f3ad669d4471a457c6fc70ead30c428ecc335d3a06db56314a5ad343aff7805b1a46388cbfba5b4188e2ef55d10b35767c046dcb0f36
+DIST meson-reference-1.11.0.3 383896 BLAKE2B 76f4a93c9f168bb2b2bb852918b4f4bd506df3c49ef31d34541a312a0ebb812abde4bc15e3525f795289b80a6a83df7827d10850e83fc32544a0aa0731119172 SHA512 0f9c095a41cb1a050439e68e1478ffccc4147094455103e4929275ffb0233e28fb8f7e6f8948b039bcc5a9ea3879156305a3e1b795760ac5bf54ac524c430b08
+DIST meson-reference-1.11.1.3 383896 BLAKE2B 6262239b32c9be67eb426f2c208f7395ddb7894869d2d96618aec035a60e1529273c0e22f8fe141393465a96a962f3f307cad2353569dd0d7006e79cd9e36f41 SHA512 52a6efd4b52b389986c7ce346b5ccb2abc9e2afc66dcc83ee3b2d981a81c7052520afbbc34c483e6db53660048fb14925ca6fb5718c76768c6773458b8adf814
+DIST meson-reference-1.9.2.3 347286 BLAKE2B ece5e2075e1d1aabe9daf09e8dbdd4c22d0940b957cc61443c9ea0136e54c9f39244cc082f7a784209bb1bb81b116acae74f02501a9cd16df6d06ff9dcda08c0 SHA512 dbf57730e6c6ac6d3ebfba70f4c4b479d8e1a502854343c776f5ba0e9c7a4ba10bf75758b3434dd418041019ab7d704fe1424f49adaf41e260f652b58fd9cb23
diff --git a/dev-build/meson/files/meson-1.10.0-python-path.patch b/dev-build/meson/files/meson-1.10.0-python-path.patch
new file mode 100644
index 000000000000..3de84046e05d
--- /dev/null
+++ b/dev-build/meson/files/meson-1.10.0-python-path.patch
@@ -0,0 +1,39 @@
+From fbe4477ac8937253fe027486a28700f4f035b42b Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 12 Aug 2023 09:56:44 +0100
+Subject: [PATCH 2/2] python module: Respect PATH when python is not given in
+ machine file
+
+We should only fall back to the Python interpreter running Meson itself
+if `python3` is not found in the PATH.
+
+A couple of tests relied on the old behaviour. Under Arch/PyPy, the
+PATH's `python3` does not point to PyPy. Unfortunately, other
+Python-based tools like g-ir-scanner are installed with a shebang of
+`/usr/bin/env python3` on Arch, so adjusting the PATH to point to a
+different Python breaks such tools. We must therefore specify `python`
+in a machine file instead.
+
+We also have to now exclude "test cases/frameworks/1 boost" on Arch/PyPy
+because it cannot work against PyPy. It was previously using CPython,
+despite Meson itself running under PyPy, but the machine file has
+changed that.
+---
+ mesonbuild/modules/python.py | 4 +++-
+ 6 files changed, 18 insertions(+), 9 deletions(-)
+
+diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
+index 9c1ad86cb170..ad1260ca5015 100644
+--- a/mesonbuild/modules/python.py
++++ b/mesonbuild/modules/python.py
+@@ -460,7 +460,9 @@ def _find_installation_impl(self, state: 'ModuleState', display_name: str, name_
+ build_config = self.interpreter.environment.coredata.optstore.get_value_for(OptionKey('python.build_config'))
+
+ if not name_or_path:
+- python = PythonExternalProgram('python3', mesonlib.python_command, build_config_path=build_config)
++ python = PythonExternalProgram('python3', build_config_path=build_config)
++ if not python.found():
++ python = PythonExternalProgram('python3', mesonlib.python_command, build_config_path=build_config)
+ else:
+ tmp_python = ExternalProgram.from_entry(display_name, name_or_path)
+ python = PythonExternalProgram(display_name, ext_prog=tmp_python, build_config_path=build_config)
diff --git a/dev-build/meson/files/meson-1.2.1-python-path.patch b/dev-build/meson/files/meson-1.2.1-python-path.patch
new file mode 100644
index 000000000000..d6151881f83f
--- /dev/null
+++ b/dev-build/meson/files/meson-1.2.1-python-path.patch
@@ -0,0 +1,26 @@
+From 2b33c94e6315e9a397dd48a58a5becb0df3b8aba Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 12 Aug 2023 09:56:44 +0100
+Subject: [PATCH 2/2] python module: Respect PATH when python is not given in
+ machine file
+
+We should only fall back to the Python interpreter running Meson itself
+if `python3` is not found in the PATH.
+
+https://github.com/mesonbuild/meson/pull/12116
+
+diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
+index 5654e4231..2b2395a9b 100644
+--- a/mesonbuild/modules/python.py
++++ b/mesonbuild/modules/python.py
+@@ -381,7 +381,9 @@ class PythonModule(ExtensionModule):
+
+ def _find_installation_impl(self, state: 'ModuleState', display_name: str, name_or_path: str, required: bool) -> MaybePythonProg:
+ if not name_or_path:
+- python = PythonExternalProgram('python3', mesonlib.python_command)
++ python = PythonExternalProgram('python3')
++ if not python.found():
++ python = PythonExternalProgram('python3', mesonlib.python_command)
+ else:
+ tmp_python = ExternalProgram.from_entry(display_name, name_or_path)
+ python = PythonExternalProgram(display_name, ext_prog=tmp_python)
diff --git a/dev-build/meson/meson-1.10.2.ebuild b/dev-build/meson/meson-1.10.2.ebuild
new file mode 100644
index 000000000000..693481f6c00c
--- /dev/null
+++ b/dev-build/meson/meson-1.10.2.ebuild
@@ -0,0 +1,239 @@
+# Copyright 2016-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit ninja-utils git-r3
+
+ BDEPEND="
+ ${NINJA_DEPEND}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ "
+
+else
+ inherit verify-sig
+
+ MY_PV=${PV/_/}
+ MY_P=${P/_/}
+ S=${WORKDIR}/${MY_P}
+
+ SRC_URI="
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
+ verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
+ "
+ # Releases may be signed by those listed in Releasing.md. Jussi
+ # remains the default release manager.
+ # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )"
+ #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="https://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test test-full"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test-full? ( test )"
+
+# test-full contains various test dependencies, for optional test cases of
+# frameworks Meson has support for. These will *usually* get skipped
+# automatically if uninstalled. The dep allows:
+# - guaranteeing the whole test suite runs transparently without skips
+# - reducing brittleness of frameworks that straddle multiple packages
+# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase
+# consistently installed as long as it isn't masked for removal. TODO: drop
+# dev-qt/*:5 from DEPEND once they are masked.
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ >=dev-libs/gobject-introspection-1.82.0-r2
+ app-alternatives/ninja
+ dev-vcs/git
+ virtual/zlib:=[static-libs(+)]
+ virtual/pkgconfig
+ dev-build/cmake
+ )
+ test-full? (
+ || ( dev-lang/rust dev-lang/rust-bin )
+ dev-lang/nasm
+ >=dev-lang/pypy-3
+ dev-lang/vala
+ dev-python/cython
+ virtual/fortran
+ virtual/jdk
+
+ app-text/doxygen
+ dev-cpp/gtest
+ dev-libs/protobuf
+ dev-util/bindgen
+ dev-util/gtk-doc
+ dev-util/itstool
+ llvm-core/llvm
+ media-libs/libsdl2
+ media-libs/libwmf
+ net-libs/libpcap
+ sci-libs/hdf5[cxx,fortran]
+ sci-libs/netcdf
+ sys-cluster/openmpi[fortran]
+ sys-devel/bison
+ sys-devel/flex
+
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtdeclarative:6
+ dev-qt/qttools:6
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ x11-libs/gtk+:3
+
+ dev-libs/wayland
+ dev-util/wayland-scanner
+ )
+"
+RDEPEND="
+ !<dev-build/muon-0.2.0-r2[man(-)]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-python-path.patch
+)
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+ fi
+}
+
+python_prepare_all() {
+ local disable_unittests=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ -e 's/test_generate_gir_with_address_sanitizer/_&/'
+ -e 's/test_env_cflags_ldflags/_&/'
+ -e 's/test_c_link_args_and_env/_&/'
+
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ -e 's/test_pch_with_address_sanitizer/_&/'
+
+ # clippy-driver fails, but only when run via portage.
+ #
+ # error[E0463]: can't find crate for `std`
+ # error: requires `sized` lang_item
+ -e 's/test_rust_clippy/_&/'
+ )
+
+ sed -i "${disable_unittests[@]}" unittests/*.py || die
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+ # nvcc breaks on essentially any LDFLAGS
+ # https://bugs.gentoo.org/936757
+ # https://github.com/mesonbuild/meson/issues/11234
+ rm -r "test cases/cuda"/* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_check_deps() {
+ if [[ ${PV} = *9999* ]]; then
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ fi
+}
+
+python_configure_all() {
+ if [[ ${PV} = *9999* ]]; then
+ # We use the unsafe_yaml loader because strictyaml is not packaged. In
+ # theory they produce the same results, but pyyaml is faster and
+ # without safety checks.
+ edo ./meson.py setup \
+ --prefix "${EPREFIX}/usr" \
+ -Dhtml=false \
+ -Dunsafe_yaml=true \
+ docs/ docs/builddir
+ fi
+}
+
+python_compile_all() {
+ if [[ ${PV} = *9999* ]]; then
+ eninja -C docs/builddir
+ fi
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # meson has its own tests for LTO support. We don't need to verify that
+ # all tests work when they happen to use it. And in particular, this
+ # breaks rust.
+ filter-lto
+
+ # remove unwanted python_wrapper_setup contents
+ # We actually do want to non-error if python2 is installed and tested.
+ remove="${T}/${EPYTHON}/bin:"
+ PATH=${PATH/${remove}/}
+
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ # 'test cases/unit/73 summary' expects 80 columns
+ export COLUMNS=80
+
+ # If JAVA_HOME is not set, meson looks for javac in PATH.
+ # If javac is in /usr/bin, meson assumes /usr/include is a valid
+ # JDK include path. Setting JAVA_HOME works around this broken
+ # autodetection. If no JDK is installed, we should end up with an empty
+ # value in JAVA_HOME, and the tests should get skipped.
+ export JAVA_HOME=$(java-config -O 2>/dev/null)
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+
+ dozshcomp data/shell-completions/zsh/_meson
+ dobashcomp data/shell-completions/bash/meson
+
+ if [[ ${PV} = *9999* ]]; then
+ DESTDIR="${ED}" eninja -C docs/builddir install
+ else
+ newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
+ fi
+}
diff --git a/dev-build/meson/meson-1.11.0.ebuild b/dev-build/meson/meson-1.11.0.ebuild
new file mode 100644
index 000000000000..693481f6c00c
--- /dev/null
+++ b/dev-build/meson/meson-1.11.0.ebuild
@@ -0,0 +1,239 @@
+# Copyright 2016-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit ninja-utils git-r3
+
+ BDEPEND="
+ ${NINJA_DEPEND}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ "
+
+else
+ inherit verify-sig
+
+ MY_PV=${PV/_/}
+ MY_P=${P/_/}
+ S=${WORKDIR}/${MY_P}
+
+ SRC_URI="
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
+ verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
+ "
+ # Releases may be signed by those listed in Releasing.md. Jussi
+ # remains the default release manager.
+ # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )"
+ #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="https://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test test-full"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test-full? ( test )"
+
+# test-full contains various test dependencies, for optional test cases of
+# frameworks Meson has support for. These will *usually* get skipped
+# automatically if uninstalled. The dep allows:
+# - guaranteeing the whole test suite runs transparently without skips
+# - reducing brittleness of frameworks that straddle multiple packages
+# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase
+# consistently installed as long as it isn't masked for removal. TODO: drop
+# dev-qt/*:5 from DEPEND once they are masked.
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ >=dev-libs/gobject-introspection-1.82.0-r2
+ app-alternatives/ninja
+ dev-vcs/git
+ virtual/zlib:=[static-libs(+)]
+ virtual/pkgconfig
+ dev-build/cmake
+ )
+ test-full? (
+ || ( dev-lang/rust dev-lang/rust-bin )
+ dev-lang/nasm
+ >=dev-lang/pypy-3
+ dev-lang/vala
+ dev-python/cython
+ virtual/fortran
+ virtual/jdk
+
+ app-text/doxygen
+ dev-cpp/gtest
+ dev-libs/protobuf
+ dev-util/bindgen
+ dev-util/gtk-doc
+ dev-util/itstool
+ llvm-core/llvm
+ media-libs/libsdl2
+ media-libs/libwmf
+ net-libs/libpcap
+ sci-libs/hdf5[cxx,fortran]
+ sci-libs/netcdf
+ sys-cluster/openmpi[fortran]
+ sys-devel/bison
+ sys-devel/flex
+
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtdeclarative:6
+ dev-qt/qttools:6
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ x11-libs/gtk+:3
+
+ dev-libs/wayland
+ dev-util/wayland-scanner
+ )
+"
+RDEPEND="
+ !<dev-build/muon-0.2.0-r2[man(-)]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-python-path.patch
+)
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+ fi
+}
+
+python_prepare_all() {
+ local disable_unittests=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ -e 's/test_generate_gir_with_address_sanitizer/_&/'
+ -e 's/test_env_cflags_ldflags/_&/'
+ -e 's/test_c_link_args_and_env/_&/'
+
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ -e 's/test_pch_with_address_sanitizer/_&/'
+
+ # clippy-driver fails, but only when run via portage.
+ #
+ # error[E0463]: can't find crate for `std`
+ # error: requires `sized` lang_item
+ -e 's/test_rust_clippy/_&/'
+ )
+
+ sed -i "${disable_unittests[@]}" unittests/*.py || die
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+ # nvcc breaks on essentially any LDFLAGS
+ # https://bugs.gentoo.org/936757
+ # https://github.com/mesonbuild/meson/issues/11234
+ rm -r "test cases/cuda"/* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_check_deps() {
+ if [[ ${PV} = *9999* ]]; then
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ fi
+}
+
+python_configure_all() {
+ if [[ ${PV} = *9999* ]]; then
+ # We use the unsafe_yaml loader because strictyaml is not packaged. In
+ # theory they produce the same results, but pyyaml is faster and
+ # without safety checks.
+ edo ./meson.py setup \
+ --prefix "${EPREFIX}/usr" \
+ -Dhtml=false \
+ -Dunsafe_yaml=true \
+ docs/ docs/builddir
+ fi
+}
+
+python_compile_all() {
+ if [[ ${PV} = *9999* ]]; then
+ eninja -C docs/builddir
+ fi
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # meson has its own tests for LTO support. We don't need to verify that
+ # all tests work when they happen to use it. And in particular, this
+ # breaks rust.
+ filter-lto
+
+ # remove unwanted python_wrapper_setup contents
+ # We actually do want to non-error if python2 is installed and tested.
+ remove="${T}/${EPYTHON}/bin:"
+ PATH=${PATH/${remove}/}
+
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ # 'test cases/unit/73 summary' expects 80 columns
+ export COLUMNS=80
+
+ # If JAVA_HOME is not set, meson looks for javac in PATH.
+ # If javac is in /usr/bin, meson assumes /usr/include is a valid
+ # JDK include path. Setting JAVA_HOME works around this broken
+ # autodetection. If no JDK is installed, we should end up with an empty
+ # value in JAVA_HOME, and the tests should get skipped.
+ export JAVA_HOME=$(java-config -O 2>/dev/null)
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+
+ dozshcomp data/shell-completions/zsh/_meson
+ dobashcomp data/shell-completions/bash/meson
+
+ if [[ ${PV} = *9999* ]]; then
+ DESTDIR="${ED}" eninja -C docs/builddir install
+ else
+ newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
+ fi
+}
diff --git a/dev-build/meson/meson-1.11.1.ebuild b/dev-build/meson/meson-1.11.1.ebuild
new file mode 100644
index 000000000000..7ee8fb47e7d9
--- /dev/null
+++ b/dev-build/meson/meson-1.11.1.ebuild
@@ -0,0 +1,242 @@
+# Copyright 2016-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs vala
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit ninja-utils git-r3
+
+ BDEPEND="
+ ${NINJA_DEPEND}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ "
+
+else
+ inherit verify-sig
+
+ MY_PV=${PV/_/}
+ MY_P=${P/_/}
+ S=${WORKDIR}/${MY_P}
+
+ SRC_URI="
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
+ verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
+ "
+ # Releases may be signed by those listed in Releasing.md. Jussi
+ # remains the default release manager.
+ # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )"
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc
+ #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="https://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test test-full"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test-full? ( test )"
+
+# test-full contains various test dependencies, for optional test cases of
+# frameworks Meson has support for. These will *usually* get skipped
+# automatically if uninstalled. The dep allows:
+# - guaranteeing the whole test suite runs transparently without skips
+# - reducing brittleness of frameworks that straddle multiple packages
+# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase
+# consistently installed as long as it isn't masked for removal. TODO: drop
+# dev-qt/*:5 from DEPEND once they are masked.
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ >=dev-libs/gobject-introspection-1.82.0-r2
+ app-alternatives/ninja
+ dev-vcs/git
+ virtual/zlib:=[static-libs(+)]
+ virtual/pkgconfig
+ dev-build/cmake
+ )
+ test-full? (
+ || ( dev-lang/rust dev-lang/rust-bin )
+ dev-lang/nasm
+ >=dev-lang/pypy-3
+ $(vala_depend)
+ dev-python/cython
+ virtual/fortran
+ virtual/jdk
+
+ app-text/doxygen
+ dev-cpp/gtest
+ dev-libs/protobuf
+ dev-util/bindgen
+ dev-util/gtk-doc
+ dev-util/itstool
+ llvm-core/llvm
+ media-libs/libsdl2
+ media-libs/libwmf
+ net-libs/libpcap
+ sci-libs/hdf5[cxx,fortran]
+ sci-libs/netcdf
+ sys-cluster/openmpi[fortran]
+ sys-devel/bison
+ sys-devel/flex
+
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtdeclarative:6
+ dev-qt/qttools:6
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ x11-libs/gtk+:3
+
+ dev-libs/wayland
+ dev-util/wayland-scanner
+ )
+"
+RDEPEND="
+ !<dev-build/muon-0.2.0-r2[man(-)]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-python-path.patch
+)
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+ fi
+}
+
+python_prepare_all() {
+ local disable_unittests=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ -e 's/test_generate_gir_with_address_sanitizer/_&/'
+ -e 's/test_env_cflags_ldflags/_&/'
+ -e 's/test_c_link_args_and_env/_&/'
+
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ -e 's/test_pch_with_address_sanitizer/_&/'
+
+ # clippy-driver fails, but only when run via portage.
+ #
+ # error[E0463]: can't find crate for `std`
+ # error: requires `sized` lang_item
+ -e 's/test_rust_clippy/_&/'
+ )
+
+ sed -i "${disable_unittests[@]}" unittests/*.py || die
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+ # nvcc breaks on essentially any LDFLAGS
+ # https://bugs.gentoo.org/936757
+ # https://github.com/mesonbuild/meson/issues/11234
+ rm -r "test cases/cuda"/* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_check_deps() {
+ if [[ ${PV} = *9999* ]]; then
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ fi
+}
+
+python_configure_all() {
+ if [[ ${PV} = *9999* ]]; then
+ # We use the unsafe_yaml loader because strictyaml is not packaged. In
+ # theory they produce the same results, but pyyaml is faster and
+ # without safety checks.
+ edo ./meson.py setup \
+ --prefix "${EPREFIX}/usr" \
+ -Dhtml=false \
+ -Dunsafe_yaml=true \
+ docs/ docs/builddir
+ fi
+}
+
+python_compile_all() {
+ if [[ ${PV} = *9999* ]]; then
+ eninja -C docs/builddir
+ fi
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # meson has its own tests for LTO support. We don't need to verify that
+ # all tests work when they happen to use it. And in particular, this
+ # breaks rust.
+ filter-lto
+
+ # bug 513658
+ has_version -b dev-lang/vala && vala_setup
+
+ # remove unwanted python_wrapper_setup contents
+ # We actually do want to non-error if python2 is installed and tested.
+ remove="${T}/${EPYTHON}/bin:"
+ PATH=${PATH/${remove}/}
+
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ # 'test cases/unit/73 summary' expects 80 columns
+ export COLUMNS=80
+
+ # If JAVA_HOME is not set, meson looks for javac in PATH.
+ # If javac is in /usr/bin, meson assumes /usr/include is a valid
+ # JDK include path. Setting JAVA_HOME works around this broken
+ # autodetection. If no JDK is installed, we should end up with an empty
+ # value in JAVA_HOME, and the tests should get skipped.
+ export JAVA_HOME=$(java-config -O 2>/dev/null)
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+
+ dozshcomp data/shell-completions/zsh/_meson
+ dobashcomp data/shell-completions/bash/meson
+
+ if [[ ${PV} = *9999* ]]; then
+ DESTDIR="${ED}" eninja -C docs/builddir install
+ else
+ newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
+ fi
+}
diff --git a/dev-build/meson/meson-1.9.2.ebuild b/dev-build/meson/meson-1.9.2.ebuild
new file mode 100644
index 000000000000..2605d33b17d2
--- /dev/null
+++ b/dev-build/meson/meson-1.9.2.ebuild
@@ -0,0 +1,239 @@
+# Copyright 2016-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit ninja-utils git-r3
+
+ BDEPEND="
+ ${NINJA_DEPEND}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ "
+
+else
+ inherit verify-sig
+
+ MY_PV=${PV/_/}
+ MY_P=${P/_/}
+ S=${WORKDIR}/${MY_P}
+
+ SRC_URI="
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
+ verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
+ "
+ # Releases may be signed by those listed in Releasing.md. Jussi
+ # remains the default release manager.
+ # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )"
+ #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="https://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test test-full"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test-full? ( test )"
+
+# test-full contains various test dependencies, for optional test cases of
+# frameworks Meson has support for. These will *usually* get skipped
+# automatically if uninstalled. The dep allows:
+# - guaranteeing the whole test suite runs transparently without skips
+# - reducing brittleness of frameworks that straddle multiple packages
+# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase
+# consistently installed as long as it isn't masked for removal. TODO: drop
+# dev-qt/*:5 from DEPEND once they are masked.
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ >=dev-libs/gobject-introspection-1.82.0-r2
+ app-alternatives/ninja
+ dev-vcs/git
+ virtual/zlib:=[static-libs(+)]
+ virtual/pkgconfig
+ dev-build/cmake
+ )
+ test-full? (
+ || ( dev-lang/rust dev-lang/rust-bin )
+ dev-lang/nasm
+ >=dev-lang/pypy-3
+ dev-lang/vala
+ dev-python/cython
+ virtual/fortran
+ virtual/jdk
+
+ app-text/doxygen
+ dev-cpp/gtest
+ dev-libs/protobuf
+ dev-util/bindgen
+ dev-util/gtk-doc
+ dev-util/itstool
+ llvm-core/llvm
+ media-libs/libsdl2
+ media-libs/libwmf
+ net-libs/libpcap
+ sci-libs/hdf5[cxx,fortran]
+ sci-libs/netcdf
+ sys-cluster/openmpi[fortran]
+ sys-devel/bison
+ sys-devel/flex
+
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtdeclarative:6
+ dev-qt/qttools:6
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ x11-libs/gtk+:3
+
+ dev-libs/wayland
+ dev-util/wayland-scanner
+ )
+"
+RDEPEND="
+ !<dev-build/muon-0.2.0-r2[man(-)]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.2.1-python-path.patch
+)
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+ fi
+}
+
+python_prepare_all() {
+ local disable_unittests=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ -e 's/test_generate_gir_with_address_sanitizer/_&/'
+ -e 's/test_env_cflags_ldflags/_&/'
+ -e 's/test_c_link_args_and_env/_&/'
+
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ -e 's/test_pch_with_address_sanitizer/_&/'
+
+ # clippy-driver fails, but only when run via portage.
+ #
+ # error[E0463]: can't find crate for `std`
+ # error: requires `sized` lang_item
+ -e 's/test_rust_clippy/_&/'
+ )
+
+ sed -i "${disable_unittests[@]}" unittests/*.py || die
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+ # nvcc breaks on essentially any LDFLAGS
+ # https://bugs.gentoo.org/936757
+ # https://github.com/mesonbuild/meson/issues/11234
+ rm -r "test cases/cuda"/* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_check_deps() {
+ if [[ ${PV} = *9999* ]]; then
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ fi
+}
+
+python_configure_all() {
+ if [[ ${PV} = *9999* ]]; then
+ # We use the unsafe_yaml loader because strictyaml is not packaged. In
+ # theory they produce the same results, but pyyaml is faster and
+ # without safety checks.
+ edo ./meson.py setup \
+ --prefix "${EPREFIX}/usr" \
+ -Dhtml=false \
+ -Dunsafe_yaml=true \
+ docs/ docs/builddir
+ fi
+}
+
+python_compile_all() {
+ if [[ ${PV} = *9999* ]]; then
+ eninja -C docs/builddir
+ fi
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # meson has its own tests for LTO support. We don't need to verify that
+ # all tests work when they happen to use it. And in particular, this
+ # breaks rust.
+ filter-lto
+
+ # remove unwanted python_wrapper_setup contents
+ # We actually do want to non-error if python2 is installed and tested.
+ remove="${T}/${EPYTHON}/bin:"
+ PATH=${PATH/${remove}/}
+
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ # 'test cases/unit/73 summary' expects 80 columns
+ export COLUMNS=80
+
+ # If JAVA_HOME is not set, meson looks for javac in PATH.
+ # If javac is in /usr/bin, meson assumes /usr/include is a valid
+ # JDK include path. Setting JAVA_HOME works around this broken
+ # autodetection. If no JDK is installed, we should end up with an empty
+ # value in JAVA_HOME, and the tests should get skipped.
+ export JAVA_HOME=$(java-config -O 2>/dev/null)
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+
+ dozshcomp data/shell-completions/zsh/_meson
+ dobashcomp data/shell-completions/bash/meson
+
+ if [[ ${PV} = *9999* ]]; then
+ DESTDIR="${ED}" eninja -C docs/builddir install
+ else
+ newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
+ fi
+}
diff --git a/dev-build/meson/meson-9999.ebuild b/dev-build/meson/meson-9999.ebuild
new file mode 100644
index 000000000000..70db66a97775
--- /dev/null
+++ b/dev-build/meson/meson-9999.ebuild
@@ -0,0 +1,242 @@
+# Copyright 2016-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit shell-completion edo distutils-r1 flag-o-matic toolchain-funcs vala
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/mesonbuild/meson"
+ inherit ninja-utils git-r3
+
+ BDEPEND="
+ ${NINJA_DEPEND}
+ $(python_gen_any_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ "
+
+else
+ inherit verify-sig
+
+ MY_PV=${PV/_/}
+ MY_P=${P/_/}
+ S=${WORKDIR}/${MY_P}
+
+ SRC_URI="
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz
+ verify-sig? ( https://github.com/mesonbuild/meson/releases/download/${MY_PV}/${MY_P}.tar.gz.asc )
+ https://github.com/mesonbuild/meson/releases/download/${MY_PV}/meson-reference.3 -> meson-reference-${MY_PV}.3
+ "
+ # Releases may be signed by those listed in Releasing.md. Jussi
+ # remains the default release manager.
+ # https://github.com/mesonbuild/meson/commit/c2d795735fa1c46c54d6aed4d4a30f36a1f853cb
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-eschwartz-20250723-r1 sec-keys/openpgp-keys-jpakkane )"
+ #VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/eschwartz.asc
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/jpakkane.gpg
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+ fi
+fi
+
+DESCRIPTION="Open source build system"
+HOMEPAGE="https://mesonbuild.com/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="test test-full"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test-full? ( test )"
+
+# test-full contains various test dependencies, for optional test cases of
+# frameworks Meson has support for. These will *usually* get skipped
+# automatically if uninstalled. The dep allows:
+# - guaranteeing the whole test suite runs transparently without skips
+# - reducing brittleness of frameworks that straddle multiple packages
+# - Qt is a particular example of this. qt5 is deprecated, but we need qtbase
+# consistently installed as long as it isn't masked for removal. TODO: drop
+# dev-qt/*:5 from DEPEND once they are masked.
+
+DEPEND="
+ test? (
+ dev-libs/glib:2
+ >=dev-libs/gobject-introspection-1.82.0-r2
+ app-alternatives/ninja
+ dev-vcs/git
+ virtual/zlib:=[static-libs(+)]
+ virtual/pkgconfig
+ dev-build/cmake
+ )
+ test-full? (
+ || ( dev-lang/rust dev-lang/rust-bin )
+ dev-lang/nasm
+ >=dev-lang/pypy-3
+ $(vala_depend)
+ dev-python/cython
+ virtual/fortran
+ virtual/jdk
+
+ app-text/doxygen
+ dev-cpp/gtest
+ dev-libs/protobuf
+ dev-util/bindgen
+ dev-util/gtk-doc
+ dev-util/itstool
+ llvm-core/llvm
+ media-libs/libsdl2
+ media-libs/libwmf
+ net-libs/libpcap
+ sci-libs/hdf5[cxx,fortran]
+ sci-libs/netcdf
+ sys-cluster/openmpi[fortran]
+ sys-devel/bison
+ sys-devel/flex
+
+ dev-qt/qtbase:6[gui,widgets]
+ dev-qt/qtdeclarative:6
+ dev-qt/qttools:6
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ x11-libs/gtk+:3
+
+ dev-libs/wayland
+ dev-util/wayland-scanner
+ )
+"
+RDEPEND="
+ !<dev-build/muon-0.2.0-r2[man(-)]
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-python-path.patch
+)
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc}
+ fi
+}
+
+python_prepare_all() {
+ local disable_unittests=(
+ # ASAN and sandbox both want control over LD_PRELOAD
+ # https://bugs.gentoo.org/673016
+ -e 's/test_generate_gir_with_address_sanitizer/_&/'
+ -e 's/test_env_cflags_ldflags/_&/'
+ -e 's/test_c_link_args_and_env/_&/'
+
+ # ASAN is unsupported on some targets
+ # https://bugs.gentoo.org/692822
+ -e 's/test_pch_with_address_sanitizer/_&/'
+
+ # clippy-driver fails, but only when run via portage.
+ #
+ # error[E0463]: can't find crate for `std`
+ # error: requires `sized` lang_item
+ -e 's/test_rust_clippy/_&/'
+ )
+
+ sed -i "${disable_unittests[@]}" unittests/*.py || die
+
+ # Broken due to python2 script created by python_wrapper_setup
+ rm -r "test cases/frameworks/1 boost" || die
+ # nvcc breaks on essentially any LDFLAGS
+ # https://bugs.gentoo.org/936757
+ # https://github.com/mesonbuild/meson/issues/11234
+ rm -r "test cases/cuda"/* || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_check_deps() {
+ if [[ ${PV} = *9999* ]]; then
+ python_has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
+ fi
+}
+
+python_configure_all() {
+ if [[ ${PV} = *9999* ]]; then
+ # We use the unsafe_yaml loader because strictyaml is not packaged. In
+ # theory they produce the same results, but pyyaml is faster and
+ # without safety checks.
+ edo ./meson.py setup \
+ --prefix "${EPREFIX}/usr" \
+ -Dhtml=false \
+ -Dunsafe_yaml=true \
+ docs/ docs/builddir
+ fi
+}
+
+python_compile_all() {
+ if [[ ${PV} = *9999* ]]; then
+ eninja -C docs/builddir
+ fi
+}
+
+src_test() {
+ tc-export PKG_CONFIG
+ if ${PKG_CONFIG} --exists Qt5Core && ! ${PKG_CONFIG} --exists Qt5Gui; then
+ ewarn "Found Qt5Core but not Qt5Gui; skipping tests"
+ else
+ distutils-r1_src_test
+ fi
+}
+
+python_test() {
+ (
+ # meson has its own tests for LTO support. We don't need to verify that
+ # all tests work when they happen to use it. And in particular, this
+ # breaks rust.
+ filter-lto
+
+ # bug 513658
+ has_version -b dev-lang/vala && vala_setup
+
+ # remove unwanted python_wrapper_setup contents
+ # We actually do want to non-error if python2 is installed and tested.
+ remove="${T}/${EPYTHON}/bin:"
+ PATH=${PATH/${remove}/}
+
+ # test_meson_installed
+ unset PYTHONDONTWRITEBYTECODE
+
+ # https://bugs.gentoo.org/687792
+ unset PKG_CONFIG
+
+ # test_cross_file_system_paths
+ unset XDG_DATA_HOME
+
+ # 'test cases/unit/73 summary' expects 80 columns
+ export COLUMNS=80
+
+ # If JAVA_HOME is not set, meson looks for javac in PATH.
+ # If javac is in /usr/bin, meson assumes /usr/include is a valid
+ # JDK include path. Setting JAVA_HOME works around this broken
+ # autodetection. If no JDK is installed, we should end up with an empty
+ # value in JAVA_HOME, and the tests should get skipped.
+ export JAVA_HOME=$(java-config -O 2>/dev/null)
+
+ ${EPYTHON} -u run_tests.py
+ ) || die "Testing failed with ${EPYTHON}"
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /usr/share/vim/vimfiles
+ doins -r data/syntax-highlighting/vim/{ftdetect,indent,syntax}
+
+ dozshcomp data/shell-completions/zsh/_meson
+ dobashcomp data/shell-completions/bash/meson
+
+ if [[ ${PV} = *9999* ]]; then
+ DESTDIR="${ED}" eninja -C docs/builddir install
+ else
+ newman "${DISTDIR}"/meson-reference-${MY_PV}.3 meson-reference.3
+ fi
+}
diff --git a/dev-build/meson/metadata.xml b/dev-build/meson/metadata.xml
new file mode 100644
index 000000000000..4cd5b8f68b1a
--- /dev/null
+++ b/dev-build/meson/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ </maintainer>
+ <maintainer type="person">
+ <email>eschwartz@gentoo.org</email>
+ <name>Eli Schwartz</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">mesonbuild/meson</remote-id>
+ <remote-id type="pypi">meson</remote-id>
+ </upstream>
+ <use>
+ <flag name="test-full">pull in dependencies to run all tests</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-build/metadata.xml b/dev-build/metadata.xml
new file mode 100644
index 000000000000..8ffb230b9648
--- /dev/null
+++ b/dev-build/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<catmetadata>
+ <longdescription lang="en">
+ Build systems and related tools.
+ </longdescription>
+ <longdescription lang="de">
+ Build-Systeme und zugehörige Werkzeuge.
+ </longdescription>
+ <longdescription lang="pl">
+ Systemy budowania i powiązane narzędzia.
+ </longdescription>
+</catmetadata>
diff --git a/dev-build/muon/Manifest b/dev-build/muon/Manifest
new file mode 100644
index 000000000000..8bf19adfa791
--- /dev/null
+++ b/dev-build/muon/Manifest
@@ -0,0 +1,7 @@
+DIST meson-tests-1e565931348f15f3f9b654f46ab4bf5fa009ca4f.tar.gz 229885 BLAKE2B d53bbc854da00c1a91189f6c4539da782f4ff49d2a57d86c56b9512b8b832f32d094d750055bb0602fe60aff58821e10c5f00663be9479420e29f75fbfba01c9 SHA512 25fdb657a17a33140029600d84cb3182e635749b99af85c432da611349c10576e15d2f79d1f9eaa21e3359b65dd057ef388925c54ebdc9c072e4b24bec3be8f8
+DIST muon-0.2.0.tar.gz 510533 BLAKE2B 6ec67f8875e84fbc2f23f412825dd47b820cd44e97a16d9ac0ab0ba9db6e755a604b66b79d3dbe13d99440daf21c2f0ccbe69661b1fb3c7df3f636c61a0e4dcb SHA512 b2e90048756bdc26bdea24fe227a87ad4d0e57176e217e22ea492a55229c62e2a70243f60af1e162e2dde8468fdda9662a32ea5cfadd69fab95a83499efa077b
+DIST muon-0.4.0-man.tar.gz 8006 BLAKE2B 0ce395ddbcccc83f5cdf8e74a7690fe0c0016ba28f7d6a05795e09833a03e8d7a281012ec2c26974b46d9883059623443034c86e08dd188458775ed2ad5fd8ae SHA512 d511ad3e3510092183993ac373ac09b6d47e9ab91ee6d5c6c98c5051eb059cef99762065cd1b24b4b45fe2a242768666ca968ab270d824ce9b74ff24799d0bdc
+DIST muon-0.5.0-man.tar.gz 8172 BLAKE2B aff24024050f8834bc024c87a4b8f599be376651c156bd9702c804175fd0aaa941a7eb2f0fd29c7016145c67dae17e48ecfd69ee286e3ba2be9147aa5faf6e00 SHA512 3d8973ab907838be6f40532983536023e280ed9624da003eb278ecbd5cd9f17b067d74a6646b6eecff0ebbd6de4b6a53f78e96a9f7c13d436543569d91c05b17
+DIST muon-v0.3.0.tar.gz 688544 BLAKE2B 6f5e9f91c1221135d8452b54bd781fb4324586d88503579af243c9889e17330d3d746a0e9fa4480a98d36ec5d55d1c335813bd19da81eaf2ef40dda42d32c418 SHA512 10d8d3d8d5df3898de22ed43fef234766e1884561d797a6462d614fd7be0f22eb7bbf40e096fe44d3e58f72e1fc631ef510f53a1e8ec36d4602ad7d5fe2771b3
+DIST muon-v0.4.0.tar.gz 3435753 BLAKE2B 0eb685ebd22a6314cfa02ab716ae8a1899363d1ce4dc6fd0b42a3fab1ff62358d21abd6c6d2682a78df1fffd2d6cc72abaacfa7eb5174a10d50bdd5dbbf0825c SHA512 2ab817bfe886fff5a9cd00935f19c7c73cc4556aa11a538ca496bdad4cced4dc1608efd05d58b6971640d0543bd7d4486185ed93a26522690cf2e1d348342bb8
+DIST muon-v0.5.0.tar.gz 1262546 BLAKE2B e43c12a3558108a2b3c35438db8cbf38fec50974f63392c32a48a76273c1896a2347bc475fb0e9282b85a3128367006840da3bfb1f9b49359428fe467e0744b1 SHA512 1575aa928b88fd5f17c1cdf9f46359b4dde407ec11800813eb1c9d4b4a4d201f6ee0a715d2e6f693bf6dda63073980a7207086d4195e51eda96dd27af3319078
diff --git a/dev-build/muon/files/muon-0.3.0-fix-summary-call.patch b/dev-build/muon/files/muon-0.3.0-fix-summary-call.patch
new file mode 100644
index 000000000000..fabc9edcdd82
--- /dev/null
+++ b/dev-build/muon/files/muon-0.3.0-fix-summary-call.patch
@@ -0,0 +1,28 @@
+From c7128efaabf82c1503e2ae30fed7c3c3dbe91f2b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@gentoo.org>
+Date: Fri, 27 Sep 2024 15:08:01 +0200
+Subject: [PATCH] build: fix summary call for bestline in src/external
+
+Fixes the following error:
+
+ src/external/meson.build:74:4: ERROR: Summary section '' already have key 'libpkgconf'
+---
+ src/external/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/external/meson.build b/src/external/meson.build
+index 421dea76..853bf91e 100644
+--- a/src/external/meson.build
++++ b/src/external/meson.build
+@@ -71,7 +71,7 @@ readline_opt = get_option('readline')
+ dep_sources += files(f'readline_@readline_opt@.c')
+ if readline_opt != 'builtin'
+ dep = dependency(readline_opt)
+- summary(name, dep.found())
++ summary(readline_opt, dep.found())
+ dep_dict += {name: dep.found()}
+ external_deps += [dep]
+ endif
+--
+2.46.1
+
diff --git a/dev-build/muon/files/muon-0.5.0-workaround-meson-15093.patch b/dev-build/muon/files/muon-0.5.0-workaround-meson-15093.patch
new file mode 100644
index 000000000000..24d85513edb2
--- /dev/null
+++ b/dev-build/muon/files/muon-0.5.0-workaround-meson-15093.patch
@@ -0,0 +1,28 @@
+Workaround for a meson bug: https://github.com/mesonbuild/meson/issues/15093
+
+diff --git i/tests/project/meson.build w/tests/project/meson.build
+index f409198d..b582d83b 100644
+--- i/tests/project/meson.build
++++ w/tests/project/meson.build
+@@ -45,7 +45,7 @@ foreach t : tests
+ endif
+
+ test_source = props.get('source_root', meson.current_source_dir()) / name
+- kwargs = props.get('kwargs', {})
++ kwargs = props.get('kwargs_', {})
+ suites = ['project', name.split('/')[0]]
+
+ # skip objc tests on non darwin platforms
+diff --git i/subprojects/meson-tests/meson.build w/subprojects/meson-tests/meson.build
+index 861e57b..eb540a2 100644
+--- i/subprojects/meson-tests/meson.build
++++ w/subprojects/meson-tests/meson.build
+@@ -252,7 +252,7 @@ foreach t : [
+ ['common/235 invalid standard overridden to valid'],
+ [
+ 'common/236 proper args splitting',
+- {'kwargs': {'env': {'CFLAGS': '-DFOO -DBAR'}}},
++ {'kwargs_': {'env': {'CFLAGS': '-DFOO -DBAR'}}},
+ ],
+ ['common/237 fstrings'],
+ ['common/238 dependency include_type inconsistency'],
diff --git a/dev-build/muon/metadata.xml b/dev-build/muon/metadata.xml
new file mode 100644
index 000000000000..244b76153784
--- /dev/null
+++ b/dev-build/muon/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>arsen@gentoo.org</email>
+ <name>Arsen Arsenović</name>
+ </maintainer>
+ <use>
+ <flag name="archive">
+ Enable extracting wraps using <pkg>app-arch/libarchive</pkg>.
+ </flag>
+ <flag name="libpkgconf">
+ Enable looking up packages via <pkg>dev-util/pkgconf</pkg>.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="sourcehut">~lattis/muon</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/muon/muon-0.2.0-r2.ebuild b/dev-build/muon/muon-0.2.0-r2.ebuild
new file mode 100644
index 000000000000..6f2e8fcbdd8d
--- /dev/null
+++ b/dev-build/muon/muon-0.2.0-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+COMMIT_HASH="${PV}"
+MESON_DOCS_TAR=meson-docs-0.64.1-19-g39c6fa4bc.tar.gz
+
+DESCRIPTION="A meson-compatible build system"
+HOMEPAGE="https://muon.build/"
+SRC_URI="
+ https://git.sr.ht/~lattis/muon/archive/${COMMIT_HASH}.tar.gz -> ${P}.tar.gz
+"
+
+# Apache-2.0 for meson-docs
+LICENSE="GPL-3 Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64"
+IUSE="+archive +curl +libpkgconf"
+
+S="${WORKDIR}/${PN}-${COMMIT_HASH}"
+
+DEPEND="
+ curl? ( net-misc/curl )
+ archive? ( app-arch/libarchive:= )
+ libpkgconf? ( dev-util/pkgconf:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ app-text/scdoc
+"
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature curl libcurl)
+ $(meson_feature archive libarchive)
+ $(meson_feature libpkgconf)
+ -Ddocs=enabled
+ -Dsamurai=disabled # patched version of samurai downloaded via wraps
+ -Dbestline=enabled # vendored bestline, an insignificant addition
+ )
+ meson_src_configure
+}
diff --git a/dev-build/muon/muon-0.3.0.ebuild b/dev-build/muon/muon-0.3.0.ebuild
new file mode 100644
index 000000000000..0d59cb98c195
--- /dev/null
+++ b/dev-build/muon/muon-0.3.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo meson
+
+MESON_TESTS_HASH=1e565931348f15f3f9b654f46ab4bf5fa009ca4f
+MESON_TESTS_DIRNAME="meson-tests-${MESON_TESTS_HASH}"
+
+DESCRIPTION="A meson-compatible build system"
+HOMEPAGE="https://muon.build/"
+SRC_URI="
+ https://muon.build/releases/v${PV}/${PN}-v${PV}.tar.gz
+ test? (
+ https://git.sr.ht/~lattis/meson-tests/archive/${MESON_TESTS_HASH}.tar.gz
+ -> ${MESON_TESTS_DIRNAME}.tar.gz
+ )
+"
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64"
+IUSE="+archive +curl +libpkgconf test"
+
+DEPEND="
+ curl? ( net-misc/curl )
+ archive? ( app-arch/libarchive:= )
+ libpkgconf? ( dev-util/pkgconf:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ app-text/scdoc
+"
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}"-0.3.0-fix-summary-call.patch
+)
+
+src_unpack() {
+ default
+
+ if use test; then
+ edo mv "${WORKDIR}/${MESON_TESTS_DIRNAME}" \
+ "${S}"/tests/project/meson-tests
+ fi
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ cat >"${T}/program-file.ini" <<-EOF
+ [binaries]
+ git = 'if this exists youre a bad person'
+ EOF
+ local emesonargs=(
+ --native-file="${T}/program-file.ini"
+ $(meson_feature curl libcurl)
+ $(meson_feature archive libarchive)
+ $(meson_feature libpkgconf)
+ -Ddocs=enabled
+ -Dtracy=disabled # not in repos
+ -Dsamurai=disabled # patched version of samurai downloaded via wraps
+ -Dreadline=bestline # small vendored dependency
+ )
+ meson_src_configure
+}
diff --git a/dev-build/muon/muon-0.4.0.ebuild b/dev-build/muon/muon-0.4.0.ebuild
new file mode 100644
index 000000000000..86384793bb58
--- /dev/null
+++ b/dev-build/muon/muon-0.4.0.ebuild
@@ -0,0 +1,79 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo meson
+
+MESON_TESTS_HASH=1e565931348f15f3f9b654f46ab4bf5fa009ca4f
+MESON_TESTS_DIRNAME="meson-tests-${MESON_TESTS_HASH}"
+
+DESCRIPTION="A meson-compatible build system"
+HOMEPAGE="https://muon.build/"
+SRC_URI="
+ https://muon.build/releases/v${PV}/${PN}-v${PV}.tar.gz
+ https://muon.build/releases/v${PV}/docs/man.tar.gz -> ${P}-man.tar.gz
+ test? (
+ https://git.sr.ht/~lattis/meson-tests/archive/${MESON_TESTS_HASH}.tar.gz
+ -> ${MESON_TESTS_DIRNAME}.tar.gz
+ )
+"
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="+archive +curl +libpkgconf test"
+
+DEPEND="
+ curl? ( net-misc/curl )
+ archive? ( app-arch/libarchive:= )
+ libpkgconf? ( dev-util/pkgconf:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ test? (
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/glib-utils
+ )
+"
+RESTRICT="!test? ( test )"
+
+src_unpack() {
+ default
+
+ if use test; then
+ edo mv "${WORKDIR}/${MESON_TESTS_DIRNAME}" \
+ "${S}"/tests/project/meson-tests
+ fi
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ cat >"${T}/program-file.ini" <<-EOF
+ [binaries]
+ git = 'if this exists youre a bad person'
+ EOF
+ local emesonargs=(
+ --native-file="${T}/program-file.ini"
+ $(meson_feature curl libcurl)
+ $(meson_feature archive libarchive)
+ $(meson_feature libpkgconf)
+ -Ddocs=disabled
+ -Dtracy=disabled # not in repos
+ -Dsamurai=disabled # patched version of samurai downloaded via wraps
+ -Dreadline=bestline # small vendored dependency
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_install
+
+ einstalldocs
+ doman "${WORKDIR}/man/muon.1"
+ doman "${WORKDIR}/man/meson.build.5"
+}
diff --git a/dev-build/muon/muon-0.5.0.ebuild b/dev-build/muon/muon-0.5.0.ebuild
new file mode 100644
index 000000000000..06dfc91c7c00
--- /dev/null
+++ b/dev-build/muon/muon-0.5.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="A meson-compatible build system"
+HOMEPAGE="https://muon.build/"
+SRC_URI="
+ https://muon.build/releases/v${PV}/${PN}-v${PV}.tar.gz
+ https://muon.build/releases/v${PV}/docs/man.tar.gz -> ${P}-man.tar.gz
+"
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="+archive +curl +libpkgconf test"
+
+DEPEND="
+ curl? ( net-misc/curl )
+ archive? ( app-arch/libarchive:= )
+ libpkgconf? ( dev-util/pkgconf:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ test? ( >=dev-util/gdbus-codegen-2.80.5-r1 )
+"
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}"-0.5.0-workaround-meson-15093.patch
+)
+
+src_configure() {
+ cat >"${T}/program-file.ini" <<-EOF
+ [binaries]
+ git = 'if this exists youre a bad person'
+ EOF
+ local emesonargs=(
+ --native-file="${T}/program-file.ini"
+ $(meson_feature curl libcurl)
+ $(meson_feature archive libarchive)
+ $(meson_feature libpkgconf)
+ -Dman-pages=disabled
+ -Dmeson-docs=disabled
+ -Dtracy=disabled # not in repos
+ -Dsamurai=disabled # patched version of samurai downloaded via wraps
+ -Dreadline=bestline # small vendored dependency
+ -Dwebsite=disabled # unneeded
+ -Dui=disabled # too many vendored depdendencies
+
+ # Pulled into the right directory above.
+ $(meson_feature test meson-tests)
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_install
+
+ einstalldocs
+ doman "${WORKDIR}/man/muon.1"
+ doman "${WORKDIR}/man/meson.build.5"
+}
diff --git a/dev-build/netsurf-buildsystem/Manifest b/dev-build/netsurf-buildsystem/Manifest
new file mode 100644
index 000000000000..04e085157cb2
--- /dev/null
+++ b/dev-build/netsurf-buildsystem/Manifest
@@ -0,0 +1 @@
+DIST buildsystem-1.10.tar.gz 39221 BLAKE2B 99843f0af4c57af2edc78a5ba1a4d0e3988fa622234235b4adc6f556e0550916187f385d2017cbeb42aa8136ee9cb5a987f6b29919b6b37b6b19ec58e62a0a5d SHA512 0b0f9114567e5c0807bbf066f1c507f386dfb43bf993e3fe487b3c77edc6cee8ea573ca1105558e48b78b2c97857791fe1fe65af8e95fa0f4e205ef701677670
diff --git a/dev-build/netsurf-buildsystem/files/gentoo-helpers-r2.sh b/dev-build/netsurf-buildsystem/files/gentoo-helpers-r2.sh
new file mode 100644
index 000000000000..403279ecc5f6
--- /dev/null
+++ b/dev-build/netsurf-buildsystem/files/gentoo-helpers-r2.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+netsurf_define_makeconf() {
+ NETSURF_MAKECONF=(
+ PREFIX="${EPREFIX}/usr"
+ NSSHARED="${EPREFIX}/usr/share/netsurf-buildsystem"
+ LIBDIR="$(get_libdir)"
+ Q=
+ CC="$(tc-getCC)"
+ LD="$(tc-getLD)"
+ HOST_CC="\$(CC)"
+ BUILD_CC="$(tc-getBUILD_CC)"
+ CXX="$(tc-getCXX)"
+ BUILD_CXX="$(tc-getBUILD_CXX)"
+ CCOPT=
+ CCNOOPT=
+ CCDBG=
+ LDDBG=
+ AR="$(tc-getAR)"
+ WARNFLAGS=
+ )
+}
diff --git a/dev-build/netsurf-buildsystem/metadata.xml b/dev-build/netsurf-buildsystem/metadata.xml
new file mode 100644
index 000000000000..f2908ee10b59
--- /dev/null
+++ b/dev-build/netsurf-buildsystem/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/netsurf-buildsystem/netsurf-buildsystem-1.10.ebuild b/dev-build/netsurf-buildsystem/netsurf-buildsystem-1.10.ebuild
new file mode 100644
index 000000000000..8a588601815c
--- /dev/null
+++ b/dev-build/netsurf-buildsystem/netsurf-buildsystem-1.10.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="buildsystem-${PV}"
+DESCRIPTION="Build system used for netsurf and its libraries"
+HOMEPAGE="https://www.netsurf-browser.org"
+SRC_URI="https://download.netsurf-browser.org/libs/releases/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ default
+ sed -e 's:/bin/which:which:' -i "makefiles/Makefile.tools" || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
+ insinto /usr/share/netsurf-buildsystem
+ newins "${FILESDIR}/gentoo-helpers-r2.sh" gentoo-helpers.sh
+}
diff --git a/dev-build/ninja/Manifest b/dev-build/ninja/Manifest
new file mode 100644
index 000000000000..1b75adec5ae0
--- /dev/null
+++ b/dev-build/ninja/Manifest
@@ -0,0 +1,3 @@
+DIST gtest-1.16.0.tar.gz 876245 BLAKE2B e5f301987fd4b73cfc8e900ac476b38444994c63bd2f334fdc58704f9e6e966cc03a2dba7ddc033624e89853a15b2592530a1180c3e56be7a28928ed370a9e27 SHA512 bec8dad2a5abbea8e9e5f0ceedd8c9dbdb8939e9f74785476b0948f21f5db5901018157e78387e106c6717326558d6642fc0e39379c62af57bf1205a9df8a18b
+DIST ninja-1.13.1.tar.gz 292098 BLAKE2B 610faa82e23ad23ec949f8a75cb4d8533c654bbfea63f2105e214d49cbf739af29d3ceebb4ead52693c7d925220817970073cd14ac8e948c5130b9ecfbac26ba SHA512 ec94d42967b962d66ab0747fcb9d095510117159de0473ec08df47a657895aa2523f920798e4608d0c6cf0e2e382512c14aec8a54ea58b6cd4b01edd3a7c8e62
+DIST ninja-1.13.2.tar.gz 292385 BLAKE2B 3418c756386a277f2a280b39f378e1bb944c4f9664254c69066de0d73a274b7faa9b688c475337b28ef24e279b5533ed990479c0cc900dcf38b0562acbdaa322 SHA512 c0b401b4db91a2eea01a474ee979b2c6f1daa97b4c8d1f856871ce5f6d567c4b26d6246bc57e2a5f914329302abcd9c00ab0d4394a25f2ad502b6b00a07903d2
diff --git a/dev-build/ninja/files/ninja-1.13.2-allow-psuedo-fifo.patch b/dev-build/ninja/files/ninja-1.13.2-allow-psuedo-fifo.patch
new file mode 100644
index 000000000000..612038a1c58b
--- /dev/null
+++ b/dev-build/ninja/files/ninja-1.13.2-allow-psuedo-fifo.patch
@@ -0,0 +1,88 @@
+https://github.com/ninja-build/ninja/pull/2692
+
+From 9f1f01d7d03b84342dda511aad0ef3e3fcf4ea7c Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 22 Nov 2025 12:49:35 +0000
+Subject: [PATCH] Don't require a FIFO to be identifiable as such
+
+The jobserver specification [0] currently suggests that the FIFO must be a
+genuine FIFO.
+
+For some work we're doing [1][2], we're emulating a FIFO using CUSE/FUSE to allow
+tracking when consumers disappear to avoid lost tokens. nixos had a similar
+idea in the past too [3].
+
+There doesn't seem to be a good reason to check that any FIFO passed by
+the user is actually identifiable as such by `stat()`, so drop the check.
+
+make already does not perform such a check, just the specification isn't
+clear about it, so we've asked them to clarify it [4].
+
+[0] https://www.gnu.org/software/make/manual/html_node/POSIX-Jobserver.html
+[1] https://codeberg.org/amonakov/guildmaster
+[2] https://gitweb.gentoo.org/proj/steve.git/
+[3] https://github.com/NixOS/nixpkgs/pull/314888
+[4] https://savannah.gnu.org/bugs/index.php?67726
+---
+ src/jobserver-posix.cc | 12 ------------
+ src/jobserver_test.cc | 10 +---------
+ 2 files changed, 1 insertion(+), 21 deletions(-)
+
+diff --git a/src/jobserver-posix.cc b/src/jobserver-posix.cc
+index 0e3c7e250c..95208c09b6 100644
+--- a/src/jobserver-posix.cc
++++ b/src/jobserver-posix.cc
+@@ -26,13 +26,6 @@
+
+ namespace {
+
+-// Return true if |fd| is a fifo or pipe descriptor.
+-bool IsFifoDescriptor(int fd) {
+- struct stat info;
+- int ret = ::fstat(fd, &info);
+- return (ret == 0) && ((info.st_mode & S_IFMT) == S_IFIFO);
+-}
+-
+ // Implementation of Jobserver::Client for Posix systems
+ class PosixJobserverClient : public Jobserver::Client {
+ public:
+@@ -89,11 +82,6 @@ class PosixJobserverClient : public Jobserver::Client {
+ std::string("Error opening fifo for reading: ") + strerror(errno);
+ return false;
+ }
+- if (!IsFifoDescriptor(read_fd_)) {
+- *error = "Not a fifo path: " + fifo_path;
+- // Let destructor close read_fd_.
+- return false;
+- }
+ write_fd_ = ::open(fifo_path.c_str(), O_WRONLY | O_NONBLOCK | O_CLOEXEC);
+ if (write_fd_ < 0) {
+ *error =
+diff --git a/src/jobserver_test.cc b/src/jobserver_test.cc
+index 850a8b13fd..9e180e6e39 100644
+--- a/src/jobserver_test.cc
++++ b/src/jobserver_test.cc
+@@ -379,21 +379,13 @@ TEST(Jobserver, PosixFifoClientWithWrongPath) {
+ ASSERT_GE(fd, 0) << "Could not create file: " << strerror(errno);
+ ::close(fd);
+
+- // Create new client instance, passing the file path for the fifo.
++ // Create new client instance, with an empty file path.
+ Jobserver::Config config;
+ config.mode = Jobserver::Config::kModePosixFifo;
+- config.path = file_path;
+-
+ std::string error;
+ std::unique_ptr<Jobserver::Client> client =
+ Jobserver::Client::Create(config, &error);
+- EXPECT_FALSE(client.get());
+- EXPECT_FALSE(error.empty());
+- EXPECT_EQ("Not a fifo path: " + file_path, error);
+
+- // Do the same with an empty file path.
+- error.clear();
+- config.path.clear();
+ client = Jobserver::Client::Create(config, &error);
+ EXPECT_FALSE(client.get());
+ EXPECT_FALSE(error.empty());
+
diff --git a/dev-build/ninja/files/ninja-cflags.patch b/dev-build/ninja/files/ninja-cflags.patch
new file mode 100644
index 000000000000..0c4ef2813bb7
--- /dev/null
+++ b/dev-build/ninja/files/ninja-cflags.patch
@@ -0,0 +1,25 @@
+From e4530769ef6a497f8f5f06159f6be049dc20e2ea Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Thu, 19 Mar 2020 11:21:29 -0400
+Subject: [PATCH] Avoid adding -O2 -DNDEBUG to cflags
+
+---
+ configure.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/configure.py b/configure.py
+index 7d8ce90..7566147 100755
+--- a/configure.py
++++ b/configure.py
+@@ -344,8 +344,6 @@ else:
+ if options.debug:
+ cflags += ['-D_GLIBCXX_DEBUG', '-D_GLIBCXX_DEBUG_PEDANTIC']
+ cflags.remove('-fno-rtti') # Needed for above pedanticness.
+- else:
+- cflags += ['-O2', '-DNDEBUG']
+ try:
+ proc = subprocess.Popen(
+ [CXX, '-fdiagnostics-color', '-c', '-x', 'c++', '/dev/null',
+--
+2.25.1
+
diff --git a/dev-build/ninja/metadata.xml b/dev-build/ninja/metadata.xml
new file mode 100644
index 000000000000..674485d1018e
--- /dev/null
+++ b/dev-build/ninja/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>base-system@gentoo.org</email>
+ <name>Gentoo Base System</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>chromium@gentoo.org</email>
+ <name>Chromium in Gentoo Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ninja-build/ninja</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/ninja/ninja-1.13.1.ebuild b/dev-build/ninja/ninja-1.13.1.ebuild
new file mode 100644
index 000000000000..0b47762c94a8
--- /dev/null
+++ b/dev-build/ninja/ninja-1.13.1.ebuild
@@ -0,0 +1,132 @@
+# Copyright 2012-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
+
+DESCRIPTION="A small build system similar to make"
+HOMEPAGE="https://ninja-build.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+GTEST_VER=1.16.0
+SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/re2c
+ doc? (
+ app-text/asciidoc
+ app-text/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz
+ )
+"
+PDEPEND="
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/ninja-cflags.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+
+ default
+}
+
+bootstrap() {
+ if tc-is-cross-compiler; then
+ local -x AR=$(tc-getBUILD_AR)
+ local -x CXX=$(tc-getBUILD_CXX)
+ local -x CFLAGS=
+ local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+ local -x LDFLAGS=${BUILD_LDFLAGS}
+ fi
+
+ local bootstrap_args=(
+ --with-python=python
+ --bootstrap
+ --verbose
+ $(usev test --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER})
+ )
+
+ edo ${EPYTHON} configure.py "${bootstrap_args[@]}"
+}
+
+src_compile() {
+ python_setup
+
+ tc-export AR CXX
+ unset CFLAGS
+ export CXXFLAGS="${CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+
+ bootstrap
+
+ if use doc; then
+ edo ./ninja -v doxygen manual
+ fi
+
+ if tc-is-cross-compiler; then
+ edo ${EPYTHON} configure.py --with-python=python
+ edo ./ninja -v ninja
+ fi
+}
+
+src_test() {
+ if ! tc-is-cross-compiler; then
+ # Bug 485772
+ ulimit -n 2048
+ edo ./ninja -v ninja_test
+ edo ./ninja_test
+ fi
+}
+
+src_install() {
+ newbin ninja{,-reference}
+
+ if use doc; then
+ docinto html
+ dodoc -r doc/doxygen/html/.
+ dodoc doc/manual.html
+ fi
+
+ newbashcomp misc/bash-completion ${PN}
+
+ insinto /usr/share/vim/vimfiles/syntax/
+ doins misc/ninja.vim
+
+ echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}"/ninja.vim || die
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${T}"/ninja.vim
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/zsh-completion _ninja
+}
+
+pkg_postinst() {
+ if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then
+ ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die
+ fi
+}
diff --git a/dev-build/ninja/ninja-1.13.2-r1.ebuild b/dev-build/ninja/ninja-1.13.2-r1.ebuild
new file mode 100644
index 000000000000..3a5c2c74a479
--- /dev/null
+++ b/dev-build/ninja/ninja-1.13.2-r1.ebuild
@@ -0,0 +1,133 @@
+# Copyright 2012-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
+
+DESCRIPTION="A small build system similar to make"
+HOMEPAGE="https://ninja-build.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+GTEST_VER=1.16.0
+SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/re2c
+ doc? (
+ app-text/asciidoc
+ app-text/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz
+ )
+"
+PDEPEND="
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/ninja-cflags.patch
+ "${FILESDIR}"/${PN}-1.13.2-allow-psuedo-fifo.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+
+ default
+}
+
+bootstrap() {
+ if tc-is-cross-compiler; then
+ local -x AR=$(tc-getBUILD_AR)
+ local -x CXX=$(tc-getBUILD_CXX)
+ local -x CFLAGS=
+ local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+ local -x LDFLAGS=${BUILD_LDFLAGS}
+ fi
+
+ local bootstrap_args=(
+ --with-python=python
+ --bootstrap
+ --verbose
+ $(usev test --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER})
+ )
+
+ edo ${EPYTHON} configure.py "${bootstrap_args[@]}"
+}
+
+src_compile() {
+ python_setup
+
+ tc-export AR CXX
+ unset CFLAGS
+ export CXXFLAGS="${CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+
+ bootstrap
+
+ if use doc; then
+ edo ./ninja -v doxygen manual
+ fi
+
+ if tc-is-cross-compiler; then
+ edo ${EPYTHON} configure.py --with-python=python
+ edo ./ninja -v ninja
+ fi
+}
+
+src_test() {
+ if ! tc-is-cross-compiler; then
+ # Bug 485772
+ ulimit -n 2048
+ edo ./ninja -v ninja_test
+ edo ./ninja_test
+ fi
+}
+
+src_install() {
+ newbin ninja{,-reference}
+
+ if use doc; then
+ docinto html
+ dodoc -r doc/doxygen/html/.
+ dodoc doc/manual.html
+ fi
+
+ newbashcomp misc/bash-completion ${PN}
+
+ insinto /usr/share/vim/vimfiles/syntax/
+ doins misc/ninja.vim
+
+ echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}"/ninja.vim || die
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${T}"/ninja.vim
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/zsh-completion _ninja
+}
+
+pkg_postinst() {
+ if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then
+ ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die
+ fi
+}
diff --git a/dev-build/ninja/ninja-1.13.2.ebuild b/dev-build/ninja/ninja-1.13.2.ebuild
new file mode 100644
index 000000000000..610a5367942a
--- /dev/null
+++ b/dev-build/ninja/ninja-1.13.2.ebuild
@@ -0,0 +1,132 @@
+# Copyright 2012-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
+
+DESCRIPTION="A small build system similar to make"
+HOMEPAGE="https://ninja-build.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+GTEST_VER=1.16.0
+SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/re2c
+ doc? (
+ app-text/asciidoc
+ app-text/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz
+ )
+"
+PDEPEND="
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/ninja-cflags.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+
+ default
+}
+
+bootstrap() {
+ if tc-is-cross-compiler; then
+ local -x AR=$(tc-getBUILD_AR)
+ local -x CXX=$(tc-getBUILD_CXX)
+ local -x CFLAGS=
+ local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+ local -x LDFLAGS=${BUILD_LDFLAGS}
+ fi
+
+ local bootstrap_args=(
+ --with-python=python
+ --bootstrap
+ --verbose
+ $(usev test --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER})
+ )
+
+ edo ${EPYTHON} configure.py "${bootstrap_args[@]}"
+}
+
+src_compile() {
+ python_setup
+
+ tc-export AR CXX
+ unset CFLAGS
+ export CXXFLAGS="${CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+
+ bootstrap
+
+ if use doc; then
+ edo ./ninja -v doxygen manual
+ fi
+
+ if tc-is-cross-compiler; then
+ edo ${EPYTHON} configure.py --with-python=python
+ edo ./ninja -v ninja
+ fi
+}
+
+src_test() {
+ if ! tc-is-cross-compiler; then
+ # Bug 485772
+ ulimit -n 2048
+ edo ./ninja -v ninja_test
+ edo ./ninja_test
+ fi
+}
+
+src_install() {
+ newbin ninja{,-reference}
+
+ if use doc; then
+ docinto html
+ dodoc -r doc/doxygen/html/.
+ dodoc doc/manual.html
+ fi
+
+ newbashcomp misc/bash-completion ${PN}
+
+ insinto /usr/share/vim/vimfiles/syntax/
+ doins misc/ninja.vim
+
+ echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}"/ninja.vim || die
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${T}"/ninja.vim
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/zsh-completion _ninja
+}
+
+pkg_postinst() {
+ if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then
+ ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die
+ fi
+}
diff --git a/dev-build/ninja/ninja-9999.ebuild b/dev-build/ninja/ninja-9999.ebuild
new file mode 100644
index 000000000000..610a5367942a
--- /dev/null
+++ b/dev-build/ninja/ninja-9999.ebuild
@@ -0,0 +1,132 @@
+# Copyright 2012-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-any-r1 toolchain-funcs
+
+DESCRIPTION="A small build system similar to make"
+HOMEPAGE="https://ninja-build.org/"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://github.com/ninja-build/ninja.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ninja-build/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+GTEST_VER=1.16.0
+SRC_URI+=" test? ( https://github.com/google/googletest/archive/refs/tags/v${GTEST_VER}.tar.gz -> gtest-${GTEST_VER}.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/re2c
+ doc? (
+ app-text/asciidoc
+ app-text/doxygen
+ dev-libs/libxslt
+ media-gfx/graphviz
+ )
+"
+PDEPEND="
+ app-alternatives/ninja
+"
+
+PATCHES=(
+ "${FILESDIR}"/ninja-cflags.patch
+)
+
+pkg_setup() {
+ :
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ fi
+
+ default
+}
+
+bootstrap() {
+ if tc-is-cross-compiler; then
+ local -x AR=$(tc-getBUILD_AR)
+ local -x CXX=$(tc-getBUILD_CXX)
+ local -x CFLAGS=
+ local -x CXXFLAGS="${BUILD_CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+ local -x LDFLAGS=${BUILD_LDFLAGS}
+ fi
+
+ local bootstrap_args=(
+ --with-python=python
+ --bootstrap
+ --verbose
+ $(usev test --gtest-source-dir="${WORKDIR}"/googletest-${GTEST_VER})
+ )
+
+ edo ${EPYTHON} configure.py "${bootstrap_args[@]}"
+}
+
+src_compile() {
+ python_setup
+
+ tc-export AR CXX
+ unset CFLAGS
+ export CXXFLAGS="${CXXFLAGS} -D_FILE_OFFSET_BITS=64"
+
+ bootstrap
+
+ if use doc; then
+ edo ./ninja -v doxygen manual
+ fi
+
+ if tc-is-cross-compiler; then
+ edo ${EPYTHON} configure.py --with-python=python
+ edo ./ninja -v ninja
+ fi
+}
+
+src_test() {
+ if ! tc-is-cross-compiler; then
+ # Bug 485772
+ ulimit -n 2048
+ edo ./ninja -v ninja_test
+ edo ./ninja_test
+ fi
+}
+
+src_install() {
+ newbin ninja{,-reference}
+
+ if use doc; then
+ docinto html
+ dodoc -r doc/doxygen/html/.
+ dodoc doc/manual.html
+ fi
+
+ newbashcomp misc/bash-completion ${PN}
+
+ insinto /usr/share/vim/vimfiles/syntax/
+ doins misc/ninja.vim
+
+ echo 'au BufNewFile,BufRead *.ninja set ft=ninja' > "${T}"/ninja.vim || die
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${T}"/ninja.vim
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/zsh-completion _ninja
+}
+
+pkg_postinst() {
+ if ! [[ -e "${EROOT}/usr/bin/ninja" ]]; then
+ ln -s ninja-reference "${EROOT}/usr/bin/ninja" || die
+ fi
+}
diff --git a/dev-build/parmasan-remake/Manifest b/dev-build/parmasan-remake/Manifest
new file mode 100644
index 000000000000..675831b6e44e
--- /dev/null
+++ b/dev-build/parmasan-remake/Manifest
@@ -0,0 +1 @@
+DIST parmasan-remake-4.3_p20240220.gh.tar.gz 1587763 BLAKE2B 901f0ca125b4f4dbfa71a175dfc42a0d4d239530563e3cbf971c7156aa51382f0e0ca5e5117c18b082f142842be16fce70b24a889c5f5ecf28e7541c06a467b9 SHA512 50deea4d526abb3de20009a54593f71995caa16e270a6b6343a965d91f285be6b6ba1a7f8ebea0c856fcee8785747a5ee7a9e4a166fe64bc99bec989a187f095
diff --git a/dev-build/parmasan-remake/metadata.xml b/dev-build/parmasan-remake/metadata.xml
new file mode 100644
index 000000000000..a39c8f8b5258
--- /dev/null
+++ b/dev-build/parmasan-remake/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ispras/parmasan-remake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/parmasan-remake/parmasan-remake-4.3_p20240220.ebuild b/dev-build/parmasan-remake/parmasan-remake-4.3_p20240220.ebuild
new file mode 100644
index 000000000000..0c8a73122f11
--- /dev/null
+++ b/dev-build/parmasan-remake/parmasan-remake-4.3_p20240220.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+REMAKE_COMMIT="ff799578de24cf4be6ec230702ff5f978432ca51"
+DESCRIPTION="Patched dev-build/remake for dev-build/parmasan, a parallel make sanitizer"
+HOMEPAGE="https://github.com/ispras/parmasan-remake"
+SRC_URI="https://github.com/ispras/parmasan-remake/archive/${REMAKE_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}"/${PN}-${REMAKE_COMMIT}
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="readline"
+
+# Test failures caused by '--parmasan-strategy' appearing which is the point
+# of the project. The tests could possibly be adapted but aren't right now.
+RESTRICT="test"
+
+RDEPEND="
+ readline? ( sys-libs/readline:= )
+"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ # Fixed in upstream gnulib but not yet propagated into make (bug #938934)
+ append-cflags -std=gnu17
+ # Fixed in upstream make/gnulib, just not yet propagated into remake (bug #863827)
+ filter-lto
+
+ use readline || export vl_cv_lib_readline=no
+
+ local myeconfargs=(
+ --without-guile
+ --disable-nls
+
+ --with-make-name=${PN}
+ # parmasan doesn't support it, turn it off
+ # https://github.com/ispras/parmasan?tab=readme-ov-file#building
+ --disable-posix-spawn
+
+ # Fails to install w/ 'make.texi:5: @include: could not find version.texi'
+ MAKEINFO=:
+ )
+
+ econf "${myeconfargs[@]}"
+
+}
+
+src_install() {
+ default
+
+ # Avoid collision with dev-build/remake, not that parmasan seems
+ # to need this file anyway.
+ mv "${ED}"/usr/include/gnuremake.h "${ED}"/usr/include/gnuparmasan-remake.h || die
+}
diff --git a/dev-build/parmasan/Manifest b/dev-build/parmasan/Manifest
new file mode 100644
index 000000000000..eb22670f1a93
--- /dev/null
+++ b/dev-build/parmasan/Manifest
@@ -0,0 +1 @@
+DIST parmasan-0_pre20250221.gh.tar.gz 48700 BLAKE2B b77b724226fd05739177c5171dadc1d5c7cc3549daf5256cf6bdd50755399b4bbbdb1a9ffe92d480353abd8542e93bf1240faa412d537a10cf2e39944fb4f7a0 SHA512 7cbe3619d990fdb5da2980b13aeb6a63d0cc66028f093e2770884bca992c8db250b961e5f1bac59dc799426d72c4d591a918228c9f8005c8308dff2f9a8238d6
diff --git a/dev-build/parmasan/metadata.xml b/dev-build/parmasan/metadata.xml
new file mode 100644
index 000000000000..216ef4cb9302
--- /dev/null
+++ b/dev-build/parmasan/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ispras/parmasan</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/parmasan/parmasan-0_pre20250221-r1.ebuild b/dev-build/parmasan/parmasan-0_pre20250221-r1.ebuild
new file mode 100644
index 000000000000..bbbaec0af94e
--- /dev/null
+++ b/dev-build/parmasan/parmasan-0_pre20250221-r1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+PARMASAN_COMMIT="a313a554e2e288764b6f83761416c90990a00cee"
+DESCRIPTION="Parallel make sanitizer"
+HOMEPAGE="https://github.com/ispras/parmasan"
+SRC_URI="https://github.com/ispras/parmasan/archive/${PARMASAN_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}"/${PN}-${PARMASAN_COMMIT}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-build/parmasan-remake"
+
+src_install() {
+ cmake_src_install
+
+ # Let's make it less likely to collide and it's then common
+ # with parmasan-remake.
+ mv "${ED}"/usr/bin/{,parmasan-}tracer || die
+}
diff --git a/dev-build/pdpmake/Manifest b/dev-build/pdpmake/Manifest
new file mode 100644
index 000000000000..d1fcbe99117b
--- /dev/null
+++ b/dev-build/pdpmake/Manifest
@@ -0,0 +1 @@
+DIST pdpmake-2.0.4.tgz 47337 BLAKE2B 776b83a31946ee1a689444a7d0439b7506cfac293c0ff9bb2b57f8c981c9895cada7ece279459996c14050b8ff602c23ca1d7489280d2542aeb57ac2cc6db3da SHA512 0e2e2fb1a39983b8c2bc54d4892ddac834319953128fcebd7162b12328e1a27d3aaad57e8512ea8e80fb200c5cacf8116d0936804d9e21f10dce411df855fda7
diff --git a/dev-build/pdpmake/metadata.xml b/dev-build/pdpmake/metadata.xml
new file mode 100644
index 000000000000..2092bcc33a7c
--- /dev/null
+++ b/dev-build/pdpmake/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>contact@hacktivis.me</email>
+ <name>Haelwenn (lanodan) Monnier</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/pdpmake/pdpmake-2.0.4.ebuild b/dev-build/pdpmake/pdpmake-2.0.4.ebuild
new file mode 100644
index 000000000000..da617d88c79d
--- /dev/null
+++ b/dev-build/pdpmake/pdpmake-2.0.4.ebuild
@@ -0,0 +1,26 @@
+# Copyright 2024 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Public domain POSIX make"
+HOMEPAGE="https://frippery.org/make"
+SRC_URI="https://frippery.org/make/${P}.tgz"
+LICENSE="Unlicense"
+SLOT="0"
+KEYWORDS="~amd64"
+
+src_test() {
+ pushd ./testsuite || die
+
+ # Call manually instead of using `make test`
+ # Seems to run in POSIX mode otherwise, leading to POSIX 2024 tests being skipped
+ ./runtest || die
+
+ popd
+}
+
+src_install() {
+ doman pdpmake.1
+ emake install DESTDIR="${ED}" PREFIX=/usr
+}
diff --git a/dev-build/pmake/Manifest b/dev-build/pmake/Manifest
new file mode 100644
index 000000000000..149a5aafe345
--- /dev/null
+++ b/dev-build/pmake/Manifest
@@ -0,0 +1,2 @@
+DIST pmake_1.111-3.3.debian.tar.gz 31648 BLAKE2B 31aca433bbeac4275d4c2af0cfd33ef81b0086b0dec107edfc1fba55b15480367ebf62abccd6e2e48f0c7ccc25c59f0b07eed7ac950a5037b73c267b066a9638 SHA512 b22a1d9e371712732f196d91ac3eb9239fa98ee8ee05754576e7a5878cab88976cb10bb6be90706df5ac738373f519468403c23f6a3ff3860a2968b3222a66ed
+DIST pmake_1.111.orig.tar.gz 264383 BLAKE2B 54dd510251441b54c9f5d7f6061109b0222191b3acdded1394b51b72b87bbd4255edd80fab46976d92c58929693b6809a9f2c4f001cab8c9cdaabfac9f3adac9 SHA512 ad48708ea014d6a38ad36303504c52992b51a1e815564f1710849d859b1fc3cd58c4a1a71f54ec902c9b69112e9cd1e1a64282ff738439cdb209a4f75c364c22
diff --git a/dev-build/pmake/files/pmake-1.111.1-ldflags.patch b/dev-build/pmake/files/pmake-1.111.1-ldflags.patch
new file mode 100644
index 000000000000..d6047d48994b
--- /dev/null
+++ b/dev-build/pmake/files/pmake-1.111.1-ldflags.patch
@@ -0,0 +1,13 @@
+Index: pmake/Makefile.boot
+===================================================================
+--- pmake.orig/Makefile.boot
++++ pmake/Makefile.boot
+@@ -36,7 +36,7 @@ LIBOBJ= lst.lib/lstAppend.o lst.lib/lstA
+
+ bmake: ${OBJ} ${LIBOBJ}
+ # @echo 'make of make and make.0 started.'
+- ${CC} ${CFLAGS} ${OBJ} ${LIBOBJ} -o bmake ${LIBS}
++ ${CC} ${LDFLAGS} ${CFLAGS} ${OBJ} ${LIBOBJ} -o bmake ${LIBS}
+ @ls -l $@
+ # nroff -h -man make.1 > make.0
+ # @echo 'make of make and make.0 completed.'
diff --git a/dev-build/pmake/files/pmake-1.98-skipdots.patch b/dev-build/pmake/files/pmake-1.98-skipdots.patch
new file mode 100644
index 000000000000..6783a9799919
--- /dev/null
+++ b/dev-build/pmake/files/pmake-1.98-skipdots.patch
@@ -0,0 +1,12 @@
+diff -urN pmake-2.0.orig/dir.c pmake-2.0/dir.c
+--- pmake-2.0.orig/dir.c 2005-02-08 09:26:28.932978574 -0500
++++ pmake-2.0/dir.c 2005-02-08 09:36:18.208704201 -0500
+@@ -1528,6 +1528,8 @@
+ Hash_InitTable (&p->files, -1);
+
+ while ((dp = readdir (d)) != (struct dirent *) NULL) {
++ if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
++ continue;
+ #if defined(sun) && defined(d_ino) /* d_ino is a sunos4 #define for d_fileno */
+ /*
+ * The sun directory library doesn't check for a 0 inode
diff --git a/dev-build/pmake/metadata.xml b/dev-build/pmake/metadata.xml
new file mode 100644
index 000000000000..85e4ed814fa2
--- /dev/null
+++ b/dev-build/pmake/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<!-- maintainer-needed -->
+</pkgmetadata>
diff --git a/dev-build/pmake/pmake-1.111.3.3-r1.ebuild b/dev-build/pmake/pmake-1.111.3.3-r1.ebuild
new file mode 100644
index 000000000000..ffe5d785b0a0
--- /dev/null
+++ b/dev-build/pmake/pmake-1.111.3.3-r1.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs linux-info
+
+MY_P="${PN}-$(ver_cut 1-2)"
+DEBIAN_SOURCE="${PN}_$(ver_cut 1-2).orig.tar.gz"
+DEBIAN_PATCH="${PN}_$(ver_rs 2 '-').debian.tar.gz"
+
+DESCRIPTION="BSD build tool to create programs in parallel. Debian's version of NetBSD's make"
+HOMEPAGE="http://www.netbsd.org/"
+SRC_URI="
+ mirror://debian/pool/main/p/pmake/${DEBIAN_SOURCE}
+ mirror://debian/pool/main/p/pmake/${DEBIAN_PATCH}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~mips ppc ppc64 ~sparc x86"
+
+S="${WORKDIR}/${PN}"
+
+PATCHES=(
+ "${WORKDIR}"/debian/patches
+
+ # pmake makes the assumption that . and .. are the first two
+ # entries in a directory, which doesn't always appear to be the
+ # case on ext3... (05 Apr 2004 agriffis)
+ "${FILESDIR}"/${PN}-1.98-skipdots.patch
+
+ # Don't ignore ldflags
+ "${FILESDIR}"/${PN}-1.111.1-ldflags.patch
+)
+
+src_compile() {
+ # The following CFLAGS are almost directly from Red Hat 8.0 and
+ # debian/rules, so assume it's okay to void out the __COPYRIGHT
+ # and __RCSID. I've checked the source and don't see the point,
+ # but whatever... (07 Feb 2004 agriffis)
+ CFLAGS="${CFLAGS} -Wall -Wno-unused -D_GNU_SOURCE \
+ -DHAVE_STRERROR -DHAVE_STRDUP -DHAVE_SETENV \
+ -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -I. \
+ -DMACHINE=\\\"gentoo\\\" -DMACHINE_ARCH=\\\"$(tc-arch-kernel)\\\" \
+ -D_PATH_DEFSHELLDIR=\\\"${EPREFIX}/bin\\\" \
+ -D_PATH_DEFSYSPATH=\\\"${EPREFIX}/usr/share/mk\\\" \
+ -DHAVE_VSNPRINTF -D_PATH_DEFSYSPATH=\\\"${EPREFIX}/usr/share/mk/${PN}\\\""
+
+ emake -f Makefile.boot \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ insinto /usr/share/mk/${PN}
+ doins -r mk/.
+
+ newbin bmake pmake
+ dobin mkdep
+
+ doman mkdep.1
+ newman make.1 pmake.1
+
+ dodoc PSD.doc/tutorial.ms
+}
diff --git a/dev-build/qtilitools/Manifest b/dev-build/qtilitools/Manifest
new file mode 100644
index 000000000000..98e23b506a71
--- /dev/null
+++ b/dev-build/qtilitools/Manifest
@@ -0,0 +1 @@
+DIST qtilitools-0.1.2.tar.gz 6964 BLAKE2B a67b90944ea9168702c71f846cd6c228f6f997d68ca18b367913ab67d67fb5ea10a588c5dbacb61dc3ff5827ebe9a4c8a8cc2e9910a1e65959f6147b67f29229 SHA512 fc4313ab29ce0da8cc62fe30626acfe2782ce05699be871c3e90c813631ca69db7245863fa7ae66a3b9d7ec4194cb15e532cdc45e83db51004172df8662ef2e2
diff --git a/dev-build/qtilitools/metadata.xml b/dev-build/qtilitools/metadata.xml
new file mode 100644
index 000000000000..88b2f8380273
--- /dev/null
+++ b/dev-build/qtilitools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">qtilities/qtilitools</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/qtilitools/qtilitools-0.1.2.ebuild b/dev-build/qtilitools/qtilitools-0.1.2.ebuild
new file mode 100644
index 000000000000..76b92d7f6fb3
--- /dev/null
+++ b/dev-build/qtilitools/qtilitools-0.1.2.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Scripts/commands used in the Qtilities organization "
+HOMEPAGE="https://qtilities.github.io/"
+SRC_URI="https://github.com/qtilities/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
diff --git a/dev-build/remake/Manifest b/dev-build/remake/Manifest
new file mode 100644
index 000000000000..9961da6f3e01
--- /dev/null
+++ b/dev-build/remake/Manifest
@@ -0,0 +1,2 @@
+DIST remake-4.3+dbg-1.6.tar.gz 2596911 BLAKE2B 4d4e90bc9b6e0c36eea3b8b2c419ea1af8e37b3dc575969fe853f683da983e0ea73a0a3668adf448dfdf4b2dffc079f197fcb66139cac382df551cf34ea4d813 SHA512 d4f0ed0afa0bebf49e0cf6ef3fcfb0915fd457477424b6ffb5f06c6d2faf8d79bbdc9119a736c24c0787b23ceaeccf072e03a654dc01d05c08c88e030ae33539
+DIST remake-4.4_pre20250217.gh.tar.gz 1586468 BLAKE2B cfdb818c517b7416018c789160426dd20775c19f95875a98c261aec8c9b2f6eaca309ebfdb9df41014b2bf95a49eb96dc52c1a10fc30a9acd18f61ba710055f0 SHA512 10387591f61bc2704be9cdf41503b6e4c97e7b19039a2e106cc6f643be11c8dc7db139c765fcdebba820047a4ad470af7c5bcd57a30d54a8fad8302acb5f148e
diff --git a/dev-build/remake/files/remake-4.3.1.1.6-configure.patch b/dev-build/remake/files/remake-4.3.1.1.6-configure.patch
new file mode 100644
index 000000000000..4aa0927a9b68
--- /dev/null
+++ b/dev-build/remake/files/remake-4.3.1.1.6-configure.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/926824
+Patch from upstream, configure regenerated
+
+commit 371ed0ac8bf3c1d25775c8b025229f490363f4ab
+Author: rocky <rocky@gnu.org>
+Date: Sun, 26 Mar 2023 14:35:39 -0400
+
+ Fix some small typos
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -434,7 +434,7 @@ AC_ARG_WITH([profiler_resolution],
+ [prof_res="1000"])
+
+ AS_IF([test "x$prof_res" = "xno"],
+- [],_
++ [],
+ [AC_DEFINE_UNQUOTED([PROFILER_MIN_RES],
+ [$prof_res],
+ [Minimum profiler resolution in nanoseconds])])
+--- a/configure
++++ b/configure
+@@ -18444,7 +18444,6 @@
+ if test "x$prof_res" = "xno"; then :
+
+ else
+- _
+
+ cat >>confdefs.h <<_ACEOF
+ #define PROFILER_MIN_RES $prof_res
diff --git a/dev-build/remake/metadata.xml b/dev-build/remake/metadata.xml
new file mode 100644
index 000000000000..49575d00c251
--- /dev/null
+++ b/dev-build/remake/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">Trepan-Debuggers/remake</remote-id>
+ <remote-id type="sourceforge">bashdb</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/remake/remake-4.3.1.1.6-r100.ebuild b/dev-build/remake/remake-4.3.1.1.6-r100.ebuild
new file mode 100644
index 000000000000..1586a112b504
--- /dev/null
+++ b/dev-build/remake/remake-4.3.1.1.6-r100.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GUILE_COMPAT=( 2-2 3-0 )
+
+inherit guile-single flag-o-matic
+
+MY_MAKE_BASE=$(ver_cut 1-2)
+MY_REMAKE_PATCH=$(ver_cut 4-)
+MY_P="${PN}-${MY_MAKE_BASE}+dbg-${MY_REMAKE_PATCH}"
+
+DESCRIPTION="Patched version of GNU Make with improved error reporting, tracing and debugging"
+HOMEPAGE="http://bashdb.sourceforge.net/remake/"
+SRC_URI="https://github.com/Trepan-Debuggers/remake/releases/download/${MY_P}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~m68k ~mips ppc ~ppc64 ~s390 ~sparc x86"
+IUSE="guile readline"
+
+REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
+
+RDEPEND="
+ guile? ( ${GUILE_DEPS} )
+ readline? ( sys-libs/readline:0= )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}"/${P}-configure.patch )
+
+pkg_setup() {
+ use guile && guile-single_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ use guile && guile_bump_sources
+}
+
+src_configure() {
+ # Fixed in upstream make/gnulib, just not yet propagated into remake (bug #863827)
+ filter-lto
+
+ use readline || export vl_cv_lib_readline=no
+ econf $(use_with guile)
+}
+
+src_install() {
+ default
+
+ use guile && guile_unstrip_ccache
+
+ # delete files GNU make owns and remake doesn't care about.
+ rm -r "${ED}"/usr/include || die
+ rm "${ED}"/usr/share/info/make.info* || die
+}
diff --git a/dev-build/remake/remake-4.4_pre20250217.ebuild b/dev-build/remake/remake-4.4_pre20250217.ebuild
new file mode 100644
index 000000000000..7ceb156992ad
--- /dev/null
+++ b/dev-build/remake/remake-4.4_pre20250217.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="${PN}-${PV:0:3}-${PV:4}"
+
+GUILE_COMPAT=( 2-2 3-0 )
+
+inherit guile-single flag-o-matic
+
+DESCRIPTION="Patched version of GNU Make with improved error reporting, tracing and debugging"
+HOMEPAGE="https://bashdb.sourceforge.net/remake/"
+
+if [[ ${PV} == *_pre* ]] ; then
+ inherit autotools
+
+ # remake for newer remake versions doesn't (yet?) have tags, so we
+ # take snapshots. Make sure to pick the right branch.
+ REMAKE_COMMIT="4ad367fd62caec8fcaa4dc1cc481a1e4d8bf6a7d"
+ SRC_URI="
+ https://github.com/Trepan-Debuggers/remake/archive/${REMAKE_COMMIT}.tar.gz -> ${P}.gh.tar.gz
+ "
+ S="${WORKDIR}"/${PN}-${REMAKE_COMMIT}
+else
+ SRC_URI="https://github.com/rocky/remake/releases/download/${MY_P}/${MY_P}.tar.gz"
+ S="${WORKDIR}"/${MY_P}
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="guile readline"
+REQUIRED_USE="guile? ( ${GUILE_REQUIRED_USE} )"
+
+# Tests fail with a link error
+RESTRICT="test"
+
+RDEPEND="
+ guile? ( ${GUILE_DEPS} )
+ readline? ( sys-libs/readline:= )
+"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ use guile && guile-single_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ [[ ${PV} == *_pre* ]] && eautoreconf
+
+ use guile && guile_bump_sources
+}
+
+src_configure() {
+ # Fixed in upstream gnulib but not yet propagated into make (bug #938934)
+ append-cflags -std=gnu17
+ # Fixed in upstream make/gnulib, just not yet propagated into remake (bug #863827)
+ filter-lto
+
+ use readline || export vl_cv_lib_readline=no
+ econf \
+ $(use_with guile) \
+ --disable-nls \
+ MAKEINFO=:
+}
+
+src_install() {
+ default
+
+ use guile && guile_unstrip_ccache
+
+ # delete files GNU make owns and remake doesn't care about.
+ # (commented out in *_pre, but may be needed on proper releases)
+ #rm -r "${ED}"/usr/include || die
+ #rm "${ED}"/usr/share/info/remake.info* || die
+}
diff --git a/dev-build/rocm-cmake/Manifest b/dev-build/rocm-cmake/Manifest
new file mode 100644
index 000000000000..e41023d2012b
--- /dev/null
+++ b/dev-build/rocm-cmake/Manifest
@@ -0,0 +1,5 @@
+DIST rocm-cmake-6.3.3.tar.gz 88828 BLAKE2B a6c1b8eed57c3bbc641e617cfa3189c98d55c9468d232fd0fa5d3f19d8930f994ddd8af27ba818776078075340d514ce83899a3799224a06a59fd0d1ba40d89f SHA512 1ffac8fc4d8ecff781e214684b0e892d9d886d839282ff59dc458194850479453e059f63959a0042e26a2a623a50b421ca4ddddd604da0404c760e7649006c31
+DIST rocm-cmake-6.4.3.tar.gz 89082 BLAKE2B 0368fa4baf32e725d734a9861fe89be050b4219fb1300f1f5a748f6927a1b8fd25e79e068d8dd31a8516d790a5cef1430992c5e9e11c9c1dd6463ed7d3a0db70 SHA512 356aa272d20deed8c0da8ed088079dd8530f23362ff22a563e91380bc543a0d68d2058ba6ec8f7355d1ad0d03578afeff474845ab1f78f23ee553cfccb1791bc
+DIST rocm-cmake-7.0.2.tar.gz 89918 BLAKE2B 6379fd89b4cefb108cde8197da4bb689bf5792f10ff2ac5a33dcf5dc9b3d25bc493261226ed1403c631e71f8e03bb14fa42d83a67b629cefe85f513c2e38ec98 SHA512 644fb7f9c09189fb7f5420d318c03ed41fb7513f35de915f35a713919af75f4cfe926e4ea20996cb5880cc3460c163fc49bb45f7669a2d36f5ff9bec4cf12565
+DIST rocm-cmake-7.1.0.tar.gz 89936 BLAKE2B 26f66878c54e5f2fe03c1c3e290df2a607c772957248fd77d420020f6dc811da9ff61e1883288e69b35a797446f9fc26bf710243f2391ba45a76b9db3b80c4e1 SHA512 aff7c67da7d705b92b9d7ad77f31e4a0ceeab19bf10313a472168de3e6e016a1b69c1e7a0ca6fae69996b0b9c74dcf47bbbf6bcf71a5492c801ca23c14aa8df0
+DIST rocm-cmake-7.2.0.tar.gz 90958 BLAKE2B 553d0912f2d140dea12e2b1480cc0a69725c7be4c4ae8336b65e3f348912fa02c2864d39eb5727a2c879b4a09fe955d606c53991dce2a20885c3cbca4a21e182 SHA512 8de003a2fe852baa3037e4a24ffd20bd46e7f938abb9309820a27ae5727c39393aea900008349f41c53a56fd34ab318c568bc08ba8cd574436e007adaff2b221
diff --git a/dev-build/rocm-cmake/files/rocm-cmake-6.1.1-license.patch b/dev-build/rocm-cmake/files/rocm-cmake-6.1.1-license.patch
new file mode 100644
index 000000000000..f8770b345f85
--- /dev/null
+++ b/dev-build/rocm-cmake/files/rocm-cmake-6.1.1-license.patch
@@ -0,0 +1,12 @@
+This is not needed. Gentoo will collect license files into
+the documentation directory in ebuild.
+--- a/share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake
++++ b/share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake
+@@ -409,7 +409,6 @@ macro(rocm_create_package)
+ if(PARSE_PTH)
+ rocm_parse_python_syspath(${LIB_DIR} ${PARSE_NAME})
+ endif()
+- rocm_setup_license(${PARSE_HEADER_ONLY})
+ if(PARSE_COMPONENTS)
+ rocm_set_comp_cpackvar(PARSE_HEADER_ONLY "${PARSE_COMPONENTS}")
+ endif()
diff --git a/dev-build/rocm-cmake/files/rocm-cmake-6.1.1-no-rocmchecks-warnings.patch b/dev-build/rocm-cmake/files/rocm-cmake-6.1.1-no-rocmchecks-warnings.patch
new file mode 100644
index 000000000000..73030e7b9b20
--- /dev/null
+++ b/dev-build/rocm-cmake/files/rocm-cmake-6.1.1-no-rocmchecks-warnings.patch
@@ -0,0 +1,25 @@
+Gentoo uses cmake -C <...>/gentoo_common_config.cmake approach to set toolchain variables.
+There is nothing wrong there, so there is no need to print huge ROCMChecks warnings.
+--- a/share/rocmcmakebuildtools/cmake/ROCMChecks.cmake
++++ b/share/rocmcmakebuildtools/cmake/ROCMChecks.cmake
+@@ -34,20 +34,6 @@ function(rocm_check_toolchain_var var access value list_file)
+ elseif("${base}" MATCHES ".*/CMakeFiles/${CMAKE_VERSION}$")
+ set(cmake_module On)
+ endif()
+- if(NOT cmake_module)
+- message( "
+-*******************************************************************************
+-*------------------------------- ${message_title} --------------------------*
+- Options and properties should be set on a cmake target where possible. The
+- variable '${var}' may be set by the cmake toolchain, either by
+- calling 'cmake -D${var}=\"${value}\"'
+- or set in a toolchain file and added with
+- 'cmake -DCMAKE_TOOLCHAIN_FILE=<toolchain-file>'. ROCMChecks now calling:")
+- message(${message_type} "'${var}' is set at ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt:<line#> shown below:")
+- message( "*-----------------------------------------------------------------------------*
+-*******************************************************************************
+-")
+- endif()
+ endif()
+ endfunction()
+ if(UNIX AND (ROCM_WARN_TOOLCHAIN_VAR OR ROCM_ERROR_TOOLCHAIN_VAR))
diff --git a/dev-build/rocm-cmake/metadata.xml b/dev-build/rocm-cmake/metadata.xml
new file mode 100644
index 000000000000..116fab6d0e4a
--- /dev/null
+++ b/dev-build/rocm-cmake/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>lockalsash@gmail.com</email>
+ <name>Sv. Lockal</name>
+ <description>Primary maintainer</description>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>xgreenlandforwyy@gmail.com</email>
+ <name>Yiyang Wu</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>negril.nx+gentoo@gmail.com</email>
+ <name>Paul Zander</name>
+ <description>General GPGPU stuff</description>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ROCm/rocm-cmake</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/rocm-cmake/rocm-cmake-6.3.3.ebuild b/dev-build/rocm-cmake/rocm-cmake-6.3.3.ebuild
new file mode 100644
index 000000000000..9044ffb3a125
--- /dev/null
+++ b/dev-build/rocm-cmake/rocm-cmake-6.3.3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ROCm/rocm-cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ROCm/rocm-cmake/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/rocm-cmake-rocm-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute CMake Modules"
+HOMEPAGE="https://github.com/ROCm/rocm-cmake"
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+RESTRICT="test"
+
+DOCS=( CHANGELOG.md LICENSE README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.1-license.patch
+ "${FILESDIR}"/${PN}-6.1.1-no-rocmchecks-warnings.patch
+)
+
+src_prepare() {
+ sed -e "/CMAKE_INSTALL_LIBDIR/s:lib:$(get_libdir):" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMInstallTargets.cmake" || die
+ cmake_src_prepare
+}
diff --git a/dev-build/rocm-cmake/rocm-cmake-6.4.3.ebuild b/dev-build/rocm-cmake/rocm-cmake-6.4.3.ebuild
new file mode 100644
index 000000000000..9044ffb3a125
--- /dev/null
+++ b/dev-build/rocm-cmake/rocm-cmake-6.4.3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ROCm/rocm-cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ROCm/rocm-cmake/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/rocm-cmake-rocm-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute CMake Modules"
+HOMEPAGE="https://github.com/ROCm/rocm-cmake"
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+RESTRICT="test"
+
+DOCS=( CHANGELOG.md LICENSE README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.1-license.patch
+ "${FILESDIR}"/${PN}-6.1.1-no-rocmchecks-warnings.patch
+)
+
+src_prepare() {
+ sed -e "/CMAKE_INSTALL_LIBDIR/s:lib:$(get_libdir):" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMInstallTargets.cmake" || die
+ cmake_src_prepare
+}
diff --git a/dev-build/rocm-cmake/rocm-cmake-7.0.2.ebuild b/dev-build/rocm-cmake/rocm-cmake-7.0.2.ebuild
new file mode 100644
index 000000000000..db7ac9cb1907
--- /dev/null
+++ b/dev-build/rocm-cmake/rocm-cmake-7.0.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ROCm/rocm-cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ROCm/rocm-cmake/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/rocm-cmake-rocm-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute CMake Modules"
+HOMEPAGE="https://github.com/ROCm/rocm-cmake"
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+RESTRICT="test"
+
+DOCS=( CHANGELOG.md LICENSE README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.1-license.patch
+ "${FILESDIR}"/${PN}-6.1.1-no-rocmchecks-warnings.patch
+)
+
+src_prepare() {
+ sed -e "/CMAKE_INSTALL_LIBDIR/s:lib:$(get_libdir):" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMInstallTargets.cmake" || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -Wno-dev
+ )
+ cmake_src_configure
+}
diff --git a/dev-build/rocm-cmake/rocm-cmake-7.1.0.ebuild b/dev-build/rocm-cmake/rocm-cmake-7.1.0.ebuild
new file mode 100644
index 000000000000..db7ac9cb1907
--- /dev/null
+++ b/dev-build/rocm-cmake/rocm-cmake-7.1.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ROCm/rocm-cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ROCm/rocm-cmake/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/rocm-cmake-rocm-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute CMake Modules"
+HOMEPAGE="https://github.com/ROCm/rocm-cmake"
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+RESTRICT="test"
+
+DOCS=( CHANGELOG.md LICENSE README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.1-license.patch
+ "${FILESDIR}"/${PN}-6.1.1-no-rocmchecks-warnings.patch
+)
+
+src_prepare() {
+ sed -e "/CMAKE_INSTALL_LIBDIR/s:lib:$(get_libdir):" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMInstallTargets.cmake" || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -Wno-dev
+ )
+ cmake_src_configure
+}
diff --git a/dev-build/rocm-cmake/rocm-cmake-7.2.0.ebuild b/dev-build/rocm-cmake/rocm-cmake-7.2.0.ebuild
new file mode 100644
index 000000000000..eb3aabba1255
--- /dev/null
+++ b/dev-build/rocm-cmake/rocm-cmake-7.2.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ROCm/rocm-cmake.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ROCm/rocm-cmake/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/rocm-cmake-rocm-${PV}"
+fi
+
+DESCRIPTION="Radeon Open Compute CMake Modules"
+HOMEPAGE="https://github.com/ROCm/rocm-cmake"
+LICENSE="MIT"
+SLOT="0/$(ver_cut 1-2)"
+RESTRICT="test"
+
+DOCS=( CHANGELOG.md LICENSE README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.1-license.patch
+ "${FILESDIR}"/${PN}-6.1.1-no-rocmchecks-warnings.patch
+)
+
+src_prepare() {
+ sed -e "/CMAKE_INSTALL_LIBDIR/s:lib:$(get_libdir):" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMCreatePackage.cmake" \
+ -i "share/rocmcmakebuildtools/cmake/ROCMInstallTargets.cmake" || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -Wno-dev
+ )
+ cmake_src_configure
+}
diff --git a/dev-build/samurai/Manifest b/dev-build/samurai/Manifest
new file mode 100644
index 000000000000..6d0eaf52319a
--- /dev/null
+++ b/dev-build/samurai/Manifest
@@ -0,0 +1,2 @@
+DIST samurai-1.2.tar.gz 32709 BLAKE2B 86ed79f7d6ab492216cf3bf0e19ff8be8c1ca37e5c99de84b457875fa710d720624bd0de53105ed0b1d382c417aeb7397929cb9a35a8d1b36a11e053bf8d7ff5 SHA512 bbe6a582c34b04f1df53b76c1647aa3e03c4698ebf7591a203935f11ffa05971bbcb86dc1a8c06aeb904cdc741abb08918122810fc47216fed0a6d9f87fd1225
+DIST samurai-1.3.tar.gz 33562 BLAKE2B 82d1c27fce5c21769e241ae15e5143e064847c65d6681fdd5d3f2df0ec9d36e8d71645e5cf44370ca5d2a56d6037a4452389d04583f227aaaeae48c2bdcfff54 SHA512 f155745fdb90cca07d8e7178e60337173fee3a8f1dadc3773a80fe189f5864229afb409d946fb2a418820d7e6ef8332cd9e3e3627abd170146802277f30b4b4e
diff --git a/dev-build/samurai/files/samurai-1.2-null_pointer_fix.patch b/dev-build/samurai/files/samurai-1.2-null_pointer_fix.patch
new file mode 100644
index 000000000000..76ffc8cd350f
--- /dev/null
+++ b/dev-build/samurai/files/samurai-1.2-null_pointer_fix.patch
@@ -0,0 +1,60 @@
+CVE-2021-30218 + CVE-2021-30219
+Bug: https://bugs.gentoo.org/786951
+
+Upstream-Commit: https://github.com/michaelforney/samurai/commit/e84b6d99c85043fa1ba54851ee500540ec206918
+From e84b6d99c85043fa1ba54851ee500540ec206918 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Fri, 2 Apr 2021 17:27:48 -0700
+Subject: [PATCH] util: Check for NULL string in writefile
+
+This check was there previously, but was removed in f549b757 with
+the addition of a check during parse that every rule has rspfile
+if and only if it has rspfile_content. However, this fails to
+consider the possibility of those variables coming from the edge
+or global environment. So, re-add the check.
+
+Fixes #67 (https://github.com/michaelforney/samurai/issues/67).
+---
+ util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util.c b/util.c
+index ea5c3ce..2a59881 100644
+--- a/util.c
++++ b/util.c
+@@ -258,7 +258,7 @@ writefile(const char *name, struct string *s)
+ return -1;
+ }
+ ret = 0;
+- if (fwrite(s->s, 1, s->n, f) != s->n || fflush(f) != 0) {
++ if (s && (fwrite(s->s, 1, s->n, f) != s->n || fflush(f) != 0)) {
+ warn("write %s:", name);
+ ret = -1;
+ }
+Upstream-Commit: https://github.com/michaelforney/samurai/commit/d2af3bc375e2a77139c3a28d6128c60cd8d08655
+From d2af3bc375e2a77139c3a28d6128c60cd8d08655 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 4 Apr 2021 03:50:09 -0700
+Subject: [PATCH] parse: Check for non-empty command/rspfile/rspfile_content
+
+This matches ninja behavior and prevents the possibility of a rule
+with an empty (NULL) command string.
+
+Fixes #68 (https://github.com/michaelforney/samurai/issues/68).
+---
+ parse.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/parse.c b/parse.c
+index f79a5ee..b4b98a1 100644
+--- a/parse.c
++++ b/parse.c
+@@ -42,6 +42,8 @@ parserule(struct scanner *s, struct environment *env)
+ var = scanname(s);
+ parselet(s, &val);
+ ruleaddvar(r, var, val);
++ if (!val)
++ continue;
+ if (strcmp(var, "command") == 0)
+ hascommand = true;
+ else if (strcmp(var, "rspfile") == 0)
diff --git a/dev-build/samurai/files/samurai-1.2-phony_targets_fix.patch b/dev-build/samurai/files/samurai-1.2-phony_targets_fix.patch
new file mode 100644
index 000000000000..8794850a7285
--- /dev/null
+++ b/dev-build/samurai/files/samurai-1.2-phony_targets_fix.patch
@@ -0,0 +1,30 @@
+https://github.com/michaelforney/samurai/issues/66
+https://github.com/michaelforney/samurai/issues/81
+https://github.com/michaelforney/samurai/commit/fb61f22c7e690715d309c41812412c4f432ef53a
+
+From fb61f22c7e690715d309c41812412c4f432ef53a Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Wed, 31 Mar 2021 14:04:29 -0700
+Subject: [PATCH] build: Don't try to print phony edges during dry-run
+
+This causes a segfault since phony edges have no command. It also
+messes up the nstarted/nfinished counts.
+
+Fixes #66.
+---
+ build.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build.c b/build.c
+index 368e5f9..1cb736f 100644
+--- a/build.c
++++ b/build.c
+@@ -540,7 +540,7 @@ build(void)
+ while (work && numjobs < buildopts.maxjobs && numfail < buildopts.maxfail) {
+ e = work;
+ work = work->worknext;
+- if (buildopts.dryrun) {
++ if (e->rule != &phonyrule && buildopts.dryrun) {
+ ++nstarted;
+ printstatus(e, edgevar(e, "command", true));
+ ++nfinished;
diff --git a/dev-build/samurai/metadata.xml b/dev-build/samurai/metadata.xml
new file mode 100644
index 000000000000..915803b8c390
--- /dev/null
+++ b/dev-build/samurai/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>orbea@riseup.net</email>
+ <name>orbea</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">michaelforney/samurai</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/samurai/samurai-1.2-r3.ebuild b/dev-build/samurai/samurai-1.2-r3.ebuild
new file mode 100644
index 000000000000..63fb7ce74dca
--- /dev/null
+++ b/dev-build/samurai/samurai-1.2-r3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="ninja-compatible build tool written in C"
+HOMEPAGE="https://github.com/michaelforney/samurai"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/michaelforney/samurai.git"
+else
+ SRC_URI="https://github.com/michaelforney/samurai/releases/download/${PV}/${P}.tar.gz"
+ KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+fi
+
+LICENSE="ISC Apache-2.0 MIT"
+SLOT="0"
+
+PATCHES=(
+ "${FILESDIR}/${P}-null_pointer_fix.patch" # 786951
+ "${FILESDIR}/${P}-phony_targets_fix.patch"
+)
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install
+ dodoc README.md
+}
diff --git a/dev-build/samurai/samurai-1.3.ebuild b/dev-build/samurai/samurai-1.3.ebuild
new file mode 100644
index 000000000000..edb10f90a55c
--- /dev/null
+++ b/dev-build/samurai/samurai-1.3.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="ninja-compatible build tool written in C"
+HOMEPAGE="https://github.com/michaelforney/samurai"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/michaelforney/samurai.git"
+else
+ SRC_URI="https://github.com/michaelforney/samurai/releases/download/${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="ISC Apache-2.0 MIT"
+SLOT="0"
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install
+ dodoc README.md
+}
diff --git a/dev-build/samurai/samurai-9999.ebuild b/dev-build/samurai/samurai-9999.ebuild
new file mode 100644
index 000000000000..ddd44b78fab1
--- /dev/null
+++ b/dev-build/samurai/samurai-9999.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="ninja-compatible build tool written in C"
+HOMEPAGE="https://github.com/michaelforney/samurai"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/michaelforney/samurai.git"
+else
+ SRC_URI="https://github.com/michaelforney/samurai/releases/download/${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+fi
+
+LICENSE="ISC Apache-2.0 MIT"
+SLOT="0"
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install
+ dodoc README.md
+}
diff --git a/dev-build/scons/Manifest b/dev-build/scons/Manifest
new file mode 100644
index 000000000000..811c2ef9c80d
--- /dev/null
+++ b/dev-build/scons/Manifest
@@ -0,0 +1,3 @@
+DIST SCons-4.10.1.tar.gz 3258403 BLAKE2B c3954478e3a6795c04975a50afbca269add686284c50461e8ca71dc338c1b160f4a766ca82557a1cbfc95bd9f668648bcd637f1aa30e0410ca1b41b2e2292ae7 SHA512 4c64070714ba16c8e231ecfac9c1df6fad252b5509e0d260cc05f28865e3068f58c169d73c1559373b7a2d517bcb94a07593ab00781afd9a6a55893455471bc4
+DIST scons-4.10.1-user.pdf 3128752 BLAKE2B 91050cc519f86e909f49dd84a744133d253376c3d9f649779c9257127c9e1ab05ab699bbac74828bd54bd6f047e94baa0b880b86d501c5b7b5ac1b8d8457b5bf SHA512 1592a9d33d4cee5970d0cb0872882583bbe1d213305c2f9f7dee5acd3d703a0ec999b580785391cae498cc47fc07118da2efa956b1b77b84d994a36104efdcc3
+DIST scons-4.10.1.gh.tar.gz 5981560 BLAKE2B c2fa46729300f63debcfe8e982e347ed7d486e9d2d0889470be4553702d3123ae813487f934735bb980732df83894bec5f18f731e83bf75a4bd0c2230c60ea03 SHA512 e47000c4fe770c84c1c97ed4e7feee9305669cfbbd1aac06e158d15b08383dbdcbd5397ff62519478204c07d064337fe8101d81e17e0c8d5d611e453ed6d4da2
diff --git a/dev-build/scons/files/scons-4.1.0-env-passthrough.patch b/dev-build/scons/files/scons-4.1.0-env-passthrough.patch
new file mode 100644
index 000000000000..06ec2f217611
--- /dev/null
+++ b/dev-build/scons/files/scons-4.1.0-env-passthrough.patch
@@ -0,0 +1,41 @@
+From fb07dc4b4fa178b0c424c5f400b18669abd8960e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 9 May 2018 17:04:49 +0200
+Subject: [PATCH] posix: Support GENTOO_SCONS_ENV_PASSTHROUGH=1
+
+Support GENTOO_SCONS_ENV_PASSTHROUGH=1 variable to override the default
+of wiping the environment and resetting PATH to default, and instead
+pass all variables through.
+---
+ SCons/Platform/posix.py | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/SCons/Platform/posix.py b/SCons/Platform/posix.py
+index 4c9f8f9ba..fbc81196d 100644
+--- a/src/SCons/Platform/posix.py
++++ b/src/SCons/Platform/posix.py
+@@ -82,9 +82,18 @@ def generate(env):
+ pspawn = piped_env_spawn
+ # Note that this means that 'escape' is no longer used
+
+- if 'ENV' not in env:
+- env['ENV'] = {}
+- env['ENV']['PATH'] = '/usr/local/bin:/opt/bin:/bin:/usr/bin:/snap/bin'
++ # Force pass-through of environment variables in Gentoo builds
++ import os
++ if os.environ.get('GENTOO_SCONS_ENV_PASSTHROUGH', False):
++ new_env = os.environ.copy()
++ if 'ENV' in env:
++ new_env.update(env['ENV'])
++ env['ENV'] = new_env
++ else:
++ if 'ENV' not in env:
++ env['ENV'] = {}
++ env['ENV']['PATH'] = '/usr/local/bin:/opt/bin:/bin:/usr/bin:/snap/bin'
++
+ env['OBJPREFIX'] = ''
+ env['OBJSUFFIX'] = '.o'
+ env['SHOBJPREFIX'] = '$OBJPREFIX'
+--
+2.30.0
+
diff --git a/dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch b/dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch
new file mode 100644
index 000000000000..a075fec91d22
--- /dev/null
+++ b/dev-build/scons/files/scons-4.2.0-respect-cc-etc.patch
@@ -0,0 +1,96 @@
+From b6ba1f2b1feda529eca20fb8980f7c6c52397df6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 10 May 2018 08:01:08 +0200
+Subject: [PATCH] posix: Also force common toolchain vars for Gentoo
+
+---
+ SCons/Platform/posix.py | 21 +++++++++++++++++++++
+ SCons/Tool/cc.py | 3 ++-
+ SCons/Tool/cxx.py | 3 ++-
+ SCons/Tool/link.py | 3 ++-
+ 4 files changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/src/SCons/Platform/posix.py b/src/SCons/Platform/posix.py
+index 37cd2377f..1246781de 100644
+--- a/src/SCons/Platform/posix.py
++++ b/src/SCons/Platform/posix.py
+@@ -33,6 +33,7 @@ import subprocess
+ from SCons.Platform import TempFileMunge
+ from SCons.Platform.virtualenv import ImportVirtualenv
+ from SCons.Platform.virtualenv import ignore_virtualenv, enable_virtualenv
++import SCons.Util
+
+ exitvalmap = {
+ 2 : 127,
+@@ -86,6 +87,26 @@ def generate(env):
+ if 'ENV' in env:
+ new_env.update(env['ENV'])
+ env['ENV'] = new_env
++
++ # Furthermore, force common compiler/linker variables as well
++ envvar_mapping = {
++ 'AR': 'AR',
++ 'AS': 'AS',
++ 'ASFLAGS': 'ASFLAGS',
++ 'CC': 'CC',
++ 'CXX': 'CXX',
++ 'CFLAGS': 'CFLAGS',
++ 'CXXFLAGS': 'CXXFLAGS',
++ 'CPPFLAGS': 'CPPFLAGS',
++ 'LDFLAGS': 'LINKFLAGS',
++ }
++
++ for envvar, toolvar in envvar_mapping.items():
++ if toolvar not in env and envvar in env['ENV']:
++ val = env['ENV'][envvar]
++ if toolvar.endswith('FLAGS'):
++ val = SCons.Util.CLVar(val)
++ env[toolvar] = val
+ else:
+ if 'ENV' not in env:
+ env['ENV'] = {}
+diff --git a/src/SCons/Tool/cc.py b/src/SCons/Tool/cc.py
+index 590ec5fd3..5f9229a02 100644
+--- a/src/SCons/Tool/cc.py
++++ b/src/SCons/Tool/cc.py
+@@ -80,7 +80,8 @@ def generate(env):
+
+ if 'CC' not in env:
+ env['CC'] = env.Detect(compilers) or compilers[0]
+- env['CFLAGS'] = SCons.Util.CLVar('')
++ if 'CFLAGS' not in env:
++ env['CFLAGS'] = SCons.Util.CLVar('')
+ env['CCCOM'] = '$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
+ env['SHCC'] = '$CC'
+ env['SHCFLAGS'] = SCons.Util.CLVar('$CFLAGS')
+diff --git a/src/SCons/Tool/cxx.py b/src/SCons/Tool/cxx.py
+index 128cdc4f6..1f852b64c 100644
+--- a/src/SCons/Tool/cxx.py
++++ b/src/SCons/Tool/cxx.py
+@@ -69,7 +69,8 @@ def generate(env):
+
+ if 'CXX' not in env:
+ env['CXX'] = env.Detect(compilers) or compilers[0]
+- env['CXXFLAGS'] = SCons.Util.CLVar('')
++ if 'CXXFLAGS' not in env:
++ env['CXXFLAGS'] = SCons.Util.CLVar('')
+ env['CXXCOM'] = '$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'
+ env['SHCXX'] = '$CXX'
+ env['SHCXXFLAGS'] = SCons.Util.CLVar('$CXXFLAGS')
+diff --git a/src/SCons/Tool/link.py b/src/SCons/Tool/link.py
+index 24d17a31f..4ea9917e8 100644
+--- a/src/SCons/Tool/link.py
++++ b/src/SCons/Tool/link.py
+@@ -49,7 +49,8 @@ def generate(env):
+
+ env['SMARTLINK'] = smart_link
+ env['LINK'] = "$SMARTLINK"
+- env['LINKFLAGS'] = SCons.Util.CLVar('')
++ if 'LINKFLAGS' not in env:
++ env['LINKFLAGS'] = SCons.Util.CLVar('')
+
+ # __RPATH is only set to something ($_RPATH typically) on platforms that support it.
+ env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
+--
+2.32.0
+
diff --git a/dev-build/scons/metadata.xml b/dev-build/scons/metadata.xml
new file mode 100644
index 000000000000..aacbf74f7fb9
--- /dev/null
+++ b/dev-build/scons/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+ <longdescription lang="en">
+ SCons is a make replacement providing a range of enhanced
+ features such as automated dependency generation and built in
+ compilation cache support. SCons rule sets are Python scripts so
+ as well as the features it provides itself SCons allows you to use
+ the full power of Python to control compilation.
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SCons/scons</remote-id>
+ <remote-id type="pypi">SCons</remote-id>
+ <remote-id type="sourceforge">scons</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/scons/scons-4.10.1.ebuild b/dev-build/scons/scons-4.10.1.ebuild
new file mode 100644
index 000000000000..6935fb6f1307
--- /dev/null
+++ b/dev-build/scons/scons-4.10.1.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 multiprocessing
+
+MY_P="SCons-${PV}"
+DESCRIPTION="Extensible Python-based build utility"
+HOMEPAGE="
+ https://www.scons.org/
+ https://github.com/SCons/scons/
+ https://pypi.org/project/SCons/
+"
+SRC_URI="
+ https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${MY_P}.tar.gz
+ doc? (
+ https://www.scons.org/doc/${PV}/PDF/${PN}-user.pdf
+ -> ${P}-user.pdf
+ )
+ test? (
+ https://github.com/SCons/scons/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ )
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ )
+"
+
+src_unpack() {
+ # use the git directory structure, then unpack the pypi tarball
+ # on top of it to make our life easier
+ if use test; then
+ unpack "${P}.gh.tar.gz"
+ else
+ mkdir -p "${P}" || die
+ fi
+
+ tar -C "${P}" --strip-components=1 --no-same-owner \
+ -xzf "${DISTDIR}/${MY_P}.tar.gz" || die
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # TODO: rebase the patches <4.5.1-r2 is gone
+ # support env passthrough for Gentoo ebuilds
+ eapply -p2 "${FILESDIR}"/scons-4.1.0-env-passthrough.patch
+ # respect CC, CXX, C*FLAGS, LDFLAGS by default
+ eapply -p2 "${FILESDIR}"/scons-4.2.0-respect-cc-etc.patch
+
+ if use test; then
+ local remove_tests=(
+ # TODO: does not respect PATH?
+ test/Clang
+ # broken
+ test/DVIPDF/DVIPDFFLAGS.py
+ test/Java/swig-dependencies.py
+ test/Java/multi-step.py
+ test/TEX/newglossary.py
+ test/TEX/variant_dir_newglossary.py
+ test/Configure/option--config.py
+ test/D/HSTeoh/sconstest-linkingProblem_gdc.py
+ # broken by commas in date, sic!
+ test/option/option-v.py
+ test/Interactive/version.py
+ # warnings from new binutils?
+ test/AS/as-live.py
+ test/AS/nasm.py
+ # hangs
+ test/KeyboardInterrupt.py
+ # requires f77 executable
+ test/Fortran/F77PATH.py
+ test/Fortran/FORTRANPATH.py
+ test/Fortran/gfortran.py
+ # TODO, these seem to be caused by our patches
+ test/Repository/include.py
+ test/Repository/multi-dir.py
+ test/Repository/variants.py
+ test/virtualenv/activated/option/ignore-virtualenv.py
+ # broken by CC being set? *facepalm*
+ test/LINK/applelink.py
+ test/ToolSurrogate.py
+ # no clue but why would we care about rpm?
+ test/packaging/option--package-type.py
+ test/packaging/rpm/cleanup.py
+ test/packaging/rpm/internationalization.py
+ test/packaging/rpm/multipackage.py
+ test/packaging/rpm/package.py
+ test/packaging/rpm/tagging.py
+ # apparently fragile to... limits?
+ # https://bugs.gentoo.org/908347#c7
+ test/builderrors.py
+ # unhappy about jre-25
+ test/Java/nested-classes.py
+ # flaky
+ test/leaky-handles.py
+ )
+
+ if ! use amd64 && ! use x86 ; then
+ # These tests are currently broken on arm and other non-amd64/x86 platforms
+ # Work seems to be ongoing in e.g. https://github.com/SCons/scons/pull/4022 to
+ # better plumb up the MSVC tests for alternative arches.
+ # Try again after 4.2.0.
+ # See also: https://pairlist4.pair.net/pipermail/scons-users/2020-November/008452.html
+ # bug #757534
+ remove_tests+=(
+ test/MSVS/vs-7.0-scc-files.py
+ test/MSVS/vs-7.0-scc-legacy-files.py
+ test/MSVS/vs-7.1-scc-files.py
+ test/MSVS/vs-7.1-scc-legacy-files.py
+ test/MSVS/vs-scc-files.py
+ test/MSVS/vs-scc-legacy-files.py
+ )
+ fi
+
+ rm -r "${remove_tests[@]}" || die
+ fi
+}
+
+python_test() {
+ local -x COLUMNS=80
+ # set variable from escons() of scons-util.eclass to make env-passthrough patch work within test env
+ local -x GENTOO_SCONS_ENV_PASSTHROUGH=1
+ # unset some env variables to pass appropriate tests
+ unset AR AS ASFLAGS CC CXX CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
+ cd "${WORKDIR}/${P}" || die
+ "${EPYTHON}" runtest.py -a --passed \
+ -j "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")"
+
+ # runtest.py script returns "0" if all tests are passed
+ # and returns "2" if there are any tests with "no result"
+ # (i.e. in case if some tools are not installed or it's Windows specific tests)
+ [[ ${?} == [02] ]] || die "Tests fail with ${EPYTHON}"
+
+ # sigh
+ rm "${BUILD_DIR}/install/usr/bin/.sconsign" || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman *.1
+ use doc && dodoc "${DISTDIR}/${P}"-user.pdf
+}
diff --git a/dev-build/slibtool/Manifest b/dev-build/slibtool/Manifest
new file mode 100644
index 000000000000..dd9821ffb45c
--- /dev/null
+++ b/dev-build/slibtool/Manifest
@@ -0,0 +1,12 @@
+DIST slibtool-0.6.1.tar.xz 129584 BLAKE2B 99c90f580a45d450c9c213519c761dbdca1dcac916cc85782e71f7214584c1232f8d183f8ebb8afe91e39b5244a9bf7386eb93082044297c07320dbca3ec5f11 SHA512 71c36243c3a8c3dc63304b07a64ba8c948b8ec463783a63426c74ea6a51702ddd9a52c2397948300db4ddaa0851ef8c7cca3cef6b4d185d2cbc47a45212bcfe8
+DIST slibtool-0.6.1.tar.xz.sig 833 BLAKE2B 135a34d295b2b8ceef3e41edfa0901b99026a503c025859d1364108bb8e12fe378d24bc77ae5c85f831c69c69cf005f1ea880e27d53538fc7cd5dd13641ba526 SHA512 82318cdfd15c8f103255b086921902ff3fcf01e4273fffeddf0515292644f0b677d4580be9810ffce85447b7a069a4c936e4bc42b346bd56f2bd755b38355ea6
+DIST slibtool-0.7.0.tar.xz 129996 BLAKE2B b3f0c6cd188b4824b63cf8a0636f7ae514f09a342601d46571527a81f0681d9d657aac702a0d773ed532011227de513d9cd26e312551784203dad913b46d1f04 SHA512 5c5ca11ab5a60df5adb33037c0b2835c965ebc0c3589ac5f4c2e61aebd8aa51d7609125263d3e665c14a916dedad4340816e4c3d70d55090dbb9941d1c2d8522
+DIST slibtool-0.7.0.tar.xz.sig 833 BLAKE2B 2985b8acb6871fb90d62759ba91fe0e5f7211af0203bb3580a23f015381779242ba3a490e0fb8004500bfcdb0f7669cf2be4df83451ed1b01d168a68f42a3f1e SHA512 91431527b7378d9792f9e4173fad3f8fbfcec25d0f81fac631f80bc8ff51524ce27d2599ca48a8a0f807fb9beedc9462511a36599ab0fbbb649431ebe4e42192
+DIST slibtool-0.7.1.tar.xz 131700 BLAKE2B 9483f82feb0eb77346d88945fea3eee29f268ff78d4f1dd7e58f35c10d5f63fc8020fdec2c9bb25f3dbefe390aeecce0227dbaa386942694c4cd0f30971e8262 SHA512 78669f288306a2bf39933b0618d0ec76ec7cbfaf32ac3a06018b6036131f0ccba4af049e1292d2fa7aff946409fbdd76ff8a6e19091431e410c8554e52855afe
+DIST slibtool-0.7.1.tar.xz.sig 833 BLAKE2B 94ccbdab005e35438897e982983fd9f7dfa4f93fea936a04b638445e9aa1a5f2c2a1d5b141289f4ca2d9406fccdfeb79a65196bb75721d35fd5a1cf77fb713c4 SHA512 72ace9fa7fe3b528fa588825a9f605f4e55e87c05e2eda724d36022c8cfc54d16bf5ea1904f1fa0b13141d05a15ce4b68ef192c86b89fbb6e2a2fab7e1e47407
+DIST slibtool-0.7.2.tar.xz 132012 BLAKE2B 242fc4a8ca64ce05d750985c0fe5f81271cd636879752d73f1802002effee4e6c47268dfbd8eae216ef42c45a3845ff489f00ea2883fb0841bc2ad89511cd86b SHA512 d5338b663bddf7337eefd4959394b13986cddb4ee3ab594d3909200775191133998621bb2651fb0977dadfd404f850924ff99c08b418835d97805b7bf4a6329b
+DIST slibtool-0.7.2.tar.xz.sig 833 BLAKE2B 06a7b1dbd2ece6357e9cf018a5e89990bfb6b408eb359f7c50cd81431a7bb3678a4b9262bfef8b45c470d8b9292da35d3528ea02551f0617afa088839a919097 SHA512 f133affd899ccdda35d7e42fb01b00bd1177609e95dcaa893a28d2b2faf4f9fd8e594ede36634bb0246129e39b0fcd39fb121ce4d6b8f725178a8e658fa88b6d
+DIST slibtool-0.7.3.tar.xz 134000 BLAKE2B 6d869724f45ec18f07a31280d837ee426bd1c65d8d7691a6980babc5f55a10bd6d43bf6788bac028f82ca6a0350555c6c4fac3c76f785ab2b7a94bb4e5565c5d SHA512 9fa0faeeaceb19bf2cbe4a3d3add63839b9ce2c4698abb44df55d426109f64477f89465f07b5e8a762817afe582e139cc9ead6b8f031d13b606857b30dad0ba8
+DIST slibtool-0.7.3.tar.xz.sig 833 BLAKE2B f81bce68779eae47e51f8b8dd03ee59e6f1edd743f309d978b18193b00f4afd8911bffd94b389dc3b12702920a086370f13f776864aeabb9157e497b6e86578e SHA512 03bfe84a27765f7dac8a2fd4d426e54474af451ad9dd108b51ca997ff9ea89b842990ecd615d4bb8cb2c39ac5c54a24fdf5e1906d1340af22df4658b33169330
+DIST slibtool-0.7.4.tar.xz 135580 BLAKE2B 4f8cfb0d757470170fb6636679e8e591fed554cd621c393e8a538cd5230361f48e6f6e5fadc2d550ab371bf0b23c04dbab360c8199d1b2e8d01ee557796f0d23 SHA512 f7a37877455d0a7ca2b3e672d2d4e7b11581da0b29fd2923ad6ca79941b018f181a80ea2700751cbb1de531900ee9da2460203a1fad420047d42a76fb596df06
+DIST slibtool-0.7.4.tar.xz.sig 833 BLAKE2B a6ca4042d2c4d328301210728e66797c0e30fd0e1154aff8695da44479d64b7ebbd0f1a1480cda163c9f07f416397401e85b20f04e9db6e6d3789f4476e7d38e SHA512 a1536f64f22b037556f2144b9e9597482cf55a3ef369f12840c39ac04956a537c3d12f5d095192d25f3230b770124e2c5da2a5dcd0339bf53b0f71bb2a96747f
diff --git a/dev-build/slibtool/metadata.xml b/dev-build/slibtool/metadata.xml
new file mode 100644
index 000000000000..26b0002e202f
--- /dev/null
+++ b/dev-build/slibtool/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>felix.janda@posteo.de</email>
+ <name>Felix Janda</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/slibtool/slibtool-0.6.1.ebuild b/dev-build/slibtool/slibtool-0.6.1.ebuild
new file mode 100644
index 000000000000..60e33ad51cc8
--- /dev/null
+++ b/dev-build/slibtool/slibtool-0.6.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20240315 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/slibtool/slibtool-0.7.0.ebuild b/dev-build/slibtool/slibtool-0.7.0.ebuild
new file mode 100644
index 000000000000..42799c3e9614
--- /dev/null
+++ b/dev-build/slibtool/slibtool-0.7.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20250517 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/slibtool/slibtool-0.7.1.ebuild b/dev-build/slibtool/slibtool-0.7.1.ebuild
new file mode 100644
index 000000000000..42799c3e9614
--- /dev/null
+++ b/dev-build/slibtool/slibtool-0.7.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20250517 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/slibtool/slibtool-0.7.2.ebuild b/dev-build/slibtool/slibtool-0.7.2.ebuild
new file mode 100644
index 000000000000..42799c3e9614
--- /dev/null
+++ b/dev-build/slibtool/slibtool-0.7.2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20250517 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/slibtool/slibtool-0.7.3.ebuild b/dev-build/slibtool/slibtool-0.7.3.ebuild
new file mode 100644
index 000000000000..1c193092ffcb
--- /dev/null
+++ b/dev-build/slibtool/slibtool-0.7.3.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20250517 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/slibtool/slibtool-0.7.4.ebuild b/dev-build/slibtool/slibtool-0.7.4.ebuild
new file mode 100644
index 000000000000..1c193092ffcb
--- /dev/null
+++ b/dev-build/slibtool/slibtool-0.7.4.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20250517 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/slibtool/slibtool-9999.ebuild b/dev-build/slibtool/slibtool-9999.ebuild
new file mode 100644
index 000000000000..42799c3e9614
--- /dev/null
+++ b/dev-build/slibtool/slibtool-9999.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# git.foss21.org is the official repository per upstream
+DESCRIPTION="A strong libtool implementation, written in C"
+HOMEPAGE="https://git.foss21.org/slibtool"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.foss21.org/slibtool"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/midipix.asc
+ inherit verify-sig
+
+ SRC_URI="https://dl.foss21.org/slibtool/${P}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://dl.foss21.org/slibtool/${P}.tar.xz.sig )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+BDEPEND="sys-devel/m4"
+
+if [[ ${PV} != *9999 ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-midipix-20250517 )"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+src_configure() {
+ # Custom configure script (not generated by autoconf)
+ ./configure \
+ --compiler="$(tc-getCC)" \
+ --host=${CHOST} \
+ --prefix="${EPREFIX}"/usr \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ || die
+}
diff --git a/dev-build/steve/Manifest b/dev-build/steve/Manifest
new file mode 100644
index 000000000000..feb526d78aad
--- /dev/null
+++ b/dev-build/steve/Manifest
@@ -0,0 +1 @@
+DIST steve-1.5.0.tar.xz 22732 BLAKE2B 2506d9de0fd5415f40ddb85de71acfd5dbdc89672ac86e3c30c7c3c61117d610e469cdc50e2a8bfaafb35443f9aec316846d71336721490827a207a2dd97419b SHA512 bdde7ca302a09eea430ffa34f3b68ee40ae014ca7798f81672dda492a8e2caf289394c61560c882a2cc0409a25864d0d28997462bfe01521ed0777f585a76721
diff --git a/dev-build/steve/metadata.xml b/dev-build/steve/metadata.xml
new file mode 100644
index 000000000000..076793e3f54b
--- /dev/null
+++ b/dev-build/steve/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mgorny@gentoo.org</email>
+ <name>Michał Górny</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/steve/steve-1.5.0.ebuild b/dev-build/steve/steve-1.5.0.ebuild
new file mode 100644
index 000000000000..80ca0e04f4e6
--- /dev/null
+++ b/dev-build/steve/steve-1.5.0.ebuild
@@ -0,0 +1,109 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit linux-info meson python-any-r1 systemd udev
+
+DESCRIPTION="A load-balancing jobserver for Gentoo"
+HOMEPAGE="https://gitweb.gentoo.org/proj/steve.git/"
+SRC_URI="https://dev.gentoo.org/~mgorny/dist/${P}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="debug test"
+RESTRICT="test"
+PROPERTIES="test? ( test_privileged )"
+
+DEPEND="
+ dev-libs/libevent:=
+ sys-fs/fuse:3=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/jobserver
+ acct-user/steve
+ >=sys-fs/fuse-common-3.10.4-r2
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+python_check_deps() {
+ python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/pytest-timeout[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ local CONFIG_CHECK="~CUSE"
+ check_extra_config
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_use !debug b_ndebug)
+ $(meson_use test)
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ addwrite /dev/cuse
+ addwrite /dev/steve.test
+ if [[ ! -w /dev/cuse ]]; then
+ die "Testing steve requires /dev/cuse"
+ fi
+
+ local -x STEVE=${BUILD_DIR}/steve
+ local EPYTEST_PLUGINS=( pytest-timeout )
+ epytest
+}
+
+src_install() {
+ meson_src_install
+
+ # TODO: move these to meson
+ systemd_dounit data/steve.service
+ newconfd data/steve.confd steve
+ newinitd data/steve.initd steve
+ insinto /etc/sandbox.d
+ newins data/sandbox.conf 90steve
+ udev_newrules data/steve.udev 90-steve.rules
+}
+
+pkg_postinst() {
+ udev_reload
+
+ if ! grep -q -s -R -- '--jobserver-auth=fifo:/dev/steve' "${EROOT}"/etc/portage/make.conf
+ then
+ elog "In order to use the system-wide steve instance, enable the service:"
+ elog
+ elog " systemctl enable --now steve"
+ elog
+ elog "Then add to your make.conf:"
+ elog
+ elog ' MAKEFLAGS="--jobserver-auth=fifo:/dev/steve"'
+ elog ' NINJAOPTS=""'
+ elog
+ elog "You can use -l in NINJAOPTS but *do not* use -j, as it disables"
+ elog "jobserver support."
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/dev-build/steve/steve-9999.ebuild b/dev-build/steve/steve-9999.ebuild
new file mode 100644
index 000000000000..2c489813f46c
--- /dev/null
+++ b/dev-build/steve/steve-9999.ebuild
@@ -0,0 +1,108 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit git-r3 linux-info meson python-any-r1 systemd udev
+
+DESCRIPTION="A load-balancing jobserver for Gentoo"
+HOMEPAGE="https://gitweb.gentoo.org/proj/steve.git/"
+EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/steve.git"
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="debug test"
+RESTRICT="test"
+PROPERTIES="test? ( test_privileged )"
+
+DEPEND="
+ dev-libs/libevent:=
+ sys-fs/fuse:3=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/jobserver
+ acct-user/steve
+ >=sys-fs/fuse-common-3.10.4-r2
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+python_check_deps() {
+ python_has_version "dev-python/pytest[${PYTHON_USEDEP}]" &&
+ python_has_version "dev-python/pytest-timeout[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ local CONFIG_CHECK="~CUSE"
+ check_extra_config
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_use !debug b_ndebug)
+ $(meson_use test)
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ addwrite /dev/cuse
+ addwrite /dev/steve.test
+ if [[ ! -w /dev/cuse ]]; then
+ die "Testing steve requires /dev/cuse"
+ fi
+
+ local -x STEVE=${BUILD_DIR}/steve
+ local EPYTEST_PLUGINS=( pytest-timeout )
+ epytest
+}
+
+src_install() {
+ meson_src_install
+
+ # TODO: move these to meson
+ systemd_dounit data/steve.service
+ newconfd data/steve.confd steve
+ newinitd data/steve.initd steve
+ insinto /etc/sandbox.d
+ newins data/sandbox.conf 90steve
+ udev_newrules data/steve.udev 90-steve.rules
+}
+
+pkg_postinst() {
+ udev_reload
+
+ if ! grep -q -s -R -- '--jobserver-auth=fifo:/dev/steve' "${EROOT}"/etc/portage/make.conf
+ then
+ elog "In order to use the system-wide steve instance, enable the service:"
+ elog
+ elog " systemctl enable --now steve"
+ elog
+ elog "Then add to your make.conf:"
+ elog
+ elog ' MAKEFLAGS="--jobserver-auth=fifo:/dev/steve"'
+ elog ' NINJAOPTS=""'
+ elog
+ elog "You can use -l in NINJAOPTS but *do not* use -j, as it disables"
+ elog "jobserver support."
+ fi
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/dev-build/tinycmmc/Manifest b/dev-build/tinycmmc/Manifest
new file mode 100644
index 000000000000..4b84d407313d
--- /dev/null
+++ b/dev-build/tinycmmc/Manifest
@@ -0,0 +1 @@
+DIST tinycmmc-0.1.0.tar.gz 10559 BLAKE2B 9708c6c95c5746d000bb02b46bc40b788b8b18d55d3bd2e97e88789f4b084e145db39e038b4d619c75273b8fd23713f6906a8618fa248664a468c60e1073000c SHA512 cf1e8108be2f5c8a23e08756b6f50a2493a688ffa8bd7a06a59330cdd74046035705f18d5f53a00d6779dafb76a2c529b4ca9be7e53ff2660d718e8f68544769
diff --git a/dev-build/tinycmmc/files/tinycmmc-0.1.0-cmake4.patch b/dev-build/tinycmmc/files/tinycmmc-0.1.0-cmake4.patch
new file mode 100644
index 000000000000..a9cc457273f7
--- /dev/null
+++ b/dev-build/tinycmmc/files/tinycmmc-0.1.0-cmake4.patch
@@ -0,0 +1,48 @@
+https://github.com/Grumbel/tinycmmc/pull/2
+https://github.com/Grumbel/tinycmmc/commit/8238a6c1b90536e211fddf356dc3af26ea7c2f2c
+
+From 01e81cdeb672d57f050594517a3ec4de4298615c Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Wed, 26 Mar 2025 07:45:32 -0700
+Subject: [PATCH] cmake: require 3.10 as the minimum version
+
+With cmake 4 it now errors unless the minimum version is at least 3.5
+and it will warn if the version is not at least 3.10.
+
+Gentoo-Issue: https://bugs.gentoo.org/952072
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+https://github.com/Grumbel/tinycmmc/pull/3
+https://github.com/Grumbel/tinycmmc/commit/2ad2d2ab7dce012bb1c9d1dbb8bdb5abd9232ecd
+
+From cffa9348fd2afd9874c733beb9c93a88720085cc Mon Sep 17 00:00:00 2001
+From: orbea <orbea@riseup.net>
+Date: Fri, 24 Oct 2025 09:10:31 -0700
+Subject: [PATCH] build: set the cmake_minimum_required as a range
+
+From the cmake documentation:
+
+ This uses the <min>...<max> syntax to enable the NEW behaviors of
+ policies introduced in CMake 4.1 and earlier while only requiring
+ a minimum version of CMake 3.10.
+
+Resource: https://cmake.org/cmake/help/latest/manual/cmake-policies.7.html#updating-projects
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2344961..12af9d2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -16,7 +16,7 @@
+ # misrepresented as being the original software.
+ # 3. This notice may not be removed or altered from any source distribution.
+
+-cmake_minimum_required(VERSION 3.0)
++cmake_minimum_required(VERSION 3.10...4.1)
+ project(tinycmmc VERSION 0.1.0)
+
+ include(GNUInstallDirs)
diff --git a/dev-build/tinycmmc/metadata.xml b/dev-build/tinycmmc/metadata.xml
new file mode 100644
index 000000000000..a85353b5969e
--- /dev/null
+++ b/dev-build/tinycmmc/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM 'https://www.gentoo.org/dtd/metadata.dtd'>
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>orbea@riseup.net</email>
+ <name>orbea</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">Grumbel/tinycmmc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/dev-build/tinycmmc/tinycmmc-0.1.0.ebuild b/dev-build/tinycmmc/tinycmmc-0.1.0.ebuild
new file mode 100644
index 000000000000..416794357f05
--- /dev/null
+++ b/dev-build/tinycmmc/tinycmmc-0.1.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Grumbel/${PN}.git"
+else
+ SRC_URI="https://github.com/Grumbel/${PN}/archive/v${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~riscv"
+fi
+
+DESCRIPTION="Tiny CMake Module Collections"
+HOMEPAGE="https://github.com/Grumbel/tinycmmc"
+
+LICENSE="GPL-3+"
+SLOT="0"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.1.0-cmake4.patch )
diff --git a/dev-build/tinycmmc/tinycmmc-9999.ebuild b/dev-build/tinycmmc/tinycmmc-9999.ebuild
new file mode 100644
index 000000000000..52908346886d
--- /dev/null
+++ b/dev-build/tinycmmc/tinycmmc-9999.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Grumbel/${PN}.git"
+else
+ SRC_URI="https://github.com/Grumbel/${PN}/archive/v${PV}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~riscv"
+fi
+
+DESCRIPTION="Tiny CMake Module Collections"
+HOMEPAGE="https://github.com/Grumbel/tinycmmc"
+
+LICENSE="ZLIB"
+SLOT="0"
diff --git a/dev-build/xfce4-dev-tools/Manifest b/dev-build/xfce4-dev-tools/Manifest
new file mode 100644
index 000000000000..fe543f430756
--- /dev/null
+++ b/dev-build/xfce4-dev-tools/Manifest
@@ -0,0 +1,2 @@
+DIST xfce4-dev-tools-4.20.0.tar.bz2 380344 BLAKE2B 9444857000bd35c0118656abda28ad155632edba441316093a0075ce06f6146bc028e023d11f2f6380f6c89a66e9ae2b2470f4c7b0ded3eab32d25532d0b528a SHA512 2ee8d0e4512c326ad404310f15081a8c6eec026634bcc2e76873cecc5b4356c3425d883c07f05e5a76a500c135d62809e6323f318ac6fc33d16023a9c5bd5441
+DIST xfce4-dev-tools-4.21.0.tar.bz2 402865 BLAKE2B 333ad5e9ddfd4d9ad4a60e26dc2b24966c8ed1117dd5ee8a642a1672046c179743229eeaa3a89dfe6b4016e58463b53d9b99b12a7de75a3e711fed8d5eb67ec4 SHA512 0416ad6afde2babe8e4694cc76742feaf575ae45b3cf3439139ec99cedee8f0132ceb1336f0c34af7d3fb36a047d74423a171089735eb91a11473497a2142103
diff --git a/dev-build/xfce4-dev-tools/metadata.xml b/dev-build/xfce4-dev-tools/metadata.xml
new file mode 100644
index 000000000000..2b8ef06e9a39
--- /dev/null
+++ b/dev-build/xfce4-dev-tools/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>xfce@gentoo.org</email>
+ <name>XFCE Team</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-build/xfce4-dev-tools/xfce4-dev-tools-4.20.0.ebuild b/dev-build/xfce4-dev-tools/xfce4-dev-tools-4.20.0.ebuild
new file mode 100644
index 000000000000..fea4a05cdcfc
--- /dev/null
+++ b/dev-build/xfce4-dev-tools/xfce4-dev-tools-4.20.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A set of scripts and m4/autoconf macros that ease build system maintenance"
+HOMEPAGE="
+ https://docs.xfce.org/xfce/xfce4-dev-tools/start
+ https://gitlab.xfce.org/xfce/xfce4-dev-tools/
+"
+SRC_URI="https://archive.xfce.org/src/xfce/${PN}/${PV%.*}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~x64-solaris"
+
+DEPEND="
+ >=dev-libs/glib-2.72.0
+"
+RDEPEND="
+ ${DEPEND}
+ dev-build/meson
+"
+# libxslt for xsltproc
+BDEPEND="
+ dev-build/meson
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
diff --git a/dev-build/xfce4-dev-tools/xfce4-dev-tools-4.21.0.ebuild b/dev-build/xfce4-dev-tools/xfce4-dev-tools-4.21.0.ebuild
new file mode 100644
index 000000000000..9e47cb07761d
--- /dev/null
+++ b/dev-build/xfce4-dev-tools/xfce4-dev-tools-4.21.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A set of scripts and m4/autoconf macros that ease build system maintenance"
+HOMEPAGE="
+ https://docs.xfce.org/xfce/xfce4-dev-tools/start
+ https://gitlab.xfce.org/xfce/xfce4-dev-tools/
+"
+SRC_URI="https://archive.xfce.org/src/xfce/${PN}/${PV%.*}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-solaris"
+
+DEPEND="
+ >=dev-libs/glib-2.72.0
+"
+RDEPEND="
+ ${DEPEND}
+ dev-build/meson
+"
+# libxslt for xsltproc
+BDEPEND="
+ dev-build/meson
+ dev-libs/libxslt
+ virtual/pkgconfig
+"
diff --git a/dev-build/xmake/Manifest b/dev-build/xmake/Manifest
new file mode 100644
index 000000000000..816a7d628a67
--- /dev/null
+++ b/dev-build/xmake/Manifest
@@ -0,0 +1 @@
+DIST xmake-v3.0.9.tar.gz 3290252 BLAKE2B 3bcc1b51d3c3cb5ef8b5e79eba7ca7b57000ee1dff54a1cffcc256c24e3c3c8a849ac7d354b80d5bc11f7dd603f93882d9d6a74dc2e63eeaf7692cd38cda9603 SHA512 c94481c9a922571b8f533830ddc10441c584d41000e49bdabaf12a7e573bc9c9c0335a4a6189c6ea7d4522e755502a2d3fe3308731eb12bf3fe10b72659997ec
diff --git a/dev-build/xmake/metadata.xml b/dev-build/xmake/metadata.xml
new file mode 100644
index 000000000000..8fb6884938dd
--- /dev/null
+++ b/dev-build/xmake/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <upstream>
+ <bugs-to>https://github.com/xmake-io/xmake/issues</bugs-to>
+ <remote-id type="github">xmake-io/xmake</remote-id>
+ </upstream>
+ <longdescription lang="en">
+ xmake is a lightweight cross-platform build utility based on Lua. It uses
+ xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt,
+ the configuration syntax is more concise and intuitive. It is very friendly
+ to novices and can quickly get started in a short time. Let users focus more
+ on actual project development.
+ It can compile the project directly like Make/Ninja, or generate project
+ files like CMake/Meson, and it also has a built-in package management system
+ to help users solve the integrated use of C/C++ dependent libraries.
+ </longdescription>
+</pkgmetadata>
diff --git a/dev-build/xmake/xmake-3.0.9.ebuild b/dev-build/xmake/xmake-3.0.9.ebuild
new file mode 100644
index 000000000000..d165a44324d4
--- /dev/null
+++ b/dev-build/xmake/xmake-3.0.9.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit optfeature shell-completion
+
+DESCRIPTION="A cross-platform build utility based on Lua"
+HOMEPAGE="https://xmake.io"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/xmake-io/${PN}.git"
+else
+ SRC_URI="https://github.com/xmake-io/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz"
+ KEYWORDS="~amd64 ~riscv ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+# tarball doesn't provide tests
+RESTRICT="test"
+
+DEPEND="
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+DOCS=(
+ CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md
+ NOTICE.md README.md README_zh.md
+)
+
+src_prepare() {
+ default
+
+ # Don't strip binaries
+ sed -i 's/"-s"/""/' configure || die
+}
+
+src_configure() {
+ econf --prefix="${EPREFIX}"/usr \
+ --plat=linux
+ # --plat=linux is necessary, which enables correct directory:
+ # build/linux/ARCH other than build/ARCH/ARCH
+}
+
+src_install() {
+ default
+
+ doman scripts/man/*
+
+ newbashcomp xmake/scripts/completions/register-completions.bash xmake
+ bashcomp_alias xmake xrepo
+ newzshcomp xmake/scripts/completions/register-completions.zsh _xmake
+ newfishcomp xmake/scripts/completions/register-completions.fish xmake.fish
+}
+
+pkg_postinst() {
+ optfeature "cached compilation for your xmake projects" dev-util/ccache
+}
diff --git a/dev-build/xmake/xmake-9999.ebuild b/dev-build/xmake/xmake-9999.ebuild
new file mode 100644
index 000000000000..d165a44324d4
--- /dev/null
+++ b/dev-build/xmake/xmake-9999.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit optfeature shell-completion
+
+DESCRIPTION="A cross-platform build utility based on Lua"
+HOMEPAGE="https://xmake.io"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/xmake-io/${PN}.git"
+else
+ SRC_URI="https://github.com/xmake-io/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz"
+ KEYWORDS="~amd64 ~riscv ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+# tarball doesn't provide tests
+RESTRICT="test"
+
+DEPEND="
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+RDEPEND="
+ ${DEPEND}
+ ${BDEPEND}
+"
+
+DOCS=(
+ CHANGELOG.md CODE_OF_CONDUCT.md CONTRIBUTING.md
+ NOTICE.md README.md README_zh.md
+)
+
+src_prepare() {
+ default
+
+ # Don't strip binaries
+ sed -i 's/"-s"/""/' configure || die
+}
+
+src_configure() {
+ econf --prefix="${EPREFIX}"/usr \
+ --plat=linux
+ # --plat=linux is necessary, which enables correct directory:
+ # build/linux/ARCH other than build/ARCH/ARCH
+}
+
+src_install() {
+ default
+
+ doman scripts/man/*
+
+ newbashcomp xmake/scripts/completions/register-completions.bash xmake
+ bashcomp_alias xmake xrepo
+ newzshcomp xmake/scripts/completions/register-completions.zsh _xmake
+ newfishcomp xmake/scripts/completions/register-completions.fish xmake.fish
+}
+
+pkg_postinst() {
+ optfeature "cached compilation for your xmake projects" dev-util/ccache
+}