summaryrefslogtreecommitdiff
path: root/sys-libs
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/Manifest.gzbin13735 -> 13757 bytes
-rw-r--r--sys-libs/binutils-libs/Manifest7
-rw-r--r--sys-libs/binutils-libs/binutils-libs-2.44.ebuild (renamed from sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild)102
-rw-r--r--sys-libs/binutils-libs/binutils-libs-9999.ebuild13
-rw-r--r--sys-libs/cracklib/Manifest2
-rw-r--r--sys-libs/cracklib/cracklib-2.10.3.ebuild4
-rw-r--r--sys-libs/efivar/Manifest2
-rw-r--r--sys-libs/efivar/efivar-39-r1.ebuild1
-rw-r--r--sys-libs/freeipmi/Manifest2
-rw-r--r--sys-libs/freeipmi/freeipmi-1.6.15.ebuild97
-rw-r--r--sys-libs/glibc/Manifest9
-rw-r--r--sys-libs/glibc/glibc-2.40-r8.ebuild (renamed from sys-libs/glibc/glibc-2.40-r7.ebuild)14
-rw-r--r--sys-libs/glibc/glibc-2.41.ebuild1759
-rw-r--r--sys-libs/glibc/glibc-9999.ebuild33
-rw-r--r--sys-libs/kpmcore/Manifest4
-rw-r--r--sys-libs/kpmcore/kpmcore-24.12.2.ebuild (renamed from sys-libs/kpmcore/kpmcore-24.12.1.ebuild)0
-rw-r--r--sys-libs/ldb/Manifest2
-rw-r--r--sys-libs/ldb/ldb-2.9.2.ebuild173
-rw-r--r--sys-libs/libcap-ng/Manifest4
-rw-r--r--sys-libs/libcap-ng/files/libcap-ng-0.8.4-slibtool.patch32
-rw-r--r--sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch31
-rw-r--r--sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild103
-rw-r--r--sys-libs/libnbd/Manifest4
-rw-r--r--sys-libs/libnbd/libnbd-1.18.1-r1.ebuild4
-rw-r--r--sys-libs/libnbd/metadata.xml1
-rw-r--r--sys-libs/libnvidia-container/Manifest9
-rw-r--r--sys-libs/libnvidia-container/files/libnvidia-container-1.17.4-go-1.24.patch48
-rw-r--r--sys-libs/libnvidia-container/libnvidia-container-1.17.2.ebuild4
-rw-r--r--sys-libs/libnvidia-container/libnvidia-container-1.17.3.ebuild131
-rw-r--r--sys-libs/libnvidia-container/libnvidia-container-1.17.4.ebuild132
-rw-r--r--sys-libs/libnvidia-container/libnvidia-container-9999.ebuild16
-rw-r--r--sys-libs/libseccomp/Manifest7
-rw-r--r--sys-libs/libseccomp/libseccomp-2.5.5.ebuild111
-rw-r--r--sys-libs/libseccomp/libseccomp-2.6.0.ebuild (renamed from sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild)40
-rw-r--r--sys-libs/libseccomp/libseccomp-9999.ebuild8
-rw-r--r--sys-libs/libselinux/Manifest2
-rw-r--r--sys-libs/libselinux/libselinux-3.8.ebuild164
-rw-r--r--sys-libs/libsemanage/Manifest9
-rw-r--r--sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch418
-rw-r--r--sys-libs/libsemanage/libsemanage-3.7.ebuild10
-rw-r--r--sys-libs/libsemanage/libsemanage-3.8.ebuild (renamed from sys-libs/libsemanage/libsemanage-3.6.ebuild)21
-rw-r--r--sys-libs/libsemanage/libsemanage-9999.ebuild4
-rw-r--r--sys-libs/libsepol/Manifest2
-rw-r--r--sys-libs/libsepol/libsepol-3.8.ebuild55
-rw-r--r--sys-libs/liburing/Manifest2
-rw-r--r--sys-libs/liburing/liburing-2.9.ebuild86
-rw-r--r--sys-libs/libxcrypt/Manifest7
-rw-r--r--sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild22
-rw-r--r--sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild (renamed from sys-libs/libxcrypt/libxcrypt-4.4.36-r2.ebuild)217
-rw-r--r--sys-libs/libxcrypt/metadata.xml2
-rw-r--r--sys-libs/lwp/Manifest2
-rw-r--r--sys-libs/lwp/files/lwp-2.8-bool.patch14
-rw-r--r--sys-libs/lwp/lwp-2.8-r1.ebuild22
-rw-r--r--sys-libs/minizip-ng/Manifest2
-rw-r--r--sys-libs/minizip-ng/minizip-ng-4.0.8.ebuild2
-rw-r--r--sys-libs/musl/Manifest10
-rw-r--r--sys-libs/musl/files/musl-iconv-out-of-bound-fix.patch76
-rw-r--r--sys-libs/musl/musl-1.2.3-r10.ebuild (renamed from sys-libs/musl/musl-1.2.3-r9.ebuild)3
-rw-r--r--sys-libs/musl/musl-1.2.4-r1.ebuild206
-rw-r--r--sys-libs/musl/musl-1.2.4-r4.ebuild (renamed from sys-libs/musl/musl-1.2.4-r3.ebuild)3
-rw-r--r--sys-libs/musl/musl-1.2.5-r3.ebuild (renamed from sys-libs/musl/musl-1.2.5-r2.ebuild)3
-rw-r--r--sys-libs/musl/musl-9999.ebuild2
-rw-r--r--sys-libs/ncurses/Manifest23
-rw-r--r--sys-libs/ncurses/ncurses-6.5_p20250118.ebuild473
-rw-r--r--sys-libs/ncurses/ncurses-6.5_p20250125.ebuild474
-rw-r--r--sys-libs/nss_wrapper/Manifest2
-rw-r--r--sys-libs/nss_wrapper/nss_wrapper-1.1.15.ebuild4
-rw-r--r--sys-libs/pam/Manifest6
-rw-r--r--sys-libs/pam/files/pam-1.5.3-termios.patch34
-rw-r--r--sys-libs/pam/pam-1.5.3-r1.ebuild153
-rw-r--r--sys-libs/pam/pam-1.7.0_p20241230-r3.ebuild35
-rw-r--r--sys-libs/pkgcraft/Manifest4
-rw-r--r--sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild8
-rw-r--r--sys-libs/pkgcraft/pkgcraft-9999.ebuild6
-rw-r--r--sys-libs/readline/Manifest2
-rw-r--r--sys-libs/readline/readline-8.3_beta_p20250128.ebuild265
-rw-r--r--sys-libs/timezone-data/Manifest5
-rw-r--r--sys-libs/timezone-data/timezone-data-2025a-r1.ebuild (renamed from sys-libs/timezone-data/timezone-data-2023d.ebuild)69
-rw-r--r--sys-libs/uid_wrapper/Manifest2
-rw-r--r--sys-libs/uid_wrapper/uid_wrapper-1.3.0.ebuild4
-rw-r--r--sys-libs/zlib-ng/Manifest4
-rw-r--r--sys-libs/zlib-ng/zlib-ng-2.2.3.ebuild2
-rw-r--r--sys-libs/zlib-ng/zlib-ng-2.2.4.ebuild86
-rw-r--r--sys-libs/zlib/Manifest7
-rw-r--r--sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch88
-rw-r--r--sys-libs/zlib/files/zlib-1.2.13-CVE-2023-45853.patch40
-rw-r--r--sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch59
-rw-r--r--sys-libs/zlib/files/zlib-1.2.13-use-LDFLAGS-in-configure.patch72
-rw-r--r--sys-libs/zlib/zlib-1.3-r4.ebuild173
89 files changed, 4860 insertions, 1515 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz
index c63f6d263e6f..850de96cf9b9 100644
--- a/sys-libs/Manifest.gz
+++ b/sys-libs/Manifest.gz
Binary files differ
diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest
index 2972d087cfd8..33dc17d9056a 100644
--- a/sys-libs/binutils-libs/Manifest
+++ b/sys-libs/binutils-libs/Manifest
@@ -17,9 +17,10 @@ DIST binutils-2.41-patches-5.tar.xz 95176 BLAKE2B bbc94b3c7d70653a1056afe57a120b
DIST binutils-2.41.tar.xz 26765692 BLAKE2B 3bccec2b52f7e82a727121bf2a2e51a6249ba63dcd74c665fd834e858645c912ffd8245d848435288b938852830b482905606f55c40df4061215fd75c52ffc75 SHA512 5df45d0bd6ddabdce4f35878c041e46a92deef01e7dea5facc97fd65cc06b59abc6fba0eb454b68e571c7e14038dc823fe7f2263843e6e627b7444eaf0fe9374
DIST binutils-2.42-patches-6.tar.xz 50664 BLAKE2B f13b65a761cfba80caf2e4740c6383b40305558365b950fba22aca95a104e799e8bd476082f36fb9288de4f224b09f317792c1444e549c40d15a4b64cdf61989 SHA512 1203eca0a9e622411eac377509de8fd0db3ffcb282ac38ab7a0369b166cc1091197daad85b51b145b34a4832f1a1a4d573c8254e8d67aeb22f35adb1ab3ece1f
DIST binutils-2.42.tar.xz 27567160 BLAKE2B e67a5c028fba70e70088fd11b38ec8c9c4ed5a019badefda25abeb6275997b16f0891e7ff3424c4b82bbfae92e8992669826920dd53df61cd48469d8f7cd5bd1 SHA512 155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6
-DIST binutils-2.43-patches-2.tar.xz 35184 BLAKE2B fa35c9f182c7ae0fed28614f47618d1563a58f223fd1805f348b618c1fbf039a444e44d88f46d040b6971e481e0da882e5c4492fd167d17bf39579d87a446434 SHA512 a7e167d3f6a2c08f19af4685d90a6160a1a52f1a87f5660fb6d80ec664033829c0eacad0d77b1306620e50ff89d1f9f63a7c2b064ad9775400f0cb0eba3159a4
DIST binutils-2.43-patches-3.tar.xz 62692 BLAKE2B a189a01a6a99c4fdff124cf90ecc18f874812c17fc735376c855469c487b6a71489ad5c2f86c518d2e029cc83d65757144ff9abddbe7ec3fc06e22f9501c62f4 SHA512 99a30e18fdfd7bdce85bb903f8d61837cfbb639ead8a680ff1a85ad1d615b658e696bdf196c4a002d029f952d34aa441e09e861b22f5400c65f07cce5934cd8f
DIST binutils-2.43.tar.xz 28175768 BLAKE2B 28b0a04a28273b76eab2d00e00160be889f155f77f5a9d8759ef8dce505c97e97641bf7ec70b92b731b520570a02b06e04e8215b068fcb1bb2573e9ef24732d9 SHA512 93e063163e54d6a6ee2bd48dc754270bf757a3635b49a702ed6b310e929e94063958512d191e66beaf44275f7ea60865dbde138b624626739679fcc306b133bb
+DIST binutils-2.44-patches-1.tar.xz 9156 BLAKE2B c72a7d0ffdb852f8de9c18e187b5768085b3a070744a4fadef508ab0e865d3a3967ec12a0ee7a325b6b689f39e5243aacd9d3f73ceb723d53592ec6ca640161b SHA512 053de98536e92837d0a08fac26bb0f057431747fe6e82f8b9ac54dd9aed65d8de379d653c0e8a8cd31267b9769825a420db5f40957f8c4eb54a7e4a9d76fadb8
+DIST binutils-2.44.tar.xz 27285788 BLAKE2B 0eb031ace9fb5a7047b81b5a05b1760f7d332c8ed67f98899f153a45f181b83e661a484551af05c0a9b2adc422da84619103c7b1f3c9fad5327872832b5446aa SHA512 b85d3bbc0e334cf67a96219d3c7c65fbf3e832b2c98a7417bf131f3645a0307057ec81cd2b29ff2563cec53e3d42f73e2c60cc5708e80d4a730efdcc6ae14ad7
EBUILD binutils-libs-2.34-r2.ebuild 3714 BLAKE2B 705bb789483b4856e73be95f84a0651dcb8c457775ba44c54ad0403e9c27edab829276388b2f87c73c421212071e458885d60506867961e5e05d7cf830ca1558 SHA512 c62eb7d5ce03168def91d230a9c71c7bdf5946ca0f52802575e30a39b0af11495f6323bc00191d447a0c72a208f54a4f93ffeda7b9c27d33dccfbfabd5574d66
EBUILD binutils-libs-2.35.2.ebuild 4136 BLAKE2B 0cb30a63debe0aa33fca1a3fa70eff228bceeca11a9380473510cfa06359948dbef4a57ace33d1b399d2448bb9374ae609f0285830aa196e796e79c20318937a SHA512 3e0bbf6ca1d8b83683145b79839a208c2b4e5157a053661ccc7d4deff35c6b31290139f092552c0d581a7b4f87d615239a661f476675b890df410aa65a0ca67d
EBUILD binutils-libs-2.36.1-r2.ebuild 4089 BLAKE2B 5f8938442abb3974ff8b845b965ab8c6edd6660f29d8d1f4dea7cf8127a17cf7a046bbf4c64b876e1657c18774f6dcf7d00c882d3f75c67174f660f91c532f53 SHA512 f89a34fbf9aa042d0210a0bf1d1332b5983b4d3bf5c46c1f73fc40dc57a23496c476687b87c1eccc22bcd53a412e38088009e3dd41c6575838c20394267a86be
@@ -29,7 +30,7 @@ EBUILD binutils-libs-2.39-r5.ebuild 4847 BLAKE2B 5ce8bc4287765aaa309a796a3b5879e
EBUILD binutils-libs-2.40-r7.ebuild 5085 BLAKE2B 83197e69386093e06221231ae188131a9a472eded0a099c38c7bc92f3044029508e43031c12028a1a1a698ac1a5d89941643e394f8ede404fd8e609600904ad0 SHA512 c84ac99cbeb20374af2e59bb15811939242b87181d0a167bbe6970218ca885fce75df3b1d3f92a7e21d2b4d5b56f505b6a51643c77c056eaec5374a8ff58fbc9
EBUILD binutils-libs-2.41-r5.ebuild 5267 BLAKE2B 7c955ed4e435f894a45c444ffbec7f92b94993fcea2aa1197c84e476e50506dca782a0ca7adf5aef8d724f9c3e9bbd9b6103eceed52738b777208f9612b8c4af SHA512 57ff255c93b642916178f9581705378276e7e4f2ffb96cbfd8b2c86932f437f53eb144cdd9efd91d54cfe19b6080a225bdd75ef5f9e6fd24bf324630e348fd2f
EBUILD binutils-libs-2.42-r2.ebuild 5416 BLAKE2B d338164ec84b068311b3e8bb36c4d70d449072d60572ace109badccc29e0cf1f42ca913388aa9b50d4783465370ef999c039a897503d02e396a6efe0dff7559f SHA512 dd50d52faf5bba96a93caac528ef51cbba78948370ece9dd159ede7a8fc938e918f9a4c01c2214a72431ef0c95899ec0ddfdf6023b07ecc0c9fca64a29536853
-EBUILD binutils-libs-2.43-r2.ebuild 5393 BLAKE2B 8a6aec7741b56fc1b1e169521eefe97ec7e783a81fdc2feca1240e37f589e86173faeda1912044fe24359d00af0b0f7ee71e6567f43122f942147e63c13a081f SHA512 361b7e48a781812807b6ebea550f3d14f71faf2c984070b3faf79870e57066e0c1aa97edd4e3f3c4269564cd0df529c804dabc610e95a14ba2a6a581446a32f0
EBUILD binutils-libs-2.43-r3.ebuild 5385 BLAKE2B 778d4b9e1092bdd27a38659d7bbdc835bd252344b1dab312e580a0a1176fed3144611c1b092154fc02b9acc17fb302fde8c130a01e183c5fb1fd5b7d2e48721d SHA512 41b26e061b65d3249a3389f616543d7887321c09a3186cf96a3017f2515df1eae71a2ad9f2e79f6e69bd990a0b534e39f148c007b72e0648851b014de3720a45
-EBUILD binutils-libs-9999.ebuild 6594 BLAKE2B bb2853af0a5a0f540dd3f67c0b854b5500aac8007ec53ddddff50e4df4b8b52ff7ee8175f9e4dde10a939053488137f3802492b5d7114ef587eebbd82c208415 SHA512 79b2b4c2886e09c8d51d5ff968e80edefa8cc10ff33d65ba8595558d05aea3f42c412444436e473399b7566ba0063b75bf59671fdcde6ef6e8d20c9cba6d201c
+EBUILD binutils-libs-2.44.ebuild 6720 BLAKE2B 1b7f1910197a57d580889a1e450f200376a5b56001275b6a20e04dfcb39623ea27cb02f1690393a7216be23b001c7de6e0c318d1717e475f95a67ecaf2a52c2e SHA512 834ff2ba875308b2685d9d0e1144130ba879da1a64e6023d85d8a30e8e31e33a8aedcc51cf7af1bd31c760fb877520f7f6a41be9322539ef16e66b2a0de7d50a
+EBUILD binutils-libs-9999.ebuild 6721 BLAKE2B 6da51ca060cdd940dc8b7698506f7e6b26cf057e7c5ddfaa80673594e3356d57087eb4b26bea19b295e41872ff99f72faa73c3643adab7ee3872e887b76663f3 SHA512 7d11a8290465893ccac375e94047933f1fcb3e0e5d6984de361ca206a7e210ea0ed27a0a5658c20c6e66d40b0f483f62b70080a1ee3fca1b3ba04f2e2a9c467d
MISC metadata.xml 612 BLAKE2B ceaafd9fd1421e9f3993e003d0029c92a78054c7a2b90bd78afc05370ad19c931c6a7c150545cfb7d57165168e0fdaf3a00dde1905b328826a91cbc70d9548a8 SHA512 c8d33bb8d1c62c7e95758624ed0febbc9d40e9f141bfd280837b3207bcd771412158d71c0cb5548d60be0b236f6fe103621daf7efa8875191982859b566ffa8d
diff --git a/sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild b/sys-libs/binutils-libs/binutils-libs-2.44.ebuild
index bd0b6b20c161..b744d212fced 100644
--- a/sys-libs/binutils-libs/binutils-libs-2.43-r2.ebuild
+++ b/sys-libs/binutils-libs/binutils-libs-2.44.ebuild
@@ -1,37 +1,46 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PATCH_VER=2
-PATCH_DEV=dilfridge
-
inherit flag-o-matic libtool toolchain-funcs multilib-minimal
-MY_PN="binutils"
-MY_P="${MY_PN}-${PV}"
-PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
-PATCH_DEV=${PATCH_DEV:-dilfridge}
-
DESCRIPTION="Core binutils libraries (libbfd, libopcodes, libiberty) for external packages"
HOMEPAGE="https://sourceware.org/binutils/"
-SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_P}.tar.xz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
LICENSE="|| ( GPL-3 LGPL-3 )"
+IUSE="64-bit-bfd cet multitarget nls static-libs test"
-if [[ ${PV} == 2.43 ]] ; then
- SLOT="0/${PV%_p?}.1"
+# Variables that can be set here (ignored for live ebuilds)
+# PATCH_VER - the patchset version
+# Default: empty, no patching
+# PATCH_BINUTILS_VER - the binutils version in the patchset name
+# - Default: PV
+# PATCH_DEV - Use download URI https://dev.gentoo.org/~{PATCH_DEV}/distfiles/...
+# for the patchsets
+
+PATCH_VER=1
+PATCH_DEV=dilfridge
+
+MY_PN=binutils
+MY_P=${MY_PN}-${PV}
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ SLOT="0/${PV}"
+elif [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ SLOT="0/$(ver_cut 1-2)"
else
- die "Please cleanup the ebuild to drop the 2.43 fudge!"
- SLOT="0/${PV%_p?}.0"
+ PATCH_BINUTILS_VER=${PATCH_BINUTILS_VER:-${PV}}
+ PATCH_DEV=${PATCH_DEV:-dilfridge}
+ SRC_URI="mirror://gnu/binutils/${MY_P}.tar.xz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_P}.tar.xz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${MY_PN}-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz"
+ SLOT="0/${PV}"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
fi
-IUSE="64-bit-bfd cet multitarget nls static-libs test"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
-RESTRICT="!test? ( test )"
-
BDEPEND="
nls? ( sys-devel/gettext )
test? ( dev-util/dejagnu )
@@ -42,12 +51,52 @@ RDEPEND="${DEPEND}
>=sys-devel/binutils-config-5
"
-S="${WORKDIR}/${MY_P%_p?}"
+RESTRICT="!test? ( test )"
+
+MY_BUILDDIR=${WORKDIR}/build
MULTILIB_WRAPPED_HEADERS=(
/usr/include/bfd.h
)
+src_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/toolchain/binutils-patches.git
+ https://github.com/gentoo/binutils-patches
+ "
+ EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
+ git-r3_src_unpack
+ mv patches-git/9999 patch || die
+
+ if [[ ${PV} != 9999 ]] ; then
+ EGIT_BRANCH=binutils-$(ver_cut 1)_$(ver_cut 2)-branch
+ fi
+ EGIT_REPO_URI="
+ https://sourceware.org/git/binutils-gdb.git
+ https://git.sr.ht/~sourceware/binutils-gdb
+ https://gitlab.com/x86-binutils/binutils-gdb.git
+ "
+ S=${WORKDIR}/binutils
+ EGIT_CHECKOUT_DIR=${S}
+ git-r3_src_unpack
+ else
+ unpack ${MY_P}.tar.xz
+
+ cd "${WORKDIR}" || die
+ unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
+
+ # _p patch versions are Gentoo specific tarballs ...
+ local dir=${MY_P}
+ dir=${dir/-hppa64/}
+
+ S=${WORKDIR}/${dir}
+ fi
+
+ cd "${WORKDIR}" || die
+ mkdir -p "${MY_BUILDDIR}" || die
+}
+
src_prepare() {
if [[ -n ${PATCH_VER} ]] ; then
einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}"
@@ -80,9 +129,6 @@ pkgversion() {
}
multilib_src_configure() {
- # https://sourceware.org/PR32372
- append-cflags -std=gnu17
-
filter-lto
local myconf=(
@@ -110,9 +156,9 @@ multilib_src_configure() {
--without-zlib
--with-system-zlib
# We only care about the libs, so disable programs. #528088
- --disable-{binutils,etc,ld,gas,gold,gprof,gprofng}
+ --disable-{binutils,etc,ld,gas,gprof,gprofng}
# Disable modules that are in a combined binutils/gdb tree. #490566
- --disable-{gdb,libdecnumber,readline,sim}
+ --disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
# Strip out broken static link flags.
# https://gcc.gnu.org/PR56750
--without-stage1-ldflags
@@ -165,7 +211,9 @@ multilib_src_install() {
emake DESTDIR="${D}" install
# Provided by dev-debug/gdb instead
- rm "${ED}"/usr/share/info/sframe-spec.info || die
+ if [[ ${PV} != 9999 ]] ; then
+ rm "${ED}"/usr/share/info/sframe-spec.info || die
+ fi
# Provide libiberty.h directly.
dosym libiberty/libiberty.h /usr/include/libiberty.h
diff --git a/sys-libs/binutils-libs/binutils-libs-9999.ebuild b/sys-libs/binutils-libs/binutils-libs-9999.ebuild
index 0f5bb98f3952..6b4dbbfd6979 100644
--- a/sys-libs/binutils-libs/binutils-libs-9999.ebuild
+++ b/sys-libs/binutils-libs/binutils-libs-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -81,7 +81,7 @@ src_unpack() {
EGIT_CHECKOUT_DIR=${S}
git-r3_src_unpack
else
- unpack ${P/-hppa64/}.tar.xz
+ unpack ${MY_P}.tar.xz
cd "${WORKDIR}" || die
unpack binutils-${PATCH_BINUTILS_VER}-patches-${PATCH_VER}.tar.xz
@@ -156,9 +156,9 @@ multilib_src_configure() {
--without-zlib
--with-system-zlib
# We only care about the libs, so disable programs. #528088
- --disable-{binutils,etc,ld,gas,gold,gprof,gprofng}
+ --disable-{binutils,etc,ld,gas,gprof,gprofng}
# Disable modules that are in a combined binutils/gdb tree. #490566
- --disable-{gdb,gdbserver,libdecnumber,readline,sim}
+ --disable-{gdb,gdbserver,libbacktrace,libdecnumber,readline,sim}
# Strip out broken static link flags.
# https://gcc.gnu.org/PR56750
--without-stage1-ldflags
@@ -210,6 +210,11 @@ multilib_src_configure() {
multilib_src_install() {
emake DESTDIR="${D}" install
+ # Provided by dev-debug/gdb instead
+ if [[ ${PV} != 9999 ]] ; then
+ rm "${ED}"/usr/share/info/sframe-spec.info || die
+ fi
+
# Provide libiberty.h directly.
dosym libiberty/libiberty.h /usr/include/libiberty.h
}
diff --git a/sys-libs/cracklib/Manifest b/sys-libs/cracklib/Manifest
index 19ebbce43c85..0d5570dad1be 100644
--- a/sys-libs/cracklib/Manifest
+++ b/sys-libs/cracklib/Manifest
@@ -3,6 +3,6 @@ DIST cracklib-2.10.2.tar.xz 465152 BLAKE2B 87ea88085fee30cbd6e59485f157b7c6213e2
DIST cracklib-2.10.3.tar.xz 466704 BLAKE2B 714b904a4f890f399fc2acd3c8ed91173cbce19d04f386cd594388e1d35197b135d760616998979051de9154f9e94c587d21f80979fe4e00ada66010006c7216 SHA512 5a86116b888dd324d17495c3ccefb061bfc6b31a7dcebc394324d87878dec5dec268591f9d7ef30cf60f70df9ff3bbf3d891c60efc198dba80f83cc43a08273c
DIST cracklib-2.9.11.tar.xz 461116 BLAKE2B 46b499e465c1c268b772781a9c8ce573a5167ae2e0ac919b403acdb9a14c35140dfb53909eef6e41600e26c2f87d905b3d6d05380c66f053d091765b58a264f4 SHA512 c32e509f757344a1f0b7032ad3b6dc47a8759852a94e511c92073d85bce55f45d48c389d9eb34c993e1d61ad5c1542150672f3e8bc147148ebbb04d3319a2409
EBUILD cracklib-2.10.2.ebuild 2975 BLAKE2B fb3581847a9c1b48513716c6f7f27a8ef2ddf5e8a64ca35e31e8de341afcceb7971c5dba621b1f06ca355946bd72fd2917b726785e075295cb636bfcf8880c7f SHA512 2fb89f22c895efe8fc31532983c2f955237cd326dba8c75bdc6d4084ccb19f949259496aff46d81967acec2d314770efb158a8e8153be6877f4a496a4ce55e7e
-EBUILD cracklib-2.10.3.ebuild 2983 BLAKE2B 4aac75d26973223cc078d0ab502c97f5599fa1d9ce4b3ec5dadfc55ccb13db5507e994b7b189b7fd1441a67705439bbbeed2708336c63027cbd4e17d22bc077e SHA512 04544cef89330cb9a4e35b54c139b95f82ddf3a6202ef291baa4421fda8a7adf2b83bcf228f0eef601b93082de9c378d6e96993dbbc703f4b1f29ef9655159b6
+EBUILD cracklib-2.10.3.ebuild 2976 BLAKE2B dea26e428ba3e24d24a5c539bc4d5e8c515399b500eafe51ce24d1a129b05b7a290c44e95d0b942685153ab8faea16ce13faada53087e29438103edd3208f0b5 SHA512 bb73f351d4e58d74ecd13f6e122c41c0613cbf4a7996327736d32d34953a0f4a5003e91b19a5a06cb5156578de4c8bf490a8a3ce8a297dd345dcc143485c502e
EBUILD cracklib-2.9.11.ebuild 3027 BLAKE2B adabf7191c64f0a061bd669e4c84582a6bba996f1018719f22c2571be84d5f5a854270af0a2418893288f1317d067204692feafc0df57f2e107ac2e26ba113d8 SHA512 5377beb7bc0b9cee79836489bca1aed3544476100c7d128b5f390b4d402c4021aac9fd8619d369f354f3c05d068869b5d3bf321fea1e0e0388251ececbea7e88
MISC metadata.xml 385 BLAKE2B f81e1ac44f5a4c3f647473385363eed564accca3b62ecde3cb35fab14112af1ceb2a25dc2816fc096aee9c3ed15006252f32491583861689ed70d49218684360 SHA512 6d9908f12c310ef22feeae2216236f9b632dc5204916fbb5693cc53bb58e592dc44f49c45d2c8bc22addd69cc5e4e63df463a23299d09a637f4f0f7379e7b796
diff --git a/sys-libs/cracklib/cracklib-2.10.3.ebuild b/sys-libs/cracklib/cracklib-2.10.3.ebuild
index 13f5dab1a076..9708b38db16e 100644
--- a/sys-libs/cracklib/cracklib-2.10.3.ebuild
+++ b/sys-libs/cracklib/cracklib-2.10.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,7 +18,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="nls python static-libs zlib"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/sys-libs/efivar/Manifest b/sys-libs/efivar/Manifest
index eb286d8929c9..fe7d758bd93d 100644
--- a/sys-libs/efivar/Manifest
+++ b/sys-libs/efivar/Manifest
@@ -1,4 +1,4 @@
AUX efivar-38-ia64-relro.patch 2325 BLAKE2B 952b74c2f3cdaff6ebd8129c7c4a71cbc34aae41bf05c518bce518b0a6f1aea64bfef0a38494e004f4ef83ec6268e2819d15e036c5d5e86d7e55f12f3f0b4e27 SHA512 d56085bdfa5688ca2117a92e0b09f0425fade716f0a16fc99a9d894c936b8dbcdd297ed520498105d6bca7bb2c7042eec8c6fdd3e64b621acbfd948ce00f892b
DIST efivar-39.tar.gz 463349 BLAKE2B 73ea4b3293cd708923bcd4332a8c7a5a8bbf539d81300c502a764a2ac205ba7cdf1e30b3432c42a101f56c0b6e31af2907a6a38ada69ace3b0d60e90515094cd SHA512 04493c30efbfc2773abac9a3dd93aa13403c05e29e3bfc72877d2054930811fae99119aadcb1729b6ca85abf5a24db786ea0c27c16d5458ef1b19e74696f5ff7
-EBUILD efivar-39-r1.ebuild 1454 BLAKE2B df607d7c938275773c1bbd2fae70298660e6d146044f039b17c7f9ad6a49520c5e3aab3a97d376b2e0fca6b2f8d4480e5153d173393a58ae891aa59bc000fe11 SHA512 3ef25505e66c38e621c7ce1ea01de35acba0d6eaa288c40e8cd7a2ffd1f34e5d8bc467500e88e391a0cd0160b353212d6370c8a0db76d692dfacd1a32a875991
+EBUILD efivar-39-r1.ebuild 1437 BLAKE2B 19a6b6c3e01d2e9143ce9d7a8bb86f5eae15a2b51a14900345e6316b1b075171e3abad585d8a79bcf75ad3ee608c6f71646ab43118f4a8e27ec8867d7e5733f0 SHA512 a0053eadd52cc7916049f6395b1ad97fa8409dbb683ae50cbd0a3c30a2bb6b43fe59889f686cf386dce924a9763acad3ca9ed674673304ade3cb06054d266e5e
MISC metadata.xml 325 BLAKE2B 9cab1cda08c7ca71c0f15baed5011f8d2cd5fa292da287100ddf25d788e5f34cfed94c1543952f445614fd161fbdfbea7fd8f63aec1c912878a973b78ad8ee34 SHA512 b0985f3403b6aa9c806899fe9ca31d3a76c61f62f427ea1aa3b0fb5ecf380e3fef7e8bc1ccfc02c6c04ee1a6a0d370c2cbb7e1bf27cd67f6156758cb53f2319c
diff --git a/sys-libs/efivar/efivar-39-r1.ebuild b/sys-libs/efivar/efivar-39-r1.ebuild
index 68dbf69df601..b3ccf47c6b88 100644
--- a/sys-libs/efivar/efivar-39-r1.ebuild
+++ b/sys-libs/efivar/efivar-39-r1.ebuild
@@ -36,7 +36,6 @@ src_prepare() {
}
src_configure() {
- tc-ld-force-bfd
tc-export_build_env
unset CROSS_COMPILE
diff --git a/sys-libs/freeipmi/Manifest b/sys-libs/freeipmi/Manifest
index d2a58b21e7ad..e815efbfff64 100644
--- a/sys-libs/freeipmi/Manifest
+++ b/sys-libs/freeipmi/Manifest
@@ -10,7 +10,9 @@ AUX ipmiseld.confd 192 BLAKE2B 52b125e63ca3e13fcb24f5b304f73c78269fc58b2c3e40cb1
DIST freeipmi-1.6.10.tar.gz 3431062 BLAKE2B e217570d8fcf78ca9d04aad4d5bd46b4120beb21f2dcfb083bc9779a4541856e08ec6e87549651ee3c9b62fe54521585e192c784254dd9482bf9da09935853ae SHA512 90b6b78cdd119c2a1f332f007333aa6df70c6e3de0fd81ab007025392ee7cb7a01ab4a7a174d1f2e760c55d78f21ebbbe9667af661ccdd669e4b54edb1346937
DIST freeipmi-1.6.11.tar.gz 3429533 BLAKE2B abc803341db4e48fe1a81da1d9cce2e7a808e51f41fb5b18019fa25bec41b443275f737553fe8b7bfd1dd9ad06d08b2097ca9f8e78a431e20d1a0e89d0e8cda6 SHA512 db37bb1ec559f88764ac08491b616d24e49c9a8ba070717e940fea4886d877819064cb00221aac703d0d149dc38e562924e192e992222e18b0e8b548248487a4
DIST freeipmi-1.6.14.tar.gz 3464254 BLAKE2B b0b3fdc45c910f5fd3e837b4186103c754fc399c05be6b3406346a9629de4392334dfce5320fabfa895f8d398399a54b58c8b6663979e428c10269dd57b35067 SHA512 5dab6430d257776cad1aed39cb2e2536af42c56e3f53774111efc15b0dfc19241eedfbcbfb1f088dd8be38ce694bff9779050daaec9ad0b2d4dad329ce8f3fe3
+DIST freeipmi-1.6.15.tar.gz 3464927 BLAKE2B 0363b9ca58d264f9703e1615469dc5df53143e4b21111004602ab24e371d6291aacb6cef04500822cc5e86d0aec55e80f8162bfda0a98a2af1e326ec377460ba SHA512 113005f751a22584b657afa27c5659af8cae3b503f7c6358ac98c7f2461165c882b9ccfa8ad1cc4e3041f10de334def9b4faff03f2b83d56e69d891463f8931a
EBUILD freeipmi-1.6.10-r1.ebuild 2988 BLAKE2B 93ef70d463f5953d4767d77dc0b5c86608e35467b88d82dc117f9d8c3fc2125e7a50b09af894d9dd05be191e5098f9aad0d55cafda4d674404360b61e1da01c0 SHA512 4ba941a27940b9c595dcc0e254afe4506987626def549610c188b806c2cbdce63820e0c47129c2f1e25862abd3ae6e9e33816560c54347697cbf12cd669bd872
EBUILD freeipmi-1.6.11.ebuild 2578 BLAKE2B b8f5dfdd537399ce03b1d781c5ad6ae5aff19ae3b96f91b61181d65b7f23eea5d7c63e5caf56a67eb55f434dd79f10655a6a682395c016f394dfb1b991bf0f2e SHA512 e3266274dd8b9c5929d9f07fa114b94a14684b6b90819faa448e697a87528a2caad4142efcbf27a441704b7c613eaf1d6731912f00e338b7c756c7391b78cc74
EBUILD freeipmi-1.6.14.ebuild 2578 BLAKE2B b8f5dfdd537399ce03b1d781c5ad6ae5aff19ae3b96f91b61181d65b7f23eea5d7c63e5caf56a67eb55f434dd79f10655a6a682395c016f394dfb1b991bf0f2e SHA512 e3266274dd8b9c5929d9f07fa114b94a14684b6b90819faa448e697a87528a2caad4142efcbf27a441704b7c613eaf1d6731912f00e338b7c756c7391b78cc74
+EBUILD freeipmi-1.6.15.ebuild 2576 BLAKE2B b235db04f6ce30522e58ba09aa63cd462ec4d992d323820cbb1cc0fe3808a192bd4ac2d0935c3fdeb0d92a155672742be20060b2a14e18e2db889bcb91adea27 SHA512 170bb32dbd2fd42223406a7ba1d790b2232855d3d69349a6a692abe619e900903ac1033b0dcfb7e66870de0d5c3216b0b39dbd1e2a1f895e372ec90d700d6de2
MISC metadata.xml 569 BLAKE2B 80068547ab42d075842e19f6ca65c9aa4b7c25aeddffc01a179e02fd6364804eefe3b7aa26434756de638f22a19da815d8b930a7d5bc81048e228ee72c81cd3a SHA512 f910ad6c63c49a2f2ddadc82c202cc9cf414eda5babdbe675048c6a5c2df4f093663ff8cf99da69563d4c67fa8bc0c18bfb9a8b8a752f8ce63bd1de8feed52e1
diff --git a/sys-libs/freeipmi/freeipmi-1.6.15.ebuild b/sys-libs/freeipmi/freeipmi-1.6.15.ebuild
new file mode 100644
index 000000000000..d768511e3e55
--- /dev/null
+++ b/sys-libs/freeipmi/freeipmi-1.6.15.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+MY_P="${P/_/.}"
+DESCRIPTION="Provides Remote-Console and System Management Software as per IPMI v1.5/2.0"
+HOMEPAGE="https://www.gnu.org/software/freeipmi/"
+SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ppc64 ~x86"
+IUSE="debug doc nagios without-root"
+
+RDEPEND="dev-libs/libgcrypt:="
+DEPEND="
+ ${RDEPEND}
+ virtual/os-headers
+"
+RDEPEND="
+ ${RDEPEND}
+ nagios? (
+ || ( net-analyzer/icinga net-analyzer/nagios )
+ dev-lang/perl
+ )
+"
+
+src_configure() {
+ # bug #943813
+ append-cflags -std=gnu17
+
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_enable doc)
+ $(usev without-root --with-dont-check-for-root)
+ --disable-static
+ --disable-init-scripts
+ --localstatedir="${EPREFIX}"/var
+ ac_cv_path_CPP_FOR_BUILD="$(tc-getPROG CPP cpp)"
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ # freeipmi by defaults install _all_ commands to /usr/sbin, but
+ # quite a few can be run remotely as standard user, so move them
+ # in /usr/bin afterwards.
+ dodir /usr/bin
+ local prog
+ for prog in ipmi{detect,ping,power,console}; do
+ mv "${ED}"/usr/{s,}bin/${prog} || die
+
+ # The default install symlinks these commands to add a dash
+ # after the ipmi prefix; we repeat those after move for
+ # consistency.
+ rm "${ED}"/usr/sbin/${prog/ipmi/ipmi-}
+ dosym ${prog} /usr/bin/${prog/ipmi/ipmi-}
+ done
+
+ # Install the nagios plugin in its proper place, if desired
+ if use nagios; then
+ dodir /usr/$(get_libdir)/nagios/plugins
+ mv "${ED}"/usr/share/doc/${PF}/contrib/nagios/nagios_ipmi_sensors.pl \
+ "${ED}"/usr/$(get_libdir)/nagios/plugins/ || die
+ fperms 0755 /usr/$(get_libdir)/nagios/plugins/nagios_ipmi_sensors.pl
+
+ insinto /etc/icinga/conf.d
+ newins "${FILESDIR}"/freeipmi.icinga freeipmi-command.cfg
+ fi
+
+ dodoc AUTHORS ChangeLog* DISCLAIMER* NEWS README* TODO doc/*.txt
+
+ keepdir \
+ /var/cache/ipmiseld \
+ /var/cache/ipmimonitoringsdrcache \
+ /var/lib/freeipmi \
+ /var/log/ipmiconsole
+
+ # starting from version 1.2.0 the two daemons are similar enough
+ newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmidetectd
+ newconfd "${FILESDIR}"/ipmidetectd.confd ipmidetectd
+
+ newinitd "${FILESDIR}"/bmc-watchdog.initd.4 bmc-watchdog
+ newconfd "${FILESDIR}"/bmc-watchdog.confd bmc-watchdog
+
+ newinitd "${FILESDIR}"/bmc-watchdog.initd.4 ipmiseld
+ newconfd "${FILESDIR}"/ipmiseld.confd ipmiseld
+
+ find "${ED}" -type f -name "*.la" -delete || die
+}
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index 50500a723eba..f0bf8883aa45 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -33,8 +33,10 @@ DIST glibc-2.38.tar.xz 18913712 BLAKE2B f9b039f0ef98a7dd8e1cba228ed10286b9e4fbe4
DIST glibc-2.39-patches-11.tar.xz 192784 BLAKE2B fef42e0bd2a3341f41cac56dc878dcc95b7f521ffb27686a9109fe92e0458e903a24e763db17631b8ae6c1e8de7add2a11979b970689b2378aeb6ef29da7ceb6 SHA512 9daf2c57d178c7ce9d98ee454f680280738b37571bbbecc1724282e4866df29b78e60de40ad81a6efcc0a75b45d08148cb1a5f942ae7e308ae6fa63f9671b7de
DIST glibc-2.39.tar.xz 18520988 BLAKE2B 9d98459a2d58401e07c081e0d841935b23998da75a7eb5a7ebd23a1f9ebab99dee623fe166397c1b6c926960c570f62dbca5cb3b5ce84a918adff6b7a15e16bb SHA512 818f58172a52815b4338ea9f2a69ecaa3335492b9f8f64cbf8afb24c0d737982341968ecd79631cae3d3074ab0ae4bc6056fc4ba3ffe790849dc374835cd57e2
DIST glibc-2.40-patches-5.tar.xz 87376 BLAKE2B b09b9d2c8e45c0b494223cd01effb14ef205b030f2aeb76e1d7d289997258c1e46d85f8f4ad761e22afc35b1f4747fbca51d7caf252181c7b054b6a3e6bd2bfe SHA512 bf4776c27e5d962d2774afbed2236996a712a6127e5fdccd051af212d86a7e699a932cf4cb22f5516d513b9490b91d5e145727035e845cd4ef290985ac3dc524
-DIST glibc-2.40-patches-7.tar.xz 104100 BLAKE2B 6e91571bea0475b1a47a2c1b796cc91d2ab0f542cc82dba8691f99d09459bea73c0940c89c8f559edfb315cf9844a5c1eb0392f40499b1b8861f1e16f8b549db SHA512 8d61810f11f4c2ce97037e0f3c62e2a7bf0d83571fe68c7f80a248df744c31c2bda075c1f4c6189e8d5de0b200c1070e667a753144c61b0cb9bd5456b1c99d8b
+DIST glibc-2.40-patches-8.tar.xz 112020 BLAKE2B 17f5a3e5486aa570cb4d9103a84b649af9731bc398a4ff65d3d24c8912215dc7f5f2d6fa9a0222c514374a132b96796e8926a5cc31c87b326bf6d1a39772bd7a SHA512 97a28822f97d1c06773953750a8d9a38a6bd9ce488f4c4d5f0752b573591cbdc84dfbbb277e3fb8e5664c56596efc093fd83a78e4c47bb9c11cafe942b13a0f1
DIST glibc-2.40.tar.xz 18752204 BLAKE2B 8593cab5b2549b77159b6866fbb40b917e491fd5bc0814f7f85b6529166d78d4583436450c479b86cdfe468304fc4d2a9ba8294230a55dbc4c15e89c3ab6c000 SHA512 33caf91dbfddde6480b7cdf7a68b36aff8c522bfee56160af26af297f1b768668edb08bc4e1a7ff61c64721e3c1d49c347a5dd01c5edd3b914ee6479c8b27885
+DIST glibc-2.41-patches-1.tar.xz 17560 BLAKE2B dc4e39cb5605867b44c2308a8d6d6c0a662656b80a0aa2734f488e2cc22e26c948177eeb80ff6c79d82925b4dbd146a4d78646879c6e32fd60f817fb0d9ae092 SHA512 94da2092e49ee827d7558bcbfa8ebcbb9f81ed68848221d139039ea788cef57375ccfa61498bc73c6e83050681990d3968791a5f90514de12e45c10baef31d1e
+DIST glibc-2.41.tar.xz 19344868 BLAKE2B 4da62f489ba7a95bb069c2cfea8cf78e4d37e3a5f7e1736239670ba1dca12b69aa77bd00ced078c27d91b1e622c58cbd70258161a9d18c5b3bcc95863b8d744d SHA512 894a3e5a796bc13df30c26a5bfbe4d60b5dbdaac54e7763432235124b547070c7dda88c50584536870cab79183d8cad73a3ac6ed09bfe54fa8482aad07253169
DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238
DIST glibc-systemd-20210814.tar.gz 1469 BLAKE2B 10fa7bcb46d4fdce9c0ab353cbd30871e9b09a347a13a9c9a3b5777f931aa3c826c158d2e49532c604d4a834f2fab4089b67495fb88d0398945dc50d45ad9ef1 SHA512 5346a9ea459a1e6ccf665389f2a294de1e16f1e3e05cdf07e3dd99ed0e4f6f8b52cc333d4bff3c75ac90ab6ce70cd4ab2b3e126f920ce7979abd6dda56315efc
DIST locale-gen-2.00.tar.gz 7738 BLAKE2B cde6de5ba3400aea24d0d5f1b79471f89f09fb747c8e371e38316c7ada92f967e0865f573f23cb353d82419c234724143c0aeca9eb70eb945dfc581cc7491eb1 SHA512 b609fddb9ec5e567c008841fef3390eddb5d6e7699a8271b3b8c0ade1b44b0ac2e5d1daa8b9acabf3432e3b88110b538a96f209b1ad0f9e988b7efce66606dff
@@ -52,6 +54,7 @@ EBUILD glibc-2.37-r10.ebuild 53322 BLAKE2B 301a9c47f4149e927764cc132e6ec2a20b90a
EBUILD glibc-2.38-r13.ebuild 55028 BLAKE2B fcee988603b8bcec9cf184c54e040c9190a98170170665c56998e9a14bec55b34e25fc1002b2aaa8bae29392968a8f543f2f68f1e564c52d9e7a0fcf5c829317 SHA512 9bd2e1fe3709f4b792575d37c6b343e2db3b4bb60090281521ac3b9c4e5b9bed2367453933a2df8c1fa9cc988a71e97d797c009f7bb9fabde6c2821ab61102dd
EBUILD glibc-2.39-r11.ebuild 54663 BLAKE2B ef95a8014c990f42738c5b66b73416a55fab1b433af10d879a60d4d798ed3b9fca747242fb09d110f6a258e37bdbb384a85cc59dd8dc80f375c6faaa30ab4932 SHA512 3e8c216ac02f129a37de9d475980d911fb1ff77d09949f87ff6c5ffa666afdc6a35004d32d60d8a78b1abc17a823083442a68cbea6df35d4409897648ce8783f
EBUILD glibc-2.40-r5.ebuild 54662 BLAKE2B 62dd423d70cd8598bc4e69dc49e9b5442d283af497b80c58a99fcc6d4977936b0171c0c76325978fd43ddccd7e3c6496984c90a171bfd7b27ce5296bd204f7e9 SHA512 4daab8f45afa47660e9edce14ce5733702a5c229e1dea24e702858425d30201686eb62b0fd2d6a9c99343e4c6e138352f18eacde24d99aada8ce610f001c5b33
-EBUILD glibc-2.40-r7.ebuild 55082 BLAKE2B 77720d61dc27850eee428d03ea2be5d66a24a1068d0eb489ea4ecef5b9f115d075342fc8d1f1f88978f6e683530d7e2f506bb30276a814a72d4409cf7f260643 SHA512 e210980f0f1ed540afddecc3108386ea2cef4b5d334133fc5ea01294aed7257f387679cfca5c7b482d709e2c7855fb0a47eb13fbef14189cf47e6dc81088c2ad
-EBUILD glibc-9999.ebuild 55349 BLAKE2B fbf33cd94c24f68742d80c5e166844a499fc848af56f31d52e64278b09cccef853cd5863408a9b4a8ea3b606aa91168a21d387a1f8371a2eac7562208947901b SHA512 f7eb28cba747a9d6c8c60b7082275132bd85468c6a2f18a2e63df8897f7bf8a6b7ee6eb110b81b5004fc8cc9e16b5adc1ac16bd63442ea163dd9a8b72f5c6895
+EBUILD glibc-2.40-r8.ebuild 55140 BLAKE2B cdf8de6bfd4a57cff965d49dab0bc76feccc4d41eff04d76752eede63f40551c9e4c4217b6a46be39de8e627ab4379571ab9e46967d96ac00bbe841db2c37c50 SHA512 e3ce659253c75d5cb172f2380a69d1ad0048f74c1e00a6783c857a91cdfe6aebf1ae464523176ed7e57a9824369a4319ac4228c4e5f788be985c0583394e9051
+EBUILD glibc-2.41.ebuild 55183 BLAKE2B 7c4799c15680c5f60e436a4d437a4448c15f46d42d7abba9c19be5d7ca199dab7cd42c55b564c5f0b794410adcfce6704150456003c8acb25b78b59375668821 SHA512 569351532587ddaa7cf46a4e8d46436fd8a995304b6ca14e1ec662acc42a8a6bf13a3153255a55f34614db6361fa8d6fec8c6c3117010da72b1958aef19a86ed
+EBUILD glibc-9999.ebuild 55184 BLAKE2B db8352e9df7727277de7f3c6044a24e3eaf5490bf0a3354b5267856278f20327790a913fa175b4e73a329ed312f8e8c9c6e3a121a94b49b392e21fafaf70006b SHA512 ab036904b13f982bef9e9f4b5fd4befd21636c6677ae9656c4d484a4ab5205d0d12b29b7c6806528fb3571d7c1eacdc484d24aae6bec45ae3517a9b25d177e17
MISC metadata.xml 2142 BLAKE2B 765ba540eb10afccd1bade4de56f0c13ce269225500a62d1d17328194de69e7fa15d359a14eac6bfa8a36df45344db3d52f5e1811b174cf1fa2bfb95ad7760a7 SHA512 2f4a148c076a0967663d14e76b85a698ddae7093ff299b0dc95a6c3b00957c9bf73443f2bace9670eb62a45465efbcca892bb52b6aac8577acb2bc5f74a7397c
diff --git a/sys-libs/glibc/glibc-2.40-r7.ebuild b/sys-libs/glibc/glibc-2.40-r8.ebuild
index 66f7383c954d..0a6d95e2ab8c 100644
--- a/sys-libs/glibc/glibc-2.40-r7.ebuild
+++ b/sys-libs/glibc/glibc-2.40-r8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,7 +12,7 @@ TMPFILES_OPTIONAL=1
EMULTILIB_PKG="true"
# Gentoo patchset (ignored for live ebuilds)
-PATCH_VER=7
+PATCH_VER=8
PATCH_DEV=dilfridge
# gcc mulitilib bootstrap files version
@@ -41,7 +41,7 @@ HOMEPAGE="https://www.gnu.org/software/libc/"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
else
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
fi
@@ -609,13 +609,13 @@ setup_env() {
# Last, we need the settings of the *build* environment, not of the
# target environment...
- local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B)
+ local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}")
local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B)
einfo "Overriding clang configuration, since it won't work here"
- export CC="${current_gcc_path}/gcc"
- export CPP="${current_gcc_path}/cpp"
- export CXX="${current_gcc_path}/g++"
+ export CC="${current_gcc_path}/${CTARGET}-gcc"
+ export CPP="${current_gcc_path}/${CTARGET}-cpp"
+ export CXX="${current_gcc_path}/${CTARGET}-g++"
export LD="${current_binutils_path}/ld.bfd"
export AR="${current_binutils_path}/ar"
export AS="${current_binutils_path}/as"
diff --git a/sys-libs/glibc/glibc-2.41.ebuild b/sys-libs/glibc/glibc-2.41.ebuild
new file mode 100644
index 000000000000..394b594a66ff
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.41.ebuild
@@ -0,0 +1,1759 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc
+# Please read & adapt the page as necessary if obsolete.
+
+PYTHON_COMPAT=( python3_{10..13} )
+TMPFILES_OPTIONAL=1
+
+EMULTILIB_PKG="true"
+
+# Gentoo patchset (ignored for live ebuilds)
+PATCH_VER=1
+PATCH_DEV=dilfridge
+
+# gcc mulitilib bootstrap files version
+GCC_BOOTSTRAP_VER=20201208
+
+# systemd integration version
+GLIBC_SYSTEMD_VER=20210729
+
+# Minimum kernel version that glibc requires
+MIN_KERN_VER="3.2.0"
+
+# Minimum pax-utils version needed (which contains any new syscall changes for
+# its seccomp filter!). Please double check this!
+MIN_PAX_UTILS_VER="1.3.3"
+
+# Minimum systemd version needed (which contains any new syscall changes for
+# its seccomp filter!). Please double check this!
+MIN_SYSTEMD_VER="254.9-r1"
+
+inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \
+ multilib systemd multiprocessing tmpfiles eapi9-ver
+
+DESCRIPTION="GNU libc C library"
+HOMEPAGE="https://www.gnu.org/software/libc/"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+else
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
+ SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz"
+fi
+
+SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
+SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )"
+
+LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
+SLOT="2.2"
+IUSE="audit caps cet compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd perl profile selinux +ssp stack-realign +static-libs suid systemd systemtap test vanilla"
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+#
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+# Note [Disable automatic stripping]
+# Disabling automatic stripping for a few reasons:
+# - portage's attempt to strip breaks non-native binaries at least on
+# arm: bug #697428
+# - portage's attempt to strip libpthread.so.0 breaks gdb thread
+# enumeration: bug #697910. This is quite subtle:
+# * gdb uses glibc's libthread_db-1.0.so to enumerate threads.
+# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols
+# via 'ps_pglobal_lookup' symbol defined in gdb.
+# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all
+# known symbols in 'libpthread.so.0'. Specifically 'nptl_version'
+# (unexported) is used to sanity check compatibility before enabling
+# debugging.
+# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint
+# * normal 'strip' command trims '.symtab'
+# Thus our main goal here is to prevent 'libpthread.so.0' from
+# losing it's '.symtab' entries.
+# - similarly, valgrind requires knowledge about symbols in ld.so:
+# bug #920753
+# As Gentoo's strip does not allow us to pass less aggressive stripping
+# options and does not check the machine target we strip selectively.
+
+# We need a new-enough binutils/gcc to match upstream baseline.
+# Also we need to make sure our binutils/gcc supports TLS,
+# and that gcc already contains the hardened patches.
+# Lastly, let's avoid some openssh nastiness, bug 708224, as
+# convenience to our users.
+
+IDEPEND="
+ !compile-locales? ( sys-apps/locale-gen )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-misc/pax-utils-${MIN_PAX_UTILS_VER}
+ sys-devel/bison
+ compile-locales? ( sys-apps/locale-gen )
+ doc? (
+ dev-lang/perl
+ sys-apps/texinfo
+ )
+ test? (
+ dev-lang/perl
+ >=net-dns/libidn2-2.3.0
+ sys-apps/gawk[mpfr]
+ )
+"
+COMMON_DEPEND="
+ gd? ( media-libs/gd:2= )
+ nscd? ( selinux? (
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap )
+ ) )
+ suid? ( caps? ( sys-libs/libcap ) )
+ selinux? ( sys-libs/libselinux )
+ systemtap? ( dev-debug/systemtap )
+"
+DEPEND="${COMMON_DEPEND}
+"
+RDEPEND="${COMMON_DEPEND}
+ !<app-misc/pax-utils-${MIN_PAX_UTILS_VER}
+ !<sys-apps/systemd-${MIN_SYSTEMD_VER}
+ perl? ( dev-lang/perl )
+"
+
+RESTRICT="!test? ( test )"
+
+if [[ ${CATEGORY} == cross-* ]] ; then
+ BDEPEND+=" !headers-only? (
+ >=${CATEGORY}/binutils-2.27
+ >=${CATEGORY}/gcc-6.2
+ )"
+ [[ ${CATEGORY} == *-linux* ]] && DEPEND+=" ${CATEGORY}/linux-headers"
+else
+ BDEPEND+="
+ >=sys-devel/binutils-2.27
+ >=sys-devel/gcc-6.2
+ "
+ DEPEND+=" virtual/os-headers "
+ RDEPEND+="
+ >=net-dns/libidn2-2.3.0
+ vanilla? ( !sys-libs/timezone-data )
+ "
+ PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
+fi
+
+# Ignore tests whitelisted below
+GENTOO_GLIBC_XFAIL_TESTS="${GENTOO_GLIBC_XFAIL_TESTS:-yes}"
+
+# The following tests fail due to the Gentoo build system and are thus
+# executed but ignored:
+XFAIL_TEST_LIST=(
+ # buggy test, assumes /dev/ and /dev/null on a single filesystem
+ # 'mount --bind /dev/null /chroot/dev/null' breaks it.
+ # https://sourceware.org/PR25909
+ tst-support_descriptors
+
+ # The following tests fail only inside portage
+ # https://bugs.gentoo.org/831267
+ tst-system
+ tst-strerror
+ tst-strsignal
+
+ # Fails with certain PORTAGE_NICENESS/PORTAGE_SCHEDULING_POLICY
+ tst-sched1
+ tst-sched_setattr
+
+ # Fails regularly, unreliable
+ tst-valgrind-smoke
+
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=31877 (bug #927973)
+ tst-shstk-legacy-1g
+)
+
+XFAIL_NSPAWN_TEST_LIST=(
+ # These tests need to be adapted to handle EPERM/ENOSYS(?) properly
+ # upstream, as systemd-nspawn's default seccomp whitelist is too strict.
+ # https://sourceware.org/PR30603
+ test-errno-linux
+ tst-aarch64-pkey
+ tst-bz21269
+ tst-mlock2
+ tst-ntp_gettime
+ tst-ntp_gettime-time64
+ tst-ntp_gettimex
+ tst-ntp_gettimex-time64
+ tst-pkey
+ tst-process_mrelease
+ tst-adjtime
+ tst-adjtime-time64
+ tst-clock2
+ tst-clock2-time64
+
+ # These fail if --suppress-sync and/or low priority is set
+ tst-sync_file_range
+ test-errno
+)
+
+#
+# Small helper functions
+#
+
+dump_build_environment() {
+ einfo ==== glibc build environment ========================================================
+ local v
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX CPP LD \
+ {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY \
+ STRINGS OBJDUMP READELF; do
+ einfo " $(printf '%15s' ${v}:) ${!v}"
+ done
+ einfo =====================================================================================
+}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+just_headers() {
+ is_crosscompile && use headers-only
+}
+
+alt_prefix() {
+ is_crosscompile && echo /usr/${CTARGET}
+}
+
+# This prefix is applicable to CHOST when building against this
+# glibc. It is baked into the library at configure time.
+host_eprefix() {
+ is_crosscompile || echo "${EPREFIX}"
+}
+
+# This prefix is applicable to CBUILD when building against this
+# glibc. It determines the destination path at install time.
+build_eprefix() {
+ is_crosscompile && echo "${EPREFIX}"
+}
+
+alt_headers() {
+ echo $(alt_prefix)/usr/include
+}
+alt_libdir() {
+ echo $(alt_prefix)/$(get_libdir)
+}
+alt_usrlibdir() {
+ echo $(alt_prefix)/usr/$(get_libdir)
+}
+
+builddir() {
+ echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1"
+}
+
+do_compile_test() {
+ local ret save_cflags=${CFLAGS}
+ CFLAGS+=" $1"
+ shift
+
+ pushd "${T}" >/dev/null
+
+ rm -f glibc-test*
+ printf '%b' "$*" > glibc-test.c
+
+ # We assume CC is already set up.
+ nonfatal emake glibc-test
+ ret=$?
+
+ popd >/dev/null
+
+ CFLAGS=${save_cflags}
+ return ${ret}
+}
+
+do_run_test() {
+ local ret
+
+ if [[ ${MERGE_TYPE} == "binary" ]] ; then
+ # ignore build failures when installing a binary package #324685
+ do_compile_test "" "$@" 2>/dev/null || return 0
+ else
+ ebegin "Performing simple compile test for ABI=${ABI}"
+ if ! do_compile_test "" "$@" ; then
+ ewarn "Simple build failed ... assuming this is desired #324685"
+ eend 1
+ return 0
+ else
+ eend 0
+ fi
+ fi
+
+ pushd "${T}" >/dev/null
+
+ ./glibc-test
+ ret=$?
+ rm -f glibc-test*
+
+ popd >/dev/null
+
+ return ${ret}
+}
+
+setup_target_flags() {
+ # This largely mucks with compiler flags. None of which should matter
+ # when building up just the headers.
+ just_headers && return 0
+
+ case $(tc-arch) in
+ x86)
+ # -march needed for #185404 #199334
+ # TODO: When creating the first glibc cross-compile, this test will
+ # always fail as it does a full link which in turn requires glibc.
+ # Probably also applies when changing multilib profile settings (e.g.
+ # enabling x86 when the profile was amd64-only previously).
+ # We could change main to _start and pass -nostdlib here so that we
+ # only test the gcc code compilation. Or we could do a compile and
+ # then look for the symbol via scanelf.
+ if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ filter-flags '-march=*'
+ export CFLAGS="-march=${t} ${CFLAGS}"
+ einfo "Auto adding -march=${t} to CFLAGS #185404"
+ fi
+ # For compatibility with older binaries at slight performance cost.
+ use stack-realign && export CFLAGS+=" -mstackrealign"
+ ;;
+ amd64)
+ # -march needed for #185404 #199334
+ # TODO: See cross-compile issues listed above for x86.
+ if [[ ${ABI} == x86 ]]; then
+ if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ # Normally the target is x86_64-xxx, so turn that into the -march that
+ # gcc actually accepts. #528708
+ [[ ${t} == "x86_64" ]] && t="x86-64"
+ filter-flags '-march=*'
+ # ugly, ugly, ugly. ugly.
+ CFLAGS_x86=$(CFLAGS=${CFLAGS_x86} filter-flags '-march=*'; echo "${CFLAGS}")
+ export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
+ einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})"
+ fi
+ # For compatibility with older binaries at slight performance cost.
+ use stack-realign && export CFLAGS_x86+=" -mstackrealign"
+ fi
+ ;;
+ mips)
+ # The mips abi cannot support the GNU style hashes. #233233
+ filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both
+ ;;
+ ppc|ppc64)
+ # Many arch-specific implementations do not work on ppc with
+ # cache-block not equal to 128 bytes. This breaks memset:
+ # https://sourceware.org/PR26522
+ # https://bugs.gentoo.org/737996
+ # Use default -mcpu=. For ppc it means non-multiarch setup.
+ filter-flags '-mcpu=*'
+ ;;
+ sparc)
+ # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
+ filter-flags "-fcall-used-g7"
+ append-flags "-fcall-used-g6"
+
+ local cpu
+ case ${CTARGET} in
+ sparc64-*)
+ cpu="sparc64"
+ case $(get-flag mcpu) in
+ v9)
+ # We need to force at least v9a because the base build doesn't
+ # work with just v9.
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=19477
+ append-flags "-Wa,-xarch=v9a"
+ ;;
+ esac
+ ;;
+ sparc-*)
+ case $(get-flag mcpu) in
+ v8|supersparc|hypersparc|leon|leon3)
+ cpu="sparcv8"
+ ;;
+ *)
+ cpu="sparcv9"
+ ;;
+ esac
+ ;;
+ esac
+ [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
+ ;;
+ esac
+}
+
+setup_flags() {
+ # Make sure host make.conf doesn't pollute us
+ if is_crosscompile || tc-is-cross-compiler ; then
+ CHOST=${CTARGET} strip-unsupported-flags
+ fi
+
+ # Store our CFLAGS because it's changed depending on which CTARGET
+ # we are building when pulling glibc on a multilib profile
+ CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
+ CFLAGS=${CFLAGS_BASE}
+ CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
+ CXXFLAGS=${CXXFLAGS_BASE}
+ ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
+ ASFLAGS=${ASFLAGS_BASE}
+
+ # Allow users to explicitly avoid flag sanitization via
+ # USE=custom-cflags.
+ if ! use custom-cflags; then
+ # Over-zealous CFLAGS can often cause problems. What may work for one
+ # person may not work for another. To avoid a large influx of bugs
+ # relating to failed builds, we strip most CFLAGS out to ensure as few
+ # problems as possible.
+ strip-flags
+
+ # Allow -O2 and -O3, but nothing else for now.
+ # TODO: Test -Os, -Oz.
+ if ! is-flagq '-O@(2|3)' ; then
+ # Lock glibc at -O2. We want to be conservative here.
+ filter-flags '-O?'
+ append-flags -O2
+ fi
+ fi
+
+ strip-unsupported-flags
+ filter-lto
+ filter-flags -m32 -m64 '-mabi=*'
+
+ # glibc aborts if rpath is set by LDFLAGS
+ filter-ldflags '-Wl,-rpath=*'
+
+ # ld can't use -r & --relax at the same time, bug #788901
+ # https://sourceware.org/PR27837
+ filter-ldflags '-Wl,--relax'
+
+ # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed
+ # anyway because glibc already handles this by itself.
+ filter-ldflags '-Wl,--dynamic-linker=*'
+
+ # Fails to link (bug #940709) in some cases but even if it manages to,
+ # subtle runtime breakage will occur because the linker scripts need
+ # adaptation. Mentioned in PR21557#c0.
+ filter-ldflags '-Wl,--gc-sections'
+
+ # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100
+ # we have to do that here already so mips can filter it out again :P
+ if use hash-sysv-compat ; then
+ append-ldflags '-Wl,--hash-style=both'
+ fi
+
+ # #492892
+ filter-flags -frecord-gcc-switches
+
+ # #898098
+ filter-flags -fno-builtin
+
+ # #798774
+ filter-flags -fno-semantic-interposition
+
+ # #829583
+ filter-lfs-flags
+
+ unset CBUILD_OPT CTARGET_OPT
+ if use multilib ; then
+ CTARGET_OPT=$(get_abi_CTARGET)
+ [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
+ fi
+
+ setup_target_flags
+
+ if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
+ CBUILD_OPT=${CTARGET_OPT}
+ fi
+
+ # glibc's headers disallow -O0 and fail at build time:
+ # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
+ # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F
+ replace-flags -O0 -O1
+
+ # Similar issues as with SSP. Can't inject yourself that early.
+ filter-flags '-fsanitize=*'
+
+ # See end of bug #830454; we handle this via USE=cet
+ filter-flags '-fcf-protection=*'
+
+ # When bootstrapping, we may have a situation where
+ # CET-enabled gcc from seed is used to build CET-disabled
+ # glibc. As such, gcc implicitly enables CET if no
+ # -fcf-protection flag is passed. For a typical package it
+ # should not be a problem, but for glibc it matters as it is
+ # dealing with CET in ld.so. So if CET is supposed to be
+ # disabled for glibc, be explicit about it.
+ if ! use cet; then
+ case ${ABI}-${CTARGET} in
+ amd64-x86_64-*|x32-x86_64-*-*-gnux32)
+ append-flags '-fcf-protection=none'
+ ;;
+ arm64-aarch64*)
+ append-flags '-mbranch-protection=none'
+ ;;
+ esac
+ fi
+}
+
+use_multiarch() {
+ # Allow user to disable runtime arch detection in multilib.
+ use multiarch || return 1
+ # Make sure binutils is new enough to support indirect functions,
+ # #336792. This funky sed supports gold and bfd linkers.
+ local bver nver
+ bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}')
+ case $(tc-arch ${CTARGET}) in
+ amd64|x86) nver="2.20" ;;
+ arm) nver="2.22" ;;
+ hppa) nver="2.23" ;;
+ ppc|ppc64) nver="2.20" ;;
+ # ifunc support was added in 2.23, but glibc also needs
+ # machinemode which is in 2.24.
+ s390) nver="2.24" ;;
+ sparc) nver="2.21" ;;
+ *) return 1 ;;
+ esac
+ ver_test ${bver} -ge ${nver}
+}
+
+# Setup toolchain variables that had historically been defined in the
+# profiles for these archs.
+setup_env() {
+ # silly users
+ unset LD_RUN_PATH
+ unset LD_ASSUME_KERNEL
+
+ if is_crosscompile || tc-is-cross-compiler ; then
+ multilib_env ${CTARGET_OPT:-${CTARGET}}
+
+ if ! use multilib ; then
+ MULTILIB_ABIS=${DEFAULT_ABI}
+ else
+ MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
+ fi
+
+ # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
+ # and fall back on CFLAGS.
+ local VAR=CFLAGS_${CTARGET//[-.]/_}
+ CFLAGS=${!VAR-${CFLAGS}}
+ einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}"
+ fi
+
+ setup_flags
+
+ export ABI=${ABI:-${DEFAULT_ABI:-default}}
+
+ if just_headers ; then
+ # Avoid mixing host's CC and target's CFLAGS_${ABI}:
+ # At this bootstrap stage we have only binutils for
+ # target but not compiler yet.
+ einfo "Skip CC ABI injection. We can't use (cross-)compiler yet."
+ return 0
+ fi
+
+ # glibc does not work with non-bfd (for various reasons):
+ # * gold (bug #269274)
+ # * mold (bug #860900)
+ tc-ld-force-bfd
+
+ if use doc ; then
+ export MAKEINFO=makeinfo
+ else
+ export MAKEINFO=/dev/null
+ fi
+
+ # Reset CC and CXX to the value at start of emerge
+ export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}}
+ export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}}
+ export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}}
+
+ # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now.
+ export glibc__ORIG_CC=${CC}
+ export glibc__ORIG_CXX=${CXX}
+ export glibc__ORIG_CPP=${CPP}
+
+ if tc-is-clang && ! use custom-cflags && ! is_crosscompile ; then
+ export glibc__force_gcc=yes
+ # once this is toggled on, it needs to stay on, since with CPP manipulated
+ # tc-is-clang does not work correctly anymore...
+ fi
+
+ if [[ ${glibc__force_gcc} == "yes" ]] ; then
+ # If we are running in an otherwise clang/llvm environment, we need to
+ # recover the proper gcc and binutils settings here, at least until glibc
+ # is finally building with clang. So let's override everything that is
+ # set in the clang profiles.
+ # Want to shoot yourself into the foot? Set USE=custom-cflags, that's always
+ # a good start into that direction.
+ # Also, if you're crosscompiling, let's assume you know what you are doing.
+ # Hopefully.
+ # Last, we need the settings of the *build* environment, not of the
+ # target environment...
+
+ local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}")
+ local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B)
+ einfo "Overriding clang configuration, since it won't work here"
+
+ export CC="${current_gcc_path}/${CTARGET}-gcc"
+ export CPP="${current_gcc_path}/${CTARGET}-cpp"
+ export CXX="${current_gcc_path}/${CTARGET}-g++"
+ export LD="${current_binutils_path}/ld.bfd"
+ export AR="${current_binutils_path}/ar"
+ export AS="${current_binutils_path}/as"
+ export NM="${current_binutils_path}/nm"
+ export STRIP="${current_binutils_path}/strip"
+ export RANLIB="${current_binutils_path}/ranlib"
+ export OBJCOPY="${current_binutils_path}/objcopy"
+ export STRINGS="${current_binutils_path}/strings"
+ export OBJDUMP="${current_binutils_path}/objdump"
+ export READELF="${current_binutils_path}/readelf"
+ export ADDR2LINE="${current_binutils_path}/addr2line"
+
+ # do we need to also do flags munging here? yes! at least...
+ filter-flags '-fuse-ld=*'
+ filter-flags '-D_FORTIFY_SOURCE=*'
+
+ else
+
+ # this is the "normal" case
+
+ export CC="$(tc-getCC ${CTARGET})"
+ export CXX="$(tc-getCXX ${CTARGET})"
+ export CPP="$(tc-getCPP ${CTARGET})"
+
+ # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
+ # can't detect them automatically due to ${CHOST} mismatch and fallbacks
+ # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup().
+ export NM="$(tc-getNM ${CTARGET})"
+ export READELF="$(tc-getREADELF ${CTARGET})"
+
+ fi
+
+ # We need to export CFLAGS with abi information in them because glibc's
+ # configure script checks CFLAGS for some targets (like mips). Keep
+ # around the original clean value to avoid appending multiple ABIs on
+ # top of each other. (Why does the comment talk about CFLAGS if the code
+ # acts on CC?)
+ export glibc__GLIBC_CC=${CC}
+ export glibc__GLIBC_CXX=${CXX}
+ export glibc__GLIBC_CPP=${CPP}
+
+ export glibc__abi_CFLAGS="$(get_abi_CFLAGS)"
+
+ # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760
+ # To build .S (assembly) files with the same ABI-specific flags
+ # upstream currently recommends adding CFLAGS to CC/CXX:
+ # https://sourceware.org/PR23273
+ # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS
+ # and breaks multiarch support. See 659030#c3 for an example.
+ # The glibc configure script doesn't properly use LDFLAGS all the time.
+ export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}"
+
+ # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
+ export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}"
+
+ export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}"
+
+ if is_crosscompile; then
+ # Assume worst-case bootstrap: glibc is built for the first time
+ # with ${CTARGET}-g++ not available yet. We avoid
+ # building auxiliary programs that require C++: bug #683074
+ # It should not affect final result.
+ export libc_cv_cxx_link_ok=no
+ # The line above has the same effect. We set CXX explicitly
+ # to make build logs less confusing.
+ export CXX=
+ fi
+}
+
+foreach_abi() {
+ setup_env
+
+ local ret=0
+ local abilist=""
+ if use multilib ; then
+ abilist=$(get_install_abis)
+ else
+ abilist=${DEFAULT_ABI}
+ fi
+ local -x ABI
+ for ABI in ${abilist:-default} ; do
+ setup_env
+ einfo "Running $1 for ABI ${ABI}"
+ $1
+ : $(( ret |= $? ))
+ done
+ return ${ret}
+}
+
+glibc_banner() {
+ local b="Gentoo ${PVR}"
+ [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})"
+ echo "${b}"
+}
+
+# The following Kernel version handling functions are mostly copied from portage
+# source. It's better not to use linux-info.eclass here since a) it adds too
+# much magic, see bug 326693 for some of the arguments, and b) some of the
+# functions are just not provided.
+
+g_get_running_KV() {
+ uname -r
+ return $?
+}
+
+g_KV_major() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ echo "${KV%%.*}"
+}
+
+g_KV_minor() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.}
+ echo "${KV%%.*}"
+}
+
+g_KV_micro() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.*.}
+ echo "${KV%%[^[:digit:]]*}"
+}
+
+g_KV_to_int() {
+ [[ -z $1 ]] && return 1
+ local KV_MAJOR=$(g_KV_major "$1")
+ local KV_MINOR=$(g_KV_minor "$1")
+ local KV_MICRO=$(g_KV_micro "$1")
+ local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
+
+ # We make version 2.2.0 the minimum version we will handle as
+ # a sanity check ... if its less, we fail ...
+ if [[ ${KV_int} -ge 131584 ]] ; then
+ echo "${KV_int}"
+ return 0
+ fi
+ return 1
+}
+
+g_int_to_KV() {
+ local version=$1 major minor micro
+ major=$((version / 65536))
+ minor=$(((version % 65536) / 256))
+ micro=$((version % 256))
+ echo ${major}.${minor}.${micro}
+}
+
+eend_KV() {
+ [[ $(g_KV_to_int $1) -ge $(g_KV_to_int $2) ]]
+ eend $?
+}
+
+get_kheader_version() {
+ printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
+ $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \
+ tail -n 1
+}
+
+# We collect all sanity checks here. Consistency is not guranteed between
+# pkg_ and src_ phases, so we call this function both in pkg_pretend and in
+# src_unpack.
+sanity_prechecks() {
+ # Prevent native builds from downgrading
+ if [[ ${MERGE_TYPE} != "buildonly" ]] && \
+ [[ -z ${ROOT} ]] && \
+ [[ ${CBUILD} == ${CHOST} ]] && \
+ [[ ${CHOST} == ${CTARGET} ]] ; then
+
+ # The high rev # is to allow people to downgrade between -r#
+ # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2
+ # should be fine. Hopefully we never actually use a r# this
+ # high.
+ if has_version ">${CATEGORY}/${P}-r10000" ; then
+ eerror "Sanity check to keep you from breaking your system:"
+ eerror " Downgrading glibc is not supported and a sure way to destruction."
+ [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system."
+ fi
+
+ if ! do_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
+ eerror "Your old kernel is broken. You need to update it to a newer"
+ eerror "version as syscall(<bignum>) will break. See bug 279260."
+ die "Old and broken kernel."
+ fi
+ fi
+
+ if [[ ${CTARGET} == i386-* ]] ; then
+ eerror "i386 CHOSTs are no longer supported."
+ eerror "Chances are you don't actually want/need i386."
+ eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml"
+ die "Please fix your CHOST"
+ fi
+
+ if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
+ ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
+ ewarn "This will result in a 50% performance penalty when running with a 32bit"
+ ewarn "hypervisor, which is probably not what you want."
+ fi
+
+ # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
+ # we test for...
+ if ! is_crosscompile ; then
+ if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ ebegin "Checking if the system can execute 32-bit binaries"
+ echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
+ local STAT
+ if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
+ "${T}/check-ia32-emulation.elf32"
+ STAT=$?
+ else
+ # Don't fail here to allow single->multi ABI switch
+ # or recover from breakage like bug #646424
+ ewarn "Failed to compile the ABI test. Broken host glibc?"
+ STAT=0
+ fi
+ rm -f "${T}/check-ia32-emulation.elf32"
+ eend $STAT
+ if [[ $STAT -ne 0 ]]; then
+ eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel."
+ eerror "Seek support otherwise."
+ die "Unable to execute 32-bit binaries"
+ fi
+ fi
+
+ fi
+
+ # When we actually have to compile something...
+ if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then
+ # bug #833620, bug #643302
+ eerror "Found ${ESYSROOT}/usr/lib/include directory!"
+ eerror "This is known to break glibc's build."
+ eerror "Please backup its contents then remove the directory."
+ die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!"
+ fi
+
+ if [[ ${CTARGET} == *-linux* ]] ; then
+ local run_kv build_kv want_kv
+
+ run_kv=$(g_get_running_KV)
+ build_kv=$(g_int_to_KV $(get_kheader_version))
+ want_kv=${MIN_KERN_VER}
+
+ if ! is_crosscompile && ! tc-is-cross-compiler ; then
+ # Building fails on an non-supporting kernel
+ ebegin "Checking running kernel version (${run_kv} >= ${want_kv})"
+ if ! eend_KV ${run_kv} ${want_kv} ; then
+ echo
+ eerror "You need a kernel of at least ${want_kv}!"
+ die "Kernel version too low!"
+ fi
+ fi
+
+ # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there).
+ # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers
+ # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not
+ # just glibc), the whole emerge gets aborted without a good reason. We probably don't
+ # need to run this check at all given we have a dependency on the right headers,
+ # but let's leave it as-is for now.
+ if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then
+ ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
+ if ! eend_KV ${build_kv} ${want_kv} ; then
+ echo
+ eerror "You need linux-headers of at least ${want_kv}!"
+ die "linux-headers version too low!"
+ fi
+ fi
+ fi
+ fi
+}
+
+upgrade_warning() {
+ is_crosscompile && return
+
+ if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then
+ if ver_replacing -lt $(ver_cut 1-2 ${PV}); then
+ ewarn "After upgrading glibc, please restart all running processes."
+ ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)."
+ ewarn "Alternatively, reboot your system."
+ ewarn "(See bug #660556, bug #741116, bug #823756, etc)"
+ fi
+ fi
+}
+
+#
+# the phases
+#
+
+# pkg_pretend
+
+pkg_pretend() {
+ upgrade_warning
+}
+
+# pkg_setup
+
+pkg_setup() {
+ # see bug 682570
+ [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
+}
+
+# src_unpack
+
+src_unpack() {
+ setup_env
+
+ einfo "Checking general environment sanity."
+ sanity_prechecks
+
+ use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
+
+ if [[ ${PV} == 9999* ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git
+ https://github.com/gentoo/glibc-patches.git
+ "
+ EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
+ git-r3_src_unpack
+ mv patches-git/9999 patches || die
+ EGIT_REPO_URI="
+ https://sourceware.org/git/glibc.git
+ https://git.sr.ht/~sourceware/glibc
+ https://gitlab.com/x86-glibc/glibc.git
+ "
+ EGIT_CHECKOUT_DIR=${S}
+ git-r3_src_unpack
+ else
+ unpack ${P}.tar.xz
+
+ cd "${WORKDIR}" || die
+ unpack glibc-${PV}-patches-${PATCH_VER}.tar.xz
+ fi
+
+ cd "${WORKDIR}" || die
+ use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz
+}
+
+# src_prepare
+
+src_prepare() {
+ local patchsetname
+ if ! use vanilla ; then
+ if [[ ${PV} == 9999* ]] ; then
+ patchsetname="from git master"
+ else
+ patchsetname="${PV}-${PATCH_VER}"
+ fi
+ einfo "Applying Gentoo Glibc patchset ${patchsetname}"
+ eapply "${WORKDIR}"/patches
+ einfo "Done."
+ fi
+
+ default
+
+ gnuconfig_update
+
+ cd "${WORKDIR}" || die
+ find . -name configure -exec touch {} +
+
+ # Fix permissions on some of the scripts.
+ chmod u+x "${S}"/scripts/*.sh
+
+ cd "${S}" || die
+}
+
+# src_configure
+
+glibc_do_configure() {
+ dump_build_environment
+
+ local myconf=()
+
+ # Use '=strong' instead of '=all' to protect only functions
+ # worth protecting from stack smashes.
+ myconf+=( --enable-stack-protector=$(usex ssp strong no) )
+
+ # Keep a whitelist of targets supporting IFUNC. glibc's ./configure
+ # is not robust enough to detect proper support:
+ # https://bugs.gentoo.org/641216
+ # https://sourceware.org/PR22634#c0
+ case $(tc-arch ${CTARGET}) in
+ # Keep whitelist of targets where autodetection mostly works.
+ amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;;
+ # Blacklist everywhere else
+ *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
+ esac
+
+ case ${ABI}-${CTARGET} in
+ amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;;
+ *) ;;
+ esac
+
+ [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
+
+ myconf+=( --enable-kernel=${MIN_KERN_VER} )
+
+ # Since SELinux support is only required for nscd, only enable it if:
+ # 1. USE selinux
+ # 2. only for the primary ABI on multilib systems
+ # 3. Not a crosscompile
+ if ! is_crosscompile && use selinux ; then
+ if use multilib ; then
+ if is_final_abi ; then
+ myconf+=( --with-selinux )
+ else
+ myconf+=( --without-selinux )
+ fi
+ else
+ myconf+=( --with-selinux )
+ fi
+ else
+ myconf+=( --without-selinux )
+ fi
+
+ # Force a few tests where we always know the answer but
+ # configure is incapable of finding it.
+ if is_crosscompile ; then
+ export \
+ libc_cv_c_cleanup=yes \
+ libc_cv_forced_unwind=yes
+ fi
+
+ myconf+=(
+ --disable-werror
+ --enable-bind-now
+ --enable-fortify-source
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ $(use_enable profile)
+ $(use_with gd)
+ --with-headers="${ESYSROOT}$(alt_headers)"
+ --prefix="$(host_eprefix)/usr"
+ --sysconfdir="$(host_eprefix)/etc"
+ --localstatedir="$(host_eprefix)/var"
+ --libdir='$(prefix)'/$(get_libdir)
+ --mandir='$(prefix)'/share/man
+ --infodir='$(prefix)'/share/info
+ --libexecdir='$(libdir)'/misc/glibc
+ --with-bugurl=https://bugs.gentoo.org/
+ --with-pkgversion="$(glibc_banner)"
+ $(use_multiarch || echo --disable-multi-arch)
+ $(use_enable systemtap)
+ $(use_enable nscd)
+
+ # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if
+ # Perl hasn't been installed inside the prefix yet and configure picks
+ # up a Perl from outside the prefix instead. configure will fail to
+ # execute Perl during configure if we're cross-compiling a prefix, but
+ # it will just disable mtrace in that case.
+ # Note: mtrace is needed by the test suite.
+ ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))"
+
+ # locale data is arch-independent
+ # https://bugs.gentoo.org/753740
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+
+ # On aarch64 there is no way to override -mcpu=native, and if
+ # the current cpu does not support SVE configure fails.
+ # Let's boldly assume our toolchain can always build SVE instructions.
+ libc_cv_aarch64_sve_asm=yes
+
+ ${EXTRA_ECONF}
+ )
+
+ # We rely on sys-libs/timezone-data for timezone tools normally.
+ myconf+=( $(use_enable vanilla timezone-tools) )
+
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no)
+ ac_cv_lib_cap_cap_init=$(usex caps || echo no)
+
+ # There is no configure option for this and we need to export it
+ # since the glibc build will re-run configure on itself
+ export libc_cv_rootsbindir="$(host_eprefix)/sbin"
+ export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)"
+
+ local builddir=$(builddir nptl)
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+ set -- "${S}"/configure "${myconf[@]}"
+ echo "$@"
+ "$@" || die "failed to configure glibc"
+
+ # If we're trying to migrate between ABI sets, we need
+ # to lie and use a local copy of gcc. Like if the system
+ # is built with MULTILIB_ABIS="amd64 x86" but we want to
+ # add x32 to it, gcc/glibc don't yet support x32.
+ #
+ if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then
+ echo 'int main(void){}' > "${T}"/test.c || die
+ if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then
+ sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die
+ fi
+ fi
+}
+
+glibc_headers_configure() {
+ export ABI=default
+
+ local builddir=$(builddir "headers")
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+
+ # if we don't have a compiler yet, we can't really test it now ...
+ # hopefully they don't affect header generation, so let's hope for
+ # the best here ...
+ local v vars=(
+ ac_cv_header_cpuid_h=yes
+ libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes
+ libc_cv_asm_cfi_directives=yes
+ libc_cv_broken_visibility_attribute=no
+ libc_cv_c_cleanup=yes
+ libc_cv_compiler_powerpc64le_binary128_ok=yes
+ libc_cv_forced_unwind=yes
+ libc_cv_gcc___thread=yes
+ libc_cv_mlong_double_128=yes
+ libc_cv_mlong_double_128ibm=yes
+ libc_cv_ppc_machine=yes
+ libc_cv_ppc_rel16=yes
+ libc_cv_predef_fortify_source=no
+ libc_cv_target_power8_ok=yes
+ libc_cv_visibility_attribute=yes
+ libc_cv_z_combreloc=yes
+ libc_cv_z_execstack=yes
+ libc_cv_z_initfirst=yes
+ libc_cv_z_nodelete=yes
+ libc_cv_z_nodlopen=yes
+ libc_cv_z_relro=yes
+ libc_mips_abi=${ABI}
+ libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=no
+ ac_cv_lib_cap_cap_init=no
+ )
+
+ einfo "Forcing cached settings:"
+ for v in "${vars[@]}" ; do
+ einfo " ${v}"
+ export ${v}
+ done
+
+ local headers_only_arch_CPPFLAGS=()
+
+ # Blow away some random CC settings that screw things up. #550192
+ if [[ -d ${S}/sysdeps/mips ]]; then
+ pushd "${S}"/sysdeps/mips >/dev/null
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die
+
+ # Force the mips ABI to the default. This is OK because the set of
+ # installed headers in this phase is the same between the 3 ABIs.
+ # If this ever changes, this hack will break, but that's unlikely
+ # as glibc discourages that behavior.
+ # https://crbug.com/647033
+ sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die
+
+ popd >/dev/null
+ fi
+
+ local myconf=()
+
+ case ${CTARGET} in
+ aarch64*)
+ # The configure checks fail during cross-build, so disable here
+ # for headers-only
+ myconf+=(
+ --disable-mathvec
+ ) ;;
+ riscv*)
+ # RISC-V interrogates the compiler to determine which target to
+ # build. If building the headers then we don't strictly need a
+ # RISC-V compiler, so the built-in definitions that are provided
+ # along with all RISC-V compiler might not exist. This causes
+ # glibc's RISC-V preconfigure script to blow up. Since we're just
+ # building the headers any value will actually work here, so just
+ # pick the standard one (rv64g/lp64d) to make the build scripts
+ # happy for now -- the headers are all the same anyway so it
+ # doesn't matter.
+ headers_only_arch_CPPFLAGS+=(
+ -D__riscv_xlen=64
+ -D__riscv_flen=64
+ -D__riscv_float_abi_double=1
+ -D__riscv_atomic=1
+ ) ;;
+ esac
+
+ myconf+=(
+ --disable-sanity-checks
+ --enable-hacker-mode
+ --disable-werror
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ --with-headers="${ESYSROOT}$(alt_headers)"
+ --prefix="$(host_eprefix)/usr"
+ ${EXTRA_ECONF}
+ )
+
+ # Nothing is compiled here which would affect the headers for the target.
+ # So forcing CC/CFLAGS is sane.
+ local headers_only_CC=$(tc-getBUILD_CC)
+ local headers_only_CFLAGS="-O1 -pipe"
+ local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
+ local headers_only_LDFLAGS=""
+ set -- "${S}"/configure "${myconf[@]}"
+ echo \
+ "CC=${headers_only_CC}" \
+ "CFLAGS=${headers_only_CFLAGS}" \
+ "CPPFLAGS=${headers_only_CPPFLAGS}" \
+ "LDFLAGS=${headers_only_LDFLAGS}" \
+ "$@"
+ CC=${headers_only_CC} \
+ CFLAGS=${headers_only_CFLAGS} \
+ CPPFLAGS=${headers_only_CPPFLAGS} \
+ LDFLAGS="" \
+ "$@" || die "failed to configure glibc"
+}
+
+do_src_configure() {
+ if just_headers ; then
+ glibc_headers_configure
+ else
+ glibc_do_configure nptl
+ fi
+}
+
+src_configure() {
+ foreach_abi do_src_configure
+}
+
+# src_compile
+
+do_src_compile() {
+ emake -C "$(builddir nptl)"
+}
+
+src_compile() {
+ if just_headers ; then
+ return
+ fi
+
+ foreach_abi do_src_compile
+}
+
+# src_test
+
+glibc_src_test() {
+ cd "$(builddir nptl)"
+
+ local myxfailparams=""
+ if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then
+ local virt=$(systemd-detect-virt 2>/dev/null)
+ if [[ ${virt} == systemd-nspawn ]] ; then
+ ewarn "Skipping extra tests because in systemd-nspawn container"
+ XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" )
+ fi
+ if [[ "$(nice)" == "19" ]] ; then
+ # Expects to be able to increase niceness, which it can't do if
+ # already at the highest nice value
+ XFAIL_TEST_LIST+=( "tst-nice" )
+ fi
+
+ for myt in ${XFAIL_TEST_LIST[@]} ; do
+ myxfailparams+="test-xfail-${myt}=yes "
+ done
+ fi
+
+ # sandbox does not understand unshare() and prevents
+ # writes to /proc/, which makes many tests fail
+
+ # we give the tests a bit more time to avoid spurious
+ # bug reports on slow arches
+
+ SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 emake ${myxfailparams} check
+}
+
+src_test() {
+ if just_headers ; then
+ return
+ fi
+
+ foreach_abi glibc_src_test || die "tests failed"
+}
+
+# src_install
+
+run_locale_gen() {
+ # if the host locales.gen contains no entries, we'll install everything
+ local root="$1"
+ local inplace=""
+
+ if [[ "${root}" == "--inplace-glibc" ]] ; then
+ inplace="--inplace-glibc"
+ root="$2"
+ fi
+
+ local locale_list="${root%/}/etc/locale.gen"
+
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ if [[ -z $(locale-gen --list --config "${locale_list}") ]] ; then
+ [[ -z ${inplace} ]] && ewarn "Generating all locales; edit /etc/locale.gen to save time/space"
+ locale_list="${root%/}/usr/share/i18n/SUPPORTED"
+ fi
+
+ # bug 736794: we need to be careful with the parallelization... the number of
+ # processors saved in the environment of a binary package may differ strongly
+ # from the number of processes available during postinst
+ local mygenjobs="$(makeopts_jobs)"
+ if [[ "${EMERGE_FROM}" == "binary" ]] ; then
+ mygenjobs="$(nproc)"
+ fi
+
+ set -- locale-gen ${inplace} --jobs "${mygenjobs}" --config "${locale_list}" \
+ --destdir "${root}"
+ echo "$@"
+ "$@"
+
+ popd >/dev/null
+}
+
+glibc_do_src_install() {
+ local builddir=$(builddir nptl)
+ cd "${builddir}"
+
+ emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install
+
+ # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support
+ # which come without headers etc. Only needed for binary packages since the
+ # external net-libs/libnsl has increased soversion. Keep only versioned libraries.
+ find "${D}" -name "libnsl.a" -delete
+ find "${D}" -name "libnsl.so" -delete
+
+ # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need
+ # to infer upstream version:
+ # '#define VERSION "2.26.90"' -> '2.26.90'
+ local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
+
+ # Avoid stripping binaries not targeted by ${CHOST}. Or else
+ # ${CHOST}-strip would break binaries build for ${CTARGET}.
+ is_crosscompile && dostrip -x /
+
+ # gdb thread introspection relies on local libpthreads symbols. stripping breaks it
+ # See Note [Disable automatic stripping]
+ dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
+ # valgrind requires knowledge about ld.so symbols.
+ dostrip -x $(alt_libdir)/ld-*.so*
+
+ if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
+ # Move versioned .a file out of libdir to evade portage QA checks
+ # instead of using gen_usr_ldscript(). We fix ldscript as:
+ # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP ( /usr/lib64/glibc-<pv>/libm-<pv>.a ..."
+ sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \
+ "${ED}"/$(alt_usrlibdir)/libm.a || die
+ dodir $(alt_usrlibdir)/${P}
+ mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \
+ "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
+ fi
+
+ # We configure toolchains for standalone prefix systems with a sysroot,
+ # which is prepended to paths in ld scripts, so strip the prefix from these.
+ # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) )
+ # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) )
+ if [[ -n $(host_eprefix) ]] ; then
+ local file
+ grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do
+ sed -i "s|$(host_eprefix)/|/|g" "${file}" || die
+ done
+ fi
+
+ # We'll take care of the cache ourselves
+ rm -f "${ED}"/etc/ld.so.cache
+
+ # Everything past this point just needs to be done once ...
+ is_final_abi || return 0
+
+ # Make sure the non-native interp can be found on multilib systems even
+ # if the main library set isn't installed into the right place. Maybe
+ # we should query the active gcc for info instead of hardcoding it ?
+ local i ldso_abi ldso_name
+ local ldso_abi_list=(
+ # x86
+ amd64 /lib64/ld-linux-x86-64.so.2
+ x32 /libx32/ld-linux-x32.so.2
+ x86 /lib/ld-linux.so.2
+ # mips
+ o32 /lib/ld.so.1
+ n32 /lib32/ld.so.1
+ n64 /lib64/ld.so.1
+ # powerpc
+ ppc /lib/ld.so.1
+ # riscv
+ ilp32d /lib/ld-linux-riscv32-ilp32d.so.1
+ ilp32 /lib/ld-linux-riscv32-ilp32.so.1
+ lp64d /lib/ld-linux-riscv64-lp64d.so.1
+ lp64 /lib/ld-linux-riscv64-lp64.so.1
+ # s390
+ s390 /lib/ld.so.1
+ s390x /lib/ld64.so.1
+ # sparc
+ sparc32 /lib/ld-linux.so.2
+ sparc64 /lib64/ld-linux.so.2
+ )
+ case $(tc-endian) in
+ little)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64.so.1
+ # ELFv2 (glibc does not support ELFv1 on LE)
+ ppc64 /lib64/ld64.so.2
+ )
+ ;;
+ big)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64_be.so.1
+ # ELFv1 (glibc does not support ELFv2 on BE)
+ ppc64 /lib64/ld64.so.1
+ )
+ ;;
+ esac
+ if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
+ dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
+ fi
+ for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
+ ldso_abi=${ldso_abi_list[i]}
+ has ${ldso_abi} $(get_install_abis) || continue
+
+ ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
+ if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
+ dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
+ fi
+ done
+
+ # In the LSB 5.0 definition, someone had the excellent idea to "standardize"
+ # the runtime loader name, see also https://xkcd.com/927/
+ # Normally, in Gentoo one should never come across executables that require this.
+ # However, binary commercial packages are known to adhere to weird practices.
+ # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB
+ local lsb_ldso_name native_ldso_name lsb_ldso_abi
+ local lsb_ldso_abi_list=(
+ # x86
+ amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3
+ )
+ for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do
+ lsb_ldso_abi=${lsb_ldso_abi_list[i]}
+ native_ldso_name=${lsb_ldso_abi_list[i+1]}
+ lsb_ldso_name=${lsb_ldso_abi_list[i+2]}
+ has ${lsb_ldso_abi} $(get_install_abis) || continue
+
+ if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then
+ dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}"
+ fi
+ done
+
+ # With devpts under Linux mounted properly, we do not need the pt_chown
+ # binary to be setuid. This is because the default owners/perms will be
+ # exactly what we want.
+ if ! use suid ; then
+ find "${ED}" -name pt_chown -exec chmod -s {} +
+ fi
+
+ #################################################################
+ # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
+ #################################################################
+
+ # Make sure we install some symlink hacks so that when we build
+ # a 2nd stage cross-compiler, gcc finds the target system
+ # headers correctly. See gcc/doc/gccinstall.info
+ if is_crosscompile ; then
+ # We need to make sure that /lib and /usr/lib always exists.
+ # gcc likes to use relative paths to get to its multilibs like
+ # /usr/lib/../lib64/. So while we don't install any files into
+ # /usr/lib/, we do need it to exist.
+ keepdir $(alt_prefix)/lib
+ keepdir $(alt_prefix)/usr/lib
+
+ dosym usr/include $(alt_prefix)/sys-include
+ return 0
+ fi
+
+ # Files for Debian-style locale updating
+ dodir /usr/share/i18n
+ sed \
+ -e "/^#/d" \
+ -e "/SUPPORTED-LOCALES=/d" \
+ -e "s: \\\\::g" -e "s:/: :g" \
+ "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
+ || die "generating /usr/share/i18n/SUPPORTED failed"
+
+ cd "${S}" || die
+
+ # Install misc network config files
+ insinto /etc
+ doins posix/gai.conf
+
+ if use systemd ; then
+ doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf"
+ else
+ doins nss/nsswitch.conf
+ fi
+
+ # Gentoo-specific
+ newins "${FILESDIR}"/host.conf-1 host.conf
+
+ if use nscd ; then
+ doins nscd/nscd.conf
+
+ newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd
+
+ local nscd_args=(
+ -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):"
+ )
+
+ sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd
+
+ use systemd && systemd_dounit nscd/nscd.service
+ newtmpfiles nscd/nscd.tmpfiles nscd.conf
+ fi
+
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
+ doenvd "${T}"/00glibc
+
+ for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do
+ [[ -s ${d} ]] && dodoc ${d}
+ done
+ dodoc -r ChangeLog.old
+
+ # Prevent overwriting of the /etc/localtime symlink. We'll handle the
+ # creation of the "factory" symlink in pkg_postinst().
+ rm -f "${ED}"/etc/localtime
+
+ # Generate all locales if this is a native build as locale generation
+ if use compile-locales && ! is_crosscompile ; then
+ run_locale_gen --inplace-glibc "${ED}/"
+ fi
+}
+
+glibc_headers_install() {
+ local builddir=$(builddir "headers")
+ cd "${builddir}"
+ emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers
+
+ insinto $(alt_headers)/gnu
+ doins "${S}"/include/gnu/stubs.h
+
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ dosym usr/include $(alt_prefix)/sys-include
+}
+
+src_install() {
+ if just_headers ; then
+ export ABI=default
+ glibc_headers_install
+ return
+ fi
+
+ foreach_abi glibc_do_src_install
+
+ if ! use static-libs ; then
+ einfo "Not installing static glibc libraries"
+ find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete
+ fi
+}
+
+# Simple test to make sure our new glibc isn't completely broken.
+# Make sure we don't test with statically built binaries since
+# they will fail. Also, skip if this glibc is a cross compiler.
+#
+# If coreutils is built with USE=multicall, some of these files
+# will just be wrapper scripts, not actual ELFs we can test.
+glibc_sanity_check() {
+ cd / #228809
+
+ # We enter ${ED} so to avoid trouble if the path contains
+ # special characters; for instance if the path contains the
+ # colon character (:), then the linker will try to split it
+ # and look for the libraries in an unexpected place. This can
+ # lead to unsafe code execution if the generated prefix is
+ # within a world-writable directory.
+ # (e.g. /var/tmp/portage:${HOSTNAME})
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ # first let's find the actual dynamic linker here
+ # symlinks may point to the wrong abi
+ local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit)
+
+ einfo Last-minute run tests with ${newldso} in /$(get_libdir) ...
+
+ local x striptest
+ for x in cal date env free ls true uname uptime ; do
+ x=$(type -p ${x})
+ [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue
+ striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue
+ case ${striptest} in
+ *"statically linked"*) continue;;
+ *"ASCII text"*) continue;;
+ esac
+ # We need to clear the locale settings as the upgrade might want
+ # incompatible locale data. This test is not for verifying that.
+ LC_ALL=C \
+ ${newldso} --library-path . ${x} > /dev/null \
+ || die "simple run test (${x}) failed"
+ done
+
+ popd >/dev/null
+}
+
+pkg_preinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ einfo "Checking general environment sanity."
+ sanity_prechecks
+
+ # prepare /etc/ld.so.conf.d/ for files
+ mkdir -p "${EROOT}"/etc/ld.so.conf.d
+
+ # Default /etc/hosts.conf:multi to on for systems with small dbs.
+ if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then
+ sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf
+ einfo "Defaulting /etc/host.conf:multi to on"
+ fi
+
+ [[ -n ${ROOT} ]] && return 0
+ [[ -d ${ED}/$(get_libdir) ]] || return 0
+ [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check
+
+ if [[ -L ${EROOT}/usr/lib/locale ]]; then
+ # Help portage migrate this to a directory
+ # https://bugs.gentoo.org/753740
+ rm "${EROOT}"/usr/lib/locale || die
+ fi
+
+ # Keep around libcrypt so that Perl doesn't break when merging libxcrypt
+ # (libxcrypt is the new provider for now of libcrypt.so.{1,2}).
+ # bug #802207
+ if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then
+ PRESERVED_OLD_LIBCRYPT=1
+ cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \
+ "${T}/libcrypt$(get_libname 1)" || die
+ else
+ PRESERVED_OLD_LIBCRYPT=0
+ fi
+}
+
+glibc_refresh_ldconfig() {
+ if [[ ${MERGE_TYPE} == buildonly ]]; then
+ return
+ fi
+
+ # Version check could be added to avoid unnecessary work, but ldconfig
+ # should finish quickly enough to not matter.
+ ebegin "Refreshing ld.so.cache"
+ ldconfig -i
+ if ! eend $?; then
+ ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken"
+ ewarn "before you manually do so (ldconfig -i)."
+ fi
+}
+
+pkg_postinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
+ # Generate fastloading iconv module configuration file.
+ "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/"
+ fi
+
+ if ! is_crosscompile && [[ -z ${ROOT} ]] ; then
+ # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags
+ # handling has changed as well, which means stale ldconfig auxiliary
+ # cache entries and failure to lookup libgcc_s / libstdc++ (breaking
+ # every C++ application) / libgomp etc., among other breakages.
+ #
+ # To fix this, simply refresh the ld.so.cache without using the
+ # auxiliary cache if we're natively installing on loong. This should
+ # be done relatively soon because we want to minimize the breakage
+ # window for the affected programs.
+ use loong && glibc_refresh_ldconfig
+
+ use compile-locales || run_locale_gen "${EROOT}/"
+
+ # If fixincludes was/is active for a particular GCC slot, we
+ # must refresh it. See bug #933282 and GCC's documentation:
+ # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html
+ #
+ # TODO: Could this be done for non-cross? Some care would be needed
+ # to pass the right arguments.
+ while IFS= read -r -d $'\0' slot ; do
+ local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders
+ local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h
+ if [[ -x ${mkheaders_path} ]] ; then
+ ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}"
+ ${mkheaders_path} -v
+ eend $?
+ elif [[ -f ${pthread_h} ]] ; then
+ # fixincludes might have been enabled in the past for this
+ # GCC slot but not since we fixed toolchain.eclass to install
+ # mkheaders, so we need to manually delete pthread.h at least.
+ ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}"
+ mv -v "${pthread_h}" "${pthread_h}.bak"
+ eend $?
+ fi
+ done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0)
+ fi
+
+ upgrade_warning
+
+ # Check for sanity of /etc/nsswitch.conf, take 2
+ if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then
+ local entry
+ for entry in passwd group shadow; do
+ if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then
+ ewarn ""
+ ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been"
+ ewarn "removed from glibc and is now provided by the package"
+ ewarn " sys-auth/libnss-nis"
+ ewarn "Install it now to keep your NIS setup working."
+ ewarn ""
+ fi
+ done
+ fi
+
+ if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then
+ cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die
+ preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1)
+
+ elog "Please ignore a possible later error message about a file collision involving"
+ elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep"
+ elog "the upgrade working, but it also needs to be overwritten when"
+ elog "sys-libs/libxcrypt is installed. See bug 802210 for more details."
+ fi
+}
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 39f4cd3f2872..f66d2de88db7 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -33,7 +33,7 @@ MIN_PAX_UTILS_VER="1.3.3"
MIN_SYSTEMD_VER="254.9-r1"
inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \
- multilib systemd multiprocessing tmpfiles
+ multilib systemd multiprocessing tmpfiles eapi9-ver
DESCRIPTION="GNU libc C library"
HOMEPAGE="https://www.gnu.org/software/libc/"
@@ -193,6 +193,7 @@ XFAIL_NSPAWN_TEST_LIST=(
# upstream, as systemd-nspawn's default seccomp whitelist is too strict.
# https://sourceware.org/PR30603
test-errno-linux
+ tst-aarch64-pkey
tst-bz21269
tst-mlock2
tst-ntp_gettime
@@ -491,10 +492,6 @@ setup_flags() {
# https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F
replace-flags -O0 -O1
- # glibc handles this internally already where it's appropriate;
- # can't always have SSP when we're the ones setting it up, etc
- filter-flags '-fstack-protector*'
-
# Similar issues as with SSP. Can't inject yourself that early.
filter-flags '-fsanitize=*'
@@ -615,13 +612,13 @@ setup_env() {
# Last, we need the settings of the *build* environment, not of the
# target environment...
- local current_binutils_path=$(env ROOT="${BROOT}" binutils-config -B)
+ local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}")
local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B)
einfo "Overriding clang configuration, since it won't work here"
- export CC="${current_gcc_path}/gcc"
- export CPP="${current_gcc_path}/cpp"
- export CXX="${current_gcc_path}/g++"
+ export CC="${current_gcc_path}/${CTARGET}-gcc"
+ export CPP="${current_gcc_path}/${CTARGET}-cpp"
+ export CXX="${current_gcc_path}/${CTARGET}-g++"
export LD="${current_binutils_path}/ld.bfd"
export AR="${current_binutils_path}/ar"
export AS="${current_binutils_path}/as"
@@ -898,16 +895,12 @@ upgrade_warning() {
is_crosscompile && return
if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then
- local oldv newv=$(ver_cut 1-2 ${PV})
- for oldv in ${REPLACING_VERSIONS}; do
- if ver_test ${oldv} -lt ${newv}; then
- ewarn "After upgrading glibc, please restart all running processes."
- ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)."
- ewarn "Alternatively, reboot your system."
- ewarn "(See bug #660556, bug #741116, bug #823756, etc)"
- break
- fi
- done
+ if ver_replacing -lt $(ver_cut 1-2 ${PV}); then
+ ewarn "After upgrading glibc, please restart all running processes."
+ ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)."
+ ewarn "Alternatively, reboot your system."
+ ewarn "(See bug #660556, bug #741116, bug #823756, etc)"
+ fi
fi
}
diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest
index e4b3cc116c86..47b2a7bfd00f 100644
--- a/sys-libs/kpmcore/Manifest
+++ b/sys-libs/kpmcore/Manifest
@@ -1,5 +1,5 @@
DIST kpmcore-24.08.3.tar.xz 646392 BLAKE2B 539170f6fcea02859eac5b243fffc387b7ebc8dbb0dd780752485abb3cd9f512b1a299852e5c225230037e2859c73bd5d012c04d4b4274c6ba95dc223ba7d2ce SHA512 8a35caed3ad889ed1ae9fc6e5e59bb21390aedd3b80657002550dd2ac5030d42bff84e73449fa791886d6d0003b1069b02599b11989698315355ce722c7b18d8
-DIST kpmcore-24.12.1.tar.xz 649608 BLAKE2B a9a8a15885eb0b07455957add881e54cdbc34025b8a4cc414dff1340d0b4e591494b99155f8b275f651782e6a397d574f710326b2d7f366dda4a4fafc044466d SHA512 67b93b0fece5b7bf296e9c2a1df3fca472bc95cac1e8b3cd57e5ee84294ab65e09d9865a960d6be25af389d3efa6be107cd94d508b2ee89fd6cbd41a4b191d8b
+DIST kpmcore-24.12.2.tar.xz 649684 BLAKE2B 0f24bdcfb20a7449b37a4e903c7d29e4fe6db21f20843468d7b80ba8b382069e5026525a2b3b0406567b9587763b8e2869ed3a6614df2ba1d5f2d5cb4be8e835 SHA512 c9e013ab692fdaaccfb56996fa42dbe8f4419328b93f924ec64e267b574ee996f436ccb339c686fc0bb88df2efc5812306fdc1fb1949a5bd441208dcbc27fbf5
EBUILD kpmcore-24.08.3.ebuild 697 BLAKE2B db1362ea67ac83bd8ae527bab7d0f9ac7ca6cd1dc8d839843f0dead977802a3c008f180d32e1b0a1db4649a2bfed33218c79d31a5469899df88153426978410b SHA512 a582eb4895163f6bca51418d6bd430942bfbf92289c01691de6023f9708eae32486dc6da2a93905237dfd46473681cbc420bfde91a072ed262d5e29c61bebae6
-EBUILD kpmcore-24.12.1.ebuild 699 BLAKE2B 995e10ebf7fe6f0db4e71b7bd5cc7aeb83c6302b78aeb239beb2a1e21c4c66c387a112be1e5142106717954bb072238be93ba21b64453158d035e245700d21aa SHA512 58acedcb558f9d86fa5b6bf1805b65c90037d2f1d5c91130a2b1bfb9c2e18d7b3bf086de24feb7726d9d4b18b17d4ff4c4793886a5d9dc7793c21c706b67f089
+EBUILD kpmcore-24.12.2.ebuild 699 BLAKE2B 995e10ebf7fe6f0db4e71b7bd5cc7aeb83c6302b78aeb239beb2a1e21c4c66c387a112be1e5142106717954bb072238be93ba21b64453158d035e245700d21aa SHA512 58acedcb558f9d86fa5b6bf1805b65c90037d2f1d5c91130a2b1bfb9c2e18d7b3bf086de24feb7726d9d4b18b17d4ff4c4793886a5d9dc7793c21c706b67f089
MISC metadata.xml 318 BLAKE2B 922a5e32e706b2976c5f359a14194d268d3f499398576c80ce5fad8c0fcea0fbf048de4480a80a6a1889c88b8b6c14147654a3ab4d5ffbcc258c2290da63f6d1 SHA512 614cb8dda7ad2088e5d6ef39b449bb4be0ac72cd0231c320188d76d1816dce6490c5114bb4798112c4b11d99d30a9e82ff8fcf08ffa8c049589682a5e38208f6
diff --git a/sys-libs/kpmcore/kpmcore-24.12.1.ebuild b/sys-libs/kpmcore/kpmcore-24.12.2.ebuild
index a850b19a9ef6..a850b19a9ef6 100644
--- a/sys-libs/kpmcore/kpmcore-24.12.1.ebuild
+++ b/sys-libs/kpmcore/kpmcore-24.12.2.ebuild
diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest
index 1cc25666e33a..d2192b46a72c 100644
--- a/sys-libs/ldb/Manifest
+++ b/sys-libs/ldb/Manifest
@@ -7,7 +7,9 @@ AUX ldb-2.9.0-optional_packages.patch 1568 BLAKE2B 723a36ca839e085dd264c9a00895f
DIST ldb-2.8.1.tar.gz 1745790 BLAKE2B 7b0fb70b510da85e9b1e67e9485ed9caf7635d4709e855f46243746f3a65cb9ccc1958f151868261b4aeb4efc6e6aa0054e19cf8f43b8bbebd7d41630af29cc7 SHA512 37e53cee1361303398cb0366760f08f2f306ed08c98354f5eb9ab2330d67b866ed0af07b252c204f77bbb260fe911337f3585015305b9d5e0ab2fcea6761b164
DIST ldb-2.8.2.tar.gz 1746336 BLAKE2B f3eeb9d103718c2dac9b81b85f4f5d8d214209ae4c8fe1267a40e1c5dae792f9ea991c4301fe7ff7e63ff0cd8eab51fd8212b0cf555a4c9ba90b8d761ca71b39 SHA512 df1c228307ede75920a927ae3124cd0d507dfcf00f93b6f5c14b79f4e1a23dbe00249bc92b3ee3ed1e5ce06fe363f0be1eb3dab491fbe79e83b1a1b35a6e50e1
DIST ldb-2.9.1.tar.gz 1752372 BLAKE2B dcff2bf54a31c787504eb206453f46f3ab5b7e106a9b0978ee3f2f3d5ef267d60cb0c21864bb78c31f71b815051757bd4becf6379ea26d32e151489e09835569 SHA512 a7384d5b88b1b2edc1ac40f38f74b8b2eb403610d158c579a862007801586a4ad1ba11019737ecad8a83e8f2d1ae7ae16ec7e92c58f60feb2d6fed84c4212265
+DIST ldb-2.9.2.tar.gz 1752608 BLAKE2B c5a1e2f8ade531986ff9405dbaaa12d564f48b1839fc288b531cbfc0c832cee0d4e7c1018512cc64404d979e0c8a79d31ecde0007966f965cc17e6e2086111e6 SHA512 05f66fc32b1d7a310d7cd5f4ea9aa45902411d8f0b7cd80b00fe27d8b942fd5f60fa97b86001fc2b45937a317a95d6a7279385557b87f70fdc28d6eb010be6a4
EBUILD ldb-2.8.1.ebuild 4804 BLAKE2B 93d5557cee0fb416ca18296a596e496ba766ebf8440cc1316408810c8053152b48c540ea2dbde4ff6d32d9ebc073133c3a47f4dea288ea93c659265632de2738 SHA512 74c61eb7addf6116ee1ade4d0864eda7dbed2365fdc4a3e6a6d0bfd95df5077f89de00ee0517ed732976cab44670aaff0521823d5e26834f1e5e2161b73db0f1
EBUILD ldb-2.8.2.ebuild 4811 BLAKE2B c3568e850c7f07f3ef3cd4af63cac075bd84c699169fd3d7d49b01d5cc04a3283de825299b0b8f17e3dddf2c544cb41d973f60b6763525d64d8e6a31830fdcff SHA512 68fe3f10655891864a06ae5d4c054eeae21465661c8bf463ae28c34b436fa4eb9f3a363500b5bfc444c607cfc3bc3751b3f9ed5f5eda6e68cab3ecf1e8409558
EBUILD ldb-2.9.1.ebuild 4775 BLAKE2B 74fb6d8361adb03b778d7bbd2f8b95e0f2a2f5807c3bbcfb214031ebdc358723101fd400674fafcbe84052bfc322b51d41188697a43af808d9cad32a0af4e3ed SHA512 a35a9b218a347a48eaa7da3b89f593ebbd155a909d738856a902c8c8760d0eb05e14a9e3e60a6e5c9d3ab6c949683a47f9896e7d408dd40dec2654c7be7cd2e4
+EBUILD ldb-2.9.2.ebuild 4775 BLAKE2B 9969a5297e0b05ae739e44b7677b1d7a713e91c533023aef6c36dd0aca1e29df2149512405cf285aedb38d4dcaf73cff1c6395c13c80ff1761f5088868e92b32 SHA512 40e443593bc4e2e7f9e05f40331d94ccb56444b22be8a31c1430f51c937b38b75474d05c89a53d71e8d29a7dcc07de03afce9892cb48b5d5cf4e75958b6b6f52
MISC metadata.xml 446 BLAKE2B 4ee524096a438d9cbf73faea3207715f6570b763715578b74289732677c1a159955783b3d81beb775612f15f1a58f10fe9ee68406bb22484faddabb302680620 SHA512 beffe8e4143ba8a595dabfe3e9c0ed7e1093b4e92dded1a6d7dd27e2bde7928d26e95ba048e421ab17d506ede92675764732388aa8edb454cd7753a0e0094c49
diff --git a/sys-libs/ldb/ldb-2.9.2.ebuild b/sys-libs/ldb/ldb-2.9.2.ebuild
new file mode 100644
index 000000000000..999046da9ada
--- /dev/null
+++ b/sys-libs/ldb/ldb-2.9.2.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_REQ_USE="threads(+)"
+inherit python-single-r1 waf-utils multilib-minimal
+
+DESCRIPTION="LDAP-like embedded database"
+HOMEPAGE="https://ldb.samba.org"
+SRC_URI="https://download.samba.org/pub/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="doc ldap +lmdb python test"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ test? ( lmdb )"
+
+RESTRICT="!test? ( test )"
+
+TALLOC_VERSION="2.4.2"
+TDB_VERSION="1.4.10"
+TEVENT_VERSION="0.16.1"
+
+RDEPEND="
+ dev-libs/libbsd[${MULTILIB_USEDEP}]
+ dev-libs/popt[${MULTILIB_USEDEP}]
+ >=sys-libs/talloc-${TALLOC_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tdb-${TDB_VERSION}[${MULTILIB_USEDEP}]
+ >=sys-libs/tevent-${TEVENT_VERSION}[${MULTILIB_USEDEP}]
+ ldap? ( net-nds/openldap:= )
+ lmdb? ( >=dev-db/lmdb-0.9.16:=[${MULTILIB_USEDEP}] )
+ python? (
+ ${PYTHON_DEPS}
+ sys-libs/talloc[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tdb[python,${PYTHON_SINGLE_USEDEP}]
+ sys-libs/tevent[python,${PYTHON_SINGLE_USEDEP}]
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/libcrypt
+ test? ( >=dev-util/cmocka-1.1.3[${MULTILIB_USEDEP}] )
+"
+BDEPEND="${PYTHON_DEPS}
+ dev-libs/libxslt
+ virtual/pkgconfig
+ doc? ( app-text/doxygen )
+"
+
+WAF_BINARY="${S}/buildtools/bin/waf"
+
+MULTILIB_WRAPPED_HEADERS=( /usr/include/pyldb.h )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.9.0-optional_packages.patch
+ "${FILESDIR}"/${PN}-1.1.31-fix_PKGCONFIGDIR-when-python-disabled.patch
+ "${FILESDIR}"/${PN}-2.4.2-skip-32bit-time_t-tests.patch
+ "${FILESDIR}"/${PN}-2.5.2-skip-waf-tevent-check.patch
+)
+
+pkg_setup() {
+ # Package fails to build with distcc
+ export DISTCC_DISABLE=1
+ export PYTHONHASHSEED=1
+
+ # waf requires a python interpreter
+ python-single-r1_pkg_setup
+}
+
+check_samba_dep_versions() {
+ actual_talloc_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/talloc/wscript || die)
+ if [[ ${actual_talloc_version} != ${TALLOC_VERSION} ]] ; then
+ eerror "Source talloc version: ${TALLOC_VERSION}"
+ eerror "Ebuild talloc version: ${actual_talloc_version}"
+ die "Ebuild needs to fix TALLOC_VERSION!"
+ fi
+
+ actual_tdb_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tdb/wscript || die)
+ if [[ ${actual_tdb_version} != ${TDB_VERSION} ]] ; then
+ eerror "Source tdb version: ${TDB_VERSION}"
+ eerror "Ebuild tdb version: ${actual_tdb_version}"
+ die "Ebuild needs to fix TDB_VERSION!"
+ fi
+
+ actual_tevent_version=$(sed -En '/^VERSION =/{s/[^0-9.]//gp}' lib/tevent/wscript || die)
+ if [[ ${actual_tevent_version} != ${TEVENT_VERSION} ]] ; then
+ eerror "Source tevent version: ${TEVENT_VERSION}"
+ eerror "Ebuild tevent version: ${actual_tevent_version}"
+ die "Ebuild needs to fix TEVENT_VERSION!"
+ fi
+}
+
+src_prepare() {
+ default
+
+ check_samba_dep_versions
+
+ if use test && ! use python ; then
+ # We want to be able to run tests w/o Python as it makes
+ # automated testing much easier (as USE=python isn't default-enabled).
+ truncate -s0 tests/python/{repack,index,api,crash}.py || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ # When specifying libs for samba build you must append NONE to the end to
+ # stop it automatically including things
+ local bundled_libs="NONE"
+
+ # We "use" bundled cmocka when we're not running tests as we're
+ # not using it anyway. Means we avoid making users install it for
+ # no reason. bug #802531
+ if ! use test; then
+ bundled_libs="cmocka,${bundled_libs}"
+ fi
+
+ local myconf=(
+ $(usex ldap '' --disable-ldap)
+ $(usex lmdb '' --without-ldb-lmdb)
+ --disable-rpath
+ --disable-rpath-install
+ --with-modulesdir="${EPREFIX}"/usr/$(get_libdir)/samba
+ --bundled-libraries="${bundled_libs}"
+ --builtin-libraries=NONE
+ )
+
+ if ! use python || ! multilib_is_native_abi; then
+ myconf+=( --disable-python )
+ fi
+
+ waf-utils_src_configure "${myconf[@]}"
+}
+
+multilib_src_compile() {
+ waf-utils_src_compile
+ multilib_is_native_abi && use doc && doxygen Doxyfile
+}
+
+multilib_src_test() {
+ if multilib_is_native_abi; then
+ WAF_MAKE=1 \
+ PATH=buildtools/bin:../../../buildtools/bin:${PATH}:"${BUILD_DIR}"/bin/shared/private/ \
+ LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:"${BUILD_DIR}"/bin/shared/private/:"${BUILD_DIR}"/bin/shared \
+ waf test || die
+ fi
+}
+
+multilib_src_install() {
+ waf-utils_src_install
+
+ if multilib_is_native_abi && use doc; then
+ doman apidocs/man/man3/*.3
+ docinto html
+ dodoc -r apidocs/html/.
+ fi
+
+ # bug #726454
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ if has_version sys-auth/sssd; then
+ ewarn "You have sssd installed. It is known to break after ldb upgrades,"
+ ewarn "so please try to rebuild it before reporting bugs."
+ ewarn "See https://bugs.gentoo.org/404281"
+ fi
+}
diff --git a/sys-libs/libcap-ng/Manifest b/sys-libs/libcap-ng/Manifest
index 0e7f32356995..cbc23cb2556a 100644
--- a/sys-libs/libcap-ng/Manifest
+++ b/sys-libs/libcap-ng/Manifest
@@ -1,8 +1,4 @@
-AUX libcap-ng-0.8.4-slibtool.patch 1294 BLAKE2B 7234f8d137570f68d3de9ab0020c3d8d7626d31d8651c4588be74d2762126ed5559004c16a5cbb256a52155c48d61c42117c1164cae9397454467a4f6e76a6a3 SHA512 157fd91974350adc89ca2a08561bb40d01d7a615e94b82e1f002f10d479138e311f6b653e7026182514f52706319269996c3c37054ccf4c73a89e2ef7870146e
-AUX libcap-ng-0.8.4-swig.patch 873 BLAKE2B 8ec0c99cfaef7885ece5cb11a17ee09bf3903f3bf9ba99f507c2f93f39fd27d5bd497fe967acc735c012ad2a086913257cb0001971e9c86731c44184fa64ec01 SHA512 d68fe855d2c50ed8a46376c5b388b543658e2726e54c190098849b74f6993f1cf9f5d08505ece7ce44220547d6c42ee963cb67cf35be4998b2262069ce4fabd3
AUX libcap-ng-0.8.5-python.patch 861 BLAKE2B 748386a5d03adf88ceb84e6c866e46df1d7336d114ec01fe38f0f70e0670eca3ec5f43561b082fdaffbecf825fc093f28fb8665236c56738e0c0cec4889c49d7 SHA512 b51bdf7738a882373408fbdc9919b87791919082964af3e6c6a887577f46f76c7679fe1985fd0c3a2ca01b2573ad794a8a172f0b8533439d1522eecd4f5158e7
-DIST libcap-ng-0.8.4.tar.gz 453749 BLAKE2B 523480281cfa544e77e30932968b4b18424286dbced06bb4645d536cf19d4cc0f7c73de82006ffc329aa7ef208e0cf8e3379f1b20e1e8e4e90e422ed736f6c44 SHA512 f4f3499d592e8583c2bdb8d700981a7930bd545f0889bc02f49acecf17e3bc600b100cd4f64e9326e5bac0a07a02a1ac4b7e83e919563066665a3d67cbe6871e
DIST libcap-ng-0.8.5.tar.gz 460149 BLAKE2B ce0fc4ebceaa66d6f888f8b752e501bed7513d45231425054340016a6215ce52f0cd81b3a4a54c7c9ec0b623965002d66316c6c37844f0bd132b186ff7c6a41f SHA512 89fb86454847f354c012411ecdc7e17f07bb40d7e9719ca0b93ea81c436113685bbbb5c1b9cb1b7ac92d216c105c687285304135beb156aedd55ab1c61e4f269
-EBUILD libcap-ng-0.8.4-r1.ebuild 2296 BLAKE2B b58854b194564e036c2839df96ddc5b420d986a95fb529d2f0f526c18cd68fe6e982d50d49484fd6f57dfb21d6606175c962c0f561c7bdd05e492ea770bf6370 SHA512 2d4519e6c9ee83593e8f05a7e54a8726ad44e6804f38c9c4e54f540ecea8dd7d7918e651a54e4bb94ba1a32aafeea55f1e252b39df1d140bf89257c9922b6c52
EBUILD libcap-ng-0.8.5.ebuild 2229 BLAKE2B 81d612c107cda6a2dddc6a115b28e0297306e9e98ecfbf753c156f4749811ea91a29930bdcb1134d34b71fde70d5dd039daadd1344bc5d2bb7e07eb0c5695c12 SHA512 a35eb050d7b78f2d8a7eb12649283478a9b5eedec13cf19d005815dcda012a4649f9c641ab9fc58f28ac9c742faa043a1afff35f87e9a977e28522319bb21ad4
MISC metadata.xml 743 BLAKE2B 76f6f5e1f041c4609c640c0ad15363124e7e4adcf013180aa965a2b45da54de2d9574b21c8d1c7c1504c06df1bd7c34c765a44261da99e3080f0f92d89584e33 SHA512 c674b44010c80273ca64554911408e9533a29152d8cff2dcee7a5554c8269e32214e406d04082b267f9d958a53f3bd7f653af7a004a487aa6dd2d253314c2f25
diff --git a/sys-libs/libcap-ng/files/libcap-ng-0.8.4-slibtool.patch b/sys-libs/libcap-ng/files/libcap-ng-0.8.4-slibtool.patch
deleted file mode 100644
index d69f986875e3..000000000000
--- a/sys-libs/libcap-ng/files/libcap-ng-0.8.4-slibtool.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-https://github.com/stevegrubb/libcap-ng/commit/75fe3714a8da28f0e2939c4402527782014401dd
-https://github.com/stevegrubb/libcap-ng/pull/52
-
-From b7d21b473badb349bc0d6246b3804a8a2d329f36 Mon Sep 17 00:00:00 2001
-From: orbea <orbea@riseup.net>
-Date: Wed, 3 Apr 2024 17:32:04 -0700
-Subject: [PATCH] utils: link using libcap-ng.la
-
-When linking internal dependencies that were linked using $(LIBTOOL) the
-ideal method is to use the generated libtool archive (.la) file. This
-fixes the build with slibtool which doesn't find -lcap-ng during the
-build and explicitly requires the .la file to be used.
-
-Gentoo Issue: https://bugs.gentoo.org/928450
-Signed-off-by: orbea <orbea@riseup.net>
----
- utils/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/utils/Makefile.am b/utils/Makefile.am
-index f430454..97aa021 100644
---- a/utils/Makefile.am
-+++ b/utils/Makefile.am
-@@ -25,7 +25,7 @@ CONFIG_CLEAN_FILES = *.loT *.rej *.orig
- AUTOMAKE_OPTIONS = no-dependencies
- EXTRA_DIST = $(man_MANS)
- AM_CPPFLAGS = -I${top_srcdir} -I${top_srcdir}/src
--LIBS = -L${top_builddir}/src -lcap-ng
-+LDADD = ${top_builddir}/src/libcap-ng.la
- AM_CFLAGS = -W -Wall -Wshadow ${WFLAGS} -Wundef -D_GNU_SOURCE
- bin_PROGRAMS = pscap netcap filecap captest
- man_MANS = pscap.8 netcap.8 filecap.8 captest.8
diff --git a/sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch b/sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch
deleted file mode 100644
index 4b3f41a580ab..000000000000
--- a/sys-libs/libcap-ng/files/libcap-ng-0.8.4-swig.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-https://bugs.gentoo.org/921305
-https://github.com/stevegrubb/libcap-ng/issues/48
-https://github.com/stevegrubb/libcap-ng/commit/30453b6553948cd05c438f9f509013e3bb84f25b
-
-From 30453b6553948cd05c438f9f509013e3bb84f25b Mon Sep 17 00:00:00 2001
-From: Steve Grubb <ausearch.1@gmail.com>
-Date: Thu, 4 Jan 2024 15:06:29 -0500
-Subject: [PATCH] Remove python global exception handler since its deprecated
-
----
- bindings/src/capng_swig.i | 7 -------
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/bindings/src/capng_swig.i b/bindings/src/capng_swig.i
-index fcdaf18..fa85e13 100644
---- a/bindings/src/capng_swig.i
-+++ b/bindings/src/capng_swig.i
-@@ -30,13 +30,6 @@
-
- %varargs(16, signed capability = 0) capng_updatev;
-
--%except(python) {
-- $action
-- if (result < 0) {
-- PyErr_SetFromErrno(PyExc_OSError);
-- return NULL;
-- }
--}
- #endif
-
- %define __signed__
diff --git a/sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild b/sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild
deleted file mode 100644
index 228d595f6de9..000000000000
--- a/sys-libs/libcap-ng/libcap-ng-0.8.4-r1.ebuild
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Keep an eye on Fedora's packaging (https://src.fedoraproject.org/rpms/libcap-ng/tree/rawhide) for patches
-# Same maintainer in Fedora as upstream
-PYTHON_COMPAT=( python3_{10..12} )
-inherit autotools flag-o-matic out-of-source-utils python-r1
-
-DESCRIPTION="POSIX 1003.1e capabilities"
-HOMEPAGE="https://people.redhat.com/sgrubb/libcap-ng/"
-SRC_URI="https://people.redhat.com/sgrubb/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x86-linux"
-IUSE="python static-libs"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-RDEPEND="python? ( ${PYTHON_DEPS} )"
-DEPEND="
- ${RDEPEND}
- sys-kernel/linux-headers
-"
-BDEPEND="python? ( >=dev-lang/swig-2 )"
-
-PATCHES=(
- "${FILESDIR}"/${P}-swig.patch
- # https://bugs.gentoo.org/928450
- "${FILESDIR}"/${P}-slibtool.patch
-)
-
-src_prepare() {
- default
-
- eautoreconf
-}
-
-src_configure() {
- use sparc && replace-flags -O? -O0
-
- local ECONF_SOURCE="${S}"
-
- local myconf=(
- $(use_enable static-libs static)
- --with-capability_header="${ESYSROOT}"/usr/include/linux/capability.h
- )
-
- local pythonconf=(
- --without-python3
- )
-
- # Set up python bindings build(s)
- if use python ; then
- setup_python_flags_configure() {
- pythonconf=(
- --with-python3
- )
-
- run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}"
- }
-
- python_foreach_impl setup_python_flags_configure
- else
- local BUILD_DIR="${WORKDIR}"/build
- run_in_build_dir econf "${pythonconf[@]}" "${myconf[@]}"
- fi
-}
-
-src_compile() {
- if use python ; then
- python_foreach_impl run_in_build_dir emake
- else
- local BUILD_DIR="${WORKDIR}"/build
- emake -C "${BUILD_DIR}"
- fi
-}
-
-src_test() {
- if [[ "${EUID}" -eq 0 ]] ; then
- ewarn "Skipping tests due to root permissions."
- return
- fi
-
- if use python ; then
- python_foreach_impl run_in_build_dir emake check
- else
- local BUILD_DIR="${WORKDIR}"/build
- emake -C "${BUILD_DIR}" check
- fi
-}
-
-src_install() {
- if use python ; then
- python_foreach_impl run_in_build_dir emake DESTDIR="${D}" install
- else
- local BUILD_DIR="${WORKDIR}"/build
- emake -C "${BUILD_DIR}" DESTDIR="${D}" install
- fi
-
- find "${ED}" -name '*.la' -delete || die
-}
diff --git a/sys-libs/libnbd/Manifest b/sys-libs/libnbd/Manifest
index a3d60a9e510b..fe4cfdaffbd1 100644
--- a/sys-libs/libnbd/Manifest
+++ b/sys-libs/libnbd/Manifest
@@ -3,6 +3,6 @@ DIST libnbd-1.16.1.tar.gz 1379437 BLAKE2B 13020c21663e988d46fb5a048b31c58b0256c7
DIST libnbd-1.18.1.tar.gz 1482736 BLAKE2B d3f0b2993fa1392df93b0bbc5d63805489ad1a82cf5bcc5eb5c3b5b7e7e6c40095471ab8fc964cc0e5c7a99affa7150f7be38cc16c42f27fc4cdc16bd0ca0359 SHA512 f4262666be55d580550e053355f14f80d352bf869ae7241e9fa032a9b5cd9e027eb89a536871c1206422413fc7ed745da7d612b3e1413f76ec17168705fbf12c
EBUILD libnbd-1.14.1.ebuild 1312 BLAKE2B 9972d0595b29b56b6d9f4ed1bcc32b95576522ce50c185effec698101e8d903220c6153fcaaac7cd58388f79c17f4c160e02667639838f8b3cfc92a874327c88 SHA512 ee216b3776d71fbd30569aa243b09a4432346082f0d2c077b3ff1959575d586d3d5528fea20a7dae03544e5be24d11fb5771c1730d4262d5ca59187aa1a8167d
EBUILD libnbd-1.16.1-r1.ebuild 1676 BLAKE2B e53214b35a0e5cc1a0b6fa78d86b523c70d9cde10e0ae54692842a3708884e9fed8a8fd83fbd3960e7d9fa8119d5fd3dda59395be511bbac6201da6121034b68 SHA512 26401e140d446408021ab5d1fddb84fdebbbf783a4646ac2e2cd7b7b228065377c893dfa9be63597e09201a4d723ea258626f15fa1583d8b6ec3a484b7dcc971
-EBUILD libnbd-1.18.1-r1.ebuild 1745 BLAKE2B 382a29274d2e22905b404faf3b5c0ecd911418b5ea27b9c2b7b3b9cb6b69f3eaf2317f7b91efddbbc525b6b24fce85c7640725cd70f9021cb62a55588803403a SHA512 da6835ca01b09046d9749b7c7adb53c30852180f2ff64d930d70864a0328a47a08271dac332a751362aeb4a44ef07488c38fd8abfb67d06c598918312d1744c5
+EBUILD libnbd-1.18.1-r1.ebuild 1744 BLAKE2B f69184d3f32c3a2a408a783de66dbd6d7af1de1de1f5ac2f29fab589619d348b163fe126b879f1184ffb73bcd6ba60931232a69e6718cd03f78ace1d300cf805 SHA512 0764c78694353fb62d66c2a213cc871b3e60415f0a26673f55855180742bb3887dd5a07500baf527fd027f3bb5ef1afef18d57f87fbea6d5b96c8ea5731ab9ad
EBUILD libnbd-1.18.1.ebuild 1744 BLAKE2B 5ebb35d2a7d18d53dbd87d587a047f5b0a0a81dcd6008677d1baa92d1d298d6cff96b57159f40c6654c7c1b7fa6f329bff9514c081b1d7df25508109d8fb0acc SHA512 91d1990dbc79272c2657fac22d73025685ec1eb8472f271061f788bc5cdf4c2daf35158707765139f6d87b820c5a40e49271768430e41014f7e65290c0608d37
-MISC metadata.xml 659 BLAKE2B c967019226aa8369e3442729873d1a250440eebf22b85cb998b6896a2ca0d7ba384d0c3c411de26f18304c3fd8fe6d422b904a0f147f6dc9160b8e505ecb3b1c SHA512 1ba695faff69662dfa4053c1a955e9e73dc04d9cb6c54ffb19fefe5b17d36fab2aa179756826763a2927ef3d04a00a8e640725529d4fbdf83a8f400156841045
+MISC metadata.xml 602 BLAKE2B 5a657a646d5638c03e07f7c6fadc74f781f3dfe2e20078f944b86019fee6589324b96ead60413fba552a746917f8f4182bd577fe96fe2a2efb1182c930fbd03e SHA512 cda017b596de15628ac1c93647ab76beac4fbd0fa2dcbd2cd3d668d9a295c2ce195a6873c71b4612a209c93e112a9d4d52f5884534b8da8de069b770bd6098d4
diff --git a/sys-libs/libnbd/libnbd-1.18.1-r1.ebuild b/sys-libs/libnbd/libnbd-1.18.1-r1.ebuild
index accecba8e4d2..f7da6412c679 100644
--- a/sys-libs/libnbd/libnbd-1.18.1-r1.ebuild
+++ b/sys-libs/libnbd/libnbd-1.18.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,7 +12,7 @@ SRC_URI="https://download.libguestfs.org/libnbd/$(ver_cut 1-2)-stable/${P}.tar.g
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~sparc ~x86"
+KEYWORDS="amd64 ~ppc64 ~sparc ~x86"
IUSE="fuse gnutls go ocaml python test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/sys-libs/libnbd/metadata.xml b/sys-libs/libnbd/metadata.xml
index 907f610bee5a..33c320226a94 100644
--- a/sys-libs/libnbd/metadata.xml
+++ b/sys-libs/libnbd/metadata.xml
@@ -7,7 +7,6 @@
</maintainer>
<upstream>
<remote-id type="gitlab">nbdkit/libnbd</remote-id>
- <remote-id type="github">libguestfs/libnbd</remote-id>
</upstream>
<use>
<flag name="uri-support">
diff --git a/sys-libs/libnvidia-container/Manifest b/sys-libs/libnvidia-container/Manifest
index 669b13e91ef2..4de53a105cdb 100644
--- a/sys-libs/libnvidia-container/Manifest
+++ b/sys-libs/libnvidia-container/Manifest
@@ -1,6 +1,11 @@
AUX libnvidia-container-1.17.0-fix-makefile-r1.patch 8040 BLAKE2B d7f3c6723d9ab25628eb40fd29749e2c3277330149ba21100a94f517b952b76992479c467c6338370e359007cb63e778db7242c9ece01c2c428ff37fbba3dab0 SHA512 478297e2874dd4fc0ac261430659375b11b68dbc8fb21e5f98d6a7d685cb2fa57140fbff402f742556e3a571d160b0b374514111b37e2efa60eb7708c3395ae7
+AUX libnvidia-container-1.17.4-go-1.24.patch 1681 BLAKE2B df0b26d5276fd78b912b24e64b8c6aa2f760f90b027543bd80e7a5a21a3740e9427668abd2eb51c9ca098daa625b07584c3f40e320e69c713a898707bd7302c4 SHA512 6af898fe455a2df81315544f62b960ddfa6cd3271bd461894f7fbf9bb40f293af348475f75288237d0a41a2ca38949984730213f54fc2abcac7e145b61820165
DIST libnvidia-container-1.17.2.tar.gz 1611920 BLAKE2B 571ddc5fda854999cd7d1b2bbc40d34728827bf2e9c26afe6784166db7202d2baa55b0ca0eba50be61b029645735aaf91655bfec55113996eaf8c5278b835cd8 SHA512 a791998012f681805b3cc0a3bd38abc958a523c3eaa13cab36be4e0242cfba095719d5f6fa59423453a81c3fc76c96a4bbfd2eea27d20e2ef2f9a03d3a447fd8
+DIST libnvidia-container-1.17.3.tar.gz 1612952 BLAKE2B dad0bdf68d6f9e7b7ed37792a7b5609ae632bc450fe69d5d31e035e2e404ec32e5fd8f1663c66c5613041c5d9f814af692a77b6e522c62e673e1df1cf19abc29 SHA512 24293e369fea42ebe64163464f600808c0d18e8b4efeea12095de22e16d43837cb6441f46baf52e8c966810c76b0f5045737a96d173e2ecf8cd15fff37cd4c4f
+DIST libnvidia-container-1.17.4.tar.gz 1612093 BLAKE2B 225b0ffb31fca19f8b2996fb64cc31de59f1b38ad2a7389f8098bccabe4244289b3d857b51c9614f61cf770ced7eb74b55776e5398b1b4463d3b7d693c74a28e SHA512 a5edb4eec8cc4a9bd221c3cbb14515656854700b1a6aef7b47147d96b67511d5cfcae38c740fd946452768da0f993edf6c656697cd01189de88b67a4ae00aae5
DIST libnvidia-container-nvidia-modprobe-550.54.14.tar.gz 47147 BLAKE2B 7b334877d98d0c75d5750192dea868436938852443ced14e74e59076ed4d8be9e361cdefbe48295d87bb91ac4565152ec3f3233479b3da19bb8baf8e7ef53cd6 SHA512 279228aa315ff5fd1a23df23527aff58b2319f11f9fc7d939fa285ea933b4cc6d223451e20ecf7f50baba9f6c9c100e57cb77675d0d17fa77f19d3fea2ccc193
-EBUILD libnvidia-container-1.17.2.ebuild 3261 BLAKE2B 644e4b61d00ce083d60f4d13601f85756feccac334b4876cffc9ca65e36e230c15dd88df1a1354bfef25e9d542cd0a4b5b53ea5ead76f2b922415b4961a2c3a4 SHA512 2063f0a9ac90e5ae3cc90dadee4edb5bcc0eb0e7fcd62bcdc9306d21bb80680542998e57336831c28150e6c1343ac7f2bf41da139aa3d27573e6129bbfdf34c2
-EBUILD libnvidia-container-9999.ebuild 3261 BLAKE2B 644e4b61d00ce083d60f4d13601f85756feccac334b4876cffc9ca65e36e230c15dd88df1a1354bfef25e9d542cd0a4b5b53ea5ead76f2b922415b4961a2c3a4 SHA512 2063f0a9ac90e5ae3cc90dadee4edb5bcc0eb0e7fcd62bcdc9306d21bb80680542998e57336831c28150e6c1343ac7f2bf41da139aa3d27573e6129bbfdf34c2
+EBUILD libnvidia-container-1.17.2.ebuild 3260 BLAKE2B e52be0bc0d09afae9b4bae4cd01dab47a119fb8152bcdc706927e2a19ea0c783291d8b8399fd79c0440ecfd0b08119255ddb20c8c6941b711607f286bd69986f SHA512 d76505d08ae73e88f3e39c98c516503e52a9fe75cfd4f263cbf58823065b2605b0af59abd7416010a290e18c3e56d30838093f37b698d1713435a0d8a014bf72
+EBUILD libnvidia-container-1.17.3.ebuild 3345 BLAKE2B 0d1d649008de4805bdc36f5140f1517e2c11952a2431d9d97dc19bd36d41a0320677e9953249e6ce1fbeccd8b3f3f2621b1e0b18c5ac7af434e4dd036c1d748b SHA512 c2651e762003e161fb2155e8f3d696da59d44919c56987a91b14a357937f104f63e6e5954f6821b108070113c3fde977e161c592275e94075ebf3b863234fd46
+EBUILD libnvidia-container-1.17.4.ebuild 3387 BLAKE2B bc060f2184cbc976f89934bf4465e9977e45c89ed924307be34a1f5e45b6bdd1fbe2e080298e4ff15cb64bc6bec72e6949efb12a11be556c477b73b27c0cc672 SHA512 55e8942f39caf496fba61d82069f1f864cbf611750a63bba9bd064278f882cc84f8c5e5b6896cc1cbd64911570014fb2958993b1e3503c804317ac817ccada24
+EBUILD libnvidia-container-9999.ebuild 3345 BLAKE2B 0d1d649008de4805bdc36f5140f1517e2c11952a2431d9d97dc19bd36d41a0320677e9953249e6ce1fbeccd8b3f3f2621b1e0b18c5ac7af434e4dd036c1d748b SHA512 c2651e762003e161fb2155e8f3d696da59d44919c56987a91b14a357937f104f63e6e5954f6821b108070113c3fde977e161c592275e94075ebf3b863234fd46
MISC metadata.xml 1210 BLAKE2B 7a1af79b86dbe5a09eb4769a4a758db0f69cf93f8233dfe317822f1e9110bed783455abba7585bb2c67ef5386249dcf0c8ea07a42726674b87f86fd134a9fdb5 SHA512 48cd3f0a7170a0d6a5677da24e90bff0e9b6ed308a0cbec9e0e47e04d5a8f5d381eec7f992acdd3c8b1de4f144e2ba27c57b7d50d71ba3747ccb5f2bc44d860d
diff --git a/sys-libs/libnvidia-container/files/libnvidia-container-1.17.4-go-1.24.patch b/sys-libs/libnvidia-container/files/libnvidia-container-1.17.4-go-1.24.patch
new file mode 100644
index 000000000000..e2439651dd04
--- /dev/null
+++ b/sys-libs/libnvidia-container/files/libnvidia-container-1.17.4-go-1.24.patch
@@ -0,0 +1,48 @@
+https://patch-diff.githubusercontent.com/raw/NVIDIA/libnvidia-container/pull/297.patch
+
+From 1c680195fdc85948d635286b72a6ad9f823b5987 Mon Sep 17 00:00:00 2001
+From: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
+Date: Thu, 13 Feb 2025 10:18:59 +0100
+Subject: [PATCH] Fix building with Go 1.24
+
+Go 1.24 does not allow defining methods on C types anymore, so make convert a function, not a method.
+
+Fixes the following error when building with Go 1.24:
+`./main.go:35:10: cannot define new methods on non-local type CDeviceRule`
+
+Signed-off-by: Dmitry Sharshakov <dmitry.sharshakov@siderolabs.com>
+---
+ src/nvcgo/main.go | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/nvcgo/main.go b/src/nvcgo/main.go
+index 1523a06d..ed43be8e 100644
+--- a/src/nvcgo/main.go
++++ b/src/nvcgo/main.go
+@@ -32,7 +32,7 @@ func main() {}
+ type CDeviceRule = C.struct_device_rule
+
+ // Convert a C-based DeviceRule to a Go-based cgroup.DeviceRule
+-func (r *CDeviceRule) convert() cgroup.DeviceRule {
++func convert(r *CDeviceRule) cgroup.DeviceRule {
+ return cgroup.DeviceRule{
+ Allow: bool(r.allow),
+ Type: C.GoString(r._type),
+@@ -67,7 +67,7 @@ func GetDeviceCGroupMountPath(version C.int, procRootPath *C.char, pid C.pid_t,
+ return -1
+ }
+ *cgroupMountPath = C.CString(p)
+- *cgroupRootPrefix= C.CString(r)
++ *cgroupRootPrefix = C.CString(r)
+
+ return 0
+ }
+@@ -100,7 +100,7 @@ func AddDeviceRules(version C.int, cgroupPath *C.char, crules []CDeviceRule, rer
+
+ rules := make([]cgroup.DeviceRule, len(crules))
+ for i, cr := range crules {
+- rules[i] = cr.convert()
++ rules[i] = convert(&cr)
+ }
+
+ err = api.AddDeviceRules(C.GoString(cgroupPath), rules)
diff --git a/sys-libs/libnvidia-container/libnvidia-container-1.17.2.ebuild b/sys-libs/libnvidia-container/libnvidia-container-1.17.2.ebuild
index 02a66df0cfc1..a516201845eb 100644
--- a/sys-libs/libnvidia-container/libnvidia-container-1.17.2.ebuild
+++ b/sys-libs/libnvidia-container/libnvidia-container-1.17.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,7 +19,7 @@ else
https://github.com/NVIDIA/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz
"
S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
- KEYWORDS="~amd64"
+ KEYWORDS="amd64"
fi
NVMODS="${WORKDIR}/nvidia-modprobe-${NVMODV}"
SRC_URI+="
diff --git a/sys-libs/libnvidia-container/libnvidia-container-1.17.3.ebuild b/sys-libs/libnvidia-container/libnvidia-container-1.17.3.ebuild
new file mode 100644
index 000000000000..5d4b6cda8900
--- /dev/null
+++ b/sys-libs/libnvidia-container/libnvidia-container-1.17.3.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# check the VERSION in libnvidia-container/mk/nvidia-modprobe.mk
+NVMODV="550.54.14"
+
+DESCRIPTION="NVIDIA container runtime library"
+HOMEPAGE="https://github.com/NVIDIA/libnvidia-container"
+
+if [[ "${PV}" == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/NVIDIA/${PN}.git"
+else
+ SRC_URI="
+ https://github.com/NVIDIA/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz
+ "
+ S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
+ KEYWORDS="~amd64"
+fi
+NVMODS="${WORKDIR}/nvidia-modprobe-${NVMODV}"
+SRC_URI+="
+ https://github.com/NVIDIA/nvidia-modprobe/archive/${NVMODV}.tar.gz -> ${PN}-nvidia-modprobe-${NVMODV}.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+IUSE="+seccomp static-libs"
+
+# libtirpc
+# NOTE It seams that library also has optional support for net-libs/libtirpc, but I didn't
+# manage to build without it, probably the support for that build-roted away.
+DEPEND="
+ net-libs/libtirpc:=
+ sys-libs/libcap
+ virtual/libelf:=
+ seccomp? ( sys-libs/libseccomp )
+"
+
+RDEPEND="${DEPEND}
+ elibc_glibc? ( x11-drivers/nvidia-drivers )
+"
+
+BDEPEND="
+ dev-lang/go
+ net-libs/rpcsvc-proto
+ sys-apps/lsb-release
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.17.0-fix-makefile-r1.patch"
+)
+
+DOCS=( NOTICE README.md )
+
+src_unpack() {
+ default_src_unpack
+ if [[ "${PV}" == "9999" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # nvidia-modprobe patching based on libnvidia-container/mk/nvidia-modprobe.mk
+ mkdir -p "${S}"/deps/src/nvidia-modprobe-"${NVMODV}" || die
+ cp -r "${NVMODS}"/modprobe-utils/ "${S}"/deps/src/nvidia-modprobe-"${NVMODV}"/ || die
+ touch "${S}/deps/src/nvidia-modprobe-${NVMODV}/.download_stamp" || die
+ pushd "${S}/deps/src/nvidia-modprobe-${NVMODV}" || die
+ eapply -p1 "${S}"/mk/nvidia-modprobe.patch
+ popd || die
+
+ if ! tc-is-gcc; then
+ ewarn "libnvidia-container must be built with gcc because of option \"-fplan9-extensions\"!"
+ ewarn "Ignoring CC=$(tc-getCC) and forcing ${CHOST}-gcc"
+ export CC=${CHOST}-gcc AR=${CHOST}-gcc-ar
+ tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}"
+ fi
+
+ default
+}
+
+src_configure() {
+ export GOPATH="${S}"
+ export GOFLAGS="-mod=vendor"
+ export CFLAGS="${CFLAGS}"
+ export LDFLAGS="${LDFLAGS}"
+ export CGO_CFLAGS="${CGO_CFLAGS:-$CFLAGS}"
+ export CGO_LDFLAGS="${CGO_LDFLAGS:-$LDFLAGS}"
+
+ tc-export LD OBJCOPY PKG_CONFIG
+
+ # we could also set GO compiller, but it currently defaults to gccgo, but as for now I believe
+ # most users will prefer dev-lang/go and they usually don't define GO="go" their make.conf either.
+ # tc-export GO
+
+ my_makeopts=(
+ prefix="${EPREFIX}/usr"
+ libdir="${EPREFIX}/usr/$(get_libdir)"
+ GO_LDFLAGS="-compressdwarf=false -linkmode=external"
+ WITH_SECCOMP="$(usex seccomp)"
+ )
+ # WITH_TIRPC="$(usex libtirpc)"
+
+ if [[ "${PV}" != "9999" ]] ; then
+ IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
+
+ my_makeopts=( "${my_makeopts[@]}"
+ REVISION="${PV}"
+ LIB_VERSION="${MY_LIB_VERSION}"
+ LIB_TAG="${MY_LIB_TAG}"
+ )
+ fi
+}
+
+src_compile() {
+ emake "${my_makeopts[@]}"
+}
+
+src_install() {
+ emake "${my_makeopts[@]}" DESTDIR="${D}" install
+ # Install docs
+ einstalldocs # Bug 831705
+ # Cleanup static libraries
+ if ! use static-libs ; then
+ find "${ED}" -name '*.a' -delete || die # Bug 783984
+ fi
+}
diff --git a/sys-libs/libnvidia-container/libnvidia-container-1.17.4.ebuild b/sys-libs/libnvidia-container/libnvidia-container-1.17.4.ebuild
new file mode 100644
index 000000000000..b1e9266e9b98
--- /dev/null
+++ b/sys-libs/libnvidia-container/libnvidia-container-1.17.4.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# check the VERSION in libnvidia-container/mk/nvidia-modprobe.mk
+NVMODV="550.54.14"
+
+DESCRIPTION="NVIDIA container runtime library"
+HOMEPAGE="https://github.com/NVIDIA/libnvidia-container"
+
+if [[ "${PV}" == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/NVIDIA/${PN}.git"
+else
+ SRC_URI="
+ https://github.com/NVIDIA/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz
+ "
+ S="${WORKDIR}/${PN}-${PV/_rc/-rc.}"
+ KEYWORDS="~amd64"
+fi
+NVMODS="${WORKDIR}/nvidia-modprobe-${NVMODV}"
+SRC_URI+="
+ https://github.com/NVIDIA/nvidia-modprobe/archive/${NVMODV}.tar.gz -> ${PN}-nvidia-modprobe-${NVMODV}.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0/${PV}"
+IUSE="+seccomp static-libs"
+
+# libtirpc
+# NOTE It seams that library also has optional support for net-libs/libtirpc, but I didn't
+# manage to build without it, probably the support for that build-roted away.
+DEPEND="
+ net-libs/libtirpc:=
+ sys-libs/libcap
+ virtual/libelf:=
+ seccomp? ( sys-libs/libseccomp )
+"
+
+RDEPEND="${DEPEND}
+ elibc_glibc? ( x11-drivers/nvidia-drivers )
+"
+
+BDEPEND="
+ dev-lang/go
+ net-libs/rpcsvc-proto
+ sys-apps/lsb-release
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.17.0-fix-makefile-r1.patch"
+ "${FILESDIR}/${PN}-1.17.4-go-1.24.patch"
+)
+
+DOCS=( NOTICE README.md )
+
+src_unpack() {
+ default_src_unpack
+ if [[ "${PV}" == "9999" ]] ; then
+ git-r3_src_unpack
+ fi
+}
+
+src_prepare() {
+ # nvidia-modprobe patching based on libnvidia-container/mk/nvidia-modprobe.mk
+ mkdir -p "${S}"/deps/src/nvidia-modprobe-"${NVMODV}" || die
+ cp -r "${NVMODS}"/modprobe-utils/ "${S}"/deps/src/nvidia-modprobe-"${NVMODV}"/ || die
+ touch "${S}/deps/src/nvidia-modprobe-${NVMODV}/.download_stamp" || die
+ pushd "${S}/deps/src/nvidia-modprobe-${NVMODV}" || die
+ eapply -p1 "${S}"/mk/nvidia-modprobe.patch
+ popd || die
+
+ if ! tc-is-gcc; then
+ ewarn "libnvidia-container must be built with gcc because of option \"-fplan9-extensions\"!"
+ ewarn "Ignoring CC=$(tc-getCC) and forcing ${CHOST}-gcc"
+ export CC=${CHOST}-gcc AR=${CHOST}-gcc-ar
+ tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}"
+ fi
+
+ default
+}
+
+src_configure() {
+ export GOPATH="${S}"
+ export GOFLAGS="-mod=vendor"
+ export CFLAGS="${CFLAGS}"
+ export LDFLAGS="${LDFLAGS}"
+ export CGO_CFLAGS="${CGO_CFLAGS:-$CFLAGS}"
+ export CGO_LDFLAGS="${CGO_LDFLAGS:-$LDFLAGS}"
+
+ tc-export LD OBJCOPY PKG_CONFIG
+
+ # we could also set GO compiller, but it currently defaults to gccgo, but as for now I believe
+ # most users will prefer dev-lang/go and they usually don't define GO="go" their make.conf either.
+ # tc-export GO
+
+ my_makeopts=(
+ prefix="${EPREFIX}/usr"
+ libdir="${EPREFIX}/usr/$(get_libdir)"
+ GO_LDFLAGS="-compressdwarf=false -linkmode=external"
+ WITH_SECCOMP="$(usex seccomp)"
+ )
+ # WITH_TIRPC="$(usex libtirpc)"
+
+ if [[ "${PV}" != "9999" ]] ; then
+ IFS='_' read -r MY_LIB_VERSION MY_LIB_TAG <<< "${PV}"
+
+ my_makeopts=( "${my_makeopts[@]}"
+ REVISION="${PV}"
+ LIB_VERSION="${MY_LIB_VERSION}"
+ LIB_TAG="${MY_LIB_TAG}"
+ )
+ fi
+}
+
+src_compile() {
+ emake "${my_makeopts[@]}"
+}
+
+src_install() {
+ emake "${my_makeopts[@]}" DESTDIR="${D}" install
+ # Install docs
+ einstalldocs # Bug 831705
+ # Cleanup static libraries
+ if ! use static-libs ; then
+ find "${ED}" -name '*.a' -delete || die # Bug 783984
+ fi
+}
diff --git a/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild b/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
index 02a66df0cfc1..5d4b6cda8900 100644
--- a/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
+++ b/sys-libs/libnvidia-container/libnvidia-container-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -73,6 +73,13 @@ src_prepare() {
eapply -p1 "${S}"/mk/nvidia-modprobe.patch
popd || die
+ if ! tc-is-gcc; then
+ ewarn "libnvidia-container must be built with gcc because of option \"-fplan9-extensions\"!"
+ ewarn "Ignoring CC=$(tc-getCC) and forcing ${CHOST}-gcc"
+ export CC=${CHOST}-gcc AR=${CHOST}-gcc-ar
+ tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}"
+ fi
+
default
}
@@ -84,12 +91,7 @@ src_configure() {
export CGO_CFLAGS="${CGO_CFLAGS:-$CFLAGS}"
export CGO_LDFLAGS="${CGO_LDFLAGS:-$LDFLAGS}"
- tc-export CC LD OBJCOPY PKG_CONFIG
-
- if ! tc-is-gcc; then
- eerror "Building ${PN} with clang is not supported because of option \"-fplan9-extensions\"!"
- die "$(tc-getCC) is not a supported compiler. Please use sys-devel/gcc"
- fi
+ tc-export LD OBJCOPY PKG_CONFIG
# we could also set GO compiller, but it currently defaults to gccgo, but as for now I believe
# most users will prefer dev-lang/go and they usually don't define GO="go" their make.conf either.
diff --git a/sys-libs/libseccomp/Manifest b/sys-libs/libseccomp/Manifest
index 4edb62f81d0d..bb01642a90bb 100644
--- a/sys-libs/libseccomp/Manifest
+++ b/sys-libs/libseccomp/Manifest
@@ -5,10 +5,9 @@ AUX libseccomp-2.5.5-which-hunt.patch 1779 BLAKE2B 00ac7f24b718f450c258c0d69f600
AUX libseccomp-2.6.0-python-shared.patch 778 BLAKE2B 343bcb6c8e8cfc9bab3e0439d391ddfae023587f64f23860c1594cacb60d3af58e031edd5f37ba705bf3da01799ed12ab931a4b9a98e9063922f16cab814d5e6 SHA512 029b1403a3b0af5931833837d9b640d8d9ee172972f927f756137ca51bdbfd3f9cd42657029397fdb2cb727a5065356e05ca196fcb2170484f807bb65cd5a398
AUX libseccomp-python-shared.patch 759 BLAKE2B e2c42e18ca93fe5fddbc3a5b47ac0e6a29e566292fd62b87e6b45f6cb230570a2d1907a8b192e80b32c1900d069a4f10a866fa50bd9b88f5b78abff4206bd4cb SHA512 74548c7969869ff8f937a75eac720f1c654fad87dc17aed1c041bcb765586b4ee978a3ff7c6281be03277f6c74f2ec32624f91beb55afec3066a06a9e51483e2
DIST libseccomp-2.5.5-loongarch-r1.patch 119822 BLAKE2B 4aa75c1ac87b2ca25cf6be38dfd760879c7255ca8e6cf86be3ac6e354f76cdaf3c8e2f59b646254414ffb0f1ffe6b7c50478f4db895a6ce632db8782c9807e91 SHA512 f7cd768d672a25448b2a3ceda27db52e0d62b5d9ab3eeb906226b6ebc19332c89332e0b870aaf82d4ffcfd642c2deb6029a30ae9a6bd702ebad9fdd40622b582
-DIST libseccomp-2.5.5-loongarch64-20231204.patch.xz 41236 BLAKE2B 7831b28c275771bb675b4b5045e657d96c254e69cee7188a19f4812bc83343e0041772c20be1e7392ec88387726b49f34aa670a906b922dba531a0d35e548b1e SHA512 7870e536d834360dfec446493815b675a305f6bec1b79d0caae6fb546d2f694e77ce52e547bbcdb22cda272272bf3d5a427960b4aa76fb987d06ab035298007d
DIST libseccomp-2.5.5.tar.gz 642445 BLAKE2B d770cee1f3e02fbbcd9f25655b360ab38160ad800e2829a67f2b9da62b095a90be99ac851a67344cf95bd6810a6268da4655dc1d37d996e58239c4999eb41998 SHA512 f630e7a7e53a21b7ccb4d3e7b37616b89aeceba916677c8e3032830411d77a14c2d74dcf594cd193b1acc11f52595072e28316dc44300e54083d5d7b314a38da
-EBUILD libseccomp-2.5.5-r1.ebuild 3273 BLAKE2B cade5d5eca0b4576ffb41debba45ff49e1a36b79f38b7d2fd8add821b174c9e73a7e9b20f07007e70b6b3f1d9e37ff9735ba38dcb300abf985a1c623cfb43528 SHA512 0e406903011d194f42fd1a2f4135759e89ebcc810722e8efefc1c68390e42ef4d9f26fd7df7955bd96faebedf74bbde37e04561d8b6601f2d49f1f21e790827b
+DIST libseccomp-2.6.0.tar.gz 685655 BLAKE2B 45c4f4dd67db5848bb536613e8929633f95cfbeb8738525381a76631187e7b0fc2c02f1a103579cd0f4135e9c175250fe2d784b85cc85424ec3125b4dafcf11c SHA512 9039478656d9b670af2ff4cb67b6b1fa315821e59d2f82ba6247e988859ddc7e3d15fea159eccca161bf2890828bb62aa6ab4d6b7ff55f27a9d6bd9532eeee1b
EBUILD libseccomp-2.5.5-r2.ebuild 3320 BLAKE2B dd3464cbde08c57809e23c39b199e4a2bb9cc2ebbe743cee71884a653fe0d491596c1e177ce6fa6105e9981f813b1e2336bad74b60174aa229876f9e889c049f SHA512 23c82d3ca67731fd620c35523810b6f38f0252e15eeaf5b501e8e122f788a47065295f389598d705f826b4fcd15b41111d0fd043a517774afbcc7d760647cf93
-EBUILD libseccomp-2.5.5.ebuild 2933 BLAKE2B d2b8b53e01877d343de0b6838b2bf4b3addeec676fbd89fae289788da03fb4b9b7af89e193e17621361bb39e33f77f80393a7807887010016dc7d49120653b1d SHA512 9f911a3647dac012b5cad4c919ba1a286fbc9348320810f7b772125da4250c4d26ae5cb870caf96a45930f3f040296f375b31818e69c0ccee826b497208d7d86
-EBUILD libseccomp-9999.ebuild 2433 BLAKE2B 50afb42077d398c80404844c9d865b2b5760f157c7455f8b74ab666f16ebec647f413649091a4d1406f7b7d5e0b9daf1a0edf4a3ee83f9eb7c495b8817cf06e4 SHA512 c0abf7f041c37df9047fb4e7e9c4632978be2d90c93b5756bdfff9167d2cd11df5065266c23eefd70feb67cf731cb653d6ab9154ae077bcb714c11c38aacea18
+EBUILD libseccomp-2.6.0.ebuild 2474 BLAKE2B c369496bbd1b9ff18577fe206bb10c29e1e57d07064946cdafc24f80408a9fc3e9e0c5497e6a60eddcf9e481e6f6881b29624b98ad72dcf78dc0d7e28a01c628 SHA512 fa261d6311c5db8fabb5b47ae86449d20762e2b01d5e753747f6cbd73ce8777cbf4754f8193fd4d6e9451e1548c4fcbcbab5d2ea22541f07cdad49ce2bdfee35
+EBUILD libseccomp-9999.ebuild 2478 BLAKE2B e89d99162cb2d0c8f1f97d7a2364d9ec922beade6e332b2144fc9c466999bbccbedc5c7b157be9a18f4243b4156833bcdc048e669b4bd292acf69f555de77ea2 SHA512 bee65ea98d5093df55dcb4de55a32ef74c15fc819506488c20c8f02a98afae23d4043639cee6a1caab7dee16b0a8745e51a1c97363e330e908fcefcb3d0dc8b0
MISC metadata.xml 506 BLAKE2B 44dc13629234226f9314270c05d5c7c87575639fe12282e73697ead63d016ee9b52a89d673be5881bfcbf4d605024ecfcc3e19510581d334a6d5737df6a36b50 SHA512 93b0a53783499eab6b6264867a049830d765ee56d19b0c60e764f6651dff9f0d11efbec0783fdeb17c2c64d3f409bb4b1b1f74f267022775b992b61a1df03100
diff --git a/sys-libs/libseccomp/libseccomp-2.5.5.ebuild b/sys-libs/libseccomp/libseccomp-2.5.5.ebuild
deleted file mode 100644
index a7ba7a3f25c0..000000000000
--- a/sys-libs/libseccomp/libseccomp-2.5.5.ebuild
+++ /dev/null
@@ -1,111 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{10..11} )
-DISTUTILS_OPTIONAL=1
-
-inherit distutils-r1 multilib-minimal
-
-DESCRIPTION="high level interface to Linux seccomp filter"
-HOMEPAGE="https://github.com/seccomp/libseccomp"
-
-if [[ ${PV} == *9999 ]] ; then
- EGIT_REPO_URI="https://github.com/seccomp/libseccomp.git"
- PRERELEASE="2.6.0"
- inherit autotools git-r3
-else
- SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz
- experimental-loong? ( https://dev.gentoo.org/~xen0n/distfiles/${PN}-2.5.5-loongarch64-20231204.patch.xz )"
- KEYWORDS="-* amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-IUSE="experimental-loong python static-libs test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-# We need newer kernel headers; we don't keep strict control of the exact
-# version here, just be safe and pull in the latest stable ones. bug #551248
-DEPEND=">=sys-kernel/linux-headers-5.15
- python? ( ${PYTHON_DEPS} )"
-RDEPEND="${DEPEND}"
-BDEPEND="${DEPEND}
- dev-util/gperf
- python? ( dev-python/cython[${PYTHON_USEDEP}] )"
-
-PATCHES=(
- "${FILESDIR}"/libseccomp-python-shared.patch
- "${FILESDIR}"/libseccomp-2.5.3-skip-valgrind.patch
- "${FILESDIR}"/libseccomp-2.5.5-which-hunt.patch
-)
-
-src_prepare() {
- if use experimental-loong; then
- PATCHES+=( "${WORKDIR}/${PN}-2.5.5-loongarch64-20231204.patch" )
- fi
-
- default
-
- if use experimental-loong; then
- # touch generated files to avoid activating maintainer mode
- # remove when loong-fix-build.patch is no longer necessary
- touch ./aclocal.m4 ./configure ./configure.h.in || die
- find . -name Makefile.in -exec touch {} + || die
- fi
-
- if [[ ${PV} == *9999 ]] ; then
- sed -i -e "s/0.0.0/${PRERELEASE}/" configure.ac || die
-
- eautoreconf
- fi
-}
-
-multilib_src_configure() {
- local myeconfargs=(
- $(use_enable static-libs static)
- --disable-python
- )
-
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-do_python() {
- # setup.py reads VERSION_RELEASE from the environment
- local -x VERSION_RELEASE=${PRERELEASE-${PV}}
-
- pushd "${BUILD_DIR}/src/python" >/dev/null || die
- "$@"
- popd >/dev/null || die
-}
-
-multilib_src_compile() {
- emake
-
- if multilib_is_native_abi && use python ; then
- # setup.py expects libseccomp.so to live in "../.libs"
- # Copy the python files to the right place for this.
- rm -r "${BUILD_DIR}"/src/python || die
- cp -r "${S}"/src/python "${BUILD_DIR}"/src/python || die
- local -x CPPFLAGS="-I\"${BUILD_DIR}/include\" -I\"${S}/include\" ${CPPFLAGS}"
-
- do_python distutils-r1_src_compile
- fi
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
-
- if multilib_is_native_abi && use python ; then
- do_python distutils-r1_src_install
- fi
-}
-
-multilib_src_install_all() {
- find "${ED}" -type f -name "${PN}.la" -delete || die
-
- einstalldocs
-}
diff --git a/sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild b/sys-libs/libseccomp/libseccomp-2.6.0.ebuild
index 153293b5f8ca..3f9a29f106be 100644
--- a/sys-libs/libseccomp/libseccomp-2.5.5-r1.ebuild
+++ b/sys-libs/libseccomp/libseccomp-2.6.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_OPTIONAL=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 multilib-minimal
@@ -16,20 +16,15 @@ HOMEPAGE="https://github.com/seccomp/libseccomp"
if [[ ${PV} == *9999 ]] ; then
EGIT_REPO_URI="https://github.com/seccomp/libseccomp.git"
PRERELEASE="2.6.0"
- AUTOTOOLS_AUTO_DEPEND=yes
inherit autotools git-r3
else
- AUTOTOOLS_AUTO_DEPEND=no
- inherit autotools libtool
- SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz
- experimental-loong? ( https://github.com/matoro/libseccomp/compare/v${PV}..loongarch-r1.patch
- -> ${P}-loongarch-r1.patch )"
- KEYWORDS="-* amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux"
+ SRC_URI="https://github.com/seccomp/libseccomp/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="-* amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux"
fi
LICENSE="LGPL-2.1"
SLOT="0"
-IUSE="experimental-loong python static-libs test"
+IUSE="python static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
@@ -43,7 +38,6 @@ RDEPEND="${DEPEND}"
BDEPEND="
${DEPEND}
dev-util/gperf
- experimental-loong? ( ${AUTOTOOLS_DEPEND} )
python? (
${DISTUTILS_DEPS}
dev-python/cython[${PYTHON_USEDEP}]
@@ -51,35 +45,17 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/libseccomp-python-shared.patch
+ "${FILESDIR}"/libseccomp-2.6.0-python-shared.patch
"${FILESDIR}"/libseccomp-2.5.3-skip-valgrind.patch
- "${FILESDIR}"/libseccomp-2.5.5-which-hunt.patch
- "${FILESDIR}"/libseccomp-2.5.5-arch-syscall-check.patch
)
src_prepare() {
- if use experimental-loong; then
- PATCHES+=( "${DISTDIR}/${P}-loongarch-r1.patch" )
- fi
-
default
if [[ ${PV} == *9999 ]] ; then
sed -i -e "s/0.0.0/${PRERELEASE}/" configure.ac || die
- fi
- if use experimental-loong; then
- # touch generated files to avoid activating maintainer mode
- # remove when loong-fix-build.patch is no longer necessary
- touch ./aclocal.m4 ./configure ./configure.h.in || die
- find . -name Makefile.in -exec touch {} + || die
- fi
-
- if [[ ${PV} == *9999 ]] || use experimental-loong; then
- rm -f "include/seccomp.h" || die
eautoreconf
- else
- elibtoolize
fi
}
@@ -111,6 +87,10 @@ multilib_src_compile() {
fi
}
+multilib_src_test() {
+ emake -Onone check
+}
+
multilib_src_install() {
emake DESTDIR="${D}" install
diff --git a/sys-libs/libseccomp/libseccomp-9999.ebuild b/sys-libs/libseccomp/libseccomp-9999.ebuild
index ac4df4483838..cc42ab905df3 100644
--- a/sys-libs/libseccomp/libseccomp-9999.ebuild
+++ b/sys-libs/libseccomp/libseccomp-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ EAPI=8
DISTUTILS_EXT=1
DISTUTILS_OPTIONAL=1
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 multilib-minimal
@@ -87,6 +87,10 @@ multilib_src_compile() {
fi
}
+multilib_src_test() {
+ emake -Onone check
+}
+
multilib_src_install() {
emake DESTDIR="${D}" install
diff --git a/sys-libs/libselinux/Manifest b/sys-libs/libselinux/Manifest
index 907048e886b9..86085fa5c9e4 100644
--- a/sys-libs/libselinux/Manifest
+++ b/sys-libs/libselinux/Manifest
@@ -1,6 +1,8 @@
DIST libselinux-3.6.tar.gz 194210 BLAKE2B 615198d47ecfb4b6274810cbe32cce5953dd44d1d04e8ce244213dc4ddbd61cde3515f4650046b805cf98f341aba718af8d7a9e1d66773172031ac19599f6032 SHA512 182dcdf3510083ff4b9376a4a6d6a7b33905ac3c5e974c188bf3965686c54b663162c543ecf15eab75102f3c91a2502d33d0f1104dec01dd9b14737ef3f2b544
DIST libselinux-3.7.tar.gz 194834 BLAKE2B 07d87c37608b480d17355334459ecb006573d61a7d3fbf622033838559397abcf343e6399f3a49b6cf24e106d03fd997397d061491d2129c15a378960dacc350 SHA512 e949c20b606c50ad521b9592ce55ad6658e8c4b24d9838028f5aba0a4fc762b6d0d0d0d207f5bef7a2e41485e12d91382fa6090df27152dbb40071b273419352
+DIST libselinux-3.8.tar.gz 204389 BLAKE2B fdba907a3060138e065c016ab510042fc9e5760db278b99a6508f475fdb25125a7cbaba541e3e681b6cf4a092a2ad40ca08d7736687c9f326c9fe2c87953da85 SHA512 e36edec33c3960679a8975f839a4d64d4b1f82d51346fba21082c2686136259040099c7fee2c947ac2ca180d61d10356c9b3d359a1c5f1242b6ecdd7c036005e
EBUILD libselinux-3.6-r1.ebuild 4211 BLAKE2B 315e1097fddba4754f70e0c41f0255011a6ef389a3304b33dd25f0919002637542052c1ec9a599b43021a5ed86b3a43f879ad310087b9177e21511468f6fe115 SHA512 8b9abb27de59212d76631c3b8ce4c2480f1012d9953d54ed578c4b459988939b5abbcd3a3a96b18cf0e99be24004564cd699d723fa14b94ce3000cfb8297bbe0
EBUILD libselinux-3.7-r1.ebuild 4221 BLAKE2B 834336b9ca5a67fb1d2f1bd758e62582da58538372974323500e64658073882d2b998a2e003fe7ace1470c7522698d3ff659bcae6df123f5430d9b4b1cdefc53 SHA512 e7738bebe371900d08a14acc88e7cb5be06ccf4aa8add52ec130a4585dde12787ebd5261fca4068d98054dba23cf424a04af3b6f7e481dd45cf3624a9ad343af
+EBUILD libselinux-3.8.ebuild 4245 BLAKE2B bcb8f95ee4c6de8ec7e741190114da9ea39d084c3c9ca9f75161e422fb55b454c4d7c4f3eda2adf8e2f2c1b3d646a2023489cb6d8e38c51459cb8a1d1a19d956 SHA512 8c9d3752a990afa86f1b5b7ddaa293bbd24fc5e91d0240abc892068f9f1959efddac82a7265d566b5ab6abcac1c657d87e72cc990c28e55a75708b42c2e157b7
EBUILD libselinux-9999.ebuild 4245 BLAKE2B bcb8f95ee4c6de8ec7e741190114da9ea39d084c3c9ca9f75161e422fb55b454c4d7c4f3eda2adf8e2f2c1b3d646a2023489cb6d8e38c51459cb8a1d1a19d956 SHA512 8c9d3752a990afa86f1b5b7ddaa293bbd24fc5e91d0240abc892068f9f1959efddac82a7265d566b5ab6abcac1c657d87e72cc990c28e55a75708b42c2e157b7
MISC metadata.xml 649 BLAKE2B 0d4704823be4492064b2d69a31581397cdedc9e5d564090d9770aa79124c53a66f98290fb4de22abb4f81e732267589ad1df3beda2bb71a3cf5a70f84b885dc4 SHA512 6b240fad142e4ba6457f70c83fb3171c6869ed4ac5729d51b8cc159b2471959c24a0a290ff91fa1d90e0f24f96be76a69487174de22c603539f3fc0e7109a561
diff --git a/sys-libs/libselinux/libselinux-3.8.ebuild b/sys-libs/libselinux/libselinux-3.8.ebuild
new file mode 100644
index 000000000000..5bc7fa6d98fe
--- /dev/null
+++ b/sys-libs/libselinux/libselinux-3.8.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+PYTHON_COMPAT=( python3_{10..13} )
+USE_RUBY="ruby31 ruby32 ruby33"
+
+# No, I am not calling ruby-ng
+inherit flag-o-matic python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="${PV//_/-}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="SELinux userland library"
+HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git"
+ S="${WORKDIR}/${P}/${PN}"
+else
+ SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="public-domain"
+SLOT="0"
+IUSE="python ruby static-libs ruby_targets_ruby31 ruby_targets_ruby32 ruby_targets_ruby33"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="dev-libs/libpcre2:=[static-libs?,${MULTILIB_USEDEP}]
+ >=sys-libs/libsepol-${PV}:=[${MULTILIB_USEDEP},static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ ruby? (
+ ruby_targets_ruby31? ( dev-lang/ruby:3.1 )
+ ruby_targets_ruby32? ( dev-lang/ruby:3.2 )
+ ruby_targets_ruby33? ( dev-lang/ruby:3.3 )
+ )
+ elibc_musl? ( sys-libs/fts-standalone )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig
+ python? (
+ >=dev-lang/swig-2.0.9
+ dev-python/pip[${PYTHON_USEDEP}]
+)
+ ruby? ( >=dev-lang/swig-2.0.9 )"
+
+src_prepare() {
+ eapply_user
+
+ multilib_copy_sources
+}
+
+multilib_src_compile() {
+ tc-export AR CC PKG_CONFIG RANLIB
+
+ local -x CFLAGS="${CFLAGS} -fno-semantic-interposition"
+
+ emake \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ LDFLAGS="-fPIC ${LDFLAGS} -pthread" \
+ USE_PCRE2=y \
+ USE_LFS=y \
+ FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \
+ all
+
+ if multilib_is_native_abi && use python; then
+ building() {
+ emake \
+ LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_PCRE2=y \
+ USE_LFS=y \
+ FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \
+ pywrap
+ }
+ python_foreach_impl building
+ fi
+
+ if multilib_is_native_abi && use ruby; then
+ building() {
+ einfo "Calling rubywrap for ${1}"
+ # Clean up .lo file to force rebuild
+ rm -f src/selinuxswig_ruby_wrap.lo || die
+ emake \
+ RUBY=${1} \
+ LDFLAGS="-fPIC ${LDFLAGS} -lpthread" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_LFS=y \
+ USE_PCRE2=y \
+ FTS_LDLIBS="$(usex elibc_musl '-lfts' '')" \
+ rubywrap
+ }
+ for RUBYTARGET in ${USE_RUBY}; do
+ use ruby_targets_${RUBYTARGET} || continue
+
+ building ${RUBYTARGET}
+ done
+ fi
+}
+
+multilib_src_install() {
+ emake DESTDIR="${D}" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_LFS=y \
+ USE_PCRE2=y \
+ install
+
+ if multilib_is_native_abi && use python; then
+ installation() {
+ emake DESTDIR="${D}" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ USE_LFS=y \
+ USE_PCRE2=y \
+ install-pywrap
+ python_optimize # bug 531638
+ }
+ python_foreach_impl installation
+ fi
+
+ if multilib_is_native_abi && use ruby; then
+ installation() {
+ einfo "Calling install-rubywrap for ${1}"
+ # Forcing (re)build here as otherwise the resulting SO file is used for all ruby versions
+ rm src/selinuxswig_ruby_wrap.lo
+ emake DESTDIR="${D}" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="/$(get_libdir)" \
+ RUBY=${1} \
+ USE_LFS=y \
+ USE_PCRE2=y \
+ install-rubywrap
+ }
+ for RUBYTARGET in ${USE_RUBY}; do
+ use ruby_targets_${RUBYTARGET} || continue
+
+ installation ${RUBYTARGET}
+ done
+ fi
+
+ use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die
+}
+
+pkg_postinst() {
+ # Fix bug 473502
+ for POLTYPE in ${POLICY_TYPES};
+ do
+ mkdir -p "${ROOT}/etc/selinux/${POLTYPE}/contexts/files" || die
+ touch "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/file_contexts.local" || die
+ # Fix bug 516608
+ for EXPRFILE in file_contexts file_contexts.homedirs file_contexts.local ; do
+ if [[ -f "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" ]]; then
+ sefcontext_compile "${ROOT}/etc/selinux/${POLTYPE}/contexts/files/${EXPRFILE}" \
+ || die "Failed to recompile contexts"
+ fi
+ done
+ done
+}
diff --git a/sys-libs/libsemanage/Manifest b/sys-libs/libsemanage/Manifest
index 668a2666562d..73fa35d6411d 100644
--- a/sys-libs/libsemanage/Manifest
+++ b/sys-libs/libsemanage/Manifest
@@ -1,6 +1,7 @@
-DIST libsemanage-3.6.tar.gz 182583 BLAKE2B 3ed9ef06601093983fa41ad6ab9f7eeae241dce98937db04efca6f421afcfd3f59cf5e51d24c596ae03997a398949ed84fbdf629518e3c382a5453129b0a87ab SHA512 8998b6a1b254a9673b99ae4d70a1edc769bb728a44f573cdf62e0a9c9392b77644ee2d70e1936a2f8a9a7f8b063ce98a981f4b8b7060f5b82791889330d69364
+AUX libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch 14889 BLAKE2B 229ab4716a09ca9271c240c52ec75a69c05641bb47e63b506bcb3086fb331fb5e2285443bb33b5f7ef06b43954d3f15629b940c255bba98125c103200be96004 SHA512 cea05fa82ccf1ca1d1a789bb869442cc686d17c682e465e87f519207e996a30a8658064c440956ab6cc7b7cdbbc4ce0e8afa1e9eef1d8b380a274f913aa6e891
DIST libsemanage-3.7.tar.gz 182896 BLAKE2B e8a4a9a57f1862efac7e46b33f34f2fdcd116a14487ca07f65aebed62b3914bb1892606a76ed8addcbdb111f361507294ae3c75975a10b90f5d554ba59d2562d SHA512 4b6370b02116364964ff24b93fb6629c885611de78419f649a027db38b4f1c3b3adf3b438efb34a92b49407ab8f9446ed4091fe4c99fa4752f0f5e3e31589415
-EBUILD libsemanage-3.6.ebuild 4406 BLAKE2B 778234d416e4942446572badef1f2bbaba1de2eea5789da174c793aa463ad5a80cdfd3d00f3ceccf8fbb13523a169447578c86dff495f3503d84a96adf3c0614 SHA512 52147140e1bdfa6adc3c905aa4a740b228799815ceccdc7c6e843cd3d710e8688fc14178bc8ddb4ccc6242fcc4b20f1ad5a7c0aa44ef3bc4e2a4a1d59503faf3
-EBUILD libsemanage-3.7.ebuild 3712 BLAKE2B c3b135d233fad2807f82ce41da64cbda18a1dc8cbd47b13e2167926a6afc1152230e8caed444dacfaf5b77fad7f58d548f4b338646dac218f3e2e0b0a26c675e SHA512 f379ef38ddb643ef7fa3d3b1222e89d76c2bfe1e76f93fdf6397f7c4e42f54a5028437b4f487756f1c9c1c4127ab6b765ccdc5533df40ac322b1c07a431a4cea
-EBUILD libsemanage-9999.ebuild 3712 BLAKE2B c3b135d233fad2807f82ce41da64cbda18a1dc8cbd47b13e2167926a6afc1152230e8caed444dacfaf5b77fad7f58d548f4b338646dac218f3e2e0b0a26c675e SHA512 f379ef38ddb643ef7fa3d3b1222e89d76c2bfe1e76f93fdf6397f7c4e42f54a5028437b4f487756f1c9c1c4127ab6b765ccdc5533df40ac322b1c07a431a4cea
+DIST libsemanage-3.8.tar.gz 184583 BLAKE2B 52f3b2e8cacf31ee0c97c2c0492296b60a32049487bbd6b4e1bbf929c859c46feaeb926cd43c72a1e595aeb335a5c35cc80bfc0067c5b12e6e859ec893b5385b SHA512 493168ddae15566c9526824081f076302bb44077fe6a935166d244fbbb49fae73b7416898bded8df0c0472939b4f79f1da0bf014bc70951026cdd6b065353ceb
+EBUILD libsemanage-3.7.ebuild 3776 BLAKE2B 4b5419a2781ea36d8a70e139eb5085ec4409799339756ada25454eff346e60cbbaab77f100fd49a4d9bc4671177ac476b8781af7113814f1b0242f3fbd0f4b75 SHA512 5ab74c1bd15811ae270e21cbaacc34450b334c72aa4a8fc79226b88e187df58158c44b0e45ad5341c5da30b697e6872c85e58b42b0b371dc3bc1279d3f448275
+EBUILD libsemanage-3.8.ebuild 3712 BLAKE2B 68f9bc4d8d83e722a81cd32fcd2c31913bceed92b78584cde6a95c6c4162f96929b9885d6827d43fa74655b8d25294ddf35bf49602fc144153d8b4cb014d8683 SHA512 4855aa1e858b5d1b22d3bddb531dd227fa29cae9d7be382d37e8b6ed0fce419be261c1e5e9ee875138a36ba75352e6bdceb0b9fcc4fe65fe097a2f064f9e4032
+EBUILD libsemanage-9999.ebuild 3712 BLAKE2B 68f9bc4d8d83e722a81cd32fcd2c31913bceed92b78584cde6a95c6c4162f96929b9885d6827d43fa74655b8d25294ddf35bf49602fc144153d8b4cb014d8683 SHA512 4855aa1e858b5d1b22d3bddb531dd227fa29cae9d7be382d37e8b6ed0fce419be261c1e5e9ee875138a36ba75352e6bdceb0b9fcc4fe65fe097a2f064f9e4032
MISC metadata.xml 405 BLAKE2B b41c6e744a90be985e11b1329493febf85889218623fabfc731306b2851f6067bc75126084e40ab82f3b367ef0e13e659dbc930d7786adff967b546fc5f89792 SHA512 8f08f6c3d07f4e76cd4b6a5033dcd7138b3f94c2cab46e1cf89dc9b113810edbe8e6d20298eadefc00b4e32a69057c1ed0c4255144edb2c5e9ce9e139c7dba70
diff --git a/sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch b/sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch
new file mode 100644
index 000000000000..92769c2e8f13
--- /dev/null
+++ b/sys-libs/libsemanage/files/libsemanage-3.7-fix-swig-bindings-for-4.3.0.patch
@@ -0,0 +1,418 @@
+https://github.com/SELinuxProject/selinux/commit/e38815d7b44cac435195c82a54d2bf2517bc4b1a
+From 8ff90eff4d5a49e64d5b86247665d54787c9dc1d Mon Sep 17 00:00:00 2001
+From: Petr Lautrbach <lautrbach@redhat.com>
+Date: Wed, 16 Oct 2024 20:48:12 +0200
+Subject: [PATCH] libsemanage: fix swig bindings for 4.3.0
+
+https://github.com/swig/swig/blob/master/CHANGES.current
+
+"[Python] #2907 Fix returning null from functions with output
+parameters. Ensures OUTPUT and INOUT typemaps are handled
+consistently wrt return type.
+
+New declaration of SWIG_Python_AppendOutput is now:
+
+ SWIG_Python_AppendOutput(PyObject* result, PyObject* obj, int is_void);
+
+The 3rd parameter is new and the new $isvoid special variable
+should be passed to it, indicating whether or not the wrapped
+function returns void.
+
+Also consider replacing with:
+
+ SWIG_AppendOutput(PyObject* result, PyObject* obj);
+
+which calls SWIG_Python_AppendOutput with same parameters but adding $isvoid
+for final parameter."
+
+Fixes: https://github.com/SELinuxProject/selinux/issues/447
+
+Suggested-by: Jitka Plesnikova <jplesnik@redhat.com>
+Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
+Acked-by: James Carter <jwcart2@gmail.com>
+---
+ src/semanageswig_python.i | 64 +++++++++++++--------------
+ src/semanageswig_ruby.i | 32 +++++++-------
+ 2 files changed, 48 insertions(+), 48 deletions(-)
+
+diff --git a/src/semanageswig_python.i b/src/semanageswig_python.i
+index 5f011396..0e27424f 100644
+--- a/src/semanageswig_python.i
++++ b/src/semanageswig_python.i
+@@ -111,7 +111,7 @@
+ }
+
+ %typemap(argout) char** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_FromCharPtr(*$1));
++ $result = SWIG_AppendOutput($result, SWIG_FromCharPtr(*$1));
+ free(*$1);
+ }
+
+@@ -134,7 +134,7 @@
+ NULL, NULL, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -148,7 +148,7 @@
+ }
+
+ %typemap(argout) semanage_module_info_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ /** module key typemaps **/
+@@ -160,7 +160,7 @@
+ }
+
+ %typemap(argout) semanage_module_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ /** context typemaps **/
+@@ -172,7 +172,7 @@
+ }
+
+ %typemap(argout) semanage_context_t** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ /** boolean typemaps **/
+@@ -197,7 +197,7 @@
+ (void (*) (void*)) &semanage_bool_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -207,11 +207,11 @@
+ }
+
+ %typemap(argout) semanage_bool_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_bool_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_bool_key_t **(semanage_bool_key_t *temp=NULL) {
+@@ -240,7 +240,7 @@
+ (void (*) (void*)) &semanage_fcontext_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -250,11 +250,11 @@
+ }
+
+ %typemap(argout) semanage_fcontext_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_fcontext_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_fcontext_key_t **(semanage_fcontext_key_t *temp=NULL) {
+@@ -284,7 +284,7 @@
+ (void (*) (void*)) &semanage_iface_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -294,11 +294,11 @@
+ }
+
+ %typemap(argout) semanage_iface_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_iface_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_iface_key_t **(semanage_iface_key_t *temp=NULL) {
+@@ -328,7 +328,7 @@
+ (void (*) (void*)) &semanage_seuser_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -338,11 +338,11 @@
+ }
+
+ %typemap(argout) semanage_seuser_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_seuser_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_seuser_key_t **(semanage_seuser_key_t *temp=NULL) {
+@@ -371,7 +371,7 @@
+ (void (*) (void*)) &semanage_user_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -381,11 +381,11 @@
+ }
+
+ %typemap(argout) semanage_user_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_user_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_user_key_t **(semanage_user_key_t *temp=NULL) {
+@@ -414,7 +414,7 @@
+ (void (*) (void*)) &semanage_port_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -424,11 +424,11 @@
+ }
+
+ %typemap(argout) semanage_port_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_port_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_port_key_t **(semanage_port_key_t *temp=NULL) {
+@@ -457,7 +457,7 @@
+ (void (*) (void*)) &semanage_ibpkey_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -467,11 +467,11 @@
+ }
+
+ %typemap(argout) semanage_ibpkey_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_ibpkey_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_ibpkey_key_t **(semanage_ibpkey_key_t *temp=NULL) {
+@@ -500,7 +500,7 @@
+ (void (*) (void*)) &semanage_ibendport_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -510,11 +510,11 @@
+ }
+
+ %typemap(argout) semanage_ibendport_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_ibendport_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_ibendport_key_t **(semanage_ibendport_key_t *temp=NULL) {
+@@ -543,7 +543,7 @@
+ (void (*) (void*)) &semanage_node_free, &plist) < 0)
+ $result = SWIG_From_int(STATUS_ERR);
+ else
+- $result = SWIG_Python_AppendOutput($result, plist);
++ $result = SWIG_AppendOutput($result, plist);
+ }
+ }
+ }
+@@ -553,12 +553,12 @@
+ }
+
+ %typemap(argout) semanage_node_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+
+ %typemap(argout) semanage_node_key_t ** {
+- $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_node_key_t **(semanage_node_key_t *temp=NULL) {
+diff --git a/src/semanageswig_ruby.i b/src/semanageswig_ruby.i
+index e030e4ae..9010b545 100644
+--- a/src/semanageswig_ruby.i
++++ b/src/semanageswig_ruby.i
+@@ -38,7 +38,7 @@
+ }
+
+ %typemap(argout) semanage_module_info_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ /** context typemaps **/
+@@ -50,7 +50,7 @@
+ }
+
+ %typemap(argout) semanage_context_t** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ /** boolean typemaps **/
+@@ -66,11 +66,11 @@
+ }
+
+ %typemap(argout) semanage_bool_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_bool_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_bool_key_t **(semanage_bool_key_t *temp=NULL) {
+@@ -90,11 +90,11 @@
+ }
+
+ %typemap(argout) semanage_fcontext_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_fcontext_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_fcontext_key_t **(semanage_fcontext_key_t *temp=NULL) {
+@@ -114,11 +114,11 @@
+ }
+
+ %typemap(argout) semanage_iface_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_iface_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_iface_key_t **(semanage_iface_key_t *temp=NULL) {
+@@ -138,11 +138,11 @@
+ }
+
+ %typemap(argout) semanage_seuser_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_seuser_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_seuser_key_t **(semanage_seuser_key_t *temp=NULL) {
+@@ -162,11 +162,11 @@
+ }
+
+ %typemap(argout) semanage_user_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_user_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_user_key_t **(semanage_user_key_t *temp=NULL) {
+@@ -186,11 +186,11 @@
+ }
+
+ %typemap(argout) semanage_port_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(argout) semanage_port_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_port_key_t **(semanage_port_key_t *temp=NULL) {
+@@ -210,12 +210,12 @@
+ }
+
+ %typemap(argout) semanage_node_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+
+ %typemap(argout) semanage_node_key_t ** {
+- $result = SWIG_Ruby_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
++ $result = SWIG_AppendOutput($result, SWIG_NewPointerObj(*$1, $*1_descriptor, 0));
+ }
+
+ %typemap(in, numinputs=0) semanage_node_key_t **(semanage_node_key_t *temp=NULL) {
+--
+2.48.1
+
diff --git a/sys-libs/libsemanage/libsemanage-3.7.ebuild b/sys-libs/libsemanage/libsemanage-3.7.ebuild
index 89603aab06a7..5348266cbd85 100644
--- a/sys-libs/libsemanage/libsemanage-3.7.ebuild
+++ b/sys-libs/libsemanage/libsemanage-3.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86"
+ KEYWORDS="amd64 arm arm64 ~mips ~riscv x86"
S="${WORKDIR}/${MY_P}"
fi
@@ -41,8 +41,12 @@ BDEPEND=">=dev-lang/swig-2.0.4-r1
# full SELinux userland repo
RESTRICT="test"
+PATCHES=(
+ "${FILESDIR}/${PN}-3.7-fix-swig-bindings-for-4.3.0.patch"
+)
+
src_prepare() {
- eapply_user
+ default
echo >> "${S}/src/semanage.conf"
echo "# Set this to true to save the linked policy." >> "${S}/src/semanage.conf"
diff --git a/sys-libs/libsemanage/libsemanage-3.6.ebuild b/sys-libs/libsemanage/libsemanage-3.8.ebuild
index 126b568b1429..f272a120b74a 100644
--- a/sys-libs/libsemanage/libsemanage-3.6.ebuild
+++ b/sys-libs/libsemanage/libsemanage-3.8.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python3_{10..12} )
+EAPI="8"
+PYTHON_COMPAT=( python3_{10..13} )
inherit python-r1 toolchain-funcs multilib-minimal
@@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then
S="${WORKDIR}/${P}/${PN}"
else
SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
- KEYWORDS="amd64 arm arm64 ~mips ~riscv x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86"
S="${WORKDIR}/${MY_P}"
fi
@@ -115,16 +115,3 @@ multiib_src_install_all() {
python_setup
python_fix_shebang "${ED}"/usr/libexec/selinux/semanage_migrate_store
}
-
-pkg_postinst() {
- # Migrate the SELinux semanage configuration store if not done already
- local selinuxtype=$(awk -F'=' '/SELINUXTYPE=/ {print $2}' "${EROOT}"/etc/selinux/config 2>/dev/null)
- if [ -n "${selinuxtype}" ] && [ ! -d "${EROOT}"/var/lib/selinux/${selinuxtype}/active ] ; then
- ewarn "Since the 2.4 SELinux userspace, the policy module store is moved"
- ewarn "from /etc/selinux to /var/lib/selinux. The migration will be run now."
- ewarn "If there are any issues, it can be done manually by running:"
- ewarn "/usr/libexec/selinux/semanage_migrate_store"
- ewarn "For more information, please see"
- ewarn "- https://github.com/SELinuxProject/selinux/wiki/Policy-Store-Migration"
- fi
-}
diff --git a/sys-libs/libsemanage/libsemanage-9999.ebuild b/sys-libs/libsemanage/libsemanage-9999.ebuild
index 89603aab06a7..f272a120b74a 100644
--- a/sys-libs/libsemanage/libsemanage-9999.ebuild
+++ b/sys-libs/libsemanage/libsemanage-9999.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit python-r1 toolchain-funcs multilib-minimal
diff --git a/sys-libs/libsepol/Manifest b/sys-libs/libsepol/Manifest
index 04cb0acc257e..2d43124d37f7 100644
--- a/sys-libs/libsepol/Manifest
+++ b/sys-libs/libsepol/Manifest
@@ -1,6 +1,8 @@
DIST libsepol-3.6.tar.gz 509100 BLAKE2B c073c9437004df0c723125971ed26354dc6b8a78b069c593977062527342061303bcc48917fcd9623d17998748254f63408b233173f3c62e92ee0ea2f3c4a430 SHA512 35a42d2749fc4f71bc6b7488380714f56975564007128566f1c73e5c50bf81c17535b2cfda4583aacb4870aa2cd5885321c01523e415bda8b3326bfefb13d58e
DIST libsepol-3.7.tar.gz 511487 BLAKE2B 8e4a0b2b3731f49d8bc8ea03bd5269672428119578046bc7f38230e3c77459e6b9d4ab39285ea33c89d8e807499ef89faa606e4b4e1ecfac2c3d445454b16420 SHA512 85d12d0ba5a7a3225f08d041a18fd59641608db5e0a78a1e9649754e45be54a807cd422d4889b88da6e806b4af546336c7a0913448f08ac33dc6ffb983890ef8
+DIST libsepol-3.8.tar.gz 513780 BLAKE2B aca232da4f6bc21638f3e76d96c8349109edb64d8134c7d9c64bd4ee25c7ebbf69829eaa92493e0522a2a13e97a70f82514f24c6fff62e17f2a6874dd3fed516 SHA512 06da9bac1075b54177c3237994f3db0f9a50e16a363874df7ba11a52084bce4af9623ecfc1db1779b555dee6aab62fbfbf1cd03cf5760bd00f74ea5775897e09
EBUILD libsepol-3.6.ebuild 1114 BLAKE2B 94ab8f288daf3208748785f0440c24bbd4af0477f383c5d570db7a7d8eb98fe1f910d419a5fd41cb063bb06e7898a34b66dff7655e08f894e357324b99516a2d SHA512 be5926d4a51c07270d7cadacbaf8208b68803133c4a372127ad6f5e45261b0ca7a6cc5521a1f006805aacab721a0329a72fa40e4c87865723f054e23d55afb2c
EBUILD libsepol-3.7.ebuild 1197 BLAKE2B add6fc44ab8a13b5f953233445ed57aca7e9fe4072f11270103767e6e9c42e8821cee31d6bb5b31c7132f3f2e8b39e96fa386244d95e2d4604448d899b6cac04 SHA512 c427f7c086224fe171e7bdb45622ad99f2a2aa5dca65fc970ff51ee77f4e876df94fc682903e5c0aba64e2d1e5916f18629f0f4f53399dc8067ac14bbf3c6d84
+EBUILD libsepol-3.8.ebuild 1201 BLAKE2B 5223e65d0a38d4c4a885733d29434fd8e16174d50a1967f9d115fc3571baf6a633edc5bcd3e6f7a3d24bee3f637511ea9523f4639d0dd53d223dcf1eb440b060 SHA512 672c45e136fa5daaa17fa81fd9d27ecf4a6a8d4091488586a8ccd6e97a4ca8849460233383e935ffe946f7a461e64c1a882821f6d537b4ed5f2acf02f9143645
EBUILD libsepol-9999.ebuild 1201 BLAKE2B 2788cdd6371440168ffcbb90b93df66b7ce88f9476d37634e7d4e34706b408d20eef13bb2d9e97052a55f103549a32dc7de1084d37c68d27616ac39e4f3fbd6d SHA512 4df5ac41cbab2fb2db540badc40e1a7055a074ab8382213aec78579341729b297dd340e0b7355c9e168a0d56cf1e5a36f215789b5308cfcc194bf687caff6816
MISC metadata.xml 402 BLAKE2B 0450441687952fc82e64536652076085d66870e8cd81d9aaa99d023d17d46bc8ef6627c9ebdd6084b4c60e7d26edb61b4aaf5693794105b04b500c74a37c25be SHA512 a107ad99e8050f4cbe1c32f76699524afdced1f4b9a0c0fb3a4b5954d4f9cd5993d4d047d7a3fb45fb68c2be361c658be48287e1099ea7a6b6fca7d676969c2d
diff --git a/sys-libs/libsepol/libsepol-3.8.ebuild b/sys-libs/libsepol/libsepol-3.8.ebuild
new file mode 100644
index 000000000000..041e040a37da
--- /dev/null
+++ b/sys-libs/libsepol/libsepol-3.8.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+inherit toolchain-funcs multilib-minimal
+
+MY_PV="${PV//_/-}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="SELinux binary policy representation library"
+HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git"
+ S="${WORKDIR}/${P}/${PN}"
+else
+ SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~mips ~riscv ~x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0/2"
+IUSE="+static-libs"
+
+# tests are not meant to be run outside of the full SELinux userland repo
+RESTRICT="test"
+
+src_prepare() {
+ eapply_user
+ multilib_copy_sources
+}
+
+my_make() {
+ emake \
+ PREFIX="${EPREFIX}/usr" \
+ LIBDIR="\$(PREFIX)/$(get_libdir)" \
+ SHLIBDIR="${EPREFIX}/$(get_libdir)" \
+ "${@}"
+}
+
+multilib_src_compile() {
+ tc-export CC AR RANLIB
+
+ local -x CFLAGS="${CFLAGS} -fno-semantic-interposition"
+
+ my_make
+}
+
+multilib_src_install() {
+ my_make DESTDIR="${D}" install
+ use static-libs || rm "${ED}"/usr/$(get_libdir)/*.a || die
+}
diff --git a/sys-libs/liburing/Manifest b/sys-libs/liburing/Manifest
index 3f453c08647b..946e80831bbb 100644
--- a/sys-libs/liburing/Manifest
+++ b/sys-libs/liburing/Manifest
@@ -1,6 +1,8 @@
DIST liburing-2.7.tar.bz2 252289 BLAKE2B dc04745d2eda04d7009a532fc77566804c34b77dcef512f17ef424e22bc1e1a31ba87c2a841bb5574b11c494641a3128005d6dfccf2b87d6c3888fe5cd887996 SHA512 ec6cf69cae2e7e448e9e338bcd616bf27522f6f0e4768bf80d246d6df8610df3accaddae1c135c31bca7814bc3b8214854c40b3f7137163c0950605c716793f1
DIST liburing-2.8.tar.bz2 284202 BLAKE2B de1deaa8927b5f80a38195ef857fdb0d3dc5f7f57358fe319af42ec3d980bf4c20284d7726645e9c32bcb3e5d7d981540a52a35abb26394cbef03f88ab7c4248 SHA512 5822108aa771a34a4c3f008a0155e4f1fa9393499f24a1bce00aed7fab6e3b9e022b44f96479af0036295129db75d5062618fb4c48cef836e3155c604491e94d
+DIST liburing-2.9.tar.gz 407191 BLAKE2B 7081f9430e9532cad659e24de7ba998ad40f15a3fc3bf08fbe2b30df2bb335d4b06affb98d5667d4f8e6c8bc6e7a98c25caddd57ec5c98940562eb0e7977e54d SHA512 f27233e6128444175b18cd1d45647acdd27b906a8cd561029508710e443b44416b916cad1b2c1217e23d9a5ffb5ba68b119e9c812eae406650fbd10bf26c2fa5
EBUILD liburing-2.7-r1.ebuild 1902 BLAKE2B 3758e4676bfa94b6838b7a0c2c5f9357d37ab4d00cfbaf4fe0a6dc4581a3e943bc50205d87c5670efe58052d1a391ca39311e6db7feebb19c37c4efacbd99f75 SHA512 adade2654799690c099bebd068d0f542634b278ef4b727ebdc34277c43c179ec589bfa156057e9df50010162e641f924963dbe067a0b994e2811b03882abc37f
EBUILD liburing-2.8.ebuild 1909 BLAKE2B e67f6d607cfec26e0bf8754a0b659d02ae57e7f70e445f8065a1759ee8c0fae96d4e1a767c6b0049cbcb401e9e7b13d4bda0346085261c0d870b61c04306a4ad SHA512 a2b72bb1df3e49195dc2bacbfb931e18becf6e845ab8bd5ee7e0efc2a43249d69e8c9737c21e898f5b1e4a9807a8fdde750bb0183a57c7ad247ca05d687e867f
+EBUILD liburing-2.9.ebuild 1948 BLAKE2B 325251310fc86d055f78809d1ef4df7d0b70b137d9aec95a5a04afd91a68581004acf333e75fbd3c923d2ee236a84592dae63387eaa5ed4536122248eee2f448 SHA512 fc1a613b5fc83dfa63c7def9ba7e744bc8eed1f46a07cabbbc3203b1ad994f28f399c41e547e40e90c18859c1039116ff648d3c5e43d21de44d5452ea6bece62
EBUILD liburing-9999.ebuild 1890 BLAKE2B fade94775f7d40df8df45f5d06a40930b80c359d1b8c4741c4b9b57db142c9a33337389e1a95aeace4fb4425fac64a06e2a196d468ddb88695575fc07f3e975f SHA512 246a516d468f7a825ebf01351f7314da1a3efda4a0c40f868a2810e3d0406e82c137934ea857760e164d25c9f4d661eedbee27fa0b546357e63a08cd1488af2a
MISC metadata.xml 326 BLAKE2B 7c133a6dbb4ab4b537c0741ec9f3cd525c0803040950ee93e4c1cbc848c7618074471cc1a18ca07d6963c06252c83b66df0811ebae4c0cf9d7782f66ca5aa14a SHA512 1aacf941a9fa57429468fdfc8f546f559c5d483988ba5c6b0f4ed0fe5913f85d218b2a9eec83bae1d11a71eed36a37e76ccedc192697fbe9763fd0b09b2dcfd7
diff --git a/sys-libs/liburing/liburing-2.9.ebuild b/sys-libs/liburing/liburing-2.9.ebuild
new file mode 100644
index 000000000000..51789caff4e1
--- /dev/null
+++ b/sys-libs/liburing/liburing-2.9.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-minimal toolchain-funcs
+
+DESCRIPTION="Efficient I/O with io_uring"
+HOMEPAGE="https://github.com/axboe/liburing"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/axboe/liburing.git"
+else
+ SRC_URI="https://github.com/axboe/liburing/archive/refs/tags/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ QA_PKGCONFIG_VERSION=${PV}
+fi
+
+S="${WORKDIR}"/liburing-${P}
+LICENSE="MIT"
+SLOT="0/2" # liburing.so major version
+
+IUSE="examples static-libs test"
+# fsync test hangs forever
+RESTRICT="!test? ( test )"
+
+# At least installed headers need <linux/*>, bug #802516
+DEPEND=">=sys-kernel/linux-headers-5.1"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+
+ if ! use examples; then
+ sed -e '/examples/d' Makefile -i || die
+ fi
+ if ! use test; then
+ sed -e '/test/d' Makefile -i || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local myconf=(
+ --prefix="${EPREFIX}/usr"
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --libdevdir="${EPREFIX}/usr/$(get_libdir)"
+ --mandir="${EPREFIX}/usr/share/man"
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --use-libc
+ )
+ # No autotools configure! "econf" will fail.
+ TMPDIR="${T}" ./configure "${myconf[@]}" || die
+}
+
+multilib_src_compile() {
+ emake V=1 AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ if ! use static-libs ; then
+ find "${ED}" -type f -name "*.a" -delete || die
+ fi
+}
+
+multilib_src_test() {
+ local disabled_tests=(
+ accept.c
+ fpos.c
+ io_uring_register.c
+ link-timeout.c
+ read-before-exit.c
+ recv-msgall-stream.c
+ )
+ local disabled_test
+ for disabled_test in "${disabled_tests[@]}"; do
+ sed -i "/\s*${disabled_test}/d" test/Makefile \
+ || die "Failed to remove ${disabled_test}"
+ done
+
+ emake -C test V=1 runtests
+}
diff --git a/sys-libs/libxcrypt/Manifest b/sys-libs/libxcrypt/Manifest
index 4544e53b3868..b05fc40bb983 100644
--- a/sys-libs/libxcrypt/Manifest
+++ b/sys-libs/libxcrypt/Manifest
@@ -1,6 +1,7 @@
AUX libxcrypt-4.4.19-multibuild.patch 303 BLAKE2B cd342eef2a8ce3e305e544d37373370748690878b4171709028b7b894ad2c76c9188496ab089a46645ad6f9fca09fa4f89cdcb444e1400747ee358c079441661 SHA512 3cbd4bbd0827801faaaa2198eccccb285100cdfc43525b70816121aa70b32dc2c8479c53e16b9e99920926b1b11014dcc19909c4f72a09d9d19fcdb0fa6350cd
DIST libxcrypt-4.4.36-autotools.tar.xz 624660 BLAKE2B 8dc3d0f354baf8c64dc011e95e7df10d48b0dfe428503936ffd55edf2745de04003c7efe231ed5d9a14cea7f682ba377b7e00f0463b4060c50c9c29f555b790f SHA512 fb8391ecb89622eb0d74d13c5fc1369718e83c47671449044ca0c2f78a236d7b06177a60bf8cda47694caa840c68eaaf0b23690e8975fa5d64b734c8eb246d10
-EBUILD libxcrypt-4.4.36-r2.ebuild 9077 BLAKE2B 09a3d627d925440c17e5c4508c607c874293111030ab55112abee65da2d509489af0550c4a3700435c3d2c3ff896e1fa0b2f09910eb89f74de1d68f9473be711 SHA512 8acfca5b1f9b8bf4a2c05ccbb6f0332a450a3e30cf9c44ada9a2fa4f9cdf3e64f4561d7655287f12fdda59daa136dbf3d8a5c50c73536c0c125cbed95986f533
-EBUILD libxcrypt-4.4.36-r3.ebuild 6517 BLAKE2B b822ee679e02beac72e630d061743c13a75b57ee2ff11d80a74160737fb1307818821796a6d68b404657b612637b1fd6fcd850105ede2ca5e479192d164a111b SHA512 5070b6177f037f5efda0ffd2867497c7ad09ad480afc37a2fdc74ba816cbed7154820f4303f4784d5e4467d422f939ecd62d073c5cb5b24d9ebdabcc46701a58
+DIST libxcrypt-4.4.38-autotools.tar.xz 630696 BLAKE2B 471066e83495fbaf3ef8dee066b4a7bff36dbc36d6ae1c09f2510d79b041b8517d6cc345e678d92508f5d044dc25fd7b1d36e0243aa46314bbbe7e3201838a5c SHA512 9b1d53119e0d808f6bc30e39cbe85710e3abb774109df28e05b90adebb828f47db3f7126de4ffdea2e63073905648ad941985d1a2167ba7282c01e132ef4e2b2
+EBUILD libxcrypt-4.4.36-r3.ebuild 6701 BLAKE2B 6208c5011c5f02e492848d5a86283ef0a0acbc9ab4f74d39acbb7af622cdd90e0b9a01038b805676f135f2b8757055ed362e5a81866d12a2125d042761a56b20 SHA512 6bddd57ff2ad8bba24258cee36927baf6bf276dcafb5def5e8cbfe67c56303db20ae27c6d80551e590a14b3fba588e97beb8e1a12b454c36171ea2daed87fef2
EBUILD libxcrypt-4.4.36.ebuild 9270 BLAKE2B 4c8a349c1b5496f0727476fcec727fb9c348ec09389d9caf7e1a4a09e32cf478f74ed8d4c4e71fcc6aae7c87348f150316c22354fe317cc5be38b76601c4d1f3 SHA512 ae10a1021720bd168fd7029024a8ddf5a009deb056a013ff38943f1fee38c101ea4e6b1c3d03b8e7e2606f260e1bf36e13a35e7248e92f924b254090f52c469b
-MISC metadata.xml 913 BLAKE2B c2b3f52bd72bb46b0de4eb4a5f47dcb3aacfd248b811bcdc88db88c6f9cbe3ed1af4fda3e643b350fd22131273af03f2f888d78d306f0f7274d9432eb65075a3 SHA512 0ebbc3c2aa661f1a40e7f654384a395662b1b0235f145c7778b7b86bfb65ad09d4e8900bc6ede94413f057e769397c355bfd1bcafe8540acbf7e00e5451400c9
+EBUILD libxcrypt-4.4.38.ebuild 6616 BLAKE2B 0ca911e17b46b6f19372cc62dbc5d3a9d9e9611e545747263d84aa4d01dc28c153d15d3f60a44b369d0b45be30ddb1083cdd64c7a5c782edfec06845800c5dee SHA512 c468c5d0413ef0133140033e6352e70f8d245ca3432596b00aaa0fe661e89f64a24c6286ecf85807e7d968b05a3e8b3f42db80e83c9c4b8900a38ced3cfb7e2b
+MISC metadata.xml 988 BLAKE2B e435c82f587cbca44bdaa3a19d2a0274bb599e4747551d66055f4a6da23111a8854a463dda90765a7a7668e7df514132afe62109348b6a1934b0c54a402348e5 SHA512 8f205098ecad795ac241b9fcfa9508cfe386175e59d6fd0b8ec5d394bf6c8e3ae930306614ff4c68af25a9188685464c76e1654eddc32df7ebe6f006898aa7ca
diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild
index 6bca15f08f61..ee2c2f74d184 100644
--- a/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild
+++ b/sys-libs/libxcrypt/libxcrypt-4.4.36-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Gentoo Authors
+# Copyright 2004-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -116,6 +116,14 @@ src_configure() {
MYSYSROOT=${ESYSROOT}
if target_is_not_host; then
+ # Hack to work around missing TARGET_CC support.
+ # See bug 949976.
+ if tc-is-clang; then
+ export CC="${CTARGET}-clang"
+ else
+ export CC="${CTARGET}-gcc"
+ fi
+
local CHOST=${CTARGET}
MYPREFIX=
@@ -126,19 +134,15 @@ src_configure() {
multilib_env
ABI=${DEFAULT_ABI}
- tc-getCC >/dev/null
- if [[ ${CC} != ${CHOST}-* ]]; then
- unset CC
- tc-getCC >/dev/null
- fi
-
strip-unsupported-flags
fi
if use headers-only; then
- # Nothing is compiled here which would affect the headers for the target.
- # So forcing CC is sane.
+ # Nothing is compiled which would affect the headers, so we set
+ # CC and PKG_CONFIG to ensure configure passes without defaulting
+ # to the unprefixed host variants e.g. "pkg-config"
local -x CC="$(tc-getBUILD_CC)"
+ local -x PKG_CONFIG="false"
fi
# Avoid possible "illegal instruction" errors with gold
diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.36-r2.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild
index 514363772010..42cb9b1e2412 100644
--- a/sys-libs/libxcrypt/libxcrypt-4.4.36-r2.ebuild
+++ b/sys-libs/libxcrypt/libxcrypt-4.4.38.ebuild
@@ -1,13 +1,13 @@
-# Copyright 2004-2024 Gentoo Authors
+# Copyright 2004-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{10..13} )
# NEED_BOOTSTRAP is for developers to quickly generate a tarball
# for publishing to the tree.
NEED_BOOTSTRAP="no"
-inherit multibuild multilib python-any-r1 flag-o-matic toolchain-funcs multilib-minimal
+inherit crossdev multibuild multilib python-any-r1 flag-o-matic toolchain-funcs multilib-minimal
DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others"
HOMEPAGE="https://github.com/besser82/libxcrypt"
@@ -21,22 +21,9 @@ fi
LICENSE="LGPL-2.1+ public-domain BSD BSD-2"
SLOT="0/1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="+compat split-usr static-libs +system test headers-only"
-REQUIRED_USE="split-usr? ( system )"
+IUSE="+compat static-libs +system test headers-only"
RESTRICT="!test? ( test )"
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} == ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-is_cross() {
- local enabled_abis=( $(multilib_get_enabled_abis) )
- [[ "${#enabled_abis[@]}" -le 1 ]] && [[ ${CHOST} != ${CTARGET} ]]
-}
-
DEPEND="
system? (
elibc_glibc? (
@@ -71,12 +58,7 @@ pkg_pretend() {
}
pkg_setup() {
- MULTIBUILD_VARIANTS=(
- $(usev compat 'xcrypt_compat')
- xcrypt_nocompat
- )
-
- use test && python-any-r1_pkg_setup
+ :
}
src_prepare() {
@@ -125,72 +107,69 @@ src_prepare() {
}
src_configure() {
- # Avoid possible "illegal instruction" errors with gold
- # bug #821496
- tc-ld-disable-gold
+ MULTIBUILD_VARIANTS=(
+ $(usev compat 'xcrypt_compat')
+ xcrypt_nocompat
+ )
- # Doesn't work with LTO: bug #852917.
- # https://github.com/besser82/libxcrypt/issues/24
- filter-lto
+ MYPREFIX=${EPREFIX}
+ MYSYSROOT=${ESYSROOT}
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+ if target_is_not_host; then
+ # Hack to work around missing TARGET_CC support.
+ # See bug 949976.
+ if tc-is-clang; then
+ export CC="${CTARGET}-clang"
+ else
+ export CC="${CTARGET}-gcc"
+ fi
- multibuild_foreach_variant multilib-minimal_src_configure
-}
+ local CHOST=${CTARGET}
-get_xcprefix() {
- if is_cross; then
- echo "${EPREFIX}/usr/${CTARGET}"
- else
- echo "${EPREFIX}"
+ MYPREFIX=
+ MYSYSROOT=${ESYSROOT}/usr/${CTARGET}
+
+ # Ensure we get compatible libdir
+ unset DEFAULT_ABI MULTILIB_ABIS
+ multilib_env
+ ABI=${DEFAULT_ABI}
+
+ strip-unsupported-flags
fi
-}
-get_xclibdir() {
- printf -- "%s/%s/%s/%s\n" \
- "$(get_xcprefix)" \
- "$(usev !split-usr '/usr')" \
- "$(get_libdir)" \
- "$(usev !system 'xcrypt')"
-}
+ if use headers-only; then
+ # Nothing is compiled which would affect the headers, so we set
+ # CC and PKG_CONFIG to ensure configure passes without defaulting
+ # to the unprefixed host variants e.g. "pkg-config"
+ local -x CC="$(tc-getBUILD_CC)"
+ local -x PKG_CONFIG="false"
+ fi
-get_xcincludedir() {
- printf -- "%s/usr/include/%s\n" \
- "$(get_xcprefix)" \
- "$(usev !system 'xcrypt')"
-}
+ # Doesn't work with LTO: bug #852917.
+ # https://github.com/besser82/libxcrypt/issues/24
+ filter-lto
-get_xcmandir() {
- printf -- "%s/usr/share/man\n" \
- "$(get_xcprefix)"
-}
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+ if use test; then
+ python_setup
+ fi
-get_xcpkgconfigdir() {
- printf -- "%s/usr/%s/pkgconfig\n" \
- "$(get_xcprefix)" \
- "$(get_libdir)"
+ multibuild_foreach_variant multilib-minimal_src_configure
}
multilib_src_configure() {
- local -a myconf=(
- --host=${CTARGET}
+ local myconf=(
--disable-werror
- --libdir=$(get_xclibdir)
- --with-pkgconfigdir=$(get_xcpkgconfigdir)
- --includedir=$(get_xcincludedir)
- --mandir="$(get_xcmandir)"
+ --prefix="${MYPREFIX}/usr"
+ --libdir="${MYPREFIX}/usr/$(get_libdir)$(usev !system /xcrypt)"
+ --includedir="${MYPREFIX}/usr/include$(usev !system /xcrypt)"
+ --with-pkgconfigdir="${MYPREFIX}/usr/$(get_libdir)/pkgconfig"
+ --with-sysroot="${MYSYSROOT}"
)
tc-export PKG_CONFIG
- if is_cross; then
- if tc-is-clang; then
- export CC="${CTARGET}-clang"
- else
- export CC="${CTARGET}-gcc"
- fi
- fi
-
case "${MULTIBUILD_ID}" in
xcrypt_compat-*)
myconf+=(
@@ -204,17 +183,11 @@ multilib_src_configure() {
--enable-obsolete-api=no
$(use_enable static-libs static)
)
- ;;
+ ;;
*) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";;
esac
- if use headers-only; then
- # Nothing is compiled here which would affect the headers for the target.
- # So forcing CC is sane.
- headers_only_flags="CC=$(tc-getBUILD_CC)"
- fi
-
- ECONF_SOURCE="${S}" econf "${myconf[@]}" "${headers_only_flags}"
+ ECONF_SOURCE="${S}" econf "${myconf[@]}"
}
src_compile() {
@@ -232,85 +205,31 @@ src_test() {
}
src_install() {
- multibuild_foreach_variant multilib-minimal_src_install
-
- use headers-only || \
- (
- shopt -s failglob || die "failglob failed"
+ local DESTDIR=${D}
+ if target_is_not_host; then
+ DESTDIR=${ED}/usr/${CTARGET}
+ fi
- # Make sure our man pages do not collide with glibc or man-pages.
- for manpage in "${D}$(get_xcmandir)"/man3/crypt{,_r}.?*; do
- mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \
- || die "mv failed"
- done
- ) || die "failglob error"
+ multibuild_foreach_variant multilib-minimal_src_install
- # Remove useless stuff from installation
- find "${ED}"/usr/share/doc/${PF} -type l -delete || die
find "${ED}" -name '*.la' -delete || die
- # workaround broken upstream cross-* --docdir by installing files in proper locations
- if is_cross; then
- insinto "$(get_xcprefix)"/usr/share
- doins -r "${ED}"/usr/share/doc
- rm -r "${ED}"/usr/share/doc || die
+ if target_is_not_host; then
+ insinto /usr/${CTARGET}/usr/share
+ doins -r "${ED}/usr/share/doc"
+ rm -r "${ED}/usr/share/doc" || die
+ rmdir "${ED}/usr/share" || die
fi
}
multilib_src_install() {
if use headers-only; then
- emake DESTDIR="${D}" install-nodist_includeHEADERS
- return
+ emake DESTDIR="${DESTDIR}" install-nodist_includeHEADERS
+ else
+ emake DESTDIR="${DESTDIR}" install
+ # Conflicts with sys-apps/man-pages
+ rm "${DESTDIR}${MYPREFIX}"/usr/share/man/man3/crypt{,_r}.3 || die
fi
-
- emake DESTDIR="${D}" install
-
- # Don't install the libcrypt.so symlink for the "compat" version
- case "${MULTIBUILD_ID}" in
- xcrypt_compat-*)
- rm "${D}"$(get_xclibdir)/libcrypt$(get_libname) \
- || die "failed to remove extra compat libraries"
- ;;
- xcrypt_nocompat-*)
- if use split-usr; then
- (
- if use static-libs; then
- # .a files are installed to /$(get_libdir) by default
- # Move static libraries to /usr prefix or portage will abort
- shopt -s nullglob || die "failglob failed"
- static_libs=( "${D}"/$(get_xclibdir)/*.a )
-
- if [[ -n ${static_libs[*]} ]]; then
- dodir "/usr/$(get_xclibdir)"
- mv "${static_libs[@]}" "${ED}/usr/$(get_xclibdir)" \
- || die "Moving static libs failed"
- fi
- fi
-
- if use system; then
- # Move versionless .so symlinks from /$(get_libdir) to /usr/$(get_libdir)
- # to allow linker to correctly find shared libraries.
- shopt -s failglob || die "failglob failed"
-
- for lib_file in "${D}"$(get_xclibdir)/*$(get_libname); do
- lib_file_basename="$(basename "${lib_file}")"
- lib_file_target="$(basename "$(readlink -f "${lib_file}")")"
-
- # We already know we're in split-usr (checked above)
- # See bug #843209 (also worth keeping in mind bug #802222 too)
- local libdir_no_prefix=$(get_xclibdir)
- libdir_no_prefix=${libdir_no_prefix#${EPREFIX}}
- libdir_no_prefix=${libdir_no_prefix%/usr}
- dosym -r "/$(get_libdir)/${lib_file_target}" "/usr/${libdir_no_prefix}/${lib_file_basename}"
- done
-
- rm "${D}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed"
- fi
- )
- fi
- ;;
- *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";;
- esac
}
pkg_preinst() {
diff --git a/sys-libs/libxcrypt/metadata.xml b/sys-libs/libxcrypt/metadata.xml
index cef5e501f632..ff23f0d0be02 100644
--- a/sys-libs/libxcrypt/metadata.xml
+++ b/sys-libs/libxcrypt/metadata.xml
@@ -13,7 +13,7 @@
<use>
<flag name="compat">Build with compatibility interfaces for other crypt implementations</flag>
<flag name="system">Install as system libcrypt.so rather than to an alternate directory (will collide with <pkg>sys-libs/glibc</pkg>'s version)</flag>
- <flag name="headers-only">Build and install only the headers.</flag>
+ <flag name="headers-only">Build and install only the headers. This is mostly useful for toolchain bootstrapping, to avoid circular deps.</flag>
</use>
<upstream>
<remote-id type="github">besser82/libxcrypt</remote-id>
diff --git a/sys-libs/lwp/Manifest b/sys-libs/lwp/Manifest
index ad42ab5ff4e0..f65aaed5ff19 100644
--- a/sys-libs/lwp/Manifest
+++ b/sys-libs/lwp/Manifest
@@ -1,4 +1,6 @@
+AUX lwp-2.8-bool.patch 305 BLAKE2B 7194f991e520bd72518f2abae4def5864b44f6036796df5ab62135a6ef2936024c16202a3778515ef9ec3af1f55cf47462178f1091c593fc2037381727e7c91d SHA512 0327f0445e9c6ec0a9ca16719d4d0f535b1c42bdb0c3bdb8c23775549408f0a148c572fd8b09a7bbf884828c246b7b9cc7c1d9bcc9242677b2f499f876b97e98
AUX lwp-2.8-ia64.patch 523 BLAKE2B d5fd6257a690112cf1a4da4e83035244ca97ca9d306ba7ebdcbe701192ce3b49e93a237d823780abab1ab4bef8c41370d6aecf0d5a9828345121ce14b555dc91 SHA512 5289f26b363a480cf5d22c0c4217384e9d3338b573beaf1b2be5287a039732b1c53d6da024d0a83c4377561e86edf1676d01308971ad331ccaa006fc822443f2
DIST lwp-2.8.tar.xz 270008 BLAKE2B 67107f880d5052d42166fe429cda14b4d733bcc3e5905cf48b23898e0da590854ca935ea0350c77be75c3f27d2624134c17159e5f2981ac8806bd78906d7de41 SHA512 c56f3b350e888b5bcb2bffb41086f8926e975aafae236be7f1d2153bb178a37564b77d7598db1aa915714ce8e2ed1904663ce2113f5d0853173cf5e189958bf0
+EBUILD lwp-2.8-r1.ebuild 510 BLAKE2B f9ef0a497d69ff43ab451def1add4eba354475f0f06c007fd90da846d772ad4c2eb3ac8aa036fdf9972ca42ae7a39f9189abb4df2e96243c55ad3ca33cf45278 SHA512 8e613cb06e215c7ddd7a5600a11d034a842930decbb93ac8ae28dec9d215c8d6d935500890a25c9a8aa085caae5b032287235d34ef7e0d791622d83e68f2bc49
EBUILD lwp-2.8.ebuild 515 BLAKE2B 24370a4b761f7c2386a1b6a7ec01d6191d319347fecefd6c15b1b494c24f55826d64fc3feab7e2368a0f02e4f62a789ae7e6904e09280178c941faea12e3605f SHA512 28f852c8095a8663053a8e7a4c5396ae439978c44027bf046a1477aa7db322cff6a99b9ff83b60270d201c0d6aef6ec57b9e73e300b10382c84ebc5339a67370
MISC metadata.xml 167 BLAKE2B 868e3b584722eaacf68273db062bb773d8c7e5d7ab2b81ca7e8397643bf7cc106c3a1033594401c99c54f667bb45d6b73f9048fc335580bbd44b4589ad26a832 SHA512 30caadd1496c3b9969136038239a1d8e01f236726b4022c2d7e19ca7575f25f735e556835e581afbf44fbd3e4104c40f2b5ef5fa70118d75c881fdf871962d0a
diff --git a/sys-libs/lwp/files/lwp-2.8-bool.patch b/sys-libs/lwp/files/lwp-2.8-bool.patch
new file mode 100644
index 000000000000..6b5e6d4ed26b
--- /dev/null
+++ b/sys-libs/lwp/files/lwp-2.8-bool.patch
@@ -0,0 +1,14 @@
+Used for declaration of private function only, so change
+causes no visible effects
+https://bugs.gentoo.org/943734
+--- a/src/timer.c
++++ b/src/timer.c
+@@ -48,7 +48,7 @@
+ #include <lwp/timer.h>
+ #include "lwp.private.h"
+
+-typedef unsigned char bool;
++#include <stdbool.h>
+
+ #define expiration TotalTime
+
diff --git a/sys-libs/lwp/lwp-2.8-r1.ebuild b/sys-libs/lwp/lwp-2.8-r1.ebuild
new file mode 100644
index 000000000000..72d4f50f4d8c
--- /dev/null
+++ b/sys-libs/lwp/lwp-2.8-r1.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Light-weight process library (used by Coda)"
+HOMEPAGE="http://www.coda.cs.cmu.edu/"
+SRC_URI="http://www.coda.cs.cmu.edu/pub/lwp/src/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="1"
+KEYWORDS="~alpha ~amd64 ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86"
+
+PATCHES=(
+ "${FILESDIR}"/"${P}"-ia64.patch
+ "${FILESDIR}"/"${P}"-bool.patch
+)
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/sys-libs/minizip-ng/Manifest b/sys-libs/minizip-ng/Manifest
index 106c02ff96b3..5dd18bb70f3a 100644
--- a/sys-libs/minizip-ng/Manifest
+++ b/sys-libs/minizip-ng/Manifest
@@ -4,5 +4,5 @@ DIST minizip-ng-4.0.7.tar.gz 770098 BLAKE2B 2626a8ff7fe70db5a2ec93829a03d7d274a1
DIST minizip-ng-4.0.8.tar.gz 770957 BLAKE2B 6f97dc609cababfe4939603d9795e39552e3fbc04d1dde7e2389cf6b0326f98cb6ec98e8cb7b768c713b35476aa35ec4c0b56180221f014380aa47271f207601 SHA512 673798114e29a41ce87906b705dd92c5dc1ed1798aefaa20f0e3d7c1f27b9593e0c4c1271e02585ecc234ce835b14b02227c37f1a7fba4c7a98b822f10711b85
EBUILD minizip-ng-4.0.5.ebuild 2793 BLAKE2B 9c58ad19635bc1d27d4a5ffcaaee799a72a1dc44aa381f5082d4274a8b76e96f1d64df0393ce220fc9fac536935bc59814c82c3efd3abe5b6bf6c705b6ad71db SHA512 a1e6d090a260d35395dc67d3764835037e3d4f1ecda62bae432dbf91612e353ee85606c73d7c50a2211858516518ebfc2e943a13195755873f783e89f92a57ef
EBUILD minizip-ng-4.0.7.ebuild 2614 BLAKE2B 124eeee97db096770d419f8fc4e15e61ab11b0a7242899cd8be6d895573b25746d4a13f3f4874327495a54ad64e883232bb54403d85d4b75263ddb33b6f9bb7b SHA512 42221f78cf74ced679ce5675d05915c9997afc428676197111de42b806c8d4bf1aa14d0cb683686172c6a6698dfe52fbb522506555a935c7e992d9e74f9cd25e
-EBUILD minizip-ng-4.0.8.ebuild 2622 BLAKE2B c2d6f7ef2fa7aa9c50808300b9519a8be15076da2b8882b06992555264a44502f83461efdd5fd7bb9e0190bf11d8cfe00f6179f9d86c752b55de12fc4ad29b3c SHA512 f70219290f03c3b9a28645bebbfff32c4af54c406ea93d7b3364eb3b57c42daacc53338697662718e703122b408d35bb6f3249084f7426400f590a8ce9240cd5
+EBUILD minizip-ng-4.0.8.ebuild 2621 BLAKE2B 0ab9d16b348e7f9fb554cd7eefc1ea5967429b535cbb0119081b383e65c9d9e030ac8039ed32194ce964ff735d12bd2015c528ecc8a43a0679dc6ec02c931893 SHA512 008724ae7c697a5a98d9af3f9c6f9c15dbe49b997e8d638ccc41f52c0553bfea5b4fd3245a8340a87f1ef9cc2940371fbda46812192103f3f6a0a5943ffcc99d
MISC metadata.xml 548 BLAKE2B 1373f3096881bc3c5bf4f1864528f399f84c17dab1c9f9ea88db5ad2da1d82cd48f89b9aaa4837f808a45f6783ac833415f1633a9eeaee70748f753fc392be7f SHA512 cf600135681af26f27b611663d426f9a9e83848289f3e184cd4ed6eaec4404226e8737945453a3a12d4bcdc6ef3a623336e514f9bb0c566eb5e8110ade4a1e63
diff --git a/sys-libs/minizip-ng/minizip-ng-4.0.8.ebuild b/sys-libs/minizip-ng/minizip-ng-4.0.8.ebuild
index 838cf729cfac..a5fb45555c10 100644
--- a/sys-libs/minizip-ng/minizip-ng-4.0.8.ebuild
+++ b/sys-libs/minizip-ng/minizip-ng-4.0.8.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/zlib-ng/minizip-ng/archive/refs/tags/${PV}.tar.gz ->
LICENSE="ZLIB"
SLOT="0/4"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="compat lzma openssl test zstd"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest
index 6d4d78e3a9ce..b1110f61ce93 100644
--- a/sys-libs/musl/Manifest
+++ b/sys-libs/musl/Manifest
@@ -1,6 +1,7 @@
AUX ldconfig.in-r3 3093 BLAKE2B 146374fe711c660a61e4a23f89ae066e78b8bca6884719c058981069ab92833d7f660b7bd78e7c8b86112944706823f0260d7c63f19d64960f27f44b4e95a6a3 SHA512 ba021cf7d52c001d6ef9a54a91de93240cd7eef9f7a6d7a48ae0c58f934aaea6796979ce80e1cfa9bdc6008023108f3c226440360f8e3134fc23f7fdac0e55b1
AUX musl-1.2.4-arm64-crti-alignment.patch 847 BLAKE2B 4f652b924fd9b7a396d21cf8fef0d618c23ce14ea662290850e9a8ed78ac6303f674ac978f74e86f8671df75a7749ee54bbbe11278ae283892d1157e540a86d8 SHA512 77d6a4798a71d3593621bb8d3177b288f04bc0e5a4b2a6b91e8ad73e8a96279a4ae18344df77fafb97228931d6e6306b4b0c2adba8dded6449b7bb2565041d31
AUX musl-1.2.4-elfutils-0.190-relr.patch 2930 BLAKE2B 81bcc8932eb4ffb7cf0ae5707866d755c731e67bdcfa71e097f48ee3f13ab75fc96645bfc76e376cda700d81fbb6f7e47f83b06964ded9ea173c262965e4cb04 SHA512 47a24912f5dc16e21a0692c8f0b323dec815867dca7d65f97740a0ad2623c42cd0711e0b69609f24774db8cb26518e2ee5577b4a89d36cc2b053ba7b879cb2f8
+AUX musl-iconv-out-of-bound-fix.patch 2765 BLAKE2B 9f35fc8d34b84a8a12fe1a6d166ecf7bf0ae1175d52bda845e0f3aea96cf191cf97e50f415b5d39700b0ff718462a265bd4b70b9f3a21dfae37fc0b8a2bf25b5 SHA512 4094d2ae9fa27e2f117e0341628c3e7607404d7ff49e504e0a6f56cb689983b62fe99aff46772ceb3b5f07b1f13015c126445c00a218926fe03bdf8da6545fd1
AUX musl-sched.h-reduce-namespace-conflicts.patch 2470 BLAKE2B 838a6f9bbb447a1b50566cff781f211ab68efaa0ed5d293cb1715936981411ac0db1a9cddb327dc47b8b37ccfaf7e96ac76c6f1328e98c0334a8f585af787a6e SHA512 c488d1035ae40c7cda01e91f90c4d47ed4afd3f4754e5476185bc7e6f19823c0f2ba01e4720763f08073fa102c31cb731d3db27b9ef27bddd5761157c8b07b71
AUX stack_chk_fail_local.c 1798 BLAKE2B 380bcbb920bd40a5185246621ba93716f27d61cd0077cd796ff267e10c534c9cc64982b2a66c89b61395dc93d67dae77e8c59908f65f2903f16016180cf94bbb SHA512 bb0bdd7f205d57771920c7ea898c1f84a55d6f90ddd1f8203bfeed98d13ccefa6f68d5fd1c0761321b2732ca928ca81b425e3fe8321c936d1316dea6f1930091
DIST getconf.c 11614 BLAKE2B ba49a573fc16d51780a0b0b81fbf7b64a1142f1dbad203c9609a59b6b07e7404f676c415383ae88c0aede95694821f6ee381bffd93cc3330501e17dc07d122bd SHA512 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d
@@ -12,9 +13,8 @@ DIST musl-1.2.4.tar.gz.asc 490 BLAKE2B 2133cff9ae2c8f69213fb72a256533d0686fd1180
DIST musl-1.2.5.tar.gz 1080786 BLAKE2B 6065dc1e01874d1b96abe714147dcc0b41ca702ca9e9c44e85864185dab0b6d085a692745db0822c94a79325e1a91dad60c52f467717d9323b2b3c6ad0a17545 SHA512 7bb7f7833923cd69c7a1a9b8a5f1784bfd5289663eb6061dcd43d583e45987df8a68a1be05d75cc1c88a3f5b610653d1a70f4a9cff4d8f7fd41ae73ee058c17c
DIST musl-1.2.5.tar.gz.asc 490 BLAKE2B f0d91b20aa7729449bd02a60adf17e8287904ed5971851a34b15f500011137ddc3f338d24712ff0481f1d6f9a749d87014a82b26a3bd9de660ddbf29678a8777 SHA512 c8aebf05b14abbd33ff568ca17ddd8b29e6f53cbb1cb85e00b64f15516ffc46a7a064c996a7bb1c9681a361a4921204ac58e4a1cfd7bd3ad60d7f2b0151d9229
DIST musl-getent-93a08815f8598db442d8b766b463d0150ed8e2ab.c 11656 BLAKE2B 1b7bf7102a1eb91a8cb881ed8ca65eb8eed911dd50238e97dc2952d89d4c6ebed6bfd046a2b38776c550b2872ab54ced8cb452fcc2ad56e5616f722debda761f SHA512 7f5b9d934d82deb5f8b23e16169a5d9b99ccab3a4708df06a95d685e1b24a3a3e69b3dcf4942f2f66c12a3d4bf0c5827e2ee2e8c4d7b1997359fccc2ac212dee
-EBUILD musl-1.2.3-r9.ebuild 6073 BLAKE2B 8dcdaa5611cd2e52197920c3ba26ee2894fbb5a63e3a56c60ed091cb79d7ec42b53a20cd087d61bdd0a3f53d2334d321482e37d7e2e3c3e3171895cf1058dac4 SHA512 95fc81ec90cfb5e5d1afe3f15c1165227a94a5c217819d1455c8ca458990724a1972ce3261c17068d29c97963e263a6e9715abdfe4a4e2d065ec69f74bd15a3e
-EBUILD musl-1.2.4-r1.ebuild 5787 BLAKE2B dfebc31d3bbcbdb7b8a4b5769b0611c7f7b5fc6efa66349d05e75a49f86584b4ad3fd0a39cc2166c04dfd0cfea36d82b2ef1f0a9042e1b8ddd6235373bc79faf SHA512 3a175bbffd4132d9852fdc72896578e2078c9d844976fa7c99060ec2dfcbe00af281e521b916dee8d0c90334130601ac6f2d753d2f214b1c32e0fd237adc1d53
-EBUILD musl-1.2.4-r3.ebuild 5905 BLAKE2B f8c91bff99dfd1958bdc36dab2967e316f784f833baa0a66419893ce759bf187ef25dd17018fd5d30987a9e94af5c020284a68941713785b41c1cb69ebd56f3f SHA512 fc8cfa33a94766781b231f476b806c844f400619dfad19d18c8657542e69120b8717394a32c0808f27ad2251b2cba31571aee31a7b29da20826ca9f5970e1f70
-EBUILD musl-1.2.5-r2.ebuild 5880 BLAKE2B 9c94a3620f21b942886cf15fa7009ee43df2489fed31149c330a749e12c54a087fdeb9c0fdb46d29b6a35a13de57f001b06093bf50bf790aaa7370fa926a1a89 SHA512 a40ead1b0593aae7cc037e6ad9241c76f62fb8669b18b220b5e07add20a73845ce0f8a9832e08bc59e30727a0d4f70a6fce7fb85bffc979bead3227ddfd0dc56
-EBUILD musl-9999.ebuild 5757 BLAKE2B 9672dda20ad26601410af129516f4430ecd2d635f0e16a19dbc7e0f56813a092b02dafd1ca94a7f18c148647b61c0e7120d7c3f8b3394774d69398a7f1ce325a SHA512 ccd78c27a7d4f6565ea3b7335e5b026b2c84675a3ba528b9bdf49f47e8a9af89fcb82e29c8fa8b7ac2157cd8b9fd47527d5597d91785c2dcd2c3e207d52a3cf7
+EBUILD musl-1.2.3-r10.ebuild 6111 BLAKE2B 66d292f541e7abfd078d0da6ae93171fb1f5dffe268c8ac327b8b062977ef58cf1add13c0cda4a7b4ebd418eda0c7d9a02174cfc5aed5f3509c8e8eacd6413a6 SHA512 935163d61343ea86335b7f5ad23c5541ba9639b9850b4e5bae4352b487bfa34455946583c183ef317b7ef083798a3ae0fdca84cb375138d8f09de0945b8a07b5
+EBUILD musl-1.2.4-r4.ebuild 5943 BLAKE2B d6fcc42fee43d5928d8dd7ea841744c14657b63d6f982b6876c778e4953b42d5a50482dd314589f3910fb68ec34a03560462cb62509b3372257e2ea308115080 SHA512 64468d66643d4bc569a6a962fdabc55529918d71a8e4565febfb5e77a78edffb900f555a71962800c43794208dd75ca3376ef0f7f7f65498a0140fd18f09d6b3
+EBUILD musl-1.2.5-r3.ebuild 5918 BLAKE2B 98d6999e70c9a3c2dba987686833cf177d66930b97efc12458f493b8af5c93fd03bb2a41380ceeedbd27125d59319ba87ea32cda7e3fb9be00b19d528b4a0f62 SHA512 c2bd8ee788a808da547cccfdbdb1476c320e30c5dbbea5bc6f0f4a65fdb0fdc4e9447fd7d0da2a8bfa38c079df5fd20ce7248be81ded5a6e4c9a71ab007d2f07
+EBUILD musl-9999.ebuild 5745 BLAKE2B 6aa474780470f516baaad52d2d6cd01a4bca6ba9f5278b734c571cf4f74024eeaa3fa4f991a354f8cc1fd159ab3cbc589fae1a24e036cede7f42e24a44dc7aa2 SHA512 80d9fa556ba779f1de8f0b3713ec10887e54f8062183278def72fc947f48ec46e31da790cba237d150bd058af238ade656b74470d1b5824bc2161fee47f4fe25
MISC metadata.xml 559 BLAKE2B 8b1093a5278f716b8e21467b325e373a790f54c8ab71b92adc4c87dd569a92b20e08009372065f0f27ced39e3361c9e5e5a2e1bff271753d280439fabbddd3a4 SHA512 a35c13ea32ac8f26984bdb0d70d28a4285f34e32a2b0b17ad98fe3f357fb46c87a1e853377630d4da58fd5953de3fdeb02ee89181394e1815f5e0bbba4cd9f92
diff --git a/sys-libs/musl/files/musl-iconv-out-of-bound-fix.patch b/sys-libs/musl/files/musl-iconv-out-of-bound-fix.patch
new file mode 100644
index 000000000000..762b4e34c160
--- /dev/null
+++ b/sys-libs/musl/files/musl-iconv-out-of-bound-fix.patch
@@ -0,0 +1,76 @@
+>From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Sun, 9 Feb 2025 10:07:19 -0500
+Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder
+
+as a result of incorrect bounds checking on the lead byte being
+decoded, certain invalid inputs which should produce an encoding
+error, such as "\xc8\x41", instead produced out-of-bounds loads from
+the ksc table.
+
+in a worst case, the loaded value may not be a valid unicode scalar
+value, in which case, if the output encoding was UTF-8, wctomb would
+return (size_t)-1, causing an overflow in the output pointer and
+remaining buffer size which could clobber memory outside of the output
+buffer.
+
+bug report was submitted in private by Nick Wellnhofer on account of
+potential security implications.
+---
+ src/locale/iconv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/locale/iconv.c b/src/locale/iconv.c
+index 9605c8e9..008c93f0 100644
+--- a/src/locale/iconv.c
++++ b/src/locale/iconv.c
+@@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
+ if (c >= 93 || d >= 94) {
+ c += (0xa1-0x81);
+ d += 0xa1;
+- if (c >= 93 || c>=0xc6-0x81 && d>0x52)
++ if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52)
+ goto ilseq;
+ if (d-'A'<26) d = d-'A';
+ else if (d-'a'<26) d = d-'a'+26;
+--
+2.21.0
+
+>From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Wed, 12 Feb 2025 17:06:30 -0500
+Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder
+ bugs
+
+the UTF-8 output code was written assuming an invariant that iconv's
+decoders only emit valid Unicode Scalar Values which wctomb can encode
+successfully, thereby always returning a value between 1 and 4.
+
+if this invariant is not satisfied, wctomb returns (size_t)-1, and the
+subsequent adjustments to the output buffer pointer and remaining
+output byte count overflow, moving the output position backwards,
+potentially past the beginning of the buffer, without storing any
+bytes.
+---
+ src/locale/iconv.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/locale/iconv.c b/src/locale/iconv.c
+index 008c93f0..52178950 100644
+--- a/src/locale/iconv.c
++++ b/src/locale/iconv.c
+@@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
+ if (*outb < k) goto toobig;
+ memcpy(*out, tmp, k);
+ } else k = wctomb_utf8(*out, c);
++ /* This failure condition should be unreachable, but
++ * is included to prevent decoder bugs from translating
++ * into advancement outside the output buffer range. */
++ if (k>4) goto ilseq;
+ *out += k;
+ *outb -= k;
+ break;
+--
+2.21.0
+
+
diff --git a/sys-libs/musl/musl-1.2.3-r9.ebuild b/sys-libs/musl/musl-1.2.3-r10.ebuild
index 3436d7f34687..ce52925f6b9a 100644
--- a/sys-libs/musl/musl-1.2.3-r9.ebuild
+++ b/sys-libs/musl/musl-1.2.3-r10.ebuild
@@ -58,6 +58,7 @@ fi
PATCHES=(
"${FILESDIR}"/${PN}-sched.h-reduce-namespace-conflicts.patch
+ "${FILESDIR}"/${PN}-iconv-out-of-bound-fix.patch
)
is_crosscompile() {
@@ -153,7 +154,7 @@ src_install() {
if ! use crypt ; then
# Allow sys-libs/libxcrypt[system] to provide it instead
rm "${ED}${sysroot}/usr/include/crypt.h" || die
- rm "${ED}${sysroot}/usr/$(get_libdir)/libcrypt.a" || die
+ rm "${ED}${sysroot}"/usr/*/libcrypt.a || die
fi
if [[ ${CATEGORY} != cross-* ]] ; then
diff --git a/sys-libs/musl/musl-1.2.4-r1.ebuild b/sys-libs/musl/musl-1.2.4-r1.ebuild
deleted file mode 100644
index 581ac6ffe152..000000000000
--- a/sys-libs/musl/musl-1.2.4-r1.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit crossdev flag-o-matic toolchain-funcs prefix
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://git.musl-libc.org/git/musl"
- inherit git-r3
-else
- VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/musl.asc
- inherit verify-sig
-
- SRC_URI="https://musl.libc.org/releases/${P}.tar.gz"
- SRC_URI+=" verify-sig? ( https://musl.libc.org/releases/${P}.tar.gz.asc )"
- KEYWORDS="-* amd64 arm arm64 ~m68k ~mips ppc ppc64 ~riscv x86"
-
- BDEPEND="verify-sig? ( sec-keys/openpgp-keys-musl )"
-fi
-GETENT_COMMIT="93a08815f8598db442d8b766b463d0150ed8e2ab"
-GETENT_FILE="musl-getent-${GETENT_COMMIT}.c"
-SRC_URI+="
- https://dev.gentoo.org/~blueness/musl-misc/getconf.c
- https://gitlab.alpinelinux.org/alpine/aports/-/raw/${GETENT_COMMIT}/main/musl/getent.c -> ${GETENT_FILE}
- https://dev.gentoo.org/~blueness/musl-misc/iconv.c
-"
-
-DESCRIPTION="Light, fast and simple C library focused on standards-conformance and safety"
-HOMEPAGE="https://musl.libc.org"
-
-LICENSE="MIT LGPL-2 GPL-2"
-SLOT="0"
-IUSE="crypt headers-only split-usr"
-
-QA_SONAME="usr/lib/libc.so"
-QA_DT_NEEDED="usr/lib/libc.so"
-# bug #830213
-QA_PRESTRIPPED="usr/lib/crtn.o"
-
-# We want crypt on by default for this as sys-libs/libxcrypt isn't (yet?)
-# built as part as crossdev. Also, elide the blockers when in cross-*,
-# as it doesn't make sense to block the normal CBUILD libxcrypt at all
-# there when we're installing into /usr/${CHOST} anyway.
-if is_crosspkg ; then
- IUSE="${IUSE/crypt/+crypt}"
-else
- RDEPEND="crypt? ( !sys-libs/libxcrypt[system] )"
- PDEPEND="!crypt? ( sys-libs/libxcrypt[system] )"
-fi
-
-PATCHES=(
- "${FILESDIR}"/${P}-elfutils-0.190-relr.patch
-)
-
-just_headers() {
- use headers-only && target_is_not_host
-}
-
-pkg_setup() {
- if [ ${CTARGET} == ${CHOST} ] ; then
- case ${CHOST} in
- *-musl*) ;;
- *) die "Use sys-devel/crossdev to build a musl toolchain" ;;
- esac
- fi
-
- # fix for #667126, copied from glibc ebuild
- # make sure host make.conf doesn't pollute us
- if target_is_not_host || tc-is-cross-compiler ; then
- CHOST=${CTARGET} strip-unsupported-flags
- fi
-}
-
-src_unpack() {
- if [[ ${PV} == 9999 ]] ; then
- git-r3_src_unpack
- elif use verify-sig ; then
- # We only verify the release; not the additional (fixed, safe) files
- # we download.
- # (Seem to get IPC error on verifying in cross?)
- ! target_is_not_host && verify-sig_verify_detached "${DISTDIR}"/${P}.tar.gz{,.asc}
- fi
-
- default
-}
-
-src_prepare() {
- default
-
- mkdir "${WORKDIR}"/misc || die
- cp "${DISTDIR}"/getconf.c "${WORKDIR}"/misc/getconf.c || die
- cp "${DISTDIR}/${GETENT_FILE}" "${WORKDIR}"/misc/getent.c || die
- cp "${DISTDIR}"/iconv.c "${WORKDIR}"/misc/iconv.c || die
-}
-
-src_configure() {
- strip-flags && filter-lto # Prevent issues caused by aggressive optimizations & bug #877343
- tc-getCC ${CTARGET}
-
- just_headers && export CC=true
-
- local sysroot
- target_is_not_host && sysroot=/usr/${CTARGET}
- ./configure \
- --target=${CTARGET} \
- --prefix="${EPREFIX}${sysroot}/usr" \
- --syslibdir="${EPREFIX}${sysroot}/lib" \
- --disable-gcc-wrapper || die
-}
-
-src_compile() {
- emake obj/include/bits/alltypes.h
- just_headers && return 0
-
- emake
- if ! is_crosspkg ; then
- emake -C "${T}" getconf getent iconv \
- CC="$(tc-getCC)" \
- CFLAGS="${CFLAGS}" \
- CPPFLAGS="${CPPFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- VPATH="${WORKDIR}/misc"
- fi
-
- $(tc-getCC) ${CFLAGS} -c -o libssp_nonshared.o "${FILESDIR}"/stack_chk_fail_local.c || die
- $(tc-getAR) -rcs libssp_nonshared.a libssp_nonshared.o || die
-}
-
-src_install() {
- local target="install"
- just_headers && target="install-headers"
- emake DESTDIR="${D}" ${target}
- just_headers && return 0
-
- # musl provides ldd via a sym link to its ld.so
- local sysroot=
- target_is_not_host && sysroot=/usr/${CTARGET}
- local ldso=$(basename "${ED}${sysroot}"/lib/ld-musl-*)
- dosym -r "${sysroot}/lib/${ldso}" "${sysroot}/usr/bin/ldd"
-
- if ! use crypt ; then
- # Allow sys-libs/libxcrypt[system] to provide it instead
- rm "${ED}${sysroot}/usr/include/crypt.h" || die
- rm "${ED}${sysroot}/usr/$(get_libdir)/libcrypt.a" || die
- fi
-
- if ! is_crosspkg ; then
- # Fish out of config:
- # ARCH = ...
- # SUBARCH = ...
- # and print $(ARCH)$(SUBARCH).
- local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak)
-
- # The musl build system seems to create a symlink:
- # ${D}/lib/ld-musl-${arch}.so.1 -> /usr/lib/libc.so.1 (absolute)
- # During cross or within prefix, there's no guarantee that the host is
- # using musl so that file may not exist. Use a relative symlink within
- # ${D} instead.
- rm "${ED}"/lib/ld-musl-${arch}.so.1 || die
- if use split-usr; then
- dosym ../usr/lib/libc.so /lib/ld-musl-${arch}.so.1
- # If it's still a dead symlink, OK, we really do need to abort.
- [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die
- else
- dosym libc.so /usr/lib/ld-musl-${arch}.so.1
- [[ -e "${ED}"/usr/lib/ld-musl-${arch}.so.1 ]] || die
- fi
-
- cp "${FILESDIR}"/ldconfig.in-r3 "${T}"/ldconfig.in || die
- sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die
- eprefixify "${T}"/ldconfig
- into /
- dosbin "${T}"/ldconfig
- into /usr
- dobin "${T}"/getconf
- dobin "${T}"/getent
- dobin "${T}"/iconv
- newenvd - "00musl" <<-EOF
- # 00musl autogenerated by sys-libs/musl ebuild; DO NOT EDIT.
- LDPATH="include ld.so.conf.d/*.conf"
- EOF
- fi
-
- if target_is_not_host ; then
- into /usr/${CTARGET}
- dolib.a libssp_nonshared.a
- else
- dolib.a libssp_nonshared.a
- fi
-}
-
-pkg_preinst() {
- # nothing to do if just installing headers
- just_headers && return
-
- # prepare /etc/ld.so.conf.d/ for files
- mkdir -p "${EROOT}"/etc/ld.so.conf.d
-}
-
-pkg_postinst() {
- target_is_not_host && return 0
-
- [ -n "${ROOT}" ] && return 0
-
- ldconfig || die
-}
diff --git a/sys-libs/musl/musl-1.2.4-r3.ebuild b/sys-libs/musl/musl-1.2.4-r4.ebuild
index 3909d62c13de..83fc6def71c0 100644
--- a/sys-libs/musl/musl-1.2.4-r3.ebuild
+++ b/sys-libs/musl/musl-1.2.4-r4.ebuild
@@ -52,6 +52,7 @@ PATCHES=(
"${FILESDIR}"/${P}-elfutils-0.190-relr.patch
"${FILESDIR}"/${PN}-1.2.4-arm64-crti-alignment.patch
"${FILESDIR}"/${PN}-sched.h-reduce-namespace-conflicts.patch
+ "${FILESDIR}"/${PN}-iconv-out-of-bound-fix.patch
)
just_headers() {
@@ -143,7 +144,7 @@ src_install() {
if ! use crypt ; then
# Allow sys-libs/libxcrypt[system] to provide it instead
rm "${ED}${sysroot}/usr/include/crypt.h" || die
- rm "${ED}${sysroot}/usr/$(get_libdir)/libcrypt.a" || die
+ rm "${ED}${sysroot}"/usr/*/libcrypt.a || die
fi
if ! is_crosspkg ; then
diff --git a/sys-libs/musl/musl-1.2.5-r2.ebuild b/sys-libs/musl/musl-1.2.5-r3.ebuild
index 62c8bedc5e27..559077077d00 100644
--- a/sys-libs/musl/musl-1.2.5-r2.ebuild
+++ b/sys-libs/musl/musl-1.2.5-r3.ebuild
@@ -53,6 +53,7 @@ fi
PATCHES=(
"${FILESDIR}"/${PN}-1.2.4-arm64-crti-alignment.patch
"${FILESDIR}"/${PN}-sched.h-reduce-namespace-conflicts.patch
+ "${FILESDIR}"/${PN}-iconv-out-of-bound-fix.patch
)
just_headers() {
@@ -144,7 +145,7 @@ src_install() {
if ! use crypt ; then
# Allow sys-libs/libxcrypt[system] to provide it instead
rm "${ED}${sysroot}/usr/include/crypt.h" || die
- rm "${ED}${sysroot}/usr/$(get_libdir)/libcrypt.a" || die
+ rm "${ED}${sysroot}"/usr/*/libcrypt.a || die
fi
if ! is_crosspkg ; then
diff --git a/sys-libs/musl/musl-9999.ebuild b/sys-libs/musl/musl-9999.ebuild
index 5679adc85bec..3839dbffc355 100644
--- a/sys-libs/musl/musl-9999.ebuild
+++ b/sys-libs/musl/musl-9999.ebuild
@@ -139,7 +139,7 @@ src_install() {
if ! use crypt ; then
# Allow sys-libs/libxcrypt[system] to provide it instead
rm "${ED}${sysroot}/usr/include/crypt.h" || die
- rm "${ED}${sysroot}/usr/$(get_libdir)/libcrypt.a" || die
+ rm "${ED}${sysroot}"/usr/*/libcrypt.a || die
fi
if ! is_crosspkg ; then
diff --git a/sys-libs/ncurses/Manifest b/sys-libs/ncurses/Manifest
index cada9b6f226d..e25c682095b3 100644
--- a/sys-libs/ncurses/Manifest
+++ b/sys-libs/ncurses/Manifest
@@ -193,10 +193,33 @@ DIST ncurses-6.5-20241102.patch.gz 3571 BLAKE2B 265fabae05675a01039569dab957e8ca
DIST ncurses-6.5-20241102.patch.gz.asc 729 BLAKE2B a35bc58064361f8e7527d3af3ef08dcaf8b3e70442d280797b6260458dd8d258d42214c25cb5f329851a88ea8cb32a293a3abd93f64d971a0d3b0ade7e04228d SHA512 9695c1a4cdb66cd8f64880b937dbbe7caa5746b754056359e48118b75deb9d6338f270bb5f252b9e52d6de14278a8435e2d4799e0fbda9ef5b76d5569ea8c6bd
DIST ncurses-6.5-20241109.patch.gz 121789 BLAKE2B 3626c3fb1332d12558e53545bb0aec0ad315ffbfb0f64514f30fb15ce21b80b73228feec4569a9545c6115ca59db70f85d99830733ede3958f220627416cfebf SHA512 a15b6ee70ea10bb8a10a70ab9c74f437eceb60a7313a688ad04e0c3a9e097824b642f259c728fc7831d60322b1a0957d19a5fe73cbf68fd21a623ddf9d9c0ef4
DIST ncurses-6.5-20241109.patch.gz.asc 729 BLAKE2B af2c1bd38031bff8e5465340fbd5dbff875939ff62fa4e805d2fdd869a15a25e135aaaca98510ddb308e532f3b58209b4ad0d8e75bc792149972470809a42df4 SHA512 8946e1e84baf9c48129460a83a5ef679b427c0147ca7fd4701aca3fa23b260c8ed8fb08fd2996676f149ffeec4ca960358d7df6a0b7774c4b49b2bb66800237f
+DIST ncurses-6.5-20241123.patch.gz 17657 BLAKE2B dac07cc85c7ce3637e20c6a81d7f69943ffb62313080fe607a9e7a972c0c0fc557ec99b3c6a47ce053e6e814e6340c3ee0d8f598b7c33ab3c64fa745470cadac SHA512 aee0de1d2d9216fec03a78260b5c0a973a8191777db383b6a09dfad20a4f8ecf735e14d4129f59b0a9da0bcfb59691ff6c395a55edf3303e2af57f80a1901232
+DIST ncurses-6.5-20241123.patch.gz.asc 729 BLAKE2B 367529435f5e0efc24e34818d59e75a8c41cb10c52d8b8d0679b49e7070bb63ed096076f0f0a951f4f58cf57a6cdb41874991f4913aea1583de9a385a3d8fb5d SHA512 4d751650011e648aea4a1a0c5ab6984021ff8ee305f0beaffc452804b4de8722954069cab08f5f6e46a3164e3b863226d7e745528f742a874b3b086b83251f85
+DIST ncurses-6.5-20241130.patch.gz 142324 BLAKE2B e7f7ba18550db745c9252c8a3b74f77ee0eb93d3bd509f18a5833a4e8b544abb3067558a1c815d12384505c62435c9cbba8e1128ae09587ec91256932fb0b965 SHA512 6a5ce47d47ff5fbed9612c3127056e9302ed340583d23a90b5fb5ca905d98a7d48d61d29698396a66cb5b120423d3bf5ace40c68d029f5ffd24d33ade39f2402
+DIST ncurses-6.5-20241130.patch.gz.asc 729 BLAKE2B 0bbc5c9e6bc6eb37c7c1bcde44abbf7e45d16f287599c2b7dffad37cd751572d3adbd50413c0568942ceb0fb874237fa179c4e2df170f73512f43e598e4bd711 SHA512 ba2c08cd08839c8e5754293165343a7fed537770dd5a7e1712e371d8495c83573ea9e016589c886e080405ac999460abf83c8fa1bd91194a585afb7739c7d8a6
+DIST ncurses-6.5-20241207.patch.gz 115869 BLAKE2B c9016f627ae48e44afcc449308d4abd288067a9bda4a5bcf1d847cf91be9a0f22c376fef964ff5e69291bd46b90f32201d05127d1d7c150f62e75a244a5ee1dc SHA512 f37dcdb95a2698d32e25c840d98c2dae3fd5b734717f753be4ae7ab325b3263b7b84dccf8423a4338b8fed7071fb083f4a74afb68616dde390c37fe8b6251552
+DIST ncurses-6.5-20241207.patch.gz.asc 729 BLAKE2B 3f9345290997bbe68764017651d50493e7cb1d64a33b7ea4d335b7f95ae33586b841496f01746e19fced605ec3cf129dc8b02a20a7e89dc9447296ad0804d6a0 SHA512 c090a8369f12421894c99bd1d72bab1abd18f86c58acfc5341ac1aa6ccc07f9c83425696f54c32bec3d6ec17a2ab2df932fb12dd6c6a5fce4820d3ecd1c71aef
+DIST ncurses-6.5-20241214.patch.gz 79375 BLAKE2B 96114d3d195209aa630a61ab6f3e3c071ee4bd04c929f072937c9d7c377974a01c5c45be1540e4f9f37035b8fd68c3c554416513969474ecb5f3d60abc14bdf7 SHA512 bfb873e081ca1aefe5b02d259d679afcb14299dd633c5933a53d3e6e4102dff388209a5d2a09d5d390df08fcfdac79b1eb32d03c3aec461fa78c1f6d0a743243
+DIST ncurses-6.5-20241214.patch.gz.asc 729 BLAKE2B af6a83a690c31b18e3b8a89bfd8adc620397ce5026d8573430a69538ff38e341e82f5f34fd639668f3651e9b0229a2b3af246dd025ca2be85621b9015dbf69e6 SHA512 ceff0eae372a792cbce83151b915fddc4f82c979eddad9dd88df28c87f5ebd6e4bbef6c6e32924dac38e58a3a12da86521f72bd438132c5cb4a9dc157c686787
+DIST ncurses-6.5-20241221.patch.gz 7787 BLAKE2B 7dce1a2770ba3dd7b9f5bc5eb49ad0009cf57db9107b9d19300d532d35dc42894c7952c72ca7a21a31be6378b201d16cbcd2668ce0cbb07c073da9bcf04061b9 SHA512 26d8bdcd4d1d496b3a90668660ddda118ba0ec3571bcadffce65bc6097a9663338f3b026a390d9420c1d844f0b8cef43c717a1542cb1bf91f3e5eb4e332a2edb
+DIST ncurses-6.5-20241221.patch.gz.asc 729 BLAKE2B 8bca0aa7b6b6f78518d33602b13b2e0dc83e151c62891abbfbc00aa324b82e9981d2f1d4ebcf2cca7cd7a2c474e33d7cbdc749e5a6e0b8005dac15086547203b SHA512 3ca0cb7f799fa2c9efc9f1ed2c350904a99e085e3d250e55d5198cb40eb2ae58640ba6226a6263996289d3122204a83e681f38e7195de2203cafb68f66a12272
+DIST ncurses-6.5-20241228.patch.gz 129948 BLAKE2B 9366438db329bfef3db29c572171abea3fb5b56a430c9ff09c51b0738429b437fee760be3812e0f93120ae9896bba61f28fdbe29b5cd2d30f2cca19ad29b287f SHA512 292eeaa4ee41eebb2c64129d77b1baf3e64e5c5960008093c9b11a33295bd5ef04bea7b11bd02d38f5f819e7ac8ca5d69a6a114213c849a0e5f0bb94852cce9e
+DIST ncurses-6.5-20241228.patch.gz.asc 729 BLAKE2B a32ed7189f0557da6fcdcf4b8cab88f0462906166b71db82cfb14ae137cad9c86a85cf3cb5fb9e6bc1b7d7ecbb24a34d96527b76a466fbea96e4be458a72add4 SHA512 015fee99356fb2bdadb546e67d3773196a442a53ee2abd7dc839b0e6afd569438031249ed4c33920e716b14d928c2198969199eb0270a18cae66411658934bfb
+DIST ncurses-6.5-20250104.patch.gz 22099 BLAKE2B 176b9ed65414b55cc2f2bcdcc68c7bbe84dbbe6dd5dbd3071e6a69187932f973e45cfb2aa5714752a1cc66b1317807548fd3d8075ab97d7a648e6527381bdbe7 SHA512 9667b9995eefeb6d6d59b11ca37fa57b5407a36a5e29dade672787645e851f5e0f30f7838ecb368b247e50ab54b1f2ed1fe70ef6df86609fc72e27d259907733
+DIST ncurses-6.5-20250104.patch.gz.asc 729 BLAKE2B a224636d20cddeb11e1c8dfd6fe0908cd53b1d045e9bbeccf9fe29cb59092fbc3f25b7d80106a8a7c8a21d71175f8e01431d04ede5dd10a0a42a13cf58ec6e4a SHA512 aad743612aff3720bcf210539c69d41e7c5a196af79b3129957ddf5eb1201941bd6e1efe41a9a5a0e75c92fe89c12cf43ab78cf5748313b8ed41ba62317c57d5
+DIST ncurses-6.5-20250111.patch.gz 11034 BLAKE2B b9b9b39035e6f5730a39e358faf7b53bf0728e5a6de5e5f9285d72239c0b3e9dc029d5aa6528b60f729aa30d4d76959fc091570382d5e43bdb4738e6b906e29b SHA512 d6c90512348a7b5e5d5d82acef95973539bcf49203481087454cd9cc75f08051697ef2011f96a902f97d5f6eb3f69cee2802bc5dcec8cb58ec97f56b510fdf0c
+DIST ncurses-6.5-20250111.patch.gz.asc 729 BLAKE2B d1fdefb370d3f1a0d698e1bc8f4d6d4b2f333f8f4440e61a3d32a5d4dd1667729776330f178399ecb726013cbfa71f8b1fd78ceaf61942c0b97f41f4196146c4 SHA512 ea5d82e01cc95a7141da52400e00da37b36762acb113258151a179d70b08cc58342e9d23cb0fe057fba88bf110f18c500f4b5c769684c57c2be7c5c83d6b01f5
+DIST ncurses-6.5-20250118.patch.gz 405753 BLAKE2B 6aa666a85bf7d1526984ac46cbbeb6103635c4f0fb93426ae06a05a4fa12e345dd052030ec639e23d377fe0a78e0e411d2343755a378ba4b18a3af9e42e5c438 SHA512 e82630a447fb759f1ee1f9b698094e1b18d83f235c970d1c910419de873cf7643b3f58fc279c42b17c2fd34c8ac090b703f735700fcce33c3ec68fee9544f99a
+DIST ncurses-6.5-20250118.patch.gz.asc 729 BLAKE2B 22cea1147c6b30e24b2eab79e0f00b9901b45193f391a270799661eb4f45a943d2e0afba4f94f69b6a21a5ed7155636d9f775d29bac7aa4b0248fc2ba90d19d9 SHA512 fba7ea75945879f97294e75bee34e58ff4dbb0d10bf549a8928dbf308fdbdb978b377231a618be444e3a4426acc63a6d5f0f588fca82fda7585ef6af78b602e1
+DIST ncurses-6.5-20250125.patch.gz 11864 BLAKE2B f4fa5b4a9a0c87b11f5d3cc84961a19d3948658481255b65eba1041d3ff9952c4941e6879bdd9b3237087353800398eacf47fd44de114f9c57046a0a3b200da8 SHA512 7e8571cf264dad27136a00d7601b2bbe90c497f2caa8e7379b72547c9c1cf07c4b32e54773c22695c183d4444d2816ec020bafc3cec55ff3fb5d191e956a77c8
+DIST ncurses-6.5-20250125.patch.gz.asc 729 BLAKE2B 53fde87fdfa46107addc6ee523bfbc7db0b12d288882ae9bf85c1e5ffbcb26562809faa3f284cfe1c68665cf666ab50c52abffd42b03d9f82ca98c7fd8e2895e SHA512 6e3b6c009b0b429238dee41639fd2f1535374c7f84c9b432756fe5e22eba38171f2ced867bc28b924ac2d338938bfa840a560ace54d4ffd329e986a0080749b8
DIST ncurses-6.5.tar.gz 3688489 BLAKE2B d0a05c218b5f320ba9abe2f322787baef1d15d764e503c81d49772b54b2927d28ecbeb500c8e514996226b41f69445b4de44ff423cec25b61847307fe61682ec SHA512 fc5a13409d2a530a1325776dcce3a99127ddc2c03999cfeb0065d0eee2d68456274fb1c7b3cc99c1937bc657d0e7fca97016e147f93c7821b5a4a6837db821e8
DIST ncurses-6.5.tar.gz.sig 438 BLAKE2B 5789b47932ec97d3863c7a65306369f0a36cb5b1a35c1e009b5174f50941edceafc22e6f07db3843a096773663a0ca602c0ecb9465e6042d9a78d76ae5008215 SHA512 96ce61a3d529e48e249acecbf4bb9eae2d9f2f67506e92ffa3182f5e98040c38babf0c2c15d92fc5d96e1181e72be1b29fdbff7bee859dfe2ae387f9b8883092
DIST ncurses-6.5_p20241109-patches.tar.xz 63676 BLAKE2B 9981b740fcec18cc794074ccc93ae1dbe175e52449af2bddfd10a6fb1d5dfe9b545bd19fce5e601d2d85008425fd5cd6fc33042d7bcc854363b0642b9c880efe SHA512 076d2d39c46cf9236e5e65472e10182da2dffffa936c7567b11e23323d64f9739bb3818d4fdbdd75a14fd3f5b202dcdb7aaa6813afb5e303f81c094339824162
+DIST ncurses-6.5_p20250118-patches.tar.xz 64188 BLAKE2B 46ac7c8bcfb0ec4fb032ccff4ba0c57d15f925910eb4d108c626aba8fdecefd21660a05cf54a88a4668b50e489ce0a08526f978a0084c66b2105fc4d929fdfe5 SHA512 12ff29d5ec76487f8b368d481fc19d841e8ce6bc216ff614b6d6d543a1fa36020b403432c802665d99b7fb4f08ae863d7ac331e6e2d95ff86c719fdca383c3e2
EBUILD ncurses-6.4_p20240414.ebuild 14355 BLAKE2B 33f762811b54142db6ad02789e40a896da5a7163003898c20d49c64c551db4ee1ef7b000204482fc87019f6e489d9e86a3512a44012420633d735a900e63d778 SHA512 06d21b4b82708370f03ce972952d22625c87fe32de189366b4bb090027a8f1a58f3c961628abb85a0a559a1081b5f8a5253248248547ee559c4d92bd252f5864
EBUILD ncurses-6.5-r1.ebuild 13875 BLAKE2B 6149ec2accc814e80c829f738b1471b21b476edfa13e20fa1ba6f016cf9a78874b9cf1ee1177f23212a91d9b4e5d3420caa052b0848bc311fc15c73dfa8af3bd SHA512 d817b26b8eca20a13f61a3172923c6a36e9259eed0c6466b16a929832854d4aa1618623ffd5469bfe9550f95ff789635c4294f927bf469f16abd5865cc7ba230
EBUILD ncurses-6.5_p20241109.ebuild 14261 BLAKE2B 209afd8710bad59b73584e7c0e3d256c60c578b3c730c168f2bea6707e421c87eb90a2b6721e6ddffe5b122279d1a7ec137e67cdf120bf415d4e37493d9f429e SHA512 b62ee46cfe3a67345d99038ec7a8e2c0b59cea46812a90f4be576e50ddcc07cce56b4798174ec4fb73cd80214383858fcc3155a678db88fb120240b66d03d753
+EBUILD ncurses-6.5_p20250118.ebuild 14589 BLAKE2B 946e1cacc820f1a60c6c13d3670617918e0ff60adde7e4e2a207869d8a7eb0f55d2b5f1a62b04ffa514a84b4ad223157a7c7f016b09252468226fc736c8c3bcb SHA512 ae9a4cdc02f96b06dc77af3e693ece392a056dbe388817b1cbda3446baaea755a8b723a915ad425750ad4c9089d5fd227c2389714e79efbe0614e17bb0ed5866
+EBUILD ncurses-6.5_p20250125.ebuild 14600 BLAKE2B a5ff3f78c78ea23c8252216ee60ef5a96d20209442c61147197bbb764db488f8ee73c2ce88cb5930809ab18c36f8c6b1170152544c5d5816f5abb39491f3464f SHA512 4cde508aaeea473425d7cafbe232ed372729620f73c9154a3a0860e73af3bf3df8697630cd1bee37785c1b6b7e483cdbebfdf73103842eafe5e7ee296bb7a85f
MISC metadata.xml 1094 BLAKE2B a65bbb9584f77fb07fff735e6471ef48a5d63e7fa79112bf75df67f2f94e816706165fdd42a482708a7fd2ab3b3e308f9766eac0b39c3a4e31dcff5b3db25d57 SHA512 adf0f939a1e14c964bfb44ab80b1b8c1ee897a036a994848ba3e40280ab3a73ddb3beef540c905efd623e71b890c4c91e0b7c24651561d0e2bb2a4c86f039dba
diff --git a/sys-libs/ncurses/ncurses-6.5_p20250118.ebuild b/sys-libs/ncurses/ncurses-6.5_p20250118.ebuild
new file mode 100644
index 000000000000..4475535dc262
--- /dev/null
+++ b/sys-libs/ncurses/ncurses-6.5_p20250118.ebuild
@@ -0,0 +1,473 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream
+# provide a configure option for the ABI version.
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc
+inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
+
+MY_PV="${PV:0:3}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="Console display library"
+HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
+# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net
+SRC_URI="
+ mirror://gnu/ncurses/${MY_P}.tar.gz
+ https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
+ https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz
+ verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )
+"
+
+GENTOO_PATCH_DEV=sam
+GENTOO_PATCH_PV=6.5_p20250118
+GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches
+
+# Populated below in a loop. Do not add patches manually here.
+UPSTREAM_PATCHES=()
+
+if [[ ${PV} == *_p* ]] ; then
+ # Sometimes, after releases, there's no megapatch available yet.
+ #
+ # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
+ #
+ # "At times (generally to mark a relatively stable point), I create a rollup
+ # patch, which consists of all changes from the release through the current date."
+ #
+ # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
+ # the patches are considered to be acceptable to use after some testing. They
+ # are both for development but also bug fixes.
+ #
+ # This array should contain a list of all the snapshots since the last
+ # release if there's no megapatch available yet.
+ PATCH_DATES=(
+ 20240504
+ 20240511
+ 20240518
+ 20240519
+ 20240525
+ 20240601
+ 20240608
+ 20240615
+ 20240622
+ 20240629
+ 20240706
+ 20240713
+ 20240720
+ 20240727
+ 20240810
+ 20240817
+ 20240824
+ 20240831
+ 20240914
+ 20240922
+ 20240928
+ 20241006
+ 20241019
+ 20241026
+ 20241102
+ 20241109
+ 20241123
+ 20241130
+ 20241207
+ 20241214
+ 20241221
+ 20241228
+ 20250104
+ 20250111
+
+ # Latest patch is just _pN = $(ver_cut 4)
+ $(ver_cut 4)
+ )
+
+ if [[ -z ${PATCH_DATES[@]} ]] ; then
+ SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz"
+ SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc"
+
+ # If we have a rollup patch, use that instead of the individual ones.
+ UPSTREAM_PATCHES+=( patch.sh )
+ else
+ # We use a mirror as well because we've had reports of 403 forbidden for some users.
+ upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-"
+ upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-"
+
+ # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P})
+ mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" )
+ # Suffix each with .patch.gz
+ mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" )
+ mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" )
+ # Repeat for .patch.gz.asc for verify-sig
+ SRC_URI+=" ${mangled_patches[@]}"
+ SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )"
+
+ # For all of the URLs, chuck in invisible-island.net too:
+ SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}"
+ SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )"
+
+ UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" )
+
+ unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig
+ fi
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+# The subslot reflects the SONAME.
+SLOT="0/6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace"
+# In 6.5_p20250118, the C++ examples fail to link, but there's no automated
+# testsuite anyway. Controlling building examples isn't really what USE=test
+# is for. Just restrict them.
+RESTRICT="!test? ( test ) test"
+
+# TODO: ncurses allows (and we take advantage of this, even) passing
+# the SONAME for dlopen() use, so only the header is needed at build time.
+# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND
+# which would be far nicer UX-wise.
+DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
+# Block the older ncurses that installed all files w/SLOT=5, bug #557472
+RDEPEND="
+ ${DEPEND}
+ !<=sys-libs/ncurses-5.9-r4:5
+ !<sys-libs/slang-2.3.2_pre23
+ !<x11-terms/rxvt-unicode-9.06-r3
+ !<x11-terms/st-0.6-r1
+ !minimal? ( !<x11-terms/ghostty-1.1.0 )
+"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
+
+PATCHES=(
+ "${UPSTREAM_PATCHES[@]/#/${WORKDIR}/${MY_P}-}"
+
+ # When rebasing Gentoo's patchset, please use git from a clean
+ # src_prepare with upstream patches already applied. git am --reject
+ # the existing patchset and rebase as required. This makes it easier
+ # to manage future rebasing & adding new patches.
+ #
+ # For the same reasons, please include the original configure.in changes,
+ # NOT just the generated results!
+ "${WORKDIR}"/${GENTOO_PATCH_NAME}
+)
+
+src_unpack() {
+ # Avoid trying to verify our own patchset tarball, there's no point
+ if use verify-sig ; then
+ local file
+ for file in ${A} ; do
+ if [[ ${file} == ${MY_P}.tar.gz ]] ; then
+ verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig
+ else
+ [[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue
+
+ verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc
+ fi
+ done
+ fi
+
+ default
+}
+
+src_configure() {
+ # bug #115036
+ unset TERMINFO
+
+ tc-export_build_env BUILD_{CC,CXX,CPP}
+
+ # bug #214642
+ BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
+
+ # NCURSES_BOOL confusion, see https://lists.gnu.org/archive/html/bug-ncurses/2024-11/msg00010.html
+ append-cflags $(test-flags-CC -std=gnu17)
+
+ # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
+ # Order matters here -- we want unicode/thread versions to come last so that the
+ # binaries in /usr/bin support both wide and narrow.
+ # The naming is also important as we use these directly with filenames and when
+ # checking configure flags.
+ NCURSES_TARGETS=(
+ ncurses
+ ncursesw
+ ncursest
+ ncursestw
+ )
+
+ # When installing ncurses, we have to use a compatible version of tic.
+ # This comes up when cross-compiling, doing multilib builds, upgrading,
+ # or installing for the first time. Build a local copy of tic whenever
+ # the host version isn't available. bug #249363, bug #557598
+ if ! has_version -b "~sys-libs/${P}:0" ; then
+ local lbuildflags="-static"
+
+ # some toolchains don't quite support static linking
+ local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
+ case ${CHOST} in
+ *-darwin*) dbuildflags= ;;
+ *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
+ esac
+ echo "int main() {}" | \
+ $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
+ || lbuildflags="${dbuildflags}"
+
+ # We can't re-use the multilib BUILD_DIR because we run outside of it.
+ BUILD_DIR="${WORKDIR}" \
+ CC=${BUILD_CC} \
+ CXX=${BUILD_CXX} \
+ CPP=${BUILD_CPP} \
+ CHOST=${CBUILD} \
+ CFLAGS=${BUILD_CFLAGS} \
+ CXXFLAGS=${BUILD_CXXFLAGS} \
+ CPPFLAGS=${BUILD_CPPFLAGS} \
+ LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
+ do_configure cross --without-shared --with-normal --with-progs --without-ada
+ fi
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ if [[ ${ABI} == x86 ]] ; then
+ # For compatibility with older binaries at slight performance cost.
+ # bug #616402
+ use stack-realign && append-flags -mstackrealign
+ fi
+
+ local t
+ for t in "${NCURSES_TARGETS[@]}" ; do
+ do_configure "${t}"
+ done
+}
+
+do_configure() {
+ local target=$1
+ shift
+
+ mkdir "${BUILD_DIR}/${target}" || die
+ cd "${BUILD_DIR}/${target}" || die
+
+ local conf=(
+ # We need the basic terminfo files in /etc, bug #37026. We will
+ # add '--with-terminfo-dirs' and then populate /etc/terminfo in
+ # src_install() ...
+ --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
+
+ # Enable installation of .pc files.
+ --enable-pc-files
+ # This path is used to control where the .pc files are installed.
+ --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
+
+ # Now the rest of the various standard flags.
+ --with-shared
+ --enable-fvisibility
+ # (Originally disabled until bug #245417 is sorted out, but now
+ # just keeping it off for good, given nobody needed it until now
+ # (2022) and we're trying to phase out bdb.)
+ --without-hashed-db
+ $(use_with ada)
+ $(use_with cxx)
+ $(use_with cxx cxx-binding)
+ --with-cxx-shared
+ $(use_with debug)
+ $(use_with profile)
+ # The configure script uses ldd to parse the linked output which
+ # is flaky for cross-compiling/multilib/ldd versions/etc...
+ $(use_with gpm gpm libgpm.so.1)
+
+ # bug #930806
+ --disable-setuid-environ
+ # TODO: Maybe do these for USE=hardened
+ #--disable-root-access
+ #--disable-root-environ
+
+ --disable-termcap
+ --enable-symlinks
+ --with-manpage-format=normal
+ --enable-const
+ --enable-colorfgbg
+ --enable-hard-tabs
+ --enable-echo
+ $(use_enable !ada warnings)
+ $(use_with debug assertions)
+ $(use_enable !debug leaks)
+ $(use_with debug expanded)
+ $(use_with !debug macros)
+ $(multilib_native_with progs)
+ $(use_with test tests)
+ $(use_with trace)
+ $(use_with tinfo termlib)
+ --disable-stripping
+ --disable-pkg-ldflags
+ )
+
+ case ${CHOST} in
+ *-mingw32*)
+ conf+=( --enable-term-driver )
+ ;;
+ *)
+ conf+=( --disable-term-driver )
+ ;;
+ esac
+
+ if [[ ${target} == ncurses*w ]] ; then
+ conf+=( --enable-widec )
+ else
+ conf+=( --disable-widec )
+ fi
+ if [[ ${target} == ncursest* ]] ; then
+ conf+=( --with-{pthread,reentrant} )
+ else
+ conf+=( --without-{pthread,reentrant} )
+ fi
+
+ # Make sure each variant goes in a unique location.
+ if [[ ${target} == "ncurses" ]] ; then
+ # "ncurses" variant goes into "${EPREFIX}"/usr/include
+ # It is needed on Prefix because the configure script appends
+ # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
+ conf+=( --enable-overwrite )
+ else
+ conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
+ fi
+ # See comments in src_configure.
+ if [[ ${target} != "cross" ]] ; then
+ local cross_path="${WORKDIR}/cross"
+ [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
+ fi
+
+ ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
+}
+
+src_compile() {
+ # See comments in src_configure.
+ if ! has_version -b "~sys-libs/${P}:0" ; then
+ BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext)
+ fi
+
+ multilib-minimal_src_compile
+}
+
+multilib_src_compile() {
+ local t
+ for t in "${NCURSES_TARGETS[@]}" ; do
+ do_compile "${t}"
+ done
+}
+
+do_compile() {
+ local target=$1
+ shift
+
+ cd "${BUILD_DIR}/${target}" || die
+
+ # A little hack to fix parallel builds ... they break when
+ # generating sources so if we generate the sources first (in
+ # non-parallel), we can then build the rest of the package
+ # in parallel. This is not really a perf hit since the source
+ # generation is quite small.
+ emake -j1 sources
+
+ # For some reason, sources depends on pc-files which depends on
+ # compiled libraries which depends on sources which ...
+ # Manually delete the pc-files file so the install step will
+ # create the .pc files we want.
+ rm -f misc/pc-files || die
+ emake "$@"
+}
+
+multilib_src_install() {
+ local target
+ for target in "${NCURSES_TARGETS[@]}" ; do
+ emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
+ done
+
+ # Move main libraries into /.
+ if multilib_is_native_abi ; then
+ gen_usr_ldscript -a \
+ "${NCURSES_TARGETS[@]}" \
+ $(usex tinfo 'tinfow tinfo' '')
+ fi
+
+ # Don't delete '*.dll.a', needed for linking, bug #631468
+ if ! use static-libs; then
+ find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
+ fi
+
+ # Build fails to create this ...
+ # -FIXME-
+ # Ugly hackaround for riscv having two parts libdir (bug #689240)
+ # Replace this hack with an official solution once we have one...
+ # -FIXME-
+ dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
+ /usr/$(get_libdir)/terminfo
+
+ # Remove obsolete libcurses symlink that is created by the build
+ # system. Technically, this could be also achieved
+ # via --disable-overwrite but it also moves headers implicitly,
+ # and we do not want to do this yet.
+ # bug #836696
+ rm "${ED}"/usr/$(get_libdir)/libcurses* || die
+}
+
+multilib_src_install_all() {
+ local terms=(
+ # Dumb/simple values that show up when using the in-kernel VT.
+ ansi console dumb linux
+ vt{52,100,102,200,220}
+ # [u]rxvt users used to be pretty common. Probably should drop this
+ # since upstream is dead and people are moving away from it.
+ rxvt{,-unicode}{,-256color}
+ # xterm users are common, as is terminals re-using/spoofing it.
+ xterm xterm-{,256}color
+ # screen is common (and reused by tmux).
+ screen{,-256color}
+ screen.xterm-256color
+ )
+ if use split-usr ; then
+ local x
+ # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
+ einfo "Installing basic terminfo files in /etc..."
+ for x in "${terms[@]}"; do
+ local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
+ local basedir=$(basename "$(dirname "${termfile}")")
+
+ if [[ -n ${termfile} ]] ; then
+ dodir "/etc/terminfo/${basedir}"
+ mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
+ dosym "../../../../etc/terminfo/${basedir}/${x}" \
+ "/usr/share/terminfo/${basedir}/${x}"
+ fi
+ done
+
+ echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
+
+ use minimal && rm -r "${ED}"/usr/share/terminfo*
+ # Because ncurses5-config --terminfo returns the directory we keep it
+ # bug #245374
+ keepdir /usr/share/terminfo
+ elif use minimal ; then
+ # Keep only the basic terminfo files
+ find "${ED}"/usr/share/terminfo/ \
+ \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \
+ -type d -empty -delete || die
+ fi
+
+ cd "${S}" || die
+ dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
+ if use doc ; then
+ docinto html
+ dodoc -r doc/html/
+ fi
+}
+
+pkg_preinst() {
+ preserve_old_lib /$(get_libdir)/libncurses.so.5
+ preserve_old_lib /$(get_libdir)/libncursesw.so.5
+}
+
+pkg_postinst() {
+ preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
+ preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
+}
diff --git a/sys-libs/ncurses/ncurses-6.5_p20250125.ebuild b/sys-libs/ncurses/ncurses-6.5_p20250125.ebuild
new file mode 100644
index 000000000000..116c0aa4355a
--- /dev/null
+++ b/sys-libs/ncurses/ncurses-6.5_p20250125.ebuild
@@ -0,0 +1,474 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# sys-libs/ncurses-compat can be bumped with sys-libs/ncurses as upstream
+# provide a configure option for the ABI version.
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/thomasdickey.asc
+inherit flag-o-matic toolchain-funcs multilib multilib-minimal preserve-libs usr-ldscript verify-sig
+
+MY_PV="${PV:0:3}"
+MY_P="${PN}-${MY_PV}"
+DESCRIPTION="Console display library"
+HOMEPAGE="https://www.gnu.org/software/ncurses/ https://invisible-island.net/ncurses/"
+# Keep invisible-mirror.net here as some users reported 403 forbidden with invisible-island.net
+SRC_URI="
+ mirror://gnu/ncurses/${MY_P}.tar.gz
+ https://invisible-island.net/archives/${PN}/${MY_P}.tar.gz
+ https://invisible-mirror.net/archives/${PN}/${MY_P}.tar.gz
+ verify-sig? ( mirror://gnu/ncurses/${MY_P}.tar.gz.sig )
+"
+
+GENTOO_PATCH_DEV=sam
+GENTOO_PATCH_PV=6.5_p20250118
+GENTOO_PATCH_NAME=${PN}-${GENTOO_PATCH_PV}-patches
+
+# Populated below in a loop. Do not add patches manually here.
+UPSTREAM_PATCHES=()
+
+if [[ ${PV} == *_p* ]] ; then
+ # Sometimes, after releases, there's no megapatch available yet.
+ #
+ # From upstream README at e.g. https://invisible-island.net/archives/ncurses/6.3/:
+ #
+ # "At times (generally to mark a relatively stable point), I create a rollup
+ # patch, which consists of all changes from the release through the current date."
+ #
+ # Also, from https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00039.html,
+ # the patches are considered to be acceptable to use after some testing. They
+ # are both for development but also bug fixes.
+ #
+ # This array should contain a list of all the snapshots since the last
+ # release if there's no megapatch available yet.
+ PATCH_DATES=(
+ 20240504
+ 20240511
+ 20240518
+ 20240519
+ 20240525
+ 20240601
+ 20240608
+ 20240615
+ 20240622
+ 20240629
+ 20240706
+ 20240713
+ 20240720
+ 20240727
+ 20240810
+ 20240817
+ 20240824
+ 20240831
+ 20240914
+ 20240922
+ 20240928
+ 20241006
+ 20241019
+ 20241026
+ 20241102
+ 20241109
+ 20241123
+ 20241130
+ 20241207
+ 20241214
+ 20241221
+ 20241228
+ 20250104
+ 20250111
+ 20250118
+
+ # Latest patch is just _pN = $(ver_cut 4)
+ $(ver_cut 4)
+ )
+
+ if [[ -z ${PATCH_DATES[@]} ]] ; then
+ SRC_URI+=" https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz"
+ SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P/_p/-}.patch.sh.gz.asc"
+
+ # If we have a rollup patch, use that instead of the individual ones.
+ UPSTREAM_PATCHES+=( patch.sh )
+ else
+ # We use a mirror as well because we've had reports of 403 forbidden for some users.
+ upstream_url_base="https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P}-"
+ upstream_m_url_base="https://invisible-mirror.net/archives/${PN}/${PV/_p*}/${MY_P}-"
+
+ # Prefix each date with the upstream location (https://invisible-island.net/archives/${PN}/${PV/_p*}/${MY_P})
+ mangled_patches=( "${PATCH_DATES[@]/#/${upstream_url_base}}" )
+ # Suffix each with .patch.gz
+ mangled_patches=( "${mangled_patches[@]/%/.patch.gz}" )
+ mangled_patches_sig=( "${mangled_patches[@]/%/.asc}" )
+ # Repeat for .patch.gz.asc for verify-sig
+ SRC_URI+=" ${mangled_patches[@]}"
+ SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]} )"
+
+ # For all of the URLs, chuck in invisible-island.net too:
+ SRC_URI+=" ${mangled_patches[@]/${upstream_url_base}/${upstream_m_url_base}}"
+ SRC_URI+=" verify-sig? ( ${mangled_patches_sig[@]/${upstream_url_base}/${upstream_m_url_base}} )"
+
+ UPSTREAM_PATCHES=( "${PATCH_DATES[@]/%/.patch}" )
+
+ unset upstream_url_base upstream_m_url_base mangled_patches mangled_patches_sig
+ fi
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV}/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH_NAME}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="MIT"
+# The subslot reflects the SONAME.
+SLOT="0/6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="ada +cxx debug doc gpm minimal profile split-usr +stack-realign static-libs test tinfo trace"
+# In 6.5_p20250118, the C++ examples fail to link, but there's no automated
+# testsuite anyway. Controlling building examples isn't really what USE=test
+# is for. Just restrict them.
+RESTRICT="!test? ( test ) test"
+
+# TODO: ncurses allows (and we take advantage of this, even) passing
+# the SONAME for dlopen() use, so only the header is needed at build time.
+# Maybe we should bundle a copy of gpm.h so we can move gpm to PDEPEND
+# which would be far nicer UX-wise.
+DEPEND="gpm? ( sys-libs/gpm[${MULTILIB_USEDEP}] )"
+# Block the older ncurses that installed all files w/SLOT=5, bug #557472
+RDEPEND="
+ ${DEPEND}
+ !<=sys-libs/ncurses-5.9-r4:5
+ !<sys-libs/slang-2.3.2_pre23
+ !<x11-terms/rxvt-unicode-9.06-r3
+ !<x11-terms/st-0.6-r1
+ !minimal? ( !<x11-terms/ghostty-1.1.0 )
+"
+BDEPEND="verify-sig? ( sec-keys/openpgp-keys-thomasdickey )"
+
+PATCHES=(
+ "${UPSTREAM_PATCHES[@]/#/${WORKDIR}/${MY_P}-}"
+
+ # When rebasing Gentoo's patchset, please use git from a clean
+ # src_prepare with upstream patches already applied. git am --reject
+ # the existing patchset and rebase as required. This makes it easier
+ # to manage future rebasing & adding new patches.
+ #
+ # For the same reasons, please include the original configure.in changes,
+ # NOT just the generated results!
+ "${WORKDIR}"/${GENTOO_PATCH_NAME}
+)
+
+src_unpack() {
+ # Avoid trying to verify our own patchset tarball, there's no point
+ if use verify-sig ; then
+ local file
+ for file in ${A} ; do
+ if [[ ${file} == ${MY_P}.tar.gz ]] ; then
+ verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.sig
+ else
+ [[ ${file} == @(*${GENTOO_PATCH_NAME}.tar.xz|*.asc|*.sig) ]] && continue
+
+ verify-sig_verify_detached "${DISTDIR}"/${file} "${DISTDIR}"/${file}.asc
+ fi
+ done
+ fi
+
+ default
+}
+
+src_configure() {
+ # bug #115036
+ unset TERMINFO
+
+ tc-export_build_env BUILD_{CC,CXX,CPP}
+
+ # bug #214642
+ BUILD_CPPFLAGS+=" -D_GNU_SOURCE"
+
+ # NCURSES_BOOL confusion, see https://lists.gnu.org/archive/html/bug-ncurses/2024-11/msg00010.html
+ append-cflags $(test-flags-CC -std=gnu17)
+
+ # Build the various variants of ncurses -- narrow, wide, and threaded. #510440
+ # Order matters here -- we want unicode/thread versions to come last so that the
+ # binaries in /usr/bin support both wide and narrow.
+ # The naming is also important as we use these directly with filenames and when
+ # checking configure flags.
+ NCURSES_TARGETS=(
+ ncurses
+ ncursesw
+ ncursest
+ ncursestw
+ )
+
+ # When installing ncurses, we have to use a compatible version of tic.
+ # This comes up when cross-compiling, doing multilib builds, upgrading,
+ # or installing for the first time. Build a local copy of tic whenever
+ # the host version isn't available. bug #249363, bug #557598
+ if ! has_version -b "~sys-libs/${P}:0" ; then
+ local lbuildflags="-static"
+
+ # some toolchains don't quite support static linking
+ local dbuildflags="-Wl,-rpath,${WORKDIR}/lib"
+ case ${CHOST} in
+ *-darwin*) dbuildflags= ;;
+ *-solaris*) dbuildflags="-Wl,-R,${WORKDIR}/lib" ;;
+ esac
+ echo "int main() {}" | \
+ $(tc-getCC) -o x -x c - ${lbuildflags} -pipe >& /dev/null \
+ || lbuildflags="${dbuildflags}"
+
+ # We can't re-use the multilib BUILD_DIR because we run outside of it.
+ BUILD_DIR="${WORKDIR}" \
+ CC=${BUILD_CC} \
+ CXX=${BUILD_CXX} \
+ CPP=${BUILD_CPP} \
+ CHOST=${CBUILD} \
+ CFLAGS=${BUILD_CFLAGS} \
+ CXXFLAGS=${BUILD_CXXFLAGS} \
+ CPPFLAGS=${BUILD_CPPFLAGS} \
+ LDFLAGS="${BUILD_LDFLAGS} ${lbuildflags}" \
+ do_configure cross --without-shared --with-normal --with-progs --without-ada
+ fi
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ if [[ ${ABI} == x86 ]] ; then
+ # For compatibility with older binaries at slight performance cost.
+ # bug #616402
+ use stack-realign && append-flags -mstackrealign
+ fi
+
+ local t
+ for t in "${NCURSES_TARGETS[@]}" ; do
+ do_configure "${t}"
+ done
+}
+
+do_configure() {
+ local target=$1
+ shift
+
+ mkdir "${BUILD_DIR}/${target}" || die
+ cd "${BUILD_DIR}/${target}" || die
+
+ local conf=(
+ # We need the basic terminfo files in /etc, bug #37026. We will
+ # add '--with-terminfo-dirs' and then populate /etc/terminfo in
+ # src_install() ...
+ --with-terminfo-dirs="${EPREFIX}/etc/terminfo:${EPREFIX}/usr/share/terminfo"
+
+ # Enable installation of .pc files.
+ --enable-pc-files
+ # This path is used to control where the .pc files are installed.
+ --with-pkg-config-libdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig"
+
+ # Now the rest of the various standard flags.
+ --with-shared
+ --enable-fvisibility
+ # (Originally disabled until bug #245417 is sorted out, but now
+ # just keeping it off for good, given nobody needed it until now
+ # (2022) and we're trying to phase out bdb.)
+ --without-hashed-db
+ $(use_with ada)
+ $(use_with cxx)
+ $(use_with cxx cxx-binding)
+ --with-cxx-shared
+ $(use_with debug)
+ $(use_with profile)
+ # The configure script uses ldd to parse the linked output which
+ # is flaky for cross-compiling/multilib/ldd versions/etc...
+ $(use_with gpm gpm libgpm.so.1)
+
+ # bug #930806
+ --disable-setuid-environ
+ # TODO: Maybe do these for USE=hardened
+ #--disable-root-access
+ #--disable-root-environ
+
+ --disable-termcap
+ --enable-symlinks
+ --with-manpage-format=normal
+ --enable-const
+ --enable-colorfgbg
+ --enable-hard-tabs
+ --enable-echo
+ $(use_enable !ada warnings)
+ $(use_with debug assertions)
+ $(use_enable !debug leaks)
+ $(use_with debug expanded)
+ $(use_with !debug macros)
+ $(multilib_native_with progs)
+ $(use_with test tests)
+ $(use_with trace)
+ $(use_with tinfo termlib)
+ --disable-stripping
+ --disable-pkg-ldflags
+ )
+
+ case ${CHOST} in
+ *-mingw32*)
+ conf+=( --enable-term-driver )
+ ;;
+ *)
+ conf+=( --disable-term-driver )
+ ;;
+ esac
+
+ if [[ ${target} == ncurses*w ]] ; then
+ conf+=( --enable-widec )
+ else
+ conf+=( --disable-widec )
+ fi
+ if [[ ${target} == ncursest* ]] ; then
+ conf+=( --with-{pthread,reentrant} )
+ else
+ conf+=( --without-{pthread,reentrant} )
+ fi
+
+ # Make sure each variant goes in a unique location.
+ if [[ ${target} == "ncurses" ]] ; then
+ # "ncurses" variant goes into "${EPREFIX}"/usr/include
+ # It is needed on Prefix because the configure script appends
+ # "ncurses" to "${prefix}/include" if "${prefix}" is not /usr.
+ conf+=( --enable-overwrite )
+ else
+ conf+=( --includedir="${EPREFIX}"/usr/include/${target} )
+ fi
+ # See comments in src_configure.
+ if [[ ${target} != "cross" ]] ; then
+ local cross_path="${WORKDIR}/cross"
+ [[ -d ${cross_path} ]] && export TIC_PATH="${cross_path}/progs/tic"
+ fi
+
+ ECONF_SOURCE="${S}" econf "${conf[@]}" "$@"
+}
+
+src_compile() {
+ # See comments in src_configure.
+ if ! has_version -b "~sys-libs/${P}:0" ; then
+ BUILD_DIR="${WORKDIR}" do_compile cross -C progs tic$(get_exeext)
+ fi
+
+ multilib-minimal_src_compile
+}
+
+multilib_src_compile() {
+ local t
+ for t in "${NCURSES_TARGETS[@]}" ; do
+ do_compile "${t}"
+ done
+}
+
+do_compile() {
+ local target=$1
+ shift
+
+ cd "${BUILD_DIR}/${target}" || die
+
+ # A little hack to fix parallel builds ... they break when
+ # generating sources so if we generate the sources first (in
+ # non-parallel), we can then build the rest of the package
+ # in parallel. This is not really a perf hit since the source
+ # generation is quite small.
+ emake -j1 sources
+
+ # For some reason, sources depends on pc-files which depends on
+ # compiled libraries which depends on sources which ...
+ # Manually delete the pc-files file so the install step will
+ # create the .pc files we want.
+ rm -f misc/pc-files || die
+ emake "$@"
+}
+
+multilib_src_install() {
+ local target
+ for target in "${NCURSES_TARGETS[@]}" ; do
+ emake -C "${BUILD_DIR}/${target}" DESTDIR="${D}" install
+ done
+
+ # Move main libraries into /.
+ if multilib_is_native_abi ; then
+ gen_usr_ldscript -a \
+ "${NCURSES_TARGETS[@]}" \
+ $(usex tinfo 'tinfow tinfo' '')
+ fi
+
+ # Don't delete '*.dll.a', needed for linking, bug #631468
+ if ! use static-libs; then
+ find "${ED}"/usr/ -name '*.a' ! -name '*.dll.a' -delete || die
+ fi
+
+ # Build fails to create this ...
+ # -FIXME-
+ # Ugly hackaround for riscv having two parts libdir (bug #689240)
+ # Replace this hack with an official solution once we have one...
+ # -FIXME-
+ dosym $(sed 's@[^/]\+@..@g' <<< $(get_libdir))/share/terminfo \
+ /usr/$(get_libdir)/terminfo
+
+ # Remove obsolete libcurses symlink that is created by the build
+ # system. Technically, this could be also achieved
+ # via --disable-overwrite but it also moves headers implicitly,
+ # and we do not want to do this yet.
+ # bug #836696
+ rm "${ED}"/usr/$(get_libdir)/libcurses* || die
+}
+
+multilib_src_install_all() {
+ local terms=(
+ # Dumb/simple values that show up when using the in-kernel VT.
+ ansi console dumb linux
+ vt{52,100,102,200,220}
+ # [u]rxvt users used to be pretty common. Probably should drop this
+ # since upstream is dead and people are moving away from it.
+ rxvt{,-unicode}{,-256color}
+ # xterm users are common, as is terminals re-using/spoofing it.
+ xterm xterm-{,256}color
+ # screen is common (and reused by tmux).
+ screen{,-256color}
+ screen.xterm-256color
+ )
+ if use split-usr ; then
+ local x
+ # We need the basic terminfo files in /etc for embedded/recovery, bug #37026
+ einfo "Installing basic terminfo files in /etc..."
+ for x in "${terms[@]}"; do
+ local termfile=$(find "${ED}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
+ local basedir=$(basename "$(dirname "${termfile}")")
+
+ if [[ -n ${termfile} ]] ; then
+ dodir "/etc/terminfo/${basedir}"
+ mv "${termfile}" "${ED}/etc/terminfo/${basedir}/" || die
+ dosym "../../../../etc/terminfo/${basedir}/${x}" \
+ "/usr/share/terminfo/${basedir}/${x}"
+ fi
+ done
+
+ echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" | newenvd - 50ncurses
+
+ use minimal && rm -r "${ED}"/usr/share/terminfo*
+ # Because ncurses5-config --terminfo returns the directory we keep it
+ # bug #245374
+ keepdir /usr/share/terminfo
+ elif use minimal ; then
+ # Keep only the basic terminfo files
+ find "${ED}"/usr/share/terminfo/ \
+ \( -type f -o -type l \) ${terms[*]/#/! -name } -delete , \
+ -type d -empty -delete || die
+ fi
+
+ cd "${S}" || die
+ dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
+ if use doc ; then
+ docinto html
+ dodoc -r doc/html/
+ fi
+}
+
+pkg_preinst() {
+ preserve_old_lib /$(get_libdir)/libncurses.so.5
+ preserve_old_lib /$(get_libdir)/libncursesw.so.5
+}
+
+pkg_postinst() {
+ preserve_old_lib_notify /$(get_libdir)/libncurses.so.5
+ preserve_old_lib_notify /$(get_libdir)/libncursesw.so.5
+}
diff --git a/sys-libs/nss_wrapper/Manifest b/sys-libs/nss_wrapper/Manifest
index 8c9e1b139600..d60176a6bbe2 100644
--- a/sys-libs/nss_wrapper/Manifest
+++ b/sys-libs/nss_wrapper/Manifest
@@ -1,4 +1,4 @@
AUX nss_wrapper-1.1.15-cmocka-cmake.patch 839 BLAKE2B 1c09c413f1f7f77e91385cd5872e8265ea3acf0b9a79f4303a60cb89d1dd63709686cd257cf837ef41d33b2acba3848d1a48eca6dfcbf6f7c0ef6957bab39e7b SHA512 89552fc49217a75b5e4db55a87ea14f88f0de3a788ca8978c891897d88b19ea262d16bb85a372891794763aa28e9b01ac01b926832bfe21823f9887331e16aa1
DIST nss_wrapper-1.1.15.tar.gz 185236 BLAKE2B 9c087ec3118eabccef386214abf76d384d9f85bb095aded43492a7f41b13e196a92e088ca7b8b798f9517cbbdc1cf5efbe3c7201cbb623322a9277681203954a SHA512 803dfb67e042800e60f4735177384ff3b9348f4c96c02e62ae0b449583542fdaf443eb1fa48b5d5e4ea6fe0d81ce84f340bd406c968c05f71b5c64dd499feacd
-EBUILD nss_wrapper-1.1.15.ebuild 735 BLAKE2B e432cbde7ad1c03633b6a0a6562d361ad003dcbe4e386213afb8f059c732ef74ad0e3024705add33097d0f6ba5e92a4dcfa9823f49e9078bcaeedc1087b7065c SHA512 55f96e8cb1d7042b959916df2376bff87cc8788ffac1e5a6734d7f4d227b59fb55cd9a23b455031298189596efb535148555946853f84d1a8360930a8dca72a4
+EBUILD nss_wrapper-1.1.15.ebuild 741 BLAKE2B 4a9d0401e0d3eaf952fe8600d791460ae6d2c4897978c11719629ad9bb7581578998e4c7a81bcedb095bf45c95635fbb3cba4c5c682ea1907f0ea429e2a4c09b SHA512 a02d314f53d10df87eef3cf272e219e7d8f4c49c6e65cbab910dd9e99e64c3c4098d4d9cf21865c89af20459f0a0f10b8d4a0acbbd91b19bcba86a73b0a90d74
MISC metadata.xml 250 BLAKE2B e398673dd1a3522ccddb89a82a53fc2578d8e0777ec46f889d01d618609a22958d91699beef513c7912799e0e8ff985200f7c67bba941235da25c24cd4b48f09 SHA512 16834c3cbecd0dd5a9c8c311d2b8ebc63d8cd72c5891498f4f0048988993c104aadd4e24e632bf54071c11f810716432e89e4afab029555875f9f52794daa6e9
diff --git a/sys-libs/nss_wrapper/nss_wrapper-1.1.15.ebuild b/sys-libs/nss_wrapper/nss_wrapper-1.1.15.ebuild
index ffb511a976a1..2f41c7267a02 100644
--- a/sys-libs/nss_wrapper/nss_wrapper-1.1.15.ebuild
+++ b/sys-libs/nss_wrapper/nss_wrapper-1.1.15.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -11,7 +11,7 @@ SRC_URI="https://ftp.samba.org/pub/cwrap/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/pam/Manifest b/sys-libs/pam/Manifest
index 4059b809f16c..b57d7ec5b6f1 100644
--- a/sys-libs/pam/Manifest
+++ b/sys-libs/pam/Manifest
@@ -1,10 +1,6 @@
-AUX pam-1.5.3-termios.patch 913 BLAKE2B 3fdb9c6320c56fd2c10b76b58700263a1c190dde4a62bb33fdfe2e59e2aebedffe87bd14fb7f02ca9c3df8f9ca21af13a1e5b42cd4eb0b112bb03f311e975288 SHA512 c432af010b188ff8a3f1fb08cc7e68b12651f8a2592fa43c5aec8c60e938c04a62ae67bc0fdb6704df3ec39aa3b40a56c1abbf07e0e5105a7b7ca4af7e44c715
-DIST Linux-PAM-1.5.3-docs.tar.xz 466340 BLAKE2B 6bade3c63ebe6b6ca7a86d7385850bb87bf1d6526add3ac5aad140533516c1d27b594a17d09c4127ff985c42e6c571618785d6b2a2913e6575678c4dcf947dc0 SHA512 a9082823da88e0054d74e13aef872519ced5fbef25c8cc1a7e3a99160f835aa09c9ef701b6ec507acd3b540da0019288424bb4c8ebd828181ea90450db1494a9
-DIST Linux-PAM-1.5.3.tar.xz 1020076 BLAKE2B 362c939f3afc343e6f4e78e7f6ba6f7a9c6ee0a9948bb5a4fc34cecfd29e9fa974082534d4ceedd04d8d3e34c7b3ef43d2a07ba5f41d26da04ec8330fc3790fb SHA512 af88e8c1b6a9b737ffaffff7dd9ed8eec996d1fbb5804fb76f590bed66d8a1c2c6024a534d7a7b6d18496b300f3d6571a08874cf406cd2e8cea1d5eff49c136a
DIST Linux-PAM-1.6.1-docs.tar.xz 465516 BLAKE2B c39dfba2e327120edc1f30be6ea7f8e6cf20d1f4dd17752cc34e0ae1c0bd22b3d19b94ab665bf3df5bd6ecc7fc358dbbedd8a3069df95ff6189580e538aa3547 SHA512 c6054ec6832f604c0654cf074e4e241c44037fd41cd37cca7da94abe008ff72adc4466d31bd254517eda083c7ec3f6aefd37785b3ee3d0d4553250bd29963855
DIST Linux-PAM-1.6.1.tar.xz 1054152 BLAKE2B 649b4ff892fbd3eb90adcbd9ccc5b3f5df51bf1c79b9084c7a1613c432587b13b81761d1eb4f31ef12d58843d16af24a3c441d0b6f5d2f2a1db9c8da15a61e2f SHA512 ddb5a5f296f564b76925324550d29f15d342841a97815336789c7bb922a8663e831edeb54f3dcd1eaf297e3325c9e2e6c14b8740def5c43cf3f160a8a14fa2ea
DIST pam-1.7.0_p20241230.gh.tar.gz 719108 BLAKE2B c37daabae380ce75c630a0af1b9960676bc973c773025bc7f65ae87aebff4ca3b667e16ec9635c7677e8a00e6b26eb590f84b798529c3340cdc2c262e7e5649e SHA512 d9d53ddd420fe754c76303b99c37e5cc2eca3d4af9f64043f3f9e69c3abfc3c05d5a1efdbbdfb39ad46a301a0df7a18425d0e8c110c1d76bad3e62dfa97b61ef
-EBUILD pam-1.5.3-r1.ebuild 4456 BLAKE2B 11d04b870ae3571fa71aa7d1bdaa29eb59b5593899aa70223d3ad708331b875d21ac1ab6b28f06392651db04bca8821c747e478fb87744968d6cc6a23a652951 SHA512 a98f212ddcdef9542e6f3bcd05c3a1f6243b5e2696bf93bd4596ae8f84a88acf0ad7bba4a196dfc91775a20b5d3dff30659406437491f476252f4cb1e7c3c92a
EBUILD pam-1.6.1.ebuild 4459 BLAKE2B b6c946278113f8c0cf63676382fce8dfee77ed4d02f56314f55734c4c5e32b1dc668d851315ff27fe98c470a61cda43cb9bd31b3430fc859aaa3aca767fd4c33 SHA512 4100f9df870643f57f8d99114d6ff02553d9fc6ebd5fc3a3fea85ab49ec248482bddfe5b0767551d6bcb0a8a42439f9b35cf81f087750aa030d4d9d144f20834
-EBUILD pam-1.7.0_p20241230-r3.ebuild 5566 BLAKE2B 44fc8da38ace5b4a7973fa5e78038f455bdd785dc71cca1b58b1fd8036422b6bb1064d0689d9ec84a03732a37ae08090186c630cc4bdc14a401b21bf6dafdda9 SHA512 fbb2f6c125ccb030e07282895bb1ee59bcb6df8e2667fa30ead4a6dbea6d4d7e2f75accda220024dd53d8e7ed293415f5bccd5c6854f5f53f1f5360deec5f77f
+EBUILD pam-1.7.0_p20241230-r3.ebuild 5900 BLAKE2B 1ff62552a0b6dca65cd92f35b20859b50fef129a8f194637842ed2cd0ce2fcb88674fde3718897805937377f17af9ab83ae7b13b1988f0f4d480476a5bde56ee SHA512 e29fdf0ef1520f8c2c9ffbe48e48da19eb55f5c0f3875bf4029d878023d625d99afbf2ab4f20b10873dbd8f905dd9e5a6cbc8d2b6b8f4f4a36be676477421a28
MISC metadata.xml 846 BLAKE2B e236bd8c7a53097d96164d9063d1dbb9372cef4ec92731dc43df6731cc7f4fc2935aeeb2e069b6da1d4bce3f1cc6a657e0361208581da615f3f41ec72c02261e SHA512 e2e28deadb2c941f8fa31447ec20c95ccb340d638f8b1e742a89ccc2dbb3c8d88e764f750d6e13c5a6320a612d6f2447689c02862a5e897919d1e9bca7857089
diff --git a/sys-libs/pam/files/pam-1.5.3-termios.patch b/sys-libs/pam/files/pam-1.5.3-termios.patch
deleted file mode 100644
index 8f7baf76fee4..000000000000
--- a/sys-libs/pam/files/pam-1.5.3-termios.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Replace System V termio.h with POSIX termios.h for musl
-Upstream: https://github.com/linux-pam/linux-pam/pull/576
-Bug: https://bugs.gentoo.org/906137
-
-From 5658105b04ad4df212baf302898ee2cca99516a6 Mon Sep 17 00:00:00 2001
-From: Violet Purcell <vimproved@inventati.org>
-Date: Thu, 11 May 2023 10:27:53 -0400
-Subject: [PATCH] fix build on musl
-
---- a/examples/tty_conv.c
-+++ b/examples/tty_conv.c
-@@ -6,8 +6,9 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h>
--#include <termio.h>
-+#include <termios.h>
- #include <security/pam_appl.h>
-+#include <sys/ioctl.h>
-
- /***************************************
- * @brief echo off/on
-@@ -16,7 +17,7 @@
- ***************************************/
- static void echoOff(int fd, int off)
- {
-- struct termio tty;
-+ struct termios tty;
- if (ioctl(fd, TCGETA, &tty) < 0)
- {
- fprintf(stderr, "TCGETA failed: %s\n", strerror(errno));
---
-2.40.1
-
diff --git a/sys-libs/pam/pam-1.5.3-r1.ebuild b/sys-libs/pam/pam-1.5.3-r1.ebuild
deleted file mode 100644
index 2fa18d994c43..000000000000
--- a/sys-libs/pam/pam-1.5.3-r1.ebuild
+++ /dev/null
@@ -1,153 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MY_P="Linux-${PN^^}-${PV}"
-
-# Avoid QA warnings
-# Can reconsider w/ EAPI 8 and IDEPEND, bug #810979
-TMPFILES_OPTIONAL=1
-
-inherit db-use fcaps flag-o-matic toolchain-funcs multilib-minimal
-
-DESCRIPTION="Linux-PAM (Pluggable Authentication Modules)"
-HOMEPAGE="https://github.com/linux-pam/linux-pam"
-SRC_URI="
- https://github.com/linux-pam/linux-pam/releases/download/v${PV}/${MY_P}.tar.xz
- https://github.com/linux-pam/linux-pam/releases/download/v${PV}/${MY_P}-docs.tar.xz
-"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="|| ( BSD GPL-2 )"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
-IUSE="audit berkdb debug nis selinux"
-
-BDEPEND="
- app-alternatives/yacc
- dev-libs/libxslt
- app-alternatives/lex
- sys-devel/gettext
- virtual/pkgconfig
-"
-DEPEND="
- virtual/libcrypt:=[${MULTILIB_USEDEP}]
- >=virtual/libintl-0-r1[${MULTILIB_USEDEP}]
- audit? ( >=sys-process/audit-2.2.2[${MULTILIB_USEDEP}] )
- berkdb? ( >=sys-libs/db-4.8.30-r1:=[${MULTILIB_USEDEP}] )
- selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] )
- nis? (
- net-libs/libnsl:=[${MULTILIB_USEDEP}]
- >=net-libs/libtirpc-0.2.4-r2:=[${MULTILIB_USEDEP}]
- )
-"
-RDEPEND="${DEPEND}"
-PDEPEND=">=sys-auth/pambase-20200616"
-
-PATCHES=(
- "${FILESDIR}/${P}-termios.patch"
-)
-
-src_prepare() {
- default
- touch ChangeLog || die
-}
-
-multilib_src_configure() {
- # Do not let user's BROWSER setting mess us up, bug #549684
- unset BROWSER
-
- # This whole weird has_version libxcrypt block can go once
- # musl systems have libxcrypt[system] if we ever make
- # that mandatory. See bug #867991.
- if use elibc_musl && ! has_version sys-libs/libxcrypt[system] ; then
- # Avoid picking up symbol-versioned compat symbol on musl systems
- export ac_cv_search_crypt_gensalt_rn=no
-
- # Need to avoid picking up the libxcrypt headers which define
- # CRYPT_GENSALT_IMPLEMENTS_AUTO_ENTROPY.
- cp "${ESYSROOT}"/usr/include/crypt.h "${T}"/crypt.h || die
- append-cppflags -I"${T}"
- fi
-
- local myconf=(
- CC_FOR_BUILD="$(tc-getBUILD_CC)"
- --with-db-uniquename=-$(db_findver sys-libs/db)
- --with-xml-catalog="${EPREFIX}"/etc/xml/catalog
- --enable-securedir="${EPREFIX}"/$(get_libdir)/security
- --includedir="${EPREFIX}"/usr/include/security
- --libdir="${EPREFIX}"/usr/$(get_libdir)
- --enable-pie
- --enable-unix
- --disable-prelude
- --disable-doc
- --disable-regenerate-docu
- --disable-static
- --disable-Werror
- # TODO: wire this up now it's more useful as of 1.5.3 (bug #931117)
- --disable-econf
-
- # TODO: add elogind support (bug #931115)
- # lastlog is enabled again for now by us until logind support
- # is handled. Even then, disabling lastlog will probably need
- # a news item.
- --disable-logind
- --enable-lastlog
-
- $(use_enable audit)
- $(use_enable berkdb db)
- $(use_enable debug)
- $(use_enable nis)
- $(use_enable selinux)
- --enable-isadir='.' # bug #464016
- )
- ECONF_SOURCE="${S}" econf "${myconf[@]}"
-}
-
-multilib_src_compile() {
- emake sepermitlockdir="/run/sepermit"
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install \
- sepermitlockdir="/run/sepermit"
-}
-
-multilib_src_install_all() {
- find "${ED}" -type f -name '*.la' -delete || die
-
- # tmpfiles.eclass is impossible to use because
- # there is the pam -> tmpfiles -> systemd -> pam dependency loop
- dodir /usr/lib/tmpfiles.d
-
- cat ->> "${D}"/usr/lib/tmpfiles.d/${CATEGORY}-${PN}.conf <<-_EOF_
- d /run/faillock 0755 root root
- _EOF_
- use selinux && cat ->> "${D}"/usr/lib/tmpfiles.d/${CATEGORY}-${PN}-selinux.conf <<-_EOF_
- d /run/sepermit 0755 root root
- _EOF_
-
- local page
-
- for page in doc/man/*.{3,5,8} modules/*/*.{5,8} ; do
- doman ${page}
- done
-}
-
-pkg_postinst() {
- ewarn "Some software with pre-loaded PAM libraries might experience"
- ewarn "warnings or failures related to missing symbols and/or versions"
- ewarn "after any update. While unfortunate this is a limit of the"
- ewarn "implementation of PAM and the software, and it requires you to"
- ewarn "restart the software manually after the update."
- ewarn ""
- ewarn "You can get a list of such software running a command like"
- ewarn " lsof / | grep -E -i 'del.*libpam\\.so'"
- ewarn ""
- ewarn "Alternatively, simply reboot your system."
-
- # The pam_unix module needs to check the password of the user which requires
- # read access to /etc/shadow only.
- fcaps cap_dac_override sbin/unix_chkpwd
-}
diff --git a/sys-libs/pam/pam-1.7.0_p20241230-r3.ebuild b/sys-libs/pam/pam-1.7.0_p20241230-r3.ebuild
index e1e1c79a8d0e..a883d62048f2 100644
--- a/sys-libs/pam/pam-1.7.0_p20241230-r3.ebuild
+++ b/sys-libs/pam/pam-1.7.0_p20241230-r3.ebuild
@@ -9,7 +9,7 @@ MY_P="Linux-${PN^^}-${PV}"
# Can reconsider w/ EAPI 8 and IDEPEND, bug #810979
TMPFILES_OPTIONAL=1
-inherit db-use fcaps flag-o-matic meson-multilib
+inherit db-use fcaps flag-o-matic meson-multilib toolchain-funcs
DESCRIPTION="Linux-PAM (Pluggable Authentication Modules)"
HOMEPAGE="https://github.com/linux-pam/linux-pam"
@@ -35,7 +35,7 @@ fi
LICENSE="|| ( BSD GPL-2 )"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="audit berkdb elogind examples debug nis nls selinux systemd"
REQUIRED_USE="?? ( elogind systemd )"
@@ -78,11 +78,11 @@ src_configure() {
}
multilib_src_configure() {
- local native_file="${T}"/meson.${CHOST}.${ABI}.ini.local
+ local machine_file="${T}/meson.${CHOST}.${ABI}.ini.local"
# Workaround for docbook5 not being packaged (bug #913087#c4)
# It's only used for validation of output, so stub it out.
# Also, stub out elinks+w3m which are only used for an index.
- cat >> ${native_file} <<-EOF || die
+ cat >> "${machine_file}" <<-EOF || die
[binaries]
xmlcatalog='true'
xmllint='true'
@@ -90,9 +90,15 @@ multilib_src_configure() {
w3m='true'
EOF
- local emesonargs=(
- --native-file "${native_file}"
+ local emesonargs=()
+ if tc-is-cross-compiler; then
+ emesonargs+=( --cross-file "${machine_file}" )
+ else
+ emesonargs+=( --native-file "${machine_file}" )
+ fi
+
+ emesonargs+=(
$(meson_feature audit)
$(meson_native_use_bool examples)
$(meson_use debug pam-debug)
@@ -108,9 +114,6 @@ multilib_src_configure() {
-Dhtmldir="${EPREFIX}"/usr/share/doc/${PF}/html
-Dpdfdir="${EPREFIX}"/usr/share/doc/${PF}/pdf
- -Ddb=$(usex berkdb 'db' 'gdbm')
- -Ddb-uniquename=$(db_findver sys-libs/db)
-
$(meson_native_enabled docs)
-Dpam_unix=enabled
@@ -126,6 +129,20 @@ multilib_src_configure() {
$(meson_feature !elibc_musl pam_lastlog)
)
+ if use berkdb; then
+ local dbver
+ dbver="$(db_findver sys-libs/db)" || die "could not find db version"
+ local -x CPPFLAGS="${CPPFLAGS} -I$(db_includedir "${dbver}")"
+ emesonargs+=(
+ -Ddb=db
+ -Ddb-uniquename="-${dbver}"
+ )
+ else
+ emesonargs+=(
+ -Ddb=gdbm
+ )
+ fi
+
# This whole weird has_version libxcrypt block can go once
# musl systems have libxcrypt[system] if we ever make
# that mandatory. See bug #867991.
diff --git a/sys-libs/pkgcraft/Manifest b/sys-libs/pkgcraft/Manifest
index 4b19700f38b4..8f76e1784e47 100644
--- a/sys-libs/pkgcraft/Manifest
+++ b/sys-libs/pkgcraft/Manifest
@@ -1,4 +1,4 @@
DIST pkgcraft-c-0.0.16.tar.xz 20787816 BLAKE2B 085ee23fce8e03fa82fcec210e31f032cbe51354a14de2f2261329f432c0f6460363898d735dc7ed1c4115a184d6b7a3ff9a7c4d1697b12e34729cda54f6c234 SHA512 a805919375c8791b73a803a61c10df9ba0db87381f7fdec976428cf07b287bd10f02a6c97d1b7bb4d483b37a4ec6e027ae397067b658e4a4b422102e42d814e3
-EBUILD pkgcraft-0.0.16-r1.ebuild 2105 BLAKE2B 3fcb145b28d8005a024e1587f0ac96972ef24ef6749192660dabe80b8847c465c5c52c6ea1571764ee0c2319ecd3935b0f32768ba1c530f21641b689cf0b4a27 SHA512 6fb43fba54e2ee652a9fc38fce8212933125cae31836e5efd5e1948d1d5d07677cba39cfc1d93b242d6b2802e33596d8cd3a627cdae01f51f1a8857af7711eb4
-EBUILD pkgcraft-9999.ebuild 2105 BLAKE2B 3fcb145b28d8005a024e1587f0ac96972ef24ef6749192660dabe80b8847c465c5c52c6ea1571764ee0c2319ecd3935b0f32768ba1c530f21641b689cf0b4a27 SHA512 6fb43fba54e2ee652a9fc38fce8212933125cae31836e5efd5e1948d1d5d07677cba39cfc1d93b242d6b2802e33596d8cd3a627cdae01f51f1a8857af7711eb4
+EBUILD pkgcraft-0.0.16-r1.ebuild 2172 BLAKE2B cf65c3d060734883d8c798fbb5210c6926119c0248d20fdad5ee70abee1371c8e50b3669902683e78e3bc83de89fc80c8a67760e9bfc2ca8a5e297f3abae10e9 SHA512 53b446748a3dfdd7c85ae5972bcd1f0cd2bc1670318fa469a45e5eddd28f95249c438934529d7bc2081b59583a090c0e77db7fd53bf7a2d24fe31412057f20a6
+EBUILD pkgcraft-9999.ebuild 2173 BLAKE2B ddff0959d7acd00253d7d8ddfeb800e84398192d5b9b749b6831596eda4874bc65675ebf5ec0123cc1346c90bc00029160acc9fdcf77960ef0b4e689e7e7bf49 SHA512 1650596a0845ec8363799b979ba302b0b75a36dd1997d8a350f84831e38789a1689de7bf9a3d1b81f579be697f941898c0358d89c040ace48f78007a00c82ffe
MISC metadata.xml 322 BLAKE2B b0ee0fc53eb8b4b485f74806a78b5560aaf53f1772d7bd3e5af4e03385b3f3aed18fc52462c2d49de6c0d735db0cae3fab175b8adc0e5f7c4baa89e28973776f SHA512 9343cd5028750182fe9325c44f4c4c7df0976b79e0422b66e0fd16f94be76eaa203e8ecad5ec2cbed3535f455f038e51968850ced9afb27af9a98b6b968df88a
diff --git a/sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild b/sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild
index 493dc396d011..038e5f986a44 100644
--- a/sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild
+++ b/sys-libs/pkgcraft/pkgcraft-0.0.16-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ CRATES=" "
RUST_MIN_VER="1.77.1"
-inherit edo cargo flag-o-matic toolchain-funcs
+inherit edo cargo flag-o-matic multiprocessing toolchain-funcs
DESCRIPTION="C library for pkgcraft"
HOMEPAGE="https://pkgcraft.github.io/"
@@ -24,7 +24,7 @@ else
SRC_URI="https://github.com/pkgcraft/pkgcraft/releases/download/${MY_P}/${MY_P}.tar.xz"
S="${WORKDIR}"/${MY_P}
- KEYWORDS="~amd64 ~arm64"
+ KEYWORDS="amd64 ~arm64"
fi
LICENSE="MIT"
@@ -75,6 +75,8 @@ src_test() {
# pkgcraft-c.
cd "${WORKDIR}"/${P} || die
+ local -x NEXTEST_TEST_THREADS="$(makeopts_jobs)"
+
# Need nextest per README (separate processes required)
# Invocation from https://github.com/pkgcraft/pkgcraft/blob/main/.github/workflows/ci.yml#L56
edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
diff --git a/sys-libs/pkgcraft/pkgcraft-9999.ebuild b/sys-libs/pkgcraft/pkgcraft-9999.ebuild
index 493dc396d011..5ef300f81b23 100644
--- a/sys-libs/pkgcraft/pkgcraft-9999.ebuild
+++ b/sys-libs/pkgcraft/pkgcraft-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Gentoo Authors
+# Copyright 2023-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ CRATES=" "
RUST_MIN_VER="1.77.1"
-inherit edo cargo flag-o-matic toolchain-funcs
+inherit edo cargo flag-o-matic multiprocessing toolchain-funcs
DESCRIPTION="C library for pkgcraft"
HOMEPAGE="https://pkgcraft.github.io/"
@@ -75,6 +75,8 @@ src_test() {
# pkgcraft-c.
cd "${WORKDIR}"/${P} || die
+ local -x NEXTEST_TEST_THREADS="$(makeopts_jobs)"
+
# Need nextest per README (separate processes required)
# Invocation from https://github.com/pkgcraft/pkgcraft/blob/main/.github/workflows/ci.yml#L56
edo cargo nextest run $(usev !debug '--release') --color always --all-features --tests
diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest
index 3faf3c8f35e2..46d368ed405a 100644
--- a/sys-libs/readline/Manifest
+++ b/sys-libs/readline/Manifest
@@ -11,6 +11,7 @@ DIST readline-8.2.tar.gz 3043952 BLAKE2B 7974322b9c092a756a79e537df08e8532f8e0fc
DIST readline-8.2.tar.gz.sig 95 BLAKE2B dc510459c0c47782ca87364a6677b4d8f0b68a984143122c08bd15aef08a71bff59ac92d3c3ada518dad09f189c144748e840175041eb619f679e2d8b95dc2aa SHA512 0effd273689e5f7fe7e049c8f2c5f3c97149f198a90d053231ee4de34901560a465ab0d4fd71fd07c7d7e233caed7f42e5b668bffaf1e23a7eb373c8f9e150fe
DIST readline-8.3-beta.tar.gz 3412518 BLAKE2B 196812d49ad5a56d4163a50e603269e9d7a3e4b28acf0d09103bd64a12845c107ef03fd09812f93a3854cdf0dae201e780b9e71d51ed752233f1b38fef1d87dd SHA512 5a8727420917016ef1be2ec3dff1bff433a62b9e0732707f203a6ffbbaaff6134b3ab67d22a51ee86ed2c4d94b75e0fb2d41bca8018ce52cccb44d27320dfa1d
DIST readline-8.3-beta.tar.gz.sig 95 BLAKE2B af715b9a5e4bcad38aec353c2501b82648544429acd0db6afc19c66c0f19d6b8215e1198b3d54e09a54edb94c8a5438fc07ba80df17fa2dab789ba2201355ac5 SHA512 1906eaf283f558a5401bdfe401081ed92c77bf36c5bee19c4460cf907e9578bff6ce29423577e58d9e920760dd3822424426637dce1346569bc3668c7fead104
+DIST readline-8.3_beta_p20250128-5bcabd92f35444fa87ed49bd180a2994fd9449ba.tar.gz 3475352 BLAKE2B 7ea7ee7706a4d815e7a60acf96fdb344ef2baeb362d13cd7f5b8e6021e117c18f801ad1788689745739f9c69de2b0da1a1d04078fc2610bbdf212e42583980a3 SHA512 7267f9b1a08479f13f721afe03c8a1453ec95404ce9bdcdb3a7d150faf96522542ae26ebbcd54d648855779b60b84fe2e8d14bf78afdb6d391ce9db5642cb90c
DIST readline81-001 2454 BLAKE2B 7ec4e5c39a224a70643b44b88bcfef5198e199c76f2a34f0b0ce24f1747dd46be49ddf93871c474cda64322b4358127fec4c2401d19422f84934546bbe1f3bf2 SHA512 cfbef10bdeb562a302ccf214878d02ebadf799343b3d2d7996a282f81bcfde83997ba6dcc9a8477af4dd7c73bca74105ca00a81e42ed13321672bd2930550e54
DIST readline81-001.sig 95 BLAKE2B 7d523d0fc21772cb03aa4b5d66ea58c1a99a6c0e4a8625e89cad015cbff63cd68e08207ca5150819225300ac864806032888104bbbea64ca38ebf89e28c24b7e SHA512 7fa3747e388aecb26f2d4f8346b89b367710ea99a14618c625066b820901dc467bd156ec37340fde1f86f0fe0d6b33044c1ed5768cf8ed1a25386d32dc6419a6
DIST readline81-002 1242 BLAKE2B 4ef0404561bd8fc5559e8e5f675ae3f12c467178a8954f54f3204c2d09b88ccec960e807c7af0ec3514b489b676e3be51f98351e377fb18e3d7a14d33d4da69d SHA512 e47c029b82cf3a4d44e85c4348f7e059c56726694c190d84186822e1c893e1c006e7ec75f33c36791112f81abd792a2e2fdae9a65cd128f3c89ff4ffd9a9a1ff
@@ -45,5 +46,6 @@ EBUILD readline-8.1_p2-r2.ebuild 7112 BLAKE2B d6a7e0a5dbfffe7bb5743afeba949b706e
EBUILD readline-8.2_p13-r1.ebuild 7773 BLAKE2B 637c9152b400ab313b324f5ae00133a0e812e8d2ccb19d9d8e952c0e7ab0e0c66d200d8bb774cfe0fc2219319bf523e459d2c2d184c710b65c3f028b78e1ab30 SHA512 f06b0230e91eb9218956d721cc8ccebd788ad325416412857338f2f81e5d2fe846e8fc0ad8968bc20b8c549fdfcbc3b3de578fb61d6c2c6776eecafea9551916
EBUILD readline-8.2_p13.ebuild 7690 BLAKE2B 92ccc7536949403673081bd8c21f9df08361b86299e5b44dc5fc0e4114bdfbf9680f3235ea1588e5c5ced8f5d7fd43ae7a5f17d6c32e480853297d26007ab1c1 SHA512 14072e5a71bbc20ea536e2ff56d4acde7e077339286b0055256c1fcea704f33db2a82ccf450d54bb993cedd7246e35f9871412442c64c008d80556607aea9b33
EBUILD readline-8.3_beta.ebuild 7811 BLAKE2B 9008d80bbfffc579b2cca5e803e67207ca620695c56f4f205129747da45ccf0a92d2c1baf4fc5dd2573fa64e8fdafd18cfc0b5a6ae065fef5fc4b753b85b137d SHA512 aaaf3d63f96ca274b60e07bf561517b93d468d5690004c9a26d3fb42937005b5d729c3c6c1bc2a23fecbf067046f88dd10e12c98fbe98216b3419f7cdd131180
+EBUILD readline-8.3_beta_p20250128.ebuild 7811 BLAKE2B 1a571544f522b248c3214d822e9c899a71ffe29b535f01b30ef1637fafd7a86abc701524776550550d37ea896c9b14710a70e4595a9e7e1f54b36128073436a5 SHA512 cf46d76fa29f2fd41b768dddb5c109902750ee4508d25bd7bed8a6d7d6903ba4b879bc7be247f0bad57b2887bacbe00c01a566b354fc0aefad6d67170a56eea6
EBUILD readline-9999.ebuild 7811 BLAKE2B cf5eba115b0192005b2694856cef13519c3be3f9b65274286eacbd44ed4f700bad6a963604eb879911b28dba2804f27603d5c2fd6e079dc5a6b3b2acd42c5140 SHA512 c5bcb825bdccd649ba16986830df9bc4e20f74d6275cf9feb9f99de62715136951bd35b039c10c357bb972dee5b534994b7dc8d64a5a77b796568c99212bde50
MISC metadata.xml 533 BLAKE2B 2324b38d79697509a98d761cb8f91e08934b419f71bfd65cf09149773e3f44e8ff153d173cb1af80ccc4c10c7c65103bba5ca797f3b18b96c13132ffd777049e SHA512 5d66a8a464db16ea8afebeca7102632629486ccd4d348821ef693abde571c8a70a6aa38e9b563ddcfe93950afc38f63d2cb4239c645d97e92138a0c1e5c67f00
diff --git a/sys-libs/readline/readline-8.3_beta_p20250128.ebuild b/sys-libs/readline/readline-8.3_beta_p20250128.ebuild
new file mode 100644
index 000000000000..d3e7f154e810
--- /dev/null
+++ b/sys-libs/readline/readline-8.3_beta_p20250128.ebuild
@@ -0,0 +1,265 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# There's no standard way of versioning the point releases upstream
+# make anyway, so while this was added for RC versions, it's fine
+# in general.
+QA_PKGCONFIG_VERSION=$(ver_cut 1-2)
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
+inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs verify-sig
+
+# Official patches
+# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/
+PLEVEL="${PV##*_p}"
+MY_PV="${PV/_p*}"
+MY_PV="${MY_PV/_/-}"
+MY_P="${PN}-${MY_PV}"
+MY_PATCHES=()
+
+# Determine the patchlevel.
+case ${PV} in
+ 9999|*_alpha*|*_beta*|*_rc*)
+ # Set a negative patchlevel to indicate that it's a pre-release.
+ PLEVEL=-1
+ ;;
+ *_p*)
+ PLEVEL=${PV##*_p}
+ ;;
+ *)
+ PLEVEL=0
+esac
+
+DESCRIPTION="Another cute console display library"
+HOMEPAGE="https://tiswww.case.edu/php/chet/readline/rltop.html https://git.savannah.gnu.org/cgit/readline.git"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://git.savannah.gnu.org/git/readline.git"
+ EGIT_BRANCH=devel
+ inherit git-r3
+elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
+ # It can be useful to have snapshots in the pre-release period once
+ # the first alpha is out, as various bugs get reported and fixed from
+ # the alpha, and the next pre-release is usually quite far away.
+ #
+ # i.e. if it's worth packaging the alpha, it's worth packaging a followup.
+ READLINE_COMMIT="5bcabd92f35444fa87ed49bd180a2994fd9449ba"
+ SRC_URI="https://git.savannah.gnu.org/cgit/readline.git/snapshot/readline-${READLINE_COMMIT}.tar.gz -> ${P}-${READLINE_COMMIT}.tar.gz"
+ S=${WORKDIR}/${PN}-${READLINE_COMMIT}
+else
+ SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
+ SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${MY_P}.tar.gz.sig )"
+ S="${WORKDIR}/${MY_P}"
+
+ if [[ ${PLEVEL} -gt 0 ]] ; then
+ # bash-5.1 -> bash51
+ my_p=${PN}$(ver_rs 1-2 '' $(ver_cut 1-2))
+
+ patch_url=
+ my_patch_index=
+
+ upstream_url_base="mirror://gnu/readline"
+ mirror_url_base="ftp://ftp.cwru.edu/pub/readline"
+
+ for ((my_patch_index=1; my_patch_index <= ${PLEVEL} ; my_patch_index++)) ; do
+ printf -v mangled_patch_ver ${my_p}-%03d ${my_patch_index}
+ patch_url="${upstream_url_base}/${MY_P}-patches/${mangled_patch_ver}"
+
+ SRC_URI+=" ${patch_url}"
+ SRC_URI+=" verify-sig? ( ${patch_url}.sig )"
+
+ # Add in the mirror URL too.
+ SRC_URI+=" ${patch_url/${upstream_url_base}/${mirror_url_base}}"
+ SRC_URI+=" verify-sig? ( ${patch_url/${upstream_url_base}/${mirror_url_base}}.sig )"
+
+ MY_PATCHES+=( "${DISTDIR}"/${mangled_patch_ver} )
+ done
+
+ unset my_p patch_url my_patch_index upstream_url_base mirror_url_base
+ fi
+fi
+
+LICENSE="GPL-3+"
+SLOT="0/8" # subslot matches SONAME major
+if (( PLEVEL >= 0 )); then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+IUSE="static-libs +unicode utils"
+
+RDEPEND=">=sys-libs/ncurses-5.9-r3:=[static-libs?,unicode(+)?,${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-chetramey )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.0-no_rpath.patch
+ "${FILESDIR}"/${PN}-7.0-headers.patch
+ "${FILESDIR}"/${PN}-8.0-headers.patch
+
+ # TODO: rebase
+ #"${FILESDIR}"/${PN}-8.0-darwin-shlib-versioning.patch
+)
+
+src_unpack() {
+ local patch
+
+ if [[ ${PV} == 9999 ]]; then
+ git-r3_src_unpack
+ elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
+ default
+ else
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
+
+ for patch in "${MY_PATCHES[@]}"; do
+ verify-sig_verify_detached "${patch}"{,.sig}
+ done
+ fi
+
+ unpack "${MY_P}.tar.gz"
+
+ if [[ ${GENTOO_PATCH_VER} ]]; then
+ unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
+ fi
+ fi
+}
+
+src_prepare() {
+ (( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
+
+ default
+
+ #(( PLEVEL < 0 )) && eautoreconf
+
+ if use prefix && [[ ! -x "${BROOT}"/usr/bin/pkg-config ]] ; then
+ # If we're bootstrapping, make a guess. We don't have pkg-config
+ # around yet. bug #818103.
+ # Incorrectly populating this leads to underlinked libreadline.
+ local ncurses_libs
+ local ncurses_libs_suffix=$(usex unicode w '')
+
+ ncurses_libs="-lncurses${ncurses_libs_suffix}"
+
+ if has_version "sys-libs/ncurses[tinfo(+)]" ; then
+ ncurses_libs+=" -ltinfo${ncurses_libs_suffix}"
+ fi
+ else
+ # Force ncurses linking, bug #71420.
+ # Use pkg-config to get the right values, bug #457558.
+ local ncurses_libs=$($(tc-getPKG_CONFIG) ncurses$(usex unicode w '') --libs)
+ fi
+
+ sed -i \
+ -e "/^SHLIB_LIBS=/s:=.*:='${ncurses_libs}':" \
+ support/shobj-conf || die
+ sed -i \
+ -e "/^[[:space:]]*LIBS=.-lncurses/s:-lncurses:${ncurses_libs}:" \
+ examples/rlfe/configure || die
+
+ # Fix building under Gentoo/FreeBSD; upstream FreeBSD deprecated
+ # objformat for years, so we don't want to rely on that.
+ sed -i -e '/objformat/s:if .*; then:if true; then:' support/shobj-conf || die
+
+ # For local readline headers
+ ln -s ../.. examples/rlfe/readline || die
+}
+
+src_configure() {
+ # Fix implicit decls with widechar funcs
+ append-cppflags -D_GNU_SOURCE
+ # https://lists.gnu.org/archive/html/bug-readline/2010-07/msg00013.html
+ append-cppflags -Dxrealloc=_rl_realloc -Dxmalloc=_rl_malloc -Dxfree=_rl_free
+
+ # Make sure configure picks a better ar than `ar`, bug #484866
+ export ac_cv_prog_AR="$(tc-getAR)"
+
+ # Force the test since we used sed above to force it.
+ export bash_cv_termcap_lib=ncurses
+
+ # Control cross-compiling cases when we know the right answer.
+ # In cases where the C library doesn't support wide characters, readline
+ # itself won't work correctly, so forcing the answer below should be OK.
+ if tc-is-cross-compiler ; then
+ export bash_cv_func_sigsetjmp="present"
+ export bash_cv_func_ctype_nonascii="yes"
+ # bug #503312
+ export bash_cv_wcwidth_broken="no"
+ fi
+
+ # This is for rlfe, but we need to make sure LDFLAGS doesn't change
+ # so we can re-use the config cache file between the two.
+ append-ldflags -L.
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --cache-file="${BUILD_DIR}"/config.cache
+ --with-curses
+ $(use_enable static-libs static)
+ )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+
+ if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then
+ # Code is full of AC_TRY_RUN()
+ mkdir -p examples/rlfe || die
+ cd examples/rlfe || die
+
+ ECONF_SOURCE="${S}"/examples/rlfe econf --cache-file="${BUILD_DIR}"/config.cache
+ fi
+}
+
+multilib_src_compile() {
+ emake
+
+ if use utils && multilib_is_native_abi && ! tc-is-cross-compiler ; then
+ # Code is full of AC_TRY_RUN()
+ cd examples/rlfe || die
+ local l
+ for l in readline history ; do
+ ln -s ../../shlib/lib${l}$(get_libname)* lib${l}$(get_libname) || die
+ ln -s ../../lib${l}.a lib${l}.a || die
+ done
+ emake
+ fi
+}
+
+multilib_src_install() {
+ default
+
+ if multilib_is_native_abi ; then
+ if use utils && ! tc-is-cross-compiler; then
+ dobin examples/rlfe/rlfe
+ fi
+ fi
+}
+
+multilib_src_install_all() {
+ HTML_DOCS="doc/history.html doc/readline.html doc/rluserman.html" einstalldocs
+
+ dodoc USAGE
+ docinto ps
+ dodoc doc/*.ps
+}
+pkg_preinst() {
+ # bug #29865
+ # Reappeared in bug #595324 with paludis so keeping this for now...
+ preserve_old_lib \
+ /$(get_libdir)/lib{history,readline}$(get_libname 4) \
+ /$(get_libdir)/lib{history,readline}$(get_libname 5) \
+ /$(get_libdir)/lib{history,readline}$(get_libname 6) \
+ /$(get_libdir)/lib{history,readline}$(get_libname 7)
+}
+
+pkg_postinst() {
+ preserve_old_lib_notify \
+ /$(get_libdir)/lib{history,readline}$(get_libname 4) \
+ /$(get_libdir)/lib{history,readline}$(get_libname 5) \
+ /$(get_libdir)/lib{history,readline}$(get_libname 6) \
+ /$(get_libdir)/lib{history,readline}$(get_libname 7)
+}
diff --git a/sys-libs/timezone-data/Manifest b/sys-libs/timezone-data/Manifest
index 8b524092682f..3c77e411ca40 100644
--- a/sys-libs/timezone-data/Manifest
+++ b/sys-libs/timezone-data/Manifest
@@ -1,11 +1,10 @@
AUX timezone-data-2024a-AsiaAlmaty.patch 1211 BLAKE2B 2d85afd4aa93ecbc051efc67ef0451fa8acd342b7f949db6a07b3f0108da612abe4002c44e308ccdfc1bb4cd3f078814951cdb623907d68a1a5a69de817bf96c SHA512 988dd962d85f2ba02e8e47fc982da1830b0e184135403fa4fe38e2ff251ac242ce7f36ed5298830a91dc76cfd428b09faaf1319c4f20cd29833b9164def079cb
AUX timezone-data-2024b-April-short.patch 877 BLAKE2B b15f547759e3418011dc0dd83c09573bcae5a9ce6b22387dd694b4ab8a138e470e6bec68492efb9251ae20c63bfb9dae87b9d208d467b3ae6a3170def4eff0cf SHA512 dcff5b75c023c317482c58c4ccef91bd86ce2a1c6f9993985daa542ccf61616251b56b4d091ba7a44dceb7549caa7e18ff50970ffc28e0db89c4e949fe1ba2ff
-DIST tzcode2023d.tar.gz 298795 BLAKE2B 3e759de2e1dfe033bb98b5af5239631ef5dc33e25b6aeb95ab3e6041d5db3dd1b1cb8b210f072bc0d671117f2ad162cdcdcb3ecae97aa2d3be3bc2e809845666 SHA512 3994a5a060a7a5fffc6585f5191cf7679f9f9be44dbcee4d67d0e42c5b6020c308cb55caf8bf8d51554697665105a174cb470c8c4fc069438350f3bac725709b
DIST tzcode2024a.tar.gz 301595 BLAKE2B f3b8d1e7735ad858d071df564a8e11ac4d252b97a5729fa6c282112ff3903f7d35897735920b4466a926ef647dc283356879134046805411c694efd3fd89b282 SHA512 46da8bfa762c7d109db93e5c060789097fc0e1e38bdad5bb8fec886ef47f138bd03b913a743cd5f7e23dc359a72bfd63e7ffc0de199d2b51e6a174361dbdc43c
-DIST tzdata2023d.tar.gz 449767 BLAKE2B b79be37a8a258745d162a575c795ee6476b4fa5f6d2f7b562d9431a238eca276a1747a983778291184fc6e40a0c1f5e6284d41290fd6d1d3bd3118bda83f426e SHA512 81832b2d738c28cecbcb3906cc07568c5ae574adc9de35b25d4bf613581c92d471d67213b4261a56f0ec02efcf211b4e298b7e1dc367c972e726b0a2e9498df4
DIST tzdata2024a.tar.gz 451270 BLAKE2B 5ec49bbce704411a1d8b3f018b0d8f6c7de24c5600e0cb6c61a7ee29b4a49b1e502d23b40bce6584ea0aa9b66327321608cbabb994071ec4ca2b3a496aa2d621 SHA512 1f09f1b2327cc9e1afc7e9045e83ee3377918dafe1bee2f282b6991828d03b3c70a4d3a17f9207dfb1361bb25bc214a8922a756e84fa114e9ba476226db57236
DIST tzdb-2024b.tar.lz 544381 BLAKE2B 7e9e7d88aa25813c461bd9a9653fcb5e9b212bd07f7c6d5632a75e7f2200af121382ffe98bdf2a88f21b88e1fcebb3fee1bdc39322fe65520084144065d3445f SHA512 72446e5cf445515512437c8deaae3063b093aab9620d6441cafaa9b3b71603c857f7ba53557579595788bbc901cd6142404b4db6b0e9f2b23d57b2b3cbc837a8
-EBUILD timezone-data-2023d.ebuild 5268 BLAKE2B c024f891c44c43307711aad7df3ccb61cd3aa9bcec9ea0cb950387b439fc8208b80dfa8d3ce8c28b489a9b9eb56dde30ddac9ca0bd1b7085e0559a8f21dbc7bd SHA512 5983388e17ff96305d6687818a47e47f8a2262bbfa515ef728cfb8fe41e057a025d29256a90fd12ae0d467680ddaac8b3f4b24d206efa3ec07b0e81cec5eff67
+DIST tzdb-2025a.tar.lz 548434 BLAKE2B cccd37ca71bfde7e56ed5138be5a610ec9d5ca59658b90e5e2a10af9221ed6d09b24b106bef46b04bbc97bff74b6e97a1f800c078a523aa32c13416a33264df2 SHA512 1e8c4e141158d63ca5c39babc9d18c32df14e2e59bc7649a7fed8c3e577f7b175bafa43883cf351139ff198515f5f8c22b1418e2ac7efb7f837faa8f61d2574d
EBUILD timezone-data-2024a-r1.ebuild 5321 BLAKE2B d2e649172a2193fdc5844727a156683b9bc28c3386c754c949f0e3a3edef9a8a26a710f75697b1bb635b5e7be79c31e1abb81e1bb21abfb18756d7657fd336e3 SHA512 6c2b9de0467ac8a5285faf7b85b71bc2b632c72c397b2caa6467417a3c80ee6866c60991e5db73312e8d42ffd7108ddcf42d8ae1eab151131b7792a82416d4bb
EBUILD timezone-data-2024b.ebuild 5043 BLAKE2B 7d8f15ae7bcca725bc8d90625b8d92aca27a99c17e642bd0d34753b17217343dd9525501d0e0c14d0a1c15018ecbe7f8b451baf21d4c5c8dbbfda2f6c9a2959e SHA512 b1215e4004224fb3c3237fcad753f8bb549943065f8c539de9579e71aadfbb7c656d76827143bb7c67732fe9c25fddb24af62073993b10a0cf8d88374095a912
+EBUILD timezone-data-2025a-r1.ebuild 4185 BLAKE2B 39e2a23691e5de03f3950c502f983ca81558d3795a067416395466a9199d07d2fb64b866be0a317c381baeaaea4dd6f2969cddbcb0d0c0e0d84f8b9c77ef01b2 SHA512 902aef707ba8563ad6fa86bcbec9a7b47c170f8ae80e732c5b02877ce7d2cf11429b87531bd3b1894207bf8783fef25bc7137ac2c3a972a9ab125a93dce64107
MISC metadata.xml 807 BLAKE2B 24b09c4228c232b607e6e6c165a20e364136d77aa970e72c70124636a038cd3b672bad16ddd68c0b75373be6a09f969e59bc38f7e451bb2869cd46c521e2ca82 SHA512 0b95b32d79651493a04032f175f3320d8975cea714b43fa56aa528f10f51a7c52b58a934828f98a770855485af6f8db048bd2bfa3010802cff8c26ae05bb16e2
diff --git a/sys-libs/timezone-data/timezone-data-2023d.ebuild b/sys-libs/timezone-data/timezone-data-2025a-r1.ebuild
index 6d1148de0ed7..3666f8f6388e 100644
--- a/sys-libs/timezone-data/timezone-data-2023d.ebuild
+++ b/sys-libs/timezone-data/timezone-data-2025a-r1.ebuild
@@ -1,16 +1,16 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit toolchain-funcs flag-o-matic
+inherit toolchain-funcs flag-o-matic unpacker
-MY_CODE_VER=${PV}
-MY_DATA_VER=${PV}
DESCRIPTION="Timezone data (/usr/share/zoneinfo) and utilities (tzselect/zic/zdump)"
HOMEPAGE="https://www.iana.org/time-zones"
-SRC_URI="https://www.iana.org/time-zones/repository/releases/tzdata${MY_DATA_VER}.tar.gz
- https://www.iana.org/time-zones/repository/releases/tzcode${MY_CODE_VER}.tar.gz"
+SRC_URI="
+ https://data.iana.org/time-zones/releases/tzdb-${PV}.tar.lz
+"
+S="${WORKDIR}"/tzdb-${PV}
LICENSE="BSD public-domain"
SLOT="0"
@@ -22,19 +22,11 @@ RDEPEND="
${DEPEND}
!sys-libs/glibc[vanilla(+)]
"
-
-src_unpack() {
- mkdir "${S}" && cd "${S}" || die
- default
-}
+BDEPEND="$(unpacker_src_uri_depends)"
src_prepare() {
default
- # check_web contacts validator.w3.org
- sed -i -e 's/check_tables check_web/check_tables/g' \
- Makefile || die "Failed to disable check_web"
-
if tc-is-cross-compiler ; then
cp -pR "${S}" "${S}"-native || die
fi
@@ -97,8 +89,8 @@ src_compile() {
}
src_test() {
- # VALIDATE_ENV is used for extended/web based tests. Punt on them.
- emake check VALIDATE_ENV=true
+ # CURL is used for extended/web based tests. Punt on them.
+ emake check CURL=:
}
src_install() {
@@ -115,31 +107,6 @@ src_install() {
dodoc CONTRIBUTING README NEWS *.html
}
-get_TIMEZONE() {
- local tz src="${EROOT}/etc/timezone"
- if [[ -e ${src} ]] ; then
- tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
- else
- tz="FOOKABLOIE"
- fi
-
- [[ -z ${tz} ]] && return 1 || echo "${tz}"
-}
-
-pkg_preinst() {
- local tz=$(get_TIMEZONE)
- if [[ ${tz} == right/* || ${tz} == posix/* ]] ; then
- eerror "The right & posix subdirs are no longer installed as subdirs -- they have been"
- eerror "relocated to match upstream paths as sibling paths. Further, posix/xxx is the"
- eerror "same as xxx, so you should simply drop the posix/ prefix. You also should not"
- eerror "be using right/xxx for the system timezone as it breaks programs."
- die "Please fix your timezone setting"
- fi
-
- # Trim the symlink by hand to avoid portage's automatic protection checks.
- rm -f "${EROOT}"/usr/share/zoneinfo/posix
-}
-
configure_tz_data() {
# Make sure the /etc/localtime file does not get stale, bug #127899
local tz src="${EROOT}/etc/timezone" etc_lt="${EROOT}/etc/localtime"
@@ -147,17 +114,23 @@ configure_tz_data() {
# If it's a symlink, assume the user knows what they're doing and
# they're managing it themselves, bug #511474
if [[ -L "${etc_lt}" ]] ; then
- einfo "Assuming your ${etc_lt} symlink is what you want; skipping update."
+ einfo "Skipping update: ${etc_lt} is a symlink."
+ if [[ -e ${src} ]]; then
+ einfo "Removing ${src}."
+ rm "${src}"
+ fi
return 0
fi
- if ! tz=$(get_TIMEZONE) ; then
- einfo "Assuming your empty ${src} file is what you want; skipping update."
+ if [[ ! -e ${src} ]] ; then
+ einfo "Skipping update: ${src} does not exist."
return 0
fi
- if [[ "${tz}" == "FOOKABLOIE" ]] ; then
- einfo "You do not have a timezone set in ${src}; skipping update."
+ tz=$(sed -e 's:#.*::' -e 's:[[:space:]]*::g' -e '/^$/d' "${src}")
+
+ if [[ -z ${tz} ]]; then
+ einfo "Skipping update: ${src} is empty."
return 0
fi
@@ -172,7 +145,7 @@ configure_tz_data() {
# If a regular file already exists, copy over it.
ewarn "Found a regular file at ${etc_lt}."
ewarn "Some software may expect a symlink instead."
- ewarn "You may convert it to a symlink by removing the file and running:"
+ ewarn "Convert it to a symlink by removing the file and running:"
ewarn " emerge --config sys-libs/timezone-data"
einfo "Copying ${tzpath} to ${etc_lt}."
cp -f "${tzpath}" "${etc_lt}"
diff --git a/sys-libs/uid_wrapper/Manifest b/sys-libs/uid_wrapper/Manifest
index dad82b23dbab..e6903b7e84aa 100644
--- a/sys-libs/uid_wrapper/Manifest
+++ b/sys-libs/uid_wrapper/Manifest
@@ -1,4 +1,4 @@
AUX uid_wrapper-1.3.0-cmocka-cmake.patch 850 BLAKE2B c67b7cb93a89e01d374d121b66f2b9c5b608a70cb75b6b7a4c8b7fb2c027d4e5cb66c2c90fabf1c0fd1e1676367129c55f65e2fffec57998bda1cbbce852a107 SHA512 054ed20913dae13de43cc3f3bca2ba257bd39626e73445d57c2ab0b766525371096ee2b89e7c35407932ee7495f3c83b4b2b93a5610eb86e1be2644b2c214bd1
DIST uid_wrapper-1.3.0.tar.gz 51126 BLAKE2B 9460d50ce7cfa613316bda38678d4918aceb048a5f8bc3d48abd4024fd67b0e6194c543c7f7092041b91b4f72d8bab79858697ee541ccef0486c3aa4cfad2506 SHA512 a66515b701882cf8ac62c6aae719eb07a46b852ecfd5274c7a1f038b066db85fbc0cdf4fff2c79e7b1e45d08622cd90884498f668fe479989e47e79ecd932095
-EBUILD uid_wrapper-1.3.0.ebuild 676 BLAKE2B 866735bb8d5093fdbaa49afb4fafc48e11d4d5d5b75ef14f7b9006f874663ccba038a9e5df2c2e978ab908865e6ce1db42d1b1831a85ec30ea99b686fe1432d3 SHA512 be9d4f5608938ce6935969c7fe2585ff55831e9f730674bf494e68694fbe81d7bf33c5393988bc8c2ccba21389d21b7c368a1f99940fff02650719b2ae9e3864
+EBUILD uid_wrapper-1.3.0.ebuild 682 BLAKE2B 942fa19d7d48194e3c7189828342250f56bf2b9b50a698d2ec6f87306749b534f42797dc1fe485ceae5882b5a91f8e22767bf0873ccfde3c06d9fa8db3bd9f63 SHA512 7bc9b3aaa649a6f0c5cd7c29408c68c3fee459a7c8d879a6ce50010be83ef71b0dd67d1a669db73d5c2e08c50c8f8d575456eeab49abddf4d0cfa05ee71db0ce
MISC metadata.xml 250 BLAKE2B e398673dd1a3522ccddb89a82a53fc2578d8e0777ec46f889d01d618609a22958d91699beef513c7912799e0e8ff985200f7c67bba941235da25c24cd4b48f09 SHA512 16834c3cbecd0dd5a9c8c311d2b8ebc63d8cd72c5891498f4f0048988993c104aadd4e24e632bf54071c11f810716432e89e4afab029555875f9f52794daa6e9
diff --git a/sys-libs/uid_wrapper/uid_wrapper-1.3.0.ebuild b/sys-libs/uid_wrapper/uid_wrapper-1.3.0.ebuild
index 5b4f8d5990f9..e2a5566100d5 100644
--- a/sys-libs/uid_wrapper/uid_wrapper-1.3.0.ebuild
+++ b/sys-libs/uid_wrapper/uid_wrapper-1.3.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,7 +12,7 @@ SRC_URI="https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/sys-libs/zlib-ng/Manifest b/sys-libs/zlib-ng/Manifest
index fdf5b2b5e70e..1b6f8fae060e 100644
--- a/sys-libs/zlib-ng/Manifest
+++ b/sys-libs/zlib-ng/Manifest
@@ -1,5 +1,7 @@
DIST zlib-ng-2.1.7.tar.gz 2406554 BLAKE2B c92a2ad481e4a10b8ec164f3974a09242118e2c16dbe51553b7f6e5c33886997dc390e73ce26f99bdb5ce0ecae3eb19322059576a83da1c3958435554773878c SHA512 03e6d22ecb39c9425fa2977e5db608f765387a06b9ef93b162e403bb155aa3b59bbaedb41e827e7e159d6635325d804dcd4314a25adcb35b83e6e0cf1153aabe
DIST zlib-ng-2.2.3.tar.gz 2413008 BLAKE2B 65cd976d559dcc31f34861a01b2eb0ce0439dd6412553a5a9842d2d937d4a0d1194aec98f478f5def4a0401e65a7c97b6843122bae49a35f96c7e2c59e79cc64 SHA512 e71e8972ec2c4dec9eaa2c8f550185f13d0f5c411c38061d1aaf78ca8e522fa3d53f005296e574af7f152e7da3a78adf97ae4bb638b7fd277ef57bba26370b7d
+DIST zlib-ng-2.2.4.tar.gz 2415754 BLAKE2B eb118c4b1d6de1b6cb5e3e1fcc8cc36ccf794321fab49f6070868515b179845495bf8833222107cc874397a3c2043a39c28d0f5d5a2bd450afaba606747a07cd SHA512 f49a89497988db55a2f2375f79443e7e2c57470dbd94b35ae38a39d988eb42f8ecc295a1bd68845fc273b59ea508d0e74b142585d85b7e869dd3c01cc6923d8d
EBUILD zlib-ng-2.1.7.ebuild 2500 BLAKE2B 0d42ee88d8c6429ba129db582a3106d7a3527b9f54122229f42ba65859f7cc8671e7db5f2bdc2d878cb965e8b14cc83eb01ef7699c8b9443316e466ea47c22ca SHA512 1f1c8d9d33c15a2c4eb7fe6e6a497e4f22e6635ec577ef1f6d341af8769831b3b7854dc13ba5f1efbbd45a30a267252985614015e71ff2fcd53021bf5464919a
-EBUILD zlib-ng-2.2.3.ebuild 2344 BLAKE2B bceb46d0c822a08c6f68cca96640236e5779b6bbd23eacf32d189a13a54742404b6b175b18921afc6523ec89d125b7bd0928f52354242d989cfcc906d68cb559 SHA512 26d086340cf2d62bf024efb7ef32f66bcb248cb30c0529e9b72f3938cc1577f83a04f9b9c333d1c28073fd1977b654e149a5481c4e217af7d467aa5d6a78b3e7
+EBUILD zlib-ng-2.2.3.ebuild 2343 BLAKE2B 77339dfdbe8587797e9f0f12e99cf5267f31812c9876ad99b4d3a6de09d1c509d3ac372022e98b5ac3649471d792021d8169247608f2700e3072cc14b08da1ce SHA512 af709a78aab1568de2dfaca7ae4efa98fddf814583325c44c5834dbbb9ed54ce4705a01d886cb1668ca921b7e3d46ff74dd6493d35cbca3865c98a2d06e76d3b
+EBUILD zlib-ng-2.2.4.ebuild 2344 BLAKE2B bceb46d0c822a08c6f68cca96640236e5779b6bbd23eacf32d189a13a54742404b6b175b18921afc6523ec89d125b7bd0928f52354242d989cfcc906d68cb559 SHA512 26d086340cf2d62bf024efb7ef32f66bcb248cb30c0529e9b72f3938cc1577f83a04f9b9c333d1c28073fd1977b654e149a5481c4e217af7d467aa5d6a78b3e7
MISC metadata.xml 431 BLAKE2B 49465a63458ac9b7d807d699d45046fd7dc849796f039956effee297fd4da30109bc6f0644cc46aec680f6a94fb6b839d857b17a2699907fd43317794a12cf78 SHA512 16c8b051776ba1ba37b01eac4127d3a84811b3f4cc9f733480ddd12992bb7119cf3c8a22dc18e4086cf71fe7a16266c21684bc7040070eaf1a8dde1783c8d59e
diff --git a/sys-libs/zlib-ng/zlib-ng-2.2.3.ebuild b/sys-libs/zlib-ng/zlib-ng-2.2.3.ebuild
index 6059eb4121b5..abb9e9bf9323 100644
--- a/sys-libs/zlib-ng/zlib-ng-2.2.3.ebuild
+++ b/sys-libs/zlib-ng/zlib-ng-2.2.3.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86"
CPU_USE=(
x86_{avx2,avx512f,avx512_vnni,sse2,ssse3,sse4_2,pclmul,vpclmulqdq}
diff --git a/sys-libs/zlib-ng/zlib-ng-2.2.4.ebuild b/sys-libs/zlib-ng/zlib-ng-2.2.4.ebuild
new file mode 100644
index 000000000000..6059eb4121b5
--- /dev/null
+++ b/sys-libs/zlib-ng/zlib-ng-2.2.4.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Worth keeping an eye on 'develop' branch upstream for possible backports,
+# as they copied this practice from sys-libs/zlib upstream.
+
+inherit cmake-multilib
+
+DESCRIPTION="Fork of the zlib data compression library"
+HOMEPAGE="https://github.com/zlib-ng/zlib-ng"
+SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86"
+
+CPU_USE=(
+ x86_{avx2,avx512f,avx512_vnni,sse2,ssse3,sse4_2,pclmul,vpclmulqdq}
+ arm_{crc32,neon}
+ ppc_{altivec,vsx2,vsx3}
+)
+IUSE="compat ${CPU_USE[@]/#/cpu_flags_} test"
+
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ test? ( dev-cpp/gtest )
+"
+RDEPEND="
+ compat? ( !sys-libs/zlib )
+"
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DZLIB_COMPAT=$(usex compat)
+ -DZLIB_ENABLE_TESTS=$(usex test)
+ -DWITH_GTEST=$(usex test)
+ )
+
+ # The intrinsics options are all defined conditionally, so we need
+ # to enable them on/off per-arch here for now.
+ # TODO: There's no s390x USE_EXPAND yet
+ if use amd64 || use x86 ; then
+ mycmakeargs+=(
+ -DWITH_AVX2=$(usex cpu_flags_x86_avx2)
+ -DWITH_AVX512=$(usex cpu_flags_x86_avx512f)
+ -DWITH_AVX512VNNI=$(usex cpu_flags_x86_avx512_vnni)
+ -DWITH_SSE2=$(usex cpu_flags_x86_sse2)
+ -DWITH_SSSE3=$(usex cpu_flags_x86_ssse3)
+ -DWITH_SSE42=$(usex cpu_flags_x86_sse4_2)
+ -DWITH_PCLMULQDQ=$(usex cpu_flags_x86_pclmul)
+ -DWITH_VPCLMULQDQ=$(usex cpu_flags_x86_vpclmulqdq)
+ )
+ fi
+
+ if use arm || use arm64 ; then
+ mycmakeargs+=(
+ -DWITH_ACLE=$(usex cpu_flags_arm_crc32)
+ -DWITH_NEON=$(usex cpu_flags_arm_neon)
+ )
+ fi
+
+ if use ppc || use ppc64 ; then
+ # The POWER8 support is VSX which was introduced
+ # VSX2 was introduced with POWER8, so use that as a proxy for it
+ mycmakeargs+=(
+ -DWITH_ALTIVEC=$(usex cpu_flags_ppc_altivec)
+ -DWITH_POWER8=$(usex cpu_flags_ppc_vsx2)
+ -DWITH_POWER9=$(usex cpu_flags_ppc_vsx3)
+ )
+ fi
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ if use compat ; then
+ ewarn "zlib-ng is experimental and replacing the system zlib is dangerous"
+ ewarn "Please be careful!"
+ ewarn
+ ewarn "The following link explains the guarantees (and what is NOT guaranteed):"
+ ewarn "https://github.com/zlib-ng/zlib-ng/blob/2.0.x/PORTING.md"
+ fi
+}
diff --git a/sys-libs/zlib/Manifest b/sys-libs/zlib/Manifest
index a92c04d8491d..5e815d826841 100644
--- a/sys-libs/zlib/Manifest
+++ b/sys-libs/zlib/Manifest
@@ -1,16 +1,9 @@
-AUX zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch 3209 BLAKE2B 26e9fd2d68534c6b2d5d88c5dc8150d63dede949ab71d454d94c13736c3f02c8e01201d39ccaa7fe189db0a272a315aa01a6a214f0cc7e25030b2c96b5fbe0ce SHA512 e5db2181e21d6fe7ef4d36b99fd80f4df576dabb7cbf3d205b30abd6760fdc33efaa3668fd927efe2c27a019c419b769b721760d9eb2f10d5d6955adf7a751bf
AUX zlib-1.2.11-minizip-drop-crypt-header.patch 997 BLAKE2B a964dfb26d05045507cb2ebf1154b890782d9952288627dd5093eeeaed9265a6041922e9fef378333ad3b9ac2333d692b06db1d6425df25d6062b9fc42ec8c50 SHA512 158c4b711e8afc248cbd55f2057dede18540ad35ec1a47d0cfb0fe9bf10b1507bb1b4525badcc0a8b6505062d838ee4fb2d4ebfbf9c9d1694336a704bc0b690e
-AUX zlib-1.2.13-CVE-2023-45853.patch 1657 BLAKE2B d18588e24ec87454f4056751756881cfb3632ab24ace37dbd1a173e4914a20d9101cecc505251a9635c034f3ee99e31532fe95fe273df92fc83b0f9e0691a473 SHA512 38d801e2072cc9f6dacf25704cf935e7ec75f006ecda6933ea1667fce8e5fe154ed5d0b20a334a9c55b4d8ea9a8e7e466aa93fda5de3f409f2ccf8d5fa938bd1
-AUX zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch 1944 BLAKE2B eb6f1d7dbc44905b462a9181fb3e213f18f515786cbba3ef182d76a1cf94d1b4d7220a7abde3f3f8cad25f3651025be35f1c99e4e4099314c4a47852979a586f SHA512 3a3577ce0ffb168685af9e6f77b94cde5669765273ec63be9a777f74431a2438866c6d0db9a5cd32246bd317eab5dd63f410bafb3312d3bc1f3b8f6c83135786
-AUX zlib-1.2.13-use-LDFLAGS-in-configure.patch 2650 BLAKE2B 3cfae2b0658534aab64f7969d86307bf96724f4ec847e378c2f87b6b9e43c00bae96845d1c3405d5d913d2005e9f18f53923329ad1cfd73e9395f94d035e275f SHA512 77499165a934d171c7d4bbd177f3cfa2e57db8923c61222a48734f8d3879245ed91fe2b900b3a429db89e098a4d4fcd9f3b6f2c1c3a86f761e1b33b56a73987d
AUX zlib-1.3.1-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch 685 BLAKE2B ce9e9898050d123026fdb7739bc8e31af0eb40ab45d6ca91d25330011e014f68612ab1e680adbd14ecf0286a41f1674814c9ffff9b112bcbd859ddfb147a8e98 SHA512 de0528191bcd18ec42901291bdfb931f269c5294e6223062aeddd47466a67bd8176a84dd30f1570fe8a65b90ba5b5fce3050813789edaa66aeaad6e823a182d2
AUX zlib-1.3.1-configure-fix-AR-RANLIB-NM-detection.patch 2940 BLAKE2B ad0cd287eeb1a78a220063966138dc618ce010c30587c84c5f18f1690814c30ecebc7e28c310d9570015b8da8b5997f99dccdf4aa8665243ab172e2c1ba74c93 SHA512 28ca95ad2e95ab0cef6a0c728ff0fd94ab9bdce445de1dd40531ceb613b11bdfb7b519a8301d6ed529b76df04d561a022595de1e880bd8e00538c71384148f91
AUX zlib-1.3.1-configure-fix-AR-libtool-on-darwin.patch 849 BLAKE2B 6bd8c5486e925ad263f35b25f774969a5ed8eb462cc6839129ec994668a022d7a1b7dd0f101fad3dbb303bfd8c637751e24f9f7dc7245899b12ede7ba8d7c184 SHA512 ae325263261618a8b9280e3b56113f079c0cc2713c3f93d715d4771a71631de6cbff9de82b39c256e15fd243ab93f35ea6428d4c5a2474675cfc09ac41d49397
AUX zlib-1.3.1-use-LDFLAGS-in-configure.patch 2698 BLAKE2B cbb28d07c44edbf1403792f147aa20c87d3954c1724c6c87f3c099a2fb1855163a1aeea0d9e67b5e8b868d404080b6ff434ab8c5ef3cfa966281579556d186ea SHA512 5ed35372202f59032ed2929ae253b81c9e4362816e7adabae68312c20c9675f9fa9749b5f8a247c77d2f415d1592bcc229d7ddca431b1931c78e3368a5d6848e
DIST zlib-1.3.1.tar.xz 1305740 BLAKE2B 42d109223801a493de6d52e7343403d7fc3234a6ca816425fe41ac9c18019b01b93841acd28a235e99f2256a6a17f93624e96b2ddb58d588c8190a6bedb82910 SHA512 1e8e70b362d64a233591906a1f50b59001db04ca14aaffad522198b04680be501736e7d536b4191e2f99767e7001ca486cd802362cca2be05d5d409b83ea732d
DIST zlib-1.3.1.tar.xz.asc 235 BLAKE2B b135336ef55a0c4b8e219e760bbe04bad082c405246ce51a2b373c3dfba0b05cb1e6f539363972f4cabd8290be1db1fdb2fc47fb562c6c612a08d9393065f75b SHA512 d181e9772a8139b3b2f3f42b994a65a966101db35eb46b5c84021c5eb0cc3b4511eb5e9172c509483bd9f7015794b15cfca78ed0959bd91e8216dc12c1c6e668
-DIST zlib-1.3.tar.xz 1295740 BLAKE2B 5fe0f32339267348a313f23a21e9588bdb180b7415be303c85f5f169444d019e5f176ef7322f6e64297c360acc2a6041c50e2f66d1860e5c392d8970990f176a SHA512 3868ac4da5842dd36c9dad794930675b9082ce15cbd099ddb79c0f6bd20a24aa8f33a123f378f26fe0ae02d91f31f2994dccaac565cedeaffed7b315e6ded2a2
-DIST zlib-1.3.tar.xz.asc 235 BLAKE2B 5fe6ce952699a19e848d0a6e6c3622f934340068fdcd29afb35c74f3c8ae66d04de644800d10b38c743bb2f4852ba28f1a97313cb0e6e6f9b804cbca5289ebbb SHA512 8f3ce5c21938d6abc7e121d2939648a0ce2dc01a8ab4eb001d44eb159935dd0b4f5b5e371b3ecfc0ceb23689e2cefe002065968908503cde15b1bba08aff9db6
-EBUILD zlib-1.3-r4.ebuild 4360 BLAKE2B e5d5eb2bc581ae5c2585e0da4f7a13d0243d362081fb3c2fb401b84375d7df7b62c42fd06ad313ecab5fb6ac54989745c7b3e2c4f15183286358a7700bd29795 SHA512 2587a9d203c7fe8ee426037f1431cf83e77e62ad77293cb551490479e6b4a2e6f94eaafd96bf766217369715840ccec4a5476d569a493e257281242ca8653abb
EBUILD zlib-1.3.1-r1.ebuild 4406 BLAKE2B b4e71503ca4106a88ddd74154b82e676e5b7e76ae204cf5c32ad88ed0fd24acb5a24c9a2356b4da1c830efa59e82c98e08e7514d9748bc0f431481c2987c9681 SHA512 57e8ca76aee4701f5ea09bda26c47ca15563633f85f86f2416d39c53024eb022783f95133105ea7e1027bd518eed4cc471b2209650c4c99aba5ffb48e08b38f5
MISC metadata.xml 494 BLAKE2B a4a57a4153aefc189e407bcb8ce84f7c94581cc66967f69097087da7e6ff48d2de683b919fb00445d095c47ef39d31e01590f8c989ce0e5e01474e73ee2a0565 SHA512 a7e0160c127b3c2a6afe99e95992d9dbd017061303759c299ec38800efd6a9e11a35ae850c23c77c09c8833cd9d61ac1267f6becadf9c22437ee35e4304400c9
diff --git a/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch b/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch
deleted file mode 100644
index 1ab5b2f5dc81..000000000000
--- a/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 4232e67ee1440634af8209c7022dfc64cf862819 Mon Sep 17 00:00:00 2001
-From: Adrian Ratiu <adrian.ratiu@collabora.com>
-Date: Mon, 17 Jan 2022 10:49:58 +0200
-Subject: [PATCH v3] configure: fix AR/RANLIB/NM detection
-
-Taken from zlib-devel ML:
-https://madler.net/pipermail/zlib-devel_madler.net/2022-January/003322.html
-
-Bug: https://bugs.gentoo.org/831628
-
-Scenarios where ${CROSS_PREFIX}ar & co are set but not desired
-are possible, for example in ChromiumOS we use the GNU binutils
-tools & GCC to build glibc but LLVM/Clang is used for the rest
-of the system.
-
-This allows $AR/$RANLIB/$NM to override default CROSS_PREFIX
-tools so they can be set to llvm-ar/ranlib/nm.
-
-Suggested-by: Manoj Gupta <manojgupta@chromium.org>
-Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
----
-
-Changes in v3:
- * Whitespace style fixes
- * Fixed top level variable tests (eg -z AR -> -z $AR)
- * Review and testing as part of Gentoo PR:
- https://github.com/gentoo/gentoo/pull/23888
-Changes in v2:
- * Fixed a typo in the "unset NM" case
----
- configure | 38 ++++++++++++++++++++++----------------
- 1 file changed, 22 insertions(+), 16 deletions(-)
-
-diff --git a/configure b/configure
-index e974d1f..045c616 100755
---- a/configure
-+++ b/configure
-@@ -46,25 +46,31 @@ VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.
- VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
-
- # establish commands for library building
--if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-- AR=${AR-"${CROSS_PREFIX}ar"}
-- test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
--else
-- AR=${AR-"ar"}
-- test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
-+if [ -z "$AR" ]; then
-+ if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-+ AR=${AR-"${CROSS_PREFIX}ar"}
-+ test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
-+ else
-+ AR="ar"
-+ test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
-+ fi
- fi
- ARFLAGS=${ARFLAGS-"rc"}
--if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-- RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
-- test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
--else
-- RANLIB=${RANLIB-"ranlib"}
-+if [ -z "$RANLIB" ]; then
-+ if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-+ RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
-+ test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
-+ else
-+ RANLIB="ranlib"
-+ fi
- fi
--if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-- NM=${NM-"${CROSS_PREFIX}nm"}
-- test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
--else
-- NM=${NM-"nm"}
-+if [ -z "$NM" ]; then
-+ if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
-+ NM=${NM-"${CROSS_PREFIX}nm"}
-+ test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
-+ else
-+ NM="nm"
-+ fi
- fi
-
- # set defaults before processing command line options
---
-2.35.0
-
diff --git a/sys-libs/zlib/files/zlib-1.2.13-CVE-2023-45853.patch b/sys-libs/zlib/files/zlib-1.2.13-CVE-2023-45853.patch
deleted file mode 100644
index ecb5acecbb33..000000000000
--- a/sys-libs/zlib/files/zlib-1.2.13-CVE-2023-45853.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-https://bugs.gentoo.org/916484
-https://github.com/madler/zlib/pull/843
-https://github.com/madler/zlib/commit/73331a6a0481067628f065ffe87bb1d8f787d10c
-
-From 73331a6a0481067628f065ffe87bb1d8f787d10c Mon Sep 17 00:00:00 2001
-From: Hans Wennborg <hans@chromium.org>
-Date: Fri, 18 Aug 2023 11:05:33 +0200
-Subject: [PATCH] Reject overflows of zip header fields in minizip.
-
-This checks the lengths of the file name, extra field, and comment
-that would be put in the zip headers, and rejects them if they are
-too long. They are each limited to 65535 bytes in length by the zip
-format. This also avoids possible buffer overflows if the provided
-fields are too long.
----
- contrib/minizip/zip.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/contrib/minizip/zip.c b/contrib/minizip/zip.c
-index 3d3d4cadd..0446109b2 100644
---- a/contrib/minizip/zip.c
-+++ b/contrib/minizip/zip.c
-@@ -1043,6 +1043,17 @@ extern int ZEXPORT zipOpenNewFileInZip4_64(zipFile file, const char* filename, c
- return ZIP_PARAMERROR;
- #endif
-
-+ // The filename and comment length must fit in 16 bits.
-+ if ((filename!=NULL) && (strlen(filename)>0xffff))
-+ return ZIP_PARAMERROR;
-+ if ((comment!=NULL) && (strlen(comment)>0xffff))
-+ return ZIP_PARAMERROR;
-+ // The extra field length must fit in 16 bits. If the member also requires
-+ // a Zip64 extra block, that will also need to fit within that 16-bit
-+ // length, but that will be checked for later.
-+ if ((size_extrafield_local>0xffff) || (size_extrafield_global>0xffff))
-+ return ZIP_PARAMERROR;
-+
- zi = (zip64_internal*)file;
-
- if (zi->in_opened_file_inzip == 1)
diff --git a/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch b/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
deleted file mode 100644
index b5a1b4de2c47..000000000000
--- a/sys-libs/zlib/files/zlib-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-https://bugs.gentoo.org/879883
-https://github.com/madler/zlib/issues/751
-
-From 2ad2713e6cb9166dcede9a020f6913b8189ff0c6 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Wed, 23 Nov 2022 04:17:16 +0000
-Subject: [PATCH] Revert "Turn off RWX segment warnings on sparc systems."
-
-This breaks building on sparc with older binutils.
-
-This reverts commit 29fd715fd0bdaffee21e2d2d37be8c5a6ac67ee4.
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -22,7 +22,7 @@ CFLAGS=-O
-
- SFLAGS=-O
- LDFLAGS=
--TEST_LDFLAGS=$(LDFLAGS) -L. libz.a
-+TEST_LDFLAGS=-L. libz.a
- LDSHARED=$(CC)
- CPP=$(CC) -E
-
-@@ -288,10 +288,10 @@ minigzip$(EXE): minigzip.o $(STATICLIB)
- $(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)
-
- examplesh$(EXE): example.o $(SHAREDLIBV)
-- $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS) -L. $(SHAREDLIBV)
-+ $(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV)
-
- minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
-- $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) -L. $(SHAREDLIBV)
-+ $(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV)
-
- example64$(EXE): example64.o $(STATICLIB)
- $(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)
---- a/configure
-+++ b/configure
-@@ -33,10 +33,7 @@ fi
- # set command prefix for cross-compilation
- if [ -n "${CHOST}" ]; then
- uname=${CHOST}
-- mname=${CHOST}
- CROSS_PREFIX="${CHOST}-"
--else
-- mname=`(uname -a || echo unknown) 2>/dev/null`
- fi
-
- # destination name for static library
-@@ -223,10 +220,6 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
- fi
- case "$uname" in
- Linux* | linux* | *-linux* | GNU | GNU/* | solaris*)
-- case "$mname" in
-- *sparc*)
-- LDFLAGS="${LDFLAGS} -Wl,--no-warn-rwx-segments" ;;
-- esac
- LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"} ;;
- *BSD | *bsd* | DragonFly)
- LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"}
diff --git a/sys-libs/zlib/files/zlib-1.2.13-use-LDFLAGS-in-configure.patch b/sys-libs/zlib/files/zlib-1.2.13-use-LDFLAGS-in-configure.patch
deleted file mode 100644
index 9f2b240334e8..000000000000
--- a/sys-libs/zlib/files/zlib-1.2.13-use-LDFLAGS-in-configure.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-https://github.com/madler/zlib/pull/599
-
-Rebased version of:
-
-From 37c9730ba474d274f4cc6a974943eef95087b9f6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Mar 2022 22:38:47 -0800
-Subject: [PATCH] configure: Pass LDFLAGS to link tests
-
-LDFLAGS can contain critical flags without which linking wont succeed
-therefore ensure that all configure tests involving link time checks are
-using LDFLAGS on compiler commandline along with CFLAGS to ensure the
-tests perform correctly. Without this some tests may fail resulting in
-wrong confgure result, ending in miscompiling the package
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
---- a/configure
-+++ b/configure
-@@ -436,7 +436,7 @@ if test $shared -eq 1; then
- echo Checking for shared library support... | tee -a configure.log
- # we must test in two steps (cc then ld), required at least on SunOS 4.x
- if try $CC -w -c $SFLAGS $test.c &&
-- try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
-+ try $LDSHARED $SFLAGS $LDFLAGS -o $test$shared_ext $test.o; then
- echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
- elif test -z "$old_cc" -a -z "$old_cflags"; then
- echo No shared library support. | tee -a configure.log
-@@ -498,7 +498,7 @@ int main(void) {
- }
- EOF
- fi
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- sizet=`./$test`
- echo "Checking for a pointer-size integer type..." $sizet"." | tee -a configure.log
- CFLAGS="${CFLAGS} -DNO_SIZE_T=${sizet}"
-@@ -532,7 +532,7 @@ int main(void) {
- return 0;
- }
- EOF
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for fseeko... Yes." | tee -a configure.log
- else
- CFLAGS="${CFLAGS} -DNO_FSEEKO"
-@@ -549,7 +549,7 @@ cat > $test.c <<EOF
- #include <errno.h>
- int main() { return strlen(strerror(errno)); }
- EOF
--if try $CC $CFLAGS -o $test $test.c; then
-+if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for strerror... Yes." | tee -a configure.log
- else
- CFLAGS="${CFLAGS} -DNO_STRERROR"
-@@ -656,7 +656,7 @@ int main()
- return (mytest("Hello%d\n", 1));
- }
- EOF
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
-
- echo >> configure.log
-@@ -746,7 +746,7 @@ int main()
- }
- EOF
-
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
-
- echo >> configure.log
diff --git a/sys-libs/zlib/zlib-1.3-r4.ebuild b/sys-libs/zlib/zlib-1.3-r4.ebuild
deleted file mode 100644
index d96a00b393a1..000000000000
--- a/sys-libs/zlib/zlib-1.3-r4.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Worth keeping an eye on 'develop' branch upstream for possible backports.
-AUTOTOOLS_AUTO_DEPEND="no"
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/madler.asc
-inherit autotools edo multilib-minimal flag-o-matic verify-sig
-
-DESCRIPTION="Standard (de)compression library"
-HOMEPAGE="https://zlib.net/"
-SRC_URI="
- https://zlib.net/${P}.tar.xz
- https://zlib.net/fossils/${P}.tar.xz
- https://zlib.net/current/beta/${P}.tar.xz
- https://github.com/madler/zlib/releases/download/v${PV}/${P}.tar.xz
- verify-sig? (
- https://zlib.net/${P}.tar.xz.asc
- https://github.com/madler/zlib/releases/download/v${PV}/${P}.tar.xz.asc
- )
-"
-
-LICENSE="ZLIB"
-SLOT="0/1" # subslot = SONAME
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="minizip static-libs"
-
-RDEPEND="!sys-libs/zlib-ng[compat]"
-DEPEND="${RDEPEND}"
-BDEPEND="
- minizip? ( ${AUTOTOOLS_DEPEND} )
- verify-sig? ( sec-keys/openpgp-keys-madler )
-"
-
-PATCHES=(
- # Don't install unexpected & unused crypt.h header (which would clash with other pkgs)
- # Pending upstream. bug #658536
- "${FILESDIR}"/${PN}-1.2.11-minizip-drop-crypt-header.patch
-
- # Respect AR, RANLIB, NM during build. Pending upstream. bug #831628
- "${FILESDIR}"/${PN}-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch
-
- # Respect LDFLAGS during configure tests. Pending upstream
- "${FILESDIR}"/${PN}-1.2.13-use-LDFLAGS-in-configure.patch
-
- # Fix building on sparc with older binutils, we pass it in ebuild instead
- "${FILESDIR}"/${PN}-1.2.13-Revert-Turn-off-RWX-segment-warnings-on-sparc-system.patch
-
- # CVE-2023-45853 (bug #916484)
- "${FILESDIR}"/${PN}-1.2.13-CVE-2023-45853.patch
-)
-
-src_prepare() {
- default
-
- if use minizip ; then
- cd contrib/minizip || die
- eautoreconf
- fi
-
- case ${CHOST} in
- *-mingw*|mingw*)
- # Uses preconfigured Makefile rather than configure script
- multilib_copy_sources
-
- ;;
- esac
-}
-
-multilib_src_configure() {
- # We pass manually instead of relying on the configure script/makefile
- # because it would pass it even for older binutils.
- use sparc && append-flags $(test-flags-CCLD -Wl,--no-warn-rwx-segments)
-
- append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
-
- case ${CHOST} in
- *-mingw*|mingw*)
- ;;
-
- *)
- # bug #347167
- local uname=$("${BROOT}"/usr/share/gnuconfig/config.sub "${CHOST}" | cut -d- -f3)
-
- local myconf=(
- --shared
- --prefix="${EPREFIX}/usr"
- --libdir="${EPREFIX}/usr/$(get_libdir)"
- ${uname:+--uname=${uname}}
- )
-
- # Not an autoconf script, so can't use econf
- edo "${S}"/configure "${myconf[@]}"
-
- ;;
- esac
-
- if use minizip ; then
- local minizipdir="contrib/minizip"
- mkdir -p "${BUILD_DIR}/${minizipdir}" || die
-
- cd ${minizipdir} || die
- ECONF_SOURCE="${S}/${minizipdir}" econf $(use_enable static-libs static)
- fi
-}
-
-multilib_src_compile() {
- case ${CHOST} in
- *-mingw*|mingw*)
- emake -f win32/Makefile.gcc STRIP=true PREFIX=${CHOST}-
- sed \
- -e 's|@prefix@|'"${EPREFIX}"'/usr|g' \
- -e 's|@exec_prefix@|${prefix}|g' \
- -e 's|@libdir@|${exec_prefix}/'$(get_libdir)'|g' \
- -e 's|@sharedlibdir@|${exec_prefix}/'$(get_libdir)'|g' \
- -e 's|@includedir@|${prefix}/include|g' \
- -e 's|@VERSION@|'${PV}'|g' \
- zlib.pc.in > zlib.pc || die
- ;;
-
- *)
- emake
-
- ;;
- esac
-
- use minizip && emake -C contrib/minizip
-}
-
-multilib_src_install() {
- case ${CHOST} in
- *-mingw*|mingw*)
- emake -f win32/Makefile.gcc install \
- BINARY_PATH="${ED}/usr/bin" \
- LIBRARY_PATH="${ED}/usr/$(get_libdir)" \
- INCLUDE_PATH="${ED}/usr/include" \
- SHARED_MODE=1
-
- # Overwrites zlib.pc created from win32/Makefile.gcc, bug #620136
- insinto /usr/$(get_libdir)/pkgconfig
- doins zlib.pc
-
- ;;
-
- *)
- emake install DESTDIR="${D}" LDCONFIG=:
-
- ;;
- esac
-
- if use minizip ; then
- emake -C contrib/minizip install DESTDIR="${D}"
-
- # This might not exist if slibtool is used.
- # bug #816756
- rm -f "${ED}"/usr/$(get_libdir)/libminizip.la || die
- fi
-
- if ! use static-libs ; then
- # bug #419645
- rm "${ED}"/usr/$(get_libdir)/libz.a || die
- fi
-}
-
-multilib_src_install_all() {
- dodoc FAQ README ChangeLog doc/*.txt
-
- if use minizip ; then
- dodoc contrib/minizip/*.txt
- doman contrib/minizip/*.1
- fi
-}