public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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
+}


             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