commit: 6a34251e0d7b9c4fb01af062bd452ee5402095e9 Author: Matt Whitlock <gentoo <AT> mattwhitlock <DOT> name> AuthorDate: Mon Jul 21 20:47:47 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Jul 23 02:29:56 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a34251e
dev-libs/libsecp256k1: bump to 0.7.0 Note: This release switches from Autotools to CMake. See: https://github.com/bitcoin-core/secp256k1/releases/tag/v0.7.0 Signed-off-by: Matt Whitlock <gentoo <AT> mattwhitlock.name> Part-of: https://github.com/gentoo/gentoo/pull/43104 Closes: https://github.com/gentoo/gentoo/pull/43104 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-libs/libsecp256k1/Manifest | 1 + dev-libs/libsecp256k1/libsecp256k1-0.7.0.ebuild | 84 +++++++++++++++++++++++++ dev-libs/libsecp256k1/metadata.xml | 1 + 3 files changed, 86 insertions(+) diff --git a/dev-libs/libsecp256k1/Manifest b/dev-libs/libsecp256k1/Manifest index 0ed4a6d06fa5..a046e13c5d20 100644 --- a/dev-libs/libsecp256k1/Manifest +++ b/dev-libs/libsecp256k1/Manifest @@ -1,2 +1,3 @@ DIST libsecp256k1-0.5.1.tar.gz 1962518 BLAKE2B edff454529755c5de4f7a5192235b7e461426cc05da83ba1be03a3f9f4327397ae96b11bbf4250cd09165a1a6bd5383b928d4374713c47ef930de0af11cfc772 SHA512 5cba94794ac9c0e9a72111958562690bfb79b1ccd3071e0aaa22c4c6a4fe4007b87e402c00bbab1bdc93f31490d4b528d7ac368870ac05de12ee76db8313e510 DIST libsecp256k1-0.6.0.tar.gz 1996783 BLAKE2B 6c8ec26bd3d10f463ac4aeed4aa092718a8101012d9ae0b8931166a4bec717f9d5bdc2c8ef21395f6ce2285828871deefa1e47299654d19634c9398d7447acea SHA512 bccaa15295b0633e1fe5a4a4d7a80be812e40c8ed815be4f0d3f3348a5e185633c599cd50b7461a3584f89aea94f6d5321772876c5146553e2732df8b72becc2 +DIST libsecp256k1-0.7.0.tar.gz 2143012 BLAKE2B 5255c1740812bdf3248c87c40f4efaf63bdd0cdc61b863961bc313dde3e95f1804a3634c78dd06551ed62b770d2664966c10aee98e4c4fe2902b2d7300d6d043 SHA512 1e07587df5e693b59410b019e6ece961891faa234ebf91577a0cee4307f6fa18d7bf87873410e74693990b9464eb46157d0bdfb527a11bf679a8a579e01443fe diff --git a/dev-libs/libsecp256k1/libsecp256k1-0.7.0.ebuild b/dev-libs/libsecp256k1/libsecp256k1-0.7.0.ebuild new file mode 100644 index 000000000000..895524e94773 --- /dev/null +++ b/dev-libs/libsecp256k1/libsecp256k1-0.7.0.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake edo toolchain-funcs + +MyPN=secp256k1 +DESCRIPTION="Optimized C library for EC operations on curve secp256k1" +HOMEPAGE="https://github.com/bitcoin-core/secp256k1" +SRC_URI="https://github.com/bitcoin-core/secp256k1/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${MyPN}-${PV}" + +LICENSE="MIT" +SLOT="0/6" # subslot is "$((_LIB_VERSION_CURRENT-_LIB_VERSION_AGE))" from configure.ac +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="asm +ecdh +ellswift experimental +extrakeys lowmem musig +recovery +schnorr test test-full valgrind" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + asm? ( || ( amd64 arm ) arm? ( experimental ) ) + musig? ( schnorr ) + schnorr? ( extrakeys ) + test-full? ( test ) +" +BDEPEND=" + >=dev-build/cmake-3.22 + virtual/pkgconfig + valgrind? ( dev-debug/valgrind ) +" + +PATCHES=( +) + +DOCS=( + README.md + doc/safegcd_implementation.md +) + +src_prepare() { + cmake_src_prepare + + # Generation of the precomputed tables has not been migrated to CMake. + rm -f src/precomputed_ecmult.c src/precomputed_ecmult_gen.c || die + local precompute_defines=( + # These magic numbers come from configure.ac. + -DECMULT_WINDOW_SIZE=$(usex lowmem 4 15) + -DCOMB_BLOCKS=$(usex lowmem 2 43) + -DCOMB_TEETH=$(usex lowmem 5 6) + -DVERIFY + ) + tc-env_build emake -C src precompute_ecmult{,_gen} CPPFLAGS+="${precompute_defines[*]}" + edo src/precompute_ecmult + edo src/precompute_ecmult_gen +} + +src_configure() { + local mycmakeargs=( + -DSECP256K1_BUILD_BENCHMARK=OFF + -DSECP256K1_EXPERIMENTAL=$(usex experimental) + -DSECP256K1_BUILD_TESTS=$(usex test) + -DSECP256K1_BUILD_EXHAUSTIVE_TESTS=$(usex test-full) + -DSECP256K1_ENABLE_MODULE_ECDH=$(usex ecdh) + -DSECP256K1_ENABLE_MODULE_ELLSWIFT=$(usex ellswift) + -DSECP256K1_ENABLE_MODULE_EXTRAKEYS=$(usex extrakeys) + -DSECP256K1_ENABLE_MODULE_MUSIG=$(usex musig) + -DSECP256K1_ENABLE_MODULE_RECOVERY=$(usex recovery) + -DSECP256K1_ENABLE_MODULE_SCHNORRSIG=$(usex schnorr) + -DSECP256K1_ASM=$(usex asm "$(usex arm arm32 AUTO)" OFF) + -DSECP256K1_VALGRIND=$(usex valgrind ON OFF) + ) + use lowmem && mycmakeargs+=( + -DSECP256K1_ECMULT_WINDOW_SIZE=4 + -DSECP256K1_ECMULT_GEN_KB=2 + ) + cmake_src_configure +} + +src_install() { + use ellswift && DOCS+=( doc/ellswift.md ) + use musig && DOCS+=( doc/musig.md ) + + cmake_src_install +} diff --git a/dev-libs/libsecp256k1/metadata.xml b/dev-libs/libsecp256k1/metadata.xml index 08a4e16cdf19..345fcd6e1c01 100644 --- a/dev-libs/libsecp256k1/metadata.xml +++ b/dev-libs/libsecp256k1/metadata.xml @@ -22,6 +22,7 @@ <flag name="musig">Enable MuSig2 module</flag> <flag name="recovery">Enable ECDSA pubkey recovery module</flag> <flag name="schnorr">Enable Schnorr signature module</flag> + <flag name="test-full">Enable exhaustive tests</flag> </use> <upstream> <remote-id type="github">bitcoin-core/secp256k1</remote-id>
