Date: Saturday, January 27, 2018 @ 16:49:04 Author: zorun Revision: 287500
crypto++: Update to 6.0.0 Added: crypto++/trunk/crypto++.install crypto++/trunk/fix-simon-speck-simd-build.patch Modified: crypto++/trunk/PKGBUILD crypto++/trunk/libcrypto++.pc ----------------------------------+ PKGBUILD | 67 +++++++++++++++++++++++-------------- crypto++.install | 4 ++ fix-simon-speck-simd-build.patch | 59 ++++++++++++++++++++++++++++++++ libcrypto++.pc | 4 +- 4 files changed, 108 insertions(+), 26 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-01-27 16:02:01 UTC (rev 287499) +++ PKGBUILD 2018-01-27 16:49:04 UTC (rev 287500) @@ -1,5 +1,5 @@ -# $Id$ -# Maintainer: Giovanni Scafora <[email protected]> +# Maintainer: Baptiste Jonglez <archlinux at bitsofnetworks.org> +# Contributor: Giovanni Scafora <[email protected]> # Contributor: Alexander Rødseth <[email protected]> # Contributor: Andrea Scarpino <[email protected]> # Contributor: Kritoke <[email protected]> @@ -6,43 +6,62 @@ # Contributor: jlvsimoes <[email protected]> pkgname=crypto++ -pkgver=5.6.5 +pkgver=6.0.0 _srcver=${pkgver//./} -pkgrel=3 +pkgrel=1 pkgdesc="A free C++ class library of cryptographic schemes" arch=('x86_64') -url="http://www.cryptopp.com/" +url="https://www.cryptopp.com/" license=('custom') depends=('gcc-libs') makedepends=('unzip') +# Fix https://bugs.archlinux.org/task/56689 +install="crypto++.install" source=("https://www.cryptopp.com/cryptopp${_srcver}.zip" - "fix-cxxflags.patch" + "fix-simon-speck-simd-build.patch" 'libcrypto++.pc') -# Checksums from https://www.cryptopp.com/release565.html -sha1sums=('a74f207a315b6a133af9640a45bde9d6e378af4d' - 'f044b55c615ed0d6c0239bd43dda67db1fdb4cca' - 'e4e2fc3172b4a85bffad812a0de8531843912ff1') -sha256sums=('a75ef486fe3128008bbb201efee3dcdcffbe791120952910883b26337ec32c34' - 'e27679cd5e1068e84c84c18395d4f32254fa900887ee89a15c38580236490dc5' - 'aee5ca989bfd25236095fccb245a5c7f559eae97c41979e952ac35b29453d8b5') -sha512sums=('f13718d02ca69b0129aaf9e767c9d2e0333aa7538355f9c63d9eaf1ff369062084a18dc01489439ebf37797b3ea81b01beb072057d47ec962bfb824ddc72abc7' - '49a81998489e65dcb270de77f6149a3dcf03c9a04bd2c9baf2e92f6bd749fe69aca5de0803b94757778f272357d2357e873b652c9bb06e8f03b7bf9b55bbc9d4' - '798ff42e3dcc4edd33b9fb1b605e608dd53a668afb28032620927b49f17fcb5b212f6cf4e9af30cc2b36bf74bb9f0152dad4f40fdb19d8f557dfed196ea0921d') +# Checksums from https://www.cryptopp.com/release600.html +sha1sums=('290dfc1948b860b29da40f8c5559f6559ce787db' + 'a4be3000116568260a8fe3169b948deca5576fdf' + '7a6c6fc7aed96ff7be554eee60450a1914b0cd95') +sha256sums=('64ac2db96b3f1b7a23675e2be95d16c96055edffa2d5e2de6245fdb6baa92dda' + '80d43fe472f2ccffa56097eda5e56820d0944c1d585a68d944049a1d00d395c3' + '14228b0d1a6f07572090ab17b60bf9829308d174e763eb31966f723b0cb51134') +sha512sums=('7a60c28be1fc9418adeabe8c66d868b46e65fb3d77d308b9431b16905cde7faa670180619150e849ae44d70f44aa8501a0a0c4354ec84f194fd8138d14aca9bf' + '80378bb6b19427fa316892126a3b533a98831405215df6f8c0b251e319b05c625a5d437f7217641ca8e41e5be153a796204686c4844338befdfc42e43a8ece6e' + 'bba4ff9c01e353f0336e01836fd1418a08f43ab9215f678cc80cc94954d689e94e1425c7ed95f9b12d210bfc73574c98d0579b1356232c50f32f342395408ac2') prepare() { - # Upstream patch for https://bugs.archlinux.org/task/51605 - patch -p1 < "$srcdir"/fix-cxxflags.patch + patch -p1 < "$srcdir"/fix-simon-speck-simd-build.patch } build() { - CXXFLAGS+=" -DNDEBUG -fPIC" make -f GNUmakefile-cross - make libcryptopp.so + make -f GNUmakefile-cross dynamic cryptest.exe \ + CXXFLAGS+=" -DNDEBUG -fPIC" HAS_SOLIB_VERSION=1 \ + ARIA_FLAG="-mssse3" \ + SIMON_FLAG="-mssse3 -msse4.1" \ + SPECK_FLAG="-mssse3 -msse4.1" \ + SSSE3_FLAG="-mssse3" \ + BLAKE2_FLAG="-msse4.2" \ + CRC_FLAG="-msse4.2" \ + GCM_FLAG="-mssse3 -mpclmul" \ + AES_FLAG="-msse4.1 -maes" \ + SHA_FLAG="-msse4.2 -msha" } +check() { + make test +} + package() { - install -d ${pkgdir}/usr/{lib/pkgconfig,include/cryptopp} - install -m644 *.h ${pkgdir}/usr/include/cryptopp/ - install -m644 libcryptopp.so "${pkgdir}/usr/lib/libcryptopp.so" - install -m644 ${srcdir}/libcrypto++.pc "${pkgdir}/usr/lib/pkgconfig/libcrypto++.pc" + make -f GNUmakefile-cross install DESTDIR="$pkgdir" PREFIX="/usr" HAS_SOLIB_VERSION=1 + # Install pkgconfig file + install -d "${pkgdir}/usr/lib/pkgconfig" + install -m644 "${srcdir}/libcrypto++.pc" "${pkgdir}/usr/lib/pkgconfig/libcrypto++.pc" + # Remove crypttest.exe: it's only needed for check(), and does not even work when + # installed in /usr/bin (it needs additional files) + rm "${pkgdir}/usr/bin/cryptest.exe" + rmdir "${pkgdir}/usr/bin/" + # Install license install -D -m644 License.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" } Added: crypto++.install =================================================================== --- crypto++.install (rev 0) +++ crypto++.install 2018-01-27 16:49:04 UTC (rev 287500) @@ -0,0 +1,4 @@ +pre_upgrade() { + # Up to crypto++ 5.6.5-3, libcryptopp.so.5.6 was not tracked by pacman (symlinked at install time) + [ -L /usr/lib/libcryptopp.so.5.6 ] && unlink /usr/lib/libcryptopp.so.5.6 || true +} Added: fix-simon-speck-simd-build.patch =================================================================== --- fix-simon-speck-simd-build.patch (rev 0) +++ fix-simon-speck-simd-build.patch 2018-01-27 16:49:04 UTC (rev 287500) @@ -0,0 +1,59 @@ +diff --git a/GNUmakefile-cross b/GNUmakefile-cross +index 7ab6ccfe..98d10a9a 100755 +--- a/GNUmakefile-cross ++++ b/GNUmakefile-cross +@@ -220,12 +220,16 @@ ifeq ($(IS_NEON),1) + GCM_FLAG += -mfpu=neon + ARIA_FLAG += -mfpu=neon + BLAKE2_FLAG += -mfpu=neon ++ SIMON_FLAG += -mfpu=neon ++ SPECK_FLAG += -mfpu=neon + ifeq ($(IS_ANDROID),1) + ifeq ($(findstring -mfloat-abi=softfp,$(CXXFLAGS)),) + NEON_FLAG += -mfloat-abi=softfp + GCM_FLAG += -mfloat-abi=softfp + ARIA_FLAG += -mfloat-abi=softfp + BLAKE2_FLAG += -mfloat-abi=softfp ++ SIMON_FLAG += -mfloat-abi=softfp ++ SPECK_FLAG += -mfloat-abi=softfp + endif + endif + endif +@@ -238,6 +242,8 @@ ifneq ($(IS_ARMv8),0) + ARIA_FLAG = -march=armv8-a + BLAKE2_FLAG = -march=armv8-a + NEON_FLAG = -march=armv8-a ++ SIMON_FLAG = -march=armv8-a ++ SPECK_FLAG = -march=armv8-a + endif + HAVE_CRC := $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv8-a+crc -dM -E - 2>/dev/null | $(EGREP) -i -c __ARM_FEATURE_CRC32) + ifeq ($(HAVE_CRC),1) +@@ -257,6 +263,13 @@ ifneq ($(IS_i686)$(IS_x86_64),00) + ifeq ($(HAVE_SSSE3),1) + ARIA_FLAG = -mssse3 + SSSE3_FLAG = -mssse3 ++ SIMON_FLAG = -mssse3 ++ SPECK_FLAG = -mssse3 ++ endif ++ HAVE_SSE4 = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -msse4.1 -dM -E - 2>/dev/null | $(EGREP) -i -c __SSE4_1__) ++ ifeq ($(HAVE_SSE4),1) ++ SIMON_FLAG = -msse4.1 ++ SPECK_FLAG = -msse4.1 + endif + HAVE_SSE4 = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -msse4.2 -dM -E - 2>/dev/null | $(EGREP) -i -c __SSE4_2__) + ifeq ($(HAVE_SSE4),1) +@@ -480,6 +493,14 @@ sha-simd.o : sha-simd.cpp + shacal2-simd.o : shacal2-simd.cpp + $(CXX) $(strip $(CXXFLAGS) $(SHA_FLAG) -c) $< + ++# SSSE3 or NEON available ++simon-simd.o : simon-simd.cpp ++ $(CXX) $(strip $(CXXFLAGS) $(SIMON_FLAG) -c) $< ++ ++# SSSE3 or NEON available ++speck-simd.o : speck-simd.cpp ++ $(CXX) $(strip $(CXXFLAGS) $(SPECK_FLAG) -c) $< ++ + %.o : %.cpp + $(CXX) $(strip $(CXXFLAGS) -c) $< + Modified: libcrypto++.pc =================================================================== --- libcrypto++.pc 2018-01-27 16:02:01 UTC (rev 287499) +++ libcrypto++.pc 2018-01-27 16:49:04 UTC (rev 287500) @@ -4,8 +4,8 @@ libdir=${prefix}/lib includedir=${prefix}/include -Name: libcrypto++-5.6.5 +Name: libcrypto++-6.0.0 Description: Class library of cryptographic schemes -Version: 5.6.5 +Version: 6.0.0 Libs: -L${libdir} -lcryptopp Cflags: -I${includedir}
