From: "Petr Vaněk" <arkamar@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/botan/
Date: Wed, 27 Dec 2023 23:34:39 +0000 (UTC) [thread overview]
Message-ID: <1703720013.381a796a6d0a31a59d95abec319f00108e33db4d.arkamar@gentoo> (raw)
commit: 381a796a6d0a31a59d95abec319f00108e33db4d
Author: Petr Vaněk <arkamar <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 27 23:19:49 2023 +0000
Commit: Petr Vaněk <arkamar <AT> gentoo <DOT> org>
CommitDate: Wed Dec 27 23:33:33 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=381a796a
dev-libs/botan: utilize getrandom and getentropy functions also with musl
musl provides those functions since version 1.1.20.
Signed-off-by: Petr Vaněk <arkamar <AT> gentoo.org>
dev-libs/botan/botan-3.2.0-r2.ebuild | 229 +++++++++++++++++++++++++++++++++++
1 file changed, 229 insertions(+)
diff --git a/dev-libs/botan/botan-3.2.0-r2.ebuild b/dev-libs/botan/botan-3.2.0-r2.ebuild
new file mode 100644
index 000000000000..e159ec4d7ba0
--- /dev/null
+++ b/dev-libs/botan/botan-3.2.0-r2.ebuild
@@ -0,0 +1,229 @@
+# Copyright 1999-2023 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"
+RESTRICT="!test? ( test )"
+
+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[@]}"
+
+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:* >=sys-devel/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
+PATCHES=(
+ "${FILESDIR}"/${P}-ninja.patch
+)
+
+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 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
+}
next reply other threads:[~2023-12-27 23:34 UTC|newest]
Thread overview: 210+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-27 23:34 Petr Vaněk [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-02-05 22:03 [gentoo-commits] repo/gentoo:master commit in: dev-libs/botan/ Sam James
2025-01-23 22:43 Sam James
2025-01-23 22:43 Sam James
2025-01-23 22:19 Sam James
2025-01-23 22:19 Sam James
2025-01-22 7:57 Sam James
2025-01-22 7:54 Sam James
2025-01-22 7:54 Sam James
2025-01-22 7:33 Sam James
2024-12-23 10:31 Sam James
2024-12-22 19:47 Sam James
2024-10-07 2:52 Sam James
2024-02-21 10:17 Sam James
2024-02-21 10:17 Sam James
2024-02-21 10:17 Sam James
2024-02-21 10:17 Sam James
2024-02-21 10:17 Sam James
2023-12-23 14:29 Arthur Zamarin
2023-12-15 7:42 Sam James
2023-12-15 7:34 Sam James
2023-11-17 10:44 Arthur Zamarin
2023-10-11 5:21 Sam James
2023-10-11 5:21 Sam James
2023-10-09 22:13 Sam James
2023-09-23 9:43 Sam James
2023-08-19 11:38 Sam James
2023-08-11 19:02 Arthur Zamarin
2023-07-14 11:57 Sam James
2023-07-14 11:57 Sam James
2023-07-12 23:08 Sam James
2023-07-12 9:07 Sam James
2023-07-12 6:49 Sam James
2023-07-12 6:49 Sam James
2023-07-12 4:31 Sam James
2023-05-27 10:48 Sam James
2023-05-27 10:30 Sam James
2023-05-21 13:49 Arthur Zamarin
2023-05-21 6:55 Sam James
2023-05-05 7:29 Sam James
2023-05-05 5:03 Sam James
2023-04-12 9:17 Sam James
2023-04-12 2:21 Sam James
2022-12-12 15:56 Sam James
2022-12-12 15:56 Sam James
2022-12-12 7:44 Jakov Smolić
2022-12-12 7:44 Jakov Smolić
2022-11-17 1:06 Sam James
2022-10-12 23:09 Sam James
2022-07-26 4:26 Sam James
2022-07-15 7:25 Agostino Sarubbo
2022-07-15 7:21 Agostino Sarubbo
2022-07-15 7:07 Arthur Zamarin
2022-07-15 7:07 Arthur Zamarin
2022-06-04 1:17 Sam James
2022-04-17 16:46 Sam James
2022-02-26 14:46 Arthur Zamarin
2022-02-26 9:17 Agostino Sarubbo
2022-02-26 9:15 Agostino Sarubbo
2022-02-26 9:15 Agostino Sarubbo
2022-01-26 4:33 Sam James
2022-01-20 12:08 Sam James
2022-01-01 9:38 Sam James
2021-12-16 0:09 Sam James
2021-12-03 4:50 Sam James
2021-11-20 7:26 Agostino Sarubbo
2021-11-19 18:10 Jakov Smolić
2021-11-19 15:05 Sam James
2021-11-19 15:05 Sam James
2021-10-27 5:34 Sam James
2021-08-25 20:07 Yixun Lan
2021-07-31 13:40 Michał Górny
2021-07-17 4:16 Sam James
2021-07-02 5:05 Sam James
2021-06-10 6:26 Agostino Sarubbo
2021-06-10 6:26 Agostino Sarubbo
2021-06-09 21:08 Sam James
2021-06-09 21:08 Sam James
2021-05-22 2:29 Sam James
2021-05-09 22:09 Sam James
2021-04-30 18:01 Mikle Kolyada
2021-04-16 2:30 Sam James
2021-04-16 2:30 Sam James
2021-04-16 2:30 Sam James
2021-03-23 4:53 Sam James
2021-02-25 0:23 Sam James
2021-01-24 13:47 Sam James
2021-01-24 13:45 Sam James
2021-01-24 13:45 Sam James
2021-01-23 22:55 Sam James
2021-01-22 16:53 Agostino Sarubbo
2020-12-29 23:53 Sam James
2020-12-21 23:47 Sam James
2020-12-20 6:29 Sam James
2020-12-02 23:17 Sam James
2020-11-13 23:52 Sam James
2020-11-13 16:32 Sam James
2020-11-07 20:53 Sam James
2020-11-07 20:34 Sergei Trofimovich
2020-11-07 20:10 Sergei Trofimovich
2020-11-05 14:41 Sam James
2020-10-08 23:11 Sam James
2020-09-18 7:54 Agostino Sarubbo
2020-09-06 20:25 Sam James
2020-08-19 14:33 Sam James
2020-08-19 8:31 Sergei Trofimovich
2020-08-16 14:50 Agostino Sarubbo
2020-08-15 4:37 Sam James
2020-07-15 17:42 Sam James
2020-07-09 12:37 Sam James
2020-06-17 15:25 Thomas Deutschmann
2020-05-30 19:20 Sergei Trofimovich
2020-05-28 15:45 Agostino Sarubbo
2020-05-28 15:40 Agostino Sarubbo
2020-05-28 15:37 Agostino Sarubbo
2020-05-26 20:18 Thomas Deutschmann
2020-05-17 10:06 Sergei Trofimovich
2020-05-14 23:20 Aaron Bauman
2020-04-26 22:23 Thomas Deutschmann
2020-04-26 22:23 Thomas Deutschmann
2020-04-21 21:06 Sergei Trofimovich
2020-04-20 9:50 Agostino Sarubbo
2020-04-20 9:48 Agostino Sarubbo
2020-04-19 18:23 Agostino Sarubbo
2020-04-19 17:08 Agostino Sarubbo
2020-04-19 14:31 Andreas Sturmlechner
2020-02-10 21:00 Michał Górny
2019-12-14 8:47 Michał Górny
2019-07-05 20:01 Alon Bar-Lev
2019-05-03 7:11 Sergei Trofimovich
2019-04-24 21:33 Thomas Deutschmann
2019-04-20 17:46 Mikle Kolyada
2019-03-18 18:42 Alon Bar-Lev
2018-10-19 22:31 Alon Bar-Lev
2018-09-30 18:50 Alon Bar-Lev
2018-09-30 18:01 Mike Gilbert
2018-09-30 17:56 Alon Bar-Lev
2018-09-30 17:55 Mike Gilbert
2018-09-30 13:34 Jeroen Roovers
2018-09-30 12:57 Jeroen Roovers
2018-09-27 23:55 Alon Bar-Lev
2018-09-01 19:01 Alon Bar-Lev
2018-08-21 0:13 Sergei Trofimovich
2018-08-18 22:31 Sergei Trofimovich
2018-08-17 0:13 Mikle Kolyada
2018-07-24 10:44 Alon Bar-Lev
2018-06-27 20:32 Pacho Ramos
2018-05-26 8:13 Alon Bar-Lev
2018-05-26 8:06 Mikle Kolyada
2018-05-20 14:47 Sergei Trofimovich
2018-04-18 23:31 Aaron Bauman
2018-04-18 20:14 Alon Bar-Lev
2018-04-10 19:24 Alon Bar-Lev
2018-04-10 18:55 Alon Bar-Lev
2018-04-05 13:43 Thomas Deutschmann
2018-04-04 16:13 Aaron Bauman
2018-04-03 15:21 Alon Bar-Lev
2018-04-03 6:37 Alon Bar-Lev
2018-02-10 12:56 Jeroen Roovers
2018-01-20 23:03 Andreas Sturmlechner
2017-12-03 2:06 Alon Bar-Lev
2017-12-02 19:17 Alon Bar-Lev
2017-12-01 11:20 Agostino Sarubbo
2017-11-29 18:52 Thomas Deutschmann
2017-10-12 16:38 Alon Bar-Lev
2017-10-12 16:38 Alon Bar-Lev
2017-10-11 18:28 Manuel Rüger
2017-10-10 11:39 Sergei Trofimovich
2017-10-05 8:37 Sergei Trofimovich
2017-10-04 22:52 Thomas Deutschmann
2017-10-04 19:29 Alon Bar-Lev
2017-10-04 19:29 Alon Bar-Lev
2017-10-04 8:52 Sergei Trofimovich
2017-10-04 7:33 Alon Bar-Lev
2017-09-30 6:31 Sergei Trofimovich
2017-08-18 17:34 Alon Bar-Lev
2017-06-08 10:16 Agostino Sarubbo
2017-06-07 13:20 Alon Bar-Lev
2017-06-07 13:20 Alon Bar-Lev
2017-05-19 19:17 Alon Bar-Lev
2017-05-19 19:08 Alon Bar-Lev
2017-03-25 21:46 Alon Bar-Lev
2017-03-15 6:00 Jeroen Roovers
2017-03-07 19:12 Michael Weber
2017-03-04 13:46 Agostino Sarubbo
2017-03-04 13:38 Agostino Sarubbo
2017-02-13 10:04 Alon Bar-Lev
2017-01-24 23:29 Anthony G. Basile
2017-01-24 23:22 Anthony G. Basile
2017-01-14 12:32 Jeroen Roovers
2017-01-11 10:35 Agostino Sarubbo
2017-01-10 15:22 Agostino Sarubbo
2017-01-10 14:56 Agostino Sarubbo
2017-01-09 18:10 Alon Bar-Lev
2017-01-09 14:11 Jeroen Roovers
2016-11-22 11:32 Agostino Sarubbo
2016-11-22 11:31 Agostino Sarubbo
2016-11-21 16:29 Alon Bar-Lev
2016-06-04 19:36 Alon Bar-Lev
2016-04-01 6:25 Ian Delaney
2016-03-19 18:41 Alon Bar-Lev
2016-03-19 18:41 Alon Bar-Lev
2016-03-19 12:28 Agostino Sarubbo
2016-03-16 14:09 Agostino Sarubbo
2016-03-15 16:39 Agostino Sarubbo
2016-02-12 7:23 Jeroen Roovers
2016-02-11 12:27 Agostino Sarubbo
2016-02-07 16:55 Alon Bar-Lev
2015-12-23 13:50 Alon Bar-Lev
2015-10-02 16:16 Julian Ospald
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1703720013.381a796a6d0a31a59d95abec319f00108e33db4d.arkamar@gentoo \
--to=arkamar@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox