diff options
Diffstat (limited to 'sys-libs')
89 files changed, 4860 insertions, 1515 deletions
diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz Binary files differindex c63f6d263e6f..850de96cf9b9 100644 --- a/sys-libs/Manifest.gz +++ b/sys-libs/Manifest.gz 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 -} |