repo/gentoo:master commit in: dev-libs/botan/
"Sam James" <[email protected]>
| Newsgroups | gmane.linux.gentoo.cvs |
|---|---|
| Message-ID | <1786754349.696056059bb4d53fd61ade6ccf1a615f533d51bd.sam@gentoo> |
commit: 696056059bb4d53fd61ade6ccf1a615f533d51bd
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 15 00:39:09 2026 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Aug 15 00:39:09 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=69605605
dev-libs/botan: add 3.13.0
Bug: https://bugs.gentoo.org/980865
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/botan/Manifest | 2 +
dev-libs/botan/botan-3.13.0.ebuild | 204 +++++++++++++++++++++++++++++++++++++
2 files changed, 206 insertions(+)
diff --git a/dev-libs/botan/Manifest b/dev-libs/botan/Manifest
index 12b67e6fa811..f62f3576012f 100644
--- a/dev-libs/botan/Manifest
+++ b/dev-libs/botan/Manifest
@@ -2,3 +2,5 @@ DIST Botan-3.11.1.tar.xz 8945412 BLAKE2B ff51a4b52a118eaaeb8f7df20332c23347f4d20
DIST Botan-3.11.1.tar.xz.asc 488 BLAKE2B bd867108a063b6197c89dfe0bd75dcb74020309b713f84523128a0aea845456813a055671daa68e97ddcf5a8afd8f5fc596477c27958789225b73c67325ab45b SHA512 a369fe10d97d080ae82b85a862734e6fa6a3a9ec05782181530d7b12a5c55aec4049f6e501b668833d0d13e3ea43baa1414481abbbdbbbd175ea8328c0c0d25d
DIST Botan-3.12.0.tar.xz 9041764 BLAKE2B cdade127c9344949b9b10f19b7b417b3f3e39b36fc1a091dbd493dc094050b6322906c33c39d15d9aaa4065fcd9889294812a49174b32f4d625719a1cd3c09d6 SHA512 97d39b0c73f8515fcef759715c5c0d06f83c0037e5d65805cda793970ad91fb847ddbce242f9a5365e0ee670fde3ec3e84866532a18c2d9ea8ad8e27fd28cc02
DIST Botan-3.12.0.tar.xz.asc 488 BLAKE2B 58c9208f904907b7c858fa542ba6251e8b2d609242e0f69c038aa944f4dc3f35109ed0f5fc454df92e487d307e956d66eec9b1115431ae838f2c4fd0e3b0d733 SHA512 2ca5675982934ac0a55c98aed2e68a9b8d8fcba5b01a588eef03cbd0afe884d8c0f69a32ad9235a0ee4cebafe869f26842bcbd909a28149145ea7aff18886a37
+DIST Botan-3.13.0.tar.xz 9598736 BLAKE2B 1cbc851cbd917341fb6f3536ab657af7508ad2fb1b56026fc5e9cf43da89e13158c836c0d74550ed516fda10c39564e5d3997c0b513b0094fe5e0a19e5c250e9 SHA512 f596dcd4d9e6c39cf1a143c310213c8f5d838cc81f802788d516c6087f1ee337bce08599769630f7a3cda962ee3ea9cc20d559843b39bcdbaee3688b6adf13b9
+DIST Botan-3.13.0.tar.xz.asc 488 BLAKE2B 1a9c5e6142f7770ab7fb480df17f67f265a16f77ec5a92dd146330bfab4501f575fd2292d07e76e1c79d9044be15dc113bf32485ec507aaeeede88632cc34e1f SHA512 28f57afa9b8899ce2c81a7fa4d42e802b1980cfb6202fc5b7dde8efa54b0c2739ebcaf95d02fcbdbbb02ac6e2f9bd9b71cf3e49797b54d13a681a897e22211bd
diff --git a/dev-libs/botan/botan-3.13.0.ebuild b/dev-libs/botan/botan-3.13.0.ebuild
new file mode 100644
index 000000000000..40fd22340f8f
--- /dev/null
+++ b/dev-libs/botan/botan-3.13.0.ebuild
@@ -0,0 +1,204 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/botan.asc
+inherit edo dot-a 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"
+IUSE="doc boost bzip2 lzma python static-libs sqlite test tools zlib"
+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? ( >=virtual/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}]
+ dev-python/furo[${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}]" &&
+ python_has_version "dev-python/furo[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # bug #908958
+ tc-check-min_ver gcc 11
+ tc-check-min_ver clang 14
+}
+
+src_configure() {
+ tc-export AR CC CXX
+ use static-libs && lto-guarantee-fat
+ 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=(
+ # We already set this by default in the toolchain
+ --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-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
+
+ strip-lto-bytecode
+
+ 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
+
+ if [[ -d "${ED}"/usr/share/man/man1 ]] ; then
+ # --program-suffix doesn't apply to the man page
+ mv "${ED}"/usr/share/man/man1/botan{,$(ver_cut 1)}.1 || 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
+}