From 2771f79232c273bc2a57d23bf335dd81ccf6af28 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 5 Dec 2021 02:47:11 +0000 Subject: gentoo resync : 05.12.2021 --- sys-libs/Manifest.gz | Bin 14072 -> 14376 bytes sys-libs/argp-standalone/Manifest | 6 +- .../argp-standalone-1.4.1-r1.ebuild | 42 + .../files/argp-standalone-1.3-shared.patch | 5 + sys-libs/argp-standalone/metadata.xml | 5 +- sys-libs/basu/Manifest | 5 + sys-libs/basu/basu-0.2.0.ebuild | 41 + .../0001-basu-0.2.0-meson-add-libcap-option.patch | 39 + ...on-convert-audit-option-to-feature-object.patch | 49 + sys-libs/basu/metadata.xml | 19 + sys-libs/binutils-libs/Manifest | 2 + .../binutils-libs/binutils-libs-2.37_p1-r1.ebuild | 135 ++ sys-libs/compiler-rt-sanitizers/Manifest | 9 +- .../compiler-rt-sanitizers-13.0.0.9999.ebuild | 205 --- .../compiler-rt-sanitizers-13.0.0.ebuild | 4 +- .../compiler-rt-sanitizers-13.0.1.9999.ebuild | 215 +++ .../compiler-rt-sanitizers-13.0.1_rc1.ebuild | 215 +++ .../compiler-rt-sanitizers-14.0.0.9999.ebuild | 18 +- sys-libs/compiler-rt/Manifest | 9 +- .../compiler-rt/compiler-rt-13.0.0.9999.ebuild | 128 -- sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild | 4 +- .../compiler-rt/compiler-rt-13.0.1.9999.ebuild | 137 ++ sys-libs/compiler-rt/compiler-rt-13.0.1_rc1.ebuild | 137 ++ .../compiler-rt/compiler-rt-14.0.0.9999.ebuild | 15 +- sys-libs/cygwin-crypt/Manifest | 2 +- sys-libs/cygwin-crypt/cygwin-crypt-1.4-r1.ebuild | 37 + sys-libs/cygwin-crypt/cygwin-crypt-1.4.ebuild | 41 - sys-libs/glibc/Manifest | 9 +- .../glibc-2.34-make-clone3-syscall-optional.patch | 48 + sys-libs/glibc/glibc-2.34-r1.ebuild | 1567 ------------------- sys-libs/glibc/glibc-2.34-r2.ebuild | 1591 ++++++++++++++++++++ sys-libs/glibc/glibc-2.34-r3.ebuild | 1591 ++++++++++++++++++++ sys-libs/glibc/glibc-9999.ebuild | 21 +- sys-libs/glibc/metadata.xml | 1 + sys-libs/kpmcore/Manifest | 8 +- .../kpmcore-21.08.3-dont-destroy-zfs-pool.patch | 46 + ....08.3-fix-seek-error-when-shred-partition.patch | 27 + sys-libs/kpmcore/kpmcore-21.04.3.ebuild | 34 - sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild | 39 + sys-libs/kpmcore/kpmcore-21.08.3.ebuild | 34 - sys-libs/kpmcore/kpmcore-21.11.90.ebuild | 34 + sys-libs/ldb/Manifest | 2 +- sys-libs/ldb/ldb-2.3.2.ebuild | 2 +- sys-libs/libblockdev/Manifest | 4 +- sys-libs/libblockdev/libblockdev-2.26.ebuild | 13 +- sys-libs/libblockdev/libblockdev-9999.ebuild | 13 +- sys-libs/libcap/Manifest | 20 +- ....25-ignore-RAISE_SETFCAP-install-failures.patch | 9 - sys-libs/libcap/files/libcap-2.38-no_perl.patch | 9 - .../files/libcap-2.48-build-system-fixes.patch | 24 - .../libcap/files/libcap-2.57-parallel-make.patch | 29 - sys-libs/libcap/files/libcap-2.61-Wformat.patch | 25 + ....61-ignore-RAISE_SETFCAP-install-failures.patch | 24 + sys-libs/libcap/files/libcap-2.61-no_perl.patch | 57 + sys-libs/libcap/libcap-2.57.ebuild | 90 -- sys-libs/libcap/libcap-2.58.ebuild | 88 -- sys-libs/libcap/libcap-2.59.ebuild | 88 -- sys-libs/libcap/libcap-2.60.ebuild | 88 -- sys-libs/libcap/libcap-2.61.ebuild | 91 ++ sys-libs/libcxx/Manifest | 9 +- sys-libs/libcxx/libcxx-13.0.0.9999.ebuild | 213 --- sys-libs/libcxx/libcxx-13.0.0.ebuild | 1 + sys-libs/libcxx/libcxx-13.0.1.9999.ebuild | 214 +++ sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild | 214 +++ sys-libs/libcxx/libcxx-14.0.0.9999.ebuild | 1 + sys-libs/libcxxabi/Manifest | 8 +- sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild | 123 -- sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild | 2 + sys-libs/libcxxabi/libcxxabi-13.0.1.9999.ebuild | 125 ++ sys-libs/libcxxabi/libcxxabi-13.0.1_rc1.ebuild | 125 ++ sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild | 2 + sys-libs/libfaketime/Manifest | 3 +- ...eat-unknown-clock_ids-like-CLOCK_REALTIME.patch | 35 + sys-libs/libfaketime/libfaketime-0.9.6-r3.ebuild | 54 - sys-libs/libfaketime/libfaketime-0.9.6-r4.ebuild | 56 + sys-libs/libhugetlbfs/Manifest | 3 +- ...fs-2.23-allow-building-against-glibc-2.34.patch | 258 ++++ sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild | 1 + sys-libs/libomp/Manifest | 5 +- sys-libs/libomp/libomp-13.0.0.9999.ebuild | 130 -- sys-libs/libomp/libomp-13.0.1.9999.ebuild | 130 ++ sys-libs/libomp/libomp-13.0.1_rc1.ebuild | 131 ++ sys-libs/libosinfo/Manifest | 1 + sys-libs/libosinfo/libosinfo-1.9.0-r1.ebuild | 60 + sys-libs/librtas/Manifest | 2 +- sys-libs/librtas/librtas-2.0.2-r1.ebuild | 30 - sys-libs/librtas/librtas-2.0.2-r2.ebuild | 34 + sys-libs/libselinux/Manifest | 2 +- sys-libs/libselinux/libselinux-3.2.ebuild | 2 +- sys-libs/libsemanage/Manifest | 2 +- sys-libs/libsemanage/libsemanage-3.2.ebuild | 2 +- sys-libs/libsepol/Manifest | 2 +- sys-libs/libsepol/libsepol-3.2.ebuild | 2 +- sys-libs/libucontext/Manifest | 3 + sys-libs/libucontext/libucontext-1.1.ebuild | 51 + sys-libs/libucontext/metadata.xml | 11 + sys-libs/libunwind/Manifest | 6 +- ....2.1-only-include-execinfo_h-if-avaliable.patch | 2 + sys-libs/libunwind/libunwind-1.6.0_rc2.ebuild | 102 -- sys-libs/libunwind/libunwind-1.6.2.ebuild | 96 ++ sys-libs/liburing/Manifest | 10 +- .../files/liburing-0.7-ucontext_h-detection.patch | 72 - .../liburing/files/liburing-2.0-spec_version.patch | 29 - sys-libs/liburing/liburing-0.7-r1.ebuild | 59 - sys-libs/liburing/liburing-2.0-r1.ebuild | 59 - sys-libs/liburing/liburing-2.1.ebuild | 2 +- sys-libs/liburing/liburing-9999.ebuild | 2 +- sys-libs/libxcrypt/Manifest | 4 +- sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild | 226 +++ sys-libs/libxcrypt/libxcrypt-4.4.25.ebuild | 211 --- sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild | 226 +++ sys-libs/libxcrypt/libxcrypt-4.4.26.ebuild | 211 --- sys-libs/llvm-libunwind/Manifest | 8 +- .../llvm-libunwind-13.0.0.9999.ebuild | 141 -- .../llvm-libunwind/llvm-libunwind-13.0.0.ebuild | 1 + .../llvm-libunwind-13.0.1.9999.ebuild | 142 ++ .../llvm-libunwind-13.0.1_rc1.ebuild | 142 ++ .../llvm-libunwind-14.0.0.9999.ebuild | 1 + sys-libs/musl/Manifest | 8 +- sys-libs/musl/files/ldconfig.in-r1 | 155 ++ sys-libs/musl/files/ldconfig.in-r2 | 157 ++ sys-libs/musl/musl-1.2.2-r4.ebuild | 8 +- sys-libs/musl/musl-1.2.2-r6.ebuild | 167 ++ sys-libs/musl/musl-1.2.2-r7.ebuild | 167 ++ sys-libs/musl/musl-9999.ebuild | 8 +- sys-libs/newlib/Manifest | 4 +- sys-libs/newlib/newlib-4.1.0-r1.ebuild | 2 +- sys-libs/newlib/newlib-9999.ebuild | 2 +- sys-libs/pam_wrapper/Manifest | 4 +- sys-libs/pam_wrapper/pam_wrapper-1.1.3-r2.ebuild | 82 - sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild | 74 + sys-libs/pam_wrapper/pam_wrapper-1.1.4.ebuild | 70 + sys-libs/readline/Manifest | 2 +- sys-libs/readline/readline-8.1_p1-r1.ebuild | 2 +- 134 files changed, 7913 insertions(+), 4048 deletions(-) create mode 100644 sys-libs/argp-standalone/argp-standalone-1.4.1-r1.ebuild create mode 100644 sys-libs/basu/Manifest create mode 100644 sys-libs/basu/basu-0.2.0.ebuild create mode 100644 sys-libs/basu/files/0001-basu-0.2.0-meson-add-libcap-option.patch create mode 100644 sys-libs/basu/files/0002-basu-0.2.0-meson-convert-audit-option-to-feature-object.patch create mode 100644 sys-libs/basu/metadata.xml create mode 100644 sys-libs/binutils-libs/binutils-libs-2.37_p1-r1.ebuild delete mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.9999.ebuild create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1_rc1.ebuild delete mode 100644 sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-13.0.1.9999.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-13.0.1_rc1.ebuild create mode 100644 sys-libs/cygwin-crypt/cygwin-crypt-1.4-r1.ebuild delete mode 100644 sys-libs/cygwin-crypt/cygwin-crypt-1.4.ebuild create mode 100644 sys-libs/glibc/files/glibc-2.34-make-clone3-syscall-optional.patch delete mode 100644 sys-libs/glibc/glibc-2.34-r1.ebuild create mode 100644 sys-libs/glibc/glibc-2.34-r2.ebuild create mode 100644 sys-libs/glibc/glibc-2.34-r3.ebuild create mode 100644 sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch create mode 100644 sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch delete mode 100644 sys-libs/kpmcore/kpmcore-21.04.3.ebuild create mode 100644 sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild delete mode 100644 sys-libs/kpmcore/kpmcore-21.08.3.ebuild create mode 100644 sys-libs/kpmcore/kpmcore-21.11.90.ebuild delete mode 100644 sys-libs/libcap/files/libcap-2.57-parallel-make.patch create mode 100644 sys-libs/libcap/files/libcap-2.61-Wformat.patch create mode 100644 sys-libs/libcap/files/libcap-2.61-ignore-RAISE_SETFCAP-install-failures.patch create mode 100644 sys-libs/libcap/files/libcap-2.61-no_perl.patch delete mode 100644 sys-libs/libcap/libcap-2.57.ebuild delete mode 100644 sys-libs/libcap/libcap-2.58.ebuild delete mode 100644 sys-libs/libcap/libcap-2.59.ebuild delete mode 100644 sys-libs/libcap/libcap-2.60.ebuild create mode 100644 sys-libs/libcap/libcap-2.61.ebuild delete mode 100644 sys-libs/libcxx/libcxx-13.0.0.9999.ebuild create mode 100644 sys-libs/libcxx/libcxx-13.0.1.9999.ebuild create mode 100644 sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild delete mode 100644 sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-13.0.1.9999.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-13.0.1_rc1.ebuild create mode 100644 sys-libs/libfaketime/files/libfaketime-0.9.8-Treat-unknown-clock_ids-like-CLOCK_REALTIME.patch delete mode 100644 sys-libs/libfaketime/libfaketime-0.9.6-r3.ebuild create mode 100644 sys-libs/libfaketime/libfaketime-0.9.6-r4.ebuild create mode 100644 sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch delete mode 100644 sys-libs/libomp/libomp-13.0.0.9999.ebuild create mode 100644 sys-libs/libomp/libomp-13.0.1.9999.ebuild create mode 100644 sys-libs/libomp/libomp-13.0.1_rc1.ebuild create mode 100644 sys-libs/libosinfo/libosinfo-1.9.0-r1.ebuild delete mode 100644 sys-libs/librtas/librtas-2.0.2-r1.ebuild create mode 100644 sys-libs/librtas/librtas-2.0.2-r2.ebuild create mode 100644 sys-libs/libucontext/Manifest create mode 100644 sys-libs/libucontext/libucontext-1.1.ebuild create mode 100644 sys-libs/libucontext/metadata.xml delete mode 100644 sys-libs/libunwind/libunwind-1.6.0_rc2.ebuild create mode 100644 sys-libs/libunwind/libunwind-1.6.2.ebuild delete mode 100644 sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch delete mode 100644 sys-libs/liburing/files/liburing-2.0-spec_version.patch delete mode 100644 sys-libs/liburing/liburing-0.7-r1.ebuild delete mode 100644 sys-libs/liburing/liburing-2.0-r1.ebuild create mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild delete mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.25.ebuild create mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild delete mode 100644 sys-libs/libxcrypt/libxcrypt-4.4.26.ebuild delete mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc1.ebuild create mode 100644 sys-libs/musl/files/ldconfig.in-r1 create mode 100644 sys-libs/musl/files/ldconfig.in-r2 create mode 100644 sys-libs/musl/musl-1.2.2-r6.ebuild create mode 100644 sys-libs/musl/musl-1.2.2-r7.ebuild delete mode 100644 sys-libs/pam_wrapper/pam_wrapper-1.1.3-r2.ebuild create mode 100644 sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild create mode 100644 sys-libs/pam_wrapper/pam_wrapper-1.1.4.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index 1cc24d6e3e1a..17f79ac5cc29 100644 Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ diff --git a/sys-libs/argp-standalone/Manifest b/sys-libs/argp-standalone/Manifest index 811ac414aa89..82bef5752f46 100644 --- a/sys-libs/argp-standalone/Manifest +++ b/sys-libs/argp-standalone/Manifest @@ -1,5 +1,7 @@ -AUX argp-standalone-1.3-shared.patch 1407 BLAKE2B 6d838b7b65b38562eca560bf094a74bb671cc0e911aed8e858e37768f12756cb579d9d984fe9444dd9b78f33b28ab080a7f6d0160dfeaf3ca4f0758c2d732d4d SHA512 2ee3386b1f63d64abff6a6b58dd7d0a7724bc07fd20f3f9daf24de1abb39d1ef35e3c616926fe3e939ccd491e84a82373e9554566a78683c3622494be2071d72 +AUX argp-standalone-1.3-shared.patch 1711 BLAKE2B a1a4df243b805b889f03df0a35362ae065bb93c0846257038582f8202ee4f827d627fcbbe452491f5d0fc10ad53a7a1c8f54dde3867a4aef775655807fe8899a SHA512 080a214bb372df8bfefbceef106bd6a773ef3d722feab05e21d8d24bfad9a3da6598be03cafcde20f197ff4ea73c77abc4032fb446dbd358f98855e8842390b8 AUX argp-standalone-1.3-throw-in-funcdef.patch 2500 BLAKE2B 050476f7dec2ff8d79e09f717eada121bc07ef26e0567c2d89ed18d44a4905741494d660ce82df8fb39f19020cf529b513d0e21b651197066d781250a921177e SHA512 5e4cdeeb16e6a4fb46a00ab95f3da9276ee554eec00bb2a05da7467961234ba3f9a630aafa7ceb5feb429a84ece8bf03b869fa996b86468f4716935a914c79a4 DIST argp-standalone-1.3.tar.gz 130255 BLAKE2B 0848a0e7a98cfa09de52fa152eb9a793a9bf25c1edfc7401851ef134b62c051ad6ef2134d6f528e167046be582be23f311e74614c5511d659060addc14de6b2f SHA512 58c3feb8852b90248fff39e49b5019bd0dcf646790c3eaf70c3262eb81dda31a61dc0a45963c7b4a010e80fc14b37288dcb3b3ef48d02f2d33dd72c1c62e62d9 +DIST argp-standalone-1.4.1.tar.gz 58158 BLAKE2B aa55965d6c4a9d61e82a5f3af7a62bf1a35b82ad91c87b4b31a6fa314ba0bcf30667137b420ccae5fbe24301c994971ef48c8dfa4db48620e56edc4300fbd961 SHA512 c5f07e88434589a13a2e88e66d1142b581f19aa82da28507f3c31ea782e080a13a4504d8108c003b5d3c8a3aa20f52ea5e81f337c11a4b1342b16361d4877c1c EBUILD argp-standalone-1.3-r2.ebuild 798 BLAKE2B 5ae6cbd67e575f2f43bb34812bc9db103e2a1562b688c72fafb84ab23df3c4a3b8e087c7c4f37624779656184660357925942be7775b8e793c2034792cf319e9 SHA512 9e71d722741aeae44aaf89e70df7932ec0336487dc8d06334d495cb478ca2e537f5ee3f75c14a366a38d5865c8d4472460a9fed4d8abb589c14a941f3fa2d3f5 -MISC metadata.xml 254 BLAKE2B 499e85f1d389e50e0599d7e5be6888d828f46d66a065a8d69757543c5e63472ffdb8b7d9c2e95685b1d5b8287ae8e25adc8f91766532035d9313911e0cc1938b SHA512 9211c6278fd886d05d8c6b235e9e0f914c0c3220fe60b4be134d4119ddd01da335a4024201b67e88c8c50280381a0be0f3e32fb7f295134b348bfc157304d267 +EBUILD argp-standalone-1.4.1-r1.ebuild 818 BLAKE2B 29f5058db3a21d18d413343f9076fdd4824041ecb40998d7cde05fe8282ec0714b113ed404fc68dd8ebcf3f79bb446ccd3a976393c61ecf2c3e6efb63ed56208 SHA512 87182b6412c9c85c205cf1df8f2e9ad644ec6f0bc1dbcb87a3f404a8e378ddc1d21ff50d1bf770b50459ed004bcca28e93baa9793270842a1484769de4b88646 +MISC metadata.xml 330 BLAKE2B b4dbb8cb3424140a3286bd442dc4996da5678ead43e08ce02fe8f86e6b7540c2c76f2221776e09e49f9b5e8e2ded3cc45f9b85c430cee0dc03e5d0e3c5f08b33 SHA512 aa460753f6f9537cb67f2d83a98108f9904e9bf1d50e030fe04822aa1f16b89cb91538fee54581aae1d05d8de070565113cecefe61a6078db1fb1eba69047e09 diff --git a/sys-libs/argp-standalone/argp-standalone-1.4.1-r1.ebuild b/sys-libs/argp-standalone/argp-standalone-1.4.1-r1.ebuild new file mode 100644 index 000000000000..c665f174dc20 --- /dev/null +++ b/sys-libs/argp-standalone/argp-standalone-1.4.1-r1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools flag-o-matic + +DESCRIPTION="Standalone argp library for use with musl" +HOMEPAGE="https://github.com/ericonr/argp-standalone" +SRC_URI="https://github.com/ericonr/argp-standalone/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="public-domain GPL-2 GPL-3 XC" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~x86" +IUSE="static-libs" + +DEPEND="!sys-libs/glibc" + +PATCHES=( + "${FILESDIR}"/argp-standalone-1.3-shared.patch +) + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + append-cflags "-fgnu89-inline" + + econf $(use_enable static-libs static) +} + +src_install() { + default + + find "${ED}" -name '*.la' -delete || die + + insinto /usr/include + doins argp.h +} diff --git a/sys-libs/argp-standalone/files/argp-standalone-1.3-shared.patch b/sys-libs/argp-standalone/files/argp-standalone-1.3-shared.patch index 7164103f8a7d..eea801c4ee98 100644 --- a/sys-libs/argp-standalone/files/argp-standalone-1.3-shared.patch +++ b/sys-libs/argp-standalone/files/argp-standalone-1.3-shared.patch @@ -1,3 +1,8 @@ +Initially added in https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cb196546c62e9894a46900e8078f753388d4cc1a. +Commit mentions it being from Debian but not found any other references yet. + +We use -largp fairly extensively across the tree which this patch +accommodates (easier than forcing includes?). --- a/Makefile.am 2009-05-28 15:19:50.000000000 +0200 +++ b/Makefile.am 2009-05-28 15:30:57.000000000 +0200 @@ -21,20 +21,20 @@ diff --git a/sys-libs/argp-standalone/metadata.xml b/sys-libs/argp-standalone/metadata.xml index bfcf597206ec..b4d9c5f484e7 100644 --- a/sys-libs/argp-standalone/metadata.xml +++ b/sys-libs/argp-standalone/metadata.xml @@ -5,4 +5,7 @@ blueness@gentoo.org Anthony G. Basile - + + musl@gentoo.org + + diff --git a/sys-libs/basu/Manifest b/sys-libs/basu/Manifest new file mode 100644 index 000000000000..e273ccbf0235 --- /dev/null +++ b/sys-libs/basu/Manifest @@ -0,0 +1,5 @@ +AUX 0001-basu-0.2.0-meson-add-libcap-option.patch 1222 BLAKE2B 6edec60701a78f5a2f109eccfdc76363379c2c07126cac46b2ce7eab6bce8f51a67b55b5bd8d689acdc11ca703dee3c601512a206f06a6954ae20e87c774abf1 SHA512 a20c6fde6297720654cd2daafbeeb11e6b2b0c1a8c565cd7680b747b7a0b178b0931bd8aede89060e20f473f4ff1dc2bdf06262fc6196515e47ea1cb5a34e1e3 +AUX 0002-basu-0.2.0-meson-convert-audit-option-to-feature-object.patch 1574 BLAKE2B 44e2669b30b4f6f254b79031e8f4272e3d002ef152f93754dd93dbca13945d3dc49952de714ce2d5609600f89539417c1d505bd48d51d8e4b7bbd1f2dcfb8dab SHA512 645040b869ad362e4d0dc40210ed63018f224704ab121d59561c039486a9423d1b9f5995df4ddd73de2a6872f5752a006f6a4bc66aa8d8ca3604950072bc59a5 +DIST basu-0.2.0.tar.gz 238861 BLAKE2B 4fcc664d031477c2ae82e535711561d1a7cb60503fb31fa80101c2046e3fe11f7886851649d38f3d5868a3266f45e651085d99ec95f6788baddbf78e893b1528 SHA512 dbc2f72b6e1a880fa41fe6067a38a301f456e4305dae6eb4d465089d7d9c2f629677ba23752b3e1a1fd476cb440db01ef3a218c1c976f38d0058eed584c80165 +EBUILD basu-0.2.0.ebuild 871 BLAKE2B 280617e4049db3c9b9588ae5cc14d2d20b34bb7cc2f58406b06052a2e66602393795f12d0ab6fb026f095308d5b621680c30c122bdd6b3b99f1e2de68d2670da SHA512 e692aeb121525e307eef9707a891f713f4bb6bf6a6822dfd3bc6fb912f7f0390e602530c98b0e7ad831e4d5deaa9af2d91fd70f3863b2e552a2df6cc798d3aa1 +MISC metadata.xml 635 BLAKE2B 76f9661d661cd12fc608fa261e1a387755915fba2f9bd1ee148f7d32f3f38560b30334539837b30236ad2e69b7eb4d32e97d451a3a159605d681953e845fbf3f SHA512 e3659d0ab5a3c1bf3cc5f12c537d84a6c3f612efec64a1478899fa7a899637938000eeadd7236a43101f28dfa83e2a5831378bc026807a45c98d9d63c4f2db6f diff --git a/sys-libs/basu/basu-0.2.0.ebuild b/sys-libs/basu/basu-0.2.0.ebuild new file mode 100644 index 000000000000..46c936a536d0 --- /dev/null +++ b/sys-libs/basu/basu-0.2.0.ebuild @@ -0,0 +1,41 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit meson python-any-r1 + +DESCRIPTION="The sd-bus library, extracted from systemd" +HOMEPAGE="https://sr.ht/~emersion/basu/" +LICENSE="LGPL-2.1+" +SLOT="0" + +SRC_URI="https://git.sr.ht/~emersion/basu/refs/download/v${PV}/basu-${PV}.tar.gz" +KEYWORDS="~amd64" + +IUSE="audit caps" + +DEPEND=" + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap ) +" + +RDEPEND="${DEPEND}" +# Needed to generate hash tables +BDEPEND="${PYTHON_DEPS} + dev-util/gperf +" + +PATCHES=( + "${FILESDIR}"/0001-"${PN}"-0.2.0-meson-add-libcap-option.patch + "${FILESDIR}"/0002-"${PN}"-0.2.0-meson-convert-audit-option-to-feature-object.patch +) + +src_configure() { + local emesonargs=( + $(meson_feature audit) + $(meson_feature caps libcap) + ) + meson_src_configure +} diff --git a/sys-libs/basu/files/0001-basu-0.2.0-meson-add-libcap-option.patch b/sys-libs/basu/files/0001-basu-0.2.0-meson-add-libcap-option.patch new file mode 100644 index 000000000000..b2727b95a7d7 --- /dev/null +++ b/sys-libs/basu/files/0001-basu-0.2.0-meson-add-libcap-option.patch @@ -0,0 +1,39 @@ +From 64c1c624ea63f7a3eba4f0b7cf6a7d7aff952982 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= +Date: Fri, 5 Nov 2021 18:36:54 +0100 +Subject: [PATCH 1/2] meson: add libcap option + +it's better to provide the user with this choice instead of +unconditionally magically depending on it +--- + meson.build | 2 +- + meson_options.txt | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 056c7c4..357b346 100644 +--- a/meson.build ++++ b/meson.build +@@ -231,7 +231,7 @@ threads = dependency('threads') + librt = cc.find_library('rt') + libm = cc.find_library('m') + +-libcap = dependency('libcap', required: false) ++libcap = dependency('libcap', required: get_option('libcap')) + have_libcap = libcap.found() + conf.set10('HAVE_LIBCAP', have_libcap) + +diff --git a/meson_options.txt b/meson_options.txt +index 8cf3a33..ae5c7b1 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -14,3 +14,6 @@ option('system-bus-address', type : 'string', + + option('audit', type : 'combo', choices : ['auto', 'true', 'false'], + description : 'libaudit support') ++ ++option('libcap', type : 'feature', ++ description : 'libcap support') +-- +2.32.0 + diff --git a/sys-libs/basu/files/0002-basu-0.2.0-meson-convert-audit-option-to-feature-object.patch b/sys-libs/basu/files/0002-basu-0.2.0-meson-convert-audit-option-to-feature-object.patch new file mode 100644 index 000000000000..3d32f0b2352b --- /dev/null +++ b/sys-libs/basu/files/0002-basu-0.2.0-meson-convert-audit-option-to-feature-object.patch @@ -0,0 +1,49 @@ +From 34d1b77f1dd15d55cfc12ef2ee52fd3b6b1d76ce Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= +Date: Fri, 5 Nov 2021 18:39:56 +0100 +Subject: [PATCH 2/2] meson: convert audit option to feature object + +features are more idiomatic and ubiquitous +--- + meson.build | 11 ++--------- + meson_options.txt | 2 +- + 2 files changed, 3 insertions(+), 10 deletions(-) + +diff --git a/meson.build b/meson.build +index 357b346..1f29690 100644 +--- a/meson.build ++++ b/meson.build +@@ -235,15 +235,8 @@ libcap = dependency('libcap', required: get_option('libcap')) + have_libcap = libcap.found() + conf.set10('HAVE_LIBCAP', have_libcap) + +-want_audit = get_option('audit') +-if want_audit != 'false' +- libaudit = dependency('audit', required : want_audit == 'true') +- have = libaudit.found() +-else +- have = false +- libaudit = [] +-endif +-conf.set10('HAVE_AUDIT', have) ++libaudit = dependency('audit', required : get_option('audit')) ++conf.set10('HAVE_AUDIT', libaudit.found()) + + tests = [] + +diff --git a/meson_options.txt b/meson_options.txt +index ae5c7b1..87adfc2 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -12,7 +12,7 @@ option('system-bus-address', type : 'string', + description : 'The address of the sytem bus (defined at dbus compilation)', + value : 'unix:path=/var/run/dbus/system_bus_socket') + +-option('audit', type : 'combo', choices : ['auto', 'true', 'false'], ++option('audit', type : 'feature', + description : 'libaudit support') + + option('libcap', type : 'feature', +-- +2.32.0 + diff --git a/sys-libs/basu/metadata.xml b/sys-libs/basu/metadata.xml new file mode 100644 index 000000000000..e97261f56145 --- /dev/null +++ b/sys-libs/basu/metadata.xml @@ -0,0 +1,19 @@ + + + + + arsen@aarsen.me + Arsen Arsenović + + + proxy-maint@gentoo.org + Proxy Maintainers + + + The sd-bus library, extracted from systemd. + + Some projects rely on the sd-bus library for DBus support. + However not all systems have systemd or elogind installed. This + library provides just sd-bus (and the busctl utility). + + diff --git a/sys-libs/binutils-libs/Manifest b/sys-libs/binutils-libs/Manifest index c991c52e2782..d8de0c0b06be 100644 --- a/sys-libs/binutils-libs/Manifest +++ b/sys-libs/binutils-libs/Manifest @@ -6,9 +6,11 @@ DIST binutils-2.35.2.tar.xz 22056908 BLAKE2B 9c392e0db2b482442f9476f30bd80cf2796 DIST binutils-2.36.1-patches-5.tar.xz 44388 BLAKE2B 1dadb012fe35ec5fb0c5a15d348ab535bc5e3765375c97a3768c6b9f7126e0fda15d35163c9f9c33a4be98662dd120d7c1b21930a20c18dbb5345f56ecd9ecc1 SHA512 a2ce3388f1f1a77ff865481ff4b625121fd55f5234fed0a885312744f2f9c504717de1499b68252c6de64fa45866db7692df91c5838b43fbeb178938811cbe84 DIST binutils-2.36.1.tar.xz 22772248 BLAKE2B 03fbfbedd6dba2beaa836b1ed254eddd7a54a163d3061fd93edd2b9591cae24ba049b26658c524b5ccecc2f22d431dfa168218d2531aa356945c994fbbe896fa SHA512 cc24590bcead10b90763386b6f96bb027d7594c659c2d95174a6352e8b98465a50ec3e4088d0da038428abe059bbc4ae5f37b269f31a40fc048072c8a234f4e9 DIST binutils-2.37_p1-patches-0.tar.xz 1392 BLAKE2B 128930a381022fea5d1fcb0695953e8dada2513b088b8540fe08d4e0da93ec18b6bf9c78acad6ec5a8982ae2c115d143462ef0bb7bfd63cfeb06c10ad472c2f8 SHA512 44666821f96349e96685ffcfd53a80a94659e38fc63eeeb980d0eed13aab03ae3e2d5059b4932cd9018f2f7698cdb5e15b443d60c01b2bd1385eeb0c698e0e24 +DIST binutils-2.37_p1-patches-1.tar.xz 28956 BLAKE2B 3bc14fcc52a6d11992ad9ed88fa3347ca3d5facd59de094a178a5f720d0eed6297dadf9a8fea7189076eb81274612c0b71c01f15a8f58deeaed8c8f6135ef50d SHA512 f6b2a09bfc692cf90f6cd56be81f424a68831db48054dc150eb6ec28bfa18d35933203c2d3b502f0c80e38771353c373446aec2488469fe2df20d8066033f59e DIST binutils-2.37_p1.tar.xz 22992196 BLAKE2B a8aa0f386d03a5b1466166ac7c40989c228351ccf0949a9b462b4d4615d70ab7e1a45351299140a42baf39c317b8007733c253eb547ee1dfadb612addde11621 SHA512 46c297ec2a7a5b81d1c6e3f16486a6dc2860a07520fe2dd8871d1eb5160065bbe2cc6b0415d5352bf12284133e5817a4e429e6077182d615e969bd1a8f52ed28 EBUILD binutils-libs-2.34-r2.ebuild 3680 BLAKE2B 96fbeb96af93c6db271250870c4df85773db022aa7dd070ccfa33ed2dae57ecb0d543d93cb2ff0666e1b403f325e035a1f9988a05a16f53c167d168e3d6bec4a SHA512 9d540bd681a08451091742e9dba7044ab77a9d8c7920b8f078146fa7eacaa31b872f20c30477a33ec5bec3070408e1b2ac51e145af86d56fae794ace5f2972a2 EBUILD binutils-libs-2.35.2.ebuild 4102 BLAKE2B e988ab2daeb4f77f469f76af9a56d5509100d6dda39cbebfd41e554d944ef2f4aba2f4c320477947b2979ede808dc4b9a06747e10f878d885e8339e58e7e4f24 SHA512 384c2b9e3819516b9191e65793e32c54b492f31fefbe17c6cb61357452ffb5e6916f9b1dc6bb90ae8c9603f805e3c601aca12b7bd66ebafb2b3106f436185a03 EBUILD binutils-libs-2.36.1-r2.ebuild 4055 BLAKE2B 3131fe7e6474a1dd1cccd360287395d4d700f745bdb4020a3d7577145cd26eb02406df2e5151069b9d8147f9f1c60d36912c37acfe4af970e799c0701726ab8d SHA512 4db97077101d8852fe80dd4c11b0a9eb660797271dcc4c62f4ed86a55564b8a988a447183cf219d6fb404dd8acbebaf9fa48dca8d1c0ec8ffaefbde25c58cb33 +EBUILD binutils-libs-2.37_p1-r1.ebuild 4136 BLAKE2B ed003ab1363e5b7ca577c6fdd714cb4c34ed3f874103766ba4a4bc267c9ab3efb4e7443ff127fae75c6cd4e1d6fc2a2b0fd3cd2b2712fd180d91e538c2379b2a SHA512 00bcf138499808e9dafe94edfbda6febe6fd17e3fff0be646195336c5842829738639f20db079a0cc33630bc1881d429e8c9594782fc7626123303cbbf31df59 EBUILD binutils-libs-2.37_p1.ebuild 4128 BLAKE2B f1f81bfe2c221329c7ae4ba43e0506f49e875febdbb69a668a98aebc454345b0e9747c28024e08b6e2d28d8ece4e7e524b31d9b6921b1387d01c6836e72f7854 SHA512 f649fc052ec6341c3cd23fe73df9d366588ddbb5854d6dcfaeea89f6892100cd0c69d80b90c33b7daf08329b6c8f8f02a2763d02ca11a50d08fffec02967d782 MISC metadata.xml 612 BLAKE2B ceaafd9fd1421e9f3993e003d0029c92a78054c7a2b90bd78afc05370ad19c931c6a7c150545cfb7d57165168e0fdaf3a00dde1905b328826a91cbc70d9548a8 SHA512 c8d33bb8d1c62c7e95758624ed0febbc9d40e9f141bfd280837b3207bcd771412158d71c0cb5548d60be0b236f6fe103621daf7efa8875191982859b566ffa8d diff --git a/sys-libs/binutils-libs/binutils-libs-2.37_p1-r1.ebuild b/sys-libs/binutils-libs/binutils-libs-2.37_p1-r1.ebuild new file mode 100644 index 000000000000..c6195ef2ed9b --- /dev/null +++ b/sys-libs/binutils-libs/binutils-libs-2.37_p1-r1.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PATCH_VER=1 +PATCH_DEV=dilfridge + +inherit 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 )" +SLOT="0/${PV%_p?}" +IUSE="64-bit-bfd cet multitarget nls static-libs" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +BDEPEND="nls? ( sys-devel/gettext )" +DEPEND="sys-libs/zlib[${MULTILIB_USEDEP}]" +# Need a newer binutils-config that'll reset include/lib symlinks for us. +RDEPEND="${DEPEND} + >=sys-devel/binutils-config-5 +" + +S="${WORKDIR}/${MY_P%_p?}" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/bfd.h +) + +src_prepare() { + if [[ ! -z ${PATCH_VER} ]] ; then + einfo "Applying binutils-${PATCH_BINUTILS_VER} patchset ${PATCH_VER}" + eapply "${WORKDIR}/patch"/*.patch + fi + + # Fix cross-compile relinking issue, bug #626402 + elibtoolize + + default +} + +pkgversion() { + printf "Gentoo ${PVR}" + [[ -n ${PATCHVER} ]] && printf " p${PATCHVER}" +} + +multilib_src_configure() { + local myconf=( + --enable-obsolete + --enable-shared + --enable-threads + # Newer versions (>=2.24) make this an explicit option. #497268 + --enable-install-libiberty + --disable-werror + --with-bugurl="https://bugs.gentoo.org/" + --with-pkgversion="$(pkgversion)" + $(use_enable static-libs static) + # The binutils eclass enables this flag for all bi-arch builds, + # but other tools often don't care about that support. Put it + # beyond a flag if people really want it, but otherwise leave + # it disabled as it can slow things down on 32bit arches. #438522 + $(use_enable 64-bit-bfd) + # This only disables building in the zlib subdir. + # For binutils itself, it'll use the system version. #591516 + --without-zlib + --with-system-zlib + # We only care about the libs, so disable programs. #528088 + --disable-{binutils,etc,ld,gas,gold,gprof} + # Disable modules that are in a combined binutils/gdb tree. #490566 + --disable-{gdb,libdecnumber,readline,sim} + # Strip out broken static link flags. + # https://gcc.gnu.org/PR56750 + --without-stage1-ldflags + # We pull in all USE-flags that change ABI in an incompatible + # way. #666100 + # USE=multitarget change size of global arrays + # USE=64-bit-bfd changes data structures of exported API + --with-extra-soversion-suffix=gentoo-${CATEGORY}-${PN}-$(usex multitarget mt st)-$(usex 64-bit-bfd 64 def) + + # avoid automagic dependency on (currently prefix) systems + # systems with debuginfod library, bug #754753 + --without-debuginfod + + # Allow user to opt into CET for host libraries. + # Ideally we would like automagic-or-disabled here. + # But the check does not quite work on i686: bug #760926. + $(use_enable cet) + ) + + # mips can't do hash-style=gnu ... + if [[ $(tc-arch) != mips ]] ; then + myconf+=( --enable-default-hash-style=gnu ) + fi + + use multitarget && myconf+=( --enable-targets=all --enable-64-bit-bfd ) + + use nls \ + && myconf+=( --without-included-gettext ) \ + || myconf+=( --disable-nls ) + + if [[ ${CHOST} == *-darwin* ]] && use nls ; then + # fix underlinking in opcodes + sed -i -e 's/@SHARED_LDFLAGS@/@SHARED_LDFLAGS@ -lintl/' \ + "${S}"/opcodes/Makefile.in || die + fi + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" + + # Prevent makeinfo from running as we don't build docs here. + # bug #622652 + sed -i \ + -e '/^MAKEINFO/s:=.*:= true:' \ + Makefile || die +} + +multilib_src_install() { + default + # Provide libiberty.h directly. + dosym libiberty/libiberty.h /usr/include/libiberty.h +} + +multilib_src_install_all() { + use static-libs || find "${ED}"/usr -name '*.la' -delete +} diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index 5bbed7d9cb89..2fb7688b166f 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -1,13 +1,16 @@ DIST llvm-gentoo-patchset-11.1.0-3.tar.xz 5984 BLAKE2B 89056fb8e82c7a29ae76c643ac631876d51391ffb579324aaf13c7f79e03f6fd8bbcb27d46e57e0f04a702602ebf51c116e82cb092452a1dbc97fb0eb7518f11 SHA512 08aabe8836b62ecfde4e264d567169ba495d5b5915b56aba35ae86992387e534bba6d512fde94056e641abe909b478e47edcbdaa3ee0b94182ecd68c98201441 DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6 +DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d EBUILD compiler-rt-sanitizers-11.1.0-r1.ebuild 6054 BLAKE2B 0e7ecc21c987bdb184c18456c2d6482d268b6f04fa8a9e1694e2e4733c0ff5e0f5f93639358b1bb9ede250c1543dd89cdfadf1382aa334a4593b3655f1915c56 SHA512 e13805c26cf03152295f9794468910560932fdcc769a4dd9461f92172a20e41b38b9867d988c82ae7d9516c5f2b18e32d8e14bbbe0702c81b7f222eae51988ab EBUILD compiler-rt-sanitizers-12.0.1.ebuild 5971 BLAKE2B c71a8e7f9c741b7bb9ce9034312dd3fcea08a2097ec322126efe3ddc9f8d945f9aa02fbf6c0afdd12d19e2ec038e4894d74a149e83caf0aa59fad0cff84c2eee SHA512 9b7ea1e034d0d89cec9d5ff97e2bb34c09303f339c3d4fd4d4f31e2ba4ae7aab1bdcc8201afde8899c87892bdd7022104d90c78b8d4dab5f7c01787c21a41b17 -EBUILD compiler-rt-sanitizers-13.0.0.9999.ebuild 6082 BLAKE2B 41bf42010e9a12a624c04d8c2d05e6ae31f9257561b4d0d95573d4dffd8463bf50a65f219e3541ea0a35630493f31600cbc3fb0a08163bc68fda4ee241d29068 SHA512 6e8ca73ad90955e6b6d7fbefed05ffc888da81af615995a752a99a9a46c0ced0bde661036c613b9f85f6064fc5d8cf577fe59d3793c4843bfb8e5bdb36045daf -EBUILD compiler-rt-sanitizers-13.0.0.ebuild 6152 BLAKE2B 595a843498fa2c53c7d50ccadec868bf5971326dbc1181516d98ce78dd70878f69bbc3e1f60a96d1a37847f72c1818a8f374344bf7f4f88261f274b4b8dba34f SHA512 d62e14e926ba08d25f86dccca81692c42dcd779bd75d34e11822f2234a0c45e2cd6b4f066ee03cc6fcf6cacb1c5ae9fb22497ff99431453d7feb2657b3bc715c -EBUILD compiler-rt-sanitizers-14.0.0.9999.ebuild 6082 BLAKE2B 41bf42010e9a12a624c04d8c2d05e6ae31f9257561b4d0d95573d4dffd8463bf50a65f219e3541ea0a35630493f31600cbc3fb0a08163bc68fda4ee241d29068 SHA512 6e8ca73ad90955e6b6d7fbefed05ffc888da81af615995a752a99a9a46c0ced0bde661036c613b9f85f6064fc5d8cf577fe59d3793c4843bfb8e5bdb36045daf +EBUILD compiler-rt-sanitizers-13.0.0.ebuild 6166 BLAKE2B da87e6107b847ca1c396f0156a30b6601fe2f63365f8f240f5f2ad2fd176ed1381192deae9914477adc89f1e671136e5a7957c7abbf6f3eebd679faa96ed4e44 SHA512 e7c6b8cc95630d79ce7eab3d9bd495d48c42d30cb8093ae58f54345b1c2e218ce2341a720d356633651e521723b6733afefc049684b8282eb527dd260c73f0d9 +EBUILD compiler-rt-sanitizers-13.0.1.9999.ebuild 6279 BLAKE2B df8334b59452915cf01032ec01a83b1377558abfda797b9c95327fb56c7b9d7fc46af4a1eb86f1679a2c44e8e055f790929fe3485022b80bfc5e58623d79d96a SHA512 acbc028c23560765dc152ff982a57120536718ccabd7298e388187a13adb065610ad94ae51655622b69498305bec6e24f13c6c67fe00b4aa33df160140f593c4 +EBUILD compiler-rt-sanitizers-13.0.1_rc1.ebuild 6282 BLAKE2B 5fd607563088ad551f09ee07d0c087d208970c7e20e1faa0e21b88bc8775ae5594eb3a341469d2d5488e09d062ddfbad5e3044523376ce429a42e8e8b38dd7f9 SHA512 209def963cca6193e1dfdd20cc6b68829d292905827c6a7a23ebdc18eca67815783362649c68c1590f908916a52db0106c046dcb46d6eee746487f2c8bc38ba2 +EBUILD compiler-rt-sanitizers-14.0.0.9999.ebuild 6285 BLAKE2B 4a58d2e54544efc3c3e5f93bc271f3ea1614cf57fbcbf6843f002a604408113d716af623cd48220c7b6213ca15d28740962b919e86bd9e2ee104bdd701732ded SHA512 ee85bf07631a79eea71973f2dbf006afde4642fd4fc001f0480618a846182ee4abdc8f2347d42fd90aa4da51ece7509c69ba001b61363f6e2eefe686d17d16e3 MISC metadata.xml 1330 BLAKE2B 8381c36fb0ee37358cebacf512ee2a0ff6f2c0fc8e05544d9dc1bb1e11bc53f4196c2ecc6c8eb66c833f266c8d12da2c92a5f0b94cb3404397f925f9ebfc2a72 SHA512 6ea6159eb0929dc9f009ab326295549db329f7594dd5ff82e255238ed1fb17e3e8909079c915c6ae4829bb853666456772d17fa2078a332f6340807d6cd4f20e diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild deleted file mode 100644 index 80c9d7d0f6b4..000000000000 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.9999.ebuild +++ /dev/null @@ -1,205 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 - -DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="" -IUSE="+clang debug test elibc_glibc" -# base targets -IUSE+=" +libfuzzer +memprof +orc +profile +xray" -# sanitizer targets, keep in sync with config-ix.cmake -# NB: ubsan, scudo deliberately match two entries -SANITIZER_FLAGS=( - asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo - shadowcallstack gwp-asan -) -IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" -REQUIRED_USE=" - || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) - test? ( - cfi? ( ubsan ) - gwp-asan? ( scudo ) - )" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6 - virtual/libcrypt" -BDEPEND=" - >=dev-util/cmake-3.16 - clang? ( sys-devel/clang ) - elibc_glibc? ( net-libs/libtirpc ) - test? ( - !=dev-python/lit-5[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} - sys-libs/compiler-rt:${SLOT} - ) - ${PYTHON_DEPS}" - -LLVM_COMPONENTS=( compiler-rt ) -LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -LLVM_PATCHSET=9999-1 -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -check_space() { - if use test; then - local CHECKREQS_DISK_BUILD=11G - check-reqs_pkg_pretend - fi -} - -pkg_pretend() { - check_space -} - -pkg_setup() { - check_space - llvm_pkg_setup - python-any-r1_pkg_setup -} - -src_prepare() { - sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die - - local flag - for flag in "${SANITIZER_FLAGS[@]}"; do - if ! use "${flag}"; then - local cmake_flag=${flag/-/_} - sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ - cmake/config-ix.cmake || die - fi - done - - # TODO: fix these tests to be skipped upstream - if use asan && ! use profile; then - rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die - fi - if use ubsan && ! use cfi; then - > test/cfi/CMakeLists.txt || die - fi - - llvm.org_src_prepare -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/compiler-rt_build - - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - fi - - local flag want_sanitizer=OFF - for flag in "${SANITIZER_FLAGS[@]}"; do - if use "${flag}"; then - want_sanitizer=ON - break - fi - done - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - # use a build dir structure consistent with install - # this makes it possible to easily deploy test-friendly clang - -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - # builtins & crt installed by sys-libs/compiler-rt - -DCOMPILER_RT_BUILD_BUILTINS=OFF - -DCOMPILER_RT_BUILD_CRT=OFF - -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) - -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) - -DCOMPILER_RT_BUILD_ORC=$(usex orc) - -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) - -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" - -DCOMPILER_RT_BUILD_XRAY=$(usex xray) - - -DPython3_EXECUTABLE="${PYTHON}" - ) - if use test; then - mycmakeargs+=( - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - # they are created during src_test() - -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - - # same flags are passed for build & tests, so we need to strip - # them down to a subset supported by clang - CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ - CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ - strip-unsupported-flags - fi - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX - # This disables i386 for SDK >= 10.15 - # Will error if has_use tsan and SDK < 10.12 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - cmake_src_configure - - if use test; then - local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) - [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" - [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" - - # copy clang over since resource_dir is located relatively to binary - # therefore, we can put our new libraries in it - mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die - cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die - cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ - "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die - cp "${sys_dir}"/*builtins*.a \ - "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die - # we also need LLVMgold.so for gold-based tests - if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then - ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ - "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die - fi - fi -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - # disable sandbox to have it stop clobbering LD_PRELOAD - local -x SANDBOX_ON=0 - # wipe LD_PRELOAD to make ASAN happy - local -x LD_PRELOAD= - - cmake_build check-all -} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild index 13512435fcd3..68f7e7b395dd 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.0.ebuild @@ -45,7 +45,9 @@ BDEPEND=" =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} sys-libs/compiler-rt:${SLOT} ) - ${PYTHON_DEPS}" + !test? ( + ${PYTHON_DEPS} + )" LLVM_COMPONENTS=( compiler-rt ) LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.9999.ebuild new file mode 100644 index 000000000000..f89af63c6d33 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1.9999.ebuild @@ -0,0 +1,215 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test elibc_glibc" +# base targets +IUSE+=" +libfuzzer +memprof +orc +profile +xray" +# sanitizer targets, keep in sync with config-ix.cmake +# NB: ubsan, scudo deliberately match two entries +SANITIZER_FLAGS=( + asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo + shadowcallstack gwp-asan +) +IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" +REQUIRED_USE=" + || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) + test? ( + cfi? ( ubsan ) + gwp-asan? ( scudo ) + )" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + elibc_glibc? ( net-libs/libtirpc ) + test? ( + !=dev-python/lit-5[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + sys-libs/compiler-rt:${SLOT} + ) + !test? ( + ${PYTHON_DEPS} + )" + +LLVM_COMPONENTS=( compiler-rt ) +LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die + + local flag + for flag in "${SANITIZER_FLAGS[@]}"; do + if ! use "${flag}"; then + local cmake_flag=${flag/-/_} + sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ + cmake/config-ix.cmake || die + fi + done + + # TODO: fix these tests to be skipped upstream + if use asan && ! use profile; then + rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die + fi + if use ubsan && ! use cfi; then + > test/cfi/CMakeLists.txt || die + fi + + llvm.org_src_prepare +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local flag want_sanitizer=OFF + for flag in "${SANITIZER_FLAGS[@]}"; do + if use "${flag}"; then + want_sanitizer=ON + break + fi + done + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # builtins & crt installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) + -DCOMPILER_RT_BUILD_ORC=$(usex orc) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX + # This disables i386 for SDK >= 10.15 + # Will error if has_use tsan and SDK < 10.12 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + cmake_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake_build check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1_rc1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1_rc1.ebuild new file mode 100644 index 000000000000..c456d296bcb8 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-13.0.1_rc1.ebuild @@ -0,0 +1,215 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test elibc_glibc" +# base targets +IUSE+=" +libfuzzer +memprof +orc +profile +xray" +# sanitizer targets, keep in sync with config-ix.cmake +# NB: ubsan, scudo deliberately match two entries +SANITIZER_FLAGS=( + asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo + shadowcallstack gwp-asan +) +IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" +REQUIRED_USE=" + || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) + test? ( + cfi? ( ubsan ) + gwp-asan? ( scudo ) + )" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + elibc_glibc? ( net-libs/libtirpc ) + test? ( + !=dev-python/lit-5[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + sys-libs/compiler-rt:${SLOT} + ) + !test? ( + ${PYTHON_DEPS} + )" + +LLVM_COMPONENTS=( compiler-rt ) +LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) +LLVM_PATCHSET=${PV/_/-} +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die + + local flag + for flag in "${SANITIZER_FLAGS[@]}"; do + if ! use "${flag}"; then + local cmake_flag=${flag/-/_} + sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ + cmake/config-ix.cmake || die + fi + done + + # TODO: fix these tests to be skipped upstream + if use asan && ! use profile; then + rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die + fi + if use ubsan && ! use cfi; then + > test/cfi/CMakeLists.txt || die + fi + + llvm.org_src_prepare +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local flag want_sanitizer=OFF + for flag in "${SANITIZER_FLAGS[@]}"; do + if use "${flag}"; then + want_sanitizer=ON + break + fi + done + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # builtins & crt installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) + -DCOMPILER_RT_BUILD_ORC=$(usex orc) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX + # This disables i386 for SDK >= 10.15 + # Will error if has_use tsan and SDK < 10.12 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + cmake_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake_build check-all +} diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild index 80c9d7d0f6b4..4e70cfd227c4 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.0.9999.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="$(ver_cut 1-3)" KEYWORDS="" -IUSE="+clang debug test elibc_glibc" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test elibc_glibc" # base targets IUSE+=" +libfuzzer +memprof +orc +profile +xray" # sanitizer targets, keep in sync with config-ix.cmake @@ -34,7 +34,7 @@ CLANG_SLOT=${SLOT%%.*} # llvm-6 for new lit options DEPEND=" >=sys-devel/llvm-6 - virtual/libcrypt" + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]" BDEPEND=" >=dev-util/cmake-3.16 clang? ( sys-devel/clang ) @@ -45,9 +45,11 @@ BDEPEND=" =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} sys-libs/compiler-rt:${SLOT} ) - ${PYTHON_DEPS}" + !test? ( + ${PYTHON_DEPS} + )" -LLVM_COMPONENTS=( compiler-rt ) +LLVM_COMPONENTS=( compiler-rt cmake ) LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) LLVM_PATCHSET=9999-1 llvm.org_set_globals @@ -137,6 +139,14 @@ src_configure() { -DPython3_EXECUTABLE="${PYTHON}" ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + if use test; then mycmakeargs+=( -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index ec07f7fb0707..43e9abb65d81 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -1,13 +1,16 @@ DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6 +DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d EBUILD compiler-rt-11.1.0.ebuild 3506 BLAKE2B fea54ca4aabe9bf35afc64a579ae18eb4491eeecb58ede43369ba9c294f624851214525f399cfa3adadee70ca66cbe64821376272b9965304266bcfc07b9f220 SHA512 f50906ee9f3b044a251ddd56db6ce10d3d2b632ffa7d3fd608cc5d7320e8d4b47b1ada26965b5fc9bb746e77c1b01ec61b5f719bc6bb2805720df035fca993da EBUILD compiler-rt-12.0.1.ebuild 3539 BLAKE2B 7d6bd0a7be4fec1b8427aa9d81eacf69d3338490c70f097910ad0bb4a67f0313ea8fd6bae15a5e05b8805cad6a789124d94ee91577a58beb96f471a1bf49c3b3 SHA512 bd671f1896182a00ade3b53252ba6b7cb8a6f65eec3d806bbfc7bd4e2b9253a8bc2bd497c018705f34fb30ad1897693af268c6e4cc39e044c788807042d7b55e -EBUILD compiler-rt-13.0.0.9999.ebuild 3633 BLAKE2B 71e8599736191e3c621bfba764f8e7133fe78f1f6520ce32bbb2af010629096091e380d6958487c76ee5978bf16ef88b42d767cf09d2fdbefe2a8fc0a8adb932 SHA512 4a73ddead2969c3d4370dc9f543795a3714fd93b38ba6c819ccc7ea59caae018cdb50f3a580b1ba3a2a39d661992a419591c04b8027b28238b18ef421c61e2a3 -EBUILD compiler-rt-13.0.0.ebuild 3703 BLAKE2B 422d8938d97c2c28f8efc14007462dc590e6384b3b9dd00ca7c221fcaadf9d078bfa8ac309a04583d78cc54cd4433d625e3d9485b1a1aab1f226a5b21f372216 SHA512 15fb7c0a06bb49edf76b0436b12e30b272de864b79174c789b12ccd08afbd461953e2a6f1c8e7dc1339459dab97bbf5e9ff46c9e54f4cef08ef27adf901d9946 -EBUILD compiler-rt-14.0.0.9999.ebuild 3633 BLAKE2B 71e8599736191e3c621bfba764f8e7133fe78f1f6520ce32bbb2af010629096091e380d6958487c76ee5978bf16ef88b42d767cf09d2fdbefe2a8fc0a8adb932 SHA512 4a73ddead2969c3d4370dc9f543795a3714fd93b38ba6c819ccc7ea59caae018cdb50f3a580b1ba3a2a39d661992a419591c04b8027b28238b18ef421c61e2a3 +EBUILD compiler-rt-13.0.0.ebuild 3717 BLAKE2B bb6b7ccb4ee20e7da325bd111adefa0c212be6b6291d71e2553d31b56e0c95e7a50ea5ba2b2107bf3cbd052126491ae5811844a06a60b742069cb8ca268c8315 SHA512 03e3925de867fefa79ffc8bf6a1b53020452ccda98d79dedc09b4d2c5dddcef07890b2055c7774ea054241cb124f0629819aef9df1102cb70b6e7579ed52aa44 +EBUILD compiler-rt-13.0.1.9999.ebuild 3798 BLAKE2B 80bbefbd5a86e82afcb4292184f27d53ce12513c140c4515cc774960429b37e0fb6e8849a8fa0eac86321476c7131baac09e6a1b1cf7eeb3d575d90e20bccc98 SHA512 5d400cb861a9f9d2ef6f1cdc303c67053d1a1a4182881a1b9fe120565cfaf80504e02254eee1d617a992b47e5f587fbde0578af9e0395dbcdb8f876d222831bf +EBUILD compiler-rt-13.0.1_rc1.ebuild 3801 BLAKE2B c1e329e51d035db51692d0fa5e5f86f454bc1e6d47923c6493f8fdb7b6d09405511e5b2159e915b0344c6fc97de4444147cbd861860c1452c91e7112c0bdee1f SHA512 23a4780b617ae48236469c08d5d4bf4d637860391096c35d76f5af5dd3b2e327117704bfeeb3a8e9b2ea5bf64ab7880405a255f26ce686b5f2b7bf4991f25c5a +EBUILD compiler-rt-14.0.0.9999.ebuild 3804 BLAKE2B 82c0f8ca2a0505fb8365fa410d063df60f79a2bc5148f9d0372e2e987121d88bc407542eee0069d3b8495158fc51054e8087c09275eeb3d935132dadb4866271 SHA512 3cc9e175bdc873aa27f753c12562107aaacee59f066e305ccfbd80444e45abd91d7139251b100541e598c88d31fc899e5ac25f96edf398ec203d2a0964da6afa MISC metadata.xml 334 BLAKE2B e52ad011edc624e8b4c6449a9c77d0972222c4e3ecad01ea24eb9f3175053b191df6267886a186bc3e169581b86b624b6c77f37fac763a12129a1dd8cd6ee285 SHA512 1bf0f62c12690e6596650e8872405fc53bc3c4bbddcf80e02b3bcce9b762f0aa02d462949b9b54c0c930ca6cce5518333e79951ae57378def8eb9719463a9297 diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild deleted file mode 100644 index d6a1a16eb346..000000000000 --- a/sys-libs/compiler-rt/compiler-rt-13.0.0.9999.ebuild +++ /dev/null @@ -1,128 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="Compiler runtime library for clang (built-in part)" -HOMEPAGE="https://llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="$(ver_cut 1-3)" -KEYWORDS="" -IUSE="+clang debug test" -RESTRICT="!test? ( test ) !clang? ( test )" - -CLANG_SLOT=${SLOT%%.*} -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - >=dev-util/cmake-3.16 - clang? ( sys-devel/clang ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") - =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} - ) - ${PYTHON_DEPS}" - -LLVM_COMPONENTS=( compiler-rt ) -LLVM_PATCHSET=9999-1 -llvm.org_set_globals - -python_check_deps() { - use test || return 0 - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_pretend() { - if ! use clang && ! tc-is-clang; then - ewarn "Building using a compiler other than clang may result in broken atomics" - ewarn "library. Enable USE=clang unless you have a very good reason not to." - fi -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - python-any-r1_pkg_setup -} - -test_compiler() { - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - # pre-set since we need to pass it to cmake - BUILD_DIR=${WORKDIR}/${P}_build - - local nolib_flags=( -nodefaultlibs -lc ) - if use clang; then - local -x CC=${CHOST}-clang - local -x CXX=${CHOST}-clang++ - strip-unsupported-flags - # ensure we can use clang before installing compiler-rt - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - elif ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" - - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_LIBFUZZER=OFF - -DCOMPILER_RT_BUILD_MEMPROF=OFF - -DCOMPILER_RT_BUILD_ORC=OFF - -DCOMPILER_RT_BUILD_PROFILE=OFF - -DCOMPILER_RT_BUILD_SANITIZERS=OFF - -DCOMPILER_RT_BUILD_XRAY=OFF - - -DPython3_EXECUTABLE="${PYTHON}" - ) - - if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then - mycmakeargs+=( - # setting -isysroot is disabled with compiler-rt-prefix-paths.patch - # this allows adding arm64 support using SDK in EPREFIX - -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" - # Set version based on the SDK in EPREFIX. - # This disables i386 for SDK >= 10.15 - -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" - # Use our libtool instead of looking it up with xcrun - -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" - ) - fi - - if use test; then - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags)" - - -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" - -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" - ) - fi - - cmake_src_configure -} - -src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-builtins -} diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild index 564c29b11eaa..a2d62590de11 100644 --- a/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-13.0.0.ebuild @@ -26,7 +26,9 @@ BDEPEND=" $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) - ${PYTHON_DEPS}" + !test? ( + ${PYTHON_DEPS} + )" LLVM_COMPONENTS=( compiler-rt ) LLVM_PATCHSET=${PV/_/-} diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.1.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.1.9999.ebuild new file mode 100644 index 000000000000..1f0bd3af8c06 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-13.0.1.9999.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + ) + !test? ( + ${PYTHON_DEPS} + )" + +LLVM_COMPONENTS=( compiler-rt ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_MEMPROF=OFF + -DCOMPILER_RT_BUILD_ORC=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX. + # This disables i386 for SDK >= 10.15 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-13.0.1_rc1.ebuild b/sys-libs/compiler-rt/compiler-rt-13.0.1_rc1.ebuild new file mode 100644 index 000000000000..b2851d32c00e --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-13.0.1_rc1.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + ) + !test? ( + ${PYTHON_DEPS} + )" + +LLVM_COMPONENTS=( compiler-rt ) +LLVM_PATCHSET=${PV/_/-} +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + local nolib_flags=( -nodefaultlibs -lc ) + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + # ensure we can use clang before installing compiler-rt + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + elif ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_MEMPROF=OFF + -DCOMPILER_RT_BUILD_ORC=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX. + # This disables i386 for SDK >= 10.15 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-builtins +} diff --git a/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild index d6a1a16eb346..98c8fe855cfe 100644 --- a/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-14.0.0.9999.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://llvm.org/" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="$(ver_cut 1-3)" KEYWORDS="" -IUSE="+clang debug test" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} @@ -26,9 +26,11 @@ BDEPEND=" $(python_gen_any_dep ">=dev-python/lit-9.0.1[\${PYTHON_USEDEP}]") =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} ) - ${PYTHON_DEPS}" + !test? ( + ${PYTHON_DEPS} + )" -LLVM_COMPONENTS=( compiler-rt ) +LLVM_COMPONENTS=( compiler-rt cmake ) LLVM_PATCHSET=9999-1 llvm.org_set_globals @@ -94,6 +96,13 @@ src_configure() { -DPython3_EXECUTABLE="${PYTHON}" ) + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then mycmakeargs+=( # setting -isysroot is disabled with compiler-rt-prefix-paths.patch diff --git a/sys-libs/cygwin-crypt/Manifest b/sys-libs/cygwin-crypt/Manifest index 05d7f01d9846..3c10e8443516 100644 --- a/sys-libs/cygwin-crypt/Manifest +++ b/sys-libs/cygwin-crypt/Manifest @@ -1,3 +1,3 @@ DIST cygwin-crypt-1.4.tar.bz2 4446 BLAKE2B a0644f036c55fd169a1d708d51fc7d3b1cc0a94fba845319357b4251eb379aa799ed39ba81b2551774c870944b19e6e1053453e1e99b48a93ed5a62272c37e25 SHA512 1ecc4256730f13161a651cfdf71b27c1042e6f56fb859943426c371d4b37b8b2bd6ea768f86e45f7b8cf3478e97ff9578b79e5c37178c8794ff9b87799f2cab3 -EBUILD cygwin-crypt-1.4.ebuild 854 BLAKE2B 82868e38fc34dc233ecd8b72dad6b24c82c2ac142d15807c4e64c4e48fbe3035b8e7c10341834c585f306395f60ae3d44243b72c4cfac9066884e92105d323cf SHA512 725f80eb0acf1d0a30ff8a0afef0abb67bf21ce32b1f86f9066f42eeb37b2d324373dad87709567454f9c90790df9a5bc7b02103476012ca35f113f64a9d2864 +EBUILD cygwin-crypt-1.4-r1.ebuild 815 BLAKE2B a34fb9953b3811969077d7950406c13207e331e4107ff866a44f6a5179361acd8cc7e67d8cc1418e3d12a1d50ab6e55d07b10143e26caa81f0ee3b912f923644 SHA512 42d1304ba6a61c18865e34df6042205e10590aab719d0c0d6478c388477e8fc25938b597f3aefc0b42e7eb7ebd5af949ebe1aaaf167e16f578ebcc7593d55103 MISC metadata.xml 432 BLAKE2B f50d3fff254fbadbd6bf9d364e25bfdeb6396aa7f582213c8ae25f4e5acaba0b5cb780843d37d42fdbc6dd88d7c773335651d97c3d7d6fb2a20513e2e9d4c008 SHA512 76afb2545351cd7c5bbd93579faa56ffefd6f2fa0027666905c61926658bfc5901f492311a6ee4db3c5461f7b90019eef7a3e5816771d32060999fd6e671835b diff --git a/sys-libs/cygwin-crypt/cygwin-crypt-1.4-r1.ebuild b/sys-libs/cygwin-crypt/cygwin-crypt-1.4-r1.ebuild new file mode 100644 index 000000000000..24de50f1790b --- /dev/null +++ b/sys-libs/cygwin-crypt/cygwin-crypt-1.4-r1.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Cygwin Encryption/Decryption utility and library" +HOMEPAGE="https://sourceware.org/cygwin-apps/" +# Upstream provides the git repo only, so we do: +# git clone git://cygwin.com/git/cygwin-apps/crypt.git +# cd crypt +# git archive -o cygwin-crypt-${PV}.tar --prefix=cygwin-crypt-${PV}/ crypt-${PV}-release +# bzip2 cygwin-crypt-${PV}.tar +SRC_URI="mirror://gentoo/${P}.tar.bz2" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~x64-cygwin" + +mymake() { + emake \ + CC="$(tc-getCC)" \ + AR="$(tc-getAR)" \ + CFLAGS="${CFLAGS}" \ + prefix="${EPREFIX}/usr" \ + docdir="${EPREFIX}/share/doc/${P}" \ + "$@" +} + +src_compile() { + mymake +} + +src_install() { + mymake install DESTDIR="${D}" +} diff --git a/sys-libs/cygwin-crypt/cygwin-crypt-1.4.ebuild b/sys-libs/cygwin-crypt/cygwin-crypt-1.4.ebuild deleted file mode 100644 index 37c9ff3d46f3..000000000000 --- a/sys-libs/cygwin-crypt/cygwin-crypt-1.4.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit toolchain-funcs - -DESCRIPTION="Cygwin Encryption/Decryption utility and library" -HOMEPAGE="https://sourceware.org/cygwin-apps/" -# Upstream provides the git repo only, so we do: -# git clone git://cygwin.com/git/cygwin-apps/crypt.git -# cd crypt -# git archive -o cygwin-crypt-${PV}.tar --prefix=cygwin-crypt-${PV}/ crypt-${PV}-release -# bzip2 cygwin-crypt-${PV}.tar -SRC_URI="mirror://gentoo/${P}.tar.bz2" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~x64-cygwin" -IUSE="" - -DEPEND="" -RDEPEND="${DEPEND}" - -mymake() { - emake \ - CC="$(tc-getCC)" \ - AR="$(tc-getAR)" \ - CFLAGS="${CFLAGS}" \ - prefix="${EPREFIX}/usr" \ - docdir="${EPREFIX}/share/doc/${P}" \ - "$@" -} - -src_compile() { - mymake -} - -src_install() { - mymake install DESTDIR="${D}" -} diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest index 4a3d2deae31e..a742d8a07e61 100644 --- a/sys-libs/glibc/Manifest +++ b/sys-libs/glibc/Manifest @@ -3,6 +3,7 @@ AUX 2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch 1360 BLAKE2B 19d218e91b1d3d38c AUX 2.19/glibc-2.19-kernel-2.6.16-compat.patch 3214 BLAKE2B 64af88703bddaa301ce25d4400e00140fae536882443510466510766a60ac1cf4ceca35ca0ad4384f0cdc05b79352ac7da92f555561d1f6cdd65f7cc8464c6d7 SHA512 c21d80b7ae5b2691e5b6d43a42153193822ccc2b4418728edd5f2fa72412992d103b61418b57f9cf26e72378b24aa7cbaed05eeb31a4ec312a715d258cf5232b AUX 2.19/glibc-2.19-kernel-2.6.16-hide-pipe2.patch 620 BLAKE2B 216e728e40b044684843bff97eae31d65689595bcc3e345ef019a68e15c190cbd7fa685ff39e6363cf213f3f5676dee49f235beb1984a9e150e2b4ab72fcf605 SHA512 b93822269e67262fa45cbc50c5ec562d60ef69b2338afd56421b2d74d97360823dd4252abb0faee83231e4b3fd3f7357ef0249be8721f48fe176e512c6f5e447 AUX 2.25/glibc-2.25-gentoo-chk_fail.c 9068 BLAKE2B 6fabcbb981d92101ff3b97e8eed4da3c0ee4fc3d09ca344c2d0b7ee5e04fec66b5db314263541beeb1290bafa837795fef1a6300986de938d2958ba89a9c1f2f SHA512 4503002b0e2cee0b6efc4599152d24fcff330157d4e35992a77d0d83a2decc4cf2da2b8645a44d90d428a1d82300a4fd8d13c5937b7c89f368c12b3c9139be6f +AUX glibc-2.34-make-clone3-syscall-optional.patch 1846 BLAKE2B 92242838da715f49f7005bd48c15fc28d40fcf234d0a2537df2c760161853e6c91469ba26c93a76ba5548c03d5e805c15057d3d8671182581c4f7159a41ab91a SHA512 06344b86e5cef0ecb79e7f573ff5c3e7c9f2dd11eea06e0e2b9ecdfb564770299b7b39b655a7718d1a7c31e070267e4ee5c9f2e6eac548f6cf4e2bbe3b36772d AUX host.conf-1 826 BLAKE2B 32fe7f016325e781d477a0f855c32d0df12626edd11d58c0ec368fc579811b73e4851dec6bfca9e9f53d1c2de1bb2b3b4406e50b7f665870958d727fbeab2f87 SHA512 91102a5383b49199eceb94fb1ecd223ce0f585021de94dc1646af1095a220ba1acf540271af908da47a3ee1aa55c35f5f372d61e34d0e14f1718e67633a13e76 AUX nscd-1 1897 BLAKE2B aefa781de3181c5609ac2659632f0a5bdfa6bbc8e22b73fdf5c28ca36184b5614bb2febd581d0c41a1f3dd72c45a191866cbc827f5e7009722b6d839518a27d6 SHA512 b2edbdc33fb4290378d9520bfcefcbb5183e8b8f0e80cf3573fb4ce6cf309e21f59178f31eec4ada90b4b37e502038e71b31f93b2ba2c7fa36a7eef1b1d9bf70 AUX nscd.service 337 BLAKE2B 6b163465dd8db024652921892dc913da8dfc0984eec7ffce621229e48fa99dcedc3b5944844529190122c81f4884b6a6fe7836d37d2d812f34059c530856dec1 SHA512 2001100f3b054843c69b6fd2d38852c7c824282aa8998c25a3c0352db993705429d25c70d8ce6cb3579f836b7089644c520acac423ebd69cb1b36e94a77c5bea @@ -24,6 +25,7 @@ DIST glibc-2.33-patches-4.tar.xz 60124 BLAKE2B a7a99f39c16df241745772c31b10946dc DIST glibc-2.33-patches-6.tar.xz 64632 BLAKE2B f04ca4320d65c8796c67471cb56d3bf002cc34fb6a81075b85948e41c94df46cb2a3a944cced42d6d2c17ffc11e32a9840810864e655cc0fe18e6e0fe9f3c985 SHA512 b95746cd3415ec9ca275e542a2b5fddd5ce5680aa3bda08e94e96cf431191f7488ef6b7999ff0dfaf7405a4212531a75283e9bd7f5ae65bf572912038877a6df DIST glibc-2.33.tar.xz 17031280 BLAKE2B 703d12121c1e2c5d9e0c6ba5341f5fb5c4d9111611a83f2360029b5de9c6e5a5611249d1833684a58ed4afdf49cae614365d87ec8721ba0e5d218f593b1f229d SHA512 4cb5777b68b22b746cc51669e0e9282b43c83f6944e42656e6db7195ebb68f2f9260f130fdeb4e3cfc64efae4f58d96c43d388f52be1eb024ca448084684abdb DIST glibc-2.34-patches-5.tar.xz 56832 BLAKE2B e5f5e8e41551d9f90355e9fc854e541cdcd5dd172e12dafa84256b7aeb999c0980ec6e7299701b78b0257980f5cf91019edfdf9796bec6b886434aa1960b2d6c SHA512 bc56fe2870629700d931150e1ebdc6e9b3318e8dabf5491d3645efd4db11032e21562e9276d97fc052c45362bfbca7f3d80d93277c2bf8aa3e05a5001df75c60 +DIST glibc-2.34-patches-6.tar.xz 58396 BLAKE2B c25696e2aceef9ea4724716acde377d91b8a76b2edca2b293fcd6c89f635f63a612f8c1ecd861367b1394ebacc4b0151b0c6b68c2b08a7bde3a54a76400f35c5 SHA512 343922492e448d978dbcad1718804f892d002b6d4ce366da4cf571d97145ed850fb4b2862645681f487a9a18a77ea48f23010c0c61ea7cf914d26fd149b8271d DIST glibc-2.34.tar.xz 17301232 BLAKE2B 874031192f2f5a3b35c3f5b044a467d4be4e67e8593e070e5b49b901ce8ea6bde2f8d2f6c92fa33b3f61eb723572a9e5f2b45e56064168df80a96d3fdb6fa30c SHA512 15252affd9ef4523a8001db16d497f4fdcb3ddf4cde7fe80e075df0bd3cc6524dc29fbe20229dbf5f97af580556e6b1fac0de321a5fe25322bc3e72f93beb624 DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238 DIST glibc-systemd-20210814.tar.gz 1469 BLAKE2B 10fa7bcb46d4fdce9c0ab353cbd30871e9b09a347a13a9c9a3b5777f931aa3c826c158d2e49532c604d4a834f2fab4089b67495fb88d0398945dc50d45ad9ef1 SHA512 5346a9ea459a1e6ccf665389f2a294de1e16f1e3e05cdf07e3dd99ed0e4f6f8b52cc333d4bff3c75ac90ab6ce70cd4ab2b3e126f920ce7979abd6dda56315efc @@ -36,6 +38,7 @@ EBUILD glibc-2.31-r7.ebuild 44522 BLAKE2B 1adfba68c35d3af5ec8476b2fe5d3bebf13880 EBUILD glibc-2.32-r8.ebuild 44853 BLAKE2B 724f95c0ed2cda18dc2edcaa03b0783a2bc603b72a67e1451535040ddc83be6d1a90ad4b30f9623140b5c0a329ecafb6f19793390137e629d43a3c26e202b28a SHA512 0973b86c266e40203e301cf0c6f8fddc4273c002ffb8fd6c16f6e78f2cfdfbea95fda04adfebb8ee84a14dc950763ba706eadadb2e83f7982b800bee636d5d8f EBUILD glibc-2.33-r1.ebuild 45233 BLAKE2B 881f8eebb4c7e4e78760b92bd6cb64de2372abed3f15b916ab0d47f60d5cbceaaedf2624db92aec97a2742f205e7b243a02f7ddd3932a83ba8d0de3b40f72caf SHA512 54978040ee64ccc03bf8aea55af21775d8e360fcf5eeddad61b36c51dcc016849e9650270463e46edbd35e7eb6ffa1c72f1068031c80b6fca316980674c22dce EBUILD glibc-2.33-r7.ebuild 46954 BLAKE2B da9c95ef74942a7261b8fb32b5ac926f71315e7197c8b235e4892bbdbbce1a4e3ad2c26c4587695dc54dd61f8cdbac274d1fb620815daec286ae8b682937ea2a SHA512 4861947122e6ccd3ddbdfe1f750dec174902ebf3778b6ac40dbda1b5e8598782800bfa40887a795858a7094ecb691f3647941d0dced05c3bedd113480c558c6e -EBUILD glibc-2.34-r1.ebuild 47425 BLAKE2B 0d1f27f4aea9ecf0eab109b9a978b16910469f2eb760711b6c6e8fac23924426cd02ac1b756455544797ee20373070d0d96b91aefbfcb05ef623a21cae4bb3a4 SHA512 6657fa2c75f8a42ec0b22977dfa9df855425946ca85c1969564fe1484bf88f954417288c1c9f4256f08d187ad1096016612add0425fde27a863058e4fe414061 -EBUILD glibc-9999.ebuild 47425 BLAKE2B 7fe569cfb3a09da55216c5c9b0e55808092ba8f88e5d244a62e846602f8ee00e8162ef398a81c9fc964f9f1d07d6af8ab32ae2a5c2df01968caeb08f9421a776 SHA512 0fd4f9959a984a847eb1215f124110263c1169994e29556410aed71c53fbaca5717df419b16ac4bc0a0a1cdac037fff154b8c30ee7a827b6af160bbe6471acff -MISC metadata.xml 1556 BLAKE2B c8deb6ffdb2f6d045ea8c96dbefde33d108f8123d4c51351d77aa487db703b7312d26394e6c320b97e4955acbc0fc97c7ca918426f3bba3b1c2536c2461d334d SHA512 c47d15cf75001e40e6533bc157689d621e853966e70e504e540a16e1390dc0f122acaa705956d25b43683f9c633eb40bc2ffab64ce93f21a8a6346a9fc9dd51e +EBUILD glibc-2.34-r2.ebuild 48420 BLAKE2B 8f0af59f0834a99e16c7a45a7f56f5deff51b63f745da101d0f69a839a0ab4d8c8c2de2c2ddb53d35259334484bbba199c48a86fa5d3290ae80c3ba158c5024b SHA512 212949c5e6f91bde921f0074f263e2cb752e0492b94c12b5263cbf8615d2666fac427828e1ee7faa2455f701d1cdb9839465e7d1163c6810c0b10c7823733d0b +EBUILD glibc-2.34-r3.ebuild 48459 BLAKE2B c5e71ef6938078eefc3cc2ead33e6296c5efa37f455a905a99daf43068872406c2351ec79bcc1f5f1a89d61e7d49ef2a57a6541e2e7832af4b46143fbfe3e96d SHA512 365784b53e98903d3b28bc6384650973ad864abc282944e476e0c0109b7bc852997a4604b8c59a8c2dc047e71504f34352fe335dfdb7f28786a1c6aea1cd8f07 +EBUILD glibc-9999.ebuild 47925 BLAKE2B 6c31e95d2e41fb2b76dfe2e69915bd923e8636d009f0309bcc5d948e3b7911fc5558ad4ea73777641764246dac5d2c6ab64c0f7e48a1f12c913a59825e21bcb6 SHA512 f8d6d9c836fe4550178cf92f3208b951ff762c96dc1fa0d25e0243823c955731257c411406d9ec4e1801fd5e762458b2632945e684fbd0c29a87cd8698dfcda7 +MISC metadata.xml 1701 BLAKE2B 91bd245d0a3685d76e3f874b50db872660054767fca5181871022fbdef9a18c4e674890bfed52cc3332c9557430ae8eec64505e67cdbedff000987406ab69ac5 SHA512 524edc37a01a47958ef557d586e8f06c6132481734ea28ed57e146969503fd129ad1da813a4d2d143a9bb8abe8810b0d8c920ab3c422a729287838435c44743a diff --git a/sys-libs/glibc/files/glibc-2.34-make-clone3-syscall-optional.patch b/sys-libs/glibc/files/glibc-2.34-make-clone3-syscall-optional.patch new file mode 100644 index 000000000000..bbc6cabb463d --- /dev/null +++ b/sys-libs/glibc/files/glibc-2.34-make-clone3-syscall-optional.patch @@ -0,0 +1,48 @@ +From 22afb7abbfa0e2d4d168dcd2844aa9935a71cb37 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Wed, 1 Dec 2021 14:58:40 +0000 +Subject: [PATCH] clone-internal.c: disable use of clone3 conditinally + +We're disabling clone3 for now _CONDITIONALLY_ (not by default) to allow +compatibility with applications using older Electron. + +Use -DGENTOO_USE_CLONE3 to enable clone3 for now. In future, we will +revert back to always using clone3. + +This was impacting e.g. Discord and Skype. This patch stops glibc from using +clone3 internally (which is the only real use of it) and falls back to the old +behaviour. + +Specifically, we want https://github.com/electron/electron/pull/31091 +to work its way downstream to various Electron applications. + +https://bugs.gentoo.org/819045 +https://bugs.gentoo.org/827386 + +https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/glibc/plain/debian/patches/ubuntu/disable-clone3.patch + +This is the same as the patch that was considered but ultimately rejected +for 2.34 because Docker got sorted out in time: +https://patchwork.ozlabs.org/project/glibc/patch/87eebkf8ph.fsf@oldenburg.str.redhat.com/. + +Signed-off-by: Sam James +--- + sysdeps/unix/sysv/linux/clone-internal.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sysdeps/unix/sysv/linux/clone-internal.c b/sysdeps/unix/sysv/linux/clone-internal.c +index 979f7880be..c5566daf73 100644 +--- a/sysdeps/unix/sysv/linux/clone-internal.c ++++ b/sysdeps/unix/sysv/linux/clone-internal.c +@@ -48,7 +48,7 @@ __clone_internal (struct clone_args *cl_args, + int (*func) (void *arg), void *arg) + { + int ret; +-#ifdef HAVE_CLONE3_WRAPPER ++#if defined(HAVE_CLONE3_WRAPPER) && defined(GENTOO_USE_CLONE3) + /* Try clone3 first. */ + int saved_errno = errno; + ret = __clone3 (cl_args, sizeof (*cl_args), func, arg); +-- +2.34.1 + diff --git a/sys-libs/glibc/glibc-2.34-r1.ebuild b/sys-libs/glibc/glibc-2.34-r1.ebuild deleted file mode 100644 index f5d98be9cf6a..000000000000 --- a/sys-libs/glibc/glibc-2.34-r1.ebuild +++ /dev/null @@ -1,1567 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc -# Please read & adapt the page as necessary if obsolete. - -# We avoid Python 3.10 here _for now_ (it does work!) to avoid circular dependencies -# on upgrades as people migrate to libxcrypt. -# https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies#Python_and_libcrypt -PYTHON_COMPAT=( python3_{7,8,9} ) -TMPFILES_OPTIONAL=1 - -inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ - multilib systemd multiprocessing tmpfiles - -DESCRIPTION="GNU libc C library" -HOMEPAGE="https://www.gnu.org/software/libc/" -LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" -SLOT="2.2" - -EMULTILIB_PKG="true" - -# Gentoo patchset (ignored for live ebuilds) -PATCH_VER=5 -PATCH_DEV=dilfridge - -if [[ ${PV} == 9999* ]]; then - inherit git-r3 -else - #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - KEYWORDS="" - SRC_URI="mirror://gnu/glibc/${P}.tar.xz" - SRC_URI+=" https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${P}-patches-${PATCH_VER}.tar.xz" -fi - -RELEASE_VER=${PV} - -GCC_BOOTSTRAP_VER=20201208 - -LOCALE_GEN_VER=2.22 - -GLIBC_SYSTEMD_VER=20210729 - -SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" -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 )" - -IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemd systemtap test vanilla" - -# 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" - -# 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. -# 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. - -# gzip, grep, awk are needed by locale-gen, bug 740750 - -BDEPEND=" - ${PYTHON_DEPS} - >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} - sys-devel/bison - doc? ( sys-apps/texinfo ) - !compile-locales? ( - app-arch/gzip - sys-apps/grep - virtual/awk - ) -" -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-util/systemtap ) -" -DEPEND="${COMMON_DEPEND} - compile-locales? ( - app-arch/gzip - sys-apps/grep - virtual/awk - ) - test? ( >=net-dns/libidn2-2.3.0 ) -" -RDEPEND="${COMMON_DEPEND} - app-arch/gzip - sys-apps/grep - virtual/awk - sys-apps/gentoo-functions - !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') - ALT_BUILD_HEADERS=${header_path%/linux/version.h} - fi - fi - fi - echo "${ALT_BUILD_HEADERS}" -} - -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 - - # Most of the time CC is already set, but not in early sanity checks. - nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}" - 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 - if ! do_compile_test "" "$@" ; then - ewarn "Simple build failed ... assuming this is desired #324685" - return 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 - ;; - amd64) - # -march needed for #185404 #199334 - # TODO: See cross-compile issues listed above for x86. - [[ ${ABI} == x86 ]] && - 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 - ;; - 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 - # Lock glibc at -O2; we want to be conservative here. - filter-flags '-O?' - append-flags -O2 - fi - strip-unsupported-flags - 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' - - # #492892 - filter-flags -frecord-gcc-switches - - 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" - replace-flags -O0 -O1 - - filter-flags '-fstack-protector*' -} - -want_tls() { - # Archs that can use TLS (Thread Local Storage) - case $(tc-arch) in - x86) - # requires i486 or better #106556 - [[ ${CTARGET} == i[4567]86* ]] && return 0 - return 1 - ;; - esac - return 0 -} - -want__thread() { - want_tls || return 1 - - # For some reason --with-tls --with__thread is causing segfaults on sparc32. - [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 - - [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} - - # only test gcc -- can't test linking yet - tc-has-tls -c ${CTARGET} - WANT__THREAD=$? - - return ${WANT__THREAD} -} - -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_ 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 - local VAR=CFLAGS_${ABI} - # 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. - : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} - export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" -} - -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+=" p${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 \nLINUX_VERSION_CODE\n' | \ - $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_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 \n#include \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() will break. See bug 279260." - die "Old and broken kernel." - fi - fi - - # Users have had a chance to phase themselves, time to give em the boot - if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then - eerror "You still haven't deleted ${EROOT}/etc/locales.build." - eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." - die "Lazy upgrader detected" - 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 that IA32 emulation is enabled in the running kernel" - 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 - [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." - fi - - fi - - # When we actually have to compile something... - if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then - ebegin "Checking gcc for __thread support" - if ! eend $(want__thread ; echo $?) ; then - echo - eerror "Could not find a gcc that supports the __thread directive!" - eerror "Please update your binutils/gcc and try again." - die "No __thread support in gcc!" - 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 - - 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 -} - -# -# the phases -# - -# pkg_pretend - -pkg_pretend() { - # All the checks... - einfo "Checking general environment sanity." - sanity_prechecks -} - -pkg_setup() { - # see bug 682570 - [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup -} - -# src_unpack - -src_unpack() { - # Consistency is not guaranteed between pkg_ and src_ ... - sanity_prechecks - - use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz - - setup_env - - if [[ ${PV} == 9999* ]] ; then - EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/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" - EGIT_CHECKOUT_DIR=${S} - git-r3_src_unpack - else - unpack ${P}.tar.xz - - cd "${WORKDIR}" || die - unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz - fi - - cd "${WORKDIR}" || die - unpack locale-gen-${LOCALE_GEN_VER}.tar.gz - use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz -} - -src_prepare() { - local patchsetname - if ! use vanilla ; then - if [[ ${PV} == 9999* ]] ; then - patchsetname="from git master" - else - patchsetname="${RELEASE_VER}-${PATCH_VER}" - fi - einfo "Applying Gentoo Glibc Patchset ${patchsetname}" - eapply "${WORKDIR}"/patches - einfo "Done." - fi - - default - - gnuconfig_update - - cd "${WORKDIR}" - find . -name configure -exec touch {} + - - # move the external locale-gen to its old place - mkdir extra || die - mv locale-gen-${LOCALE_GEN_VER} extra/locale || die - - eprefixify extra/locale/locale-gen - - # Fix permissions on some of the scripts. - chmod u+x "${S}"/scripts/*.sh - - cd "${S}" -} - -glibc_do_configure() { - # Glibc does not work with gold (for various reasons) #269274. - tc-ld-disable-gold - - # CXX isnt handled by the multilib system, so if we dont unset here - # we accumulate crap across abis - unset CXX - - einfo "Configuring glibc for nptl" - - if use doc ; then - export MAKEINFO=makeinfo - else - export MAKEINFO=/dev/null - fi - - local v - for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do - einfo " $(printf '%15s' ${v}:) ${!v}" - done - - # 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="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" - einfo " $(printf '%15s' 'Manual CC:') ${CC}" - - # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 - export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" - - if is_crosscompile; then - # Assume worst-case bootstrap: glibc is buil first time - # when ${CTARGET}-g++ is 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 - einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" - - # 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})" - einfo " $(printf '%15s' 'Manual NM:') ${NM}" - einfo " $(printf '%15s' 'Manual READELF:') ${READELF}" - - echo - - local myconf=() - - case ${CTARGET} in - m68k*) - # setjmp() is not compatible with stack protection: - # https://sourceware.org/PR24202 - myconf+=( --enable-stack-protector=no ) - ;; - *) - # Use '=strong' instead of '=all' to protect only functions - # worth protecting from stack smashes. - # '=all' is also known to have a problem in IFUNC resolution - # tests: https://sourceware.org/PR25680, bug #712356. - myconf+=( --enable-stack-protector=$(usex ssp strong no) ) - ;; - esac - myconf+=( --enable-stackguard-randomization ) - - # Keep a whitelist of targets supporing 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) ;; - # Blacklist everywhere else - *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; - esac - - # Enable Intel Control-flow Enforcement Technology on amd64 if requested - case ${CTARGET} in - x86_64-*) 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+=( - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - $(use_enable profile) - $(use_with gd) - --with-headers=$(build_eprefix)$(alt_build_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_enable crypt) - $(use_multiarch || echo --disable-multi-arch) - $(use_enable static-pie) - $(use_enable systemtap) - $(use_enable nscd) - - # locale data is arch-independent - # https://bugs.gentoo.org/753740 - libc_cv_complocaledir='${exec_prefix}/lib/locale' - - # -march= option tricks build system to infer too - # high ISA level: https://sourceware.org/PR27318 - libc_cv_include_x86_isa_level=no - # Explicit override of https://sourceware.org/PR27991 - # exposes a bug in glibc's configure: - # https://sourceware.org/PR27991 - libc_cv_have_x86_lahf_sahf=no - libc_cv_have_x86_movbe=no - - ${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)" - - # We take care of patching our binutils to use both hash styles, - # and many people like to force gnu hash style only, so disable - # this overriding check. #347761 - export libc_cv_hashstyle=no - - local builddir=$(builddir nptl) - mkdir -p "${builddir}" - cd "${builddir}" - set -- "${S}"/configure "${myconf[@]}" - echo "$@" - "$@" || die "failed to configure glibc" - - # ia64 static cross-compilers are a pita in so much that they - # can't produce static ELFs (as the libgcc.a is broken). so - # disable building of the programs for those targets if it - # doesn't work. - # XXX: We could turn this into a compiler test, but ia64 is - # the only one that matters, so this should be fine for now. - if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then - sed -i '1i+link-static = touch $@' config.make - fi - - # 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 'main(){}' > "${T}"/test.c - 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,ia64,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 - - case ${CTARGET} in - 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 - - local myconf=() - myconf+=( - --disable-sanity-checks - --enable-hacker-mode - --without-cvs - --disable-werror - --enable-bind-now - --build=${CBUILD_OPT:-${CBUILD}} - --host=${CTARGET_OPT:-${CTARGET}} - --with-headers=$(build_eprefix)$(alt_build_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 -} - -do_src_compile() { - emake -C "$(builddir nptl)" -} - -src_compile() { - if just_headers ; then - return - fi - - foreach_abi do_src_compile -} - -glibc_src_test() { - cd "$(builddir nptl)" - - local myxfailparams="" - if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then - 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 - - SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check -} - -do_src_test() { - local ret=0 - - glibc_src_test - : $(( ret |= $? )) - - return ${ret} -} - -src_test() { - if just_headers ; then - return - fi - - # Give tests more time to complete. - export TIMEOUTFACTOR=5 - - foreach_abi do_src_test || die "tests failed" -} - -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 - - set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --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 libpthreas symbols. stripping breaks it - # See Note [Disable automatic stripping] - dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.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-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.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'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 "${WORKDIR}"/extra/locale - dosbin locale-gen - doman *.[0-8] - insinto /etc - doins locale.gen - - keepdir /usr/lib/locale - - cd "${S}" - - # 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}/" - sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die - 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 . -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 - - # 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 ! use crypt && 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 -} - -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 - use compile-locales || run_locale_gen "${EROOT}/" - fi - - # 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 egrep -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-2.34-r2.ebuild b/sys-libs/glibc/glibc-2.34-r2.ebuild new file mode 100644 index 000000000000..dd50e8578a35 --- /dev/null +++ b/sys-libs/glibc/glibc-2.34-r2.ebuild @@ -0,0 +1,1591 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +# We avoid Python 3.10 here _for now_ (it does work!) to avoid circular dependencies +# on upgrades as people migrate to libxcrypt. +# https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies#Python_and_libcrypt +PYTHON_COMPAT=( python3_{7,8,9} ) +TMPFILES_OPTIONAL=1 + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=5 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20201208 + +LOCALE_GEN_VER=2.22 + +GLIBC_SYSTEMD_VER=20210729 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +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 )" + +IUSE="audit caps cet compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemd systemtap test vanilla" + +# 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" + +# 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. +# 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. + +# gzip, grep, awk are needed by locale-gen, bug 740750 + +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +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-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + app-arch/gzip + sys-apps/grep + virtual/awk + sys-apps/gentoo-functions + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +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 + + # Most of the time CC is already set, but not in early sanity checks. + nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}" + 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 + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 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 + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == x86 ]] && + 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 + + # Workaround for https://bugs.gentoo.org/823780. This really should + # be removed when the upstream bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103275 + # is fixed in our tree, either via 11.3 or an 11.2p2 patch set. + if [[ ${ABI} == x86 ]] && tc-is-gcc && (($(gcc-major-version) == 11)) && (($(gcc-minor-version) <= 2)) && (($(gcc-micro-version) == 0)); then + export CFLAGS_x86="${CFLAGS_x86} -mno-avx512f" + einfo "Auto adding -mno-avx512f to CFLAGS_x86 (bug #823780) (ABI=${ABI})" + 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 + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + strip-unsupported-flags + 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' + + # #492892 + filter-flags -frecord-gcc-switches + + 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" + replace-flags -O0 -O1 + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +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_ 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 + local VAR=CFLAGS_${ABI} + # 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. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +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+=" p${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 \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_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 \n#include \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() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + 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 that IA32 emulation is enabled in the running kernel" + 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 + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + 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 + + 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 +} + +upgrade_warning() { + 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." + break + fi + done + fi +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks + upgrade_warning +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/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" + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + # move the external locale-gen to its old place + mkdir extra || die + mv locale-gen-${LOCALE_GEN_VER} extra/locale || die + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # 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="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is 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 + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + # 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})" + einfo " $(printf '%15s' 'Manual NM:') ${NM}" + einfo " $(printf '%15s' 'Manual READELF:') ${READELF}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing 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) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) 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+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_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_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(use_enable systemtap) + $(use_enable nscd) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + # Explicit override of https://sourceware.org/PR27991 + # exposes a bug in glibc's configure: + # https://sourceware.org/PR27991 + libc_cv_have_x86_lahf_sahf=no + libc_cv_have_x86_movbe=no + + ${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)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # 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 'main(){}' > "${T}"/test.c + 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,ia64,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 + + case ${CTARGET} in + 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 + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(build_eprefix)$(alt_build_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 +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + 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 + + SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +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 + + set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --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 libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.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-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.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'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 "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + keepdir /usr/lib/locale + + cd "${S}" + + # 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}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + 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 . -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 + + # 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 ! use crypt && 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 +} + +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 + use compile-locales || run_locale_gen "${EROOT}/" + 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 egrep -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-2.34-r3.ebuild b/sys-libs/glibc/glibc-2.34-r3.ebuild new file mode 100644 index 000000000000..7053b85282f1 --- /dev/null +++ b/sys-libs/glibc/glibc-2.34-r3.ebuild @@ -0,0 +1,1591 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc +# Please read & adapt the page as necessary if obsolete. + +# We avoid Python 3.10 here _for now_ (it does work!) to avoid circular dependencies +# on upgrades as people migrate to libxcrypt. +# https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies#Python_and_libcrypt +PYTHON_COMPAT=( python3_{7,8,9} ) +TMPFILES_OPTIONAL=1 + +inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \ + multilib systemd multiprocessing tmpfiles + +DESCRIPTION="GNU libc C library" +HOMEPAGE="https://www.gnu.org/software/libc/" +LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE" +SLOT="2.2" + +EMULTILIB_PKG="true" + +# Gentoo patchset (ignored for live ebuilds) +PATCH_VER=6 +PATCH_DEV=dilfridge + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 + +RELEASE_VER=${PV} + +GCC_BOOTSTRAP_VER=20201208 + +LOCALE_GEN_VER=2.22 + +GLIBC_SYSTEMD_VER=20210729 + +SRC_URI+=" https://gitweb.gentoo.org/proj/locale-gen.git/snapshot/locale-gen-${LOCALE_GEN_VER}.tar.gz" +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 )" + +IUSE="audit caps cet +clone3 compile-locales +crypt custom-cflags doc gd headers-only +multiarch multilib multilib-bootstrap nscd profile selinux +ssp +static-libs static-pie suid systemd systemtap test vanilla" + +# 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" + +# 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. +# 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. + +# gzip, grep, awk are needed by locale-gen, bug 740750 + +BDEPEND=" + ${PYTHON_DEPS} + >=app-misc/pax-utils-${MIN_PAX_UTILS_VER} + sys-devel/bison + doc? ( sys-apps/texinfo ) + !compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) +" +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-util/systemtap ) +" +DEPEND="${COMMON_DEPEND} + compile-locales? ( + app-arch/gzip + sys-apps/grep + virtual/awk + ) + test? ( >=net-dns/libidn2-2.3.0 ) +" +RDEPEND="${COMMON_DEPEND} + app-arch/gzip + sys-apps/grep + virtual/awk + sys-apps/gentoo-functions + !' | $(tc-getCPP ${CTARGET}) ${CFLAGS} 2>&1 | grep -o '[^"]*linux/version.h') + ALT_BUILD_HEADERS=${header_path%/linux/version.h} + fi + fi + fi + echo "${ALT_BUILD_HEADERS}" +} + +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 + + # Most of the time CC is already set, but not in early sanity checks. + nonfatal emake glibc-test CC="${CC-$(tc-getCC ${CTARGET})}" + 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 + if ! do_compile_test "" "$@" ; then + ewarn "Simple build failed ... assuming this is desired #324685" + return 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 + ;; + amd64) + # -march needed for #185404 #199334 + # TODO: See cross-compile issues listed above for x86. + [[ ${ABI} == x86 ]] && + 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 + + # Workaround for https://bugs.gentoo.org/823780. This really should + # be removed when the upstream bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103275 + # is fixed in our tree, either via 11.3 or an 11.2p2 patch set. + if [[ ${ABI} == x86 ]] && tc-is-gcc && (($(gcc-major-version) == 11)) && (($(gcc-minor-version) <= 2)) && (($(gcc-micro-version) == 0)); then + export CFLAGS_x86="${CFLAGS_x86} -mno-avx512f" + einfo "Auto adding -mno-avx512f to CFLAGS_x86 (bug #823780) (ABI=${ABI})" + 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 + # Lock glibc at -O2; we want to be conservative here. + filter-flags '-O?' + append-flags -O2 + fi + strip-unsupported-flags + 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' + + # #492892 + filter-flags -frecord-gcc-switches + + 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" + replace-flags -O0 -O1 + + filter-flags '-fstack-protector*' +} + +want_tls() { + # Archs that can use TLS (Thread Local Storage) + case $(tc-arch) in + x86) + # requires i486 or better #106556 + [[ ${CTARGET} == i[4567]86* ]] && return 0 + return 1 + ;; + esac + return 0 +} + +want__thread() { + want_tls || return 1 + + # For some reason --with-tls --with__thread is causing segfaults on sparc32. + [[ ${PROFILE_ARCH} == "sparc" ]] && return 1 + + [[ -n ${WANT__THREAD} ]] && return ${WANT__THREAD} + + # only test gcc -- can't test linking yet + tc-has-tls -c ${CTARGET} + WANT__THREAD=$? + + return ${WANT__THREAD} +} + +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_ 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 + local VAR=CFLAGS_${ABI} + # 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. + : ${__GLIBC_CC:=$(tc-getCC ${CTARGET})} + export __GLIBC_CC CC="${__GLIBC_CC} ${!VAR}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" +} + +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+=" p${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 \nLINUX_VERSION_CODE\n' | \ + $(tc-getCPP ${CTARGET}) -I "$(build_eprefix)$(alt_build_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 \n#include \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() will break. See bug 279260." + die "Old and broken kernel." + fi + fi + + # Users have had a chance to phase themselves, time to give em the boot + if [[ -e ${EROOT}/etc/locale.gen ]] && [[ -e ${EROOT}/etc/locales.build ]] ; then + eerror "You still haven't deleted ${EROOT}/etc/locales.build." + eerror "Do so now after making sure ${EROOT}/etc/locale.gen is kosher." + die "Lazy upgrader detected" + 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 that IA32 emulation is enabled in the running kernel" + 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 + [[ $STAT -eq 0 ]] || die "CONFIG_IA32_EMULATION must be enabled in the kernel to compile a multilib glibc." + fi + + fi + + # When we actually have to compile something... + if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then + ebegin "Checking gcc for __thread support" + if ! eend $(want__thread ; echo $?) ; then + echo + eerror "Could not find a gcc that supports the __thread directive!" + eerror "Please update your binutils/gcc and try again." + die "No __thread support in gcc!" + 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 + + 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 +} + +# +# the phases +# + +# pkg_pretend + +pkg_pretend() { + # All the checks... + einfo "Checking general environment sanity." + sanity_prechecks +} + +pkg_setup() { + # see bug 682570 + [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup +} + +# src_unpack + +src_unpack() { + # Consistency is not guaranteed between pkg_ and src_ ... + sanity_prechecks + + use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz + + setup_env + + if [[ ${PV} == 9999* ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/toolchain/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" + EGIT_CHECKOUT_DIR=${S} + git-r3_src_unpack + else + unpack ${P}.tar.xz + + cd "${WORKDIR}" || die + unpack glibc-${RELEASE_VER}-patches-${PATCH_VER}.tar.xz + fi + + cd "${WORKDIR}" || die + unpack locale-gen-${LOCALE_GEN_VER}.tar.gz + use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz +} + +src_prepare() { + local patchsetname + if ! use vanilla ; then + if [[ ${PV} == 9999* ]] ; then + patchsetname="from git master" + else + patchsetname="${RELEASE_VER}-${PATCH_VER}" + fi + einfo "Applying Gentoo Glibc Patchset ${patchsetname}" + eapply "${WORKDIR}"/patches + einfo "Done." + fi + + # Apply patch to allow conditional disabling of clone3 + eapply "${FILESDIR}"/${PN}-2.34-make-clone3-syscall-optional.patch + + if use clone3 ; then + append-cppflags -DGENTOO_USE_CLONE3 + else + # See e.g. bug #827386, bug #819045. + elog "Disabling the clone3 syscall for compatibility with older Electron apps." + elog "Please re-enable this flag before filing bugs!" + fi + + default + + gnuconfig_update + + cd "${WORKDIR}" + find . -name configure -exec touch {} + + + # move the external locale-gen to its old place + mkdir extra || die + mv locale-gen-${LOCALE_GEN_VER} extra/locale || die + + eprefixify extra/locale/locale-gen + + # Fix permissions on some of the scripts. + chmod u+x "${S}"/scripts/*.sh + + cd "${S}" +} + +glibc_do_configure() { + # Glibc does not work with gold (for various reasons) #269274. + tc-ld-disable-gold + + # CXX isnt handled by the multilib system, so if we dont unset here + # we accumulate crap across abis + unset CXX + + einfo "Configuring glibc for nptl" + + if use doc ; then + export MAKEINFO=makeinfo + else + export MAKEINFO=/dev/null + fi + + local v + for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX LD {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM READELF; do + einfo " $(printf '%15s' ${v}:) ${!v}" + done + + # 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="$(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS}" + einfo " $(printf '%15s' 'Manual CC:') ${CC}" + + # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548 + export CXX="$(tc-getCXX ${CTARGET}) $(get_abi_CFLAGS) ${CFLAGS}" + + if is_crosscompile; then + # Assume worst-case bootstrap: glibc is buil first time + # when ${CTARGET}-g++ is 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 + einfo " $(printf '%15s' 'Manual CXX:') ${CXX}" + + # 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})" + einfo " $(printf '%15s' 'Manual NM:') ${NM}" + einfo " $(printf '%15s' 'Manual READELF:') ${READELF}" + + echo + + local myconf=() + + case ${CTARGET} in + m68k*) + # setjmp() is not compatible with stack protection: + # https://sourceware.org/PR24202 + myconf+=( --enable-stack-protector=no ) + ;; + *) + # Use '=strong' instead of '=all' to protect only functions + # worth protecting from stack smashes. + # '=all' is also known to have a problem in IFUNC resolution + # tests: https://sourceware.org/PR25680, bug #712356. + myconf+=( --enable-stack-protector=$(usex ssp strong no) ) + ;; + esac + myconf+=( --enable-stackguard-randomization ) + + # Keep a whitelist of targets supporing 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) ;; + # Blacklist everywhere else + *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;; + esac + + # Enable Intel Control-flow Enforcement Technology on amd64 if requested + case ${CTARGET} in + x86_64-*) 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+=( + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + $(use_enable profile) + $(use_with gd) + --with-headers=$(build_eprefix)$(alt_build_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_enable crypt) + $(use_multiarch || echo --disable-multi-arch) + $(use_enable static-pie) + $(use_enable systemtap) + $(use_enable nscd) + + # locale data is arch-independent + # https://bugs.gentoo.org/753740 + libc_cv_complocaledir='${exec_prefix}/lib/locale' + + # -march= option tricks build system to infer too + # high ISA level: https://sourceware.org/PR27318 + libc_cv_include_x86_isa_level=no + # Explicit override of https://sourceware.org/PR27991 + # exposes a bug in glibc's configure: + # https://sourceware.org/PR27991 + libc_cv_have_x86_lahf_sahf=no + libc_cv_have_x86_movbe=no + + ${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)" + + # We take care of patching our binutils to use both hash styles, + # and many people like to force gnu hash style only, so disable + # this overriding check. #347761 + export libc_cv_hashstyle=no + + local builddir=$(builddir nptl) + mkdir -p "${builddir}" + cd "${builddir}" + set -- "${S}"/configure "${myconf[@]}" + echo "$@" + "$@" || die "failed to configure glibc" + + # ia64 static cross-compilers are a pita in so much that they + # can't produce static ELFs (as the libgcc.a is broken). so + # disable building of the programs for those targets if it + # doesn't work. + # XXX: We could turn this into a compiler test, but ia64 is + # the only one that matters, so this should be fine for now. + if is_crosscompile && [[ ${CTARGET} == ia64* ]] ; then + sed -i '1i+link-static = touch $@' config.make + fi + + # 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 'main(){}' > "${T}"/test.c + 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,ia64,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 + + case ${CTARGET} in + 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 + + local myconf=() + myconf+=( + --disable-sanity-checks + --enable-hacker-mode + --without-cvs + --disable-werror + --enable-bind-now + --build=${CBUILD_OPT:-${CBUILD}} + --host=${CTARGET_OPT:-${CTARGET}} + --with-headers=$(build_eprefix)$(alt_build_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 +} + +do_src_compile() { + emake -C "$(builddir nptl)" +} + +src_compile() { + if just_headers ; then + return + fi + + foreach_abi do_src_compile +} + +glibc_src_test() { + cd "$(builddir nptl)" + + local myxfailparams="" + if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then + 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 + + SANDBOX_ON=0 LD_PRELOAD= emake ${myxfailparams} check +} + +do_src_test() { + local ret=0 + + glibc_src_test + : $(( ret |= $? )) + + return ${ret} +} + +src_test() { + if just_headers ; then + return + fi + + # Give tests more time to complete. + export TIMEOUTFACTOR=5 + + foreach_abi do_src_test || die "tests failed" +} + +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 + + set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --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 libpthreas symbols. stripping breaks it + # See Note [Disable automatic stripping] + dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.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-.a ..." -> "GROUP ( /usr/lib64/glibc-/libm-.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'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 "${WORKDIR}"/extra/locale + dosbin locale-gen + doman *.[0-8] + insinto /etc + doins locale.gen + + keepdir /usr/lib/locale + + cd "${S}" + + # 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}/" + sed -e 's:COMPILED_LOCALES="":COMPILED_LOCALES="1":' -i "${ED}"/usr/sbin/locale-gen || die + 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 . -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 + + # 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 ! use crypt && 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 +} + +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 + use compile-locales || run_locale_gen "${EROOT}/" + fi + + if systemd_is_booted && [[ -z ${ROOT} ]] ; then + # We need to restart systemd when upgrading from < 2.34 + # bug #823756 + systemctl daemon-reexec + fi + + # 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 egrep -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 ce5ad8d3c43d..79318fb53543 100644 --- a/sys-libs/glibc/glibc-9999.ebuild +++ b/sys-libs/glibc/glibc-9999.ebuild @@ -723,6 +723,20 @@ sanity_prechecks() { fi } +upgrade_warning() { + 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." + break + fi + done + fi +} + # # the phases # @@ -733,6 +747,7 @@ pkg_pretend() { # All the checks... einfo "Checking general environment sanity." sanity_prechecks + upgrade_warning } pkg_setup() { @@ -1197,13 +1212,13 @@ run_locale_gen() { root="$2" fi - local locale_list="${root}/etc/locale.gen" + 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" + locale_list="${root%/}/usr/share/i18n/SUPPORTED" fi set -- locale-gen ${inplace} --jobs $(makeopts_jobs) --config "${locale_list}" \ @@ -1540,6 +1555,8 @@ pkg_postinst() { use compile-locales || run_locale_gen "${EROOT}/" 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 diff --git a/sys-libs/glibc/metadata.xml b/sys-libs/glibc/metadata.xml index a87c547c6a07..613e58eff7ee 100644 --- a/sys-libs/glibc/metadata.xml +++ b/sys-libs/glibc/metadata.xml @@ -7,6 +7,7 @@ Enable Intel Control-flow Enforcement Technology (needs binutils 2.29 and gcc 8) + Enable the new clone3 syscall within glibc. Can be disabled to allow compatibility with older Electron applications. build *all* locales in src_install; this is generally meant for stage building only as it ignores /etc/locale.gen file and can be pretty slow build and install libcrypt and crypt.h When USE=hardened, allow fortify/stack violations to dump core (SIGABRT) and not kill self (SIGKILL) diff --git a/sys-libs/kpmcore/Manifest b/sys-libs/kpmcore/Manifest index b29d8ecab217..638804342746 100644 --- a/sys-libs/kpmcore/Manifest +++ b/sys-libs/kpmcore/Manifest @@ -1,5 +1,7 @@ -DIST kpmcore-21.04.3.tar.xz 586264 BLAKE2B b9733f8b941fed98503e78b9c0357e002df92a39c4e70885822f6bb8944cf2c76be1fbba23e4cedf104b46a95832e72d2384c0d78abde312e0b2be40aa4d5745 SHA512 44614e3a0db646b81e56b87daa841b7b7e03ff97699ea393d83b6cc61e6c12efa36ac6b8aba87da612f2973a1d108bdad21ef0d73fc2db98595e5b711e5a0fcf +AUX kpmcore-21.08.3-dont-destroy-zfs-pool.patch 1539 BLAKE2B 926b93a359383686e341a52ac5a74b20b48e9c8e66ff0b61ebaeaf39137ea1f96600951c41b503c903d778767547717b271d7052f688e46964873e8ba3e2c81e SHA512 3da2cadc6ab753edaf502dbca775cd96700096b2b28d9ad63039872e6728d111b855b77d77b9b2481ff439945f094f35e071425584e752c92ddc53ed5b5ae96e +AUX kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch 1017 BLAKE2B 88775e15a0d7ab025645f3423675cc6a141ce343eb91c8f352cc5e32dbb4e02c11763c777fb7eccea653eeec49adaefe407261d3415745d4c561a00999ffbcb6 SHA512 2321b77cb3f80de4ff94dc886f06317bb6f3a09080d71b9e3ffbc87c6091332e6dc4e01b7c33da4724683c860f6df7b547a3c10be38f48310cbd707707e9688d DIST kpmcore-21.08.3.tar.xz 589464 BLAKE2B 188a702b21976c352bea49c3e40e86c6d3f85b398c3dc9577301471c49cbbf8f161a5f6b62acfc020bcd9530aab2739a39023170c7586a1f18e52add4b2d6ecd SHA512 16570fe9b5e4e83d26b1c2e591d797cd23f37a2195ac5f043ee921d038d0e10d63f9d2c72c4d710e10eeb05d81a6df577f9ddb48b762b034154e399560daa7a7 -EBUILD kpmcore-21.04.3.ebuild 738 BLAKE2B 283bdba57268a73410f37b011dc4b1d975bd4319497aed024073950a695c13ceb7b7912966da86ebbd71181a70539b443c81062f4abdf60895cb672e39688d4e SHA512 ec32c6db3717e1c8be8fff04cd566ef313fb5a7c6c6de2dc6d7b3dd18fcd4ebec16ee24d92bd8ff094dba7dc1ccb51f4eb921cc193eb4023096c346e5e955f6b -EBUILD kpmcore-21.08.3.ebuild 739 BLAKE2B b33db70a783bbfabdd5c3863896d8914346cb18e22a806a14418ed6800365d800f348e3b8540c063f33c78ce186240abe18274980ba165021b93824280da4e2e SHA512 8d73b3aca6a8ec64a2e93ee1f59f6ebe6d6bfa857067bcab8eb776795f2deb6789eb686ac55272b225a26c0549aea735fa8249d8c548a89f4882e8af33b17dda +DIST kpmcore-21.11.90.tar.xz 594208 BLAKE2B 972ec50bf2deb8d9c987cc1902d3b744a668010e2f081a27307349ecae0629a2a7e75844450df6b2f2be584d2c47eeeeffcabff8a65b5730dfef0140ddc28f4d SHA512 c975c0221b711976551a1f9457329da5c52dd2ba8e582ef0e92be0f8bb1fe51c92df875044c1f8c6ed55b7e8c008215bf43cb9b98486dbc11b17acd58e15dbdf +EBUILD kpmcore-21.08.3-r1.ebuild 859 BLAKE2B ce8a1d8701008c122a79d78d39f3b744015848db11202201493ced6b342da5cc4cf40fe02f9ba75862c6f2f3f2a473695676d85ea44b588bc212e8e2e2259824 SHA512 dc3bc3f41ac00c73c4403dd4b07cb4be14e63ed30a78d0228391a5b40abdcd51bdbc9faa4c3359e3dff029a5c5ed26aced47f3dd3af9431933c161749b55b8dd +EBUILD kpmcore-21.11.90.ebuild 739 BLAKE2B d61b51f7d4f75c83a52ecbb5aef0db9bb96992ef84783079cd2f58d094a99bda659756b140988bfc27137eb641f14ab1d904a3af2b3ee64fb3efce2207440354 SHA512 fa9f6bc514b18cfa9b737d1c4223d2dbf312d95d5d46dfa10a0b1b5b0530e5441803c8c70e5766ca4d1526b149613fabff2e18e58eb77292fb87975250eeef57 MISC metadata.xml 318 BLAKE2B 922a5e32e706b2976c5f359a14194d268d3f499398576c80ce5fad8c0fcea0fbf048de4480a80a6a1889c88b8b6c14147654a3ab4d5ffbcc258c2290da63f6d1 SHA512 614cb8dda7ad2088e5d6ef39b449bb4be0ac72cd0231c320188d76d1816dce6490c5114bb4798112c4b11d99d30a9e82ff8fcf08ffa8c049589682a5e38208f6 diff --git a/sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch b/sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch new file mode 100644 index 000000000000..83cc15d0f2d5 --- /dev/null +++ b/sys-libs/kpmcore/files/kpmcore-21.08.3-dont-destroy-zfs-pool.patch @@ -0,0 +1,46 @@ +From 282cfdcde179ec44d053b257e13aa715158596bd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= +Date: Sat, 30 Oct 2021 21:13:07 +0100 +Subject: [PATCH] Do not destroy zfs pool when removing zfs partition. + +This can be dangerous, e.g. if partition is part of raid set. +So better be more cautious and in some cases fail to remove partition +than lose data. +--- + src/fs/zfs.cpp | 7 ------- + src/fs/zfs.h | 1 - + 2 files changed, 8 deletions(-) + +diff --git a/src/fs/zfs.cpp b/src/fs/zfs.cpp +index 5d12894..5f4c87d 100644 +--- a/src/fs/zfs.cpp ++++ b/src/fs/zfs.cpp +@@ -77,13 +77,6 @@ qint64 zfs::maxCapacity() const + return Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::EiB); + } + +-bool zfs::remove(Report& report, const QString& deviceNode) const +-{ +- Q_UNUSED(deviceNode) +- ExternalCommand cmd(report, QStringLiteral("zpool"), { QStringLiteral("destroy"), QStringLiteral("-f"), label() }); +- return cmd.run(-1) && cmd.exitCode() == 0; +-} +- + bool zfs::writeLabel(Report& report, const QString& deviceNode, const QString& newLabel) + { + Q_UNUSED(deviceNode) +diff --git a/src/fs/zfs.h b/src/fs/zfs.h +index 6e559de..61026c3 100644 +--- a/src/fs/zfs.h ++++ b/src/fs/zfs.h +@@ -35,7 +35,6 @@ public: + public: + void init() override; + +- bool remove(Report& report, const QString& deviceNode) const override; + bool writeLabel(Report& report, const QString& deviceNode, const QString& newLabel) override; + + CommandSupportType supportGetUsed() const override { +-- +GitLab + diff --git a/sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch b/sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch new file mode 100644 index 000000000000..568db790c7e9 --- /dev/null +++ b/sys-libs/kpmcore/files/kpmcore-21.08.3-fix-seek-error-when-shred-partition.patch @@ -0,0 +1,27 @@ +From e9fc875c5e233401afd12f54ab0472c66ff6fdff Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= +Date: Fri, 12 Nov 2021 01:02:15 +0000 +Subject: [PATCH] Fix seek error when filling device with random data or + zeroes. + +--- + src/util/externalcommandhelper.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/util/externalcommandhelper.cpp b/src/util/externalcommandhelper.cpp +index 6e61aba..0fa400d 100644 +--- a/src/util/externalcommandhelper.cpp ++++ b/src/util/externalcommandhelper.cpp +@@ -80,7 +80,8 @@ bool ExternalCommandHelper::readData(const QString& sourceDevice, QByteArray& bu + return false; + } + +- if (!device.seek(offset)) { ++ // Sequential devices such as /dev/zero or /dev/urandom return false on seek(). ++ if (!device.isSequential() && !device.seek(offset)) { + qCritical() << xi18n("Could not seek position %1 on device %2.", offset, sourceDevice); + return false; + } +-- +GitLab + diff --git a/sys-libs/kpmcore/kpmcore-21.04.3.ebuild b/sys-libs/kpmcore/kpmcore-21.04.3.ebuild deleted file mode 100644 index 89b01d630c8b..000000000000 --- a/sys-libs/kpmcore/kpmcore-21.04.3.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -ECM_NONGUI="true" -KDE_GEAR="true" -KFMIN=5.80.0 -QTMIN=5.15.2 -inherit ecm kde.org - -DESCRIPTION="Library for managing partitions" -HOMEPAGE="https://apps.kde.org/partitionmanager/" - -LICENSE="GPL-3" -SLOT="5/10" -KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" -IUSE="" - -# bug 689468, tests need polkit etc. -RESTRICT+=" test" - -BDEPEND="virtual/pkgconfig" -DEPEND=" - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=sys-apps/util-linux-2.33.2 - sys-auth/polkit-qt -" -RDEPEND="${DEPEND}" diff --git a/sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild b/sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild new file mode 100644 index 000000000000..dbf7c293053e --- /dev/null +++ b/sys-libs/kpmcore/kpmcore-21.08.3-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_NONGUI="true" +KDE_GEAR="true" +KFMIN=5.84.0 +QTMIN=5.15.2 +inherit ecm kde.org + +DESCRIPTION="Library for managing partitions" +HOMEPAGE="https://apps.kde.org/partitionmanager/" + +LICENSE="GPL-3" +SLOT="5/10" +KEYWORDS="amd64 ~arm arm64 ~ppc64 x86" +IUSE="" + +# bug 689468, tests need polkit etc. +RESTRICT="test" + +DEPEND=" + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + >=sys-apps/util-linux-2.33.2 + sys-auth/polkit-qt +" +RDEPEND="${DEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}/${P}-dont-destroy-zfs-pool.patch" + "${FILESDIR}/${P}-fix-seek-error-when-shred-partition.patch" +) diff --git a/sys-libs/kpmcore/kpmcore-21.08.3.ebuild b/sys-libs/kpmcore/kpmcore-21.08.3.ebuild deleted file mode 100644 index ba39ac6ae27c..000000000000 --- a/sys-libs/kpmcore/kpmcore-21.08.3.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_NONGUI="true" -KDE_GEAR="true" -KFMIN=5.84.0 -QTMIN=5.15.2 -inherit ecm kde.org - -DESCRIPTION="Library for managing partitions" -HOMEPAGE="https://apps.kde.org/partitionmanager/" - -LICENSE="GPL-3" -SLOT="5/10" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" -IUSE="" - -# bug 689468, tests need polkit etc. -RESTRICT="test" - -BDEPEND="virtual/pkgconfig" -DEPEND=" - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtwidgets-${QTMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=sys-apps/util-linux-2.33.2 - sys-auth/polkit-qt -" -RDEPEND="${DEPEND}" diff --git a/sys-libs/kpmcore/kpmcore-21.11.90.ebuild b/sys-libs/kpmcore/kpmcore-21.11.90.ebuild new file mode 100644 index 000000000000..9cf2587af684 --- /dev/null +++ b/sys-libs/kpmcore/kpmcore-21.11.90.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_NONGUI="true" +KDE_GEAR="true" +KFMIN=5.88.0 +QTMIN=5.15.2 +inherit ecm kde.org + +DESCRIPTION="Library for managing partitions" +HOMEPAGE="https://apps.kde.org/partitionmanager/" + +LICENSE="GPL-3" +SLOT="5/10" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +IUSE="" + +# bug 689468, tests need polkit etc. +RESTRICT="test" + +BDEPEND="virtual/pkgconfig" +DEPEND=" + >=dev-qt/qtdbus-${QTMIN}:5 + >=dev-qt/qtgui-${QTMIN}:5 + >=dev-qt/qtwidgets-${QTMIN}:5 + >=kde-frameworks/kcoreaddons-${KFMIN}:5 + >=kde-frameworks/ki18n-${KFMIN}:5 + >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 + >=sys-apps/util-linux-2.33.2 + sys-auth/polkit-qt +" +RDEPEND="${DEPEND}" diff --git a/sys-libs/ldb/Manifest b/sys-libs/ldb/Manifest index 2e5ca44fdab7..a0954b2f691e 100644 --- a/sys-libs/ldb/Manifest +++ b/sys-libs/ldb/Manifest @@ -5,7 +5,7 @@ DIST ldb-2.3.2.tar.gz 1718583 BLAKE2B 48b9fb77e414af0f9fffe0cda9cf49971d79ed8b66 DIST ldb-2.4.0.tar.gz 1689484 BLAKE2B 904d74900011ce3f63ad1c24fe88b1a090e835c68829ddfda5e8af2c0ab3674d7a8cd9a62b95c1f38f26578d0704556d3562e46e21a54cbb44a15b9d83676521 SHA512 6c500b723c081488bc0717b6a5b0e8966c5d8a751232f8856281a6fe4d358ae6b5878c8400a82fa666379066105fbb9259b2967313e73efabef0e1386095e2ee DIST ldb-2.4.1.tar.gz 1719769 BLAKE2B 868d3dcc51bd8272d99f2335ed1af2e37506b6a175254f1aca37f758488ba0997e37419a7d8c81def77698128307df97de26d4807ac78c34088f7a623f8d9e68 SHA512 14ab5397d28c369142b2ccf55a2ab4e678a3fe6e018541cfce46241f8226400bc169360bbef254fae4410a6e15024ae986f02298d3d324e3d3a8b88801bf76d7 EBUILD ldb-2.3.1.ebuild 2958 BLAKE2B 4772b687017e2bf2b3caf8b0036e973351b1870999cda1f4d97734de5b7823a4a04881df2cc5dfd971ef74c649e6d208fe89b9a1b0e93b4edbd068d3c7e49cbc SHA512 a79c712823172a0d057066fa9130aa3d1044002cd26984714d60a9df8073cdbc119f2b497adaafee6ec06f42068e9ec287741c78adcaf77b58d58f3f2312390f -EBUILD ldb-2.3.2.ebuild 2965 BLAKE2B a48500904765bee47cb1602681eba2a315975dda608fadbbcd5e92035152a3b001c66520b9dcd40e0984c17b06cd9ec28d641e0311a1a62938f2242d1fb42194 SHA512 954d17af1bb7bcb1129deb25697cefa10876c50d478d7d7b302d1ad14cac95d2d55f7c6d5d6aaecabbda9a43c6ec021fc6f4a258ab170790bf54f0e93640a5a7 +EBUILD ldb-2.3.2.ebuild 2958 BLAKE2B 4772b687017e2bf2b3caf8b0036e973351b1870999cda1f4d97734de5b7823a4a04881df2cc5dfd971ef74c649e6d208fe89b9a1b0e93b4edbd068d3c7e49cbc SHA512 a79c712823172a0d057066fa9130aa3d1044002cd26984714d60a9df8073cdbc119f2b497adaafee6ec06f42068e9ec287741c78adcaf77b58d58f3f2312390f EBUILD ldb-2.4.0-r1.ebuild 2965 BLAKE2B 5293b2e50baafd1d8456a754479490e7c33d901107c5e02626b776067b8b7513f3d5256bc651a31823f7f0dea9ec1f2ec0caa1044c0fb883fbed83555c27c1d2 SHA512 0e07f17782c88dd472d1d7e55df6241c04e535fbe7cb1cc7511dfb98fb2c13bb5b7e9ec0f101a93b50ca20eab5b439139c511ae4a707b630a3fd1adc470ac0c0 EBUILD ldb-2.4.1.ebuild 2966 BLAKE2B 73acc4a2d887f831270afcabd5e8fbd5f864b040b77b1dbe169b1738dfab673641a9447e3cc5c35e69812698b7f980d803b26b4ab021032bbd70ae8027232d5c SHA512 0faa4a0b011ab32d57845ee12da878b13120775474c26321dc4d02fb9aa6f0a4c735d27f88ccce67adc98b2818658383b5263051031c227cdc3f7b4ac0045d40 MISC metadata.xml 526 BLAKE2B 004dbbf0286ced4bcd404eb3caf091f973e67e00b9230d2399f07dcb31d93a423045b353c1813958da151cded2f52996608de1b4294e3cb90cb8da0ac8877f9f SHA512 9f8008b5b57e5f73e79df68d828f1644edb0a154fa97504c3088301aa60e6ba3ac83a2e06d55d14c06cded89196dd635598f1d767ca93398cbf9610af3b49038 diff --git a/sys-libs/ldb/ldb-2.3.2.ebuild b/sys-libs/ldb/ldb-2.3.2.ebuild index 5444904e23cf..b6e69d0d5297 100644 --- a/sys-libs/ldb/ldb-2.3.2.ebuild +++ b/sys-libs/ldb/ldb-2.3.2.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://samba.org/ftp/pub/${PN}/${P}.tar.gz" LICENSE="LGPL-3" SLOT="0/${PV}" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86" IUSE="doc ldap +lmdb python test" REQUIRED_USE="${PYTHON_REQUIRED_USE} diff --git a/sys-libs/libblockdev/Manifest b/sys-libs/libblockdev/Manifest index ee9173c8d115..4838efc018fe 100644 --- a/sys-libs/libblockdev/Manifest +++ b/sys-libs/libblockdev/Manifest @@ -1,6 +1,6 @@ DIST libblockdev-2.25.tar.gz 930238 BLAKE2B ae28c40b5e114826baf4a8ba9012267b297dbc4abee52669cf39c886d2c9989291f41937ec742c7457049a6a30e674f9c89ad6478923f393ae1773db3afcf621 SHA512 628d05f3a257b44208a9d0b5d84ae248fefd415812d9a93d132c03039b09fefc4d6110beb9aa0d3072e3f0c992e642d7867d0241209056538f132f86a748e195 DIST libblockdev-2.26.tar.gz 932129 BLAKE2B 39d95db69de917449e6009fa0160b6288327b2c49b64309d17a1e4e028756d1ce170779ce1c4df926c8796d8a8ed7b9131b5d4b51115a3ea901dacdaa971961a SHA512 ddd4e9c22135bd7dad0bb9bc254ac0c63e3bacc592e7c5a0c846e367da3fc248bf6187f1c81407c3bce599d3b0ceeec9a8a0030ad8e981e245f715b35eaec523 EBUILD libblockdev-2.25.ebuild 2613 BLAKE2B 848c426ed0dc619799901680eb16d5d00d94c36894adf29c9b8338edb711a090d57ebadd94d6dc720217902fda2390f1d45f46c41febe3dee89333b42fd845f8 SHA512 781c02b20d97d28430ba2834998c62aff5721e6b9f36f7e2325285dbaab4eaa7adf5b2511caf6accf48d0935c9bdff455c976c7f0b4a9bebc36c31c71fd919ad -EBUILD libblockdev-2.26.ebuild 2620 BLAKE2B abdec73cdc1336f734acd7658dc0869f3b05c0653c0cb52b976393f5e4056196cc5e98f5b1072812ae0c593d93eddcf905cb814bb592d3c2b025a738dd08174e SHA512 90894691d584bea79837c9b6c216c7104ffbe59c928ba7c3d7f491cae90650870e12489771c2c62403481580f01d3f331760a61b442a0ffcd40c2666555739e2 -EBUILD libblockdev-9999.ebuild 2620 BLAKE2B abdec73cdc1336f734acd7658dc0869f3b05c0653c0cb52b976393f5e4056196cc5e98f5b1072812ae0c593d93eddcf905cb814bb592d3c2b025a738dd08174e SHA512 90894691d584bea79837c9b6c216c7104ffbe59c928ba7c3d7f491cae90650870e12489771c2c62403481580f01d3f331760a61b442a0ffcd40c2666555739e2 +EBUILD libblockdev-2.26.ebuild 2886 BLAKE2B 42732b4d5822bb2c5f512064dc4367d46a310a9a68eb4f3ee693b94c220a87cbbe666a8c850e3623be5db260bb3839f0b3965b8c354733c22221ee54d9b5827b SHA512 01b97554ec2e6870bbb0e3e8cd0636daacbc3b1636c75e18765273656668c572e2cb39ac68b0c228808208dd74ea5d8aeb5c709a0a8e45fcc15c828720a6d8b3 +EBUILD libblockdev-9999.ebuild 2886 BLAKE2B 42732b4d5822bb2c5f512064dc4367d46a310a9a68eb4f3ee693b94c220a87cbbe666a8c850e3623be5db260bb3839f0b3965b8c354733c22221ee54d9b5827b SHA512 01b97554ec2e6870bbb0e3e8cd0636daacbc3b1636c75e18765273656668c572e2cb39ac68b0c228808208dd74ea5d8aeb5c709a0a8e45fcc15c828720a6d8b3 MISC metadata.xml 1080 BLAKE2B e959d07886b20d615c369d2a9dd621f7b4af9cb3a93c425cf9ac1c64179eeb09f9b78d95bfc5b8deabe50e9d6bc6f5364eb4ace76c1b8f7f5aab2f01f83e1c08 SHA512 7f6fe7ab61119dcd024bc8a6fd62d2b60ac59e5eb70244d13e62c8e35279db8690717e67381ae05eb10b4b7e6cdeedb8c5b423ddd7fb8e750a77e2d254e6162d diff --git a/sys-libs/libblockdev/libblockdev-2.26.ebuild b/sys-libs/libblockdev/libblockdev-2.26.ebuild index 7a897bf92547..0682b4b778eb 100644 --- a/sys-libs/libblockdev/libblockdev-2.26.ebuild +++ b/sys-libs/libblockdev/libblockdev-2.26.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_COMPAT=( python3_{7..10} ) inherit autotools python-single-r1 xdg-utils DESCRIPTION="A library for manipulating block devices" @@ -25,7 +25,9 @@ fi LICENSE="LGPL-2+" SLOT="0" IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd test +tools vdo" -RESTRICT="!test? ( test )" +# Tests require root. In a future release, we may be able to run a smaller +# subset with new run_tests.py arguments. +RESTRICT="!test? ( test ) test" RDEPEND=" >=dev-libs/glib-2.42.2 @@ -107,6 +109,13 @@ src_configure() { econf "${myeconfargs[@]}" } +src_test() { + # See http://storaged.org/libblockdev/ch03.html + # The 'check' target just does Pylint. + # ... but it needs root. + emake test +} + src_install() { default find "${ED}" -type f -name "*.la" -delete || die diff --git a/sys-libs/libblockdev/libblockdev-9999.ebuild b/sys-libs/libblockdev/libblockdev-9999.ebuild index 7a897bf92547..0682b4b778eb 100644 --- a/sys-libs/libblockdev/libblockdev-9999.ebuild +++ b/sys-libs/libblockdev/libblockdev-9999.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_COMPAT=( python3_{7..10} ) inherit autotools python-single-r1 xdg-utils DESCRIPTION="A library for manipulating block devices" @@ -25,7 +25,9 @@ fi LICENSE="LGPL-2+" SLOT="0" IUSE="bcache +cryptsetup device-mapper dmraid escrow gtk-doc introspection lvm kbd test +tools vdo" -RESTRICT="!test? ( test )" +# Tests require root. In a future release, we may be able to run a smaller +# subset with new run_tests.py arguments. +RESTRICT="!test? ( test ) test" RDEPEND=" >=dev-libs/glib-2.42.2 @@ -107,6 +109,13 @@ src_configure() { econf "${myeconfargs[@]}" } +src_test() { + # See http://storaged.org/libblockdev/ch03.html + # The 'check' target just does Pylint. + # ... but it needs root. + emake test +} + src_install() { default find "${ED}" -type f -name "*.la" -delete || die diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest index c80ac99e3db4..e4b1322543a5 100644 --- a/sys-libs/libcap/Manifest +++ b/sys-libs/libcap/Manifest @@ -1,16 +1,12 @@ AUX libcap-2.21-include.patch 218 BLAKE2B 536be33e749bc818efb29e3a7a010029025520c4694178aa1d85bf0c48abfca4c77f940b4fbb9bd08464edc31af657960fc41cab71d112ebf3573d1aa1f23148 SHA512 637f5dc2d7ead44a19a57db436ddf7e8afa1b368c72e5520a1ac77633c20b0f9a2af9defdafed1edb7209474798d1bcd236c712a160b5c6920d8864411baefed -AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 988 BLAKE2B 63417032b843ff7cb704c9880cfca4db5083d05d479c71dd12925d729f22a4900c2ae277a20399d58830eaca969842d587a2ae0a646809d6b659a75d13678312 SHA512 ba573ce68858c1370f3d25ad03678a534e6f3052076694d09e795d1febf2f3d76a6a170658b71d9e31105521fd5d22dd72095585a5402286dba424937064b389 -AUX libcap-2.38-no_perl.patch 3049 BLAKE2B 77fdcda75b273fd69695161d48f37fda40375f5f36acdb31e9f9e5b7585e6933733586c6ad96673efb79a6657dbbffd4431612ed723905e9f4d595a9dd8c49c4 SHA512 f3938a8a78407639bfdda4d9c4b4096025f956430f9efbce438689aabbea74915c55c6afbd45a7af4ecc0c437ee72e9aa8335da52d3237c928702e62824e537a -AUX libcap-2.48-build-system-fixes.patch 6274 BLAKE2B 4c81eb50b0a682ca9df03145a53e884589e0961e1b754b522f40d48fca60fe983ae93349d256e62977bf28c99c8c25763d05aa8483aebfc436664756a220d70a SHA512 5b88a5c5ea14d2270ed4018249ceb32b0c91db03ed18a6989cc44250da91887385dc3f37087f716771ddbaa90c7e3d733a64063507465eb354252d9f64b85f80 -AUX libcap-2.57-parallel-make.patch 1103 BLAKE2B f5c1517577d7c34ed8a4b9fcc8527e93a5b6301b3c2bbcfda21f3caa4bd3c22e6d524ea19f93c645f4f93153a71f93c132c97bac90594d4abbb3bb629d175daf SHA512 06e2d5d3bc757760b3bddedaec88373a7aef7d9052003bac46fe491d2e356247f0f1b199dc1ea11cfd368a5c047e8621e8f0cf8a1d82407deeee2ebde60f67a5 +AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 827 BLAKE2B 0ed207a478c50dd9f3590cd36ab4b37e6c41ddb266709b1bf012cf11dec0c2f8e3f0cbb0918f3be72831321aa8953f936a2706f1038c4ce5287c73dc83887e43 SHA512 d0302604e28ed2354214d315a812422355f98cd69d2b3089dd20cef1e243e4ac433ae47026b57a8f6db66572693ce2523af6cb2a8e4715af266442de7dd33e9b +AUX libcap-2.38-no_perl.patch 2856 BLAKE2B f10169dab10a60973a5fbbbe55a14342a7a582dd79a40a0ca33f3cc3cbd5c695ef7cfcce28d6448df8875903f53e265b85c6738d8fe8800bfa1e596748deecbe SHA512 6b3fdebe763b7f7300c4e6c16140f95c490e8fdd9a8d7b6ddf250299a32dcbd78b3a3936cf8bbeb381cd305966b37f381a26965e3ff91944ebdac22e810ec49f +AUX libcap-2.48-build-system-fixes.patch 5591 BLAKE2B 20fce03037ffbd59e3000f7c757d698c412d5709d2a575b5b59197b263097a445684509b2d0b8d77ea0e3e39f7660147e676a12b8e56fc1e2204f8c8a8da1fe7 SHA512 a7e22630b2690b039f9b257dc148868ee9c5b397bab2bd9d6591ab57929be7fb9c75db2a51f08815a618756743299b08537d93eb7507a984eb7bcf086e82ff10 +AUX libcap-2.61-Wformat.patch 723 BLAKE2B c337561e8505a2d6afac05aa9f4b628ac3305c0fe5963d5b8ffd4767e5f8e4e5e01490801b91c2bc6bf676f9b86f95d600def2e3e02ebcee6e9a568e17cbd126 SHA512 810cc4249c0b64f5e7aa5308dfd0d491ace50b02a55b40696b0136a71213e3c600a853a68940411c3cb64a63af4b9c65f839803533ed29e475bfded2b571d51d +AUX libcap-2.61-ignore-RAISE_SETFCAP-install-failures.patch 813 BLAKE2B 0f2fffffab12d4c1cdd939aae5f8cb0e73073feec92af9f4bf44005a545c991d9649307370061a5dcbaa30285761276549da9253c891fc5ea0108f552c04cd8e SHA512 1ed308be3e66bb315584aa0bf7915893b168850fe9ef7c5035214abc6a2eea5371aaa7f14c2f2790e60c4024e7bb0c08eabb1b8ed63eb22113644d95f057b533 +AUX libcap-2.61-no_perl.patch 2469 BLAKE2B d059cb89175b413f5ddabc2c30e4c8f37226cbd589b936ba0cd94f9529d46abffa2679125e9c8e8f939ef3c7c0e68a1b3b16685ce5b386d82176862a05428bf6 SHA512 0706d6b5ee2d93fe58ae53c9850622b21531af682d4774ecaccb04bab11a45393c46a5c9c64ba3d2df1cf2b25152c72145f66951a9a16ac0452700b503f96d86 DIST libcap-2.49.tar.xz 139568 BLAKE2B 5746dcdf2a737e747450bd50a701ee8543277b17b7fbf1304b79f707a088ea74dc6dc79c61ff89b55b718a460a7b0814f960f44d07944a97b832b78f4e14e07f SHA512 2934a2ded1370edeb9603dbf43d8ca23a2eb5d67efc5cec5d4ba96c707a8db2702da8aa9be0cb86c5ff100d37ec96115c7777a7566ad0ab2e0b4a288bbe357d0 -DIST libcap-2.57.tar.xz 167740 BLAKE2B e0c004f3d11caf824d907315e6102707bb34c0ef3e9d430f23c191d711f073267ef6dc44463e2ce8041b8d13658b0c20560f7f3c6387f770ff9e66b81ff9f5d3 SHA512 5c70b3c6a1248ca0de92538614f0d0d516d72f6f25b135c92738c377b67533662e6fd6b0b61cb051ec99f406387d3334fcc7ddb54789626e4c387bcf46ebffbf -DIST libcap-2.58.tar.xz 168520 BLAKE2B 9f160c08e7e8bcb9eb49ab6a7a0805145461613a946ccfebeadc269b26331eadc9f467437b2f5b022e9a545b034ea4fd8fed4d5893e84d9a48dd85318810b974 SHA512 092e45f82113293e1c2db7e51dca7298496c2a3af08eb41107e8c2b4798c25d3c9059e152181dc048b232fe0e59c4c3beaa158da2e5798cd6e1013d85226a9cf -DIST libcap-2.59.tar.xz 168404 BLAKE2B 5db562b389f2c4034b5fa840a14f7fd7ada49470fea8d13828b2c302a7d768831a6215593d21938b8e1d5bd65fa0581628809526fa5f6091ca4eac5e884cd38c SHA512 296c11259e1b4d577b3527ab5e2160be3f94a2bee7d63d1b7feadc603f7e160b72f8c8ede34dec269f5eb7595304ff290693803be778bdbbe088de0e99a33812 -DIST libcap-2.60.tar.xz 170744 BLAKE2B 858b5133a5cb2f3b30dab569a6c9f2097034318c90419fa2372e0b28c891160f5e84b54b302b2d98664df8f7c44df78eb3cb4e47b328cecd4c27e7ab223045ae SHA512 f2ff0d81df7251c05decda706ccc6463ce58df6a3c542fe479328dce5416f77aa5c6a09a1ab05a1d1a3638e6dae5c0e546aaa4824843a570700a8927fb7f73e6 +DIST libcap-2.61.tar.xz 173892 BLAKE2B 50874d3510ab2476aaceb775314d98744736aacd7364a23827756caa160c101e8bc890b7c33b5e19df8b30bb6b3b1c2be323e4b6a963f97e9ee557e86b4f13a0 SHA512 40096bf511d1c45e36f5d7f24e49c709528f3f01fcadd47b6ac40a7e8d5f1705b29b4cc56356b030639f67d0641b9f4e7c19449c3c7f4f77a4070c35745b465c EBUILD libcap-2.49-r1.ebuild 2127 BLAKE2B d77712422b1cb13b04b1a18e573c20151b03098a9effaee4a62b51f4035eac2f3dcc2760f6050d05220dca63edbd978df79299e6be4c885a73ec7a079d1cd558 SHA512 fb01c7f3c68d3fa55221bc0602c21ddb399121f97a0a3c9ef5788bbecb3912cc9f9924bd0339e27acc3103d3a1e110b4029f99c27a7232fd83229075383d898b -EBUILD libcap-2.57.ebuild 2218 BLAKE2B 31b59f3288097cbad2db73d8a08f6c92dd20e8f3db24ca3a70e38d6d8d07294833eb6773db1822b508c11fc7af47f30b422f0c578dd7f4d029e5af278e77cfd9 SHA512 ebf697457e90c80c89f67b0d1087856edb50a5ec7dc2cc45d13ad3e83c060bd71b519f88c02e70d2207d24e85941942663f370fe5ce488364cffa1c7e8b5f7b3 -EBUILD libcap-2.58.ebuild 2136 BLAKE2B 01dfe09c3089be3dc63da9d5c2ab8a1804979bb2a901d229cdd1f4722050307dc020f6745609bebc2e3d331065fa0ab06bcff2ce0b53588276eb3087f8afacb2 SHA512 75de17b063652f6c0788c26d19589c1790d5e713c47558f1e6ff28e4e7adfc6a66683be2fbc8cf6250ebc3e8670e4bcbee8f8f1d692846550b3aeb35334dbac9 -EBUILD libcap-2.59.ebuild 2136 BLAKE2B 01dfe09c3089be3dc63da9d5c2ab8a1804979bb2a901d229cdd1f4722050307dc020f6745609bebc2e3d331065fa0ab06bcff2ce0b53588276eb3087f8afacb2 SHA512 75de17b063652f6c0788c26d19589c1790d5e713c47558f1e6ff28e4e7adfc6a66683be2fbc8cf6250ebc3e8670e4bcbee8f8f1d692846550b3aeb35334dbac9 -EBUILD libcap-2.60.ebuild 2136 BLAKE2B 01dfe09c3089be3dc63da9d5c2ab8a1804979bb2a901d229cdd1f4722050307dc020f6745609bebc2e3d331065fa0ab06bcff2ce0b53588276eb3087f8afacb2 SHA512 75de17b063652f6c0788c26d19589c1790d5e713c47558f1e6ff28e4e7adfc6a66683be2fbc8cf6250ebc3e8670e4bcbee8f8f1d692846550b3aeb35334dbac9 +EBUILD libcap-2.61.ebuild 2198 BLAKE2B 70773f85a588a95c37ca9338fd89d1eb573372971b97383b829d4fd67305b9ffb188462c1213ea996b01a305bfed4b653c31f1d575974dd5b0ef24b2e8d824c0 SHA512 d3ed87ac4b12733546fda55113c5e50409856e7d8373a7f55813852c411509d880d819f01bc5a273e94ef1187b01f3883c68d4366c8ed900cdd7c732668ac4a3 MISC metadata.xml 438 BLAKE2B b5260cc84a3fe6b992bb6218846c738af296522d7a467337c05a6240fd07fc9d6cece779bd9fcf24a11486a70874e17acae8182647d307a31cf43e1c19c3a2d3 SHA512 fa3713dcf6b7bb2ea6d4c2fdefc05e92ae345c76a6187ebcb40dab8c4ce0148650a8301f236efcb8cf53fff25730977a385578dbaa160b800159c6d6abbf37a9 diff --git a/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch b/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch index 0f737361a4d1..e5455cd1ebb6 100644 --- a/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch +++ b/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch @@ -11,12 +11,6 @@ Signed-off-by: Mike Frysinger Forward ported from libcap-2.20 to libcap-2.25 Signed-off-by: Lars Wendler ---- - progs/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/progs/Makefile b/progs/Makefile -index c094a24..4a6db38 100644 --- a/progs/Makefile +++ b/progs/Makefile @@ -27,7 +27,7 @@ install: all @@ -28,6 +22,3 @@ index c094a24..4a6db38 100644 endif clean: --- -2.7.1 - diff --git a/sys-libs/libcap/files/libcap-2.38-no_perl.patch b/sys-libs/libcap/files/libcap-2.38-no_perl.patch index f3e0c468c869..9104484d5770 100644 --- a/sys-libs/libcap/files/libcap-2.38-no_perl.patch +++ b/sys-libs/libcap/files/libcap-2.38-no_perl.patch @@ -14,12 +14,6 @@ Forward ported from libcap-2.26 to libcap-2.28 Forward ported from libcap-2.28 to libcap-2.38 Signed-off-by: Lars Wendler ---- - libcap/Makefile | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/libcap/Makefile b/libcap/Makefile -index 3d6463d..df2526c 100644 --- a/libcap/Makefile +++ b/libcap/Makefile @@ -22,6 +22,8 @@ MAJLIBNAME=$(LIBNAME).$(VERSION) @@ -66,6 +60,3 @@ index 3d6463d..df2526c 100644 $(STACAPLIBNAME): $(CAPOBJS) $(AR) rcs $@ $^ --- -2.27.0 - diff --git a/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch index a672ecedaca6..b3986e19546c 100644 --- a/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch +++ b/sys-libs/libcap/files/libcap-2.48-build-system-fixes.patch @@ -27,17 +27,6 @@ Forward ported from libcap-2.44 to libcap-2.45 Forward ported from libcap-2.45 to libcap-2.48 Signed-off-by: Lars Wendler ---- - Make.Rules | 10 ++++++---- - Makefile | 1 - - libcap/Makefile | 7 ++++--- - pam_cap/Makefile | 8 +++++--- - progs/Makefile | 2 +- - tests/Makefile | 6 ++++-- - 6 files changed, 20 insertions(+), 14 deletions(-) - -diff --git a/Make.Rules b/Make.Rules -index ded9014..07b716f 100644 --- a/Make.Rules +++ b/Make.Rules @@ -52,7 +52,6 @@ GOMAJOR=0 @@ -73,8 +62,6 @@ index ded9014..07b716f 100644 INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi) # SHARED tracks whether or not the SHARED libraries (libcap.so, -diff --git a/Makefile b/Makefile -index 7150b9b..9dff1e9 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,6 @@ ifeq ($(GOLANG),yes) @@ -85,8 +72,6 @@ index 7150b9b..9dff1e9 100644 $(MAKE) -C progs $@ $(MAKE) -C doc $@ $(MAKE) -C kdebug $@ -diff --git a/libcap/Makefile b/libcap/Makefile -index 9563d88..4b42f01 100644 --- a/libcap/Makefile +++ b/libcap/Makefile @@ -25,6 +25,7 @@ MINCAPLIBNAME=$(MAJCAPLIBNAME).$(MINOR) @@ -119,8 +104,6 @@ index 9563d88..4b42f01 100644 cap_test: cap_test.c libcap.h $(CC) $(CFLAGS) $(IPATH) $< -o $@ -diff --git a/pam_cap/Makefile b/pam_cap/Makefile -index 56604fd..2da4674 100644 --- a/pam_cap/Makefile +++ b/pam_cap/Makefile @@ -3,6 +3,8 @@ @@ -152,8 +135,6 @@ index 56604fd..2da4674 100644 test: pam_cap.so make testlink -diff --git a/progs/Makefile b/progs/Makefile -index 1d7fc7a..64dbe86 100644 --- a/progs/Makefile +++ b/progs/Makefile @@ -28,7 +28,7 @@ $(BUILD): %: %.o $(DEPS) @@ -165,8 +146,6 @@ index 1d7fc7a..64dbe86 100644 install: all mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR) -diff --git a/tests/Makefile b/tests/Makefile -index 1e7039d..5874624 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -13,6 +13,8 @@ ifeq ($(PTHREADS),yes) @@ -194,6 +173,3 @@ index 1e7039d..5874624 100644 # privileged run_libcap_launch_test: libcap_launch_test noop ../progs/tcapsh-static --- -2.30.0 - diff --git a/sys-libs/libcap/files/libcap-2.57-parallel-make.patch b/sys-libs/libcap/files/libcap-2.57-parallel-make.patch deleted file mode 100644 index 612044bcfb0d..000000000000 --- a/sys-libs/libcap/files/libcap-2.57-parallel-make.patch +++ /dev/null @@ -1,29 +0,0 @@ -https://git.kernel.org/pub/scm/libs/libcap/libcap.git/patch/?id=893c134ca5cd6fc33ac19d8dbb9d985067d2e66b - -From: "Andrew G. Morgan" -Date: Fri, 10 Sep 2021 16:11:57 -0700 -Subject: Another missing dependency for make -j13 - -One more missing dependency for pam_cap.so building. - -Signed-off-by: Andrew G. Morgan ---- a/pam_cap/Makefile -+++ b/pam_cap/Makefile -@@ -19,7 +19,11 @@ install: all - execable.o: execable.c ../libcap/execable.h ../libcap/loader.txt - $(CC) $(CFLAGS) $(CPPFLAGS) -DLIBCAP_VERSION=\"libcap-$(VERSION).$(MINOR)\" -DSHARED_LOADER=\"$(shell cat ../libcap/loader.txt)\" -c execable.c -o $@ - --pam_cap.so: pam_cap.o execable.o pam_cap_linkopts -+LIBCAP: -+ $(MAKE) -C ../libcap all -+ touch $@ -+ -+pam_cap.so: pam_cap.o execable.o pam_cap_linkopts LIBCAP - cat pam_cap_linkopts | xargs -e $(LD) $(LDFLAGS) -o $@ pam_cap.o execable.o $(LIBCAPLIB) - - # Some distributions force link everything at compile time, and don't -@@ -83,3 +87,4 @@ sudotest: test_pam_cap - - clean: - rm -f *.o *.so testlink lazylink.so test_pam_cap pam_cap_linkopts *~ -+ rm -f LIBCAP diff --git a/sys-libs/libcap/files/libcap-2.61-Wformat.patch b/sys-libs/libcap/files/libcap-2.61-Wformat.patch new file mode 100644 index 000000000000..e0046de58770 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.61-Wformat.patch @@ -0,0 +1,25 @@ +From 9fd3e7ac5870f84c73ac777d9a14480227ad7f00 Mon Sep 17 00:00:00 2001 +From: David Seifert +Date: Sun, 28 Nov 2021 14:14:42 +0100 +Subject: [PATCH] Fix `-Wformat` on 32-bit platforms + +--- + libcap/cap_test.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcap/cap_test.c b/libcap/cap_test.c +index b7fb2c5..39df261 100644 +--- a/libcap/cap_test.c ++++ b/libcap/cap_test.c +@@ -124,7 +124,7 @@ static int test_short_bits(void) + } + if (strlen(tmp) > __CAP_NAME_SIZE) { + printf("cap_to_text buffer size reservation needs fixing (%ld > %d)\n", +- strlen(tmp), __CAP_NAME_SIZE); ++ (long int)strlen(tmp), __CAP_NAME_SIZE); + result = -1; + } + free(tmp); +-- +2.34.1 + diff --git a/sys-libs/libcap/files/libcap-2.61-ignore-RAISE_SETFCAP-install-failures.patch b/sys-libs/libcap/files/libcap-2.61-ignore-RAISE_SETFCAP-install-failures.patch new file mode 100644 index 000000000000..25f853b2a982 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.61-ignore-RAISE_SETFCAP-install-failures.patch @@ -0,0 +1,24 @@ +From 8dfcdcfdcb9c462a05566aa8d3c6eca871f0ddbf Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Wed, 10 Feb 2016 09:52:45 +0100 +Subject: [PATCH] ignore RAISE_SETFCAP install failures + +While the new RAISE_SETFCAP feature is nifty, its failure to run (often +due to the fs not supporting it) shouldn't impair the default install. + +Signed-off-by: Mike Frysinger + +Forward ported from libcap-2.20 to libcap-2.25 + +Signed-off-by: Lars Wendler +--- a/progs/Makefile ++++ b/progs/Makefile +@@ -39,7 +39,7 @@ + install -m 0755 $$p $(FAKEROOT)$(SBINDIR) ; \ + done + ifeq ($(RAISE_SETFCAP),yes) +- $(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap ++ -$(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap + endif + + test: diff --git a/sys-libs/libcap/files/libcap-2.61-no_perl.patch b/sys-libs/libcap/files/libcap-2.61-no_perl.patch new file mode 100644 index 000000000000..3d42a4dc6135 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.61-no_perl.patch @@ -0,0 +1,57 @@ +From 3f76418eaf73896489129c529fac021e4f3a03c0 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Wed, 21 Nov 2018 11:00:54 +0100 +Subject: [PATCH] use awk/sed instead of perl for creating header files + +More systems should have awk/sed than perl. + +Signed-off-by: Mike Frysinger + +Forward ported from libcap-2.22 to libcap-2.26 +and incorporated the gperf-3.1 fix provided by Mike Gilbert + +Forward ported from libcap-2.26 to libcap-2.28 +Forward ported from libcap-2.28 to libcap-2.38 + +Signed-off-by: Lars Wendler +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -20,6 +20,8 @@ + + # Always build libcap sources this way: + CFLAGS += -fPIC ++AWK = awk ++SED = sed + + # The linker magic needed to build a dynamic library as independently + # executable +@@ -82,8 +84,18 @@ + ./_makenames > cap_names.h + + $(GPERF_OUTPUT): cap_names.list.h +- perl -e 'print "struct __cap_token_s { const char *name; int index; };\n%{\nconst struct __cap_token_s *__cap_lookup_name(const char *, size_t);\n%}\n%%\n"; while ($$l = <>) { $$l =~ s/[\{\"]//g; $$l =~ s/\}.*// ; print $$l; }' < $< | gperf --ignore-case --language=ANSI-C --readonly --null-strings --global-table --hash-function-name=__cap_hash_name --lookup-function-name="__cap_lookup_name" -c -t -m20 $(INDENT) > $@ +- sed -e 's/unsigned int len/size_t len/' -i $@ ++ (printf "%b" "struct __cap_token_s { const char *name; int index; };\n%%\n"; \ ++ $(SED) -e 's:["{}]::g' -e 's:,$$::' $<) | \ ++ gperf \ ++ --ignore-case \ ++ --language=ANSI-C \ ++ --includes \ ++ --readonly \ ++ --null-strings \ ++ --global-table \ ++ --hash-function-name=__cap_hash_name \ ++ --lookup-function-name="__cap_lookup_name" \ ++ -c -t -m20 $(INDENT) > $@ + + # Intention is that libcap keeps up with torvalds' tree, as reflected + # by this maintained version of the kernel header. libcap dynamically +@@ -92,7 +104,7 @@ + UAPI_HEADER := $(topdir)/libcap/include/uapi/linux/capability.h + cap_names.list.h: Makefile $(UAPI_HEADER) + @echo "=> making $@ from $(UAPI_HEADER)" +- perl -e 'while ($$l=<>) { if ($$l =~ /^\#define[ \t](CAP[_A-Z]+)[ \t]+([0-9]+)\s+$$/) { $$tok=$$1; $$val=$$2; $$tok =~ tr/A-Z/a-z/; print "{\"$$tok\",$$val},\n"; } }' $(UAPI_HEADER) | fgrep -v 0x > $@ ++ $(AWK) '($$0 ~ /^#define[[:space:]]+CAP[_A-Z]+[[:space:]]+[0-9]+[[:space:]]*$$/) { printf "{\"%s\",%s},\n", tolower($$2), $$3 }' $(UAPI_HEADER) > $@ + + $(STACAPLIBNAME): $(CAPOBJS) + $(AR) rcs $@ $^ diff --git a/sys-libs/libcap/libcap-2.57.ebuild b/sys-libs/libcap/libcap-2.57.ebuild deleted file mode 100644 index ca29aacc3bb7..000000000000 --- a/sys-libs/libcap/libcap-2.57.ebuild +++ /dev/null @@ -1,90 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib-minimal toolchain-funcs pam usr-ldscript - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://sites.google.com/site/fullycapable/" -SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - -# it's available under either of the licenses -LICENSE="|| ( GPL-2 BSD )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="pam static-libs tools" - -# While the build system optionally uses gperf, we don't DEPEND on it because -# the build automatically falls back when it's unavailable. #604802 -PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" -DEPEND="${PDEPEND} - sys-kernel/linux-headers" -BDEPEND="tools? ( dev-lang/go )" - -PATCHES=( - # Backported patch, drop on > 2.57 - "${FILESDIR}"/${PN}-2.57-parallel-make.patch - "${FILESDIR}"/${PN}-2.38-no_perl.patch - "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch -) - -QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS - -src_prepare() { - default - multilib_copy_sources -} - -run_emake() { - local args=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - OBJCOPY="$(tc-getOBJCOPY)" - RANLIB="$(tc-getRANLIB)" - exec_prefix="${EPREFIX}" - lib_prefix="${EPREFIX}/usr" - lib="$(get_libdir)" - prefix="${EPREFIX}/usr" - PAM_CAP="$(usex pam yes no)" - DYNAMIC=yes - GOLANG="$(multilib_native_usex tools yes no)" - ) - emake "${args[@]}" "$@" -} - -src_configure() { - tc-export_build_env BUILD_CC - multilib-minimal_src_configure -} - -multilib_src_compile() { - run_emake -} - -multilib_src_test() { - run_emake test -} - -multilib_src_install() { - # no configure, needs explicit install line #444724#c3 - run_emake DESTDIR="${D}" install - - gen_usr_ldscript -a cap - gen_usr_ldscript -a psx - if ! use static-libs ; then - rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die - fi - - # install pam plugins ourselves - rm -rf "${ED}"/usr/$(get_libdir)/security || die - - if use pam ; then - dopammod pam_cap/pam_cap.so - dopamsecurity '' pam_cap/capability.conf - fi -} - -multilib_src_install_all() { - dodoc CHANGELOG README doc/capability.notes -} diff --git a/sys-libs/libcap/libcap-2.58.ebuild b/sys-libs/libcap/libcap-2.58.ebuild deleted file mode 100644 index ea1e6af49768..000000000000 --- a/sys-libs/libcap/libcap-2.58.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib-minimal toolchain-funcs pam usr-ldscript - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://sites.google.com/site/fullycapable/" -SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - -# it's available under either of the licenses -LICENSE="|| ( GPL-2 BSD )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="pam static-libs tools" - -# While the build system optionally uses gperf, we don't DEPEND on it because -# the build automatically falls back when it's unavailable. #604802 -PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" -DEPEND="${PDEPEND} - sys-kernel/linux-headers" -BDEPEND="tools? ( dev-lang/go )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.38-no_perl.patch - "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch -) - -QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS - -src_prepare() { - default - multilib_copy_sources -} - -run_emake() { - local args=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - OBJCOPY="$(tc-getOBJCOPY)" - RANLIB="$(tc-getRANLIB)" - exec_prefix="${EPREFIX}" - lib_prefix="${EPREFIX}/usr" - lib="$(get_libdir)" - prefix="${EPREFIX}/usr" - PAM_CAP="$(usex pam yes no)" - DYNAMIC=yes - GOLANG="$(multilib_native_usex tools yes no)" - ) - emake "${args[@]}" "$@" -} - -src_configure() { - tc-export_build_env BUILD_CC - multilib-minimal_src_configure -} - -multilib_src_compile() { - run_emake -} - -multilib_src_test() { - run_emake test -} - -multilib_src_install() { - # no configure, needs explicit install line #444724#c3 - run_emake DESTDIR="${D}" install - - gen_usr_ldscript -a cap - gen_usr_ldscript -a psx - if ! use static-libs ; then - rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die - fi - - # install pam plugins ourselves - rm -rf "${ED}"/usr/$(get_libdir)/security || die - - if use pam ; then - dopammod pam_cap/pam_cap.so - dopamsecurity '' pam_cap/capability.conf - fi -} - -multilib_src_install_all() { - dodoc CHANGELOG README doc/capability.notes -} diff --git a/sys-libs/libcap/libcap-2.59.ebuild b/sys-libs/libcap/libcap-2.59.ebuild deleted file mode 100644 index ea1e6af49768..000000000000 --- a/sys-libs/libcap/libcap-2.59.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib-minimal toolchain-funcs pam usr-ldscript - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://sites.google.com/site/fullycapable/" -SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - -# it's available under either of the licenses -LICENSE="|| ( GPL-2 BSD )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="pam static-libs tools" - -# While the build system optionally uses gperf, we don't DEPEND on it because -# the build automatically falls back when it's unavailable. #604802 -PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" -DEPEND="${PDEPEND} - sys-kernel/linux-headers" -BDEPEND="tools? ( dev-lang/go )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.38-no_perl.patch - "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch -) - -QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS - -src_prepare() { - default - multilib_copy_sources -} - -run_emake() { - local args=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - OBJCOPY="$(tc-getOBJCOPY)" - RANLIB="$(tc-getRANLIB)" - exec_prefix="${EPREFIX}" - lib_prefix="${EPREFIX}/usr" - lib="$(get_libdir)" - prefix="${EPREFIX}/usr" - PAM_CAP="$(usex pam yes no)" - DYNAMIC=yes - GOLANG="$(multilib_native_usex tools yes no)" - ) - emake "${args[@]}" "$@" -} - -src_configure() { - tc-export_build_env BUILD_CC - multilib-minimal_src_configure -} - -multilib_src_compile() { - run_emake -} - -multilib_src_test() { - run_emake test -} - -multilib_src_install() { - # no configure, needs explicit install line #444724#c3 - run_emake DESTDIR="${D}" install - - gen_usr_ldscript -a cap - gen_usr_ldscript -a psx - if ! use static-libs ; then - rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die - fi - - # install pam plugins ourselves - rm -rf "${ED}"/usr/$(get_libdir)/security || die - - if use pam ; then - dopammod pam_cap/pam_cap.so - dopamsecurity '' pam_cap/capability.conf - fi -} - -multilib_src_install_all() { - dodoc CHANGELOG README doc/capability.notes -} diff --git a/sys-libs/libcap/libcap-2.60.ebuild b/sys-libs/libcap/libcap-2.60.ebuild deleted file mode 100644 index ea1e6af49768..000000000000 --- a/sys-libs/libcap/libcap-2.60.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib-minimal toolchain-funcs pam usr-ldscript - -DESCRIPTION="POSIX 1003.1e capabilities" -HOMEPAGE="https://sites.google.com/site/fullycapable/" -SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" - -# it's available under either of the licenses -LICENSE="|| ( GPL-2 BSD )" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" -IUSE="pam static-libs tools" - -# While the build system optionally uses gperf, we don't DEPEND on it because -# the build automatically falls back when it's unavailable. #604802 -PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" -DEPEND="${PDEPEND} - sys-kernel/linux-headers" -BDEPEND="tools? ( dev-lang/go )" - -PATCHES=( - "${FILESDIR}"/${PN}-2.38-no_perl.patch - "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch -) - -QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS - -src_prepare() { - default - multilib_copy_sources -} - -run_emake() { - local args=( - AR="$(tc-getAR)" - CC="$(tc-getCC)" - OBJCOPY="$(tc-getOBJCOPY)" - RANLIB="$(tc-getRANLIB)" - exec_prefix="${EPREFIX}" - lib_prefix="${EPREFIX}/usr" - lib="$(get_libdir)" - prefix="${EPREFIX}/usr" - PAM_CAP="$(usex pam yes no)" - DYNAMIC=yes - GOLANG="$(multilib_native_usex tools yes no)" - ) - emake "${args[@]}" "$@" -} - -src_configure() { - tc-export_build_env BUILD_CC - multilib-minimal_src_configure -} - -multilib_src_compile() { - run_emake -} - -multilib_src_test() { - run_emake test -} - -multilib_src_install() { - # no configure, needs explicit install line #444724#c3 - run_emake DESTDIR="${D}" install - - gen_usr_ldscript -a cap - gen_usr_ldscript -a psx - if ! use static-libs ; then - rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die - fi - - # install pam plugins ourselves - rm -rf "${ED}"/usr/$(get_libdir)/security || die - - if use pam ; then - dopammod pam_cap/pam_cap.so - dopamsecurity '' pam_cap/capability.conf - fi -} - -multilib_src_install_all() { - dodoc CHANGELOG README doc/capability.notes -} diff --git a/sys-libs/libcap/libcap-2.61.ebuild b/sys-libs/libcap/libcap-2.61.ebuild new file mode 100644 index 000000000000..28b28501b9d6 --- /dev/null +++ b/sys-libs/libcap/libcap-2.61.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit multilib-minimal toolchain-funcs pam usr-ldscript + +DESCRIPTION="POSIX 1003.1e capabilities" +HOMEPAGE="https://sites.google.com/site/fullycapable/" +SRC_URI="https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${P}.tar.xz" + +# it's available under either of the licenses +LICENSE="|| ( GPL-2 BSD )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="pam static-libs tools" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +PDEPEND="pam? ( sys-libs/pam[${MULTILIB_USEDEP}] )" +DEPEND="${PDEPEND} + sys-kernel/linux-headers" +BDEPEND=" + sys-apps/diffutils + tools? ( dev-lang/go )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.61-no_perl.patch + "${FILESDIR}"/${PN}-2.61-ignore-RAISE_SETFCAP-install-failures.patch + "${FILESDIR}"/${PN}-2.61-Wformat.patch +) + +QA_FLAGS_IGNORED="sbin/captree" # go binaries don't use LDFLAGS + +src_prepare() { + default + multilib_copy_sources +} + +run_emake() { + local args=( + AR="$(tc-getAR)" + CC="$(tc-getCC)" + OBJCOPY="$(tc-getOBJCOPY)" + RANLIB="$(tc-getRANLIB)" + exec_prefix="${EPREFIX}" + lib_prefix="${EPREFIX}/usr" + lib="$(get_libdir)" + prefix="${EPREFIX}/usr" + PAM_CAP="$(usex pam yes no)" + DYNAMIC=yes + GOLANG="$(multilib_native_usex tools yes no)" + ) + emake "${args[@]}" "$@" +} + +src_configure() { + tc-export_build_env BUILD_CC + multilib-minimal_src_configure +} + +multilib_src_compile() { + run_emake +} + +multilib_src_test() { + run_emake test +} + +multilib_src_install() { + # no configure, needs explicit install line #444724#c3 + run_emake DESTDIR="${D}" install + + gen_usr_ldscript -a cap + gen_usr_ldscript -a psx + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{cap,psx}.a || die + fi + + # install pam plugins ourselves + rm -rf "${ED}"/usr/$(get_libdir)/security || die + + if use pam ; then + dopammod pam_cap/pam_cap.so + dopamsecurity '' pam_cap/capability.conf + fi +} + +multilib_src_install_all() { + dodoc CHANGELOG README doc/capability.notes +} diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index 76f35072f6a2..3710550d4fce 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -1,13 +1,16 @@ DIST llvm-gentoo-patchset-11.1.0-1.tar.xz 4032 BLAKE2B e69138a422e315b31a3d9c11faa4ae1ddf1bf9092cee2db0de4d2adef81fd802973488293aab48b764402b51996893b17ca03249ef4620848a576d1f6cdb9698 SHA512 e1c5504dab6c5db9fdf4addfeb12316f22d0258717ba551a9b7b3ba37919491fb6011ac5cca1e793b7509d5c1c186bc6bc4213f7d6155d190612492b216f979b DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 DIST llvm-gentoo-patchset-13.0.0.tar.xz 5012 BLAKE2B 6760c78c086aaf6629143fd920b0a2c68cad9278628fbea8164dfeb59db95984a5b5d6b3505b510c697e8c95bf8d2be782c6b73c01622d52f2da9b07ecff39e0 SHA512 7764d49343b795b6bebae64f646ba27e3e6cc2a20b8a1aee645ce0d8474633c34acfbb73c08546fee415755dd4ea5a98c1d84db5e394cf5f4fc802eb61148ab6 +DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d EBUILD libcxx-11.1.0.ebuild 6661 BLAKE2B 93445de819484ea32a708d2ff616501d715e7fd3a3f4204f143e64c40bc89ebceb8e50c80215c6b54d7c8a3cce00fcecaac099298b41e010bf77655563d30a20 SHA512 ce56f24e7b4aed1405e682af6b3cb48bad6617d5b7e2ecf5b990fae4f7d6badc479a583ef24801e34b0155c12354a7b76a414402f89c31f228315eb92f279a62 EBUILD libcxx-12.0.1.ebuild 6700 BLAKE2B 95f0550dda3dc1b71a25dd2b3bf433f8fa92a12465a19558123dcf4704713af9c394544503eb1eed12251a392bf9ff91e69b994355a7f0fad5c00b5fa6457c26 SHA512 14c72df06a748c4788ad9e2f0e9de703e6ef3b9498f0ed8797ae2c31890754396cb2cdcb13b082b8f9a726929811cd421558a7867c9b1f5658827875fd2cf651 -EBUILD libcxx-13.0.0.9999.ebuild 6703 BLAKE2B e4988bec759918ae49a368a4b7c79918cfc99a6da325b04153f548f64c1d0de9698c9aa0f2c917a9a5fc75c96bac54771c2681f46a79bc698d175e29b7bcf3c4 SHA512 75408fcc8004065d88c5b114487107ed754e7fd7c4474f2b39d8956e704bc6889b7d5ad6159d593731d78c4fd1996468026827b21e2ae929eef6f9f0742466ba -EBUILD libcxx-13.0.0.ebuild 6743 BLAKE2B 967212bda63df969dc62008caa53086ae90e0f8002345a943513cfc33d87ff1c50ad081f0b42a018eb984773f99a37212fc320b91140a006a8a9505cb7ccea6b SHA512 3da33c128ed5fe983b81e5257c039648716082246028e9fbb2b8deef0679b1170eaded4629eb29df74eb1d3b22008a871aa3bdca2b284fc1bb452ab4f65cf507 -EBUILD libcxx-14.0.0.9999.ebuild 6703 BLAKE2B e4988bec759918ae49a368a4b7c79918cfc99a6da325b04153f548f64c1d0de9698c9aa0f2c917a9a5fc75c96bac54771c2681f46a79bc698d175e29b7bcf3c4 SHA512 75408fcc8004065d88c5b114487107ed754e7fd7c4474f2b39d8956e704bc6889b7d5ad6159d593731d78c4fd1996468026827b21e2ae929eef6f9f0742466ba +EBUILD libcxx-13.0.0.ebuild 6779 BLAKE2B d0e34a8ce5899d4cc3193ff38ade25eb1724b4f74eee947f8d1a6966bc2c2769ebfbdeef58759cb732da74d265305778a4023f4e7817afc0d015d79fb533af53 SHA512 107cb690a1f2492c968a402d7a9f6c3a22691c225f4167349a8b2b568f2aeeba8283ffff5956f5357a04d58a8ee7ad6fa2a3082c998a86bc4a05a8ab0489c05a +EBUILD libcxx-13.0.1.9999.ebuild 6739 BLAKE2B d3a64e3bd251a455f39a92cf02aa5ff6c3511b2306f6aaf47cb2605e17f3e2d0b22156fe1c0e5087a404936fabda41e32c8bbefd2e733a65366f8ef65cb214e0 SHA512 dff5e069025b4f9a35ae37a8d87199173c62a729042f35549653330eaea389bc9ff11aa55fb77d2c135829695a808be356b0806c1e2f83d43188e624632a6084 +EBUILD libcxx-13.0.1_rc1.ebuild 6742 BLAKE2B f429f6dd210e2dc12acccd74ec6428fe90a8fbaf50ef8975fd01c00eb5e3e1741785828e96c180e23dca382ed5ed779b8e696b4b13c758daee8fb51c4aab8457 SHA512 1d2541c6d2aca5d603bb9adc835b2a673831ec61a1f7653f676b543da187c7beb9a3bf9f7ec89c00d91bc46237eb9d50798eeb0b4f9386638ed4636f29849c3b +EBUILD libcxx-14.0.0.9999.ebuild 6739 BLAKE2B d3a64e3bd251a455f39a92cf02aa5ff6c3511b2306f6aaf47cb2605e17f3e2d0b22156fe1c0e5087a404936fabda41e32c8bbefd2e733a65366f8ef65cb214e0 SHA512 dff5e069025b4f9a35ae37a8d87199173c62a729042f35549653330eaea389bc9ff11aa55fb77d2c135829695a808be356b0806c1e2f83d43188e624632a6084 MISC metadata.xml 622 BLAKE2B 33ff3f89844694f08cdcdb12d7098ad937041c31aa6f453fbd887bfebec688bc05552f9a39431daccd2b309a58c2fb75b04a6350410f90beb96f32c14ab3ca95 SHA512 8b3d12f8904c336cc35f31352014ffe247dd4475f143921cdd56e5396590ebd64fb700df64f76e83aece127d8ed39af5f45da086fa75fca841c9a5ad767cbed2 diff --git a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild deleted file mode 100644 index 5dca7551438c..000000000000 --- a/sys-libs/libcxx/libcxx-13.0.0.9999.ebuild +++ /dev/null @@ -1,213 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="New implementation of the C++ standard library, targeting C++11" -HOMEPAGE="https://libcxx.llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" -REQUIRED_USE="libunwind? ( libcxxabi )" -RESTRICT="!test? ( test )" - -RDEPEND=" - libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) - !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" -# llvm-6 for new lit options -# clang-3.9.0 installs necessary target symlinks unconditionally -# which removes the need for MULTILIB_USEDEP -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( - >=dev-util/cmake-3.16 - >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -DOCS=( CREDITS.TXT ) - -LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} ) -LLVM_PATCHSET=9999-1 -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - # Darwin Prefix builds do not have llvm installed yet, so rely on - # bootstrap-prefix to set the appropriate path vars to LLVM instead - # of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - use test && python-any-r1_pkg_setup - - if ! use libcxxabi && ! tc-is-gcc ; then - eerror "To build ${PN} against libsupc++, you have to use gcc. Other" - eerror "compilers are not supported. Please set CC=gcc and CXX=g++" - eerror "and try again." - die - fi -} - -test_compiler() { - $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - # note: we need to do this before multilib kicks in since it will - # alter the CHOST - local cxxabi cxxabi_incs - if use libcxxabi; then - cxxabi=libcxxabi - cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" - else - local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" - cxxabi=libsupc++ - cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" - fi - - multilib-minimal_src_configure -} - -multilib_src_configure() { - # we want -lgcc_s for unwinder, and for compiler runtime when using - # gcc, clang with gcc runtime (or any unknown compiler) - local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF - if use libunwind; then - # work-around missing -lunwind upstream - extra_libs+=( -lunwind ) - # if we're using libunwind and clang with compiler-rt, we want - # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi - fi - elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then - # clang-based darwin prefix disables libunwind useflag during - # bootstrap, because libunwind is not in the prefix yet. - # override the default, though, because clang based libcxx - # should never use gcc_s on Darwin. - want_gcc_s=OFF - # compiler_rt is not available in EPREFIX during bootstrap, - # so we cannot link to it yet anyway, so keep the defaults - # of want_compiler_rt=OFF and extra_libs=() - fi - - # bootstrap: cmake is unhappy if compiler can't link to stdlib - local nolib_flags=( -nodefaultlibs -lc ) - if ! test_compiler; then - if test_compiler "${nolib_flags[@]}"; then - local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" - ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXX_ENABLE_SHARED=ON - -DLIBCXX_ENABLE_STATIC=$(usex static-libs) - -DLIBCXX_CXX_ABI=${cxxabi} - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} - # we're using our own mechanism for generating linker scripts - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} - -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} - -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} - -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" - ) - - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON - -DPython3_EXECUTABLE="${PYTHON}" - ) - fi - cmake_src_configure -} - -multilib_src_test() { - local -x LIT_PRESERVES_TMP=1 - cmake_build check-cxx -} - -# Usage: deps -gen_ldscript() { - local output_format - output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') - [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" - - cat <<-END_LDSCRIPT -/* GNU ld script - Include missing dependencies -*/ -${output_format} -GROUP ( $@ ) -END_LDSCRIPT -} - -gen_static_ldscript() { - local libdir=$(get_libdir) - local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") - - # Move it first. - mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die - # Generate libc++.a ldscript for inclusion of its dependencies so that - # clang++ -stdlib=libc++ -static works out of the box. - local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" - # On Linux/glibc it does not link without libpthread or libdl. It is - # fine on FreeBSD. - use elibc_glibc && deps+=" libpthread.a libdl.a" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die -} - -gen_shared_ldscript() { - local libdir=$(get_libdir) - # libsupc++ doesn't have a shared version - local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") - - mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die - local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" - - gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die -} - -multilib_src_install() { - cmake_src_install - if [[ ${CHOST} != *-darwin* ]] ; then - gen_shared_ldscript - use static-libs && gen_static_ldscript - fi -} - -pkg_postinst() { - elog "This package (${PN}) is mainly intended as a replacement for the C++" - elog "standard library when using clang." - elog "To use it, instead of libstdc++, use:" - elog " clang++ -stdlib=libc++" - elog "to compile your C++ programs." -} diff --git a/sys-libs/libcxx/libcxx-13.0.0.ebuild b/sys-libs/libcxx/libcxx-13.0.0.ebuild index a4f36e792e65..851870fd9e95 100644 --- a/sys-libs/libcxx/libcxx-13.0.0.ebuild +++ b/sys-libs/libcxx/libcxx-13.0.0.ebuild @@ -132,6 +132,7 @@ multilib_src_configure() { -DLIBCXX_INCLUDE_TESTS=$(usex test) -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} + -DLIBCXX_TARGET_TRIPLE="${CHOST}" -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" ) diff --git a/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild new file mode 100644 index 000000000000..be5566afa3bf --- /dev/null +++ b/sys-libs/libcxx/libcxx-13.0.1.9999.ebuild @@ -0,0 +1,214 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" +REQUIRED_USE="libunwind? ( libcxxabi )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" +# llvm-6 for new lit options +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( + >=dev-util/cmake-3.16 + >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +DOCS=( CREDITS.TXT ) + +LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # we want -lgcc_s for unwinder, and for compiler runtime when using + # gcc, clang with gcc runtime (or any unknown compiler) + local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF + if use libunwind; then + # work-around missing -lunwind upstream + extra_libs+=( -lunwind ) + # if we're using libunwind and clang with compiler-rt, we want + # to link to compiler-rt instead of -lgcc_s + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_gcc_s=OFF + want_compiler_rt=ON + extra_libs+=( "${compiler_rt}" ) + fi + fi + elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then + # clang-based darwin prefix disables libunwind useflag during + # bootstrap, because libunwind is not in the prefix yet. + # override the default, though, because clang based libcxx + # should never use gcc_s on Darwin. + want_gcc_s=OFF + # compiler_rt is not available in EPREFIX during bootstrap, + # so we cannot link to it yet anyway, so keep the defaults + # of want_compiler_rt=OFF and extra_libs=() + fi + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} + -DLIBCXX_TARGET_TRIPLE="${CHOST}" + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake_src_install + if [[ ${CHOST} != *-darwin* ]] ; then + gen_shared_ldscript + use static-libs && gen_static_ldscript + fi +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild new file mode 100644 index 000000000000..f8fd0e126832 --- /dev/null +++ b/sys-libs/libcxx/libcxx-13.0.1_rc1.ebuild @@ -0,0 +1,214 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="elibc_glibc elibc_musl +libcxxabi +libunwind static-libs test" +REQUIRED_USE="libunwind? ( libcxxabi )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( ~sys-libs/libcxxabi-${PV}[libunwind=,static-libs?,${MULTILIB_USEDEP}] ) + !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )" +# llvm-6 for new lit options +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( + >=dev-util/cmake-3.16 + >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +DOCS=( CREDITS.TXT ) + +LLVM_COMPONENTS=( libcxx{,abi} llvm/{cmake,utils/llvm-lit} ) +LLVM_PATCHSET=${PV/_/-} +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + use test && python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/libcxxabi" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # we want -lgcc_s for unwinder, and for compiler runtime when using + # gcc, clang with gcc runtime (or any unknown compiler) + local extra_libs=() want_gcc_s=ON want_compiler_rt=OFF + if use libunwind; then + # work-around missing -lunwind upstream + extra_libs+=( -lunwind ) + # if we're using libunwind and clang with compiler-rt, we want + # to link to compiler-rt instead of -lgcc_s + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_gcc_s=OFF + want_compiler_rt=ON + extra_libs+=( "${compiler_rt}" ) + fi + fi + elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then + # clang-based darwin prefix disables libunwind useflag during + # bootstrap, because libunwind is not in the prefix yet. + # override the default, though, because clang based libcxx + # should never use gcc_s on Darwin. + want_gcc_s=OFF + # compiler_rt is not available in EPREFIX during bootstrap, + # so we cannot link to it yet anyway, so keep the defaults + # of want_compiler_rt=OFF and extra_libs=() + fi + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=${want_gcc_s} + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} + -DLIBCXX_TARGET_TRIPLE="${CHOST}" + -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" + ) + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI=ON + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxx +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + local libdir=$(get_libdir) + local cxxabi_lib=$(usex libcxxabi "libc++abi.a" "libsupc++.a") + + # Move it first. + mv "${ED}/usr/${libdir}/libc++.a" "${ED}/usr/${libdir}/libc++_static.a" || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps="libc++_static.a ${cxxabi_lib} $(usex libunwind libunwind.a libgcc_eh.a)" + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=" libpthread.a libdl.a" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.a" || die +} + +gen_shared_ldscript() { + local libdir=$(get_libdir) + # libsupc++ doesn't have a shared version + local cxxabi_lib=$(usex libcxxabi "libc++abi.so" "libsupc++.a") + + mv "${ED}/usr/${libdir}/libc++.so" "${ED}/usr/${libdir}/libc++_shared.so" || die + local deps="libc++_shared.so ${cxxabi_lib} $(usex libunwind libunwind.so libgcc_s.so)" + + gen_ldscript "${deps}" > "${ED}/usr/${libdir}/libc++.so" || die +} + +multilib_src_install() { + cmake_src_install + if [[ ${CHOST} != *-darwin* ]] ; then + gen_shared_ldscript + use static-libs && gen_static_ldscript + fi +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild index 5dca7551438c..be5566afa3bf 100644 --- a/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild +++ b/sys-libs/libcxx/libcxx-14.0.0.9999.ebuild @@ -132,6 +132,7 @@ multilib_src_configure() { -DLIBCXX_INCLUDE_TESTS=$(usex test) -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} -DLIBCXX_HAS_ATOMIC_LIB=${want_gcc_s} + -DLIBCXX_TARGET_TRIPLE="${CHOST}" -DCMAKE_SHARED_LINKER_FLAGS="${extra_libs[*]} ${LDFLAGS}" ) diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index d1df0e62afb9..0ccf2e8e2d65 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -1,9 +1,11 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d EBUILD libcxxabi-11.1.0.ebuild 3559 BLAKE2B dc74318b252f772fbc6833e413ee2dd9b682c01ae3bca88a78d2f7854aa374311474f7af9f19453e4b4fbb6db4149e8330db7632faf710a0aeb2e0d741119096 SHA512 18632637cb6fb86a3c003ba66f6a80aece299f50e356870599bb932fa100ba3e51293cee71576cc994a7e2b5f56f3b4ec8b4d3eae6202322d50a9bc0aa922ac3 EBUILD libcxxabi-12.0.1.ebuild 3543 BLAKE2B 23ac0eb64a29631b4bc4e18f3ae3cd03d8491b7a14cd88a35513da666c400e05ef2624c7eb214e0e4a6b297a993ca93ceedc0900bc3cdf850ff71157caa36f34 SHA512 0c7b72e68db1056f927283a361aa6771d77d5e5d8ecfb5f11a5204d82abd2843a9c6beccd7e2f2cbd95d23c4f4a863fb1cca7dd4f18ea66eb2f936af6ff5cb63 -EBUILD libcxxabi-13.0.0.9999.ebuild 3504 BLAKE2B bfa2d35ac94fb452d09b37a9d7d1810a7ecf33ee9509020caecb700d8e5b8e30067429f03db8297cc40ba194b819689e2bc6a46e78b48cc0f943da10536aec8a SHA512 830df6f081e8012d43062e0388bf5bd8975a3896765d38567c0ba52a54435b8be06df3955ed8dda5d6025091fd52eb1b1ec1c774e558ffc5eae5812822bb6725 -EBUILD libcxxabi-13.0.0.ebuild 3541 BLAKE2B c45771cf9395e4f17f9da1611bb72fa18e11e688d6ffd6d77336050db9035a44940968d0f2dfb957d3903a34e5d79ea39f2bc5553a13629767d046c11007b9cf SHA512 6f42b29927928675e96c162ce8ef53ad1672b571d02b37ec8c8b53ac8460f0544d9911765f2103c3d7278763e8f295cdcaa215f2143953bcddd69d68094f6564 -EBUILD libcxxabi-14.0.0.9999.ebuild 3504 BLAKE2B bfa2d35ac94fb452d09b37a9d7d1810a7ecf33ee9509020caecb700d8e5b8e30067429f03db8297cc40ba194b819689e2bc6a46e78b48cc0f943da10536aec8a SHA512 830df6f081e8012d43062e0388bf5bd8975a3896765d38567c0ba52a54435b8be06df3955ed8dda5d6025091fd52eb1b1ec1c774e558ffc5eae5812822bb6725 +EBUILD libcxxabi-13.0.0.ebuild 3616 BLAKE2B 5858918647fd9436167f7f239840ab17e43fc15472ab33462170a89c6d1c8400a2be8d6b7fa88da81affad6ddce974440659da5e89e6ae9e803786edda73b300 SHA512 884061d8d15fce36721a29d3fdb95d4967a7fa43709a1a1c7efe0dd836aa41b65f6fcd5bbeb1646a1829feb0cf40883045265c15c62b94af205974c86a1e24b8 +EBUILD libcxxabi-13.0.1.9999.ebuild 3579 BLAKE2B 79c3f0ca256500269bd03a8bd9645b4ae87b3bf6b08579eefbbcec270ab4113dffc8504c7e65e4fc5d3a8b29112a1a3f28ab5c9d9b88cf490f97d65baf104699 SHA512 516680fdbe4ee3cf381d2f6a8ffcc98bdc69b96f4c2404c55e8199f9daacb9f3ff1c556b06be966a4694c3c8673bab30051cb5e0ac8b314c82addb91c7925d06 +EBUILD libcxxabi-13.0.1_rc1.ebuild 3579 BLAKE2B 79c3f0ca256500269bd03a8bd9645b4ae87b3bf6b08579eefbbcec270ab4113dffc8504c7e65e4fc5d3a8b29112a1a3f28ab5c9d9b88cf490f97d65baf104699 SHA512 516680fdbe4ee3cf381d2f6a8ffcc98bdc69b96f4c2404c55e8199f9daacb9f3ff1c556b06be966a4694c3c8673bab30051cb5e0ac8b314c82addb91c7925d06 +EBUILD libcxxabi-14.0.0.9999.ebuild 3579 BLAKE2B 79c3f0ca256500269bd03a8bd9645b4ae87b3bf6b08579eefbbcec270ab4113dffc8504c7e65e4fc5d3a8b29112a1a3f28ab5c9d9b88cf490f97d65baf104699 SHA512 516680fdbe4ee3cf381d2f6a8ffcc98bdc69b96f4c2404c55e8199f9daacb9f3ff1c556b06be966a4694c3c8673bab30051cb5e0ac8b314c82addb91c7925d06 MISC metadata.xml 351 BLAKE2B 9071a2cbb0eee25e4396bd720f39cd09b011e70fa4a2a87bab63801fa54d307304219a6bddc9b6fb8d0e3b32b07ea09d0419b8ea74af25d601505c3b577c656a SHA512 096b95417b8cdaeed177108ac27e54cd44c4488e8dd3b6ca0aa07f2c70fc59d42343c926d44adf54349e3f9791b9151293383e471df1282678a3c60031184d13 diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild deleted file mode 100644 index d11be625eea5..000000000000 --- a/sys-libs/libcxxabi/libcxxabi-13.0.0.9999.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="Low level support for a standard C++ library" -HOMEPAGE="https://libcxxabi.llvm.org/" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="+libunwind static-libs test elibc_musl" -RESTRICT="!test? ( test )" - -RDEPEND=" - libunwind? ( - || ( - >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] - >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] - ) - )" -# llvm-6 for new lit options -DEPEND="${RDEPEND} - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake ) -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix - # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup. - if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then - llvm_pkg_setup - fi - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # we need a configured libc++ for __config_site - wrap_libcxx cmake_src_configure - wrap_libcxx cmake_build generate-cxx-headers - - # link against compiler-rt instead of libgcc if we are using clang with libunwind - local want_compiler_rt=OFF - if use libunwind && tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_compiler_rt=ON - fi - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} - -DLIBCXXABI_ENABLE_SHARED=ON - -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) - -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) - -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} - - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 - # upstream is omitting standard search path for this - # probably because gcc & clang are bundling their own unwind.h - -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DPython3_EXECUTABLE="${PYTHON}" - ) - fi - cmake_src_configure -} - -wrap_libcxx() { - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - "${@}" -} - -multilib_src_test() { - wrap_libcxx cmake_src_compile - mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake_build check-cxxabi -} - -multilib_src_install_all() { - insinto /usr/include/libcxxabi - doins -r include/. -} diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild index 47e8d7f440b0..628752042eea 100644 --- a/sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-13.0.0.ebuild @@ -75,6 +75,7 @@ multilib_src_configure() { # upstream is omitting standard search path for this # probably because gcc & clang are bundling their own unwind.h -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" ) if use test; then local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) @@ -104,6 +105,7 @@ wrap_libcxx() { -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) -DLIBCXX_HAS_GCC_S_LIB=OFF -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_TARGET_TRIPLE="${CHOST}" ) "${@}" diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.1.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.1.9999.ebuild new file mode 100644 index 000000000000..36ccca5e938a --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-13.0.1.9999.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+libunwind static-libs test elibc_musl" +RESTRICT="!test? ( test )" + +RDEPEND=" + libunwind? ( + || ( + >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] + ) + )" +# llvm-6 for new lit options +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix + # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # we need a configured libc++ for __config_site + wrap_libcxx cmake_src_configure + wrap_libcxx cmake_build generate-cxx-headers + + # link against compiler-rt instead of libgcc if we are using clang with libunwind + local want_compiler_rt=OFF + if use libunwind && tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_compiler_rt=ON + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + + -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +wrap_libcxx() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_TARGET_TRIPLE="${CHOST}" + ) + + "${@}" +} + +multilib_src_test() { + wrap_libcxx cmake_src_compile + mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.1_rc1.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.1_rc1.ebuild new file mode 100644 index 000000000000..36ccca5e938a --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-13.0.1_rc1.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+libunwind static-libs test elibc_musl" +RESTRICT="!test? ( test )" + +RDEPEND=" + libunwind? ( + || ( + >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}] + >=sys-libs/llvm-libunwind-3.9.0-r1[static-libs?,${MULTILIB_USEDEP}] + ) + )" +# llvm-6 for new lit options +DEPEND="${RDEPEND} + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +LLVM_COMPONENTS=( libcxx{abi,} llvm/cmake ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # darwin prefix builds do not have llvm installed yet, so rely on bootstrap-prefix + # to set the appropriate path vars to LLVM instead of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # we need a configured libc++ for __config_site + wrap_libcxx cmake_src_configure + wrap_libcxx cmake_build generate-cxx-headers + + # link against compiler-rt instead of libgcc if we are using clang with libunwind + local want_compiler_rt=OFF + if use libunwind && tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_compiler_rt=ON + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib} + -DLIBCXXABI_ENABLE_SHARED=ON + -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) + -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind) + -DLIBCXXABI_INCLUDE_TESTS=$(usex test) + -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + + -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 + # upstream is omitting standard search path for this + # probably because gcc & clang are bundling their own unwind.h + -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +wrap_libcxx() { + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${S}"/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_TARGET_TRIPLE="${CHOST}" + ) + + "${@}" +} + +multilib_src_test() { + wrap_libcxx cmake_src_compile + mv "${BUILD_DIR}"/libcxx/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxxabi +} + +multilib_src_install_all() { + insinto /usr/include/libcxxabi + doins -r include/. +} diff --git a/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild index d11be625eea5..36ccca5e938a 100644 --- a/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-14.0.0.9999.ebuild @@ -75,6 +75,7 @@ multilib_src_configure() { # upstream is omitting standard search path for this # probably because gcc & clang are bundling their own unwind.h -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include + -DLIBCXXABI_TARGET_TRIPLE="${CHOST}" ) if use test; then local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) @@ -104,6 +105,7 @@ wrap_libcxx() { -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) -DLIBCXX_HAS_GCC_S_LIB=OFF -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_TARGET_TRIPLE="${CHOST}" ) "${@}" diff --git a/sys-libs/libfaketime/Manifest b/sys-libs/libfaketime/Manifest index 2f2a14a3e683..2e43c0b382f9 100644 --- a/sys-libs/libfaketime/Manifest +++ b/sys-libs/libfaketime/Manifest @@ -1,5 +1,6 @@ +AUX libfaketime-0.9.8-Treat-unknown-clock_ids-like-CLOCK_REALTIME.patch 1166 BLAKE2B b7bcbeecc9e36f7b364d14b82cb32da033e98bb84f6212977f09fd43a79a78bd3b2784e02a40375c2e45423ee00d03cbeb3c2904d140af52ebc6fe63d78f80cb SHA512 d9d7b41cea6aba3f0083237641dbaa685072f428f97198b8925f4f56dda1f2d1f7730b5e4b7c3c7984c0db3406c35c8aefe666ce51f6eaaca05b2deae7b391b8 DIST libfaketime-0.9.6.tar.gz 53540 BLAKE2B 5559e683d9d513fe60fe4b7f22a2ee794bccd8b1fe2a58735876fb9a0f05e1157d20485cfc2f0bcefa0b1f642f3b981de00471a36998867b0024dd8ac5a77466 SHA512 22cd796d4c6f7b327c664895df5b93b72a7243d886bf5241f932cc23fd54049c5fb6a8351078d036d78d12cb6f530ff66b98ef75df6eba5339ebfef1e7561225 DIST libfaketime-0.9.9.tar.gz 78610 BLAKE2B 863e3aaf5f26a7b4d6104bdf5dd8fc0ac70547770d01cad302e476a7eeee63f0900ddc825aa75f6db7be08155d7ceb05f3b730fffb9e4928147fbdc097ee0df8 SHA512 b1aecf456753ccf771f0f80c92d57ffcd2c8349dde93a575862b4570a06812d4bce104f2efbcfd627a85a80fed99dbc37cb156dda0389892bfb4e71df816191f -EBUILD libfaketime-0.9.6-r3.ebuild 1412 BLAKE2B bc345e1c106a7d8965bf8925082672760927259f7b03ae1d6695ee0afdce025711d383c5dc1e742276573b043826609cdad9b738daf7af23904219339fe1d5da SHA512 4ac78c91052aca7ea4197efd078c3fb5012f973601669b310f5643e96d86c00c8632755873598980c4ccf112882669ab7b815fe9bf6d5d578ac9de6b4697ea10 +EBUILD libfaketime-0.9.6-r4.ebuild 1501 BLAKE2B a7dff7e211244bf9d6d131572998ca57f57a0450dc4b5c260afaeef26475c44fb669b1a071c3649aa66761799040ec3b06d53817f1a651ae8ef15c8032748208 SHA512 623b40aec7945a7b6033b7544dbd333dcc4e8ec555f20130df69baf237937a80d5268771a0d014582b1499acf53e4ce9d58400a473bc99fb7a2f3e7a9d4cb149 EBUILD libfaketime-0.9.9.ebuild 1782 BLAKE2B ec3bea54e1113a5f411ae8e375f1ee470a1ac5958a091d75588d6e6edbed0fb1179fb1fc40861f5555189928d4545d41d9a015e0a3b4e7cb84b63d5e6cfc423e SHA512 718bd709994ad62613ad6f96bbd1496fb21ee284b99430b01cc0c5c2df172286a4debb7212b9972329554143ce7fbad8c405e6747ee50858e33200918557cd5b MISC metadata.xml 845 BLAKE2B 9de860fb57dbce9f967b490013f86f697426b4d134d515649922512b0a0446753e4417520023913dd2379779125b20eb2854f06e02a764eee3c4c7a6322f5215 SHA512 ebba6366729d3a317664310ea7203d9ba16071c23cfbb8b3b9f1dbfaffc41268a498646e9c79d2086e7da52fdfa97fdd5cdecc3c472b7ca147aecc4873546205 diff --git a/sys-libs/libfaketime/files/libfaketime-0.9.8-Treat-unknown-clock_ids-like-CLOCK_REALTIME.patch b/sys-libs/libfaketime/files/libfaketime-0.9.8-Treat-unknown-clock_ids-like-CLOCK_REALTIME.patch new file mode 100644 index 000000000000..13d7698ec1bd --- /dev/null +++ b/sys-libs/libfaketime/files/libfaketime-0.9.8-Treat-unknown-clock_ids-like-CLOCK_REALTIME.patch @@ -0,0 +1,35 @@ +From bb635e4367adcac2c1517a698799a60a2bf86e83 Mon Sep 17 00:00:00 2001 +From: Wolfgang Hommel +Date: Thu, 30 Nov 2017 20:28:06 +0100 +Subject: [PATCH] Treat unknown clock_ids like CLOCK_REALTIME (experimental) + +--- + src/libfaketime.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/libfaketime.c b/src/libfaketime.c +index b59298c..b36c75b 100644 +--- a/src/libfaketime.c ++++ b/src/libfaketime.c +@@ -2020,8 +2020,8 @@ int fake_clock_gettime(clockid_t clk_id, struct timespec *tp) + break; + #endif + default: +- printf("Invalid clock_id for clock_gettime: %d", clk_id); +- exit(EXIT_FAILURE); ++ timespecsub(tp, &ftpl_starttime.real, &tmp_ts); ++ break; + } + + if (limited_faking) +@@ -2171,8 +2171,8 @@ int fake_clock_gettime(clockid_t clk_id, struct timespec *tp) + break; + #endif + default: +- printf("Invalid clock_id for clock_gettime: %d", clk_id); +- exit(EXIT_FAILURE); ++ timespecsub(tp, &ftpl_starttime.real, &tdiff); ++ break; + } // end of switch (clk_id) + if (user_rate_set) + { diff --git a/sys-libs/libfaketime/libfaketime-0.9.6-r3.ebuild b/sys-libs/libfaketime/libfaketime-0.9.6-r3.ebuild deleted file mode 100644 index b115280410ee..000000000000 --- a/sys-libs/libfaketime/libfaketime-0.9.6-r3.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="7" - -inherit flag-o-matic toolchain-funcs multilib-minimal - -DESCRIPTION="Report faked system time to programs" -HOMEPAGE="http://www.code-wizards.com/projects/libfaketime/ https://github.com/wolfcw/libfaketime" -SRC_URI="https://github.com/wolfcw/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~ppc ~ppc64 -riscv sparc x86" - -src_prepare() { - default - - sed -i 's/-Werror //' "${S}/src/Makefile" || die - - sed -i 's/-Werror //' "${S}/test/Makefile" || die - - # Bug #617624 (GCC-6 compatibility) - sed -i 's/-Wno-nonnull-compare //' "${S}/src/Makefile" || die - - multilib_copy_sources -} - -multilib_src_compile() { - local target=all - - pushd src > /dev/null || die - multilib_is_native_abi || target="${PN}.so.1 ${PN}MT.so.1" - # ${target} is intentionally not quoted - emake CC="$(tc-getCC)" LIBDIRNAME="/$(get_libdir)" PREFIX=/usr ${target} - popd > /dev/null || die -} - -multilib_src_test() { - multilib_is_native_abi && emake CC="$(tc-getCC)" test -} - -multilib_src_install() { - multilib_is_native_abi && dobin src/faketime - exeinto /usr/$(get_libdir) - doexe src/${PN}*.so.* - dosym ${PN}.so.1 /usr/$(get_libdir)/${PN}.so - dosym ${PN}MT.so.1 /usr/$(get_libdir)/${PN}MT.so -} - -multilib_src_install_all() { - doman man/faketime.1 - dodoc NEWS README TODO -} diff --git a/sys-libs/libfaketime/libfaketime-0.9.6-r4.ebuild b/sys-libs/libfaketime/libfaketime-0.9.6-r4.ebuild new file mode 100644 index 000000000000..0d1e323682b4 --- /dev/null +++ b/sys-libs/libfaketime/libfaketime-0.9.6-r4.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit flag-o-matic toolchain-funcs multilib-minimal + +DESCRIPTION="Report faked system time to programs" +HOMEPAGE="http://www.code-wizards.com/projects/libfaketime/ https://github.com/wolfcw/libfaketime" +SRC_URI="https://github.com/wolfcw/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~ppc ~ppc64 -riscv sparc x86" + +PATCHES=( "${FILESDIR}"/${PN}-0.9.8-Treat-unknown-clock_ids-like-CLOCK_REALTIME.patch ) + +src_prepare() { + default + + sed -i 's/-Werror //' "${S}/src/Makefile" || die + + sed -i 's/-Werror //' "${S}/test/Makefile" || die + + # Bug #617624 (GCC-6 compatibility) + sed -i 's/-Wno-nonnull-compare //' "${S}/src/Makefile" || die + + multilib_copy_sources +} + +multilib_src_compile() { + local target=all + + pushd src > /dev/null || die + multilib_is_native_abi || target="${PN}.so.1 ${PN}MT.so.1" + # ${target} is intentionally not quoted + emake CC="$(tc-getCC)" LIBDIRNAME="/$(get_libdir)" PREFIX=/usr ${target} + popd > /dev/null || die +} + +multilib_src_test() { + multilib_is_native_abi && emake CC="$(tc-getCC)" test +} + +multilib_src_install() { + multilib_is_native_abi && dobin src/faketime + exeinto /usr/$(get_libdir) + doexe src/${PN}*.so.* + dosym ${PN}.so.1 /usr/$(get_libdir)/${PN}.so + dosym ${PN}MT.so.1 /usr/$(get_libdir)/${PN}MT.so +} + +multilib_src_install_all() { + doman man/faketime.1 + dodoc NEWS README TODO +} diff --git a/sys-libs/libhugetlbfs/Manifest b/sys-libs/libhugetlbfs/Manifest index 8ae94cbdaf41..16046e398d08 100644 --- a/sys-libs/libhugetlbfs/Manifest +++ b/sys-libs/libhugetlbfs/Manifest @@ -1,5 +1,6 @@ +AUX libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch 10055 BLAKE2B 38b3c28321bdaa5271d8655823ea00952ca8571c84bfe9ec980a35ad7ad77e382ac9235c058597628cc574e03ce0dadbe19bab298c30763e03508aff01275e4b SHA512 abfcfdd87cf7c17663ba466c46182ac04aac454bcedc55a5032bd142419388daa8b0ca0a885f3aedfc830bbd2c58dfd15c4a3499a6fb26df679d8cbe87bf2143 AUX libhugetlbfs-2.23-uncompressed-man-pages.patch 1515 BLAKE2B b43415a3059f1071f0fc04ec834cd51d87a8bd93f2df6b428a33296b1b55745f23861415a463d5899b12699c5f4a3e5bdd837a8ec2894d1fc89039924330d77d SHA512 ea3ef19a688866676315af59422233681a41338fd049cfa50ed91f660f0baf1950ba056b9fcd540e6694b8ec348c0d1fbb3aa6b8c1840e22a77634e26555c9bc AUX libhugetlbfs-2.6-fixup-testsuite.patch 1231 BLAKE2B e49ac448b4ac17a6ce9c32543e3ad7391bc8525e147d7a5100ef7ae15e4b0cf48b58ff1fe62d9a0fa61f142b7b8366228974c6628999edaa61d96114371bc09d SHA512 af9ee541ac4a30260e17baab1616cee13fdcc679ae3fdceed29ca6282c12a6b60d24b04bb61e3aa5f42092e017eb3bae59a56fd2b03954e40803f9f6f2cc4f80 DIST libhugetlbfs-2.23.tar.gz 175459 BLAKE2B f469ff9a65364e9f0e04c11c8010c958855ebd4d50e1dd719576cda7c280586623404304be64a794907a5fb1d97bd9c0620a91d7a2492577e04fa40ff432b4c7 SHA512 fc9a7d59bcda9d3ca9c9e43a3a348f989c9cbdbbb77f21a43a06e71eacd05bbe5a7b2b51e20ae9ea00da9f1c4d1130da529bbfb702e8c9d11cab6efadd3dc168 -EBUILD libhugetlbfs-2.23.ebuild 4218 BLAKE2B bd527e5c16ef3f0f9a4a4a7743755d1dc1aac2a6caad747182347600d04ff26ff72b2ea7f4a874ac1e34bfddd38845e69186ae864c7408d759320ca1ff777fe3 SHA512 60facbec943112d3eedfbc66133ee26a9300271ba4e9bca14e7e2f0c01145eedba2d6dbfb9e79183f827e9707be9ae5e3ddd087bdb415fd34aaaed3939e57f63 +EBUILD libhugetlbfs-2.23.ebuild 4284 BLAKE2B 544569161a2110825e2919e7556947f8730531db4a5dc23bfc887fe5066226e9f9a54ce9efb44eb6537fc68080a76e5aba20018e5b4df8825735a4149f94d0b3 SHA512 98d912b5ff58d48f3e4bdbb64e5e33d4eb5700d52227d3f314179a2b9552ce605c32a4a7b24f8c212d94c8b75cd8bef7527daa85a4b7b09579c4d53e496c3655 MISC metadata.xml 397 BLAKE2B 7b521a2822a494f6a2b7a85420a38edd396ca0e3856faeb682378c48eda3d1932788af7ac7bbb4e07cae37b2119afd386f75c5dc0ab1f69c8e4630be16cc549e SHA512 96065769a7893c1e05bc3ab9396eb01a60a293dac9b090419087a9bb5a152b2f291a950e8217ffcb7bed34262a5369119da469e22cc3171fdc0ad2b87ae6d698 diff --git a/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch new file mode 100644 index 000000000000..68e121e240ab --- /dev/null +++ b/sys-libs/libhugetlbfs/files/libhugetlbfs-2.23-allow-building-against-glibc-2.34.patch @@ -0,0 +1,258 @@ +From 959d74fd0fbbff310943096e15024a84e8f5cba4 Mon Sep 17 00:00:00 2001 +From: Matheus Castanho +Date: Thu, 12 Aug 2021 16:38:46 -0300 +Subject: [PATCH] Disable hugepage-backed malloc if __morecore is not available + +Starting with glibc 2.32, __morecore hook has been marked as deprecated, and was +completely removed on glibc 2.34, which causes an undefined symbol error during +the build of libhugetlbfs. + +Greater changes are needed in order to keep providing the same functionality +with future versions of glibc (see issue #52). Meanwhile, we can disable +hugepage-backed malloc setup if __morecore is not available so users can at +least keep using the other features provided by the library. Related tests are +also conditionally disabled, and will show as SKIPPED if __morecore is not +available. + +Tested on powerpc64le and x86_64 with glibc 2.34 and olders. + +Signed-off-by: Matheus Castanho +--- + Makefile | 6 +++++ + morecore.c | 8 ++++++ + tests/run_tests.py | 67 +++++++++++++++++++++++++++++++++++++++------- + 3 files changed, 71 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index 8b73523..35e53e7 100644 +--- a/Makefile ++++ b/Makefile +@@ -192,6 +192,12 @@ endif + endif + endif + ++# glibc 2.34 removed __morecore, so it may not be available with recent versions ++HAS_MORECORE := $(shell /bin/echo -e '\#include \nvoid * morecore_exists() { return &__morecore; }' | $(CC) -c -xc -o /dev/null - &> /dev/null && /bin/echo yes || /bin/echo no) ++ifeq ($(HAS_MORECORE),yes) ++CFLAGS += -DHAS_MORECORE ++endif ++ + HEADERDIR = $(PREFIX)/include + LIBDIR32 = $(PREFIX)/$(LIB32) + LIBDIR64 = $(PREFIX)/$(LIB64) +diff --git a/morecore.c b/morecore.c +index 6563bbd..405c566 100644 +--- a/morecore.c ++++ b/morecore.c +@@ -33,6 +33,13 @@ + + #include "libhugetlbfs_internal.h" + ++#ifndef HAS_MORECORE ++void hugetlbfs_setup_morecore(void) ++{ ++ INFO("Not setting up morecore because it's not available (see issue #52).\n"); ++} ++#else ++ + static int heap_fd; + + static void *heapbase; +@@ -381,3 +388,4 @@ void hugetlbfs_setup_morecore(void) + * to mmap() if we run out of hugepages. */ + mallopt(M_MMAP_MAX, 0); + } ++#endif /* HAS_MORECORE */ +diff --git a/tests/run_tests.py b/tests/run_tests.py +index 018264d..871d04d 100755 +--- a/tests/run_tests.py ++++ b/tests/run_tests.py +@@ -60,7 +60,7 @@ def snapshot_pool_state(): + l.append((d, tuple(substate))) + return tuple(l) + +-def run_test_prog(bits, pagesize, cmd, **env): ++def run_test_prog(bits, pagesize, cmd, output='stdout', **env): + if paranoid_pool_check: + beforepool = snapshot_pool_state() + print("Pool state: %s" % str(beforepool)) +@@ -73,15 +73,17 @@ def run_test_prog(bits, pagesize, cmd, **env): + % (bits, bits, local_env.get("LD_LIBRARY_PATH", "")) + local_env["HUGETLB_DEFAULT_PAGE_SIZE"] = repr(pagesize) + ++ popen_args = {'env' : local_env, output : subprocess.PIPE} ++ + try: +- p = subprocess.Popen(cmd, env=local_env, stdout=subprocess.PIPE) ++ p = subprocess.Popen(cmd, **popen_args) + rc = p.wait() + except KeyboardInterrupt: + # Abort and mark this a strange test result + return (None, "") + except OSError as e: + return (-e.errno, "") +- out = p.stdout.read().decode().strip() ++ out = getattr(p, output).read().decode().strip() + + if paranoid_pool_check: + afterpool = snapshot_pool_state() +@@ -309,6 +311,33 @@ def check_linkhuge_tests(): + okbits.add(bits) + return okbits + ++def check_morecore_disabled(): ++ """ ++ Check if support for morecore is available. ++ ++ Newer glibc versions (>= 2.34) removed the __morecore malloc hook, so tests ++ relying on that functionality will not work as expected, and should be ++ disabled. ++ """ ++ global morecore_disabled, wordsizes, pagesizes ++ ++ # Quick and dirty way to get a word and page size. Which one doesn't really ++ # matter in this case. ++ for wsz in wordsizes: ++ b = wsz ++ break ++ for psz in pagesizes: ++ p = psz ++ break ++ ++ # Run an arbitrary program and check stderr for the "morecore disabled" ++ # message ++ (rc, out) = run_test_prog(b, p, "gethugepagesize", output='stderr', ++ HUGETLB_MORECORE="yes", ++ HUGETLB_VERBOSE="3") ++ ++ morecore_disabled = "Not setting up morecore" in out ++ + def print_cmd(pagesize, bits, cmd, env): + if env: + print(' '.join(['%s=%s' % (k, v) for k, v in env.items()]), end=" ") +@@ -357,14 +386,17 @@ def skip_test(pagesize, bits, cmd, **env): + print_cmd(pagesize, bits, cmd, env) + print("SKIPPED") + +-def do_test(cmd, bits=None, **env): ++def do_test(cmd, bits=None, skip=False, **env): + """ + Run a test case, testing each page size and each indicated word size. + """ + if bits == None: bits = wordsizes + for p in pagesizes: + for b in (set(bits) & wordsizes_by_pagesize[p]): +- run_test(p, b, cmd, **env) ++ if skip: ++ skip_test(p, b, cmd, **env) ++ else: ++ run_test(p, b, cmd, **env) + + def do_test_with_rlimit(rtype, limit, cmd, bits=None, **env): + """ +@@ -375,7 +407,7 @@ def do_test_with_rlimit(rtype, limit, cmd, bits=None, **env): + do_test(cmd, bits, **env) + resource.setrlimit(rtype, oldlimit) + +-def do_test_with_pagesize(pagesize, cmd, bits=None, **env): ++def do_test_with_pagesize(pagesize, cmd, bits=None, skip=False, **env): + """ + Run a test case, testing with a specified huge page size and + each indicated word size. +@@ -383,7 +415,10 @@ def do_test_with_pagesize(pagesize, cmd, bits=None, **env): + if bits == None: + bits = wordsizes + for b in (set(bits) & wordsizes_by_pagesize[pagesize]): +- run_test(pagesize, b, cmd, **env) ++ if skip: ++ skip_test(pagesize, b, cmd, **env) ++ else: ++ run_test(pagesize, b, cmd, **env) + + def do_elflink_test(cmd, **env): + """ +@@ -533,7 +568,7 @@ def functional_tests(): + """ + Run the set of functional tests. + """ +- global linkhuge_wordsizes ++ global linkhuge_wordsizes, morecore_disabled + + # Kernel background tests not requiring hugepage support + do_test("zero_filesize_segment") +@@ -598,19 +633,24 @@ def functional_tests(): + do_test("fork-cow") + do_test("direct") + do_test_with_pagesize(system_default_hpage_size, "malloc") ++ + do_test_with_pagesize(system_default_hpage_size, "malloc", ++ skip=morecore_disabled, + LD_PRELOAD="libhugetlbfs.so", + HUGETLB_MORECORE="yes") + do_test_with_pagesize(system_default_hpage_size, "malloc", ++ skip=morecore_disabled, + LD_PRELOAD="libhugetlbfs.so", + HUGETLB_MORECORE="yes", + HUGETLB_RESTRICT_EXE="unknown:none") + do_test_with_pagesize(system_default_hpage_size, "malloc", ++ skip=morecore_disabled, + LD_PRELOAD="libhugetlbfs.so", + HUGETLB_MORECORE="yes", + HUGETLB_RESTRICT_EXE="unknown:malloc") + do_test_with_pagesize(system_default_hpage_size, "malloc_manysmall") + do_test_with_pagesize(system_default_hpage_size, "malloc_manysmall", ++ skip=morecore_disabled, + LD_PRELOAD="libhugetlbfs.so", + HUGETLB_MORECORE="yes") + +@@ -630,26 +670,32 @@ def functional_tests(): + do_test_with_pagesize(system_default_hpage_size, "heapshrink", + GLIBC_TUNABLES="glibc.malloc.tcache_count=0", + LD_PRELOAD="libheapshrink.so") ++ + do_test_with_pagesize(system_default_hpage_size, "heapshrink", ++ skip=morecore_disabled, + GLIBC_TUNABLES="glibc.malloc.tcache_count=0", + LD_PRELOAD="libhugetlbfs.so", + HUGETLB_MORECORE="yes") + do_test_with_pagesize(system_default_hpage_size, "heapshrink", ++ skip=morecore_disabled, + GLIBC_TUNABLES="glibc.malloc.tcache_count=0", + LD_PRELOAD="libhugetlbfs.so libheapshrink.so", + HUGETLB_MORECORE="yes") + do_test_with_pagesize(system_default_hpage_size, "heapshrink", ++ skip=morecore_disabled, + GLIBC_TUNABLES="glibc.malloc.tcache_count=0", + LD_PRELOAD="libheapshrink.so", + HUGETLB_MORECORE="yes", + HUGETLB_MORECORE_SHRINK="yes") + do_test_with_pagesize(system_default_hpage_size, "heapshrink", ++ skip=morecore_disabled, + GLIBC_TUNABLES="glibc.malloc.tcache_count=0", + LD_PRELOAD="libhugetlbfs.so libheapshrink.so", + HUGETLB_MORECORE="yes", + HUGETLB_MORECORE_SHRINK="yes") + +- do_test("heap-overflow", HUGETLB_VERBOSE="1", HUGETLB_MORECORE="yes") ++ do_test("heap-overflow", skip=morecore_disabled, HUGETLB_VERBOSE="1", ++ HUGETLB_MORECORE="yes") + + # Run the remapping tests' up-front checks + linkhuge_wordsizes = check_linkhuge_tests() +@@ -747,7 +793,7 @@ def print_help(): + + def main(): + global wordsizes, pagesizes, dangerous, paranoid_pool_check, system_default_hpage_size +- global custom_ldscripts ++ global custom_ldscripts, morecore_disabled + testsets = set() + env_override = {"QUIET_TEST": "1", "HUGETLBFS_MOUNTS": "", + "HUGETLB_ELFMAP": None, "HUGETLB_MORECORE": None} +@@ -802,6 +848,7 @@ def main(): + return 1 + + check_hugetlbfs_path() ++ check_morecore_disabled() + + if "func" in testsets: functional_tests() + if "stress" in testsets: stress_tests() diff --git a/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild b/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild index ce5da82ddfcd..c091b4a8c00b 100644 --- a/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild +++ b/sys-libs/libhugetlbfs/libhugetlbfs-2.23.ebuild @@ -22,6 +22,7 @@ BDEPEND="test? ( ${PYTHON_DEPS} )" PATCHES=( "${FILESDIR}"/${PN}-2.6-fixup-testsuite.patch "${FILESDIR}"/${PN}-2.23-uncompressed-man-pages.patch + "${FILESDIR}"/${PN}-2.23-allow-building-against-glibc-2.34.patch ) src_prepare() { diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index 466b58423112..9e60d88144e0 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -1,11 +1,14 @@ DIST llvm-gentoo-patchset-12.0.1.tar.xz 5280 BLAKE2B 963d005bc7b636570be90eb841ac5bcaeb927538cc7de27683167111a17d6496677c7517de2ecfaf14b5d8ac22bad357be490b8a2ed9aba502fd5f447ecc99e9 SHA512 fc7c38e671555751650299c3a8bee44d5c7f26e11b68d5538c507fb7fe9ff2d349bdcd43bce90a448a747f082d523b3849d6bcda5e3ae2e998edcb926d6aa249 DIST llvm-gentoo-patchset-13.0.0-r2.tar.xz 6500 BLAKE2B 0ce8d0c4a5508f70c8ec49dbc03dfbfc6371ac224bc5dfc9a39f71def0f574405a06df5666baf6159afafd83a8028c5ea6cb369f22a06f927f3ce6795e96994d SHA512 800d44b382c03b673b43965d80d6ed1b7e8e4ced8d066183b9b8df722b2cc002a6aa54092e600f0d77611be581d312f8886ce8af25b23ff818115a209ec21312 +DIST llvm-gentoo-patchset-13.0.1-rc1.tar.xz 5988 BLAKE2B 8f1d295d4b6937518d9e0cc00cc2ba9e12ff9773b35261f0985b2d2a4ed1e3363a7f961cb385728b5ae552d0e129d99d11e63958d32c3353b0a79a88ba5cc0d5 SHA512 8272c423a5e0e99d412bb449794ba2e8134aca69d09e90e93555dbd3b7549d6ce4d68617ca11074af0a35a6f6830bf0330cbc672c5a56054cfd824e3ac1900ea DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d EBUILD libomp-11.1.0.ebuild 2901 BLAKE2B e18155f24e5d0aa2de9a1976c818777e8d2d16092aa5e58b5c38197461a0b4ca5967ec161140b2a63835a0cfa601eb31fc08cbaa492088269808d6d803c7a47a SHA512 23a429ded341114ea3c4282b974520146ea0734e01b5863c837d119517b39365b537126091f5efcf752ca7860bccf0e0e2d763b507e903321532db87bcd42b79 EBUILD libomp-12.0.1.ebuild 2968 BLAKE2B 4e5511872021796bc51f8544a9f6ca5372650297c3c805a1bb16696def4901b34ad6ecbb7fcd4ce87a192e04aacda3d121b8dd62175e3ab3fab7d2a28095fe09 SHA512 d1f169993b83021c8c31b1911d827b62be19b916f2c53b7ef7b59d82b88c241d36eb054947d56bea13cf064f8737050d988ab6379be8a09e81bb04d7e333e3ff EBUILD libomp-13.0.0-r1.ebuild 3815 BLAKE2B 83157bf0d69f4c15d268d059215228e00b4f192a70d91903e41c52aef04f79d90484d0b3e455cd8ea95aa0e6e4a0959c3af67f06793cf9b38a16dfd08564b2c2 SHA512 75da1352febcf3d596e9b733070fbf957a052c856a2e3710c4bbdc216f2a902fdfb1fc8ebdfaaca9194ee2414bcae44e83e5bdda9e018d183e04f762c5535a74 -EBUILD libomp-13.0.0.9999.ebuild 3727 BLAKE2B 684536b9dce5ebe7e0e973eb085ff923c55a9afff200943ec962c6169e0062543b4378dda72144001b3a8b8736fa3f94a3109bf4ef49013c154872f9f2b98215 SHA512 304eb23923016bbed50fd3cf63ecfa4b6d0d22e29c57a07c9034d4ec6edd96c66471c3bcc41067aa52a5cd1aec035b206dc2d87d9ffc04d76f9e13ed30d69eff +EBUILD libomp-13.0.1.9999.ebuild 3727 BLAKE2B 684536b9dce5ebe7e0e973eb085ff923c55a9afff200943ec962c6169e0062543b4378dda72144001b3a8b8736fa3f94a3109bf4ef49013c154872f9f2b98215 SHA512 304eb23923016bbed50fd3cf63ecfa4b6d0d22e29c57a07c9034d4ec6edd96c66471c3bcc41067aa52a5cd1aec035b206dc2d87d9ffc04d76f9e13ed30d69eff +EBUILD libomp-13.0.1_rc1.ebuild 3751 BLAKE2B 5601a3610923f3b6c5d594f9c8eb201afbad23bf039772ecb52a9169b289c3b6097e7ae1a7c4397fee38be8ba0124b507675cd09cbeb6ac427e43abc60fa0e4b SHA512 0ee02da8241f5d42254909652d2eb6521cdd29762e8febb8b19911536660eb1142163bba82407cd5850111afd781b39b646a4a6e5f1625d12a1f1cb1da7509ec EBUILD libomp-14.0.0.9999.ebuild 3727 BLAKE2B 684536b9dce5ebe7e0e973eb085ff923c55a9afff200943ec962c6169e0062543b4378dda72144001b3a8b8736fa3f94a3109bf4ef49013c154872f9f2b98215 SHA512 304eb23923016bbed50fd3cf63ecfa4b6d0d22e29c57a07c9034d4ec6edd96c66471c3bcc41067aa52a5cd1aec035b206dc2d87d9ffc04d76f9e13ed30d69eff MISC metadata.xml 826 BLAKE2B 94bad2982b52156c2755f4fcdc534648e30b45b514f486028d7beba9af050c3c6847a33fdc11cbf26195794b8e8a7cbeb4e110b8b4398f784c7b7c3edeea02ca SHA512 60de2890b1edc3d60feb5b04dbce840b17e0812ff301f00fd7c12242d3b81cdb3b8ad7afeb3624d70526a93cf8285c96a65b5fcd0384dd093b722c1ae645fa2f diff --git a/sys-libs/libomp/libomp-13.0.0.9999.ebuild b/sys-libs/libomp/libomp-13.0.0.9999.ebuild deleted file mode 100644 index 28c0f1fb620c..000000000000 --- a/sys-libs/libomp/libomp-13.0.0.9999.ebuild +++ /dev/null @@ -1,130 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib linux-info llvm llvm.org python-any-r1 - -DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" -HOMEPAGE="https://openmp.llvm.org" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="cuda debug hwloc kernel_linux offload ompt test - llvm_targets_AMDGPU llvm_targets_NVPTX" -# CUDA works only with the x86_64 ABI -REQUIRED_USE=" - cuda? ( llvm_targets_NVPTX ) - offload? ( cuda? ( abi_x86_64 ) )" -RESTRICT="!test? ( test )" - -RDEPEND=" - hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) - offload? ( - virtual/libelf:=[${MULTILIB_USEDEP}] - dev-libs/libffi:=[${MULTILIB_USEDEP}] - ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}] - cuda? ( dev-util/nvidia-cuda-toolkit:= ) - )" -# tests: -# - dev-python/lit provides the test runner -# - sys-devel/llvm provide test utils (e.g. FileCheck) -# - sys-devel/clang provides the compiler to run tests -DEPEND="${RDEPEND}" -BDEPEND="dev-lang/perl - offload? ( - llvm_targets_AMDGPU? ( sys-devel/clang ) - llvm_targets_NVPTX? ( sys-devel/clang ) - virtual/pkgconfig - ) - test? ( - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - sys-devel/clang - )" - -LLVM_COMPONENTS=( openmp llvm/include ) -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -kernel_pds_check() { - if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then - local CONFIG_CHECK="~!SCHED_PDS" - local ERROR_SCHED_PDS="\ -PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 -< 4.14-pf9) do not implement sched_yield() call which may result in horrible -performance problems with libomp. If you are using one of the specified -kernel versions, you may want to disable the PDS scheduler." - - check_extra_config - fi -} - -pkg_pretend() { - kernel_pds_check -} - -pkg_setup() { - use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - - local libdir="$(get_libdir)" - local mycmakeargs=( - -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" - - -DLIBOMP_USE_HWLOC=$(usex hwloc) - -DLIBOMP_OMPT_SUPPORT=$(usex ompt) - - -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) - - # do not install libgomp.so & libiomp5.so aliases - -DLIBOMP_INSTALL_ALIASES=OFF - # disable unnecessary hack copying stuff back to srcdir - -DLIBOMP_COPY_EXPORTS=OFF - ) - if use offload && has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then - mycmakeargs+=( - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) - -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU) - -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX) - # a cheap hack to force clang - -DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")" - # upstream defaults to looking for it in clang dir - # this fails when ccache is being used - -DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)" - ) - else - mycmakeargs+=( - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON - -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF - -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF - ) - fi - use test && mycmakeargs+=( - # this project does not use standard LLVM cmake macros - -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" - -DOPENMP_LIT_ARGS="$(get_lit_flags)" - - -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" - -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" - ) - addpredict /dev/nvidiactl - cmake_src_configure -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - - cmake_build check-libomp -} diff --git a/sys-libs/libomp/libomp-13.0.1.9999.ebuild b/sys-libs/libomp/libomp-13.0.1.9999.ebuild new file mode 100644 index 000000000000..28c0f1fb620c --- /dev/null +++ b/sys-libs/libomp/libomp-13.0.1.9999.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib linux-info llvm llvm.org python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="cuda debug hwloc kernel_linux offload ompt test + llvm_targets_AMDGPU llvm_targets_NVPTX" +# CUDA works only with the x86_64 ABI +REQUIRED_USE=" + cuda? ( llvm_targets_NVPTX ) + offload? ( cuda? ( abi_x86_64 ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] + ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + )" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl + offload? ( + llvm_targets_AMDGPU? ( sys-devel/clang ) + llvm_targets_NVPTX? ( sys-devel/clang ) + virtual/pkgconfig + ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + sys-devel/clang + )" + +LLVM_COMPONENTS=( openmp llvm/include ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + ) + if use offload && has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) + -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU) + -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX) + # a cheap hack to force clang + -DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")" + # upstream defaults to looking for it in clang dir + # this fails when ccache is being used + -DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)" + ) + else + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF + -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF + ) + fi + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + addpredict /dev/nvidiactl + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-libomp +} diff --git a/sys-libs/libomp/libomp-13.0.1_rc1.ebuild b/sys-libs/libomp/libomp-13.0.1_rc1.ebuild new file mode 100644 index 000000000000..7f61ca615aa0 --- /dev/null +++ b/sys-libs/libomp/libomp-13.0.1_rc1.ebuild @@ -0,0 +1,131 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib linux-info llvm llvm.org python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="cuda debug hwloc kernel_linux offload ompt test + llvm_targets_AMDGPU llvm_targets_NVPTX" +# CUDA works only with the x86_64 ABI +REQUIRED_USE=" + cuda? ( llvm_targets_NVPTX ) + offload? ( cuda? ( abi_x86_64 ) )" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] + ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + )" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl + offload? ( + llvm_targets_AMDGPU? ( sys-devel/clang ) + llvm_targets_NVPTX? ( sys-devel/clang ) + virtual/pkgconfig + ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + sys-devel/clang + )" + +LLVM_COMPONENTS=( openmp llvm/include ) +LLVM_PATCHSET=${PV/_/-} +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + ) + if use offload && has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda) + -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU) + -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX) + # a cheap hack to force clang + -DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")" + # upstream defaults to looking for it in clang dir + # this fails when ccache is being used + -DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)" + ) + else + mycmakeargs+=( + -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON + -DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF + -DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF + ) + fi + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + addpredict /dev/nvidiactl + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-libomp +} diff --git a/sys-libs/libosinfo/Manifest b/sys-libs/libosinfo/Manifest index 01507bdf990a..e32e80001f62 100644 --- a/sys-libs/libosinfo/Manifest +++ b/sys-libs/libosinfo/Manifest @@ -1,3 +1,4 @@ DIST libosinfo-1.9.0.tar.xz 279376 BLAKE2B 9f231f022d80e96fc9b031ff8f16ea1e432e5e3ce079e384ad123043b89dd5e47ae119aec3052c8926965bf30c49b150f0ee727fb3b0e0391d393b1031aabeab SHA512 2e62e69f4353eb935734f091caa4cc4e3dce74020a93b684807470f068da73e8ecb7f4af0623b6d3053ecff3a34c6709a783dec3d25a56dc69f0e7ff9041cf26 +EBUILD libosinfo-1.9.0-r1.ebuild 1547 BLAKE2B a1b4f5a179d4ff7184e97c85d1d0345d87ee6f9461066d9a27a7df6193dd32e41745756c0b49e26b03770d5700f4456bb3e49fd8ab8df1fdf9d21b15d2153af2 SHA512 ca2dcc4226a07c7b60c02225e0df310638afc1057f9260aa7344e78cf182a1c0ccedec0dd20da70156443a63d32b58d6bcd92831ba2f47234795f9010f1d1a76 EBUILD libosinfo-1.9.0.ebuild 1524 BLAKE2B 4fe809771ec4d270e13d710f86974cb98d4c029716fea1fd19cc5dbbc6a1f5ce9c8cf62442bf2176bf37a3a1467ae35a928db29528354994664d07d806758c79 SHA512 e59941dafc9c3d40c2143b69ed06268eec25bd53022f44ac3914c0b19cb5e2baadf50f99a68abf3d49d314641a3770e2e6a30dcb2b963501e32d364c98bc362f MISC metadata.xml 250 BLAKE2B 8f7f0fe023d43e380e7861e897e6afcb5de4baefb42ea9c65a57dfc0d204c6f787a99295141832e732ebb08be218da56ba77e2dd9639e4e3aabf718ce4db1d0c SHA512 2684e772dd6d83e4b49f08f2ba22d8a0a753e7b46863489eff1b5d1f2f147ad80ffd93245ca405ac4c747249bc1b754454ec9865fe16da70f9b257051e105fd8 diff --git a/sys-libs/libosinfo/libosinfo-1.9.0-r1.ebuild b/sys-libs/libosinfo/libosinfo-1.9.0-r1.ebuild new file mode 100644 index 000000000000..54ada71ed302 --- /dev/null +++ b/sys-libs/libosinfo/libosinfo-1.9.0-r1.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +VALA_USE_DEPEND="vapigen" + +inherit meson udev vala xdg + +DESCRIPTION="GObject library for managing information about real and virtual OSes" +HOMEPAGE="https://libosinfo.org/" +SRC_URI="https://releases.pagure.org/libosinfo/${P}.tar.xz" + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0" + +IUSE="gtk-doc +introspection +vala test" +RESTRICT="!test? ( test )" +REQUIRED_USE="vala? ( introspection )" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + +# Unsure about osinfo-db-tools rdep, but at least fedora does it too +RDEPEND=" + >=dev-libs/glib-2.44:2 + net-libs/libsoup:2.4 + >=dev-libs/libxml2-2.6.0 + >=dev-libs/libxslt-1.0.0 + sys-apps/hwdata + sys-apps/osinfo-db-tools + sys-apps/osinfo-db + introspection? ( >=dev-libs/gobject-introspection-1.56:= ) +" +DEPEND="${RDEPEND}" +# perl dep is for pod2man for automagic manpage building +BDEPEND=" + dev-lang/perl + dev-util/glib-utils + gtk-doc? ( >=dev-util/gtk-doc-1.10 + app-text/docbook-xml-dtd:4.3 ) + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig + vala? ( $(vala_depend) ) +" + +src_prepare() { + xdg_src_prepare + use vala && vala_src_prepare +} + +src_configure() { + local emesonargs=( + $(meson_use gtk-doc enable-gtk-doc) + $(meson_feature introspection enable-introspection) + $(meson_use test enable-tests) + $(meson_feature vala enable-vala) + -Dwith-pci-ids-path="${EPREFIX}"/usr/share/hwdata/pci.ids + -Dwith-usb-ids-path="${EPREFIX}"/usr/share/hwdata/usb.ids + ) + meson_src_configure +} diff --git a/sys-libs/librtas/Manifest b/sys-libs/librtas/Manifest index 0456e3fcb067..2fb24a8b1925 100644 --- a/sys-libs/librtas/Manifest +++ b/sys-libs/librtas/Manifest @@ -1,4 +1,4 @@ AUX librtas-2.0.2-musl.patch 1073 BLAKE2B 51c0ff8a61aa16409f43abb4171b790308565baef19f9d74596f2c3bb0feab5538cbbc60133e95706b116dc68c957b69dc280fa3a75396812f09f227d032328e SHA512 d461f8f9fc11ea81c4b9847f4fd36fe1498d90df414a3e31daa7a385435267edee5ff851382a7c8c1c575ff1ec09c3612ee59bd882196ce270f8c41ddd3ee629 DIST librtas-2.0.2.tar.gz 91627 BLAKE2B 1455af1af4a932fb81815ba67d1d1d8eeb0866bcf49fdcced622c1982121b5bb3ddeaf78f121a6540ec6c60d641991a87342713478a5be5232128db35d272059 SHA512 112d355bc486657289a186d9f1b8c576af55422f1527259a0cd680c07d6fa787aef2dc0cb6322721dc4aa1c5bd1de669f5c4d05e6a07de65262e9e3d4d0283c7 -EBUILD librtas-2.0.2-r1.ebuild 728 BLAKE2B ebc8a29955fbd67f30c4c9a2bb2f367185e752f0271f7b3fcabaec1fe99fdb499d4400209809c5840ae005d545a3bd17c2aaba384b4b6c69441f3aac531e3089 SHA512 035abe76ed04cf1dd43974e29f936f63bd3969ff8585fb066b9a09edea113667706a51a46d3e8744766fe4e37ff72e310dfd101c6aae0ee15ee307af573b83fa +EBUILD librtas-2.0.2-r2.ebuild 997 BLAKE2B a0d59eded6abe538ab2984b650672e352dc514d3e22bff5315c18ba22667672dbf966805efc649881187f4de8557e9cb3e4e0a9a3dbf6760c94ef6f9b6e434c0 SHA512 e5230ef175e47a8ac3a3fd5fed2de73dd18db4689de999869f6ed60f80bcdcda614a24d696558468ac720272131eb7b0bfc9c898a383a49c741374e5e42ac219 MISC metadata.xml 341 BLAKE2B 7a3729c933c0154a1b1d8789e940557051e2b46a34988d0ea45f28f6e491ebecf48ce1bd8c76f939a9c8abda07ca40431d60a839eb45ebdc669151d8312e6701 SHA512 e97728d7fb4a1be9cfc2945b6e59fe507ad2783a93d41cf72adaf61f5331d2ca165a545d522c3009ef550aaa67e9a83b3324d0c0dd311bf367758efdd813b54e diff --git a/sys-libs/librtas/librtas-2.0.2-r1.ebuild b/sys-libs/librtas/librtas-2.0.2-r1.ebuild deleted file mode 100644 index 61863ff24d39..000000000000 --- a/sys-libs/librtas/librtas-2.0.2-r1.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit autotools - -DESCRIPTION="A set of libraries for userspace access to RTAS on the PowerPC platform(s)" -HOMEPAGE="https://github.com/ibm-power-utilities/librtas" -SRC_URI="https://github.com/ibm-power-utilities/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-2.1+" -SLOT="0" -KEYWORDS="ppc ppc64 ~ppc64-linux" -IUSE="static-libs" - -PATCHES=( "${FILESDIR}"/${P}-musl.patch ) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - econf $(use_enable static-libs static) -} - -src_install() { - emake DESTDIR="${D}" install docdir="${EPREFIX}"/usr/share/doc/${PF} - find "${D}" -name '*.la' -delete || die -} diff --git a/sys-libs/librtas/librtas-2.0.2-r2.ebuild b/sys-libs/librtas/librtas-2.0.2-r2.ebuild new file mode 100644 index 000000000000..f43d44b267f5 --- /dev/null +++ b/sys-libs/librtas/librtas-2.0.2-r2.ebuild @@ -0,0 +1,34 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit autotools + +DESCRIPTION="A set of libraries for userspace access to RTAS on the PowerPC platform(s)" +HOMEPAGE="https://github.com/ibm-power-utilities/librtas" +SRC_URI="https://github.com/ibm-power-utilities/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="ppc ppc64 ~ppc64-linux" +IUSE="static-libs" + +PATCHES=( "${FILESDIR}"/${P}-musl.patch ) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf $(use_enable static-libs static) +} + +src_install() { + emake DESTDIR="${D}" install docdir="${EPREFIX}"/usr/share/doc/${PF} + find "${D}" -name '*.la' -delete || die + # librtas_src/syscall_rmo.c: static const char *lockfile_path = "/var/lock/LCK..librtas"; + # this way we prevent sandbox violations in lscpu linked to rtas + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/run/lock/LCK..librtas"' > "${ED}"/etc/sandbox.d/50librtas || die +} diff --git a/sys-libs/libselinux/Manifest b/sys-libs/libselinux/Manifest index 1915493dae08..f5ac08274567 100644 --- a/sys-libs/libselinux/Manifest +++ b/sys-libs/libselinux/Manifest @@ -2,7 +2,7 @@ DIST libselinux-3.1.tar.gz 204703 BLAKE2B 72ff2d99dd6640405e804f58bdfbf05e152615 DIST libselinux-3.2.tar.gz 206380 BLAKE2B 544eaaa87b9738c61929abe48713b530a8909eaea017890040f2fe299af86f09b6eb2cf4c9a68e06268ba09923b2b67703ac7a2b973906acb45f698e9ccaeed2 SHA512 18129ac0b9936e1f66021f1b311cf1c1e27a01e50cb70f08a3e1c642c5251e4538aec25a8427778569dfecf5333cf1fb84f1a59afdce8019328d0cff7e5833c5 DIST libselinux-3.3.tar.gz 206826 BLAKE2B e4cd2bf7172db1dd7661dd7981f875eb45f3c123805618edd03d7258f4b1f7afc974020187ec2e9e50dd59b3581ee21a29012eaa90ddfa82e43db4b8e60c51b7 SHA512 9a89c05ea4b17453168a985ece93ba6d6c4127916e657c46d4135eb59a1f6408faa0802cc2e49187defbde5247d659037beee089877affbab3eab6af3433696c EBUILD libselinux-3.1-r1.ebuild 4215 BLAKE2B 36d801acf1836645c710ba451aee245317c85dca7452ee990b1ae4f409e758d1cbdd3e47bd839e642e04e6d0cc30a4413060470a47a613a503361182d51128d6 SHA512 1e62339dd7530ce1eed4884024960e2012b533bc7d1160ce3a821956c502af7eaefee69dddb166df44a5d2a26940d5357400f5019c7b62cfc0209161cfa33af5 -EBUILD libselinux-3.2.ebuild 4241 BLAKE2B 4b93aa92a88f03e0bbbc1dd917f899416537e8894d6e830e60920c1cd6b17fc8809c1f2753ddf957f5a5c6fda3b74afeb1ab0012cd1e4dcf3bdee41e5b712982 SHA512 9441fd4d3afe9a1a016d3a99de27c2c1c82c0ad8646dae3bc4cd4775aa3ccece58d95343a3f43b6e6c6eec4ac967a8d0735ff162506e06a99e5fdaa82274a740 +EBUILD libselinux-3.2.ebuild 4239 BLAKE2B ad7894053b45a7637e7c2e0584265077b848b522657b29738e80598706179e69044d773f9c4c2251ccba9f8564d6ab07402305a90bc3359422e4c15c30acf9c9 SHA512 8b379f9b3aef6fc99081a154f98e68abdcd6318b64658e52421f892a73cfc6a37495e0d3c689e2dcb0ed2a40d149c7484db850e078f7a9914b3b3fbcf31ebd3e EBUILD libselinux-3.3.ebuild 4243 BLAKE2B 5c7c423ff4a25cd4631099320e406722fea8f539d4ac986f8be445de22fbc07b52b4190ff3709fde9df32e30213c4a3414df28e2971aa976a57a8c984bb88a10 SHA512 64dc774c7687ffb3c5a5d79943eefad9dac019352d1e458b81b1ca5d5766b6e2f757a49ec8118b514984ac793842534ce76c10c4075cd509d61210baf76464e5 EBUILD libselinux-9999.ebuild 4235 BLAKE2B 907af15311f4f5e94583ecd32a097021feb022ef997d95eaddf046c6d36c384f6d9ad4de9f2a58cdeb8a65a2993ea5faf4060a840a2af23fe7fd7c5c1e42fef0 SHA512 83b2dca2f27d387db7ce337a217ff3cc25f2271b9a57d0017aec52f4dbed53aab7bbdea3f5f930ad033dcb9bfa1ac3bd3f37ccaa72b31f4b2341919d0d739e65 MISC metadata.xml 746 BLAKE2B 4965c5541d4d9481d3e74e28a7d40a47b17895b3fb095111a46524fa77ec45527306f7960375c2d5c1fcfa3cc106aebd6e055341e99b46a2bb2e2f464c6b35ed SHA512 683a5acd27beb458c2f6c8aa7404e4920923d873a993ac21f52b9191a86e0ca5a74e9376a9a6d9e7b225a95a79ae4e813a05184c8c49d0ed7859e768890f080f diff --git a/sys-libs/libselinux/libselinux-3.2.ebuild b/sys-libs/libselinux/libselinux-3.2.ebuild index 2956e1e94ad9..8cb65e1d9e80 100644 --- a/sys-libs/libselinux/libselinux-3.2.ebuild +++ b/sys-libs/libselinux/libselinux-3.2.ebuild @@ -20,7 +20,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 diff --git a/sys-libs/libsemanage/Manifest b/sys-libs/libsemanage/Manifest index ae4df810d344..a89e8413d60e 100644 --- a/sys-libs/libsemanage/Manifest +++ b/sys-libs/libsemanage/Manifest @@ -2,7 +2,7 @@ DIST libsemanage-3.1.tar.gz 179601 BLAKE2B 69450a4eda1f3728d339f65db1eec9940995f DIST libsemanage-3.2.tar.gz 178839 BLAKE2B c0925812d784923a7a239ba919fc0a0e1d84cb528cbf4a357fb7938d3c06ebd2f0b60cd3eba40b76bf7c2922a081b99b16b32dc16638aa1bfce32553e241fb9f SHA512 6ad670bb298b1bab506217b12a3fda5d2209f4387a11410f0c1b65f765ffb579b0d70795dee19048909e0b72ef904fc318be60d5a01f80ab12742ce07647a084 DIST libsemanage-3.3.tar.gz 178890 BLAKE2B f1ff2d25f0c98e9794cb443365e6193db80a42104b645ef4edf783db2eb3d940d1f39cddfa59f9a86ba16957c77852159b3ced83c5d01ecb1811aa6255f8be83 SHA512 6026d9773c0886436ad801bc0c8beac888b6fb62034edeb863192dea4b6ef34a88e080758820fe635a20e048ac666beee505a0f946258f18571709cca5228aad EBUILD libsemanage-3.1-r1.ebuild 4274 BLAKE2B eb0866da968e01b89d6ba51cdcdd89f8796b0beeac515a3dbb47a823d7d5b24b64e01a05948373e6a2159b80866394d98edef9d3048436e527b38f0e8a5cb40c SHA512 21cc2d83b6efd83a691010699104d7a5344c84665cc505d4cae13a1a5891c836c728760766ae9492bb1ab0ee03e4d9e764acf6d39aa52824a6e0175db72cfebf -EBUILD libsemanage-3.2.ebuild 4280 BLAKE2B 073fa436221091ee5a8594a1194c96aae7d3c73c29b34bcf0f594e6cefd3cca082599338c29c10929b11d01151c786d6c9d1d17740484a7282bf78ced31cdff6 SHA512 12d968aacde29854b50fab62d72f08219dbbac21268919cdd867ed01b36e4d8cfbd95ae496477bb4c5ab8a8479c8dbbfaa33d97d8b1856b2265df193ad22c445 +EBUILD libsemanage-3.2.ebuild 4278 BLAKE2B a6573952f71dba7cb067bfe450c688b78b75063b671b28dc370c22adc5dbe4e7229d7066969306a24229b5ef4753b180d1aa043137778bcac9ff85bc94a15c55 SHA512 35b73c5294c66272ca49e52bae6a459ddc16e6d6de4c520945d3829e338afcd2415b7f8b35fca0ad8643743e7463da62349090f6c480e8ee8c7d29a9e49671a1 EBUILD libsemanage-3.3.ebuild 4282 BLAKE2B 3716d5e4f40f02f3c4fb51cbb9975046c8bf39906b8ec9e051d01cc9dd82c02d66abff58474472b66a9c31ee78afa43e09d6ef1aae526bf9380a8ee9512bc76a SHA512 5e131b3fe80ca66e1dd2c1de7383dfeab9172fd64eca70960373a582a12be2498d1423803144699cf1dca36c78aa2798199a255ba44b0d57a35e0e1b457b60b4 EBUILD libsemanage-9999.ebuild 4275 BLAKE2B f1cb24ab333c9f3d565d7a3d5a4fb80b6339b84b17cc4c7fc445ab1748f443d8ae15c51ff52500e8404f2e635082d24f220afa023f0516214dc2802290518efc SHA512 d2c375e0bd73b51cc663550ecad5401e2a21951105cec6fe0d12ee18e70334a0284afd3ab9eb7454dfe7a172a974804bacc86bd3071c67c03681536e8dc2eeeb MISC metadata.xml 335 BLAKE2B 72e72bc2d0ca05bf3caafd68121e0d4616306368f355541c2944254262a3ac96a3a6b8e5503ad691c2b7bc18dc6856101c81c47de3a623efc34b23185d9d4e60 SHA512 43cef46780c81459cc75b2a09181e84698a11e81196fea4e962b8081e712de437c8af032349aeb4f1ebe84ccef9cab4978467304d05801317db7a71521cf0664 diff --git a/sys-libs/libsemanage/libsemanage-3.2.ebuild b/sys-libs/libsemanage/libsemanage-3.2.ebuild index 6ed97a92c982..cea18c8179bf 100644 --- a/sys-libs/libsemanage/libsemanage-3.2.ebuild +++ b/sys-libs/libsemanage/libsemanage-3.2.ebuild @@ -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 diff --git a/sys-libs/libsepol/Manifest b/sys-libs/libsepol/Manifest index dfc3c861c5a0..c5596dd62b45 100644 --- a/sys-libs/libsepol/Manifest +++ b/sys-libs/libsepol/Manifest @@ -2,7 +2,7 @@ DIST libsepol-3.1.tar.gz 473842 BLAKE2B ef1d596c4d53cc0a87e899ef4aeb5bf29c9d6b83 DIST libsepol-3.2.tar.gz 477749 BLAKE2B 6f35387c0373869672080e151f212c081389f6799539124353aa1749ae2648669b2e237a271297c1c212b7a9e0c35f05edfff1bb724c8a15993e8fb8c599ac2e SHA512 1a6b3489ff766958a4b444b9be63a794267243aed303d3e7d87278f11be492dbf603a0c8181c4c5e01cb0e1ceb43810a77f738f0b9bd1d7d2be67053f9c67a6f DIST libsepol-3.3.tar.gz 482546 BLAKE2B 977996f68807f73a5bc0bd3a07b605640eb02a7bc67971882d489def166539ff7cfd00e474adde7e923fbebebdfcdcb71d17a43e3396c3176e25fd7d3bd65238 SHA512 fb6bb69f8e43a911a1a9cbd791593215386e93cb9292e003f5d8efe6e86e0ce5d0287e95d52fe2fbce518a618beaf9b1135aea0d04eaebcdbd8c6d07ee67b500 EBUILD libsepol-3.1.ebuild 1136 BLAKE2B 7ea108a698f5701cff8eea482f58442c9e339ed0c720f4cc9a50c2fee7513dc3f4b0d5427cfd1f67d72c48ac4659f31ee653a13cab56b441980c44a850e37a92 SHA512 cfd3e50a39e3dc0b35f961515b8c6d643826280489cc720376641b5b098bab3f883f009b924ca238a1f45af725da0a498a811fc8b841c7d5330e3ea0b7576f43 -EBUILD libsepol-3.2.ebuild 1116 BLAKE2B 62ca7f18493ba4a8785f1532aed2f907ef065b3ddf5b42a241b1ec7d90ad816276882953504594925d6ccb5d6795a9e5973a7bc3d9af5cfae60ae0fc4e3ddc18 SHA512 33388414115ff52f1848e4bb79a52db30a872b96d94c2a8ef7a249214da9c50671d41d9d19cdce863f671b8f54b7863bf663cc1bd8c907ba74f262fcc4bd244a +EBUILD libsepol-3.2.ebuild 1114 BLAKE2B 30238b022ac29f78b41a68dc92b7f3c668be4c1ea913e8a8318a1384071679abb66247b5738bc53d7b6f43af34ef3fd53ebf0c07dfabd52cf92e56b4e6c3bb1d SHA512 b59f7ed7ceed214843e703311eb8adca0b695ba1e891e63f1f94d405a3f97c57694e9a156d1ea3c616e1a600ea8ecb47ef0fa0999ec1912121b3df01fb9f5605 EBUILD libsepol-3.3.ebuild 1118 BLAKE2B 5fc14ee13738cb5bf42042f18ce34bceb0a786a064a81a275693517f737f6d26b44b217d7c5e66819ea14e30e3bfa69636a75ce116b20a9d9c1e41b58298063b SHA512 48455f528c71f5076fe2683b47458a59c078903bfd7a7f888805068bcd7b006a2a5e5039c9a14c701c0cf4dae200f4e317d04f71875b6010e89c08f9838e4ffd EBUILD libsepol-9999.ebuild 1111 BLAKE2B 8ae2517a060279cb7be432e25697ef5905856b9f271b78f28ee25a73d94efb969c28efb26b34bba4a43ad52f1c316767682fbd8c90f09b825921aae6f945684a SHA512 023d89e557b8dfdc6bcb92b18d0433a23cf030b1c179d8fbb583edf5e4fb7b5fc005ba4305f402e62e818793430141b6a69cda791e99c7dadca4ec0d8feecb89 MISC metadata.xml 402 BLAKE2B 0450441687952fc82e64536652076085d66870e8cd81d9aaa99d023d17d46bc8ef6627c9ebdd6084b4c60e7d26edb61b4aaf5693794105b04b500c74a37c25be SHA512 a107ad99e8050f4cbe1c32f76699524afdced1f4b9a0c0fb3a4b5954d4f9cd5993d4d047d7a3fb45fb68c2be361c658be48287e1099ea7a6b6fca7d676969c2d diff --git a/sys-libs/libsepol/libsepol-3.2.ebuild b/sys-libs/libsepol/libsepol-3.2.ebuild index 23a044ae99eb..58ebda5eaea9 100644 --- a/sys-libs/libsepol/libsepol-3.2.ebuild +++ b/sys-libs/libsepol/libsepol-3.2.ebuild @@ -17,7 +17,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 diff --git a/sys-libs/libucontext/Manifest b/sys-libs/libucontext/Manifest new file mode 100644 index 000000000000..91334bc00e78 --- /dev/null +++ b/sys-libs/libucontext/Manifest @@ -0,0 +1,3 @@ +DIST libucontext-1.1.tar.gz 25261 BLAKE2B 269b3899657779bc2c6a2f1c365242f0ee936afeb0acf74e48af5c1e6b96918bbaa239039508e7b1b1f7b358679fb4a222311b761223b69b9a3e7a9be2d0bc40 SHA512 05aed6f82a2b3d9dba896423335a7fc2fc5eddc87ed725f05e14488c6ddfcef10b835c928619439c7783e052baff7ef2dc162b6e06aa78992f6f611ca13c2e39 +EBUILD libucontext-1.1.ebuild 1077 BLAKE2B 0c4b3f18440b3fb002fb9538fc97360056038ac2f59e9c63e18cf6203d89aec95c47161bd0dd09261172b20a5da3dd150285b9088c4ad6abf27611e929315b6a SHA512 beeddc6b1366d0e94e9826074c4137a778838be4cba9b698890c1b7ebcdcb936b1731a22510c3774ee997423f75ae49f9bb4be149f83a0e306c52e7163357cc6 +MISC metadata.xml 329 BLAKE2B 8958a3567263e9f2fc2409c2cd5858ca3e68659a45f67e5132fca640c6ffe05cac8810436f334b5c775ed049709f43aaf366cfecc97bc732a0917bb47aa5c34d SHA512 7b5d5832b22828f6a0600e3be45ff1da8ff340481a3602db6f5b8540373ff0ac3c72f0de64f00a1691598bbd9cea0128eb869cda67d8ac4894e3a51a7009a730 diff --git a/sys-libs/libucontext/libucontext-1.1.ebuild b/sys-libs/libucontext/libucontext-1.1.ebuild new file mode 100644 index 000000000000..f637a693a337 --- /dev/null +++ b/sys-libs/libucontext/libucontext-1.1.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="ucontext implementation featuring glibc-compatible ABI" +HOMEPAGE="https://github.com/kaniini/libucontext" +SRC_URI="https://github.com/kaniini/libucontext/archive/refs/tags/${P}.tar.gz" +S="${WORKDIR}"/${PN}-${P} + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+man" + +BDEPEND="man? ( app-text/scdoc )" + +# segfault needs investigation +RESTRICT="test" + +src_compile() { + tc-export AR CC + + local arch + + # Override arch detection + # https://github.com/kaniini/libucontext/blob/master/Makefile#L3 + if use x86 ; then + arch="x86" + elif use arm ; then + arch="arm" + elif use arm64 ; then + arch="aarch64" + elif use ppc64 ; then + arch="ppc64" + else + arch="$(uname -m)" + fi + + emake ARCH="${arch}" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" all $(usev man 'docs') +} + +src_test() { + emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" check +} + +src_install() { + emake DESTDIR="${ED}" LIBDIR="/usr/$(get_libdir)" install $(usev man 'install_docs') +} diff --git a/sys-libs/libucontext/metadata.xml b/sys-libs/libucontext/metadata.xml new file mode 100644 index 000000000000..6d14eb740806 --- /dev/null +++ b/sys-libs/libucontext/metadata.xml @@ -0,0 +1,11 @@ + + + + + musl@gentoo.org + Musl project + + + kaniini/libucontext + + diff --git a/sys-libs/libunwind/Manifest b/sys-libs/libunwind/Manifest index 3c3d17e498a5..54f76c9add69 100644 --- a/sys-libs/libunwind/Manifest +++ b/sys-libs/libunwind/Manifest @@ -1,10 +1,10 @@ AUX libunwind-1.2-coredump-regs.patch 619 BLAKE2B b901d50cb7fa4ab372da26120e512da0ca506322130583623eebe31548a65f5a53249b632d71409d77a6dc00eb002beddd44f8a5d11dc82bf8450b812770a023 SHA512 48536ef54590221b42a3ca568ec781e526807b3d8aed3e33e19e6efacfa05a428a6101d3a51e79ea5d3e1d783bcba9acb92f7623c121d3e00cd3e1a17d13e282 AUX libunwind-1.2-ia64-missing.patch 3863 BLAKE2B 384d2afd7d725f0730207b5b32ff4ffcedd852043af83b1884c7dc95116298eff41bd7f997e0ad51c9912b59e36b439eb524d3d4786f2a0a19dff32437e62003 SHA512 e8f65d706839770d993f9801371e1e294a0231c4bfe29b497e4a859567b7f5b6561b0a15d59b1626311e549fe57149046f5a76424a2ad69c521610aaa3019c17 AUX libunwind-1.2-ia64-ptrace-coredump.patch 1445 BLAKE2B 0b4b6b5d7b3cfc8be58c3973b096ceeb19faa84f175a23f2130588351e40f94abf5c53a4eb5813d8b9da7762f032671031d2d637bd2ec445f7e4f9ea9d276773 SHA512 0bab310ff16294d7617077ffa1261fe9c1a6aaeb4339c96918869c4dd9a2b1b73fbe2ebb5c895f1a420ff7922da85cbb44ccfcd69df6e2518c1f2ff64b7b2d76 -AUX libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch 1290 BLAKE2B eac40a5cb05fbda00e5dde5b4ecedfa21442cb5481281b8aac45b118d8b8d503bafe69aa9adb93cac9c7e89cb72f8b44bdb7018a09aa4c9d512e20a457c7d78f SHA512 36b76eefdff3ca832696c13b18d9153ca89d5b648c7df11d3c112a85e9ab92e9f124fdbd05d2d9017bd9c5cdc6bbb2de5038918c9f3a2695c8fa3a05835abdb0 +AUX libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch 1378 BLAKE2B f343464943d1689e379b702baa63f7c0f198421c124354af035b100a25d8bf1a2c493e09517c27a1abbdc6064cbf1d6ecf8cbb88bb377921277e8c9979c40921 SHA512 7de66bc7a107ada353cc50992fc141bc87b927d55d8df113d5ecea90b27f5518cc6f6aafa19ea7f7f85719a6b48610f9029ba88c2a84d4950c05e1fa37f9ef57 AUX libunwind-1.5.0-x32.patch 596 BLAKE2B dc032ca1b2c3e21595239954252a41676c07451e1b8a4759b64a0341e0392bd7ff0046cfde53bbd9bffc4f044221d6172b127a8cffa50dfd137930ea7b2b0ec5 SHA512 e3ccd5458ec4247d4d162bd730823483711dc958a51eaf4062b2385c67205c7998255eee33fbeb2cdc32bcc34f5ab27bbdcfb9f66b0a2144650e4a84893a652f DIST libunwind-1.5.0.tar.gz 878355 BLAKE2B ee35441289926ac22a58bedb9f831d8e13bacd663a99b3ce25eed229f25f0423bbbd90e09e3d62b003518d7a620aa6d15b0dd5b93632736a89fa0667b35d5fc2 SHA512 1df20ca7a8cee2f2e61294fa9b677e88fec52e9d5a329f88d05c2671c69fa462f6c18808c97ca9ff664ef57292537a844f00b18d142b1938c9da701ca95a4bab -DIST libunwind-1.6.0-rc2.tar.gz 900974 BLAKE2B bbf88b6eb0ddf1371a8d69904e7763d2b2892641f88ed985f342962de7b2d19b6201f84422252aa5ca3d6beed7b3af0e2fe1fdb603497dbe68215ebc94942074 SHA512 7b3933c4693595a85182cc11d24527c5ccda3c3af115a3947bdc9877ecb4a77659a2196f559112868b36cd2cdc5623cabef68ad519fd4017c510ee375b97cbe9 +DIST libunwind-1.6.2.tar.gz 901392 BLAKE2B 3d0313f7e92cbc3e1a84ad3831a5170f21cdf772f1697ca0a59dea63cdd47da382e9f1fd77325d9ff8bcd47559a425dc883a820c646c628cd00faed82cb0f83f SHA512 1d17dfb14f99a894a6cda256caf9ec481c14068aaf8f3a85fa3befa7c7cca7fca0f544a91a3a7c2f2fc55bab19b06a67ca79f55ac9081151d94478c7f611f8f7 EBUILD libunwind-1.5.0-r1.ebuild 3276 BLAKE2B 0a0ab57f71c05521de552b6a9e7530258e6390e64a33bb09f1751ede229abf5ec0d70537321ff77a80946abb1d3d8b6b5517fe17648231e7a5f4b14032870636 SHA512 48aa9c88e5d535bff85cad52fe7ef2b9d854d4adbdb9249430932458cbf5918ce7d4cd29330882577a1acfc85f06efe6adfe669093c8a7cdc3b0ec61f1459a04 -EBUILD libunwind-1.6.0_rc2.ebuild 2970 BLAKE2B d4e27d8128f06372d219cc8ecc3eb80dc62b013f855e00e6df8124ca367f2b15abe034d58c43dc6a374101c1d31aa5d9e8eefad6b2aa1e62209da27ba0ce19f1 SHA512 dbb9bad0c6fd72ab11ddd7c8cab651667972c786ba859f7f95a173cfcd276556ebb2f00e86e4ba15fcc82dbcb9df288aa0a863fd0838868755b5b199fdbe7f59 +EBUILD libunwind-1.6.2.ebuild 2705 BLAKE2B 1a4427b1cfc39508ce326f568ba6fe966455eff7d6d2c69e99acdcb5e9335324aea0479fd971218628932510f675909600685eef1025ef28d3e8c920d6d4ec7d SHA512 b0c75e2f5afe535f443e57cbbd9be5ec83694914c0d4f37e19c1df74b020032709c24ce3776410acd60e45b5375c96d96c232dc5fe840c8ff277c719d28e7658 MISC metadata.xml 574 BLAKE2B cf49536a68a838e39d6c67191eff496d8910f1d58cd7830546e519af38972db7cf7add177a6e5902202d2a66bc6b3dadcd261505b3bb61f285f0be10a0db42e7 SHA512 bf5fd787ae0b233c7fe5e8f4b987c472a03b93c07adebf35ce27c7b6759b9ac239296d5ede6725ac11f5030365199533389e51ced10dc6a20bb5aa74baf34ab0 diff --git a/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch b/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch index ee11149771cd..b6ba0028c80f 100644 --- a/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch +++ b/sys-libs/libunwind/files/libunwind-1.2.1-only-include-execinfo_h-if-avaliable.patch @@ -1,3 +1,5 @@ +https://github.com/libunwind/libunwind/commit/6382d6f5c9d4d149989e47b20446f794365137c1 + From 0f3f41a86842f2b19aa07af5242cb775ef9b20d3 Mon Sep 17 00:00:00 2001 From: "Jory A. Pratt" Date: Sat, 30 Jun 2018 22:44:22 -0500 diff --git a/sys-libs/libunwind/libunwind-1.6.0_rc2.ebuild b/sys-libs/libunwind/libunwind-1.6.0_rc2.ebuild deleted file mode 100644 index 2c27a4785c80..000000000000 --- a/sys-libs/libunwind/libunwind-1.6.0_rc2.ebuild +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright 2005-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PV=${PV/_/-} -MY_P=${PN}-${MY_PV} -inherit autotools flag-o-matic libtool multilib-minimal - -DESCRIPTION="Portable and efficient API to determine the call-chain of a program" -HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" -SRC_URI="mirror://nongnu/libunwind/${MY_P}.tar.gz" - -LICENSE="MIT" -SLOT="0/8" # libunwind.so.8 -#KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv -sparc ~x86 ~amd64-linux ~x86-linux" -KEYWORDS="~riscv" -IUSE="debug debug-frame doc libatomic lzma static-libs zlib" - -RESTRICT="test" # some tests are broken (toolchain version dependent, rely on external binaries) - -# We just use the header from libatomic. -RDEPEND=" - lzma? ( app-arch/xz-utils[static-libs?,${MULTILIB_USEDEP}] ) - zlib? ( sys-libs/zlib[static-libs?,${MULTILIB_USEDEP}] ) -" -DEPEND="${RDEPEND} - libatomic? ( dev-libs/libatomic_ops[${MULTILIB_USEDEP}] )" - -S="${WORKDIR}/${MY_P}" - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/libunwind.h - - # see libunwind.h for the full list of arch-specific headers - /usr/include/libunwind-aarch64.h - /usr/include/libunwind-arm.h - /usr/include/libunwind-hppa.h - /usr/include/libunwind-ia64.h - /usr/include/libunwind-mips.h - /usr/include/libunwind-ppc32.h - /usr/include/libunwind-ppc64.h - /usr/include/libunwind-riscv.h - /usr/include/libunwind-sh.h - /usr/include/libunwind-tilegx.h - /usr/include/libunwind-x86.h - /usr/include/libunwind-x86_64.h -) - -PATCHES=( - # needs refresh: - #"${FILESDIR}"/${PN}-1.2.1-only-include-execinfo_h-if-avaliable.patch -) - -src_prepare() { - default - chmod +x src/ia64/mk_cursor_i || die - # Since we have tests disabled via RESTRICT, disable building in the subdir - # entirely. This works around some build errors too. #484846 - sed -i -e '/^SUBDIRS/s:tests::' Makefile.in || die - - elibtoolize - eautoreconf -} - -multilib_src_configure() { - # --enable-cxx-exceptions: always enable it, headers provide the interface - # and on some archs it is disabled by default causing a mismatch between the - # API and the ABI, bug #418253 - # conservative-checks: validate memory addresses before use; as of 1.0.1, - # only x86_64 supports this, yet may be useful for debugging, couple it with - # debug useflag. - ECONF_SOURCE="${S}" \ - ac_cv_header_atomic_ops_h=$(usex libatomic) \ - econf \ - --enable-cxx-exceptions \ - --enable-coredump \ - --enable-ptrace \ - --enable-setjmp \ - $(use_enable debug-frame) \ - $(use_enable doc documentation) \ - $(use_enable lzma minidebuginfo) \ - $(use_enable static-libs static) \ - $(use_enable zlib zlibdebuginfo) \ - $(use_enable debug conservative_checks) \ - $(use_enable debug) -} - -multilib_src_compile() { - # Bug 586208 - CCACHE_NODIRECT=1 default -} - -multilib_src_test() { - # Explicitly allow parallel build of tests. - # Sandbox causes some tests to freak out. - SANDBOX_ON=0 emake check -} - -multilib_src_install_all() { - find "${D}" -name "*.la" -type f -delete || die -} diff --git a/sys-libs/libunwind/libunwind-1.6.2.ebuild b/sys-libs/libunwind/libunwind-1.6.2.ebuild new file mode 100644 index 000000000000..62c11c5c04ce --- /dev/null +++ b/sys-libs/libunwind/libunwind-1.6.2.ebuild @@ -0,0 +1,96 @@ +# Copyright 2005-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MY_PV=${PV/_/-} +MY_P=${PN}-${MY_PV} +inherit autotools multilib-minimal + +DESCRIPTION="Portable and efficient API to determine the call-chain of a program" +HOMEPAGE="https://savannah.nongnu.org/projects/libunwind" +SRC_URI="mirror://nongnu/libunwind/${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}" + +LICENSE="MIT" +SLOT="0/8" # libunwind.so.8 +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv -sparc ~x86 ~amd64-linux ~x86-linux" +IUSE="debug debug-frame doc libatomic lzma static-libs test zlib" + +RESTRICT="test !test? ( test )" # some tests are broken (toolchain version dependent, rely on external binaries) + +# We just use the header from libatomic. +RDEPEND=" + lzma? ( app-arch/xz-utils[static-libs?,${MULTILIB_USEDEP}] ) + zlib? ( sys-libs/zlib[static-libs?,${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND} + libatomic? ( dev-libs/libatomic_ops[${MULTILIB_USEDEP}] )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libunwind.h + + # see libunwind.h for the full list of arch-specific headers + /usr/include/libunwind-aarch64.h + /usr/include/libunwind-arm.h + /usr/include/libunwind-hppa.h + /usr/include/libunwind-ia64.h + /usr/include/libunwind-mips.h + /usr/include/libunwind-ppc32.h + /usr/include/libunwind-ppc64.h + /usr/include/libunwind-riscv.h + /usr/include/libunwind-sh.h + /usr/include/libunwind-tilegx.h + /usr/include/libunwind-x86.h + /usr/include/libunwind-x86_64.h +) + +src_prepare() { + default + + chmod +x src/ia64/mk_cursor_i || die + + eautoreconf +} + +multilib_src_configure() { + local myeconfargs=( + # --enable-cxx-exceptions: always enable it, headers provide the interface + # and on some archs it is disabled by default causing a mismatch between the + # API and the ABI, bug #418253 + --enable-cxx-exceptions + --enable-coredump + --enable-ptrace + --enable-setjmp + $(use_enable debug-frame) + $(use_enable doc documentation) + $(use_enable lzma minidebuginfo) + $(use_enable static-libs static) + $(use_enable zlib zlibdebuginfo) + # conservative-checks: validate memory addresses before use; as of 1.0.1, + # only x86_64 supports this, yet may be useful for debugging, couple it with + # debug useflag. + $(use_enable debug conservative_checks) + $(use_enable debug) + $(use_enable test tests) + ) + + export ac_cv_header_atomic_ops_h=$(usex libatomic) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" +} + +multilib_src_compile() { + # bug #586208 + CCACHE_NODIRECT=1 default +} + +multilib_src_test() { + # Explicitly allow parallel build of tests. + # Sandbox causes some tests to freak out. + SANDBOX_ON=0 emake check +} + +multilib_src_install_all() { + find "${ED}" -name "*.la" -type f -delete || die +} diff --git a/sys-libs/liburing/Manifest b/sys-libs/liburing/Manifest index 860f9b4c776b..117e5f65c0c3 100644 --- a/sys-libs/liburing/Manifest +++ b/sys-libs/liburing/Manifest @@ -1,11 +1,5 @@ -AUX liburing-0.7-ucontext_h-detection.patch 1920 BLAKE2B 0a360811328eb19f0b0a37725cad95879faf5664966351544f290fcf8cabbc2d8d66592ab6da994f3232ec4275717019543044c1592827c0e2b9c07f337707fa SHA512 4a32e8825b805c47778ef32a636fde984e1648cd966f49309e5f3b63511afbdaeb723ba245ffbc4f7e7589f1a0ee98415f4fe3815ddd0650ac9fba2b0ae2780e -AUX liburing-2.0-spec_version.patch 995 BLAKE2B dda31830765cd4bb8fc0e178429b4e632c30e2c212a04ae0849fe4cad09a91b299a3c177d62de0939fbaa269e2d8895d60fa356952f1ac797bda340a5b1ae01c SHA512 4b22e6e1cc24ee427bb162fc1bf58e4509709deabad2a9ddb156abdbd1a094086520c5786f3f2a9c047bf4241518f88308d588b542fec292837bf23d79d4aacb AUX liburing-2.1-arm-syscall.patch 1752 BLAKE2B f2f27e9ff6f86b75808d99a0e89e2c8609f481ba3ff1f908b1f2ec670a5ab5518ea990ff4bc24506f5ce6f6d8e1083ac7e3b0aaee9d72a8fb5bc3d4577617309 SHA512 04e1c92d6b399f046c500ff3a7d78990682e60df3994431977f7a01bea0fba0fb1dea6e66340bfd79869fbc2114f4e9a9eb391ed26d81a3041accf78141fd158 -DIST liburing-0.7.tar.bz2 86386 BLAKE2B a4fa00cc8e384f9909f3c628d479774beaffd5ab09c9f321ef22bfbabd273e4c8d4dbb30a3280633e89e1a79e893348e68f0aa2f3b1b4deda56759f77d9b1875 SHA512 9a23bc08e0fa59273264295859dddbe3276b2911df6d937b3c6f7647a250a3175222b5f051f3094efc98e48cacd242511327c5c5b895ebde10c8c87929ba4328 -DIST liburing-2.0.tar.bz2 109066 BLAKE2B e2be57f66d2a40650c74502bef55e646986443450b2cdf4d2b5247a3fa099178ae19e61a20e4452dc723351053b613a96743f1268004939da9fddd8f38df3fa5 SHA512 a0da3472eb876c9cfbe56abe14b4d926e4d1c362ee9c4f38eec4c4ab01edab6d76651ffe2afe5cac8589caadc02517950974332eb7990f8bcc9f4f4800b66e33 DIST liburing-2.1.tar.bz2 120806 BLAKE2B 3a09d1504150ed1c111f064187d868fd86ec7c3dbf661f73999f7fbb9c945b528f7ab2e0cfff5d270a1a977f04deedc7c790b6df8708ef2884fbf28c1a9ffd1b SHA512 a658454869b01752b5e499c4f0b50c342a8ff63b3dd1a473a96f9fad03f22a6e4d2354b0e658a4e7e50ea27440a84ee274856b3687803583bc80cb4bc45aec71 -EBUILD liburing-0.7-r1.ebuild 1284 BLAKE2B 70202e46fdeced14f4f6b2f931191af8108225fb74e771630b633cfc0f8e90efadc6013e4ff16cce9e4e1211ff2bfca7ab6228c88bf0c9bc4ff49b61a39c7fad SHA512 c09d8936d6a0955d541e3b02e7d6f0b5a76e54db4c175a549e8b5863df79a27a299d1b0badf3a45b8fe936343f20f921c52ba72464228372c0599f2db915a16d -EBUILD liburing-2.0-r1.ebuild 1293 BLAKE2B 5c377b39f0f8297f227b84453ac0f909075d4f5f37ef3feea19c1178d3bcf383cb2368acce1d6f52753799fe74ffa708c4aa7266200e715b10149193ecb69138 SHA512 cc9c46893838fa836cf5c3e45c669545522a3e6bf10933bd5ca94af9f7169f61081824d15aa36636c2e3cd52fd4f8fc1fc7c749b81c9e3940e05bdfcf1fd9a02 -EBUILD liburing-2.1.ebuild 1311 BLAKE2B f2cc49c107b20dbf0fc61b94e80f3c369a2e41a367128608ff49caeae0abb0b966b13156d37beb637c36111241eeb49fe9778e06f1054b3045ced22b2c30c971 SHA512 9277b411c2ddfd71a1dab8519c4f4ceb57bd8ef9b5f61659ffbcadc5e9bf25ff78e264bfc0d200c14d561cd511d125d66fd5e356688fee21d1a86d9c835b22b3 -EBUILD liburing-9999.ebuild 1235 BLAKE2B 9d64187cadaa2fe0f6f67a8640fe9d6ce3a545e3810493efbb62d1b2f27d7f293dc01ef2fda2b474be9a46d76675c328eddf25e7b484e592d3b41f149a0a65eb SHA512 7434cdcdf2b0fc93ae81d8f63ccfd237f4ad454c017903f9a0e741d37069ce3932baabd97d80913f3cc9fd10c68c30ca1d59c3f0933eaf79c05bb2abef381202 +EBUILD liburing-2.1.ebuild 1304 BLAKE2B f44fbd40a77269d7fdd5536c2d9e317979d81f723ec420173153b1ff7b935d771f26012c70c4e8421e017d5edbb5d97385f763f53af7f427c2b8d740ecaa21ab SHA512 3eca15d1a7ae6c1ae5895b959b4ba9f4664a9dd196e5581671a193bfdd6efa15f11c7ed82f01b32699466b8568318ffd96f20c88b3aa7719f06196b1c9fa394c +EBUILD liburing-9999.ebuild 1235 BLAKE2B 7f66b74ea4b81010d932666c130b3942838bf3872912eb8884f5dba7cb89ec8327b855339bd660f142ae63ef2db3011d0c8884432c6789738be9366e1ecc81bd SHA512 bd911b851909f01921073f5425ab00d91838d9f1741aec8da0a7d92f55e4c10316e0a3026269c91df8281de0bed9726c5522f916cf7986be009328515446a410 MISC metadata.xml 331 BLAKE2B 4466b3a5d60709f68985e860c920b53fc59d3a06c1110876ffa31edc80fc69305f2221ced9b60ef44d4ab77e1209aa9f2f7cf4037a2d411f9f31885baa55a73f SHA512 977da0c23dd070b8dc35c569993e3517c7b236f8dac5cf9ce7fcc16a77550cb58ddf9c9a3139835be48e3a3c82dc86efe4be304c8784e13f82b6856c7331d96d diff --git a/sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch b/sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch deleted file mode 100644 index 24b847d919df..000000000000 --- a/sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 1cf969dfcba797a02d74540965677b92d3884cfa Mon Sep 17 00:00:00 2001 -From: Simon Zeni -Date: Tue, 27 Oct 2020 22:31:21 -0400 -Subject: [PATCH] examples: disable ucontext-cp if ucontext.h is not available - -The header file `ucontext.h` is not available on musl based distros. The -example `ucontext-cp` is not built if `configure` fails to locate the -header. - -Signed-off-by: Simon Zeni -Signed-off-by: Jens Axboe ---- - configure | 21 +++++++++++++++++++++ - examples/Makefile | 6 +++++- - 2 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/configure b/configure -index c911f59..3b96cde 100755 ---- a/configure -+++ b/configure -@@ -287,6 +287,24 @@ if compile_prog_cxx "" "" "C++"; then - fi - print_config "C++" "$has_cxx" - -+########################################## -+# check for ucontext support -+has_ucontext="no" -+cat > $TMPC << EOF -+#include -+int main(int argc, char **argv) -+{ -+ ucontext_t ctx; -+ getcontext(&ctx); -+ return 0; -+} -+EOF -+if compile_prog "" "" "has_ucontext"; then -+ has_ucontext="yes" -+fi -+print_config "has_ucontext" "$has_ucontext" -+ -+ - ############################################################################# - - if test "$__kernel_rwf_t" = "yes"; then -@@ -304,6 +322,9 @@ fi - if test "$has_cxx" = "yes"; then - output_sym "CONFIG_HAVE_CXX" - fi -+if test "$has_ucontext" = "yes"; then -+ output_sym "CONFIG_HAVE_UCONTEXT" -+fi - - echo "CC=$cc" >> $config_host_mak - print_config "CC" "$cc" -diff --git a/examples/Makefile b/examples/Makefile -index 0eec627..60c1b71 100644 ---- a/examples/Makefile -+++ b/examples/Makefile -@@ -10,7 +10,11 @@ ifneq ($(MAKECMDGOALS),clean) - include ../config-host.mak - endif - --all_targets += io_uring-test io_uring-cp link-cp ucontext-cp -+all_targets += io_uring-test io_uring-cp link-cp -+ -+ifdef CONFIG_HAVE_UCONTEXT -+all_targets += ucontext-cp -+endif - - all: $(all_targets) - diff --git a/sys-libs/liburing/files/liburing-2.0-spec_version.patch b/sys-libs/liburing/files/liburing-2.0-spec_version.patch deleted file mode 100644 index fab05916c366..000000000000 --- a/sys-libs/liburing/files/liburing-2.0-spec_version.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1815337f7dbb530ae3e3bc1175d8da214cf76eb5 Mon Sep 17 00:00:00 2001 -From: Stefan Hajnoczi -Date: Tue, 9 Mar 2021 14:19:12 +0000 -Subject: [PATCH] spec: bump version to 2.0 - -The shared library is now liburing.so.2 but the pkgconfig and rpm files -still say 0.7. Existing binaries link against liburing.so.1 and will not -automatically pick up the new liburing.so.2 shared library. - -Update the version number in liburing.spec so - -Signed-off-by: Stefan Hajnoczi -Link: https://lore.kernel.org/r/20210309141913.262131-2-stefanha@redhat.com -Signed-off-by: Jens Axboe ---- - liburing.spec | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/liburing.spec b/liburing.spec -index fa4d9704..8607074c 100644 ---- a/liburing.spec -+++ b/liburing.spec -@@ -1,5 +1,5 @@ - Name: liburing --Version: 0.7 -+Version: 2.0 - Release: 1%{?dist} - Summary: Linux-native io_uring I/O access library - License: (GPLv2 with exceptions and LGPLv2+) or MIT diff --git a/sys-libs/liburing/liburing-0.7-r1.ebuild b/sys-libs/liburing/liburing-0.7-r1.ebuild deleted file mode 100644 index 715212503eba..000000000000 --- a/sys-libs/liburing/liburing-0.7-r1.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -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://git.kernel.dk/cgit/${PN}/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 sparc x86" -fi -LICENSE="MIT" -SLOT="0/1.0.7" # liburing.so version - -IUSE="static-libs" -# fsync test hangs forever -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/${PN}-0.7-ucontext_h-detection.patch -) - -src_prepare() { - default - 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)" - ) - # No autotools configure! "econf" will fail. - TMPDIR="${T}" ./configure "${myconf[@]}" -} - -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() { - emake V=1 runtests -} diff --git a/sys-libs/liburing/liburing-2.0-r1.ebuild b/sys-libs/liburing/liburing-2.0-r1.ebuild deleted file mode 100644 index 652b4092a8b2..000000000000 --- a/sys-libs/liburing/liburing-2.0-r1.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -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://git.kernel.dk/cgit/${PN}/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi -LICENSE="MIT" -SLOT="0/2.0.0" # liburing.so version - -IUSE="static-libs" -# fsync test hangs forever -RESTRICT="test" - -PATCHES=( - "${FILESDIR}/${P}-spec_version.patch" #809095 -) - -src_prepare() { - default - 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)" - ) - # No autotools configure! "econf" will fail. - TMPDIR="${T}" ./configure "${myconf[@]}" -} - -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() { - emake V=1 runtests -} diff --git a/sys-libs/liburing/liburing-2.1.ebuild b/sys-libs/liburing/liburing-2.1.ebuild index dd13ba0d9ab7..268300b356e1 100644 --- a/sys-libs/liburing/liburing-2.1.ebuild +++ b/sys-libs/liburing/liburing-2.1.ebuild @@ -12,7 +12,7 @@ if [[ "${PV}" == *9999 ]] ; then EGIT_REPO_URI="https://github.com/axboe/liburing.git" else SRC_URI="https://git.kernel.dk/cgit/${PN}/snapshot/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86" fi LICENSE="MIT" SLOT="0/2" # liburing.so major version diff --git a/sys-libs/liburing/liburing-9999.ebuild b/sys-libs/liburing/liburing-9999.ebuild index 6d65622e2a7a..72d3d7d1fa2a 100644 --- a/sys-libs/liburing/liburing-9999.ebuild +++ b/sys-libs/liburing/liburing-9999.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit multilib-minimal toolchain-funcs diff --git a/sys-libs/libxcrypt/Manifest b/sys-libs/libxcrypt/Manifest index cbc9e7a72e9c..754fdbb442c6 100644 --- a/sys-libs/libxcrypt/Manifest +++ b/sys-libs/libxcrypt/Manifest @@ -3,6 +3,6 @@ DIST libxcrypt-4.4.20-autotools.tar.xz 628688 BLAKE2B 4c23af2a765495758e52c8e95d DIST libxcrypt-4.4.25-autotools.tar.xz 614652 BLAKE2B f0f4fbf92585fdd8d328aaa68811ea15bdf75778363ea4bc46a75fb76bb065f044708446d655356ebbf2834f8b14bac40fbe700b510b09ce101f750667a04298 SHA512 30f38a54c8e5cbd31c463223913079f9869d38ed38a2f64c57778ac4cf1b6f557caa527073df54ca8396bb7220807b84afcae2f9790f6604af1561a4b277874e DIST libxcrypt-4.4.26-autotools.tar.xz 617808 BLAKE2B 9fb8e31b22a085c0d0d5ab2ee3fb69fbebaccee2281e9be7d745218b5b92d949ffd3aa9c385671d58c93a654e16b943a33284b0b4737d52d26e43e2f7840fe74 SHA512 22c72cacd87c5751c4160413738fdf52c8fee300dcad01b289a6eaf892439883b9478103f791f5f53c8e5e2f2dd81057e5fda45e7cf7fdfd3ba93dd811bc01e3 EBUILD libxcrypt-4.4.20.ebuild 5817 BLAKE2B 5eee19a41bd26045175765c8bff8aecd0e035e5c46dd8b73a11f4f8ffd1360c91921c2881e058da504414eb33156511f07e3673fc321b36e49010e00a2294669 SHA512 181e26ade031ddc3a93103348326dca9ab7a546e69a00168b7e19b9cf5f148bffeba7dd6bdaf2e11649303305a72ca2bfd24360c005704930d5ef8f444881673 -EBUILD libxcrypt-4.4.25.ebuild 5860 BLAKE2B 32df837f684d4792612cb718f7eef723a36ab423476294f4a271eb5ff5d1cf90ec12575b3ad715abda38b6a4622f80894276ca54f19fcf9a9db838a3eaf85b38 SHA512 361893c93b38c0a6086fd85c54ba975354a72cebffe9fbd7046a4e07934e6c6cc849e4d3d8d484de1cdc1ca9103f690ce11abaab7af5cdeed6fe1d4f72596fc0 -EBUILD libxcrypt-4.4.26.ebuild 5867 BLAKE2B 416281733257433a1a39707a5db8cbaf39d0ccec3533d9d249c040206d1cfbe52b5467f00b29cbcb2ac5e909ee2707d299e0b4ed8d37a5764dc90853a829f17b SHA512 42713999095676b4c6a63c318ecae05ce90c5e824b7ec27ea796debb349fe2dbb76cb062a69d34e40868b896981647375bf68bf3f2e4b99d27256b995058130d +EBUILD libxcrypt-4.4.25-r1.ebuild 6415 BLAKE2B 312440866d2309feba7c1a29a3dcb61daf7e87fb8b01e58e959941d533cb07a67ca6119e1c470c229f8cbd04966bd97273d4d8a69d1a31dd0baa946d52623608 SHA512 0094b2031e3d7563bc4afc8c98f926777f8973c9e55b747cde01d6efcae1f799d7eb96fb7073c0ee42932fcc371d072a2c6ae0417c7c6eb70b6429dbf7cd4921 +EBUILD libxcrypt-4.4.26-r1.ebuild 6422 BLAKE2B e3b0ded6e80bbcc3f3279ae0cf18ac88d634a640b30ef4523d81fb74125d61718cf0a179361ad5e6a69fc658226660348b72279be49d446e2c995d6a584e1847 SHA512 0e3c0e99430ff8e068bc056315735b54192cf572cc7045e1a9ceb498ce8a51d0ea106079f9d6dd55f911445d87a1b93da878f4e4e8286981f4f97c32df6fd3eb MISC metadata.xml 831 BLAKE2B f8761f3758acf79afea36926a6488afb73c433a8faa599aa09a3bbc01b6c733d7264d7b584606158312825f099a1176623c70625a317a837de5bb20501f5ed22 SHA512 826ea578d9d3e651767e8f670d2bbb918c11e26ca5dc1c52ff7fbd513c39bee2d9423ecf16e47e2603f5a8c7b6979fd27eacde84182deb5a67004c9a3be281cb diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild new file mode 100644 index 000000000000..13858d396505 --- /dev/null +++ b/sys-libs/libxcrypt/libxcrypt-4.4.25-r1.ebuild @@ -0,0 +1,226 @@ +# Copyright 2004-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +# NEED_BOOTSTRAP is for developers to quickly generate a tarball +# for publishing to the tree. +NEED_BOOTSTRAP="no" +inherit multibuild multilib python-any-r1 toolchain-funcs multilib-minimal + +DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others" +HOMEPAGE="https://github.com/besser82/libxcrypt" +if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then + inherit autotools + SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools.tar.xz" +fi + +LICENSE="LGPL-2.1+ public-domain BSD BSD-2" +SLOT="0/1" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="+compat split-usr static-libs system test" +REQUIRED_USE="split-usr? ( system )" +RESTRICT="!test? ( test )" + +DEPEND="system? ( + elibc_glibc? ( + sys-libs/glibc[-crypt(+)] + !sys-libs/glibc[crypt(+)] + ) + !sys-libs/musl + ) +" +RDEPEND="${DEPEND}" +BDEPEND="dev-lang/perl + sys-apps/findutils + test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" + +python_check_deps() { + has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if has "distcc" ${FEATURES} ; then + ewarn "Please verify all distcc nodes are using the same versions of GCC (>= 10) and Binutils!" + ewarn "Older/mismatched versions of GCC may lead to a misbehaving library: bug #823179." + + if [[ ${BUILD_TYPE} != "binary" ]] && tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]] ; then + die "libxcrypt is known to fail to build or be broken at runtime with < GCC 10 (bug #823179)!" + fi + fi +} + +pkg_setup() { + MULTIBUILD_VARIANTS=( + $(usex compat 'xcrypt_compat' '') + xcrypt_nocompat + ) + + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # WARNING: Please read on bumping or applying patches! + # + # There are two circular dependencies to be aware of: + # 1) + # if we're bootstrapping configure and makefiles: + # libxcrypt -> automake -> perl -> libxcrypt + # + # mitigation: + # toolchain@ manually runs `make dist` after running autoconf + `./configure` + # and the ebuild uses that. + # (Don't include the pre-generated Perl artefacts.) + # + # solution for future: + # Upstream are working on producing `make dist` tarballs. + # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 + # + # 2) + # configure *unconditionally* needs Perl at build time to generate + # a list of enabled algorithms based on the set passed to `configure`: + # libxcrypt -> perl -> libxcrypt + # + # mitigation: + # None at the moment. + # + # solution for future: + # Not possible right now. Upstream intend on depending on Perl for further + # configuration options. + # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 + # + # Therefore, on changes (inc. bumps): + # * You must check whether upstream have started providing tarballs with bootstrapped + # auto{conf,make}; + # + # * diff the build system changes! + # + if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then + # Facilitate our split variant build for compat + non-compat + eapply "${FILESDIR}"/${PN}-4.4.19-multibuild.patch + eautoreconf + fi +} + +src_configure() { + # Avoid possible "illegal instruction" errors with gold + # bug #821496 + tc-ld-disable-gold + + multibuild_foreach_variant multilib-minimal_src_configure +} + +get_xclibdir() { + printf -- "%s/%s/%s\n" \ + "$(usex split-usr '' '/usr')" \ + "$(get_libdir)" \ + "$(usex system '' 'xcrypt')" +} + +multilib_src_configure() { + local -a myconf=( + --disable-werror + --libdir="${EPREFIX}"$(get_xclibdir) + --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" + --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" + ) + + case "${MULTIBUILD_ID}" in + xcrypt_compat-*) + myconf+=( + --disable-static + --disable-xcrypt-compat-files + --enable-obsolete-api=yes + ) + ;; + xcrypt_nocompat-*) + myconf+=( + --enable-obsolete-api=no + $(use_enable static-libs static) + ) + ;; + *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; + esac + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +src_compile() { + multibuild_foreach_variant multilib-minimal_src_compile +} + +multilib_src_test() { + emake check +} + +src_test() { + multibuild_foreach_variant multilib-minimal_src_test +} + +src_install() { + multibuild_foreach_variant multilib-minimal_src_install + + ( + shopt -s failglob || die "failglob failed" + + # Make sure our man pages do not collide with glibc or man-pages. + for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do + mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ + || die "mv failed" + done + ) || die "failglob error" + + # Remove useless stuff from installation + find "${ED}"/usr/share/doc/${PF} -type l -delete || die + find "${ED}" -name '*.la' -delete || die +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + # Don't install the libcrypt.so symlink for the "compat" version + case "${MULTIBUILD_ID}" in + xcrypt_compat-*) + rm "${ED}"$(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=( "${ED}"/$(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 "${ED}"$(get_xclibdir)/*$(get_libname); do + lib_file_basename="$(basename "${lib_file}")" + lib_file_target="$(basename "$(readlink -f "${lib_file}")")" + dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" + done + + rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" + fi + ) + fi + ;; + *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; + esac +} diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.25.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.25.ebuild deleted file mode 100644 index e95748621284..000000000000 --- a/sys-libs/libxcrypt/libxcrypt-4.4.25.ebuild +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright 2004-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -# NEED_BOOTSTRAP is for developers to quickly generate a tarball -# for publishing to the tree. -NEED_BOOTSTRAP="no" -inherit multibuild multilib python-any-r1 multilib-minimal - -DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others" -HOMEPAGE="https://github.com/besser82/libxcrypt" -if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - inherit autotools - SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools.tar.xz" -fi - -LICENSE="LGPL-2.1+ public-domain BSD BSD-2" -SLOT="0/1" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+compat split-usr static-libs system test" -REQUIRED_USE="split-usr? ( system )" -RESTRICT="!test? ( test )" - -DEPEND="system? ( - elibc_glibc? ( - sys-libs/glibc[-crypt(+)] - !sys-libs/glibc[crypt(+)] - ) - !sys-libs/musl - ) -" -RDEPEND="${DEPEND}" -BDEPEND="dev-lang/perl - sys-apps/findutils - test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" - -python_check_deps() { - has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" -} - -pkg_setup() { - MULTIBUILD_VARIANTS=( - $(usex compat 'xcrypt_compat' '') - xcrypt_nocompat - ) - - use test && python-any-r1_pkg_setup -} - -src_prepare() { - default - - # WARNING: Please read on bumping or applying patches! - # - # There are two circular dependencies to be aware of: - # 1) - # if we're bootstrapping configure and makefiles: - # libxcrypt -> automake -> perl -> libxcrypt - # - # mitigation: - # toolchain@ manually runs `make dist` after running autoconf + `./configure` - # and the ebuild uses that. - # (Don't include the pre-generated Perl artefacts.) - # - # solution for future: - # Upstream are working on producing `make dist` tarballs. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # 2) - # configure *unconditionally* needs Perl at build time to generate - # a list of enabled algorithms based on the set passed to `configure`: - # libxcrypt -> perl -> libxcrypt - # - # mitigation: - # None at the moment. - # - # solution for future: - # Not possible right now. Upstream intend on depending on Perl for further - # configuration options. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # Therefore, on changes (inc. bumps): - # * You must check whether upstream have started providing tarballs with bootstrapped - # auto{conf,make}; - # - # * diff the build system changes! - # - if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - # Facilitate our split variant build for compat + non-compat - eapply "${FILESDIR}"/${PN}-4.4.19-multibuild.patch - eautoreconf - fi -} - -src_configure() { - multibuild_foreach_variant multilib-minimal_src_configure -} - -get_xclibdir() { - printf -- "%s/%s/%s\n" \ - "$(usex split-usr '' '/usr')" \ - "$(get_libdir)" \ - "$(usex system '' 'xcrypt')" -} - -multilib_src_configure() { - local -a myconf=( - --disable-werror - --libdir="${EPREFIX}"$(get_xclibdir) - --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" - ) - - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - myconf+=( - --disable-static - --disable-xcrypt-compat-files - --enable-obsolete-api=yes - ) - ;; - xcrypt_nocompat-*) - myconf+=( - --enable-obsolete-api=no - $(use_enable static-libs static) - ) - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac - - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -src_compile() { - multibuild_foreach_variant multilib-minimal_src_compile -} - -multilib_src_test() { - emake check -} - -src_test() { - multibuild_foreach_variant multilib-minimal_src_test -} - -src_install() { - multibuild_foreach_variant multilib-minimal_src_install - - ( - shopt -s failglob || die "failglob failed" - - # Make sure our man pages do not collide with glibc or man-pages. - for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do - mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ - || die "mv failed" - done - ) || die "failglob error" - - # Remove useless stuff from installation - find "${ED}"/usr/share/doc/${PF} -type l -delete || die - find "${ED}" -name '*.la' -delete || die -} - -multilib_src_install() { - emake DESTDIR="${D}" install - - # Don't install the libcrypt.so symlink for the "compat" version - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - rm "${ED}"$(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=( "${ED}"/$(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 "${ED}"$(get_xclibdir)/*$(get_libname); do - lib_file_basename="$(basename "${lib_file}")" - lib_file_target="$(basename "$(readlink -f "${lib_file}")")" - dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" - done - - rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" - fi - ) - fi - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac -} diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild new file mode 100644 index 000000000000..fa017859016b --- /dev/null +++ b/sys-libs/libxcrypt/libxcrypt-4.4.26-r1.ebuild @@ -0,0 +1,226 @@ +# Copyright 2004-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +# NEED_BOOTSTRAP is for developers to quickly generate a tarball +# for publishing to the tree. +NEED_BOOTSTRAP="no" +inherit multibuild multilib python-any-r1 toolchain-funcs multilib-minimal + +DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others" +HOMEPAGE="https://github.com/besser82/libxcrypt" +if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then + inherit autotools + SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +else + SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools.tar.xz" +fi + +LICENSE="LGPL-2.1+ public-domain BSD BSD-2" +SLOT="0/1" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+compat split-usr static-libs system test" +REQUIRED_USE="split-usr? ( system )" +RESTRICT="!test? ( test )" + +DEPEND="system? ( + elibc_glibc? ( + sys-libs/glibc[-crypt(+)] + !sys-libs/glibc[crypt(+)] + ) + !sys-libs/musl + ) +" +RDEPEND="${DEPEND}" +BDEPEND="dev-lang/perl + sys-apps/findutils + test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" + +python_check_deps() { + has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if has "distcc" ${FEATURES} ; then + ewarn "Please verify all distcc nodes are using the same versions of GCC (>= 10) and Binutils!" + ewarn "Older/mismatched versions of GCC may lead to a misbehaving library: bug #823179." + + if [[ ${BUILD_TYPE} != "binary" ]] && tc-is-gcc && [[ $(gcc-major-version) -lt 10 ]] ; then + die "libxcrypt is known to fail to build or be broken at runtime with < GCC 10 (bug #823179)!" + fi + fi +} + +pkg_setup() { + MULTIBUILD_VARIANTS=( + $(usex compat 'xcrypt_compat' '') + xcrypt_nocompat + ) + + use test && python-any-r1_pkg_setup +} + +src_prepare() { + default + + # WARNING: Please read on bumping or applying patches! + # + # There are two circular dependencies to be aware of: + # 1) + # if we're bootstrapping configure and makefiles: + # libxcrypt -> automake -> perl -> libxcrypt + # + # mitigation: + # toolchain@ manually runs `make dist` after running autoconf + `./configure` + # and the ebuild uses that. + # (Don't include the pre-generated Perl artefacts.) + # + # solution for future: + # Upstream are working on producing `make dist` tarballs. + # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 + # + # 2) + # configure *unconditionally* needs Perl at build time to generate + # a list of enabled algorithms based on the set passed to `configure`: + # libxcrypt -> perl -> libxcrypt + # + # mitigation: + # None at the moment. + # + # solution for future: + # Not possible right now. Upstream intend on depending on Perl for further + # configuration options. + # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 + # + # Therefore, on changes (inc. bumps): + # * You must check whether upstream have started providing tarballs with bootstrapped + # auto{conf,make}; + # + # * diff the build system changes! + # + if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then + # Facilitate our split variant build for compat + non-compat + eapply "${FILESDIR}"/${PN}-4.4.19-multibuild.patch + eautoreconf + fi +} + +src_configure() { + # Avoid possible "illegal instruction" errors with gold + # bug #821496 + tc-ld-disable-gold + + multibuild_foreach_variant multilib-minimal_src_configure +} + +get_xclibdir() { + printf -- "%s/%s/%s\n" \ + "$(usex split-usr '' '/usr')" \ + "$(get_libdir)" \ + "$(usex system '' 'xcrypt')" +} + +multilib_src_configure() { + local -a myconf=( + --disable-werror + --libdir="${EPREFIX}"$(get_xclibdir) + --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" + --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" + ) + + case "${MULTIBUILD_ID}" in + xcrypt_compat-*) + myconf+=( + --disable-static + --disable-xcrypt-compat-files + --enable-obsolete-api=yes + ) + ;; + xcrypt_nocompat-*) + myconf+=( + --enable-obsolete-api=no + $(use_enable static-libs static) + ) + ;; + *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; + esac + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +src_compile() { + multibuild_foreach_variant multilib-minimal_src_compile +} + +multilib_src_test() { + emake check +} + +src_test() { + multibuild_foreach_variant multilib-minimal_src_test +} + +src_install() { + multibuild_foreach_variant multilib-minimal_src_install + + ( + shopt -s failglob || die "failglob failed" + + # Make sure our man pages do not collide with glibc or man-pages. + for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do + mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ + || die "mv failed" + done + ) || die "failglob error" + + # Remove useless stuff from installation + find "${ED}"/usr/share/doc/${PF} -type l -delete || die + find "${ED}" -name '*.la' -delete || die +} + +multilib_src_install() { + emake DESTDIR="${D}" install + + # Don't install the libcrypt.so symlink for the "compat" version + case "${MULTIBUILD_ID}" in + xcrypt_compat-*) + rm "${ED}"$(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=( "${ED}"/$(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 "${ED}"$(get_xclibdir)/*$(get_libname); do + lib_file_basename="$(basename "${lib_file}")" + lib_file_target="$(basename "$(readlink -f "${lib_file}")")" + dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" + done + + rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" + fi + ) + fi + ;; + *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; + esac +} diff --git a/sys-libs/libxcrypt/libxcrypt-4.4.26.ebuild b/sys-libs/libxcrypt/libxcrypt-4.4.26.ebuild deleted file mode 100644 index dca937cb958a..000000000000 --- a/sys-libs/libxcrypt/libxcrypt-4.4.26.ebuild +++ /dev/null @@ -1,211 +0,0 @@ -# Copyright 2004-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -# NEED_BOOTSTRAP is for developers to quickly generate a tarball -# for publishing to the tree. -NEED_BOOTSTRAP="no" -inherit multibuild multilib python-any-r1 multilib-minimal - -DESCRIPTION="Extended crypt library for descrypt, md5crypt, bcrypt, and others" -HOMEPAGE="https://github.com/besser82/libxcrypt" -if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - inherit autotools - SRC_URI="https://github.com/besser82/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -else - SRC_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-autotools.tar.xz" -fi - -LICENSE="LGPL-2.1+ public-domain BSD BSD-2" -SLOT="0/1" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -IUSE="+compat split-usr static-libs system test" -REQUIRED_USE="split-usr? ( system )" -RESTRICT="!test? ( test )" - -DEPEND="system? ( - elibc_glibc? ( - sys-libs/glibc[-crypt(+)] - !sys-libs/glibc[crypt(+)] - ) - !sys-libs/musl - ) -" -RDEPEND="${DEPEND}" -BDEPEND="dev-lang/perl - sys-apps/findutils - test? ( $(python_gen_any_dep 'dev-python/passlib[${PYTHON_USEDEP}]') )" - -python_check_deps() { - has_version -b "dev-python/passlib[${PYTHON_USEDEP}]" -} - -pkg_setup() { - MULTIBUILD_VARIANTS=( - $(usex compat 'xcrypt_compat' '') - xcrypt_nocompat - ) - - use test && python-any-r1_pkg_setup -} - -src_prepare() { - default - - # WARNING: Please read on bumping or applying patches! - # - # There are two circular dependencies to be aware of: - # 1) - # if we're bootstrapping configure and makefiles: - # libxcrypt -> automake -> perl -> libxcrypt - # - # mitigation: - # toolchain@ manually runs `make dist` after running autoconf + `./configure` - # and the ebuild uses that. - # (Don't include the pre-generated Perl artefacts.) - # - # solution for future: - # Upstream are working on producing `make dist` tarballs. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # 2) - # configure *unconditionally* needs Perl at build time to generate - # a list of enabled algorithms based on the set passed to `configure`: - # libxcrypt -> perl -> libxcrypt - # - # mitigation: - # None at the moment. - # - # solution for future: - # Not possible right now. Upstream intend on depending on Perl for further - # configuration options. - # https://github.com/besser82/libxcrypt/issues/134#issuecomment-871833573 - # - # Therefore, on changes (inc. bumps): - # * You must check whether upstream have started providing tarballs with bootstrapped - # auto{conf,make}; - # - # * diff the build system changes! - # - if [[ ${NEED_BOOTSTRAP} == "yes" ]] ; then - # Facilitate our split variant build for compat + non-compat - eapply "${FILESDIR}"/${PN}-4.4.19-multibuild.patch - eautoreconf - fi -} - -src_configure() { - multibuild_foreach_variant multilib-minimal_src_configure -} - -get_xclibdir() { - printf -- "%s/%s/%s\n" \ - "$(usex split-usr '' '/usr')" \ - "$(get_libdir)" \ - "$(usex system '' 'xcrypt')" -} - -multilib_src_configure() { - local -a myconf=( - --disable-werror - --libdir="${EPREFIX}"$(get_xclibdir) - --with-pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" - --includedir="${EPREFIX}/usr/include/$(usex system '' 'xcrypt')" - ) - - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - myconf+=( - --disable-static - --disable-xcrypt-compat-files - --enable-obsolete-api=yes - ) - ;; - xcrypt_nocompat-*) - myconf+=( - --enable-obsolete-api=no - $(use_enable static-libs static) - ) - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac - - ECONF_SOURCE="${S}" econf "${myconf[@]}" -} - -src_compile() { - multibuild_foreach_variant multilib-minimal_src_compile -} - -multilib_src_test() { - emake check -} - -src_test() { - multibuild_foreach_variant multilib-minimal_src_test -} - -src_install() { - multibuild_foreach_variant multilib-minimal_src_install - - ( - shopt -s failglob || die "failglob failed" - - # Make sure our man pages do not collide with glibc or man-pages. - for manpage in "${ED}"/usr/share/man/man3/crypt{,_r}.?*; do - mv -n "${manpage}" "$(dirname "${manpage}")/xcrypt_$(basename "${manpage}")" \ - || die "mv failed" - done - ) || die "failglob error" - - # Remove useless stuff from installation - find "${ED}"/usr/share/doc/${PF} -type l -delete || die - find "${ED}" -name '*.la' -delete || die -} - -multilib_src_install() { - emake DESTDIR="${D}" install - - # Don't install the libcrypt.so symlink for the "compat" version - case "${MULTIBUILD_ID}" in - xcrypt_compat-*) - rm "${ED}"$(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=( "${ED}"/$(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 "${ED}"$(get_xclibdir)/*$(get_libname); do - lib_file_basename="$(basename "${lib_file}")" - lib_file_target="$(basename "$(readlink -f "${lib_file}")")" - dosym "../../$(get_libdir)/${lib_file_target}" "/usr/$(get_xclibdir)/${lib_file_basename}" - done - - rm "${ED}"$(get_xclibdir)/*$(get_libname) || die "Removing symlinks in incorrect location failed" - fi - ) - fi - ;; - *) die "Unexpected MULTIBUILD_ID: ${MULTIBUILD_ID}";; - esac -} diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index 2c25182cbc4d..d32c4b2302ea 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -1,9 +1,11 @@ DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 +DIST llvmorg-13.0.1-rc1.tar.gz 147284646 BLAKE2B 3a1d8d382de633b7f8fc998f8ad1e03c24b733aefc591615cbd34115d1d6d74962ae33bbf2224527b521a76930ffee425527225563a558a04173e9aa9487c781 SHA512 d487bfc9b898ad0046e0c94338d7757d8a05a1a84d683abfbc9ed4994c6d12caf88fd18575225e284070fc67b3ac0970ca6639e61b1a7cc2948b216a5364a22d EBUILD llvm-libunwind-11.1.0.ebuild 3222 BLAKE2B e9f47dd9859691d9c629b0eee62cf4e6d9a41e6f74b991410ee4cb1c647c828388a2ea7c1806df7350dcefff9a8178021956f85c7ec2aeb11d702a17e3b32132 SHA512 fc85afa5f560b2e7ad28c1e7d7b0d36b7bc0be408817b66f0d9afb3a811b94c24a282cbb13400685a2ffb00dbf620eb0c94d66fddfe27c9cffc2108f71c11a32 EBUILD llvm-libunwind-12.0.1.ebuild 3656 BLAKE2B cdf5e4e4f39ce47ac57ac43f287b5d6a42a61a79d988cdcd52823aadb0c1950abc85f5c1ba8276198e46357fc27f3ab7d06c0e7e9279a9a40e4dc7f4b936aac5 SHA512 c6477d4837e8e0d3ee6c035e0462e0a817752af214ff20ace3b8c3e377c749351cf78bf2ffec3d95085334f6b9a0a23e311f5a50109c390ad5bec60a0bef2dd5 -EBUILD llvm-libunwind-13.0.0.9999.ebuild 3699 BLAKE2B 02bcd98a5ce42eb08840fc416b7890bfb395312df055e5f572a3dd83f251dfaa2804928aee86515de294fc2fc448ab41ca58566765ef5a3e49c269d90e3dcc34 SHA512 6fe43b2bd1c074340860453ef87a18e7e9d2ebc03b48c2b34f6034f2cc5120d7f8f1959c428c753f04da557e7fa75d0edf90e50136da406708e9c731576b713e -EBUILD llvm-libunwind-13.0.0.ebuild 3742 BLAKE2B 4a7970b353e54065d12dd9f86167c62cd87dbb91b8f390292d700cd0ac85bd06afc5c554031aa7d51339569d7095a3e5027f162843c36d4c59352dc3acc9a4ca SHA512 da7f8182da485e0d4608fde4bfc99e1890ff4a4b19a2c49c276f025633d48483db730b8b1622944a9b3d8e412ce2bc1aedf50f57397c2beb6ca13f5eb77ebe44 -EBUILD llvm-libunwind-14.0.0.9999.ebuild 3699 BLAKE2B 02bcd98a5ce42eb08840fc416b7890bfb395312df055e5f572a3dd83f251dfaa2804928aee86515de294fc2fc448ab41ca58566765ef5a3e49c269d90e3dcc34 SHA512 6fe43b2bd1c074340860453ef87a18e7e9d2ebc03b48c2b34f6034f2cc5120d7f8f1959c428c753f04da557e7fa75d0edf90e50136da406708e9c731576b713e +EBUILD llvm-libunwind-13.0.0.ebuild 3781 BLAKE2B 08d2c7ea77679aa9ea06997ce86d8c8c6c073ae3b8a1ff94be33c6dd5904425ae75632bf8ea3bd00825941e6c7a6fb4879693f33a94b54b9fe054a8ec61eeaec SHA512 b83af0f0a6d45e618d70fd59c7e4ff7dfa815c8eca650a65a4c892756197bc34ea389150bd65f01c6243ea54b0cfac476d5095f657f6a34e72d92967af600aeb +EBUILD llvm-libunwind-13.0.1.9999.ebuild 3738 BLAKE2B 42b8d4826b8f3149ef28699064c6efa1291fe932fe7f3024e9513cc614345b6861d478b564fd5af29eafe8ff64badeb4db8ddd8a91c33234a64af7375aba247b SHA512 a3888f3fffb201e8e50e0dee86a99f2907217d2ecba1d028b7b5fbef6495d85a41e867c056344b9ea1167c10c63107d495adc67821fa767847e200256236d35b +EBUILD llvm-libunwind-13.0.1_rc1.ebuild 3738 BLAKE2B 42b8d4826b8f3149ef28699064c6efa1291fe932fe7f3024e9513cc614345b6861d478b564fd5af29eafe8ff64badeb4db8ddd8a91c33234a64af7375aba247b SHA512 a3888f3fffb201e8e50e0dee86a99f2907217d2ecba1d028b7b5fbef6495d85a41e867c056344b9ea1167c10c63107d495adc67821fa767847e200256236d35b +EBUILD llvm-libunwind-14.0.0.9999.ebuild 3738 BLAKE2B 42b8d4826b8f3149ef28699064c6efa1291fe932fe7f3024e9513cc614345b6861d478b564fd5af29eafe8ff64badeb4db8ddd8a91c33234a64af7375aba247b SHA512 a3888f3fffb201e8e50e0dee86a99f2907217d2ecba1d028b7b5fbef6495d85a41e867c056344b9ea1167c10c63107d495adc67821fa767847e200256236d35b MISC metadata.xml 303 BLAKE2B ed0dbe1165e30ee5c3556aaf467abf212e198590a06c70f0de4e2c12060644df928c8f388fadfe776249a77dc000b40881d7254cfdc30f7a41209e2524136adb SHA512 5a69c07b9b1b37646d29a7287f1ba1c9150a5fae60df644266232871b5e4db41c0e8d102e8b873af2bdbf814935e8f8479e1534b8aa47d0ee31e971e2fa4dc50 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild deleted file mode 100644 index 5d782b4128b2..000000000000 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.9999.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CMAKE_ECLASS=cmake -PYTHON_COMPAT=( python3_{8..10} ) -inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs - -DESCRIPTION="C++ runtime stack unwinder from LLVM" -HOMEPAGE="https://github.com/llvm-mirror/libunwind" - -LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" -SLOT="0" -KEYWORDS="" -IUSE="debug static-libs test" -RESTRICT="!test? ( test )" - -RDEPEND="!sys-libs/libunwind" -# llvm-6 for new lit options -DEPEND=" - >=sys-devel/llvm-6" -BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 - $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') - )" - -LLVM_COMPONENTS=( libunwind libcxx llvm/cmake ) -LLVM_TEST_COMPONENTS=( libcxxabi ) -llvm.org_set_globals - -python_check_deps() { - has_version "dev-python/lit[${PYTHON_USEDEP}]" -} - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -multilib_src_configure() { - local use_compiler_rt=OFF - local libdir=$(get_libdir) - - # link to compiler-rt - # https://github.com/gentoo/gentoo/pull/21516 - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LD_FLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - use_compiler_rt=ON - fi - fi - - local mycmakeargs=( - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) - -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) - -DLLVM_INCLUDE_TESTS=$(usex test) - - # support non-native unwinding; given it's small enough, - # enable it unconditionally - -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON - - # avoid dependency on libgcc_s if compiler-rt is used - -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} - ) - if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - - mycmakeargs+=( - -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" - -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" - ) - fi - - cmake_src_configure -} - -wrap_libcxxabi() { - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ON - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - - "${@}" -} - -wrap_libcxx() { - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - - "${@}" -} - -multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - wrap_libcxx cmake_src_configure - wrap_libcxx cmake_build generate-cxx-headers - wrap_libcxxabi cmake_src_configure - wrap_libcxxabi cmake_src_compile - wrap_libcxx cmake_src_compile - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - - local -x LIT_PRESERVES_TMP=1 - cmake_build check-unwind -} - -multilib_src_install() { - cmake_src_install - - # install headers like sys-libs/libunwind - doheader "${S}"/include/*.h -} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild index 5e5505362a33..607404341462 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.0.ebuild @@ -55,6 +55,7 @@ multilib_src_configure() { -DLLVM_LIBDIR_SUFFIX=${libdir#lib} -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" -DLLVM_INCLUDE_TESTS=$(usex test) # support non-native unwinding; given it's small enough, diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild new file mode 100644 index 000000000000..b2e400ff295b --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="debug static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +LLVM_COMPONENTS=( libunwind libcxx llvm/cmake ) +LLVM_TEST_COMPONENTS=( libcxxabi ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local use_compiler_rt=OFF + local libdir=$(get_libdir) + + # link to compiler-rt + # https://github.com/gentoo/gentoo/pull/21516 + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LD_FLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + use_compiler_rt=ON + fi + fi + + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" + -DLLVM_INCLUDE_TESTS=$(usex test) + + # support non-native unwinding; given it's small enough, + # enable it unconditionally + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON + + # avoid dependency on libgcc_s if compiler-rt is used + -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + ) + fi + + cmake_src_configure +} + +wrap_libcxxabi() { + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ON + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include + ) + + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxxabi + local BUILD_DIR=${BUILD_DIR}/libcxxabi + + "${@}" +} + +wrap_libcxx() { + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + + "${@}" +} + +multilib_src_test() { + # build local copies of libc++ & libc++abi for testing to avoid + # circular deps + wrap_libcxx cmake_src_configure + wrap_libcxx cmake_build generate-cxx-headers + wrap_libcxxabi cmake_src_configure + wrap_libcxxabi cmake_src_compile + wrap_libcxx cmake_src_compile + mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + local -x LIT_PRESERVES_TMP=1 + cmake_build check-unwind +} + +multilib_src_install() { + cmake_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc1.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc1.ebuild new file mode 100644 index 000000000000..b2e400ff295b --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc1.ebuild @@ -0,0 +1,142 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="debug static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + test? ( >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +LLVM_COMPONENTS=( libunwind libcxx llvm/cmake ) +LLVM_TEST_COMPONENTS=( libcxxabi ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local use_compiler_rt=OFF + local libdir=$(get_libdir) + + # link to compiler-rt + # https://github.com/gentoo/gentoo/pull/21516 + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LD_FLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + use_compiler_rt=ON + fi + fi + + local mycmakeargs=( + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" + -DLLVM_INCLUDE_TESTS=$(usex test) + + # support non-native unwinding; given it's small enough, + # enable it unconditionally + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON + + # avoid dependency on libgcc_s if compiler-rt is used + -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} + ) + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + ) + fi + + cmake_src_configure +} + +wrap_libcxxabi() { + local mycmakeargs=( + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ON + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 + -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include + ) + + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxxabi + local BUILD_DIR=${BUILD_DIR}/libcxxabi + + "${@}" +} + +wrap_libcxx() { + local mycmakeargs=( + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + ) + + local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" + local CMAKE_USE_DIR=${WORKDIR}/libcxx + local BUILD_DIR=${BUILD_DIR}/libcxx + + "${@}" +} + +multilib_src_test() { + # build local copies of libc++ & libc++abi for testing to avoid + # circular deps + wrap_libcxx cmake_src_configure + wrap_libcxx cmake_build generate-cxx-headers + wrap_libcxxabi cmake_src_configure + wrap_libcxxabi cmake_src_compile + wrap_libcxx cmake_src_compile + mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die + + local -x LIT_PRESERVES_TMP=1 + cmake_build check-unwind +} + +multilib_src_install() { + cmake_src_install + + # install headers like sys-libs/libunwind + doheader "${S}"/include/*.h +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild index 5d782b4128b2..b2e400ff295b 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild @@ -55,6 +55,7 @@ multilib_src_configure() { -DLLVM_LIBDIR_SUFFIX=${libdir#lib} -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" -DLLVM_INCLUDE_TESTS=$(usex test) # support non-native unwinding; given it's small enough, diff --git a/sys-libs/musl/Manifest b/sys-libs/musl/Manifest index f466dd442839..f3b72199bd96 100644 --- a/sys-libs/musl/Manifest +++ b/sys-libs/musl/Manifest @@ -1,4 +1,6 @@ AUX ldconfig.in 2552 BLAKE2B c94f9900e8582d707519171c4b61079c801b60c555677b1740b04adbdec9645578b9a8fc91f11413072568f316c795e46a332970f3d2dde5272b0c49a5d60a78 SHA512 59f1b57361196363d3f127366764f05d26c23dbe3d3dbcdba9bd3c8ca26a671fd713b96d31c509d22805c57ada2b596d979a3f5795bcf0a4d3ac7d168f3bf377 +AUX ldconfig.in-r1 2930 BLAKE2B a0b0d4715d9b4c83c4e7036d466dae854c2da1e2393a48cf1c05789a59426f6809118d5ac266a7eb558010c8c47d344b93c8c86847d9d0158d3885b6076e3bf6 SHA512 7e5b5e396965c7e677168f0974460565dd0302639835ca7b0fbf1198e911dc2818dd64424e0e217a710545cbeeb4c31877f05034f16737a822eb02520c258c4e +AUX ldconfig.in-r2 2970 BLAKE2B a6b93ebbbe0caa07a1d32af07d810e1d95d47f2246573e77dfd14edba4403a9d90fd92a7428754c68036ffdbc7e82b926d95538f6617a76a247ab5c9a3c3ba1b SHA512 5b97f473ead0def43656b42511af77c427237e6c36f8d2afad8241ef4e948ed5f0a58dc9e65205c393b530ac810ee1e9f2db008534707283bca0fac2951fe4f9 AUX musl-1.2.2-gethostid.patch 1028 BLAKE2B fbe554e681c8f0e4bff6ec6fe97c88fd3c7f84ac07580b5f6cfef13b6b27c985f4f0e1d7722f397c59e655b8cd864fa845f9af2aa0eaa9287349f41e71f7a257 SHA512 d2959ef272e3a2742efec3983a41705cfa6424110dbc1eb53a912492cf067881cdbcb8cd864757e6450dda9b47e0cca7dbe3a86d3e6e74e7f33fb7d1723edfde AUX stack_chk_fail_local.c 1798 BLAKE2B 380bcbb920bd40a5185246621ba93716f27d61cd0077cd796ff267e10c534c9cc64982b2a66c89b61395dc93d67dae77e8c59908f65f2903f16016180cf94bbb SHA512 bb0bdd7f205d57771920c7ea898c1f84a55d6f90ddd1f8203bfeed98d13ccefa6f68d5fd1c0761321b2732ca928ca81b425e3fe8321c936d1316dea6f1930091 DIST getconf.c 11614 BLAKE2B ba49a573fc16d51780a0b0b81fbf7b64a1142f1dbad203c9609a59b6b07e7404f676c415383ae88c0aede95694821f6ee381bffd93cc3330501e17dc07d122bd SHA512 0d80f37b34a35e3d14b012257c50862dfeb9d2c81139ea2dfa101d981d093b009b9fa450ba27a708ac59377a48626971dfc58e20a3799084a65777a0c32cbc7d @@ -6,6 +8,8 @@ DIST iconv.c 2577 BLAKE2B 070ca87b30c90ab98c27d5faf7a2fcb64ff7c67ca212ee6072165b DIST musl-1.2.2.tar.gz 1055220 BLAKE2B a000357ed52e417d8cebe5537df658dc0f8f02f2da3efcd79125544ad63e11e05fa96136551d0bfeb09a3f6c9a2260bffcfbd329ea92e6a7b62aa690f48968aa SHA512 5344b581bd6463d71af8c13e91792fa51f25a96a1ecbea81e42664b63d90b325aeb421dfbc8c22e187397ca08e84d9296a0c0c299ba04fa2b751d6864914bd82 DIST musl-getent-93a08815f8598db442d8b766b463d0150ed8e2ab.c 11656 BLAKE2B 1b7bf7102a1eb91a8cb881ed8ca65eb8eed911dd50238e97dc2952d89d4c6ebed6bfd046a2b38776c550b2872ab54ced8cb452fcc2ad56e5616f722debda761f SHA512 7f5b9d934d82deb5f8b23e16169a5d9b99ccab3a4708df06a95d685e1b24a3a3e69b3dcf4942f2f66c12a3d4bf0c5827e2ee2e8c4d7b1997359fccc2ac212dee EBUILD musl-1.2.2-r3.ebuild 3814 BLAKE2B 037af7d810ace77441369b4dc9a8513298167bbe7af7a010ad22f6ff7e99aba2cac0b6b8befd51f080fb3c695452ec7a3cecbdeb46cbfd06d2aef2415a96c28e SHA512 48cb68039a1cc61b230d2c9b549f01c40607ef2a0726589e558e412311f7e1ae988c7328f86b61b148ba88f2f107c72b2829ccd8ba16567a52a3840f2286d477 -EBUILD musl-1.2.2-r4.ebuild 4448 BLAKE2B 36bf867d0b6484bbba80c83df074cc0915612ce447925b03343da441f55e53d1ea10210e7f30e36ae0ad5c36e8bcc2333eba04e5534c0db94af784ad27a3223b SHA512 18fa3cf43fd4f9c29eece8b61f6db7dcf6781122ef81860d84af7e9689095f32afc54bce63692436b4736362710d974220d0f69357d454d13bce1b8352dee5f6 -EBUILD musl-9999.ebuild 4320 BLAKE2B e0a1b35cd77bbd0e0187c15680dd2d0d6925d66901d0c087787eaa226435dfd085211277138dda7299723a2c96a52431323b23f3a90c9562441c2f1a05a1dd25 SHA512 3d6e61bb736907e4420dff142055040d85fbf4f06ed181290a779245be7b30be8c02016d2ac241b10475fecfbd408c7b6f5f9289af22bbf3c41c8e43a5180a3d +EBUILD musl-1.2.2-r4.ebuild 4442 BLAKE2B 1cfdf66f7c975e164161cb90d98f20187c2d3ae0a24914206222c7255714a2cd10c4034a6b34018e3c79a2ec6385012c29f39d525ab83ab9b737a04453232e65 SHA512 340f60f7f73702510251a1df1af6a38af715678bad3606aab1e29c132bf5bb5805c39d916a1ff95c5e492a38b1d9a2ba3ae24560287d2fca647aa338eede2de7 +EBUILD musl-1.2.2-r6.ebuild 4457 BLAKE2B 9fde176fc9b78c29480eb8aa85a1b9decd777976c6c44ca298762fb1dd71ee8144a6dede69d82b69eebad48990b8da4522df2818370aac5dc8c7a1436172154c SHA512 fedb1929ffd0f6282c9103567b1f7813b4da523fdfe678cdce3792c8bdb2b866decccb57c4850eb92e6161894ad9409fb3b9b0fe477f8520cefecb3844bbc5b3 +EBUILD musl-1.2.2-r7.ebuild 4463 BLAKE2B 783ce34e051c909cca45ac6577e79e81e113b2e4741ddbd579633faad3e0064ad7a82c45aa100b2f4c2a85cdaf5a8cdeefdf1f832e91e5262a786c7ac556d284 SHA512 03f6e12bf862699aa36b84461341e820099e0bc5fa8115c346cdf95f8ddf4863a12807ebb62116c6fe48072e1dd9738b4a937e2ef60ec8701b1d36c387e8b44b +EBUILD musl-9999.ebuild 4335 BLAKE2B 4b7c55d401e0587f0443050725d6d4dcdce87391eb6963f1078a77eb51af3240431bdb473cac170cd189c55a12c63081391963b3de728cdfa4357968497d66ad SHA512 ef20494c520d27827074899dca61691e722921fecadc83c021b6cf0ec4f73a709d072adb2ccd0590bfa3f0371888afc32b0a6a61a3a9aae6a995f9a12ccf676d MISC metadata.xml 559 BLAKE2B 8b1093a5278f716b8e21467b325e373a790f54c8ab71b92adc4c87dd569a92b20e08009372065f0f27ced39e3361c9e5e5a2e1bff271753d280439fabbddd3a4 SHA512 a35c13ea32ac8f26984bdb0d70d28a4285f34e32a2b0b17ad98fe3f357fb46c87a1e853377630d4da58fd5953de3fdeb02ee89181394e1815f5e0bbba4cd9f92 diff --git a/sys-libs/musl/files/ldconfig.in-r1 b/sys-libs/musl/files/ldconfig.in-r1 new file mode 100644 index 000000000000..7bf254dfd91c --- /dev/null +++ b/sys-libs/musl/files/ldconfig.in-r1 @@ -0,0 +1,155 @@ +#!/bin/bash -e +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +ROOT="/" +LDSO_CONF="/etc/ld.so.conf" + +VERBOSE=0 + +UPDATE_LINKS=1 + +get_options() { + while getopts "vnNXf:C:r:p" opt "$@"; do + case $opt in + v) + echo "ldconfig for musl in Gentoo" + VERBOSE=1 + ;; + r) + ROOT=${OPTARG} + LDSO_CONF=${ROOT}${LDSO_CONF} + LDSO_CONF_DIR=$(dirname ${LDSO_CONF}) + ;; + f) + LDSO_CONF=${OPTARG} + ;; + X) + UPDATE_LINKS=0 + ;; + \?) + echo "Invalid option: -${opt}" >&2 + exit 1 + ;; + n|N|C|p) + echo "Unimplemented option: -${opt}" >&2 + exit 1 + ;; + esac + done + + if [[ ${UPDATE_LINKS} == 1 ]]; then + echo "Updating links is not implemented." + fi +} + + +repeated() { + local l=${1} + local drs="${@:2}" + for m in ${drs}; do + [[ ${m} == ${l} ]] && return 0 + done + return 1 +} + +expand() { + # We are assuming the ld.so.conf's 'include' is not recursive + local f line l + local glob="${LDSO_CONF_DIR}/${1}" + local drs="${@:2} " + + for f in ${glob}; do + [[ ! -f ${f} ]] && continue + while read line; do + line=${line%%#*} + line=${line//:/ } + line=${line//,/ } + for l in ${line}; do + # We must add this whether or not the directory exists + repeated ${l} ${drs} && continue + drs+=" ${l} " + done + done < ${f} + done + + echo ${drs} +} + +read_ldso_conf() { + local drs=" " + + while read line; do + # Sanitize the line - see ldconfig(8) for delimiters + # Note: bash read turns tabs into spaces and read already + # delimits on newlines with the default $IFS + line=${line%%#*} # Remove comments + line=${line//:/ } # Change colon delimiter to space + line=${line//,/ } # Change comma delimiter to space + + next=0 + for l in ${line}; do + if [[ ${next} == 1 ]]; then + next=0 + drs=$(expand ${l} ${drs}) + elif [[ ${l} == "include" ]]; then + next=1 + else + # glibc's ldconfig silently skips non directories + if [[ -d ${l} ]]; then + repeated ${l} ${drs} && continue + drs+=" ${l} " + fi + fi + done + done < ${1} + + echo ${drs} +} + +sanitize() { + local drs=$@ + + repeated "/lib" ${drs} || drs="/lib ${drs}" + repeated "/usr/lib" ${drs} || drs="/usr/lib ${drs}" + + echo ${drs} +} + +changed() { + [[ -f ${ETC_LDSO_PATH} ]] || return 0 + local current=$(<${ETC_LDSO_PATH}) + current=${current//$'\n'/ } + [[ ${current} != ${drs} ]] || return 1 +} + +get_options "$@" + +if [[ ! -e ${LDSO_CONF} ]]; then + echo "${LDSO_CONF} not found" >&2 + exit 1 +fi + +LDSO_CONF_DIR=$(dirname ${LDSO_CONF}) + +drs=$(read_ldso_conf "${LDSO_CONF}") +drs=$(sanitize ${drs}) + +ARCH=@@ARCH@@ +LDSO_PATH="${ROOT}/lib/ld-musl-${ARCH}.so.1" +if [[ ! -e ${LDSO_PATH} ]]; then + echo "${LDSO_PATH} not found" >&2 + exit 1 +fi + +LDSO_ARCH=$(basename ${LDSO_PATH}) +LDSO_NAME=${LDSO_ARCH%.so.1} +ETC_LDSO_PATH="${ROOT}/etc/${LDSO_NAME}.path" + +changed || exit 0 +X=$(mktemp -p /tmp ${LDSO_NAME}.XXXXXX) +for d in ${drs}; do + echo ${d} >> ${X} +done +chmod 644 ${X} +mv ${X} ${ETC_LDSO_PATH} diff --git a/sys-libs/musl/files/ldconfig.in-r2 b/sys-libs/musl/files/ldconfig.in-r2 new file mode 100644 index 000000000000..72a2f58bc744 --- /dev/null +++ b/sys-libs/musl/files/ldconfig.in-r2 @@ -0,0 +1,157 @@ +#!/bin/bash -e +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +ROOT="/" +LDSO_CONF="/etc/ld.so.conf" + +VERBOSE=0 + +UPDATE_LINKS=1 + +get_options() { + while getopts "vnNXf:C:r:p" opt "$@"; do + case $opt in + v) + echo "ldconfig for musl in Gentoo" + VERBOSE=1 + ;; + r) + ROOT=${OPTARG} + LDSO_CONF=${ROOT}${LDSO_CONF} + LDSO_CONF_DIR=$(dirname ${LDSO_CONF}) + ;; + f) + LDSO_CONF=${OPTARG} + ;; + X) + UPDATE_LINKS=0 + ;; + \?) + echo "Invalid option: -${opt}" >&2 + exit 1 + ;; + n|N|C|p) + echo "Unimplemented option: -${opt}" >&2 + exit 1 + ;; + esac + done + + if [[ ${UPDATE_LINKS} == 1 ]]; then + echo "Updating links is not implemented." + fi +} + + +repeated() { + local l=${1} + local drs="${@:2}" + for m in ${drs}; do + [[ ${m} == ${l} ]] && return 0 + done + return 1 +} + +expand() { + # We are assuming the ld.so.conf's 'include' is not recursive + local f line l + local glob="${LDSO_CONF_DIR}/${1}" + local drs="${@:2} " + + for f in ${glob}; do + [[ ! -f ${f} ]] && continue + while read line; do + line=${line%%#*} + line=${line//:/ } + line=${line//,/ } + for l in ${line}; do + # We must add this whether or not the directory exists + repeated ${l} ${drs} && continue + drs+=" ${l} " + done + done < ${f} + done + + echo ${drs} +} + +read_ldso_conf() { + local drs=" " + + while read line; do + # Sanitize the line - see ldconfig(8) for delimiters + # Note: bash read turns tabs into spaces and read already + # delimits on newlines with the default $IFS + line=${line%%#*} # Remove comments + line=${line//:/ } # Change colon delimiter to space + line=${line//,/ } # Change comma delimiter to space + + next=0 + for l in ${line}; do + if [[ ${next} == 1 ]]; then + next=0 + drs=$(expand ${l} ${drs}) + elif [[ ${l} == "include" ]]; then + next=1 + else + # glibc's ldconfig silently skips non directories + if [[ -d ${l} ]]; then + repeated ${l} ${drs} && continue + drs+=" ${l} " + fi + fi + done + done < ${1} + + echo ${drs} +} + +sanitize() { + local drs=$@ + + repeated "/lib" ${drs} || drs="/lib ${drs}" + repeated "/usr/lib" ${drs} || drs="/usr/lib ${drs}" + + echo ${drs} +} + +changed() { + [[ -f ${ETC_LDSO_PATH} ]] || return 0 + local current=$(<${ETC_LDSO_PATH}) + current=${current//$'\n'/ } + [[ ${current} != ${drs} ]] || return 1 +} + +get_options "$@" + +if [[ ! -e ${LDSO_CONF} ]]; then + echo "${LDSO_CONF} not found" >&2 + exit 1 +fi + +LDSO_CONF_DIR=$(dirname ${LDSO_CONF}) + +drs=$(read_ldso_conf "${LDSO_CONF}") +drs=$(sanitize ${drs}) + +ARCH=@@ARCH@@ +LDSO_PATH="${ROOT}/lib/ld-musl-${ARCH}.so.1" +if [[ ! -e ${LDSO_PATH} ]]; then + echo "${LDSO_PATH} not found" >&2 + exit 1 +fi + +LDSO_ARCH=$(basename ${LDSO_PATH}) +LDSO_NAME=${LDSO_ARCH%.so.1} +ETC_LDSO_PATH="${ROOT}/etc/${LDSO_NAME}.path" + +changed || exit 0 +X=$(mktemp -p /tmp ${LDSO_NAME}.XXXXXX) +for d in ${drs}; do + echo ${d} >> ${X} +done +chmod 644 ${X} +# busybox doesn't support mz -Z +cp ${X} ${ETC_LDSO_PATH} +rm ${X} diff --git a/sys-libs/musl/musl-1.2.2-r4.ebuild b/sys-libs/musl/musl-1.2.2-r4.ebuild index 0fe2c8c9a67b..868577f61ad2 100644 --- a/sys-libs/musl/musl-1.2.2-r4.ebuild +++ b/sys-libs/musl/musl-1.2.2-r4.ebuild @@ -9,7 +9,7 @@ if [[ ${PV} == "9999" ]] ; then inherit git-r3 else SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz" - KEYWORDS="-* ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86" + KEYWORDS="-* amd64 arm arm64 ~mips ppc ppc64 x86" fi GETENT_COMMIT="93a08815f8598db442d8b766b463d0150ed8e2ab" GETENT_FILE="musl-getent-${GETENT_COMMIT}.c" @@ -128,7 +128,7 @@ src_install() { # and print $(ARCH)$(SUBARCH). local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak) - if [[ ! -e "${D}"/lib/ld-musl-${arch}.so.1 ]] ; then + if [[ ! -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] ; then # During cross (using crossdev), when emerging sys-libs/musl, # if /usr/lib/libc.so.1 doesn't exist on the system, installation # would fail. @@ -138,10 +138,10 @@ src_install() { # During cross, there's no guarantee that the host is using musl # so that file may not exist. Use a relative symlink within ${D} # instead. - dosym8 -r /usr/lib/libc.so.1 /lib/ld-musl-${arch}.so.1 + dosym8 -r /usr/lib/libc.so /lib/ld-musl-${arch}.so.1 # If it's still a dead symlnk, OK, we really do need to abort. - [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die + [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die fi cp "${FILESDIR}"/ldconfig.in "${T}" || die diff --git a/sys-libs/musl/musl-1.2.2-r6.ebuild b/sys-libs/musl/musl-1.2.2-r6.ebuild new file mode 100644 index 000000000000..79a60682c79f --- /dev/null +++ b/sys-libs/musl/musl-1.2.2-r6.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eapi8-dosym flag-o-matic toolchain-funcs +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="git://git.musl-libc.org/musl" + inherit git-r3 +else + SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz" + KEYWORDS="-* amd64 arm arm64 ~mips ppc ppc64 x86" +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 +" + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +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="headers-only" + +QA_SONAME="/usr/lib/libc.so" +QA_DT_NEEDED="/usr/lib/libc.so" + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +just_headers() { + use headers-only && is_crosscompile +} + +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 is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + unpack "${P}.tar.gz" + fi + mkdir misc || die + cp "${DISTDIR}"/getconf.c misc/getconf.c || die + cp "${DISTDIR}/${GETENT_FILE}" misc/getent.c || die + cp "${DISTDIR}"/iconv.c misc/iconv.c || die +} + +src_prepare() { + default + + # Expand gethostid instead of being just a stub + eapply "${FILESDIR}/${PN}-1.2.2-gethostid.patch" +} + +src_configure() { + tc-getCC ${CTARGET} + just_headers && export CC=true + + local sysroot + is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET} + ./configure \ + --target=${CTARGET} \ + --prefix=${sysroot}/usr \ + --syslibdir=${sysroot}/lib \ + --disable-gcc-wrapper || die +} + +src_compile() { + emake obj/include/bits/alltypes.h + just_headers && return 0 + + emake + if [[ ${CATEGORY} != cross-* ]] ; 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 + is_crosscompile && sysroot=/usr/${CTARGET} + local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) + dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd + + if [[ ${CATEGORY} != cross-* ]] ; 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) + + if [[ ! -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] ; then + # During cross (using crossdev), when emerging sys-libs/musl, + # if /usr/lib/libc.so.1 doesn't exist on the system, installation + # would fail. + # + # The musl build system seems to create a symlink: + # ${D}/lib/ld-musl-${arch}.so.1 -> /usr/lib/libc.so.1 (absolute) + # During cross, there's no guarantee that the host is using musl + # so that file may not exist. Use a relative symlink within ${D} + # instead. + dosym8 -r /usr/lib/libc.so /lib/ld-musl-${arch}.so.1 + + # If it's still a dead symlnk, OK, we really do need to abort. + [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die + fi + + cp "${FILESDIR}"/ldconfig.in-r1 "${T}"/ldconfig.in || die + sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die + into / + dosbin "${T}"/ldconfig + into /usr + dobin "${T}"/getconf + dobin "${T}"/getent + dobin "${T}"/iconv + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die + doenvd "${T}"/00musl + dolib.a libssp_nonshared.a + fi +} + +pkg_postinst() { + is_crosscompile && return 0 + + [ "${ROOT}" != "/" ] && return 0 + + ldconfig || die +} diff --git a/sys-libs/musl/musl-1.2.2-r7.ebuild b/sys-libs/musl/musl-1.2.2-r7.ebuild new file mode 100644 index 000000000000..dac76c213424 --- /dev/null +++ b/sys-libs/musl/musl-1.2.2-r7.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit eapi8-dosym flag-o-matic toolchain-funcs +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="git://git.musl-libc.org/musl" + inherit git-r3 +else + SRC_URI="http://www.musl-libc.org/releases/${P}.tar.gz" + KEYWORDS="-* ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~x86" +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 +" + +export CBUILD=${CBUILD:-${CHOST}} +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +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="headers-only" + +QA_SONAME="/usr/lib/libc.so" +QA_DT_NEEDED="/usr/lib/libc.so" + +is_crosscompile() { + [[ ${CHOST} != ${CTARGET} ]] +} + +just_headers() { + use headers-only && is_crosscompile +} + +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 is_crosscompile || tc-is-cross-compiler ; then + CHOST=${CTARGET} strip-unsupported-flags + fi +} + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + unpack "${P}.tar.gz" + fi + mkdir misc || die + cp "${DISTDIR}"/getconf.c misc/getconf.c || die + cp "${DISTDIR}/${GETENT_FILE}" misc/getent.c || die + cp "${DISTDIR}"/iconv.c misc/iconv.c || die +} + +src_prepare() { + default + + # Expand gethostid instead of being just a stub + eapply "${FILESDIR}/${PN}-1.2.2-gethostid.patch" +} + +src_configure() { + tc-getCC ${CTARGET} + just_headers && export CC=true + + local sysroot + is_crosscompile && sysroot="${EPREFIX}"/usr/${CTARGET} + ./configure \ + --target=${CTARGET} \ + --prefix=${sysroot}/usr \ + --syslibdir=${sysroot}/lib \ + --disable-gcc-wrapper || die +} + +src_compile() { + emake obj/include/bits/alltypes.h + just_headers && return 0 + + emake + if [[ ${CATEGORY} != cross-* ]] ; 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 + is_crosscompile && sysroot=/usr/${CTARGET} + local ldso=$(basename "${D}"${sysroot}/lib/ld-musl-*) + dosym ${sysroot}/lib/${ldso} ${sysroot}/usr/bin/ldd + + if [[ ${CATEGORY} != cross-* ]] ; 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) + + if [[ ! -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] ; then + # During cross (using crossdev), when emerging sys-libs/musl, + # if /usr/lib/libc.so.1 doesn't exist on the system, installation + # would fail. + # + # The musl build system seems to create a symlink: + # ${D}/lib/ld-musl-${arch}.so.1 -> /usr/lib/libc.so.1 (absolute) + # During cross, there's no guarantee that the host is using musl + # so that file may not exist. Use a relative symlink within ${D} + # instead. + dosym8 -r /usr/lib/libc.so /lib/ld-musl-${arch}.so.1 + + # If it's still a dead symlnk, OK, we really do need to abort. + [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die + fi + + cp "${FILESDIR}"/ldconfig.in-r2 "${T}"/ldconfig.in || die + sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die + into / + dosbin "${T}"/ldconfig + into /usr + dobin "${T}"/getconf + dobin "${T}"/getent + dobin "${T}"/iconv + echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00musl || die + doenvd "${T}"/00musl + dolib.a libssp_nonshared.a + fi +} + +pkg_postinst() { + is_crosscompile && return 0 + + [ "${ROOT}" != "/" ] && return 0 + + ldconfig || die +} diff --git a/sys-libs/musl/musl-9999.ebuild b/sys-libs/musl/musl-9999.ebuild index 5736eadc0fb4..6a5e2688dd5a 100644 --- a/sys-libs/musl/musl-9999.ebuild +++ b/sys-libs/musl/musl-9999.ebuild @@ -121,7 +121,7 @@ src_install() { # and print $(ARCH)$(SUBARCH). local arch=$(awk '{ k[$1] = $3 } END { printf("%s%s", k["ARCH"], k["SUBARCH"]); }' config.mak) - if [[ ! -e "${D}"/lib/ld-musl-${arch}.so.1 ]] ; then + if [[ ! -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] ; then # During cross (using crossdev), when emerging sys-libs/musl, # if /usr/lib/libc.so.1 doesn't exist on the system, installation # would fail. @@ -131,13 +131,13 @@ src_install() { # During cross, there's no guarantee that the host is using musl # so that file may not exist. Use a relative symlink within ${D} # instead. - dosym8 -r /usr/lib/libc.so.1 /lib/ld-musl-${arch}.so.1 + dosym8 -r /usr/lib/libc.so /lib/ld-musl-${arch}.so.1 # If it's still a dead symlnk, OK, we really do need to abort. - [[ -e "${D}"/lib/ld-musl-${arch}.so.1 ]] || die + [[ -e "${ED}"/lib/ld-musl-${arch}.so.1 ]] || die fi - cp "${FILESDIR}"/ldconfig.in "${T}" || die + cp "${FILESDIR}"/ldconfig.in-r1 "${T}"/ldconfig.in || die sed -e "s|@@ARCH@@|${arch}|" "${T}"/ldconfig.in > "${T}"/ldconfig || die into / dosbin "${T}"/ldconfig diff --git a/sys-libs/newlib/Manifest b/sys-libs/newlib/Manifest index dc46e6faef86..822f99c80fe6 100644 --- a/sys-libs/newlib/Manifest +++ b/sys-libs/newlib/Manifest @@ -1,5 +1,5 @@ AUX newlib-3.3.0-no-nano-cxx.patch 1338 BLAKE2B ff16751b01784a38dc07aa79120c38f0274bb14caeeb653cecca4b3ca69c60a72e0e1918fea8f2c0f4734293817539122fa41b349f61ceabb3cb9ae878a11d13 SHA512 08dfc7d854dc75c8b875fa7c1829078c8df8988b4ba2b20739d387c656ca63b8b344487861d23658e31b72f911d05c2f57abe51bdf3b2dedcc88ce072c6595c8 DIST newlib-4.1.0.tar.gz 18648429 BLAKE2B c4d4d734bceeacf05b75d450d4316392d0000266812f98f99cd3f9f0926ac9848e1dc145361827d1d6951edfe5f109923c982d9f284f927ffc5fd5e5edaf8be6 SHA512 6a24b64bb8136e4cd9d21b8720a36f87a34397fd952520af66903e183455c5cf19bb0ee4607c12a05d139c6c59382263383cb62c461a839f969d23d3bc4b1d34 -EBUILD newlib-4.1.0-r1.ebuild 4461 BLAKE2B 773ba5ca88402bde9d676c7e989151ec62b860b29d0d37922b81df9fe1ae8a7cabb7ecdc200cdada5aaab543cac51344b74ce2015152a8214bb943d171b3ae9d SHA512 323a94f3ca36f9b23749a1373aa52cc4cb5d496fc21d34d58544026881a8cf0c136a15c63e0ddd596ff73593bf4fe057b9b3bb862118acc3a50c82ee4d2a62a8 -EBUILD newlib-9999.ebuild 4461 BLAKE2B 773ba5ca88402bde9d676c7e989151ec62b860b29d0d37922b81df9fe1ae8a7cabb7ecdc200cdada5aaab543cac51344b74ce2015152a8214bb943d171b3ae9d SHA512 323a94f3ca36f9b23749a1373aa52cc4cb5d496fc21d34d58544026881a8cf0c136a15c63e0ddd596ff73593bf4fe057b9b3bb862118acc3a50c82ee4d2a62a8 +EBUILD newlib-4.1.0-r1.ebuild 4482 BLAKE2B b66394e3023130851f37adbba484d7a394c0d41e5a1d04f534bf1e1d71ed57d0ee65deccc6b1e10569bfca7d4f87b354eca82d785991f8bed0e22741104416c0 SHA512 cce2be618954ee7e935159f3549773d25d0cf1ef5fd72ea638ce38783f0b0314b3d2f7b86fa8ef24e1039eaf392ce3eea0a4fb765ef6dd54a5a27c38147d5c73 +EBUILD newlib-9999.ebuild 4482 BLAKE2B b66394e3023130851f37adbba484d7a394c0d41e5a1d04f534bf1e1d71ed57d0ee65deccc6b1e10569bfca7d4f87b354eca82d785991f8bed0e22741104416c0 SHA512 cce2be618954ee7e935159f3549773d25d0cf1ef5fd72ea638ce38783f0b0314b3d2f7b86fa8ef24e1039eaf392ce3eea0a4fb765ef6dd54a5a27c38147d5c73 MISC metadata.xml 414 BLAKE2B 0e367a5f7b225bd2d381433ff239e076c3de8feb795ddb586d867bbc9a1b990379a3f27a39ede9549c7e328262004101e4392560717f596c941e9a152848eacb SHA512 44000ecc340eb2da9391ac9b226486e0f95aeb8de5bc7633882fef97943e0348bbb04ada64a15c82d2995d8aaedac5da1fa8c9d453c4ab3d2efc51ce06ab6477 diff --git a/sys-libs/newlib/newlib-4.1.0-r1.ebuild b/sys-libs/newlib/newlib-4.1.0-r1.ebuild index a5ec41db3c45..a6ad7b9c65d1 100644 --- a/sys-libs/newlib/newlib-4.1.0-r1.ebuild +++ b/sys-libs/newlib/newlib-4.1.0-r1.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == "9999" ]] ; then inherit git-r3 else SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" - KEYWORDS="~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sparc ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" fi export CBUILD=${CBUILD:-${CHOST}} diff --git a/sys-libs/newlib/newlib-9999.ebuild b/sys-libs/newlib/newlib-9999.ebuild index a5ec41db3c45..a6ad7b9c65d1 100644 --- a/sys-libs/newlib/newlib-9999.ebuild +++ b/sys-libs/newlib/newlib-9999.ebuild @@ -10,7 +10,7 @@ if [[ ${PV} == "9999" ]] ; then inherit git-r3 else SRC_URI="ftp://sourceware.org/pub/newlib/${P}.tar.gz" - KEYWORDS="~arm ~hppa ~m68k ~mips ~ppc ~ppc64 ~sparc ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" fi export CBUILD=${CBUILD:-${CHOST}} diff --git a/sys-libs/pam_wrapper/Manifest b/sys-libs/pam_wrapper/Manifest index 9b9d9824d563..0b1ea9917e1b 100644 --- a/sys-libs/pam_wrapper/Manifest +++ b/sys-libs/pam_wrapper/Manifest @@ -1,4 +1,6 @@ DIST pam_wrapper-1.1.3.tar.gz 118034 BLAKE2B 3c05e74959f3c6dfd35575cc5f9187f4a328bfd7ce002e327fc135c82a4ff1513add87678360992d2010c124f7fd95e4bdb3c0a4d63418d9711069cbc200e417 SHA512 3b7cbd25ae7dd73f4a0c64a7762cdeb38cc7ba6e8b4e18e79aceffea09241d520aa884de88e4105b5957b2b18ec682be6568a6bfccf82b9354a3510cd2cd98eb -EBUILD pam_wrapper-1.1.3-r2.ebuild 1768 BLAKE2B f37023a08920228d9f3a8b1b52a84ddfc8a9ee094b48adf3a8df665f6f26aed0e5cb1047a994ec99dc6ede2b8576ab0368e6da227a73797d3e4d3af919f98d5a SHA512 2f19017f4bf6be4f73e8c660fab21a1ae284c2d794233abb157aa0cf8ba43c3a50c84a629634490fc75b7589c8bbff2b8cef8748238180f1c2896de63ddc13c5 +DIST pam_wrapper-1.1.4.tar.gz 170882 BLAKE2B fa0a789f6fd6f809c7ef80e354e886b5f1f0b4212060dc0e388a44701e4a1f49635b8f47344156ad65cd273660e3b0a806480c37875a830e2f5d8e56c4ec0818 SHA512 3b68dc6d7815707d74d1340facd9c2de4dff3934402ac2c2632371b39c41a75744434744ed7308e157be03a03a941405638cadb6f34995de56fb1f5f45d37de2 +EBUILD pam_wrapper-1.1.3-r3.ebuild 1553 BLAKE2B a32635c0f16be69ee7dc64470175bae8ff793af6ce2a712e6d81b3d7d81d81ab0ec32eab24b0630b191c51d648fafa22db7e2758a15622d7652d203cf9b633b2 SHA512 7ac097214afb444942597508b80083d6e45f04efed76aa0fb7b36434cab6cf8e6347d61ece14ee3046c050942d81f3e0a3ec38371cc7e72819aaa008def4ee8a EBUILD pam_wrapper-1.1.3.ebuild 1107 BLAKE2B c7c5c853f9a1afb50dbf13cb3ffbce7cf53e8c8dba0bcf18e58ea54357c8e4a34e464e6d920d4d86e28a76b345f350067f7a9392f20f4d07be2fc354a6fb9928 SHA512 565455f3861d0b67f6cf68962816f9059002b37bc66221903f4b5e5555db0d3351323b2de3e5bb372b92ba0c4095a4ab1daf1209234243d93b5c3e8905a8855a +EBUILD pam_wrapper-1.1.4.ebuild 1548 BLAKE2B f77a7c4c1aec86a6f50e7f13237b23c48894533a98e44eda778ea246d86258dedead74899f692958fef16d5e3f72002cdfdee7c2944803b065fb803969de81cc SHA512 0e6e01399e4ea2a090ce22c3f42fa0bb03f6bb3ab137c033b1c57fb9cac6b2c5792754fe582c38dabfa1478a896a91c666632f1890d22f67f76f0240c1e60621 MISC metadata.xml 250 BLAKE2B e398673dd1a3522ccddb89a82a53fc2578d8e0777ec46f889d01d618609a22958d91699beef513c7912799e0e8ff985200f7c67bba941235da25c24cd4b48f09 SHA512 16834c3cbecd0dd5a9c8c311d2b8ebc63d8cd72c5891498f4f0048988993c104aadd4e24e632bf54071c11f810716432e89e4afab029555875f9f52794daa6e9 diff --git a/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r2.ebuild b/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r2.ebuild deleted file mode 100644 index 651440322594..000000000000 --- a/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r2.ebuild +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -CMAKE_ECLASS=cmake - -inherit cmake-multilib python-r1 - -DESCRIPTION="A tool to test PAM applications and PAM modules" -HOMEPAGE="https://cwrap.org/pam_wrapper.html" -SRC_URI=" - https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz - https://ftp.samba.org/pub/cwrap/${P}.tar.gz -" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" -IUSE="test" -RESTRICT="!test? ( test )" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -RDEPEND=" - ${PYTHON_DEPS} - sys-libs/pam:0=[${MULTILIB_USEDEP}] -" -DEPEND=" - ${RDEPEND} - test? ( dev-util/cmocka[${MULTILIB_USEDEP}] ) -" - -multilib_src_configure() { - configure_for_python() { - local libpam="${EPREFIX}/$(get_libdir)/libpam.so.0" - - local mycmakeargs=( - -DPAM_LIBRARY="${libpam}" - -DUNIT_TESTING=OFF - ) - - cmake_src_configure - } - - if multilib_is_native_abi ; then - # Build the Pythons for each version (but only for the native ABI) - # bug #737468 - python_foreach_impl configure_for_python - fi - - # Do the regular build now - local libpam="${EPREFIX}" - multilib_is_native_abi || libpam+="/usr" - libpam+="/$(get_libdir)/libpam.so.0" - - local mycmakeargs=( - -DPAM_LIBRARY="${libpam}" - -DUNIT_TESTING=$(usex test) - -DCMAKE_DISABLE_FIND_PACKAGE_Python{Libs,Interp,SiteLibs}=ON - ) - - cmake_src_configure -} - -multilib_src_compile() { - if multilib_is_native_abi ; then - python_foreach_impl cmake_src_compile - fi - - # Compile the "proper" version without Python last - cmake_src_compile -} - -multilib_src_install() { - if multilib_is_native_abi ; then - python_foreach_impl cmake_src_install - fi - - # Install the "proper" version without Python last - cmake_src_install -} diff --git a/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild b/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild new file mode 100644 index 000000000000..fe217064fb7f --- /dev/null +++ b/sys-libs/pam_wrapper/pam_wrapper-1.1.3-r3.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +CMAKE_ECLASS=cmake + +inherit cmake-multilib python-r1 + +DESCRIPTION="A tool to test PAM applications and PAM modules" +HOMEPAGE="https://cwrap.org/pam_wrapper.html" +SRC_URI=" + https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz + https://ftp.samba.org/pub/cwrap/${P}.tar.gz +" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86" +IUSE="test" +RESTRICT="!test? ( test )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + sys-libs/pam:0=[${MULTILIB_USEDEP}] +" +DEPEND=" + ${RDEPEND} + test? ( dev-util/cmocka[${MULTILIB_USEDEP}] ) +" + +multilib_src_configure() { + configure_for_python() { + local mycmakeargs=( + -DUNIT_TESTING=OFF + ) + + cmake_src_configure + } + + if multilib_is_native_abi ; then + # Build the Pythons for each version (but only for the native ABI) + # bug #737468 + python_foreach_impl configure_for_python + fi + + # Do the regular build now + local mycmakeargs=( + -DUNIT_TESTING=$(usex test) + -DCMAKE_DISABLE_FIND_PACKAGE_Python{Libs,Interp,SiteLibs}=ON + ) + + cmake_src_configure +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + python_foreach_impl cmake_src_compile + fi + + # Compile the "proper" version without Python last + cmake_src_compile +} + +multilib_src_install() { + if multilib_is_native_abi ; then + python_foreach_impl cmake_src_install + fi + + # Install the "proper" version without Python last + cmake_src_install +} diff --git a/sys-libs/pam_wrapper/pam_wrapper-1.1.4.ebuild b/sys-libs/pam_wrapper/pam_wrapper-1.1.4.ebuild new file mode 100644 index 000000000000..96a3d1fd2aa8 --- /dev/null +++ b/sys-libs/pam_wrapper/pam_wrapper-1.1.4.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{8..10} ) +CMAKE_ECLASS=cmake + +inherit cmake-multilib python-r1 + +DESCRIPTION="A tool to test PAM applications and PAM modules" +HOMEPAGE="https://cwrap.org/pam_wrapper.html" +SRC_URI=" + https://www.samba.org/ftp/pub/cwrap/${P}.tar.gz + https://ftp.samba.org/pub/cwrap/${P}.tar.gz +" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="test" +RESTRICT="!test? ( test )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND=" + ${PYTHON_DEPS} + sys-libs/pam:0=[${MULTILIB_USEDEP}] +" +DEPEND=" + ${RDEPEND} + test? ( dev-util/cmocka[${MULTILIB_USEDEP}] ) +" + +multilib_src_configure() { + configure_for_python() { + local mycmakeargs=( -DUNIT_TESTING=OFF ) + cmake_src_configure + } + + if multilib_is_native_abi ; then + # Build the Pythons for each version (but only for the native ABI) + # bug #737468 + python_foreach_impl configure_for_python + fi + + # Do the regular build now + local mycmakeargs=( + -DUNIT_TESTING=$(usex test) + -DCMAKE_DISABLE_FIND_PACKAGE_Python{Libs,Interp,SiteLibs}=ON + ) + cmake_src_configure +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + python_foreach_impl cmake_src_compile + fi + + # Compile the "proper" version without Python last + cmake_src_compile +} + +multilib_src_install() { + if multilib_is_native_abi ; then + python_foreach_impl cmake_src_install + fi + + # Install the "proper" version without Python last + cmake_src_install +} diff --git a/sys-libs/readline/Manifest b/sys-libs/readline/Manifest index 7d5bf76cbb8f..9ae2b4ac6440 100644 --- a/sys-libs/readline/Manifest +++ b/sys-libs/readline/Manifest @@ -6,5 +6,5 @@ AUX readline-8.0-headers.patch 577 BLAKE2B b8fe6cdf51188f68c852d3c9052e7840a0bcb AUX readline-8.1-windows-signals.patch 569 BLAKE2B af1ad52b09a1a49e6045bd640d57f3932f2b8db450b2eb7e0787a4326f6c61445ad83395620caf489da14107e8a51aed5d5fdf8e3268fab83d8ff04d393b1a59 SHA512 37aa778a21e360708d371aaf3f08274f75b15d8b2c42b030bda8d65dda81b1713c748644e45b6662c608da14ad413d6d83e43800ea58309fa60256a18317f5ae DIST readline-8.1.tar.gz 2993288 BLAKE2B f0feca1ea3517b2b613adacac8c997cce0e86aa2f410c82a40ce1a2e128067112b4c68dbf25b808291c28c47583345abac994ce10b8d117958afcb96ee5e7c69 SHA512 27790d0461da3093a7fee6e89a51dcab5dc61928ec42e9228ab36493b17220641d5e481ea3d8fee5ee0044c70bf960f55c7d3f1a704cf6b9c42e5c269b797e00 DIST readline81-001 2454 BLAKE2B 7ec4e5c39a224a70643b44b88bcfef5198e199c76f2a34f0b0ce24f1747dd46be49ddf93871c474cda64322b4358127fec4c2401d19422f84934546bbe1f3bf2 SHA512 cfbef10bdeb562a302ccf214878d02ebadf799343b3d2d7996a282f81bcfde83997ba6dcc9a8477af4dd7c73bca74105ca00a81e42ed13321672bd2930550e54 -EBUILD readline-8.1_p1-r1.ebuild 5901 BLAKE2B 41d0c089c8bc43c20a83dc975f81f2953dd199ba86ac12fe563a82c76bf2a3085a66d328331bf6ccefc6bb3553d697408568fff8cd98bd61b70fa04c91dd8154 SHA512 9e3b525d325b3b65131f04b04c630df8f0f8d47f5394f77df574f353438144cfb69d2690ea1ee28ec15fd888a43f2aecdbdd3741d0f41b994b4b2305484bdd5e +EBUILD readline-8.1_p1-r1.ebuild 5901 BLAKE2B 4819d05f4e9fd9d9b737eeabf14cedb8e9879f554b5bb3cf2d1635ca2f3e07382e16dec40693aa183d51cd2d362f77942614f5129392363ce5097fd401b59795 SHA512 54c1365e53e218e3a404fffe2343627218b4230db5be183ce7c79c417ae8c083ac00cf5f619c7344284635155ff2dbf6071ba631283c0f3c2ace8aa1cd7b2581 MISC metadata.xml 473 BLAKE2B 95401399d6edc2a1a28f9c0f42123b07568d5c517c49be38eff09e1f23a9b5df4d5b302495db8880c8ed65081ea2920f194e6b32402ab0d6049221e9ee6a4eed SHA512 e54e4ce57f3178aa8646acb6798f46074eb33173ab63d61f62bc9ab1d35ef823ce9ee3e173234f8866e2cb635519869c76a449f5073c3a5b7cfd29cd23c16462 diff --git a/sys-libs/readline/readline-8.1_p1-r1.ebuild b/sys-libs/readline/readline-8.1_p1-r1.ebuild index 7ee132fe1f14..36d25d6c4aad 100644 --- a/sys-libs/readline/readline-8.1_p1-r1.ebuild +++ b/sys-libs/readline/readline-8.1_p1-r1.ebuild @@ -6,7 +6,7 @@ EAPI=7 inherit flag-o-matic multilib multilib-minimal preserve-libs toolchain-funcs usr-ldscript # Official patches -# See ftp://ftp.cwru.edu/pub/bash/readline-7.0-patches/ +# See ftp://ftp.cwru.edu/pub/bash/readline-8.1-patches/ PLEVEL="${PV##*_p}" MY_PV="${PV/_p*}" MY_PV="${MY_PV/_/-}" -- cgit v1.2.3