From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 44EE4158041 for ; Wed, 21 Feb 2024 10:17:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 618DDE29BA; Wed, 21 Feb 2024 10:17:45 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3F78DE29BA for ; Wed, 21 Feb 2024 10:17:45 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 22BB93431D2 for ; Wed, 21 Feb 2024 10:17:44 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3548114B7 for ; Wed, 21 Feb 2024 10:17:42 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1708509735.829ba39e7e73b6387749f076d2b3f55ac36c64d2.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/botan/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-libs/botan/Manifest dev-libs/botan/botan-3.3.0.ebuild X-VCS-Directories: dev-libs/botan/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 829ba39e7e73b6387749f076d2b3f55ac36c64d2 X-VCS-Branch: master Date: Wed, 21 Feb 2024 10:17:42 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: e35bfbb6-0b91-41b8-ac79-af0d4b13584d X-Archives-Hash: 8807a6ab327a182a715ec3563b9bc86c commit: 829ba39e7e73b6387749f076d2b3f55ac36c64d2 Author: Sam James gentoo org> AuthorDate: Wed Feb 21 08:12:09 2024 +0000 Commit: Sam James gentoo org> CommitDate: Wed Feb 21 10:02:15 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=829ba39e dev-libs/botan: add 3.3.0 Bug: https://bugs.gentoo.org/925147 Signed-off-by: Sam James gentoo.org> dev-libs/botan/Manifest | 2 + dev-libs/botan/botan-3.3.0.ebuild | 223 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 225 insertions(+) diff --git a/dev-libs/botan/Manifest b/dev-libs/botan/Manifest index e4e733e8a5fa..bb8e67b48fc7 100644 --- a/dev-libs/botan/Manifest +++ b/dev-libs/botan/Manifest @@ -4,3 +4,5 @@ DIST Botan-3.1.1.tar.xz 8800368 BLAKE2B c31365e6bd4106f96a033e5f092c528c0185577f DIST Botan-3.1.1.tar.xz.asc 488 BLAKE2B 9ac94473d90a26932e507cdb3f46d8381565deecff38a5a2f7fe043b33405071adf0baee4235dd94bb6d35fa3ffedca6192fb5f5d76030874a90a399d88f9744 SHA512 f52e8602a57f590150f6f49829e788910006e5113ab6e85c6efe73009b8db752b5f28b869c6265ef6dd3c2727c64c0182d125f02f92485485768416c618acdb9 DIST Botan-3.2.0.tar.xz 8998204 BLAKE2B f21e7574af93ab3331607f4a4ecf1b2cbbc0db4b510ea8ad19a5286d46d3a8e37e13746d2d4751eb16a70fdc8371b4435b030ef0a17f1ab6dcd76bd81bb3a4fa SHA512 526cf71144584fef6e73f14f6aa1e2a7b03a92a3e51436287764bb61e742a94e02926bcc2aab038f08ef2169cb511152c8ecd71d51e06deb4875dc676875c2d9 DIST Botan-3.2.0.tar.xz.asc 488 BLAKE2B f7bc716dd18eedf35928933e22c75de3d2731330dfdaf8a5048e8ad86e1f3896ea55294a64b7f82593af16dd2e4097a9ba68f25baa024e175b7334478bcf84a6 SHA512 3ee42ac73e1bd6cea0a2e9f468b88d67c02a4a69786c41ddf9fc7f94b6847be00e0f3f0f38f934ab599b8d6dd29006414294df8b371f5cf2422292f3dd176756 +DIST Botan-3.3.0.tar.xz 7164024 BLAKE2B 051a24c28e6858fdff2af15d01a871ebe5bab11d773be821c0a56a55c725c91cf3119280195ac736f4df83305c1d4910430e6b26deded0d4c634e5c2fc23b389 SHA512 90930add225a2b4376046b3ed0177c71e7d19e983fb2b99c40751de5e6c3959b520eaa1e836782eb02ebc8aff8e9a4fd928f585de5e6b1798a8ad4aa0464f19b +DIST Botan-3.3.0.tar.xz.asc 488 BLAKE2B 043538ff2572a449d4d9ad4bba6d7cab78865e924f712d1b4d4aad9f378cc417f07c19a25adefa22b6e1c06259a50880414c11ce8d3ad1e7f815cf458dbbe6b8 SHA512 c951079c22665966b96cf18c20df7b709353b42dab4aeb33d021b4a8abbc0f06d8fe909f1a5db3e736b4f93b17374d8f832f7aa9f25757a5d5ab1604320581b2 diff --git a/dev-libs/botan/botan-3.3.0.ebuild b/dev-libs/botan/botan-3.3.0.ebuild new file mode 100644 index 000000000000..0e0e173ec872 --- /dev/null +++ b/dev-libs/botan/botan-3.3.0.ebuild @@ -0,0 +1,223 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +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 ~ia64 ~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} + !=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 sys-devel/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 + --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 +}