summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/nettle')
-rw-r--r--dev-libs/nettle/Manifest2
-rw-r--r--dev-libs/nettle/nettle-3.10.ebuild99
2 files changed, 101 insertions, 0 deletions
diff --git a/dev-libs/nettle/Manifest b/dev-libs/nettle/Manifest
index a2cbd22594c5..66e8fbf0537d 100644
--- a/dev-libs/nettle/Manifest
+++ b/dev-libs/nettle/Manifest
@@ -1,3 +1,5 @@
+DIST nettle-3.10.tar.gz 2640485 BLAKE2B edf0ba6375f06e2dd4b1e3ed4bab5f592ac04a36f748ce0461bbec32622eb3d5f96f89350926c24b5bbbf37dbe14a1ad64bba5df7cb7ad5987ec634573aabbb5 SHA512 18d5b904ce60514aa81b57bff2945e5f7f4366d4775e6a5ffc227b85be2def72b3d2159b983b75ac95a56d3167a2ef1a25b5dfc2fb6193f16a012935c36a7b34
+DIST nettle-3.10.tar.gz.sig 374 BLAKE2B 9edebae1bc1941dfc19c3c3653f80ebf66e8aed974c99673a294ff6835145ca8265f5466829e27c5d0352e88a73e9a58fb017cdbad678705ae29cd27dd80fefe SHA512 a56d46bfd545b0dff47ee6426e019afea024ebf40698018b8a4b7a25168ce615bbfe773894dc01ab246f7010ef6a7f1c248cf1f9c693f0f0dbaf27c33c7d216f
DIST nettle-3.8.1.tar.gz 2406251 BLAKE2B 22b4ec81645b579504356597ba87b637e46285682020c90e03ecaea386ac9b48eaf91ee76ae3b86b6060be355de20c320ab3b74958074ad23fc08ad9ab6a4cbb SHA512 a405da3438d185d96917b03b00abb9ab43e04f58f770f657f716c25d64bb258ee170a71328e74736caa7121f50c0c89d3cc840c1201d2a92cfaf1357d24bdc6a
DIST nettle-3.8.1.tar.gz.sig 374 BLAKE2B e2bfce4aaa1be114fb9bf8724f25db75c69c3b98538df46e9b1428ce615f7db3b9e9f9240d232fddac195db4568439b3f58989c20beca82aa6db79f4956db547 SHA512 978304b1faa5adc3b0d6ea7e9597af6154ad5d6e328913ac19184ece94771fdb2a7d5ce0af535ae8d28cb6ccd94fb3d4ef2613c0356df9e08b5d4c26ea646e09
DIST nettle-3.9.1.tar.gz 2396741 BLAKE2B e3ceaefa19491e58f26b900beaf8b4e746feb2357c7677f5c050f257f4a23c304773446b6283a42a82cf9640e16522b8a71c47f137759f1df23cdeee4625d142 SHA512 5939c4b43cf9ff6c6272245b85f123c81f8f4e37089fa4f39a00a570016d837f6e706a33226e4bbfc531b02a55b2756ff312461225ed88de338a73069e031ced
diff --git a/dev-libs/nettle/nettle-3.10.ebuild b/dev-libs/nettle/nettle-3.10.ebuild
new file mode 100644
index 000000000000..b79aa1e683e3
--- /dev/null
+++ b/dev-libs/nettle/nettle-3.10.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nettle.asc
+inherit multilib-build multilib-minimal toolchain-funcs verify-sig
+
+DESCRIPTION="Low-level cryptographic library"
+HOMEPAGE="https://www.lysator.liu.se/~nisse/nettle/ https://git.lysator.liu.se/nettle/nettle"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+SRC_URI+=" verify-sig? ( mirror://gnu/${PN}/${P}.tar.gz.sig )"
+
+LICENSE="|| ( LGPL-3 LGPL-2.1 )"
+# Subslot = libnettle - libhogweed soname version
+SLOT="0/8-6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="+asm doc +gmp static-libs cpu_flags_arm_neon cpu_flags_arm_aes cpu_flags_arm_sha1 cpu_flags_arm_sha2 cpu_flags_ppc_altivec cpu_flags_ppc_vsx2 cpu_flags_ppc_vsx3 cpu_flags_x86_aes cpu_flags_x86_sha cpu_flags_x86_pclmul"
+# The arm64 crypto option controls AES, SHA1, and SHA2 usage.
+REQUIRED_USE="
+ cpu_flags_arm_aes? ( cpu_flags_arm_sha1 cpu_flags_arm_sha2 )
+ cpu_flags_arm_sha1? ( cpu_flags_arm_aes cpu_flags_arm_sha2 )
+ cpu_flags_arm_sha2? ( cpu_flags_arm_aes cpu_flags_arm_sha1 )
+"
+
+DEPEND="gmp? ( >=dev-libs/gmp-6.1:=[static-libs?,${MULTILIB_USEDEP}] )"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ sys-devel/m4
+ doc? ( sys-apps/texinfo )
+ verify-sig? ( sec-keys/openpgp-keys-nettle )
+"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/nettle/version.h
+)
+
+DOCS=()
+HTML_DOCS=()
+
+src_prepare() {
+ default
+
+ # I do not see in config.sub reference to sunldsolaris.
+ # if someone complains readd
+ # -e 's/solaris\*)/sunldsolaris*)/' \
+ sed -e '/CFLAGS=/s: -ggdb3::' \
+ -i configure.ac configure || die
+
+ if use doc ; then
+ DOCS+=( nettle.pdf )
+ HTML_DOCS+=( nettle.html )
+ fi
+}
+
+multilib_src_configure() {
+ # We don't want to run Valgrind within ebuilds, it often gets
+ # confused by sandbox, etc.
+ export nettle_cv_prog_valgrind=no
+
+ # TODO: USE=debug w/ --enable-extra-asserts?
+ local myeconfargs=(
+ CC_FOR_BUILD="$(tc-getBUILD_CC)"
+
+ $(tc-is-static-only && echo --disable-shared)
+
+ # Intrinsics
+ $(use_enable cpu_flags_arm_neon arm-neon)
+ $(use_enable cpu_flags_arm_aes arm64-crypto)
+ $(use_enable cpu_flags_ppc_altivec power-altivec)
+ $(use_enable cpu_flags_ppc_vsx2 power-crypto-ext)
+ $(use_enable cpu_flags_ppc_vsx3 power9)
+ $(use_enable cpu_flags_x86_aes x86-aesni)
+ $(use_enable cpu_flags_x86_sha x86-sha-ni)
+ $(use_enable cpu_flags_x86_pclmul x86-pclmul)
+ $([[ ${CHOST} == *-solaris* ]] && echo '--disable-symbol-versions')
+ # TODO: cpu_flags_s390?
+ --disable-s390x-vf
+ --disable-s390x-msa
+
+ $(use_enable asm assembler)
+ $(multilib_native_use_enable doc documentation)
+ $(use_enable gmp public-key)
+ $(use_enable static-libs static)
+ --disable-fat
+
+ # openssl is just used for benchmarks (bug #427526)
+ --disable-openssl
+ )
+
+ # https://git.lysator.liu.se/nettle/nettle/-/issues/7
+ if use cpu_flags_ppc_altivec && ! tc-cpp-is-true "defined(__VSX__) && __VSX__ == 1" "${CPPFLAGS}" "${CFLAGS}" ; then
+ ewarn "cpu_flags_ppc_altivec is enabled, but nettle's asm requires >=P7."
+ ewarn "Disabling, sorry! See bug #920234."
+ myeconfargs+=( --disable-power-altivec )
+ fi
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}