summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-06-26 20:24:02 +0100
committerSam James <sam@gentoo.org>2023-06-26 20:27:27 +0100
commit98303ab117bd9b246751ee5e3a18b808fef81897 (patch)
tree3552ea706c72ef20b7fad9bc501b6147e310a283 /dev-libs/crypto++
parentdev-libs/crypto++: fix miscompilation (diff)
downloadgentoo-98303ab117bd9b246751ee5e3a18b808fef81897.tar.gz
gentoo-98303ab117bd9b246751ee5e3a18b808fef81897.tar.bz2
gentoo-98303ab117bd9b246751ee5e3a18b808fef81897.zip
dev-libs/crypto++: add 8.8.0
Note that 8.7.0 was deliberately skipped in Gentoo as it was a broken release. Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/crypto++')
-rw-r--r--dev-libs/crypto++/Manifest2
-rw-r--r--dev-libs/crypto++/crypto++-8.8.0.ebuild73
2 files changed, 75 insertions, 0 deletions
diff --git a/dev-libs/crypto++/Manifest b/dev-libs/crypto++/Manifest
index a96d06c31610..4cb200a6790e 100644
--- a/dev-libs/crypto++/Manifest
+++ b/dev-libs/crypto++/Manifest
@@ -1,2 +1,4 @@
DIST cryptopp860.zip 9274149 BLAKE2B c93998e2deb93abf12b801877404f0f82547bfbbbc5aae727e68daffc2407877dda76d7bcd06239d40a48baf21b6f2e29f74e9a97ecbc1b5d4b5bcc50ada71da SHA512 e7773f5e4a7dc7e8e735b1702524bee56ba38e5211544c9c9778bc51ed8dc7b376c17f2e406410043b636312336f26f76dc963f298872f8c13933e88c232fc03
DIST cryptopp860.zip.sig 659 BLAKE2B 591a535092c61964c0fbb1ba31e44e70fc5f15757b9b56476ff64de0c28d47a13fe99d7f5819cfeb52e514ade1454622451b267bcc751868defcb080ddf79e8c SHA512 6231816b1ccec75cbcdd09daa8895830c5f4c595a4a0aa24dacc3e377832d8db5efa1aeadf815e53db32fc5263b09dd1b249668f34da4bfad5d5cba6f031ce21
+DIST cryptopp880.zip 9279806 BLAKE2B bdce352af83ff148cedbe0233efd3352d5052e6b4ea04484de11e35a8cb5d51cf6bd5aa641ada1bc4535454c1a1afdbfb96f4ae2ef5131d79a7985247810f423 SHA512 3fb1c591735f28dbd1329a6de6de9c495388c88bd5c4f077894c41668398ed313f14121a4553e0d4aa71e552ee8c3b744b770711748528ade71043ecc6159c80
+DIST cryptopp880.zip.sig 659 BLAKE2B a7d46e43cbe671714c5320b99824a91708058528be46e1a770bc214696b936aa5ba062279475966ce6108af6cacb3a22256df91ad5b9bbb54c81a69b9dcfca7b SHA512 8f3987841ff08f65a28fafed1ba3b0111e2c790d247ad739c28e6edb02a77e076b961007c4ba8684bc9e6c880730244b144ccc5f3416fb5fe57566b8021ee92e
diff --git a/dev-libs/crypto++/crypto++-8.8.0.ebuild b/dev-libs/crypto++/crypto++-8.8.0.ebuild
new file mode 100644
index 000000000000..e2ee6042f908
--- /dev/null
+++ b/dev-libs/crypto++/crypto++-8.8.0.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/crypto++.asc
+inherit flag-o-matic toolchain-funcs verify-sig
+
+DESCRIPTION="C++ class library of cryptographic schemes"
+HOMEPAGE="https://cryptopp.com"
+SRC_URI="
+ https://www.cryptopp.com/cryptopp${PV//.}.zip
+ verify-sig? ( https://cryptopp.com/cryptopp${PV//.}.zip.sig )
+"
+
+S="${WORKDIR}"
+
+LICENSE="Boost-1.0"
+# ABI notes:
+# - Bumped to 8.5 in 8.5.0 out of caution
+# subslot is so version (was broken in 8.3.0, check on bumps!)
+# Seems to be broken in 8.6 again too
+#
+# - See https://cryptopp.com/#news, but releases usually say
+# "recompile of programs required". Even if it doesn't,
+# verify with abidiff!
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+IUSE="+asm static-libs"
+
+BDEPEND="
+ app-arch/unzip
+ verify-sig? ( sec-keys/openpgp-keys-crypto++ )
+"
+
+config_uncomment() {
+ sed -i -e "s://\s*\(#define\s*$1\):\1:" config.h || die
+}
+
+src_prepare() {
+ default
+
+ use asm || config_uncomment CRYPTOPP_DISABLE_ASM
+
+ # ASM isn't Darwin/Mach-O ready, #479554, buildsys doesn't grok CPPFLAGS
+ [[ ${CHOST} == *-darwin* ]] && config_uncomment CRYPTOPP_DISABLE_ASM
+}
+
+src_configure() {
+ export CXX="$(tc-getCXX)"
+ export LIBDIR="${EPREFIX}/usr/$(get_libdir)"
+ export PREFIX="${EPREFIX}/usr"
+ tc-export AR RANLIB
+
+ # Long history of correctness bugs:
+ # https://github.com/weidai11/cryptopp/issues/1134
+ # https://github.com/weidai11/cryptopp/issues/1141
+ # https://github.com/weidai11/cryptopp/pull/1147
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ default
+}
+
+src_compile() {
+ emake -f GNUmakefile LDCONF=true all shared libcryptopp.pc
+}
+
+src_install() {
+ emake DESTDIR="${D}" LDCONF=true install
+
+ use static-libs || rm -f "${ED}"/usr/$(get_libdir)/*.a
+}