diff options
Diffstat (limited to 'dev-libs')
71 files changed, 2928 insertions, 566 deletions
diff --git a/dev-libs/apache-arrow/apache-arrow-19.0.0.ebuild b/dev-libs/apache-arrow/apache-arrow-19.0.0.ebuild index 9ac405157cf5..396c0fd62e90 100644 --- a/dev-libs/apache-arrow/apache-arrow-19.0.0.ebuild +++ b/dev-libs/apache-arrow/apache-arrow-19.0.0.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${P}/cpp" LICENSE="Apache-2.0" SLOT="0/$(ver_cut 1)" -KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~riscv ~s390 ~x86" +KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ~riscv ~s390 ~x86" IUSE=" +brotli bzip2 compute dataset +json lz4 +parquet re2 +snappy ssl test zlib zstd diff --git a/dev-libs/bglibs/bglibs-2.04-r3.ebuild b/dev-libs/bglibs/bglibs-2.04-r3.ebuild new file mode 100644 index 000000000000..cf69431cce50 --- /dev/null +++ b/dev-libs/bglibs/bglibs-2.04-r3.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Bruce Guenter's Libraries Collection" +HOMEPAGE="https://untroubled.org/bglibs/" +SRC_URI="https://untroubled.org/bglibs/archive/${P}.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0/2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="doc" + +BDEPEND=" + sys-apps/which + dev-build/libtool + doc? ( + app-text/doxygen + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + virtual/latex-base + ) +" + +PATCHES=( + "${FILESDIR}"/bglibs-2.04-stack-buffers.patch + "${FILESDIR}"/bglibs-2.04-feature-tests.patch + "${FILESDIR}"/bglibs-2.04-musl.patch +) + +src_prepare() { + default + # disable tests as we want them manually + sed -i '/^all:/s|selftests||' Makefile || die + sed -i '/selftests/d' TARGETS || die +} + +src_configure() { + echo "$(tc-getCC) ${CFLAGS}" > conf-cc || die + echo "$(tc-getCC) ${LDFLAGS}" > conf-ld || die +} + +src_compile() { + # Parallel build fails, bug #343617 + MAKEOPTS+=" -j1" default + + if use doc; then + emake -C doc/latex pdf + fi +} + +src_test() { + einfo "Running selftests" + emake selftests +} + +src_install() { + echo "${ED}/usr/bin" > conf-bin || die + echo "${ED}/usr/$(get_libdir)/bglibs" > conf-lib || die + echo "${ED}/usr/include" > conf-include || die + echo "${ED}/usr/share/man" > conf-man || die + + default + + # Install .so into LDPATH + mv "${ED}"/usr/$(get_libdir)/bglibs/libbg.so.2.0.0 \ + "${ED}"/usr/$(get_libdir)/ \ + || die + dosym libbg.so.2.0.0 /usr/$(get_libdir)/libbg.so.2 + dosym libbg.so.2.0.0 /usr/$(get_libdir)/libbg.so + dosym ../libbg.so.2.0.0 /usr/$(get_libdir)/bglibs/libbg.so.2.0.0 + + rm "${ED}"/usr/$(get_libdir)/bglibs/libbg.la || die + + dodoc ANNOUNCEMENT NEWS README ChangeLog TODO VERSION + dodoc -r doc/html/ + if use doc; then + dodoc doc/latex/refman.pdf + fi +} diff --git a/dev-libs/bglibs/files/bglibs-2.04-feature-tests.patch b/dev-libs/bglibs/files/bglibs-2.04-feature-tests.patch new file mode 100644 index 000000000000..20cbe9e503ee --- /dev/null +++ b/dev-libs/bglibs/files/bglibs-2.04-feature-tests.patch @@ -0,0 +1,198 @@ +From 2ee0bd3ede22945756d727ee5efa52f593ab0a2f Mon Sep 17 00:00:00 2001 +From: NHOrus <jy6x2b32pie9@yahoo.com> +Date: Sat, 6 Apr 2024 12:12:13 +0400 +Subject: [PATCH] Feature tests fail to build with GCC-14 or Clang-17 + +Due to correctly detecting features removed from C99 as major source of errors +Fixing includes and main signature. + +Closes: #6 +--- + sys/tryflock.c | 2 +- + sys/trygetpeereid.c | 2 +- + sys/trynamedpipebug.c | 1 + + sys/trypoll.c | 1 + + sys/trysendfile.c | 2 +- + sys/trysigaction.c | 2 +- + sys/trysigprocmask.c | 2 +- + sys/tryspnam.c | 3 ++- + sys/tryulong32.c | 4 +++- + sys/tryulong64.c | 4 +++- + sys/tryunsetenv.c | 2 +- + sys/tryuserpw.c | 2 +- + sys/tryvfork.c | 4 +++- + sys/trywaitp.c | 2 +- + 14 files changed, 21 insertions(+), 12 deletions(-) + +diff --git a/sys/tryflock.c b/sys/tryflock.c +index 8c8aa76..b18743a 100644 +--- a/sys/tryflock.c ++++ b/sys/tryflock.c +@@ -2,7 +2,7 @@ + #include <sys/file.h> + #include <fcntl.h> + +-void main() ++int main() + { + flock(0,LOCK_EX | LOCK_UN | LOCK_NB); + } +diff --git a/sys/trygetpeereid.c b/sys/trygetpeereid.c +index cb8b858..e6529ce 100644 +--- a/sys/trygetpeereid.c ++++ b/sys/trygetpeereid.c +@@ -1,7 +1,7 @@ + #include <sys/types.h> + #include <unistd.h> + +-void main() ++int main() + { + getpeereid(); + } +diff --git a/sys/trynamedpipebug.c b/sys/trynamedpipebug.c +index df688a5..0f53b40 100644 +--- a/sys/trynamedpipebug.c ++++ b/sys/trynamedpipebug.c +@@ -2,6 +2,7 @@ + #include <fcntl.h> + #include <sys/time.h> + #include <unistd.h> ++#include <sys/stat.h> + + int main(void) + { +diff --git a/sys/trypoll.c b/sys/trypoll.c +index 7a2fd20..0aad538 100644 +--- a/sys/trypoll.c ++++ b/sys/trypoll.c +@@ -1,6 +1,7 @@ + #include <sys/types.h> + #include <fcntl.h> + #include <poll.h> ++#include <unistd.h> + + int main() + { +diff --git a/sys/trysendfile.c b/sys/trysendfile.c +index 05f67d3..3963cfa 100644 +--- a/sys/trysendfile.c ++++ b/sys/trysendfile.c +@@ -2,7 +2,7 @@ + #include <asm/unistd.h> + #include <unistd.h> + +-void main(void) { ++int main(void) { + int x; + x = __NR_sendfile; + sendfile(0, 1, 0, 0); +diff --git a/sys/trysigaction.c b/sys/trysigaction.c +index 263cb21..1471ecc 100644 +--- a/sys/trysigaction.c ++++ b/sys/trysigaction.c +@@ -1,6 +1,6 @@ + #include <signal.h> + +-void main() ++int main() + { + struct sigaction sa; + sa.sa_handler = 0; +diff --git a/sys/trysigprocmask.c b/sys/trysigprocmask.c +index 2797eea..3d73f86 100644 +--- a/sys/trysigprocmask.c ++++ b/sys/trysigprocmask.c +@@ -1,6 +1,6 @@ + #include <signal.h> + +-main() ++int main() + { + sigset_t ss; + +diff --git a/sys/tryspnam.c b/sys/tryspnam.c +index 622ba8b..c916217 100644 +--- a/sys/tryspnam.c ++++ b/sys/tryspnam.c +@@ -1,6 +1,7 @@ + #include <shadow.h> ++#include <stdio.h> + +-void main() ++int main() + { + struct spwd *spw; + +diff --git a/sys/tryulong32.c b/sys/tryulong32.c +index a108076..1278283 100644 +--- a/sys/tryulong32.c ++++ b/sys/tryulong32.c +@@ -1,4 +1,6 @@ +-void main() ++#include <unistd.h> ++ ++int main() + { + unsigned long u; + u = 1; +diff --git a/sys/tryulong64.c b/sys/tryulong64.c +index 01965cb..74b8f0e 100644 +--- a/sys/tryulong64.c ++++ b/sys/tryulong64.c +@@ -1,4 +1,6 @@ +-main() ++#include <unistd.h> ++ ++int main() + { + unsigned long u; + u = 1; +diff --git a/sys/tryunsetenv.c b/sys/tryunsetenv.c +index 99f5dcd..cb977e4 100644 +--- a/sys/tryunsetenv.c ++++ b/sys/tryunsetenv.c +@@ -1,5 +1,5 @@ + #include <stdlib.h> + +-void main(void) { ++int main(void) { + unsetenv("PATH"); + } +diff --git a/sys/tryuserpw.c b/sys/tryuserpw.c +index fb14623..a359d27 100644 +--- a/sys/tryuserpw.c ++++ b/sys/tryuserpw.c +@@ -1,6 +1,6 @@ + #include <userpw.h> + +-void main() ++int main() + { + struct userpw *upw; + +diff --git a/sys/tryvfork.c b/sys/tryvfork.c +index 21387e4..83b57a0 100644 +--- a/sys/tryvfork.c ++++ b/sys/tryvfork.c +@@ -1,4 +1,6 @@ +-void main() ++#include <unistd.h> ++ ++int main() + { + vfork(); + } +diff --git a/sys/trywaitp.c b/sys/trywaitp.c +index 7e73bfa..0380358 100644 +--- a/sys/trywaitp.c ++++ b/sys/trywaitp.c +@@ -1,7 +1,7 @@ + #include <sys/types.h> + #include <sys/wait.h> + +-void main() ++int main() + { + waitpid(0,0,0); + } diff --git a/dev-libs/bglibs/files/bglibs-2.04-musl.patch b/dev-libs/bglibs/files/bglibs-2.04-musl.patch new file mode 100644 index 000000000000..65819699926a --- /dev/null +++ b/dev-libs/bglibs/files/bglibs-2.04-musl.patch @@ -0,0 +1,100 @@ +From 999598621421a46ef2d11244f57b70855a28ec60 Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky <michael@orlitzky.com> +Date: Fri, 7 Feb 2025 04:43:56 +0000 +Subject: [PATCH 1/3] net/{bindu,connectu}.c: add missing <string.h> includes + +These two files call strcpy() which is defined in string.h. It's +probably included transitively on glibc, but on musl this leads +to a build failure. +--- + net/bindu.c | 1 + + net/connectu.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/net/bindu.c b/net/bindu.c +index bf228dd..3d30579 100644 +--- a/net/bindu.c ++++ b/net/bindu.c +@@ -21,6 +21,7 @@ + #include <sys/socket.h> + #include <sys/un.h> + #include <unistd.h> ++#include <string.h> + #include "socket.h" + + /** Bind a UNIX domain address (path) to a socket. */ +diff --git a/net/connectu.c b/net/connectu.c +index a0a00ad..a82b9aa 100644 +--- a/net/connectu.c ++++ b/net/connectu.c +@@ -21,6 +21,7 @@ + #include <sys/socket.h> + #include <sys/un.h> + #include <unistd.h> ++#include <string.h> + #include "socket.h" + + /** Make an UNIX domain connection. */ + +From d930f1ff4043e25c1d5427e474af0de4cc787e2c Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky <michael@orlitzky.com> +Date: Fri, 7 Feb 2025 04:45:12 +0000 +Subject: [PATCH 2/3] unix/sig_all.c: drop <sys/signal.h> include + +The POSIX name for this header is <signal.h>, + + https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html + +and while the "sys" name still works, it now generates a warning on +musl + + In file included from unix/sig_all.c:2: + /usr/include/sys/signal.h:1:2: warning: #warning redirecting incorrect + #include <sys/signal.h> to <signal.h> [-Wcpp] + 1 | #warning redirecting incorrect #include <sys/signal.h> to <signal.h> + | ^~~~~~~ + +and presumably will not work forever. +--- + unix/sig_all.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/unix/sig_all.c b/unix/sig_all.c +index b8821de..f2cb1e4 100644 +--- a/unix/sig_all.c ++++ b/unix/sig_all.c +@@ -1,5 +1,4 @@ + #include <signal.h> +-#include <sys/signal.h> + #include "sig.h" + #include "sysdeps.h" + + +From 5069fe01396d465c3d39ed8353f5d88538086b0d Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky <michael@orlitzky.com> +Date: Fri, 7 Feb 2025 13:48:38 +0000 +Subject: [PATCH 3/3] selftests.sh: fgrep -> grep -F + +GNU grep now warns that "fgrep" is obsolete: + + Creating temporary directory selftests.sh.tmp.35861 + fgrep: warning: fgrep is obsolescent; using /bin/grep -F + +The "-F" flag is part of POSIX and should be reliable. +--- + selftests.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/selftests.sh b/selftests.sh +index 23c7719..8d9944f 100644 +--- a/selftests.sh ++++ b/selftests.sh +@@ -48,7 +48,7 @@ if [ $# -gt 0 ]; then + do_test $c || exitcode=false + done + else +- for c in `fgrep -l '#ifdef SELFTEST_MAIN' */*.c` ++ for c in `grep -F -l '#ifdef SELFTEST_MAIN' */*.c` + do + do_test $c || exitcode=false + done diff --git a/dev-libs/botan/Manifest b/dev-libs/botan/Manifest index 1939ab8d5a25..680925424474 100644 --- a/dev-libs/botan/Manifest +++ b/dev-libs/botan/Manifest @@ -8,3 +8,5 @@ DIST Botan-3.2.0.tar.xz 8998204 BLAKE2B f21e7574af93ab3331607f4a4ecf1b2cbbc0db4b DIST Botan-3.2.0.tar.xz.asc 488 BLAKE2B f7bc716dd18eedf35928933e22c75de3d2731330dfdaf8a5048e8ad86e1f3896ea55294a64b7f82593af16dd2e4097a9ba68f25baa024e175b7334478bcf84a6 SHA512 3ee42ac73e1bd6cea0a2e9f468b88d67c02a4a69786c41ddf9fc7f94b6847be00e0f3f0f38f934ab599b8d6dd29006414294df8b371f5cf2422292f3dd176756 DIST Botan-3.6.1.tar.xz 7581864 BLAKE2B 744eed158e021d26b9414b3a098e017e6e2c2160fc7fb6a0f24f6cbbb4b08501157108dedd7a71fc3645e27c86608a9ba5d18a11087adfd1c9b174ca3ce85b30 SHA512 06327c55bee5e0d2e142f81b997dd8a1ef98f61ef920b57f6eb4e80ebf6b3de1c62373b889d4a32e62509495792e0b46d5dcc82a6446266974b4d4ead8d9f287 DIST Botan-3.6.1.tar.xz.asc 488 BLAKE2B 3538c941f707a182f86226dfdbb8222570671e0bce3ca61137a5d978c2b1f5e658ffc1168d7e73a1861210adfac8aa661124c9cbc4950973f7b1e2c3360aab90 SHA512 871c6d91368d8a080e704afb53b1339c6d06aa57aaa45f260bccf1cb1ed31c635587ba930f954ab55668a7ca13b89b2f2acba3c0f1723e3f7190c6ebe9dc2e0b +DIST Botan-3.7.1.tar.xz 8659408 BLAKE2B 3cd934bc738c0665c4a5b3ea4391402058ade2159a185ee257aa2746ef8aa29e59873fd0a95dbdf978ce950bab6c25a72975d73b5d17da898cb16bc04ae7b8ba SHA512 f9b5d793642e9f9e9f444de3a0851840b4ed1f5f82804ad60bb5ede62c5a90ea05cb41e8aefcf556caa15da1aaa78ba1fcb040df3365705e3fd9c6a12788b72e +DIST Botan-3.7.1.tar.xz.asc 488 BLAKE2B 6f00bf01f0f02e8cefd926e4b5f70feb8e689ef9286684e45c5d1139a686af649bf44950e7bfc6a9c881d1d233c1ab5d10ee0815e8119e0ffdc89ec62ec5089c SHA512 a3fc9958e606b0bc073287dc45cb4e2143ff3399a8891a4d51a0c25052d9eb395d97bd31eb97b13344a27186e32906a6411927211345f3ae06464acb73eaa3b6 diff --git a/dev-libs/botan/botan-3.7.1.ebuild b/dev-libs/botan/botan-3.7.1.ebuild new file mode 100644 index 000000000000..fedf9575a46c --- /dev/null +++ b/dev-libs/botan/botan-3.7.1.ebuild @@ -0,0 +1,224 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/botan.asc +inherit edo flag-o-matic multiprocessing ninja-utils python-r1 toolchain-funcs verify-sig + +MY_P="Botan-${PV}" +DESCRIPTION="C++ crypto library" +HOMEPAGE="https://botan.randombit.net/" +SRC_URI="https://botan.randombit.net/releases/${MY_P}.tar.xz" +SRC_URI+=" verify-sig? ( https://botan.randombit.net/releases/${MY_P}.tar.xz.asc )" +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD-2" +# New major versions are parallel-installable +SLOT="$(ver_cut 1)/$(ver_cut 1-2)" # soname version +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-macos" +IUSE="doc boost bzip2 lzma python static-libs sqlite test tools zlib" +CPU_USE=( + cpu_flags_arm_{aes,neon,sha1,sha2} + cpu_flags_ppc_altivec + cpu_flags_x86_{aes,avx2,popcnt,rdrand,sha,sse2,ssse3,sse4_1,sse4_2} +) +IUSE+=" ${CPU_USE[@]}" +RESTRICT="!test? ( test )" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +# NOTE: Boost is needed at runtime too for the CLI tool. +DEPEND=" + boost? ( dev-libs/boost:= ) + bzip2? ( >=app-arch/bzip2-1.0.5:= ) + lzma? ( app-arch/xz-utils:= ) + python? ( ${PYTHON_DEPS} ) + sqlite? ( dev-db/sqlite:3= ) + zlib? ( >=sys-libs/zlib-1.2.3:= ) +" +RDEPEND=" + ${DEPEND} + !<dev-libs/botan-2.19.3-r1:2[tools] +" +BDEPEND=" + ${PYTHON_DEPS} + ${NINJA_DEPEND} + $(python_gen_any_dep ' + doc? ( dev-python/sphinx[${PYTHON_USEDEP}] ) + ') + || ( >=sys-devel/gcc-11:* >=llvm-core/clang-14:* ) + verify-sig? ( sec-keys/openpgp-keys-botan ) +" + +# NOTE: Considering patching Botan? +# Please see upstream's guidance: +# https://botan.randombit.net/handbook/packaging.html#minimize-distribution-patches + +python_check_deps() { + use doc || return 0 + python_has_version "dev-python/sphinx[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + # bug #908958 + if tc-is-gcc && ver_test $(gcc-version) -lt 11 ; then + eerror "Botan needs >=gcc-11 or >=clang-14 to compile." + eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc" + die "GCC version is too old to compile Botan!" + elif tc-is-clang && ver_test $(clang-version) -lt 14 ; then + eerror "Botan needs >=gcc-11 or >=clang-14 to compile." + eerror "Please upgrade Clang: emerge -v1 llvm-core/clang" + die "Clang version is too old to compile Botan!" + fi +} + +src_configure() { + tc-export AR CC CXX + python_setup + + local disable_modules=( + $(usev !boost 'boost') + ) + + if [[ -z "${DISABLE_MODULES}" ]] ; then + elog "Disabling module(s): ${disable_modules[@]}" + fi + + local chostarch="${CHOST%%-*}" + + # Arch specific wrangling + local myos= + case ${CHOST} in + *-darwin*) + myos=darwin + ;; + *) + myos=linux + + if [[ ${CHOST} == *hppa* ]] ; then + chostarch=parisc + elif [[ ${ABI} == sparc64 ]] ; then + chostarch="sparc64" + elif [[ ${ABI} == sparc32 ]] ; then + chostarch="sparc32" + fi + ;; + esac + + local pythonvers=() + if use python ; then + _append() { + pythonvers+=( ${EPYTHON/python/} ) + } + + python_foreach_impl _append + fi + + local myargs=( + # Intrinsics + # TODO: x86 RDSEED (new CPU_FLAGS_X86?) + # TODO: POWER Crypto (new CPU_FLAGS_PPC?) + $(usev !cpu_flags_arm_aes '--disable-armv8crypto') + $(usev !cpu_flags_arm_neon '--disable-neon') + $(usev !cpu_flags_arm_sha1 '--disable-armv8crypto') + $(usev !cpu_flags_arm_sha2 '--disable-armv8crypto') + $(usev !cpu_flags_ppc_altivec '--disable-altivec') + $(usev !cpu_flags_x86_aes '--disable-aes-ni') + $(usev !cpu_flags_x86_avx2 '--disable-avx2') + $(usev !cpu_flags_x86_popcnt '--disable-bmi2') + $(usev !cpu_flags_x86_rdrand '--disable-rdrand') + $(usev !cpu_flags_x86_sha '--disable-sha-ni') + $(usev !cpu_flags_x86_sse2 '--disable-sse2') + $(usev !cpu_flags_x86_ssse3 '--disable-ssse3') + $(usev !cpu_flags_x86_sse4_1 '--disable-sse4.1') + $(usev !cpu_flags_x86_sse4_2 '--disable-sse4.2') + + # HPPA's GCC doesn't support SSP + $(usev hppa '--without-stack-protector') + + $(use_with boost) + $(use_with bzip2) + $(use_with doc documentation) + $(use_with doc sphinx) + $(use_with lzma) + $(use_enable static-libs static-library) + $(use_with sqlite sqlite3) + $(use_with zlib) + + --build-tool=ninja + --cpu=${chostarch} + --docdir=share/doc + --disable-modules=$(IFS=","; echo "${disable_modules[*]}") + --distribution-info="Gentoo ${PVR}" + --libdir="$(get_libdir)" + # Avoid collisions between slots for tools (bug #905700) + --program-suffix=$(ver_cut 1) + + # Don't install Python bindings automatically + # (do it manually later in the right place) + # bug #723096 + --no-install-python-module + + --os=${myos} + --prefix="${EPREFIX}"/usr + --lto-cxxflags-to-ldflags + --with-endian="$(tc-endian)" + --with-python-version=$(IFS=","; echo "${pythonvers[*]}") + ) + + local build_targets=( + shared + $(usev static-libs static) + $(usev tools cli) + $(usev test tests) + ) + + myargs+=( + --build-targets=$(IFS=","; echo "${build_targets[*]}") + ) + + if ( use elibc_glibc || use elibc_musl ) && use kernel_linux ; then + myargs+=( + --with-os-features=getrandom,getentropy + ) + fi + + local sanitizers=() + if is-flagq -fsanitize=address ; then + sanitizers+=( address ) + fi + if is-flagq -fsanitize=undefined ; then + sanitizers+=( undefined ) + fi + filter-flags '-fsanitize=*' + myargs+=( + --enable-sanitizers=$(IFS=","; echo "${sanitizers[*]}") + ) + + edo ${EPYTHON} configure.py --verbose "${myargs[@]}" +} + +src_compile() { + eninja +} + +src_test() { + LD_LIBRARY_PATH="${S}" edo ./botan-test$(ver_cut 1) --test-threads="$(makeopts_jobs)" +} + +src_install() { + DESTDIR="${D}" eninja install + + if [[ -d "${ED}"/usr/share/doc/${P} && ${P} != ${PF} ]] ; then + # --docdir in configure controls the parent directory unfortunately + mv "${ED}"/usr/share/doc/${P} "${ED}"/usr/share/doc/${PF} || die + fi + + # Manually install the Python bindings (bug #723096) + if use python ; then + python_foreach_impl python_domodule src/python/botan$(ver_cut 1).py + fi +} diff --git a/dev-libs/cowsql/Manifest b/dev-libs/cowsql/Manifest index 4479e4197578..f9f5785abaa9 100644 --- a/dev-libs/cowsql/Manifest +++ b/dev-libs/cowsql/Manifest @@ -1 +1,2 @@ DIST cowsql-1.15.6.tar.gz 364548 BLAKE2B 67ccb0cc1481c4d542c2a145c76875b514f4920fe2d3647d1871afa67e6cb7a41c729946c89768b1c522ed22357fb0323d58885ca60141db154da54e3a5a5a0a SHA512 78436fc35ab22fed1aef1d1048e41fbd6ec75a7b8fc95f09bc7468cde0ea8d8851e4ef5ee738699810abf3054826ab7cfd21dc06964603acea240b0fc7943c4d +DIST cowsql-1.15.7.tar.gz 364592 BLAKE2B d3cd4e399d029c63743cee081cd32c19fe364f4dd093c40f62162a2387a9a0da956b19f2f75dc9e556e18c8d957edcbee5c9fe449e3ba9961eb556cdc981a6e5 SHA512 d01fe084d911f13be4d21997f3ec4ba1b11d15198dbad404d55962abd4924dcc95d48eb7d8d94d3f65c512194d25acf761954994c5ffece78a27eff438441fda diff --git a/dev-libs/cowsql/cowsql-1.15.7.ebuild b/dev-libs/cowsql/cowsql-1.15.7.ebuild new file mode 100644 index 000000000000..6a1a5ed5fe66 --- /dev/null +++ b/dev-libs/cowsql/cowsql-1.15.7.ebuild @@ -0,0 +1,53 @@ +# Copyright 2020-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="Embeddable, replicated and fault tolerant SQL engine (fork of dqlite)" +HOMEPAGE="https://cowsql.dev/ https://github.com/cowsql/cowsql" +SRC_URI="https://github.com/cowsql/cowsql/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-3-with-linking-exception" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND="dev-db/sqlite:3 + dev-libs/libuv:= + >=dev-libs/raft-0.18.1:=" +DEPEND="${RDEPEND} + test? ( dev-libs/raft[lz4,test] )" +BDEPEND="virtual/pkgconfig" + +PATCHES=( "${FILESDIR}"/dqlite-1.12.0-disable-werror.patch ) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + local myeconfargs=( + --disable-backtrace + --disable-debug + --disable-sanitize + --disable-static + + # Will build a bundled libsqlite3.so. + --enable-build-sqlite=no + ) + + econf "${myeconfargs[@]}" +} + +src_test() { + default +} + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} diff --git a/dev-libs/flatbuffers/flatbuffers-25.1.24.ebuild b/dev-libs/flatbuffers/flatbuffers-25.1.24.ebuild index cdd8e1c2f807..859512f5d8cd 100644 --- a/dev-libs/flatbuffers/flatbuffers-25.1.24.ebuild +++ b/dev-libs/flatbuffers/flatbuffers-25.1.24.ebuild @@ -17,7 +17,7 @@ SRC_URI=" LICENSE="Apache-2.0" SLOT="0/${PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" +KEYWORDS="~amd64 ~arm arm64 ~loong ~riscv x86" IUSE="static-libs test" RESTRICT="!test? ( test )" diff --git a/dev-libs/girara/girara-0.4.4.ebuild b/dev-libs/girara/girara-0.4.4.ebuild index 3c3053168e30..9f30fcd9e81a 100644 --- a/dev-libs/girara/girara-0.4.4.ebuild +++ b/dev-libs/girara/girara-0.4.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,7 @@ if [[ ${PV} == *9999 ]]; then EGIT_BRANCH="develop" else SRC_URI="https://github.com/pwmt/girara/archive/${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm ~arm64 ~riscv x86" fi LICENSE="ZLIB" diff --git a/dev-libs/hipother/Manifest b/dev-libs/hipother/Manifest index 2dde3bd57777..59565b60d5fe 100644 --- a/dev-libs/hipother/Manifest +++ b/dev-libs/hipother/Manifest @@ -1,2 +1,3 @@ DIST hipother-6.1.1.tar.gz 33496 BLAKE2B 026967cb298a888df441d543d70478836036b81dc26c8284410076daf18eb28dc42f7d4b6aaf2bfaa8b6c957ada8244afc0e7c40882c0370bc2b6a0ae94ffaf8 SHA512 ca4d5df9e3138e845be051aace8fb02d84b879439e6bc9ca1551853f80f54b554b9cad1a91c6c114160b21d3ca62fa47a88e32efe60c0f475ff8b56f7f18b5d4 DIST hipother-6.3.0.tar.gz 37660 BLAKE2B 8af74369c769750575d55c7ab152af32f6b8ce06f65247fb1390900427c0a24282b4681dbd65e36241262423a793af48b432fc252d0fad5ac367c25f242e1865 SHA512 3bdd70e6ef34aeb51c7d973f73cf3b761016659892c57719cc85d123e8212e4510c5d799563d20cea9de441e983ed148900c6656784a0cc28d0f67c4ea91c99e +DIST hipother-6.3.2.tar.gz 37656 BLAKE2B 23a29c674cec1dd6f99b24f901cd27883356c67c925156b34757c186a3105377a2d6c207338b8593de5af16b9f7a7b6ee8a528ab0cbfe93a3a57f5843a9b0a60 SHA512 d783a5356d71bc5dcf333d878c0cb44e306c29a7752a4d891300243682b04cfb6807c410e8b63d4fd5e1cb045554266477535fbd352bcbb65a242f5ee1f9d3db diff --git a/dev-libs/hipother/hipother-6.3.2.ebuild b/dev-libs/hipother/hipother-6.3.2.ebuild new file mode 100644 index 000000000000..b580389fc332 --- /dev/null +++ b/dev-libs/hipother/hipother-6.3.2.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="ROCclr runtime implementation for non-AMD HIP platforms, like NVIDIA" +HOMEPAGE="https://github.com/ROCm/hipother" +SRC_URI="https://github.com/ROCm/hipother/archive/refs/tags/rocm-${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/hipother-rocm-${PV}" + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +RDEPEND=" + !<dev-util/hip-6 +" + +src_install() { + insinto /usr/include + doins -r hipnv/include/hip +} diff --git a/dev-libs/isa-l/isa-l-2.31.0.ebuild b/dev-libs/isa-l/isa-l-2.31.0.ebuild index cff37c2a7586..f84cf0ad1919 100644 --- a/dev-libs/isa-l/isa-l-2.31.0.ebuild +++ b/dev-libs/isa-l/isa-l-2.31.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ SRC_URI="https://github.com/intel/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}. LICENSE="BSD" SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc ~x86" +KEYWORDS="amd64 ~arm arm64 ~riscv ~sparc x86" IUSE="cpu_flags_x86_avx512f" # AVX512 support in yasm is still work in progress diff --git a/dev-libs/kopeninghours/Manifest b/dev-libs/kopeninghours/Manifest index 0349244418d9..78352d62d76f 100644 --- a/dev-libs/kopeninghours/Manifest +++ b/dev-libs/kopeninghours/Manifest @@ -1,2 +1,3 @@ DIST kopeninghours-24.08.3.tar.xz 74616 BLAKE2B 083dfdda40b2d7084cb4dccf253d911ad4a2228dc4b88ff9386be7b95a9d44ee93a54a185b2ab7892c2f37f50480305876016bade7cad04b64bcd3073323ccb5 SHA512 fe953735989f4da3e3e0c652f8df4a5a96762c7bfad23e88d2472f8004f4eec550589328e7a45edace37acf9129fe4f397e54bce4c72b124fa1fe20536f1248e DIST kopeninghours-24.12.1.tar.xz 74860 BLAKE2B 4102999c5f264580b750ddf1fa5232226aef355b051b115e1a4cfc924f7dab1ca60601cc487f3646bd4dbaae4642f2b876308d0e67e2884d91399ffe36523524 SHA512 63f71ddee3e8e7e85a92dcc98fc925b6b13a539709950cf0e9adcef3e8ad2b29694181a2e13887b769af91308de77966de06b7ea841739436805ea1b57d93af6 +DIST kopeninghours-24.12.2.tar.xz 74836 BLAKE2B b24fe6c3117f15f9e06f1185f4c5e6f38918dbe99843e592d4d62512d7e0ee7cd65aeaeb6d90488e4782fd5f2063c1c16aae39acea3167a30ae7709708953d9e SHA512 3d15286f71632ed983df6e28f96ba0556c35231ab7501dc55250fdef0903988d953f7d5e3cf9ed0b2104b7355307d7b63f2402378849a4059c17e9abcf360adb diff --git a/dev-libs/kopeninghours/kopeninghours-24.12.2.ebuild b/dev-libs/kopeninghours/kopeninghours-24.12.2.ebuild new file mode 100644 index 000000000000..3182b121a372 --- /dev/null +++ b/dev-libs/kopeninghours/kopeninghours-24.12.2.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_QTHELP="true" +ECM_TEST="true" +PVCUT=$(ver_cut 1-3) +KFMIN=6.7.0 +QTMIN=6.7.2 +PYTHON_COMPAT=( python3_{10..12} ) +inherit ecm gear.kde.org python-single-r1 + +DESCRIPTION="Library for parsing and evaluating OSM opening hours expressions" +HOMEPAGE="https://api.kde.org/kopeninghours/html/index.html +https://invent.kde.org/libraries/kopeninghours" + +LICENSE="LGPL-2+" +SLOT="6" +KEYWORDS="~amd64 ~arm64" +IUSE="python" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +DEPEND=" + >=dev-libs/kpublictransport-${PVCUT}:6 + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=kde-frameworks/kholidays-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + sys-libs/zlib + python? ( + $(python_gen_cond_dep ' + >=dev-libs/boost-1.70:=[python,${PYTHON_USEDEP}] + ') + ) +" +RDEPEND="${DEPEND} + ${PYTHON_DEPS} +" +BDEPEND=" + app-alternatives/lex + app-alternatives/yacc +" + +PATCHES=( "${FILESDIR}"/${PN}-22.04.0-boostpython.patch ) + +pkg_setup() { + ecm_pkg_setup + python_setup +} + +src_configure() { + local mycmakeargs=( + -DBOOSTPYTHON_VERSION_MAJOR_MINOR=${EPYTHON} + $(cmake_use_find_package python Boost) + ) + ecm_src_configure +} + +src_install() { + ecm_src_install + python_optimize +} diff --git a/dev-libs/kosmindoormap/Manifest b/dev-libs/kosmindoormap/Manifest index 800ff93647bb..bc55c705e1d1 100644 --- a/dev-libs/kosmindoormap/Manifest +++ b/dev-libs/kosmindoormap/Manifest @@ -1,2 +1,3 @@ DIST kosmindoormap-24.08.3.tar.xz 692392 BLAKE2B 41879a7ef4dbde858d8e6f2e53b4b32efd94f4277ed8bf6c9d4343907364814acc00cc5bdf09840e429e7fd4cf2150d535dcb261ae7debcc0c941837b1607385 SHA512 cf63d91306d41d8fd9cc3c33eee91a6380a0d043a610b49b214dfb8de76531dacf03e2745d1783e4627b218e6bf55b370d1946b6e4276aea10906d790d63f881 DIST kosmindoormap-24.12.1.tar.xz 693648 BLAKE2B 53435662dd3f80e7aa5bfd1949dd337fc9ca90883330c25f47a800715c933fa54c60af32b1aa3fabdfd607972153daf1f19d0fb52db06719b7e00246b2675839 SHA512 9bb1d87e28836019439878d6b5dcb5d82839f5b5a6b3beb7964bd3d13b7ffbfb9796b7ca6180727c110a579630b0ff5a9e78d65c35535db7e3cebaf65f282efb +DIST kosmindoormap-24.12.2.tar.xz 694728 BLAKE2B df8815eca82200794a5ff37619c063a7eadf16669abe20690aa0d56e4dc2b44e8b503a1e140f9a06524156583fb7770b9c107afaf8b6466fe4441d420c19edcb SHA512 f9e41340985ceb68f8cc9f1aa0bd1222156542b5448fac52564e130c70d760a019c3c37a174d13d521010d42ac831eeb0ac9d6a408737239bb4b2a4277ce7bf9 diff --git a/dev-libs/kosmindoormap/kosmindoormap-24.12.2.ebuild b/dev-libs/kosmindoormap/kosmindoormap-24.12.2.ebuild new file mode 100644 index 000000000000..b8a26817ebff --- /dev/null +++ b/dev-libs/kosmindoormap/kosmindoormap-24.12.2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_TEST="true" +PVCUT=$(ver_cut 1-3) +KFMIN=6.7.0 +QTMIN=6.7.2 +inherit ecm gear.kde.org + +DESCRIPTION="Data Model and Extraction System for Travel Reservation information" +HOMEPAGE="https://invent.kde.org/libraries/kosmindoormap" + +LICENSE="LGPL-2+" +SLOT="6" +KEYWORDS="~amd64 ~arm64" +IUSE="+gui" + +# kservice is optional and only used to find and open josm +RDEPEND=" + dev-libs/protobuf:= + >=dev-qt/qtbase-${QTMIN}:6[gui?,network] + sys-libs/zlib + gui? ( + >=dev-libs/kopeninghours-${PVCUT}:6 + >=dev-libs/kpublictransport-${PVCUT}:6 + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + >=kde-frameworks/kservice-${KFMIN}:6 + ) +" +DEPEND="${RDEPEND} + test? ( >=dev-qt/qtbase-${QTMIN}:6[widgets] ) +" +BDEPEND=" + app-alternatives/lex + app-alternatives/yacc +" + +src_configure() { + local mycmakeargs=( + -DBUILD_TOOLS_ONLY=$(usex !gui) + -DCMAKE_DISABLE_FIND_PACKAGE_OsmTools=ON # we have no use for it + ) + ecm_src_configure +} diff --git a/dev-libs/kpublictransport/Manifest b/dev-libs/kpublictransport/Manifest index 67e7de509847..7bde69abef82 100644 --- a/dev-libs/kpublictransport/Manifest +++ b/dev-libs/kpublictransport/Manifest @@ -1,2 +1,3 @@ DIST kpublictransport-24.08.3.tar.xz 744252 BLAKE2B 590da416055119224ebdaf2c14e8c45377910bf77097a9099b46707a03138179d80ba48363af9041ea630b11924699cd135318a22e9ca3ac359db0bdd9aa74c6 SHA512 04b9278119b071da3170504c3609b41d98d36853d34f81ac8995dad491056c120a8cfce79483cdcb78810ff31cb5dfb6c92147bf0feb163f1f4bd19775ae9243 DIST kpublictransport-24.12.1.tar.xz 776512 BLAKE2B ff991da8e1babb68dc943e669632a0f4b6e28a1b8d53ca24c0ecf09e9065e246ced526047c0e30d3bbf8e378f14ae0a188a6302124f0db2c740b9d202fccfbe0 SHA512 c81ba13bca0df907484a4d2fce7ef9ae1fda8bb8684398a246fb0fdcf6272b76e4902d2e1a01c13f080b6a0ada870fddccbe362364a240a00158aa15cb150b62 +DIST kpublictransport-24.12.2.tar.xz 814536 BLAKE2B ec26e4e1d6f25fb0d08d0d3e7604e75f48a4530e45b0b38adb966254d116282734d6e5ebaac5b6dce9cad90a0d001add9e891f399564330bc5ea8edb9df29f74 SHA512 6305a4237d9e364e3e2ada3d0a2a221d82ce05840a8d002e1e9375fbd6f969406ea7b35c0db6184def9aad4d345f932481719b6b5d8a1e941f67a47dd42c05f3 diff --git a/dev-libs/kpublictransport/kpublictransport-24.12.2.ebuild b/dev-libs/kpublictransport/kpublictransport-24.12.2.ebuild new file mode 100644 index 000000000000..edf5189f0a2d --- /dev/null +++ b/dev-libs/kpublictransport/kpublictransport-24.12.2.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_QTHELP="true" +ECM_TEST="true" +KFMIN=6.7.0 +QTMIN=6.7.2 +inherit ecm gear.kde.org + +DESCRIPTION="Library for accessing public transport timetables and other information" +HOMEPAGE="https://invent.kde.org/libraries/kpublictransport + https://www.volkerkrause.eu/2019/03/02/kpublictransport-introduction.html" + +LICENSE="LGPL-2+" +SLOT="6" +KEYWORDS="~amd64 ~arm64" +IUSE="networkmanager" + +RDEPEND=" + dev-libs/protobuf:= + >=dev-qt/qtbase-${QTMIN}:6[gui,network,ssl] + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + sys-libs/zlib + networkmanager? ( >=kde-frameworks/networkmanager-qt-${KFMIN}:6 ) +" +DEPEND="${RDEPEND} + test? ( >=dev-qt/qtbase-${QTMIN}:6[widgets] ) +" + +src_configure() { + local mycmakeargs=( + -DCMAKE_DISABLE_FIND_PACKAGE_OsmTools=ON # we have no use for it + $(cmake_use_find_package networkmanager KF6NetworkManagerQt) + ) + ecm_src_configure +} diff --git a/dev-libs/kqoauth/Manifest b/dev-libs/kqoauth/Manifest deleted file mode 100644 index 16be419d67e6..000000000000 --- a/dev-libs/kqoauth/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST kqoauth-0.98.tar.gz 37059 BLAKE2B d1214ac22cb52e7ead1be3ce7af2af9c4b2e1cb74e2b4bf3891300099c0a0abb0c7295fb4616adcb59cb4405eb52bec4097b48d39563ac407bfe692ce94492a2 SHA512 f89e0f046fb7fd7812548f94c460d7c18d4881972e155a99e07503e97fd46b6eada0de9f2c3a94af33ef5b1b3b489bbd5dc6738cee104fe2d11ed62e681c7979 diff --git a/dev-libs/kqoauth/kqoauth-0.98-r3.ebuild b/dev-libs/kqoauth/kqoauth-0.98-r3.ebuild deleted file mode 100644 index 2da85d77ce6d..000000000000 --- a/dev-libs/kqoauth/kqoauth-0.98-r3.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit qmake-utils - -DESCRIPTION="Library for Qt that implements the OAuth 1.0 authentication specification" -HOMEPAGE="https://github.com/kypeli/kQOAuth" -SRC_URI="https://github.com/kypeli/kQOAuth/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND=" - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtxml:5 -" -RDEPEND="${DEPEND}" - -S="${WORKDIR}/kQOAuth-${PV}" - -src_prepare() { - default - - # prevent tests from beeing built at src_compile - sed -i -e '/SUBDIRS/s/ tests//' ${PN}.pro || die "sed on ${PN}.pro failed" - # respect libdir - sed -e 's:{INSTALL_PREFIX}/lib:[QT_INSTALL_LIBS]:g' -i src/src.pro || die "sed on src.pro failed" - - sed \ - -e "s/TARGET = kqoauth/TARGET = kqoauth-qt5/g" \ - -i src/src.pro || die - - # upstream .pc is aimed at Qt4 - sed \ - -e "/^Libs/s/lkqoauth/&-qt5/" \ - -e "/^libdir/s/lib$/$(get_libdir)/" \ - -e "/^Requires/s/Qt/Qt5/g" \ - -i src/pcfile.sh || die -} - -src_configure() { - eqmake5 -} - -src_install() { - emake INSTALL_ROOT="${D}" install -} diff --git a/dev-libs/kqoauth/metadata.xml b/dev-libs/kqoauth/metadata.xml deleted file mode 100644 index d4ebbef4cd20..000000000000 --- a/dev-libs/kqoauth/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person" proxied="yes"> - <email>0xd34df00d@gmail.com</email> - <name>Georg Rudoy</name> - </maintainer> - <maintainer type="project" proxied="proxy"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <upstream> - <remote-id type="github">kypeli/kQOAuth</remote-id> - </upstream> -</pkgmetadata> diff --git a/dev-libs/kweathercore/Manifest b/dev-libs/kweathercore/Manifest index 78108be018d7..bf334ce27474 100644 --- a/dev-libs/kweathercore/Manifest +++ b/dev-libs/kweathercore/Manifest @@ -1,2 +1,3 @@ DIST kweathercore-24.08.3.tar.xz 75416 BLAKE2B 1e61a17ae4d5ced5879af63975fcdcba3215a75ebe97fd2d616b92d7c7b8104423049371d3494b884b401c200b2fb441c74d164f24d7fa099bdbabfa728dc338 SHA512 a9b128e4e939c567f32e14a4401a7ab101e8364d8c9c0c0386f72f00d879748637aebcb8e45c5f75324555e2213bb21bb76bc368884d6f70f7057a5392c607ae DIST kweathercore-24.12.1.tar.xz 75796 BLAKE2B 08af40e4a2459457149b51e301c18b1f349b55ba41a1270f56be914a34bb2a39d346a574aae93f2dc63ec9c1964ff4c5375f16e2d588d2c644d5acb666d71363 SHA512 04aea2f072725a8f850aca0b98c87e9605b46999a355e2590f251369054a512b358d032fedede71d057e9ec622136549eec05f0680d5acc93d67bf6f2ffdc32b +DIST kweathercore-24.12.2.tar.xz 75832 BLAKE2B dda0402cf111e7d698dda120eb5d8e6d9fd47231f6c7a1c807621dda713719a5cffff5b1621239083840025aa91d6f88beed3c5cb4c3f46be8e04e9093bae8a6 SHA512 f8f35510b621b69954db741d4f3f9f55c2c834cd7da4360186c63a2ba6fdb0db13b552846d9412f7863dc2376c0e1025a9f7420ca9aa2ac5333a421aed2bc21c diff --git a/dev-libs/kweathercore/kweathercore-24.12.2.ebuild b/dev-libs/kweathercore/kweathercore-24.12.2.ebuild new file mode 100644 index 000000000000..20744092c015 --- /dev/null +++ b/dev-libs/kweathercore/kweathercore-24.12.2.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_NONGUI="true" +ECM_QTHELP="true" +ECM_TEST="true" +KFMIN=6.7.0 +QTMIN=6.7.2 +inherit ecm gear.kde.org + +DESCRIPTION="Library for retrieval of weather information including forecasts and alerts" +HOMEPAGE="https://invent.kde.org/libraries/kweathercore" + +LICENSE="LGPL-2+" +SLOT="6" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" + +DEPEND=" + >=dev-qt/qtbase-${QTMIN}:6[network] + >=dev-qt/qtpositioning-${QTMIN}:6 + >=kde-frameworks/kholidays-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 +" +RDEPEND="${DEPEND}" + +CMAKE_SKIP_TESTS=( + locationquerytest + # bug 906392 + metnoparsertest +) diff --git a/dev-libs/level-zero/Manifest b/dev-libs/level-zero/Manifest index 360f6e4f4161..fcc4f7184256 100644 --- a/dev-libs/level-zero/Manifest +++ b/dev-libs/level-zero/Manifest @@ -1 +1,2 @@ DIST level-zero-1.20.2.tar.gz 900836 BLAKE2B 9dd22b518b72a08906f4fa4538b7f6642e5627d7659e5e52e3733bfcd9a85cae89874b4b1caf305ce3e5c03b40292fc97d53923cb0f886a1c2b9c3a9f937a652 SHA512 86bd21b034aaa4e0ce8f554a6563f41e622fcf39895c012dcc79d472e35f878dc759b103e9d2b7daac71e4943344a7afddd1f3c7ab889949b09b4cf8e0947589 +DIST level-zero-1.20.3.tar.gz 906836 BLAKE2B 6311430a6517b69a417141e28e6bfb7e7b276fd0110330f647932bc0bdb9dd3229281b973389b07589d2f3d9ee0ff53d2b2bf08be697f63a521df3992be68412 SHA512 51bae0cc2113e9a2d634b9569a4846e5a993dddb101c30284ffba13ab2473bc642efd53c8bdd5df38727a64753e38285ac7cf3f5d109185da5d0e5dafde67222 diff --git a/dev-libs/level-zero/level-zero-1.20.3.ebuild b/dev-libs/level-zero/level-zero-1.20.3.ebuild new file mode 100644 index 000000000000..7855ea438290 --- /dev/null +++ b/dev-libs/level-zero/level-zero-1.20.3.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="oneAPI Level Zero headers, loader and validation layer" +HOMEPAGE="https://github.com/oneapi-src/level-zero" +SRC_URI="https://github.com/oneapi-src/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~amd64" + +RDEPEND="dev-libs/spdlog:=" +DEPEND="${RDEPEND}" + +src_prepare() { + # Don't hardcore -Werror + sed -e 's/-Werror//g' -i CMakeLists.txt || die + + cmake_src_prepare + + # According to upstream, release tarballs should contain this file but at least + # some of them do not. Fortunately it is trivial to make one ourselves. + echo "$(ver_cut 3)" > "${S}"/VERSION_PATCH || die +} + +src_configure() { + local mycmakeargs=( + -DSYSTEM_SPDLOG="ON" + ) + + cmake_src_configure +} diff --git a/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.2.0.ebuild b/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.2.0.ebuild index ae539acde3e3..129d52e1c06a 100644 --- a/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.2.0.ebuild +++ b/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.2.0.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="~amd64 arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2" diff --git a/dev-libs/libffi/libffi-3.4.6-r3.ebuild b/dev-libs/libffi/libffi-3.4.6-r3.ebuild new file mode 100644 index 000000000000..e8471b2b545b --- /dev/null +++ b/dev-libs/libffi/libffi-3.4.6-r3.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal preserve-libs + +MY_PV=${PV/_rc/-rc} +MY_P=${PN}-${MY_PV} + +DESCRIPTION="Portable, high level programming interface to various calling conventions" +HOMEPAGE="https://sourceware.org/libffi/" + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/libffi/libffi" + inherit git-r3 +else + SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="MIT" +# This is a core package which is depended on by e.g. Python. +# Please use preserve-libs.eclass in pkg_{pre,post}inst to cover users +# with FEATURES="-preserved-libs" or another package manager if SONAME changes. +SLOT="0/8" # SONAME=libffi.so.8 +IUSE="debug exec-static-trampoline pax-kernel static-libs test" + +RESTRICT="!test? ( test )" +BDEPEND="test? ( dev-util/dejagnu )" + +PATCHES=( + "${FILESDIR}"/${P}-arm64-bti.patch + "${FILESDIR}"/${P}-arm64-bti-spelling.patch + "${FILESDIR}"/${P}-arm64-support-pac.patch + "${FILESDIR}"/${P}-arm64-fix-build.patch + "${FILESDIR}"/${P}-sparc-struct-targs.patch + "${FILESDIR}"/${P}-test-typo.patch + "${FILESDIR}"/${P}-arm64-cfi.patch + "${FILESDIR}"/${P}-asan.patch + "${FILESDIR}"/${P}-regenerate-autotools.patch + "${FILESDIR}"/${P}-c23-tests.patch +) + +src_prepare() { + default + + if [[ ${CHOST} == arm64-*-darwin* ]] ; then + # ensure we use aarch64 asm, not x86 on arm64 + sed -i -e 's/aarch64\*-\*-\*/arm64*-*-*|&/' \ + configure configure.host || die + fi +} + +multilib_src_configure() { + # --includedir= path maintains a few properties: + # 1. have stable name across libffi versions: some packages like + # dev-lang/ghc or kde-frameworks/networkmanager-qt embed + # ${includedir} at build-time. Don't require those to be + # rebuilt unless SONAME changes. bug #695788 + # + # We use /usr/.../${PN} (instead of former /usr/.../${P}). + # + # 2. have ${ABI}-specific location as ffi.h is target-dependent. + # + # We use /usr/$(get_libdir)/... to have ABI identifier. + ECONF_SOURCE="${S}" econf \ + --includedir="${EPREFIX}"/usr/$(get_libdir)/${PN}/include \ + --disable-multi-os-directory \ + $(use_enable static-libs static) \ + $(use_enable exec-static-trampoline exec-static-tramp) \ + $(use_enable pax-kernel pax_emutramp) \ + $(use_enable debug) +} + +multilib_src_test() { + emake -Onone check +} + +multilib_src_install_all() { + einstalldocs + find "${ED}" -name "*.la" -delete || die +} + +pkg_preinst() { + preserve_old_lib /usr/$(get_libdir)/libffi.so.7 +} + +pkg_postinst() { + preserve_old_lib_notify /usr/$(get_libdir)/libffi.so.7 +} diff --git a/dev-libs/libffi/libffi-9999.ebuild b/dev-libs/libffi/libffi-9999.ebuild index 51d1f5c466e6..0f77bf10562f 100644 --- a/dev-libs/libffi/libffi-9999.ebuild +++ b/dev-libs/libffi/libffi-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -13,7 +13,7 @@ HOMEPAGE="https://sourceware.org/libffi/" if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/libffi/libffi" - inherit git-r3 + inherit autotools git-r3 else SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz" @@ -35,6 +35,8 @@ BDEPEND="test? ( dev-util/dejagnu )" src_prepare() { default + [[ ${PV} == 9999 ]] && eautoreconf + if [[ ${CHOST} == arm64-*-darwin* ]] ; then # ensure we use aarch64 asm, not x86 on arm64 sed -i -e 's/aarch64\*-\*-\*/arm64*-*-*|&/' \ diff --git a/dev-libs/libqtxdg/libqtxdg-4.1.0.ebuild b/dev-libs/libqtxdg/libqtxdg-4.1.0.ebuild index b3c1a8f0f8f9..de59799ee0df 100644 --- a/dev-libs/libqtxdg/libqtxdg-4.1.0.ebuild +++ b/dev-libs/libqtxdg/libqtxdg-4.1.0.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="~amd64 arm64 ~loong ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+ Nokia-Qt-LGPL-Exception-1.1" diff --git a/dev-libs/libzip/libzip-1.11.2-r1.ebuild b/dev-libs/libzip/libzip-1.11.2-r1.ebuild index 568eae26576c..bfb53ae2c13e 100644 --- a/dev-libs/libzip/libzip-1.11.2-r1.ebuild +++ b/dev-libs/libzip/libzip-1.11.2-r1.ebuild @@ -13,7 +13,7 @@ LICENSE="BSD" SLOT="0/5" KEYWORDS="amd64 ~arm ~arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86" IUSE="bzip2 gnutls lzma mbedtls ssl static-libs test tools zstd" -REQUIRED_USE="test? ( tools )" +REQUIRED_USE="test? ( ssl tools )" RESTRICT="!test? ( test )" DEPEND=" diff --git a/dev-libs/libzip/libzip-1.11.3.ebuild b/dev-libs/libzip/libzip-1.11.3.ebuild index 3f609d8bdb85..1b32987b2b99 100644 --- a/dev-libs/libzip/libzip-1.11.3.ebuild +++ b/dev-libs/libzip/libzip-1.11.3.ebuild @@ -13,7 +13,7 @@ LICENSE="BSD" SLOT="0/5" KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" IUSE="bzip2 gnutls lzma mbedtls ssl static-libs test tools zstd" -REQUIRED_USE="test? ( tools )" +REQUIRED_USE="test? ( ssl tools )" RESTRICT="!test? ( test )" DEPEND=" diff --git a/dev-libs/nspr/Manifest b/dev-libs/nspr/Manifest index c9f0651f9f88..a36c2942a3e3 100644 --- a/dev-libs/nspr/Manifest +++ b/dev-libs/nspr/Manifest @@ -1,2 +1 @@ -DIST nspr-4.35.tar.gz 1096974 BLAKE2B c80402d7be9e69ab6d1e768a18d271a8d28900f4cae7df2709d1ab26e100d908f508762bb771d4042aa7152934ce83d495e2102e894c56574187be8040d65629 SHA512 502815833116e25f79ddf71d1526484908aa92fbc55f8a892729cb404a4daafcc0470a89854cd080d2d20299fdb7d9662507c5362c7ae661cbacf308ac56ef7f DIST nspr-4.36.tar.gz 1036274 BLAKE2B 369d851db0f425f0c6c3cdaeb333320860b77b49b40b77cc983998de3f9128f9d987f143e9f2ce155d609fb23f3f9ed0d0abe7d74e20c59763e2b9bdd1835817 SHA512 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee diff --git a/dev-libs/nspr/nspr-4.35-r2.ebuild b/dev-libs/nspr/nspr-4.35-r2.ebuild deleted file mode 100644 index 4aafc2acbe8a..000000000000 --- a/dev-libs/nspr/nspr-4.35-r2.ebuild +++ /dev/null @@ -1,178 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit autotools flag-o-matic toolchain-funcs multilib-minimal - -MIN_PV="$(ver_cut 2)" - -DESCRIPTION="Netscape Portable Runtime" -HOMEPAGE="https://www.mozilla.org/projects/nspr/" -SRC_URI="https://archive.mozilla.org/pub/nspr/releases/v${PV}/src/${P}.tar.gz" - -LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris" -IUSE="debug" - -MULTILIB_CHOST_TOOLS=( - /usr/bin/nspr-config -) - -PATCHES=( - "${FILESDIR}"/${PN}-4.10.6-solaris.patch - "${FILESDIR}"/${PN}-4.23-prtime.patch - "${FILESDIR}"/${PN}-4.7.1-solaris.patch - "${FILESDIR}"/${PN}-4.8.4-darwin-install_name.patch - "${FILESDIR}"/${PN}-4.8.9-link-flags.patch - # We do not need to pass -L$libdir via nspr-config --libs - "${FILESDIR}"/${PN}-4.9.5_nspr_config.patch -) - -QA_CONFIGURE_OPTIONS="--disable-static" - -src_prepare() { - cd "${S}"/nspr || die - - default - - if use elibc_musl; then - eapply "${FILESDIR}"/${PN}-4.21-ipv6-musl-support.patch - eapply "${FILESDIR}"/nspr-4.35-bgo-905998-lfs64-musl.patch - fi - - # rename configure.in to configure.ac for new autotools compatibility - if [[ -e "${S}"/nspr/configure.in ]] ; then - einfo "Renaming configure.in to configure.ac" - mv "${S}"/nspr/configure.{in,ac} || die - else - elog "configure.in rename logic can be removed from ebuild." - fi - - # We must run eautoconf to regenerate configure - eautoconf - - # make sure it won't find Perl out of Prefix - sed -i -e "s/perl5//g" "${S}"/nspr/configure || die - - # Respect LDFLAGS - sed -i -e 's/\$(MKSHLIB) \$(OBJS)/\$(MKSHLIB) \$(LDFLAGS) \$(OBJS)/g' \ - "${S}"/nspr/config/rules.mk || die -} - -multilib_src_configure() { - # -Werror=strict-aliasing - # https://bugs.gentoo.org/867634 - # - # Testsuite-only issue. Still, this makes it challenging to test the package with LTO - # enabled... - append-flags -fno-strict-aliasing - filter-lto - - # The build system overrides user optimization level based on a configure flag. #886987 - local my_optlvl=$(get-flag '-O*') - - # bgo #923802 - append-lfs-flags - - # We use the standard BUILD_xxx but nspr uses HOST_xxx - tc-export_build_env BUILD_CC - export HOST_CC=${BUILD_CC} HOST_CFLAGS=${BUILD_CFLAGS} HOST_LDFLAGS=${BUILD_LDFLAGS} - tc-export AR AS CC CXX RANLIB - [[ ${CBUILD} != ${CHOST} ]] \ - && export CROSS_COMPILE=1 \ - || unset CROSS_COMPILE - - local myconf=( --libdir="${EPREFIX}/usr/$(get_libdir)" ) - - # Optimization is disabled when debug is enabled. - if use debug; then - myconf+=( --enable-debug ) - else - myconf+=( --disable-debug ) - myconf+=( --enable-optimize="${my_optlvl}" ) - fi - - # The configure has some fancy --enable-{{n,x}32,64bit} switches - # that trigger some code conditional to platform & arch. This really - # matters for the few common arches (x86, ppc) but we pass a little - # more of them to be future-proof. - - # use ABI first, this will work for most cases - case "${ABI}" in - alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) ;; - n32) myconf+=( --enable-n32 );; - x32) myconf+=( --enable-x32 );; - s390x|*64) myconf+=( --enable-64bit );; - default) # no abi actually set, fall back to old check - einfo "Running a short build test to determine 64bit'ness" - # TODO: Port this to toolchain-funcs tc-get-ptr-size/tc-get-build-ptr-size - echo > "${T}"/test.c || die - ${CC} ${CFLAGS} ${CPPFLAGS} -fno-lto -c "${T}"/test.c -o "${T}"/test.o || die - case $(file -S "${T}"/test.o) in - *32-bit*x86-64*) myconf+=( --enable-x32 );; - *64-bit*|*ppc64*|*x86_64*) myconf+=( --enable-64bit );; - *32-bit*|*ppc*|*i386*) ;; - *) die "Failed to detect whether your arch is 64bits or 32bits, disable distcc if you're using it, please";; - esac ;; - *) ;; - esac - - # Ancient autoconf needs help finding the right tools. - LC_ALL="C" ECONF_SOURCE="${S}/nspr" \ - ac_cv_path_AR="${AR}" \ - ac_cv_path_AS="${AS}" \ - econf "${myconf[@]}" -} - -multilib_src_test() { - # https://firefox-source-docs.mozilla.org/nspr/running_nspr_tests.html - cd "${BUILD_DIR}/pr/tests" || die - einfo "Building tests" - emake - - einfo "Running test suite" - ../../../${P}/${PN}/pr/tests/runtests.pl | tee "${T}"/${ABI}-tests.log - - # Needed to check if runtests.pl itself or the tee (somehow) failed - # (can't use die with pipes to check each component) - [[ ${PIPESTATUS[@]} == "0 0" ]] || die "Tests failed to run!" - - local known_failures=( - # network-sandbox related? - cltsrv - # network-sandbox related? - gethost - ) - - local known_failure - for known_failure in "${known_failures[@]}" ; do - sed -i -e "/${known_failure}.*FAILED/d" "${T}"/${ABI}-tests.log || die - done - - # But to actually check the test results, we examine the log. - if grep -q "FAILED" "${T}"/${ABI}-tests.log ; then - die "Test failure for ${ABI}!" - fi -} - -multilib_src_install() { - # Their build system is royally confusing, as usual - MINOR_VERSION=${MIN_PV} # Used for .so version - emake DESTDIR="${D}" install - - einfo "removing static libraries as upstream has requested!" - rm "${ED}"/usr/$(get_libdir)/*.a || die "failed to remove static libraries." - - # install nspr-config - dobin config/nspr-config - - # Remove stupid files in /usr/bin - rm "${ED}"/usr/bin/prerr.properties || die - - # This is used only to generate prerr.c and prerr.h at build time. - # No other projects use it, and we don't want to depend on perl. - # Talked to upstream and they agreed w/punting. - rm "${ED}"/usr/bin/compile-et.pl || die -} diff --git a/dev-libs/nss/Manifest b/dev-libs/nss/Manifest index f0594eb1e1ab..48de81a35643 100644 --- a/dev-libs/nss/Manifest +++ b/dev-libs/nss/Manifest @@ -1,4 +1,6 @@ DIST nss-3.101-cacert-class1-class3.patch 21925 BLAKE2B 2b37f6b69e0541f31087ff0401b195c035f4b607865c4d29976e4ad2c8143321d65b41b996e922362e076aa8259304ed67b0c4a1f8df2fdfdb1d893319f5d5e7 SHA512 19438aefbb361881c1b4620d8b1b5e7d2bf5afb44900858d3728ff6999a792bf6fe073a11f591ab70461bee8c54fdfb097e4084b402842bc49d2139897de304d DIST nss-3.101.2.tar.gz 76462495 BLAKE2B 3a0dfd7aa68bc11f332decfc9cb7003b8d8fa6a9dad556ad736229d7d3847e68aeaf5b74e68989a0483bd1b9e2e3afd3bdf8df3d428ebc815eda9a255f5695aa SHA512 65ac338ee1b13ecc2b190f1ea39c987110a06f3b67610e094ffc1ef4117d487c34af1e11b90de0c28035bfc5cb10ca7996ed991d9afce7985973fabb48cd7ac8 +DIST nss-3.101.3.tar.gz 76462813 BLAKE2B 03a38804da9e9df79df6c06ebd8b4d5f185cc841d10cd81239f0b3e55ddec3c1ac2b626850004f8d78ea698c8c4d55dbb4adcae9d58fd3890526300c15be96a3 SHA512 105be3ce7b34221ae16a681db12291d08b19fe6f9557bd975627570b5de92d3e2349b16453cca07675483efa0a72e41995750171f08a0d6bac61de2ac3b05850 DIST nss-3.104-cacert-class1-class3.patch 22038 BLAKE2B 66e2dd47230d6aa58a767e35c9c069fa29f3111d470345e0f69486d1eead3cd1741939ac394f6b9b637e79a10d658cfb1a9da4387953b8968a9001bab94d4de0 SHA512 bafc4212e0e0ca3eb129a5b88767727159c6ec3da450c7625d0b282f82699378d64eaa2c3fecb72c61000ec9b6d3c24f20bc7defdac6edc673e0fbb26e0c1f7e DIST nss-3.107.tar.gz 76617725 BLAKE2B 6f42cc9fa3c681083e7af0fe46b695a1b37b32facf7fe7f80718649db40a62a9d9a3de0be8910316a46fd42857fe713a77d72e45fa69fa980d9ad90d35b1db20 SHA512 a710459a46f5ca084fc5eb96047aeeece5010ebbffff3691a8487b667e9c520bd22d810cacca7b7b63b76d85a04c920748d169d0abb845b89b7b9804f9c38918 +DIST nss-3.108.tar.gz 76630022 BLAKE2B f7e58bc55ca9ccec83bfa0118267c9e4bec41f0f9852b31413cc19889c9e7e4beb87a7de303c7b3dfee3d8c84cc32cc90d84cf128daae1cea380c08ecc9b3ec5 SHA512 8a9545ec201f610abfae40d29e989c6a140b066755c02a36225a95fb9abfe47834352f3eae168e1cfb16382dfd12820c63bb9ad37361a624907cc45faa7bd34b diff --git a/dev-libs/nss/files/nss-3.101.3-update-expected-error-code-in-pkg12util-pbmac1-tests.patch b/dev-libs/nss/files/nss-3.101.3-update-expected-error-code-in-pkg12util-pbmac1-tests.patch new file mode 100644 index 000000000000..db3b6a33008d --- /dev/null +++ b/dev-libs/nss/files/nss-3.101.3-update-expected-error-code-in-pkg12util-pbmac1-tests.patch @@ -0,0 +1,49 @@ + +# HG changeset patch +# User John Schanck <jschanck@mozilla.com> +# Date 1731689351 0 +# Node ID 74feb03fe4f9efc0d5e5018b9a34376fc1261404 +# Parent 98e011fd3a24428abb886525630caacffabe01eb +Bug 1927096 - update expected error code in pk12util pbmac1 tests. r=rrelyea + +Differential Revision: https://phabricator.services.mozilla.com/D227894 + +diff --git a/tests/tools/tools.sh b/tests/tools/tools.sh +--- a/tests/tools/tools.sh ++++ b/tests/tools/tools.sh +@@ -539,31 +539,31 @@ tools_p12_import_pbmac1_samples() + ${BINDIR}/pk12util -i ${TOOLSDIR}/data/pbmac1-valid-sha512.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1 + ret=$? + html_msg $ret 0 "Importing private key pbmac1 hmac-sha-512 from PKCS#12 file" + check_tmpfile + + echo "${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-iter.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234'" + ${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-iter.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1 + ret=$? +- html_msg $ret 19 "Fail to list private key with bad iterator" ++ html_msg $ret 17 "Fail to list private key with bad iterator" + check_tmpfile + + echo "${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-salt.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234'" + ${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-bad-salt.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1 + ret=$? + echo "Fail to list private key with bad salt val=$ret" +- html_msg $ret 19 "Fail to import private key with bad salt" ++ html_msg $ret 17 "Fail to import private key with bad salt" + check_tmpfile + + echo "${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-no-length.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234'" + ${BINDIR}/pk12util -l ${TOOLSDIR}/data/pbmac1-invalid-no-length.p12 -d ${P_R_COPYDIR} -k ${R_PWFILE} -W '1234' 2>&1 + ret=$? + echo "Fail to import private key with no length val=$ret" +- html_msg $ret 19 "Fail to import private key with no length" ++ html_msg $ret 17 "Fail to import private key with no length" + check_tmpfile + } + + ############################## tools_p12 ############################### + # local shell function to test basic functionality of pk12util + ######################################################################## + tools_p12() + { + diff --git a/dev-libs/nss/nss-3.101.3.ebuild b/dev-libs/nss/nss-3.101.3.ebuild new file mode 100644 index 000000000000..a4d32ecb1c03 --- /dev/null +++ b/dev-libs/nss/nss-3.101.3.ebuild @@ -0,0 +1,419 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic multilib toolchain-funcs multilib-minimal + +NSPR_VER="4.35" +RTM_NAME="NSS_${PV//./_}_RTM" + +DESCRIPTION="Mozilla's Network Security Services library that implements PKI support" +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS" +SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/nss-3.101_3.tar.gz -> ${P}.tar.gz + cacert? ( https://dev.gentoo.org/~juippis/mozilla/patchsets/nss-3.101-cacert-class1-class3.patch )" + +LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-solaris" +IUSE="cacert test +utils cpu_flags_ppc_altivec cpu_flags_x86_avx2 cpu_flags_x86_sse3 cpu_flags_ppc_vsx" +RESTRICT="!test? ( test )" +# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND +RDEPEND=" + >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] + >=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + virtual/pkgconfig +" +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl" + +S="${WORKDIR}/nss-3.101_3/${PN}" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/nss-config +) + +PATCHES=( + "${FILESDIR}/${PN}-3.53-gentoo-fixups.patch" + "${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch" + "${FILESDIR}"/nss-3.87-use-clang-as-bgo892686.patch + "${FILESDIR}"/nss-3.101.3-update-expected-error-code-in-pkg12util-pbmac1-tests.patch +) + +src_prepare() { + default + + if use cacert ; then + eapply -p2 "${DISTDIR}"/nss-3.101-cacert-class1-class3.patch + fi + + pushd coreconf >/dev/null || die + # hack nspr paths + echo 'INCLUDES += -I$(DIST)/include/dbm' \ + >> headers.mk || die "failed to append include" + + # modify install path + sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \ + -i source.mk || die + + # Respect LDFLAGS + sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk + + # Workaround make-4.4's change to sub-make, bmo#1800237, bgo#882069 + sed -i -e "s/^CPU_TAG = _.*/CPU_TAG = _$(nssarch)/" Linux.mk || die + + popd >/dev/null || die + + # Fix pkgconfig file for Prefix + sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \ + config/Makefile || die + + # use host shlibsign if need be #436216 + if tc-is-cross-compiler ; then + sed -i \ + -e 's:"${2}"/shlibsign:shlibsign:' \ + cmd/shlibsign/sign.sh || die + fi + + # dirty hack + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \ + lib/ssl/config.mk || die + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \ + cmd/platlibs.mk || die + + multilib_copy_sources + + strip-flags +} + +multilib_src_configure() { + # Ensure we stay multilib aware + sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die +} + +nssarch() { + # Most of the arches are the same as $ARCH + local t=${1:-${CHOST}} + case ${t} in + *86*-pc-solaris2*) echo "i86pc" ;; + aarch64*) echo "aarch64" ;; + hppa*) echo "parisc" ;; + i?86*) echo "i686" ;; + x86_64*) echo "x86_64" ;; + *) tc-arch ${t} ;; + esac +} + +nssbits() { + local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS" + if [[ ${1} == BUILD_ ]]; then + cc=$(tc-getBUILD_CC) + else + cc=$(tc-getCC) + fi + # TODO: Port this to toolchain-funcs tc-get-ptr-size/tc-get-build-ptr-size + echo > "${T}"/test.c || die + ${cc} ${!cppflags} ${!cflags} -fno-lto -c "${T}"/test.c -o "${T}/${1}test.o" || die + case $(file -S "${T}/${1}test.o") in + *32-bit*x86-64*) echo USE_X32=1;; + *64-bit*|*ppc64*|*x86_64*) echo USE_64=1;; + *32-bit*|*ppc*|*i386*) ;; + *) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";; + esac +} + +multilib_src_compile() { + # use ABI to determine bit'ness, or fallback if unset + local buildbits mybits + case "${ABI}" in + n32) mybits="USE_N32=1";; + x32) mybits="USE_X32=1";; + s390x|*64) mybits="USE_64=1";; + ${DEFAULT_ABI}) + einfo "Running compilation test to determine bit'ness" + mybits=$(nssbits) + ;; + esac + # bitness of host may differ from target + if tc-is-cross-compiler; then + buildbits=$(nssbits BUILD_) + fi + + local makeargs=( + CC="$(tc-getCC)" + CCC="$(tc-getCXX)" + AR="$(tc-getAR) rc \$@" + RANLIB="$(tc-getRANLIB)" + OPTIMIZER= + ${mybits} + disable_ckbi=0 + ) + + # Take care of nspr settings #436216 + local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)" + unset NSPR_INCLUDE_DIR + + export NSS_ALLOW_SSLKEYLOGFILE=1 + export NSS_ENABLE_WERROR=0 #567158 + export BUILD_OPT=1 + export NSS_USE_SYSTEM_SQLITE=1 + export NSDISTMODE=copy + export FREEBL_NO_DEPEND=1 + export FREEBL_LOWHASH=1 + export NSS_SEED_ONLY_DEV_URANDOM=1 + export USE_SYSTEM_ZLIB=1 + export ZLIB_LIBS=-lz + export ASFLAGS="" + # Fix build failure on arm64 + export NS_USE_GCC=1 + # Detect compiler type and set proper environment value + if tc-is-gcc; then + export CC_IS_GCC=1 + elif tc-is-clang; then + export CC_IS_CLANG=1 + fi + + export NSS_DISABLE_GTESTS=$(usex !test 1 0) + + # Include exportable custom settings defined by users, #900915 + # Two examples uses: + # EXTRA_NSSCONF="MYONESWITCH=1" + # EXTRA_NSSCONF="MYVALUE=0 MYOTHERVALUE=1 MYTHIRDVALUE=1" + # e.g. + # EXTRA_NSSCONF="NSS_ALLOW_SSLKEYLOGFILE=0" + # or + # EXTRA_NSSCONF="NSS_ALLOW_SSLKEYLOGFILE=0 NSS_ENABLE_WERROR=1" + # etc. + if [[ -n "${EXTRA_NSSCONF}" ]]; then + ewarn "EXTRA_NSSCONF applied, please disable custom settings before reporting bugs." + read -a myextranssconf <<< "${EXTRA_NSSCONF}" + + for (( i=0; i<${#myextranssconf[@]}; i++ )); do + export "${myextranssconf[$i]}" + echo "exported ${myextranssconf[$i]}" + done + fi + + # explicitly disable altivec/vsx if not requested + # https://bugs.gentoo.org/789114 + case ${ARCH} in + ppc*) + use cpu_flags_ppc_altivec || export NSS_DISABLE_ALTIVEC=1 + use cpu_flags_ppc_vsx || export NSS_DISABLE_CRYPTO_VSX=1 + ;; + esac + + use cpu_flags_x86_avx2 || export NSS_DISABLE_AVX2=1 + use cpu_flags_x86_sse3 || export NSS_DISABLE_SSE3=1 + + local d + + # Build the host tools first. + LDFLAGS="${BUILD_LDFLAGS}" \ + XCFLAGS="${BUILD_CFLAGS}" \ + NSPR_LIB_DIR="${T}/fakedir" \ + emake -C coreconf \ + CC="$(tc-getBUILD_CC)" \ + ${buildbits-${mybits}} + makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" ) + + # Then build the target tools. + for d in . lib/dbm ; do + CPPFLAGS="${myCPPFLAGS}" \ + XCFLAGS="${CFLAGS} ${CPPFLAGS}" \ + NSPR_LIB_DIR="${T}/fakedir" \ + emake "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)" + done +} + +multilib_src_test() { + einfo "Tests can take a *long* time, especially on a multilib system." + einfo "30-45+ minutes per lib configuration. Bug #852755" + + # https://www.linuxfromscratch.org/blfs/view/svn/postlfs/nss.html + # https://firefox-source-docs.mozilla.org/security/nss/legacy/nss_sources_building_testing/index.html#running_the_nss_test_suite + # https://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html (older) + export BUILD_OPT=1 + export HOST="localhost" + export DOMSUF="localdomain" + export USE_IP=TRUE + export IP_ADDRESS="127.0.0.1" + + # Only run the standard cycle instead of full, reducing testing time from 45 minutes to 15 + # per lib implementation. + export NSS_CYCLES=standard + + NSINSTALL="${PWD}/$(find -type f -name nsinstall)" + + cd "${BUILD_DIR}"/tests || die + # Hack to get current objdir (prefixed dir where built binaries are) + # Without this, at least multilib tests go wrong when building the amd64 variant + # after x86. + local objdir=$(find "${BUILD_DIR}"/dist -maxdepth 1 -iname Linux* | rev | cut -d/ -f1 | rev) + + # Can tweak to a subset of tests in future if we need to, but would prefer not + OBJDIR="${objdir}" DIST="${BUILD_DIR}/dist" MOZILLA_ROOT="${BUILD_DIR}" ./all.sh || die +} + +# Altering these 3 libraries breaks the CHK verification. +# All of the following cause it to break: +# - stripping +# - prelink +# - ELF signing +# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html +# Either we have to NOT strip them, or we have to forcibly resign after +# stripping. +#local_libdir="$(get_libdir)" +#export STRIP_MASK=" +# */${local_libdir}/libfreebl3.so* +# */${local_libdir}/libnssdbm3.so* +# */${local_libdir}/libsoftokn3.so*" + +export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3" + +generate_chk() { + local shlibsign="$1" + local libdir="$2" + einfo "Resigning core NSS libraries for FIPS validation" + shift 2 + local i + for i in ${NSS_CHK_SIGN_LIBS} ; do + local libname=lib${i}.so + local chkname=lib${i}.chk + "${shlibsign}" \ + -i "${libdir}"/${libname} \ + -o "${libdir}"/${chkname}.tmp \ + && mv -f \ + "${libdir}"/${chkname}.tmp \ + "${libdir}"/${chkname} \ + || die "Failed to sign ${libname}" + done +} + +cleanup_chk() { + local libdir="$1" + shift 1 + local i + for i in ${NSS_CHK_SIGN_LIBS} ; do + local libfname="${libdir}/lib${i}.so" + # If the major version has changed, then we have old chk files. + [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \ + && rm -f "${libfname}.chk" + done +} + +multilib_src_install() { + pushd dist >/dev/null || die + + dodir /usr/$(get_libdir) + cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed" + local i + for i in crmf freebl nssb nssckfw ; do + cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" + done + + # Install nss-config and pkgconfig file + dodir /usr/bin + cp -L */bin/nss-config "${ED}"/usr/bin || die + dodir /usr/$(get_libdir)/pkgconfig + cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die + + # create an nss-softokn.pc from nss.pc for libfreebl and some private headers + # bug 517266 + sed -e 's#Libs:#Libs: -lfreebl#' \ + -e 's#Cflags:#Cflags: -I${includedir}/private#' \ + */lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \ + || die "could not create nss-softokn.pc" + + # all the include files + insinto /usr/include/nss + doins public/nss/*.{h,api} + insinto /usr/include/nss/private + doins private/nss/{blapi,alghmac,cmac}.h + + popd >/dev/null || die + + local f nssutils + # Always enabled because we need it for chk generation. + nssutils=( shlibsign ) + + if multilib_is_native_abi ; then + if use utils; then + # The tests we do not need to install. + #nssutils_test="bltest crmftest dbtest dertimetest + #fipstest remtest sdrtest" + # checkcert utils has been removed in nss-3.22: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545 + # https://hg.mozilla.org/projects/nss/rev/df1729d37870 + # certcgi has been removed in nss-3.36: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602 + nssutils+=( + addbuiltin + atob + baddbdir + btoa + certutil + cmsutil + conflict + crlutil + derdump + digest + makepqg + mangle + modutil + multinit + nonspr10 + ocspclnt + oidcalc + p7content + p7env + p7sign + p7verify + pk11mode + pk12util + pp + rsaperf + selfserv + signtool + signver + ssltap + strsclnt + symkeyutil + tstclnt + vfychain + vfyserv + ) + # install man-pages for utils (bug #516810) + doman doc/nroff/*.1 + fi + pushd dist/*/bin >/dev/null || die + for f in ${nssutils[@]}; do + dobin ${f} + done + popd >/dev/null || die + fi +} + +pkg_postinst() { + multilib_pkg_postinst() { + # We must re-sign the libraries AFTER they are stripped. + local shlibsign="${EROOT}/usr/bin/shlibsign" + # See if we can execute it (cross-compiling & such). #436216 + "${shlibsign}" -h >&/dev/null + if [[ $? -gt 1 ]] ; then + shlibsign="shlibsign" + fi + generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir) + } + + multilib_foreach_abi multilib_pkg_postinst +} + +pkg_postrm() { + multilib_pkg_postrm() { + cleanup_chk "${EROOT}"/usr/$(get_libdir) + } + + multilib_foreach_abi multilib_pkg_postrm +} diff --git a/dev-libs/nss/nss-3.108.ebuild b/dev-libs/nss/nss-3.108.ebuild new file mode 100644 index 000000000000..352be19c4d9a --- /dev/null +++ b/dev-libs/nss/nss-3.108.ebuild @@ -0,0 +1,427 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic multilib toolchain-funcs multilib-minimal + +NSPR_VER="4.35" +RTM_NAME="NSS_${PV//./_}_RTM" + +DESCRIPTION="Mozilla's Network Security Services library that implements PKI support" +HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS" +SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz + cacert? ( https://dev.gentoo.org/~juippis/mozilla/patchsets/nss-3.104-cacert-class1-class3.patch )" + +LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-solaris" +IUSE="cacert test test-full +utils cpu_flags_ppc_altivec cpu_flags_x86_avx2 cpu_flags_x86_sse3 cpu_flags_ppc_vsx" +RESTRICT="!test? ( test )" + +REQUIRED_USE="test-full? ( test )" + +# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND +RDEPEND=" + >=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}] + >=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}] + >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] + virtual/pkgconfig +" +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl" + +S="${WORKDIR}/${P}/${PN}" + +MULTILIB_CHOST_TOOLS=( + /usr/bin/nss-config +) + +PATCHES=( + "${FILESDIR}"/nss-3.103-gentoo-fixes-add-pkgconfig-files.patch + "${FILESDIR}"/nss-3.21-gentoo-fixup-warnings.patch + "${FILESDIR}"/nss-3.87-use-clang-as-bgo892686.patch +) + +src_prepare() { + default + + if use cacert ; then + eapply -p2 "${DISTDIR}"/nss-3.104-cacert-class1-class3.patch + fi + + pushd coreconf >/dev/null || die + # hack nspr paths + echo 'INCLUDES += -I$(DIST)/include/dbm' \ + >> headers.mk || die "failed to append include" + + # modify install path + sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \ + -i source.mk || die + + # Respect LDFLAGS + sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk + + # Workaround make-4.4's change to sub-make, bmo#1800237, bgo#882069 + sed -i -e "s/^CPU_TAG = _.*/CPU_TAG = _$(nssarch)/" Linux.mk || die + + popd >/dev/null || die + + # Fix pkgconfig file for Prefix + sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \ + config/Makefile || die + + # use host shlibsign if need be #436216 + if tc-is-cross-compiler ; then + sed -i \ + -e 's:"${2}"/shlibsign:shlibsign:' \ + cmd/shlibsign/sign.sh || die + fi + + # dirty hack + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \ + lib/ssl/config.mk || die + sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \ + cmd/platlibs.mk || die + + multilib_copy_sources + + strip-flags +} + +multilib_src_configure() { + # Ensure we stay multilib aware + sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die +} + +nssarch() { + # Most of the arches are the same as $ARCH + local t=${1:-${CHOST}} + case ${t} in + *86*-pc-solaris2*) echo "i86pc" ;; + aarch64*) echo "aarch64" ;; + hppa*) echo "parisc" ;; + i?86*) echo "i686" ;; + x86_64*) echo "x86_64" ;; + *) tc-arch ${t} ;; + esac +} + +nssbits() { + local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS" + if [[ ${1} == BUILD_ ]]; then + cc=$(tc-getBUILD_CC) + else + cc=$(tc-getCC) + fi + # TODO: Port this to toolchain-funcs tc-get-ptr-size/tc-get-build-ptr-size + echo > "${T}"/test.c || die + ${cc} ${!cppflags} ${!cflags} -fno-lto -c "${T}"/test.c -o "${T}/${1}test.o" || die + case $(file -S "${T}/${1}test.o") in + *32-bit*x86-64*) echo USE_X32=1;; + *64-bit*|*ppc64*|*x86_64*) echo USE_64=1;; + *32-bit*|*ppc*|*i386*) ;; + *) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";; + esac +} + +multilib_src_compile() { + # use ABI to determine bit'ness, or fallback if unset + local buildbits mybits + case "${ABI}" in + n32) mybits="USE_N32=1";; + x32) mybits="USE_X32=1";; + s390x|*64) mybits="USE_64=1";; + ${DEFAULT_ABI}) + einfo "Running compilation test to determine bit'ness" + mybits=$(nssbits) + ;; + esac + # bitness of host may differ from target + if tc-is-cross-compiler; then + buildbits=$(nssbits BUILD_) + fi + + local makeargs=( + CC="$(tc-getCC)" + CCC="$(tc-getCXX)" + AR="$(tc-getAR) rc \$@" + RANLIB="$(tc-getRANLIB)" + OPTIMIZER= + ${mybits} + disable_ckbi=0 + ) + + # Take care of nspr settings #436216 + local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)" + unset NSPR_INCLUDE_DIR + + export NSS_ALLOW_SSLKEYLOGFILE=1 + export NSS_ENABLE_WERROR=0 #567158 + export BUILD_OPT=1 + export NSS_USE_SYSTEM_SQLITE=1 + export NSDISTMODE=copy + export FREEBL_NO_DEPEND=1 + export FREEBL_LOWHASH=1 + export NSS_SEED_ONLY_DEV_URANDOM=1 + export USE_SYSTEM_ZLIB=1 + export ZLIB_LIBS=-lz + export ASFLAGS="" + # Fix build failure on arm64 + export NS_USE_GCC=1 + # Detect compiler type and set proper environment value + if tc-is-gcc; then + export CC_IS_GCC=1 + elif tc-is-clang; then + export CC_IS_CLANG=1 + fi + + export NSS_DISABLE_GTESTS=$(usex !test 1 0) + + # Include exportable custom settings defined by users, #900915 + # Two examples uses: + # EXTRA_NSSCONF="MYONESWITCH=1" + # EXTRA_NSSCONF="MYVALUE=0 MYOTHERVALUE=1 MYTHIRDVALUE=1" + # e.g. + # EXTRA_NSSCONF="NSS_ALLOW_SSLKEYLOGFILE=0" + # or + # EXTRA_NSSCONF="NSS_ALLOW_SSLKEYLOGFILE=0 NSS_ENABLE_WERROR=1" + # etc. + if [[ -n "${EXTRA_NSSCONF}" ]]; then + ewarn "EXTRA_NSSCONF applied, please disable custom settings before reporting bugs." + read -a myextranssconf <<< "${EXTRA_NSSCONF}" + + for (( i=0; i<${#myextranssconf[@]}; i++ )); do + export "${myextranssconf[$i]}" + echo "exported ${myextranssconf[$i]}" + done + fi + + # explicitly disable altivec/vsx if not requested + # https://bugs.gentoo.org/789114 + case ${ARCH} in + ppc*) + use cpu_flags_ppc_altivec || export NSS_DISABLE_ALTIVEC=1 + use cpu_flags_ppc_vsx || export NSS_DISABLE_CRYPTO_VSX=1 + ;; + esac + + use cpu_flags_x86_avx2 || export NSS_DISABLE_AVX2=1 + use cpu_flags_x86_sse3 || export NSS_DISABLE_SSE3=1 + + local d + + # Build the host tools first. + LDFLAGS="${BUILD_LDFLAGS}" \ + XCFLAGS="${BUILD_CFLAGS}" \ + NSPR_LIB_DIR="${T}/fakedir" \ + emake -C coreconf \ + CC="$(tc-getBUILD_CC)" \ + ${buildbits-${mybits}} + makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" ) + + # Then build the target tools. + for d in . lib/dbm ; do + CPPFLAGS="${myCPPFLAGS}" \ + XCFLAGS="${CFLAGS} ${CPPFLAGS}" \ + NSPR_LIB_DIR="${T}/fakedir" \ + emake "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)" + done +} + +multilib_src_test() { + einfo "Tests can take a *long* time, especially on a multilib system." + einfo "~10 minutes per lib configuration with only 'standard' tests," + einfo "~40 minutes per lib configuration with 'full' tests. Bug #852755" + + # https://www.linuxfromscratch.org/blfs/view/svn/postlfs/nss.html + # https://firefox-source-docs.mozilla.org/security/nss/legacy/nss_sources_building_testing/index.html#running_the_nss_test_suite + # https://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html (older) + export BUILD_OPT=1 + export HOST="localhost" + export DOMSUF="localdomain" + export USE_IP=TRUE + export IP_ADDRESS="127.0.0.1" + + # Only run the standard cycle instead of full, reducing testing time from 45 minutes to 15 + # per lib implementation. + if use test-full ; then + # export NSS_CYCLES="standard pkix sharedb" + :; + else + export NSS_CYCLES="standard" + fi + + NSINSTALL="${PWD}/$(find -type f -name nsinstall)" + + cd "${BUILD_DIR}"/tests || die + # Hack to get current objdir (prefixed dir where built binaries are) + # Without this, at least multilib tests go wrong when building the amd64 variant + # after x86. + local objdir=$(find "${BUILD_DIR}"/dist -maxdepth 1 -iname Linux* | rev | cut -d/ -f1 | rev) + + # Can tweak to a subset of tests in future if we need to, but would prefer not + OBJDIR="${objdir}" DIST="${BUILD_DIR}/dist" MOZILLA_ROOT="${BUILD_DIR}" ./all.sh || die +} + +# Altering these 3 libraries breaks the CHK verification. +# All of the following cause it to break: +# - stripping +# - prelink +# - ELF signing +# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html +# Either we have to NOT strip them, or we have to forcibly resign after +# stripping. +#local_libdir="$(get_libdir)" +#export STRIP_MASK=" +# */${local_libdir}/libfreebl3.so* +# */${local_libdir}/libnssdbm3.so* +# */${local_libdir}/libsoftokn3.so*" + +export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3" + +generate_chk() { + local shlibsign="$1" + local libdir="$2" + einfo "Resigning core NSS libraries for FIPS validation" + shift 2 + local i + for i in ${NSS_CHK_SIGN_LIBS} ; do + local libname=lib${i}.so + local chkname=lib${i}.chk + "${shlibsign}" \ + -i "${libdir}"/${libname} \ + -o "${libdir}"/${chkname}.tmp \ + && mv -f \ + "${libdir}"/${chkname}.tmp \ + "${libdir}"/${chkname} \ + || die "Failed to sign ${libname}" + done +} + +cleanup_chk() { + local libdir="$1" + shift 1 + local i + for i in ${NSS_CHK_SIGN_LIBS} ; do + local libfname="${libdir}/lib${i}.so" + # If the major version has changed, then we have old chk files. + [ ! -f "${libfname}" -a -f "${libfname}.chk" ] \ + && rm -f "${libfname}.chk" + done +} + +multilib_src_install() { + pushd dist >/dev/null || die + + dodir /usr/$(get_libdir) + cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed" + local i + for i in crmf freebl nssb nssckfw ; do + cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed" + done + + # Install nss-config and pkgconfig file + dodir /usr/bin + cp -L */bin/nss-config "${ED}"/usr/bin || die + dodir /usr/$(get_libdir)/pkgconfig + cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die + + # create an nss-softokn.pc from nss.pc for libfreebl and some private headers + # bug 517266 + sed -e 's#Libs:#Libs: -lfreebl#' \ + -e 's#Cflags:#Cflags: -I${includedir}/private#' \ + */lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \ + || die "could not create nss-softokn.pc" + + # all the include files + insinto /usr/include/nss + doins public/nss/*.{h,api} + insinto /usr/include/nss/private + doins private/nss/{blapi,alghmac,cmac}.h + + popd >/dev/null || die + + local f nssutils + # Always enabled because we need it for chk generation. + nssutils=( shlibsign ) + + if multilib_is_native_abi ; then + if use utils; then + # The tests we do not need to install. + #nssutils_test="bltest crmftest dbtest dertimetest + #fipstest remtest sdrtest" + # checkcert utils has been removed in nss-3.22: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1187545 + # https://hg.mozilla.org/projects/nss/rev/df1729d37870 + # certcgi has been removed in nss-3.36: + # https://bugzilla.mozilla.org/show_bug.cgi?id=1426602 + nssutils+=( + addbuiltin + atob + baddbdir + btoa + certutil + cmsutil + conflict + crlutil + derdump + digest + makepqg + mangle + modutil + multinit + nonspr10 + ocspclnt + oidcalc + p7content + p7env + p7sign + p7verify + pk11mode + pk12util + pp + rsaperf + selfserv + signtool + signver + ssltap + strsclnt + symkeyutil + tstclnt + vfychain + vfyserv + ) + # install man-pages for utils (bug #516810) + doman doc/nroff/*.1 + fi + pushd dist/*/bin >/dev/null || die + for f in ${nssutils[@]}; do + dobin ${f} + done + popd >/dev/null || die + fi +} + +pkg_postinst() { + multilib_pkg_postinst() { + # We must re-sign the libraries AFTER they are stripped. + local shlibsign="${EROOT}/usr/bin/shlibsign" + # See if we can execute it (cross-compiling & such). #436216 + "${shlibsign}" -h >&/dev/null + if [[ $? -gt 1 ]] ; then + shlibsign="shlibsign" + fi + generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir) + } + + multilib_foreach_abi multilib_pkg_postinst +} + +pkg_postrm() { + multilib_pkg_postrm() { + cleanup_chk "${EROOT}"/usr/$(get_libdir) + } + + multilib_foreach_abi multilib_pkg_postrm +} diff --git a/dev-libs/openssl/files/openssl-3.3.2-arm64-clobber.patch b/dev-libs/openssl/files/openssl-3.3.2-arm64-clobber.patch new file mode 100644 index 000000000000..d83c5b4fb87f --- /dev/null +++ b/dev-libs/openssl/files/openssl-3.3.2-arm64-clobber.patch @@ -0,0 +1,55 @@ +https://gcc.gnu.org/PR118537 +https://www.postgresql.org/message-id/6fxlmnyagkycru3bewa4ympknywnsswlqzvwfft3ifqqiioxlv%40ax53pv7xdrc2 +https://github.com/openssl/openssl/pull/26469 +https://github.com/openssl/openssl/commit/4f7d8b2724ea7f42cff1e8a0e736ad448def60f5 + +From 4f7d8b2724ea7f42cff1e8a0e736ad448def60f5 Mon Sep 17 00:00:00 2001 +From: Julian Andres Klode <julian.klode@canonical.com> +Date: Sat, 18 Jan 2025 21:12:45 +0100 +Subject: [PATCH] Restore correct registers in aarch64 AES-CTR code + +Commit 1d1ca79fe35dbe5c05faed5a2ef8c4de9c5adc49 introduced +save and restore for the registers, saving them as + + stp d8,d9,[sp, #16] + stp d10,d11,[sp, #32] + stp d12,d13,[sp, #48] + stp d14,d15,[sp, #64] + +But the restore code was inadvertently typoed: + + ldp d8,d9,[sp, #16] + ldp d10,d11,[sp, #32] + ldp d12,d13,[sp, #48] + ldp d15,d16,[sp, #64] + +Restoring [sp, #64] into d15,d16 instead of d14,d15. + +Fixes: #26466 + +CLA: trivial + +Reviewed-by: Kurt Roeckx <kurt@roeckx.be> +Reviewed-by: Paul Dale <ppzgs1@gmail.com> +Reviewed-by: Tomas Mraz <tomas@openssl.org> +(Merged from https://github.com/openssl/openssl/pull/26469) + +(cherry picked from commit 5261f3ca41cda7ad5767e399e9a2dc008bbad5d6) +--- + crypto/aes/asm/aesv8-armx.pl | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl +index 33a2dd53dae19..dc019b04ccd25 100755 +--- a/crypto/aes/asm/aesv8-armx.pl ++++ b/crypto/aes/asm/aesv8-armx.pl +@@ -2493,7 +2493,7 @@ () + ldp d8,d9,[sp, #16] + ldp d10,d11,[sp, #32] + ldp d12,d13,[sp, #48] +- ldp d15,d16,[sp, #64] ++ ldp d14,d15,[sp, #64] + ldr x29,[sp],#80 + ret + .size ${prefix}_ctr32_encrypt_blocks_unroll12_eor3,.-${prefix}_ctr32_encrypt_blocks_unroll12_eor3 + diff --git a/dev-libs/openssl/openssl-3.3.2-r3.ebuild b/dev-libs/openssl/openssl-3.3.2-r3.ebuild new file mode 100644 index 000000000000..74109bfb1ff7 --- /dev/null +++ b/dev-libs/openssl/openssl-3.3.2-r3.ebuild @@ -0,0 +1,306 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openssl.org.asc +inherit edo flag-o-matic linux-info toolchain-funcs +inherit multilib multilib-minimal multiprocessing preserve-libs verify-sig + +DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)" +HOMEPAGE="https://openssl-library.org/" + +MY_P=${P/_/-} + +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://github.com/openssl/openssl.git" + + inherit git-r3 +else + SRC_URI=" + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz + verify-sig? ( + https://github.com/openssl/openssl/releases/download/${P}/${P}.tar.gz.asc + ) + " + + if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + fi +fi + +S="${WORKDIR}"/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" # .so version of libssl/libcrypto +IUSE="+asm cpu_flags_x86_sse2 fips ktls +quic rfc3779 sctp static-libs test tls-compression vanilla verify-sig weak-ssl-ciphers" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + !<net-misc/openssh-9.2_p1-r3 + tls-compression? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] ) +" +BDEPEND=" + >=dev-lang/perl-5 + sctp? ( >=net-misc/lksctp-tools-1.0.12 ) + test? ( + sys-apps/diffutils + app-alternatives/bc + sys-process/procps + ) + verify-sig? ( >=sec-keys/openpgp-keys-openssl-20240920 ) +" +DEPEND="${COMMON_DEPEND}" +RDEPEND="${COMMON_DEPEND}" +PDEPEND="app-misc/ca-certificates" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/openssl/configuration.h +) + +PATCHES=( + "${FILESDIR}"/${P}-CVE-2024-9143.patch + "${FILESDIR}"/${PN}-3.3.2-silence-warning.patch + "${FILESDIR}"/${P}-arm64-clobber.patch +) + +pkg_setup() { + if use ktls ; then + if kernel_is -lt 4 18 ; then + ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!" + else + CONFIG_CHECK="~TLS ~TLS_DEVICE" + ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!" + ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!" + use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER" + + linux-info_pkg_setup + fi + fi + + [[ ${MERGE_TYPE} == binary ]] && return + + # must check in pkg_setup; sysctl doesn't work with userpriv! + if use test && use sctp ; then + # test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel" + # if sctp.auth_enable is not enabled. + local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null) + if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then + die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!" + fi + fi +} + +src_unpack() { + # Can delete this once test fix patch is dropped + if use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.gz{,.asc} + fi + + default +} + +src_prepare() { + # Make sure we only ever touch Makefile.org and avoid patching a file + # that gets blown away anyways by the Configure script in src_configure + rm -f Makefile || die + + if ! use vanilla ; then + PATCHES+=( + # Add patches which are Gentoo-specific customisations here + ) + fi + + default + + if use test && use sctp && has network-sandbox ${FEATURES} ; then + einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..." + rm test/recipes/80-test_ssl_new.t || die + fi + + # Test fails depending on kernel configuration, bug #699134 + rm test/recipes/30-test_afalg.t || die +} + +src_configure() { + # Keep this in sync with app-misc/c_rehash + SSL_CNF_DIR="/etc/ssl" + + # Quiet out unknown driver argument warnings since openssl + # doesn't have well-split CFLAGS and we're making it even worse + # and 'make depend' uses -Werror for added fun (bug #417795 again) + tc-is-clang && append-flags -Qunused-arguments + + # We really, really need to build OpenSSL w/ strict aliasing disabled. + # It's filled with violations and it *will* result in miscompiled + # code. This has been in the ebuild for > 10 years but even in 2022, + # it's still relevant: + # - https://github.com/llvm/llvm-project/issues/55255 + # - https://github.com/openssl/openssl/issues/12247 + # - https://github.com/openssl/openssl/issues/18225 + # - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057 + # Don't remove the no strict aliasing bits below! + filter-flags -fstrict-aliasing + append-flags -fno-strict-aliasing + # The OpenSSL developers don't test with LTO right now, it leads to various + # warnings/errors (which may or may not be false positives), it's considered + # unsupported, and it's not tested in CI: https://github.com/openssl/openssl/issues/18663. + filter-lto + + append-flags $(test-flags-CC -Wa,--noexecstack) + + # bug #895308 -- check inserts GNU ld-compatible arguments + [[ ${CHOST} == *-darwin* ]] || append-atomic-flags + # Configure doesn't respect LIBS + export LDLIBS="${LIBS}" + + # bug #197996 + unset APPS + # bug #312551 + unset SCRIPTS + # bug #311473 + unset CROSS_COMPILE + + tc-export AR CC CXX RANLIB RC + + multilib-minimal_src_configure +} + +multilib_src_configure() { + use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; } + + local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal") + + # See if our toolchain supports __uint128_t. If so, it's 64bit + # friendly and can use the nicely optimized code paths, bug #460790. + #local ec_nistp_64_gcc_128 + # + # Disable it for now though (bug #469976) + # Do NOT re-enable without substantial discussion first! + # + #echo "__uint128_t i;" > "${T}"/128.c + #if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then + # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128" + #fi + + local sslout=$(bash "${FILESDIR}/gentoo.config-1.0.4") + einfo "Using configuration: ${sslout:-(openssl knows best)}" + + # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features + local myeconfargs=( + ${sslout} + + $(multilib_is_native_abi || echo "no-docs") + $(use cpu_flags_x86_sse2 || echo "no-sse2") + enable-camellia + enable-ec + enable-ec2m + enable-sm2 + enable-srp + $(use elibc_musl && echo "no-async") + enable-idea + enable-mdc2 + enable-rc5 + $(use fips && echo "enable-fips") + $(use quic && echo "enable-quic") + $(use_ssl asm) + $(use_ssl ktls) + $(use_ssl rfc3779) + $(use_ssl sctp) + $(use test || echo "no-tests") + $(use_ssl tls-compression zlib) + $(use_ssl weak-ssl-ciphers) + + --prefix="${EPREFIX}"/usr + --openssldir="${EPREFIX}"${SSL_CNF_DIR} + --libdir=$(get_libdir) + + shared + threads + ) + + edo perl "${S}/Configure" "${myeconfargs[@]}" +} + +multilib_src_compile() { + emake build_sw +} + +multilib_src_test() { + # See https://github.com/openssl/openssl/blob/master/test/README.md for options. + # + # VFP = show subtests verbosely and show failed tests verbosely + # Normal V=1 would show everything verbosely but this slows things down. + # + # -j1 here for https://github.com/openssl/openssl/issues/21999, but it + # shouldn't matter as tests were already built earlier, and HARNESS_JOBS + # controls running the tests. + emake -Onone -j1 HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test +} + +multilib_src_install() { + # Only -j1 is supported for the install targets: + # https://github.com/openssl/openssl/issues/21999#issuecomment-1771150305 + emake DESTDIR="${D}" -j1 install_sw + if use fips; then + emake DESTDIR="${D}" -j1 install_fips + # Regen this in pkg_preinst, bug 900625 + rm "${ED}${SSL_CNF_DIR}"/fipsmodule.cnf || die + fi + + if multilib_is_native_abi; then + emake DESTDIR="${D}" -j1 install_ssldirs + emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} -j1 install_docs + fi + + # This is crappy in that the static archives are still built even + # when USE=static-libs. But this is due to a failing in the openssl + # build system: the static archives are built as PIC all the time. + # Only way around this would be to manually configure+compile openssl + # twice; once with shared lib support enabled and once without. + if ! use static-libs ; then + rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die + fi +} + +multilib_src_install_all() { + # openssl installs perl version of c_rehash by default, but + # we provide a shell version via app-misc/c_rehash + rm "${ED}"/usr/bin/c_rehash || die + + dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el + + # Create the certs directory + keepdir ${SSL_CNF_DIR}/certs + + # bug #254521 + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl + + diropts -m0700 + keepdir ${SSL_CNF_DIR}/private +} + +pkg_preinst() { + if use fips; then + # Regen fipsmodule.cnf, bug 900625 + ebegin "Running openssl fipsinstall" + "${ED}/usr/bin/openssl" fipsinstall -quiet \ + -out "${ED}${SSL_CNF_DIR}/fipsmodule.cnf" \ + -module "${ED}/usr/$(get_libdir)/ossl-modules/fips.so" + eend $? + fi + + preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} + +pkg_postinst() { + ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)" + openssl rehash "${EROOT}${SSL_CNF_DIR}/certs" + eend $? + + preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1) \ + /usr/$(get_libdir)/lib{crypto,ssl}$(get_libname 1.1) +} diff --git a/dev-libs/plasma-wayland-protocols/plasma-wayland-protocols-1.16.0.ebuild b/dev-libs/plasma-wayland-protocols/plasma-wayland-protocols-1.16.0.ebuild index d9df14c50669..d12644177f4e 100644 --- a/dev-libs/plasma-wayland-protocols/plasma-wayland-protocols-1.16.0.ebuild +++ b/dev-libs/plasma-wayland-protocols/plasma-wayland-protocols-1.16.0.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://invent.kde.org/libraries/plasma-wayland-protocols" if [[ ${KDE_BUILD_TYPE} = release ]]; then SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86" fi LICENSE="LGPL-2.1" diff --git a/dev-libs/qcoro5/Manifest b/dev-libs/qcoro5/Manifest deleted file mode 100644 index c157c9559060..000000000000 --- a/dev-libs/qcoro5/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST qcoro5-0.10.0.tar.gz 150114 BLAKE2B 8a552dc3a0e4a5963c7c9fd0638f336e6ad99491a54df3bb8ddaa6b0ee1fe8e4c6b7ffc26c25cef543e796c54bc4c625a0915755f4b538f489bc61fcd8310a6a SHA512 de2e55256d3c9d35fec3ef6dc78128801b70a5e5b8ff0f3a6f235dac17f349ea44207a7c9f35375215dbeea04cb67c3412d505d0a8a95f2b926775f804a02649 diff --git a/dev-libs/qcoro5/metadata.xml b/dev-libs/qcoro5/metadata.xml deleted file mode 100644 index 57d397297f29..000000000000 --- a/dev-libs/qcoro5/metadata.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>kde@gentoo.org</email> - <name>Gentoo KDE Project</name> - </maintainer> - <upstream> - <bugs-to>https://github.com/danvratil/qcoro/issues</bugs-to> - <remote-id type="github">danvratil/qcoro</remote-id> - </upstream> - <use> - <flag name="network">Build <pkg>dev-qt/qtnetwork</pkg> support</flag> - <flag name="qml">Enable QML/QtQuick support via <pkg>dev-qt/qtdeclarative</pkg></flag> - <flag name="testlib">Install coroutine-friendly versions of <pkg>dev-qt/qttest</pkg> macros</flag> - <flag name="websockets">Build <pkg>dev-qt/qtwebsockets</pkg> support</flag> - </use> -</pkgmetadata> diff --git a/dev-libs/qcoro5/qcoro5-0.10.0-r1.ebuild b/dev-libs/qcoro5/qcoro5-0.10.0-r1.ebuild deleted file mode 100644 index e038bbf9159b..000000000000 --- a/dev-libs/qcoro5/qcoro5-0.10.0-r1.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -if [[ ${PV} == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/danvratil/${PN/5/}" -else - SRC_URI="https://github.com/danvratil/${PN/5/}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${P/5/}" - KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86" -fi - -DESCRIPTION="C++ Coroutine Library for Qt5" -HOMEPAGE="https://qcoro.dvratil.cz/ https://github.com/danvratil/qcoro" - -LICENSE="MIT" -SLOT="0" -IUSE="dbus examples +network qml test testlib websockets" - -REQUIRED_USE="examples? ( network ) test? ( testlib )" -RESTRICT="!test? ( test )" - -RDEPEND=" - dev-qt/qtcore:5 - dbus? ( dev-qt/qtdbus:5 ) - network? ( dev-qt/qtnetwork:5 ) - qml? ( - dev-qt/qtdeclarative:5= - dev-qt/qtgui:5 - ) - testlib? ( dev-qt/qttest:5 ) - websockets? ( dev-qt/qtwebsockets:5 ) -" -DEPEND="${RDEPEND} - examples? ( - dev-qt/qtconcurrent:5 - dev-qt/qtnetwork:5 - dev-qt/qtwidgets:5 - ) - test? ( - dev-qt/qtconcurrent:5 - dev-qt/qttest:5 - ) -" - -src_configure() { - local mycmakeargs=( - -DUSE_QT_VERSION=5 - -DQCORO_BUILD_EXAMPLES=$(usex examples) - -DQCORO_WITH_QTDBUS=$(usex dbus) - -DQCORO_WITH_QTNETWORK=$(usex network) - -DQCORO_WITH_QML=$(usex qml) - -DQCORO_WITH_QTQUICK=$(usex qml) - -DQCORO_WITH_QTTEST=$(usex testlib) - -DBUILD_TESTING=$(usex test) - -DQCORO_WITH_QTWEBSOCKETS=$(usex websockets) - ) - cmake_src_configure -} - -src_install() { - if use examples; then - docinto examples - dodoc -r examples/* - fi - cmake_src_install -} diff --git a/dev-libs/rocdbgapi/Manifest b/dev-libs/rocdbgapi/Manifest index b714542e461e..06eaea8ca257 100644 --- a/dev-libs/rocdbgapi/Manifest +++ b/dev-libs/rocdbgapi/Manifest @@ -1,3 +1,4 @@ DIST rocdbgapi-5.7.1.tar.gz 251913 BLAKE2B 96dc859937fdde75a3d68368b29efdd14711e256c7d3c60cd40b128e9a0c066f108c02f7d47d9d64d7ca485e85e9d56d48cac6c67088fc3fbafe44d1d23a7ce2 SHA512 e30cf6062b07ced7de1660398cd84d104e632907cfaf9bc05d29289a81a977c2272b69ff0810db201675f9d7e8476b4451c988ad9da0a13eee01fffdde839d26 DIST rocdbgapi-6.1.1.tar.gz 254274 BLAKE2B 1621dc715e2540578126ff2fa6dc30dc9db711689e82b5c750dd203aafa091c00f897425a372d4617bec25eddb7b9a44105e8c9b46eb660e197602ede2beecba SHA512 d613e633e27ad9f582b9612d7d088c3ea465c29d6520e94b4821e0340c736e556dcd4a89f8027701097ee4e2d8b55640a232d484f9fa26f8a9165c648f8af219 DIST rocdbgapi-6.3.0.tar.gz 275368 BLAKE2B da4ee565d0bbafad4838ca6a346525bfc0e174ee39a1e4d99da16f2ba041885211d38cc9f9aac0ab0358b62557061f7c4cfc8fd3bcf241398b510ea952d56254 SHA512 b9acf8787fa6e76bd9d28a36b3c09932d830085cbdc4b6712d481c19cb36c2fd4ff50fb31fd249d9a523c053019657ae7eace850102be94170c327d4efb49e9d +DIST rocdbgapi-6.3.2.tar.gz 275359 BLAKE2B 085ab87b04fbe165bb689a61016cd7e4e1133c4f9a2504267d30a07dd2922eeeb11fb7507416e426b3a24a8ec3090c7a4b64ccd32f578ccb7bc420fcc52f7fec SHA512 b60312cc29830f1a481f67ab3419c3e9915e07f6a13557e06a1fa4da6022ae7388421264843aea095c49330c984d943771cba7b77f31d3f511a545af5db68c00 diff --git a/dev-libs/rocdbgapi/rocdbgapi-6.3.2.ebuild b/dev-libs/rocdbgapi/rocdbgapi-6.3.2.ebuild new file mode 100644 index 000000000000..d8fc715396fc --- /dev/null +++ b/dev-libs/rocdbgapi/rocdbgapi-6.3.2.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="AMD Debugger API" +HOMEPAGE="https://github.com/ROCm/ROCdbgapi" +SRC_URI="https://github.com/ROCm/ROCdbgapi/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/ROCdbgapi-rocm-${PV}" + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +IUSE="doc" + +BDEPEND=" + doc? ( + app-text/doxygen[dot] + virtual/latex-base + dev-texlive/texlive-latexextra + dev-texlive/texlive-plaingeneric + ) +" +RDEPEND=" + dev-libs/rocm-comgr:${SLOT} + dev-libs/rocr-runtime:${SLOT} +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${PN}-6.3.0-fix-libcxx.patch" +) + +src_prepare() { + sed -e "s/-Werror//" \ + -e "s/if(DOXYGEN_FOUND)/if(WITH_DOCS AND DOXYGEN_FOUND)/" \ + -e "s:\${CMAKE_INSTALL_DATADIR}/html/amd-dbgapi:\${CMAKE_INSTALL_DOCDIR}/html:" \ + -i CMakeLists.txt || die + + # Clang 19 detects error + # https://github.com/ROCm/ROCdbgapi/issues/12 + sed -e "s/->n_next/->m_next/g" -i src/utils.h || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DWITH_DOCS=$(usex doc ON OFF) + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" + ) + cmake_src_configure +} + +src_compile() { + cmake_src_compile + use doc && cmake_src_compile doc +} + +src_install() { + cmake_src_install + + # remove unneeded copy + rm -r "${ED}/usr/share/doc/${PF}-asan" || die +} diff --git a/dev-libs/rocksdb/Manifest b/dev-libs/rocksdb/Manifest index 39aa040bf25b..0791e33ea5aa 100644 --- a/dev-libs/rocksdb/Manifest +++ b/dev-libs/rocksdb/Manifest @@ -1,5 +1,3 @@ DIST rocksdb-7.9.2.tar.gz 12058713 BLAKE2B 76a840565fccdc800eaad055da7698f7a5fc6e217187e078d60420c61cde1236c427cc4ae7d557c69ee5c358cd1ebc7fc4ed52063c04965fcc2c3c35774e9f59 SHA512 9cf2a359cedb21ca70fc921e54f19c406fd9aa2a739ad1627842fad2dec0e7dedbfe52aa8e85fbfbe7005c00ca1e7e7013f728d4d9938f3cebdf794504b431cb DIST rocksdb-8.11.3.tar.gz 13345436 BLAKE2B 8d8069c030ee345090ebec15528342d776d7a74d6b72808a054511aad169acaa89c5fee530e73b3faba9152aadc4d26f1edc4586e31ddf5501d2899b5d6500ec SHA512 df701e8f3a94efe351c5dfec691635b6cff9b5902e8d5bd714caa7389bbbfd8ce7f7e91f1549978b47b934449fb3b77581dfcc2811a7727be049709a330ca71e -DIST rocksdb-9.7.4.tar.gz 13615065 BLAKE2B 8babae4a879d3d08c7bccf0b93dc78bf413d3d518b9470e343588cba92f796ad5d493128276fe0673e915bfd8eab8a98abfd52dd0e633446324989db00032746 SHA512 d7209fee27f0b40ebce7a43c0356b2e6ca355d768d60b5e56599074bbd2aa555f4ed3b97e85ef492742be1597184d505b6acfd84ad27d6a5b83bf1a13bf4b1ca -DIST rocksdb-9.8.4.tar.gz 13647031 BLAKE2B faeca03e688a9240b739a671fb00f3f2015b0a90397d0473a44c4278ece6af91e6870ca6defec7c4a49bc9c7d07c19b218776937d608d87a9e456e8b219cd911 SHA512 34afd421c86bdb3741f49e35466efbaef041d8461bedf7d32fa6d808e3cc38807aafddfd0bb563f34d21de8f0d31dfc26dcae3208c2dd36da449913cef9a3e1b -DIST rocksdb-9.9.3.tar.gz 13668148 BLAKE2B d2a2843b14a601efbc80e37c321ee9541d674f5d7ab9cc3357397b3b017a6bcfc40404d472764c6e74175e9573ee505fe8a4039169ffa19da3b973f548655854 SHA512 119759e9e829f65b11042ac22fff845ef0ddea88a2e326a2c4f6f00a6e7e3951f4043eac6f4bb2fe7e4ecda9e597989827f961924ae4c8bb99608432883aa950 +DIST rocksdb-9.10.0.tar.gz 13693440 BLAKE2B bc612980c3374260561f67ab374a8a04f65a196543c21109f5b66f6b58a5e14a8fcb86dbc3910dd5f5ea5f5fdb6485ccfed36a41c762c9b44064ba98f9af47f2 SHA512 b9a53c13f69e723cc41f8431ffc2f0b0be7a85d7a598b2f7a41cf89c34cb3ec55ba8b7874d579914851da59f252e2fcbe8091e490e9a6eca68d7995e2f8b667e diff --git a/dev-libs/rocksdb/metadata.xml b/dev-libs/rocksdb/metadata.xml index e8708dfa4d7c..544fab1e8b1f 100644 --- a/dev-libs/rocksdb/metadata.xml +++ b/dev-libs/rocksdb/metadata.xml @@ -2,13 +2,13 @@ <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>chutzpah@gentoo.org</email> - <name>Patrick McLean</name> - </maintainer> - <maintainer type="person"> <email>amadio@gentoo.org</email> <name>Guilherme Amadio</name> </maintainer> + <maintainer type="person"> + <email>chutzpah@gentoo.org</email> + <name>Patrick McLean</name> + </maintainer> <upstream> <remote-id type="github">facebook/rocksdb</remote-id> </upstream> diff --git a/dev-libs/rocksdb/rocksdb-7.9.2-r1.ebuild b/dev-libs/rocksdb/rocksdb-7.9.2-r1.ebuild index 6cfd8ad17742..40a3cd3cefa5 100644 --- a/dev-libs/rocksdb/rocksdb-7.9.2-r1.ebuild +++ b/dev-libs/rocksdb/rocksdb-7.9.2-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2020-2024 Gentoo Authors +# Copyright 2020-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -77,3 +77,13 @@ src_install() { rm "${ED}"/usr/$(get_libdir)/*.a || die fi } + +src_test() { + CMAKE_SKIP_TESTS=( + OptionsSettableTest.ColumnFamilyOptionsAllFieldsSettable + # skip tests that don't work on tmpfs, bugs 942984, 948931 + EnvPosixTest + FilePrefetchBufferTest + ) + cmake_src_test +} diff --git a/dev-libs/rocksdb/rocksdb-8.11.3.ebuild b/dev-libs/rocksdb/rocksdb-8.11.3.ebuild index 8221a61c5b6a..26d7bdeb7c50 100644 --- a/dev-libs/rocksdb/rocksdb-8.11.3.ebuild +++ b/dev-libs/rocksdb/rocksdb-8.11.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 2020-2024 Gentoo Authors +# Copyright 2020-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -78,3 +78,14 @@ src_install() { rm "${ED}"/usr/$(get_libdir)/*.a || die fi } + +src_test() { + CMAKE_SKIP_TESTS=( + OptionsSettableTest.ColumnFamilyOptionsAllFieldsSettable + # skip tests that don't work on tmpfs, bug 948932 + DBTestTailingIterator + PrefetchTest + PrefetchTest1 + ) + cmake_src_test +} diff --git a/dev-libs/rocksdb/rocksdb-9.9.3.ebuild b/dev-libs/rocksdb/rocksdb-9.10.0.ebuild index bab86b142729..2f7a18895930 100644 --- a/dev-libs/rocksdb/rocksdb-9.9.3.ebuild +++ b/dev-libs/rocksdb/rocksdb-9.10.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 2020-2024 Gentoo Authors +# Copyright 2020-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -82,6 +82,10 @@ src_install() { src_test() { CMAKE_SKIP_TESTS=( OptionsSettableTest.ColumnFamilyOptionsAllFieldsSettable + # skip tests that don't work on tmpfs, bug 948932 + DBTestTailingIterator + PrefetchTest + PrefetchTest1 ) cmake_src_test } diff --git a/dev-libs/rocksdb/rocksdb-9.7.4.ebuild b/dev-libs/rocksdb/rocksdb-9.7.4.ebuild deleted file mode 100644 index c5a5cce5e1d8..000000000000 --- a/dev-libs/rocksdb/rocksdb-9.7.4.ebuild +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright 2020-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -DESCRIPTION="Embeddable, persistent key-value store for fast storage" -HOMEPAGE="http://rocksdb.org https://github.com/facebook/rocksdb/" -SRC_URI="https://github.com/facebook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" -IUSE="jemalloc numa static-libs tbb test" - -RESTRICT="!test? ( test )" - -DEPEND=" - app-arch/bzip2:= - app-arch/lz4:= - app-arch/snappy:= - app-arch/zstd:= - dev-cpp/gflags:= - sys-libs/liburing:= - sys-libs/zlib:= - sys-process/numactl - jemalloc? ( dev-libs/jemalloc:= ) - tbb? ( dev-cpp/tbb:= ) -" -RDEPEND="${DEPEND}" - -src_prepare() { - sed -i -e 's/liburing.a/uring/' cmake/modules/Finduring.cmake || die - sed -i -e '/find_program(CCACHE_FOUND ccache)/d' CMakeLists.txt || die - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DFAIL_ON_WARNINGS=OFF - -DPORTABLE=1 - -DROCKSDB_BUILD_SHARED=$(usex static-libs OFF ON) - -DWITH_ALL_TESTS=$(usex test) - -DWITH_ASAN=OFF - -DWITH_BENCHMARK=OFF - -DWITH_BENCHMARK_TOOLS=OFF - -DWITH_BZ2=ON - -DWITH_CORE_TOOLS=ON - -DWITH_DYNAMIC_EXTENSION=ON - -DWITH_EXAMPLES=OFF - -DWITH_FALLOCATE=ON - -DWITH_GFLAGS=ON - -DWITH_IOSTATS_CONTEXT=ON - -DWITH_JEMALLOC=$(usex jemalloc ON OFF) - -DWITH_JNI=OFF - -DWITH_LIBURING=ON - -DWITH_LZ4=ON - -DWITH_MD_LIBRARY=ON - -DWITH_NUMA=$(usex numa) - -DWITH_SNAPPY=ON - -DWITH_TBB=$(usex tbb) - -DWITH_TOOLS=ON - -DWITH_TRACE_TOOLS=ON - -DWITH_TSAN=OFF - -DWITH_ZLIB=ON - -DWITH_ZSTD=ON - ) - # -DWITH_TESTS option works only with debug build, needs to be set here - # to not be overriden by cmake.eclass - CMAKE_BUILD_TYPE=$(usex test Debug RelWithDebInfo) cmake_src_configure -} - -src_install() { - cmake_src_install - - if ! use static-libs; then - rm "${ED}"/usr/$(get_libdir)/*.a || die - fi -} diff --git a/dev-libs/rocksdb/rocksdb-9.8.4.ebuild b/dev-libs/rocksdb/rocksdb-9.8.4.ebuild deleted file mode 100644 index c5a5cce5e1d8..000000000000 --- a/dev-libs/rocksdb/rocksdb-9.8.4.ebuild +++ /dev/null @@ -1,80 +0,0 @@ -# Copyright 2020-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake - -DESCRIPTION="Embeddable, persistent key-value store for fast storage" -HOMEPAGE="http://rocksdb.org https://github.com/facebook/rocksdb/" -SRC_URI="https://github.com/facebook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" -IUSE="jemalloc numa static-libs tbb test" - -RESTRICT="!test? ( test )" - -DEPEND=" - app-arch/bzip2:= - app-arch/lz4:= - app-arch/snappy:= - app-arch/zstd:= - dev-cpp/gflags:= - sys-libs/liburing:= - sys-libs/zlib:= - sys-process/numactl - jemalloc? ( dev-libs/jemalloc:= ) - tbb? ( dev-cpp/tbb:= ) -" -RDEPEND="${DEPEND}" - -src_prepare() { - sed -i -e 's/liburing.a/uring/' cmake/modules/Finduring.cmake || die - sed -i -e '/find_program(CCACHE_FOUND ccache)/d' CMakeLists.txt || die - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DFAIL_ON_WARNINGS=OFF - -DPORTABLE=1 - -DROCKSDB_BUILD_SHARED=$(usex static-libs OFF ON) - -DWITH_ALL_TESTS=$(usex test) - -DWITH_ASAN=OFF - -DWITH_BENCHMARK=OFF - -DWITH_BENCHMARK_TOOLS=OFF - -DWITH_BZ2=ON - -DWITH_CORE_TOOLS=ON - -DWITH_DYNAMIC_EXTENSION=ON - -DWITH_EXAMPLES=OFF - -DWITH_FALLOCATE=ON - -DWITH_GFLAGS=ON - -DWITH_IOSTATS_CONTEXT=ON - -DWITH_JEMALLOC=$(usex jemalloc ON OFF) - -DWITH_JNI=OFF - -DWITH_LIBURING=ON - -DWITH_LZ4=ON - -DWITH_MD_LIBRARY=ON - -DWITH_NUMA=$(usex numa) - -DWITH_SNAPPY=ON - -DWITH_TBB=$(usex tbb) - -DWITH_TOOLS=ON - -DWITH_TRACE_TOOLS=ON - -DWITH_TSAN=OFF - -DWITH_ZLIB=ON - -DWITH_ZSTD=ON - ) - # -DWITH_TESTS option works only with debug build, needs to be set here - # to not be overriden by cmake.eclass - CMAKE_BUILD_TYPE=$(usex test Debug RelWithDebInfo) cmake_src_configure -} - -src_install() { - cmake_src_install - - if ! use static-libs; then - rm "${ED}"/usr/$(get_libdir)/*.a || die - fi -} diff --git a/dev-libs/rocm-comgr/Manifest b/dev-libs/rocm-comgr/Manifest index 50ff7f85aa1a..635f9315d2bd 100644 --- a/dev-libs/rocm-comgr/Manifest +++ b/dev-libs/rocm-comgr/Manifest @@ -1,6 +1,7 @@ DIST llvm-project-rocm-6.1.1.tar.gz 196027084 BLAKE2B 3ef0b6e3c47c66fd80289373e6ff8aaff44751f9b380addfae73a18dc388093c0535f230b0cc7528724bc43f6992e2ae6decd3d0d3c700893ca95a6166b7b8dc SHA512 e320d4eeaa6f61ed1cdbf653d67fe887d3ce9dc0d6743b4713502e1cb5318ab8afbe1ee71f8cba07635c54ce532df6683de40ade0e5be4a52e50ce25a9b70818 DIST llvm-project-rocm-6.1.2.tar.gz 195992927 BLAKE2B d821f29f2f1f7c1ff414c63a710281f16d2a394b21f3365d01b86710cc09ed27e514b49fb744bf6a36b38815afa56cc26d44f0238f38479a0c2db9bf9989f389 SHA512 5f7e5dbe5976141de35e96e603624bd9d5a2c08b0690ba9fcd81d1b32f540f94bb9f4b74539e2838fd60ae1312dbe5e0b429ba80a03871782cdf3bd834940ce0 DIST llvm-project-rocm-6.3.0.tar.gz 206677330 BLAKE2B f3e68a8c94599e3a938d3e761af163b9f010a06421680ee70aaaaf8073fb18da9151729c311fc4bd12b281b3afdd15e61cea31c970f0e4d36bb97838fa17ca5f SHA512 674fc3242c6dbb6962f1002dc34ccbd618da6adeb640bac15265d22fdcedf9de16ea3d79899891734ccc1099cb5b5ed9110b1162f4515c4cbc0d847810682b59 +DIST llvm-project-rocm-6.3.2.tar.gz 206671202 BLAKE2B a280e2be22b8eb9fd51814074447baed3637231d4bfbe391047a1fb2409197c8d8ba58cebb3aeaec15aa4daee9371311274b30ede48e0039d7c84e432b15de1a SHA512 314e27577af76268635f3c96ee3516829e4622913c3d0c4c68eccbaee0c9f7f5fc031cbd35827deb4bc29712592c424e296c15ce8c500c897bfb3eb19455899c DIST rocm-comgr-5.1.3.tar.gz 117155 BLAKE2B 40e415c4c7ae3e709dd50981299291f0fc1133f35310b4c86a86847d3bce5fd7685a3f4480f8f156873ca922921c1d4e1cb620fd33bd5cdc87f155af839f2bbe SHA512 5927250f5e03c32b7f270a1dbfe5221d349dfe32aba34143040da53d4e7eb83faa3073a43edabcff13e1fc977bc17088404523f2ab2ea95e207d2c00beb4249b DIST rocm-comgr-5.3.3.tar.gz 120414 BLAKE2B 29b9d466d74ef94165a2b9bea35eac4616f6b2fc529cdac3c830ee7dc08f219cb9e5d4f081658881c76633f12eaebb74d1a2ea30a76652231b8ee516f9988db1 SHA512 ba7b1ef214e3624168e438ed7fd94291a07508fe89d178c0b158bf22e0998d5a8e4d8f0a7f08f05ac108ef65f725db5764fd66353a85bc25000e572a4fdcb61f DIST rocm-comgr-5.4.3.tar.gz 120461 BLAKE2B c4eb79dd5a72a2b18e16841fc8cb9a3a33efb0c7b04a7585df9672d682bba6fa826ab8b37dba5febca3b8c5ee5aca30d8546e1fa69e77671e5c750e2a8c1f12f SHA512 1a25af99a0166d70ca6dc5df5a667068eaf583dccd74bbb18a2a5de3c1b769e0c1eb9a0c539e0cd88bc50bbbe53214a1d1b23fbdfd6fc5b6507c44da259815c4 diff --git a/dev-libs/rocm-comgr/files/rocm-comgr-6.3.2-rocm_path.patch b/dev-libs/rocm-comgr/files/rocm-comgr-6.3.2-rocm_path.patch new file mode 100644 index 000000000000..14b1d12148f7 --- /dev/null +++ b/dev-libs/rocm-comgr/files/rocm-comgr-6.3.2-rocm_path.patch @@ -0,0 +1,14 @@ +Index: comgr/src/comgr-env.cpp +=================================================================== +--- comgr.orig/src/comgr-env.cpp ++++ comgr/src/comgr-env.cpp +@@ -269,6 +269,9 @@ InstallationDetector *getDetectorImpl() + if (EnvROCMPath) { + ROCmInstallPath = EnvROCMPath; + } ++ else { ++ ROCmInstallPath = "@GENTOO_PORTAGE_EPREFIX@/usr"; ++ } + + InstallationDetector *Detector; + if (ROCmInstallPath == "") { diff --git a/dev-libs/rocm-comgr/rocm-comgr-6.3.2.ebuild b/dev-libs/rocm-comgr/rocm-comgr-6.3.2.ebuild new file mode 100644 index 000000000000..bf8986261a9f --- /dev/null +++ b/dev-libs/rocm-comgr/rocm-comgr-6.3.2.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) + +inherit cmake llvm-r1 prefix + +MY_P=llvm-project-rocm-${PV} +components=( "amd/comgr" ) + +DESCRIPTION="Radeon Open Compute Code Object Manager" +HOMEPAGE="https://github.com/ROCm/llvm-project/tree/amd-staging/amd/comgr" +SRC_URI="https://github.com/ROCm/llvm-project/archive/rocm-${PV}.tar.gz -> ${MY_P}.tar.gz" +S="${WORKDIR}/${MY_P}/${components[0]}" + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +IUSE="test" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${PN}-5.1.3-rocm-path.patch" + "${FILESDIR}/0001-Find-CLANG_RESOURCE_DIR-using-clang-print-resource-d.patch" + "${FILESDIR}/${PN}-6.0.0-extend-isa-compatibility-check.patch" + "${FILESDIR}/${PN}-6.1.0-enforce-oop-compiler.patch" + "${FILESDIR}/${PN}-6.3.0-fix-comgr-default-flags.patch" + "${FILESDIR}/${PN}-6.1.0-dont-add-nogpulib.patch" + "${FILESDIR}/${PN}-6.3.0-llvm-19-compat.patch" + "${FILESDIR}/${PN}-6.3.0-bypass-device-libs-copy.patch" +) + +RDEPEND=">=dev-libs/rocm-device-libs-${PV} + llvm-core/clang-runtime:= + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/lld:${LLVM_SLOT}= + ') + dev-util/hipcc:${SLOT} +" +DEPEND="${RDEPEND}" + +CMAKE_BUILD_TYPE=Release + +src_unpack() { + if [[ ${PV} == *9999 ]] ; then + git-r3_fetch + git-r3_checkout '' . '' "${components[@]}" + else + archive="${MY_P}.tar.gz" + ebegin "Unpacking from ${archive}" + tar -x -z -o \ + -f "${DISTDIR}/${archive}" \ + "${components[@]/#/${MY_P}/}" || die + eend ${?} + fi +} + +src_prepare() { + sed '/sys::path::append(HIPPath/s,"hip","",' -i src/comgr-env.cpp || die + sed "/return LLVMPath;/s,LLVMPath,llvm::SmallString<128>(\"$(get_llvm_prefix)\")," -i src/comgr-env.cpp || die + eapply $(prefixify_ro "${FILESDIR}"/${PN}-6.3.2-rocm_path.patch) + + cmake_src_prepare + + # Replace @CLANG_RESOURCE_DIR@ in patches + local CLANG_RESOURCE_DIR="$("$(get_llvm_prefix)"/bin/clang -print-resource-dir)" + sed "s,@CLANG_RESOURCE_DIR@,\"${CLANG_RESOURCE_DIR}\"," -i src/comgr-compiler.cpp || die +} + +src_configure() { + local mycmakeargs=( + -DLLVM_DIR="$(get_llvm_prefix)" + -DCMAKE_STRIP="" # disable stripping defined at lib/comgr/CMakeLists.txt:58 + -DBUILD_TESTING=$(usex test ON OFF) + ) + cmake_src_configure +} + +src_test() { + local CMAKE_SKIP_TESTS=( + comgr_nested_kernel_test # See https://github.com/ROCm/llvm-project/issues/35 + ) + cmake_src_test +} diff --git a/dev-libs/rocm-device-libs/Manifest b/dev-libs/rocm-device-libs/Manifest index 08227416e607..7a9ac0e660ec 100644 --- a/dev-libs/rocm-device-libs/Manifest +++ b/dev-libs/rocm-device-libs/Manifest @@ -1,6 +1,7 @@ DIST llvm-project-rocm-6.1.1.tar.gz 196027084 BLAKE2B 3ef0b6e3c47c66fd80289373e6ff8aaff44751f9b380addfae73a18dc388093c0535f230b0cc7528724bc43f6992e2ae6decd3d0d3c700893ca95a6166b7b8dc SHA512 e320d4eeaa6f61ed1cdbf653d67fe887d3ce9dc0d6743b4713502e1cb5318ab8afbe1ee71f8cba07635c54ce532df6683de40ade0e5be4a52e50ce25a9b70818 DIST llvm-project-rocm-6.1.2.tar.gz 195992927 BLAKE2B d821f29f2f1f7c1ff414c63a710281f16d2a394b21f3365d01b86710cc09ed27e514b49fb744bf6a36b38815afa56cc26d44f0238f38479a0c2db9bf9989f389 SHA512 5f7e5dbe5976141de35e96e603624bd9d5a2c08b0690ba9fcd81d1b32f540f94bb9f4b74539e2838fd60ae1312dbe5e0b429ba80a03871782cdf3bd834940ce0 DIST llvm-project-rocm-6.3.0.tar.gz 206677330 BLAKE2B f3e68a8c94599e3a938d3e761af163b9f010a06421680ee70aaaaf8073fb18da9151729c311fc4bd12b281b3afdd15e61cea31c970f0e4d36bb97838fa17ca5f SHA512 674fc3242c6dbb6962f1002dc34ccbd618da6adeb640bac15265d22fdcedf9de16ea3d79899891734ccc1099cb5b5ed9110b1162f4515c4cbc0d847810682b59 +DIST llvm-project-rocm-6.3.2.tar.gz 206671202 BLAKE2B a280e2be22b8eb9fd51814074447baed3637231d4bfbe391047a1fb2409197c8d8ba58cebb3aeaec15aa4daee9371311274b30ede48e0039d7c84e432b15de1a SHA512 314e27577af76268635f3c96ee3516829e4622913c3d0c4c68eccbaee0c9f7f5fc031cbd35827deb4bc29712592c424e296c15ce8c500c897bfb3eb19455899c DIST rocm-device-libs-5.1.3.tar.gz 242862 BLAKE2B 68d66de897f461e9f876de5fe2214803d4c00665651dea6af0952f0ce579c6704a5ec41b08971fa613ade309a0a85cb611b56b592dc2a25e247183e634ea3378 SHA512 cc3dfb8d4b4841ba777355c537175259d0019159ff462358320674b85082cccd99f6462f60fee66228ddfb88fade043445c1bac62504aa1462ba61b7e2751de7 DIST rocm-device-libs-5.3.3.tar.gz 245690 BLAKE2B 475c0d818b8b0f090a8daeca2910cd4002e4cdf505d020327f46eb5f864a26937a6a3dfe4ff7b188ebda0f936b1c396f2163bb27b9e2a62c5976e60fa60856ac SHA512 8f6f2fc1534e348e02ba30a25cfc6017f8eab768968b5d0344a5ea7d65c4f0a874072f9e53919c74545814330602ef7c190753c7ff019137230e02f58a5d3a5d DIST rocm-device-libs-5.4.3.tar.gz 246095 BLAKE2B eb749346c96d465a5f22831968ccbd71f02749e6aa0d9c2becc0f378641ca0f65c1a131bfd3ed226f838b4208091fcc920b1e31b427adbd69a42881898668e6a SHA512 67b904363a3cff6c15bbd032cbc72cb5cd5f82acaa68c74391dbcf415266e8f35486a496b69b69e1fc0721e0e4e21fb6a6b9c180a46cb59cdcf53916be846ca4 diff --git a/dev-libs/rocm-device-libs/rocm-device-libs-6.3.2.ebuild b/dev-libs/rocm-device-libs/rocm-device-libs-6.3.2.ebuild new file mode 100644 index 000000000000..962910cbdd55 --- /dev/null +++ b/dev-libs/rocm-device-libs/rocm-device-libs-6.3.2.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +inherit cmake flag-o-matic llvm-r1 + +MY_P=llvm-project-rocm-${PV} +components=( "amd/device-libs" ) + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/ROCm/llvm-project" + inherit git-r3 + S="${WORKDIR}/${P}/${components[0]}" +else + SRC_URI="https://github.com/ROCm/llvm-project/archive/rocm-${PV}.tar.gz -> ${MY_P}.tar.gz" + S="${WORKDIR}/${MY_P}/${components[0]}" + KEYWORDS="~amd64" +fi + +DESCRIPTION="Radeon Open Compute Device Libraries" +HOMEPAGE="https://github.com/ROCm/llvm-project/tree/amd-staging/amd/device-libs" + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" +IUSE="test" +RESTRICT="!test? ( test )" + +BDEPEND=" + dev-build/rocm-cmake + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + llvm-core/lld:${LLVM_SLOT} + ') +" + +CMAKE_BUILD_TYPE=Release + +PATCHES=( + "${FILESDIR}/${PN}-6.1.0-fix-llvm-link.patch" + "${FILESDIR}/${PN}-6.1.2-fix-build.patch" + "${FILESDIR}/${PN}-6.2.0-test-bitcode-dir.patch" +) + +src_unpack() { + if [[ ${PV} == *9999 ]] ; then + git-r3_fetch + git-r3_checkout '' . '' "${components[@]}" + else + archive="${MY_P}.tar.gz" + ebegin "Unpacking from ${archive}" + tar -x -z -o \ + -f "${DISTDIR}/${archive}" \ + "${components[@]/#/${MY_P}/}" || die + eend ${?} + fi +} + +src_prepare() { + sed -e "s:amdgcn/bitcode:lib/amdgcn/bitcode:" \ + -i "${S}/cmake/OCL.cmake" \ + -i "${S}/cmake/Packages.cmake" || die + cmake_src_prepare +} + +src_configure() { + # Do not trust CMake with autoselecting Clang, as it autoselects the latest one + # producing too modern LLVM bitcode and causing linker errors in other packages. + # Clean up unsupported flags for the switched compiler, see #936099 + local -x CC="$(get_llvm_prefix)/bin/clang" + local -x CXX="$(get_llvm_prefix)/bin/clang++" + strip-unsupported-flags + + local mycmakeargs=( + -DLLVM_DIR="$(get_llvm_prefix)" + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + local CLANG_EXE="$(get_llvm_prefix)/bin/clang" + # install symlink, so that clang won't ask for "--rocm-device-lib-path" flag anymore + local bitcodedir="$("${CLANG_EXE}" -print-resource-dir)/$(get_libdir)/amdgcn/bitcode" + dosym -r "/usr/lib/amdgcn/bitcode" "${bitcodedir#${EPREFIX}}" +} + +src_test() { + # https://github.com/ROCm/llvm-project/issues/76 + # "Failing tests are on gfx that are not supported" + local CMAKE_SKIP_TESTS=( + compile_frexp__gfx600 + compile_fract__gfx600 + compile_fract__gfx700 + ) + + cmake_src_test +} diff --git a/dev-libs/rocm-opencl-runtime/Manifest b/dev-libs/rocm-opencl-runtime/Manifest index 931e5e868bc8..4ec8a58f9896 100644 --- a/dev-libs/rocm-opencl-runtime/Manifest +++ b/dev-libs/rocm-opencl-runtime/Manifest @@ -6,6 +6,7 @@ DIST rocm-clr-5.7.1.tar.gz 2008647 BLAKE2B 3db0760d6f83504e60caf88a2dd5e0bc02c7d DIST rocm-clr-6.1.1.tar.gz 2031034 BLAKE2B b0485bb015d31986f4988d1db0c029c826856e50b5bb1b58fac2097c14b3966668f1b8d41ec198889e27ac860497a8b3c081ec31d52390d5c9ff5db092bf7cce SHA512 86925e8b9a9e77b06a57daefbc7279887b4ef7c6a79c3717bc2f2d3bf29926281c60063fd17e21c65d7def520d9f579bf88f69051d053a38750ba968f69ca3fc DIST rocm-clr-6.1.2.tar.gz 2031283 BLAKE2B d51d32a77794ea97f1a3817786c9fd6b482106b665eea6e2c9b4c11e4dce19a3486386eb5ba111554c2d82c30e2a93add7502eed5768caf3fb709fb5fbb2e71b SHA512 e97224451864efe0084c4117f54893c9624a6a9f365a0b4abad08fd9635f008dea742dc589429fbb714e1b8177d06362c0f5a741f6c4a050d0fd4d48da72d54b DIST rocm-clr-6.3.0.tar.gz 2093572 BLAKE2B 14f75f9f5dc4000a2abf28e523659def8cd96112c9c8b95abb634c33433077faa3ddab3fbe659e0ed2e1f309f63a93b7eb03fa6f246b4cea06ca8c512c13308a SHA512 f005baaf2a8f63946811db990e2d373906b31a4085a51427d407c9e4c1d877a14aeb713190a285953cadb960b5517570941c60e2f998adb2b1f9833f1d2f5925 +DIST rocm-clr-6.3.2.tar.gz 2095677 BLAKE2B 2f1122a2058f8ba358fe48a46473f23c46a5413fef16515f103c21a8ae13bb76522fbe587cb9c9e6e3dd06f968402b6a881391823c80381c0c41072597c845ac SHA512 5bade294dc6fc60bf459bfd7124c354f2b0079167d3c8776a9e3d6d8320bb9b1a2a0770a466987e164994293024bf47de158ba207f077968dfccb7bf20fb884b DIST rocm-opencl-runtime-5.1.3.tar.gz 1004765 BLAKE2B 64d9b42026d2be1d0e4aa666785699f6b4ec0584a927904a94bf830883050943503f8bdd7c97438a2fb11c71686a330d526f633959916c5c6c8da2e037841e79 SHA512 b83c3ae0bfad80f867bacce36710a8964f6dd7e64bf50da3ec6ce842217d6de63299d9ceaab9dc25a22252484520a85d02859809463dad5dda9b1f00a86863e0 DIST rocm-opencl-runtime-5.3.3.tar.gz 1007773 BLAKE2B a3f600a68183337f92b152a123241cb7025889cca2ef6814d9d5b5a2146a78703b171d20bcb432bc7a2cdd1f24ad349408c17816b25a66702e9f0f5345af9082 SHA512 391f0f244b7f02972df8cada821e69ee8d81d96b9cff3c14f1d0838da583d8fb136ec4bd5ee820f6dd261968e9eef5e9a5b10b7bb76b1b64625c399d79bcb03f DIST rocm-opencl-runtime-5.4.3.tar.gz 1005268 BLAKE2B f9398e4c2b0f045f1b5d8df9f31b7f2bef6a9201885aa6ee5fc5d71632cfde26a078d9a5ea38c3da12d3c187faf04c7bdcf1a8ecb9927cdba56b1efdfcdc44ee SHA512 f65d4622ce8721a6b91ab5b5b306d142ba507d3e631ac3ab0b76c5bc6d8d18455e02debd954c82e7eb609f232b509f1ec1a013dc2fad467c2c2ad31fdf15755d diff --git a/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.3.2.ebuild b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.3.2.ebuild new file mode 100644 index 000000000000..32e9d9fa8199 --- /dev/null +++ b/dev-libs/rocm-opencl-runtime/rocm-opencl-runtime-6.3.2.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ROCM_SKIP_GLOBALS=1 +inherit cmake edo flag-o-matic rocm + +DESCRIPTION="Radeon Open Compute OpenCL Compatible Runtime" +HOMEPAGE="https://github.com/ROCm/clr" + +SRC_URI="https://github.com/ROCm/clr/archive/refs/tags/rocm-${PV}.tar.gz -> rocm-clr-${PV}.tar.gz" +S="${WORKDIR}/clr-rocm-${PV}/" + +LICENSE="Apache-2.0 MIT" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="debug test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/rocr-runtime:${SLOT} + dev-libs/rocm-comgr:${SLOT} + dev-libs/rocm-device-libs:${SLOT} + >=virtual/opencl-3 + media-libs/mesa[-opencl] +" +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-build/rocm-cmake-6.0 + media-libs/glew + test? ( >=x11-apps/mesa-progs-8.5.0[X] ) +" + +PATCHES=( + "${FILESDIR}/${PN}-6.2.4-fix-lib-version.patch" + "${FILESDIR}/${PN}-6.1.2-musl.patch" +) + +src_configure() { + # -Werror=strict-aliasing + # https://bugs.gentoo.org/856088 + # https://github.com/ROCm/clr/issues/64 + # + # Do not trust it for LTO either + append-flags -fno-strict-aliasing + filter-lto + + # Fix ld.lld linker error: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/155 + append-ldflags $(test-flags-CCLD -Wl,--undefined-version) + + # Reported upstream: https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime/issues/120 + append-cflags -fcommon + + local mycmakeargs=( + -Wno-dev + -DROCM_PATH="${EPREFIX}/usr" + -DBUILD_TESTS=$(usex test ON OFF) + -DEMU_ENV=ON + -DBUILD_ICD=ON + -DFILE_REORG_BACKWARD_COMPATIBILITY=OFF + -DCLR_BUILD_OCL=on + ) + cmake_src_configure +} + +src_install() { + insinto /etc/OpenCL/vendors + doins opencl/config/amdocl64.icd + + cd "${BUILD_DIR}"/opencl || die + insinto /usr/lib64 + doins amdocl/libamdocl64.so* + doins tools/cltrace/libcltrace.so +} + +src_test() { + check_amdgpu + cd "${BUILD_DIR}"/tests/ocltst || die + export OCL_ICD_FILENAMES="${BUILD_DIR}"/amdocl/libamdocl64.so + local instruction1="Please start an X server using amdgpu driver (not Xvfb!)," + local instruction2="and export OCLGL_DISPLAY=\${DISPLAY} OCLGL_XAUTHORITY=\${XAUTHORITY} before reruning the test." + if [[ -n ${OCLGL_DISPLAY+x} ]]; then + export DISPLAY=${OCLGL_DISPLAY} + export XAUTHORITY=${OCLGL_XAUTHORITY} + ebegin "Running oclgl test under DISPLAY ${OCLGL_DISPLAY}" + if ! glxinfo | grep "OpenGL vendor string: AMD"; then + ewarn "${instruction1}" + ewarn "${instruction2}" + die "This display does not have AMD OpenGL vendor!" + fi + ./ocltst -m $(realpath liboclgl.so) -A ogl.exclude + eend $? || die "oclgl test failed" + else + ewarn "${instruction1}" + ewarn "${instruction2}" + die "\${OCLGL_DISPLAY} not set." + fi + edob ./ocltst -m $(realpath liboclruntime.so) -A oclruntime.exclude + edob ./ocltst -m $(realpath liboclperf.so) -A oclperf.exclude +} diff --git a/dev-libs/rocr-runtime/Manifest b/dev-libs/rocr-runtime/Manifest index b4df296c7850..e3cff9f07782 100644 --- a/dev-libs/rocr-runtime/Manifest +++ b/dev-libs/rocr-runtime/Manifest @@ -6,3 +6,4 @@ DIST rocr-runtime-5.7.1.tar.gz 832009 BLAKE2B 67e4a64ee03b1f6edc43923c7ac44113ab DIST rocr-runtime-6.1.1.tar.gz 903611 BLAKE2B 175e7267bfd9d70fb805135e765004cf2b43b2d66354f0cef857d417c8dac4ce7638ec1b90a1088324aa5f90ed8354c66b56846115368d68d622a215350d84dd SHA512 5e6e28dee29ef9df9d617f56038b2e52022738d5510833cd8e1738defe1049d0a957db4d9f63bbf55d8efca3a4ea349b95919dd1b6b35b9814ebba575a67af57 DIST rocr-runtime-6.1.2.tar.gz 903633 BLAKE2B 058492c6c37bb80e8cdb29752f3f1404ac88108dcfd5137042e4fdaff521db01d64bd14bdcbed9e53b8984f8bbb22b126f1a798bd064c393b5bcf76c1d3311ca SHA512 2893aff72a5fbf03bfde67ab64fcf00f4e10b5e5b11ff4617e94ae0c019a24a9b80601d8629d4e119e6a4957dc0aaf03d645111063979af60090fe3b232a477e DIST rocr-runtime-6.3.0.tar.gz 2258605 BLAKE2B 53b43a8bc4a327c2138e39db20f5217b2def6866d1b52e48017c41e6c3c8541e6bdce76f5a7669cdffccfb34a4cfa863e56e0ce4058d23c5f38d9d0900903751 SHA512 451e74d88875b8d0a1f21d95c543fd93610d966e69258b50fe4b8796381c58f5ea381384e199e5bcf01a80369a59e5a093d8f318fbe2ed1ca6a97dc915060f7a +DIST rocr-runtime-6.3.2.tar.gz 2260102 BLAKE2B 706cd4cc61c3007aec2b7822c02a7c98399454b366f2a2c221ae53ea3ee4c288c47c7fcfbe8f1cbd38d071ab5c90a2d79c054a0b0d2a2f6892a051b843794d32 SHA512 0326242deae601275d71fb268781735b117e713e73b1bcac2fd732828d993dee5840dec011fdc4350be2afdbc8266b6d1b65d5dff0d465a5b9c9cc091a5c645c diff --git a/dev-libs/rocr-runtime/rocr-runtime-6.3.2.ebuild b/dev-libs/rocr-runtime/rocr-runtime-6.3.2.ebuild new file mode 100644 index 000000000000..d5f08251958d --- /dev/null +++ b/dev-libs/rocr-runtime/rocr-runtime-6.3.2.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) + +inherit cmake flag-o-matic llvm-r1 + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/ROCm/ROCR-Runtime/" + inherit git-r3 + S="${WORKDIR}/${P}" +else + SRC_URI="https://github.com/ROCm/ROCR-Runtime/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/ROCR-Runtime-rocm-${PV}" + KEYWORDS="~amd64" +fi + +DESCRIPTION="Radeon Open Compute Runtime" +HOMEPAGE="https://github.com/ROCm/ROCR-Runtime" + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" +IUSE="debug" + +COMMON_DEPEND="dev-libs/elfutils + x11-libs/libdrm" +DEPEND="${COMMON_DEPEND} + dev-libs/roct-thunk-interface:${SLOT} + dev-libs/rocm-device-libs:${SLOT} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT}= + llvm-core/lld:${LLVM_SLOT}= + ') +" +RDEPEND="${DEPEND}" +BDEPEND="app-editors/vim-core" + # vim-core is needed for "xxd" + +PATCHES=( + "${FILESDIR}/${PN}-6.3.0-use-system-hsakmt.patch" + "${FILESDIR}/${PN}-6.3.0-musl.patch" +) + +src_prepare() { + cd "${S}/runtime/hsa-runtime" || die + eapply "${FILESDIR}/${PN}-4.3.0_no-aqlprofiler.patch" + eapply "${FILESDIR}/${PN}-5.7.1-extend-isa-compatibility-check.patch" + eapply "${FILESDIR}/${PN}-6.1.2-gcc15-stdint.patch" + + # Gentoo installs "*.bc" to "/usr/lib" instead of a "[path]/bitcode" directory ... + sed -e "s:-O2:--rocm-path=${EPREFIX}/usr/lib/ -O2:" -i image/blit_src/CMakeLists.txt || die + + cd "${S}" || die + cmake_src_prepare +} + +src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/856091 + # https://github.com/ROCm/ROCR-Runtime/issues/182 + filter-lto + + use debug || append-cxxflags "-DNDEBUG" + + cmake_src_configure +} diff --git a/dev-libs/roct-thunk-interface/Manifest b/dev-libs/roct-thunk-interface/Manifest index f6991f4abe4d..434cfa782a87 100644 --- a/dev-libs/roct-thunk-interface/Manifest +++ b/dev-libs/roct-thunk-interface/Manifest @@ -6,3 +6,4 @@ DIST roct-thunk-interface-5.7.1.tar.gz 665529 BLAKE2B 407601d45976ad66e85999c53b DIST roct-thunk-interface-6.1.1.tar.gz 666377 BLAKE2B b30d733fb769f7169e97b8a28eaa61c84205aec06b55d662d24f159a3c84190f3252f090413769e56eb621abc789fae521cb7b26d7cdac952ff1e4e120707bc9 SHA512 2c579606d2ced9f8b5e32841db745819771b7d6ce0cef90b818e3710470e30c7715540125d99ed5ea13c4e672d5af6d8ad2dd5975ef76cab7ba993d86cf74eb4 DIST roct-thunk-interface-6.1.2.tar.gz 666380 BLAKE2B ffff2405bbb95a6908670a23cf6090147a5669f8ab0c999047203731c99c511738a33ac8d3fc0f0e5432e3744e948ec3fe658d6a578ecc63606c8a5662025b0a SHA512 083b1a865608016f78c094a27ece3858072e72d80e1322e7cef22261222a0f868d3b72ebfcd80a11e4719e90d3d3fc7b0c683aed77714f54f520bb126b13ab7c DIST roct-thunk-interface-6.3.0.tar.gz 2258605 BLAKE2B 53b43a8bc4a327c2138e39db20f5217b2def6866d1b52e48017c41e6c3c8541e6bdce76f5a7669cdffccfb34a4cfa863e56e0ce4058d23c5f38d9d0900903751 SHA512 451e74d88875b8d0a1f21d95c543fd93610d966e69258b50fe4b8796381c58f5ea381384e199e5bcf01a80369a59e5a093d8f318fbe2ed1ca6a97dc915060f7a +DIST roct-thunk-interface-6.3.2.tar.gz 2260102 BLAKE2B 706cd4cc61c3007aec2b7822c02a7c98399454b366f2a2c221ae53ea3ee4c288c47c7fcfbe8f1cbd38d071ab5c90a2d79c054a0b0d2a2f6892a051b843794d32 SHA512 0326242deae601275d71fb268781735b117e713e73b1bcac2fd732828d993dee5840dec011fdc4350be2afdbc8266b6d1b65d5dff0d465a5b9c9cc091a5c645c diff --git a/dev-libs/roct-thunk-interface/roct-thunk-interface-6.3.2.ebuild b/dev-libs/roct-thunk-interface/roct-thunk-interface-6.3.2.ebuild new file mode 100644 index 000000000000..b4d7f2f1f1bf --- /dev/null +++ b/dev-libs/roct-thunk-interface/roct-thunk-interface-6.3.2.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 19 ) +ROCM_SKIP_GLOBALS=1 +inherit cmake linux-info llvm-r1 rocm + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/ROCm/ROCR-Runtime/" + inherit git-r3 + S="${WORKDIR}/${P}/libhsakmt" +else + SRC_URI="https://github.com/ROCm/ROCR-Runtime/archive/rocm-${PV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/ROCR-Runtime-rocm-${PV}/libhsakmt" + KEYWORDS="~amd64" +fi + +DESCRIPTION="Radeon Open Compute Thunk Interface" +HOMEPAGE="https://github.com/ROCm/ROCR-Runtime/tree/amd-staging/libhsakmt" +CONFIG_CHECK="~HSA_AMD ~HMM_MIRROR ~ZONE_DEVICE ~DRM_AMDGPU ~DRM_AMDGPU_USERPTR" +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" + +RDEPEND="sys-process/numactl + x11-libs/libdrm[video_cards_amdgpu]" +DEPEND="${RDEPEND} + test? ( + $(llvm_gen_dep 'llvm-core/llvm:${LLVM_SLOT}') + dev-cpp/gtest + )" + +IUSE="test" +RESTRICT="!test? ( test )" + +CMAKE_BUILD_TYPE=Release + +PATCHES=( + "${FILESDIR}/${PN}-6.3.0-functions.patch" + "${FILESDIR}/${PN}-6.3.0-musl.patch" + "${FILESDIR}/kfdtest-6.1.0-skipIPCtest.patch" + "${FILESDIR}/kfdtest-6.2.4-fix-llvm-header.patch" +) + +test_wrapper() { + local S="$1" + shift 1 + local CMAKE_USE_DIR="${S}" + local BUILD_DIR="${S}_build" + cd "${S}" || die + $@ +} + +src_prepare() { + sed -e "s/get_version ( \"1.0.0\" )/get_version ( \"${PV}\" )/" -i CMakeLists.txt || die + + # https://github.com/ROCm/ROCR-Runtime/issues/263 + sed -e "s/\${HSAKMT_TARGET} STATIC/\${HSAKMT_TARGET}/" -i CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr" + -DBUILD_SHARED_LIBS=ON + ) + cmake_src_configure + + if use test; then + export LIBHSAKMT_PATH="${BUILD_DIR}" + local mycmakeargs=( + -DLLVM_DIR="$(get_llvm_prefix)" + ) + test_wrapper "${S}/tests/kfdtest" cmake_src_configure + fi +} + +src_compile() { + cmake_src_compile + if use test; then + LIBRARY_PATH="${BUILD_DIR}" test_wrapper "${S}/tests/kfdtest" cmake_src_compile + fi +} + +src_test() { + check_amdgpu + TESTDIR="${S}/tests/kfdtest_build/" + cd "${TESTDIR}" || die + PATH="${PATH}:${TESTDIR}" ./run_kfdtest.sh +} diff --git a/dev-libs/skalibs/skalibs-2.14.3.0.ebuild b/dev-libs/skalibs/skalibs-2.14.3.0.ebuild index 64c6328ea9cd..1fa4f3a03989 100644 --- a/dev-libs/skalibs/skalibs-2.14.3.0.ebuild +++ b/dev-libs/skalibs/skalibs-2.14.3.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -11,7 +11,7 @@ SRC_URI="https://www.skarnet.org/software/${PN}/${P}.tar.gz" LICENSE="ISC" SLOT="0/$(ver_cut 1-2)" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv x86" HTML_DOCS=( doc/. ) diff --git a/dev-libs/tree-sitter/tree-sitter-0.24.3.ebuild b/dev-libs/tree-sitter/tree-sitter-0.24.3.ebuild index 765a16ffae30..20863acffab5 100644 --- a/dev-libs/tree-sitter/tree-sitter-0.24.3.ebuild +++ b/dev-libs/tree-sitter/tree-sitter-0.24.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -12,7 +12,7 @@ if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/${PN}/${PN}" else SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" fi LICENSE="MIT" diff --git a/dev-libs/wayland-protocols/Manifest b/dev-libs/wayland-protocols/Manifest index 629dac6ee6bd..008362b605f3 100644 --- a/dev-libs/wayland-protocols/Manifest +++ b/dev-libs/wayland-protocols/Manifest @@ -1,2 +1,3 @@ DIST wayland-protocols-1.38.tar.xz 102648 BLAKE2B b07abed74b2f83247f3746414dc1f9e317793f9bc6ae7c1cb955d94149577964dee2ed0d658d4b9d9d7bd446509966393f4060b85db09b56292ddd9702bd1aee SHA512 43fc36d35bedb245deed0e2de246f42d2bbfa6ecafa094f2a7fb103d6df8ae28f3cc200bc5aa24745b9131a28381883c24779da0a6d9ac954753bd5ebb1405db DIST wayland-protocols-1.39.tar.xz 108844 BLAKE2B ca0350acdce8e2b3803ef4582576fd2db61228f54cebfa232ebbf85377a7201ceb9a96650c8940dc91c193681fa70a0fcb3d5fa9e541acfe77ae07448e998f9d SHA512 480a195ec0846400d93160e3d0a7ba12948ed841835ee4661f54b0101ae0027affd9c0f660a73244786fecd70e4f609830489a6b95e00d750cf2379734aacbe0 +DIST wayland-protocols-1.40.tar.xz 109104 BLAKE2B 48f5540088dd0c7d4c7824f95707c33eceb7d474f4925f7395040f5364dca58c5638e2d2c1c93de7d8c1e41870f6be11d635d1a8b8da496e6ac3a592c02cf143 SHA512 f9bbab39d5df593f292da7bf44e822b53530d47d5ca63ecb0f454680722c4d39ccae2be88ba97a644f79b4a3cce2af111cad2a8f75fdc199f858dc7eda0cf820 diff --git a/dev-libs/wayland-protocols/wayland-protocols-1.40.ebuild b/dev-libs/wayland-protocols/wayland-protocols-1.40.ebuild new file mode 100644 index 000000000000..88fd7ea8817d --- /dev/null +++ b/dev-libs/wayland-protocols/wayland-protocols-1.40.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Wayland protocol files" +HOMEPAGE="https://wayland.freedesktop.org/" + +if [[ ${PV} = 9999* ]]; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/wayland/${PN}.git/" + inherit git-r3 +else + SRC_URI="https://gitlab.freedesktop.org/wayland/${PN}/-/releases/${PV}/downloads/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="MIT" +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=" + test? ( dev-libs/wayland ) +" +BDEPEND=" + >=dev-util/wayland-scanner-1.23.0 + virtual/pkgconfig +" + +src_configure() { + local emesonargs=( + $(meson_use test tests) + ) + meson_src_configure +} diff --git a/dev-libs/xxhash/Manifest b/dev-libs/xxhash/Manifest index be3b82a468e2..1ea2e70343b5 100644 --- a/dev-libs/xxhash/Manifest +++ b/dev-libs/xxhash/Manifest @@ -1,2 +1,2 @@ -DIST xxhash-0.8.1.tar.gz 171552 BLAKE2B c0efc1aabf68130d7028a6e43fb04826de4ec485bfb5e915bd9dad823149b970f964784e14c35babd46b9811b961ce3d0be49feb1640e00780decf037427f5fc SHA512 12feedd6a1859ef55e27218dbd6dcceccbb5a4da34cd80240d2f7d44cd246c7afdeb59830c2d5b90189bb5159293532208bf5bb622250102e12d6e1bad14a193 DIST xxhash-0.8.2.tar.gz 1141188 BLAKE2B 735408256240760778fa516e01bed428f04837eb4e059c512e924f13e4a96db6cacbbefb04dea65a37b0f25b52cf13c4927a6e7870dc8c0d45b1b955d4ba3da1 SHA512 3e3eef21432fe88bc4dd9940ccad0308fdea3537b06fa5ac0e74c1bde53413dff29c8b3fc617a8a42b9ce88fcf213311d338a31b1ce73b3729342c9e68f06c78 +DIST xxhash-0.8.3.tar.gz 1147630 BLAKE2B 75923c7c5df3490062791fa02ccddfb7281b3646e2b3e4b4a0c0d611c339e07c8d9cb656777fd0fcec9cda484f7b33edf080116bb011f70d6b8299cda63afa4e SHA512 8b5c8b9aad4e869f28310b12cc314037feda81d92f26c23eaecdb35dc65042ca2e65f2e9606033e62a31bcc737a9a950500ffcbdb8677d6ab20e820ea14f2b79 diff --git a/dev-libs/xxhash/xxhash-0.8.1.ebuild b/dev-libs/xxhash/xxhash-0.8.1.ebuild deleted file mode 100644 index 6a2344c3a419..000000000000 --- a/dev-libs/xxhash/xxhash-0.8.1.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Extremely fast non-cryptographic hash algorithm" -HOMEPAGE="http://www.xxhash.net" -SRC_URI="https://github.com/Cyan4973/xxHash/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="BSD-2 GPL-2+" -# https://abi-laboratory.pro/tracker/timeline/xxhash -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos" -IUSE="static-libs" - -S="${WORKDIR}/xxHash-${PV}" - -src_compile() { - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - emake AR="$(tc-getAR)" CC="$(tc-getCC)" -} - -src_install() { - PREFIX="${EPREFIX}/usr" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ - MANDIR="${EPREFIX}/usr/share/man/man1" \ - emake DESTDIR="${D}" install - - # link man pages by hand, bug #829159 - dosym xxhsum.1 /usr/share/man/man1/xxh32sum.1 - dosym xxhsum.1 /usr/share/man/man1/xxh64sum.1 - dosym xxhsum.1 /usr/share/man/man1/xxh128sum.1 - - if ! use static-libs ; then - rm "${ED}"/usr/$(get_libdir)/libxxhash.a || die - fi -} diff --git a/dev-libs/xxhash/xxhash-0.8.3.ebuild b/dev-libs/xxhash/xxhash-0.8.3.ebuild new file mode 100644 index 000000000000..ea7c8a6d21a2 --- /dev/null +++ b/dev-libs/xxhash/xxhash-0.8.3.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal toolchain-funcs + +DESCRIPTION="Extremely fast non-cryptographic hash algorithm" +HOMEPAGE="https://xxhash.com/" +SRC_URI="https://github.com/Cyan4973/xxHash/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S=${WORKDIR}/xxHash-${PV} + +LICENSE="BSD-2 GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +src_prepare() { + default + + multilib_copy_sources +} + +multilib_src_compile() { + emake AR="$(tc-getAR)" CC="$(tc-getCC)" +} + +multilib_src_test() { + emake CC="$(tc-getCC)" check +} + +multilib_src_install() { + local emakeargs=( + DESTDIR="${D}" + PREFIX="${EPREFIX}"/usr + LIBDIR="${EPREFIX}"/usr/$(get_libdir) + ) + + emake "${emakeargs[@]}" install + einstalldocs + + rm "${ED}"/usr/$(get_libdir)/libxxhash.a || die +} |