[arch-commits] Commit in crypto++/repos (6 files)
Baptiste Jonglez
zorun at archlinux.org
Sat Jan 27 16:49:36 UTC 2018
Date: Saturday, January 27, 2018 @ 16:49:35
Author: zorun
Revision: 287501
archrelease: copy trunk to community-staging-x86_64
Added:
crypto++/repos/community-staging-x86_64/
crypto++/repos/community-staging-x86_64/PKGBUILD
(from rev 287500, crypto++/trunk/PKGBUILD)
crypto++/repos/community-staging-x86_64/crypto++.install
(from rev 287500, crypto++/trunk/crypto++.install)
crypto++/repos/community-staging-x86_64/fix-cxxflags.patch
(from rev 287500, crypto++/trunk/fix-cxxflags.patch)
crypto++/repos/community-staging-x86_64/fix-simon-speck-simd-build.patch
(from rev 287500, crypto++/trunk/fix-simon-speck-simd-build.patch)
crypto++/repos/community-staging-x86_64/libcrypto++.pc
(from rev 287500, crypto++/trunk/libcrypto++.pc)
----------------------------------+
PKGBUILD | 67 +++++++++++++++++++++++++++++++++++++
crypto++.install | 4 ++
fix-cxxflags.patch | 49 +++++++++++++++++++++++++++
fix-simon-speck-simd-build.patch | 59 ++++++++++++++++++++++++++++++++
libcrypto++.pc | 11 ++++++
5 files changed, 190 insertions(+)
Copied: crypto++/repos/community-staging-x86_64/PKGBUILD (from rev 287500, crypto++/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2018-01-27 16:49:35 UTC (rev 287501)
@@ -0,0 +1,67 @@
+# Maintainer: Baptiste Jonglez <archlinux at bitsofnetworks.org>
+# Contributor: Giovanni Scafora <giovanni at archlinux.org>
+# Contributor: Alexander Rødseth <rodseth at gmail.com>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+# Contributor: Kritoke <kritoke at gamebox.net>
+# Contributor: jlvsimoes <jlvsimoes at oninet.pt>
+
+pkgname=crypto++
+pkgver=6.0.0
+_srcver=${pkgver//./}
+pkgrel=1
+pkgdesc="A free C++ class library of cryptographic schemes"
+arch=('x86_64')
+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-simon-speck-simd-build.patch"
+ 'libcrypto++.pc')
+# Checksums from https://www.cryptopp.com/release600.html
+sha1sums=('290dfc1948b860b29da40f8c5559f6559ce787db'
+ 'a4be3000116568260a8fe3169b948deca5576fdf'
+ '7a6c6fc7aed96ff7be554eee60450a1914b0cd95')
+sha256sums=('64ac2db96b3f1b7a23675e2be95d16c96055edffa2d5e2de6245fdb6baa92dda'
+ '80d43fe472f2ccffa56097eda5e56820d0944c1d585a68d944049a1d00d395c3'
+ '14228b0d1a6f07572090ab17b60bf9829308d174e763eb31966f723b0cb51134')
+sha512sums=('7a60c28be1fc9418adeabe8c66d868b46e65fb3d77d308b9431b16905cde7faa670180619150e849ae44d70f44aa8501a0a0c4354ec84f194fd8138d14aca9bf'
+ '80378bb6b19427fa316892126a3b533a98831405215df6f8c0b251e319b05c625a5d437f7217641ca8e41e5be153a796204686c4844338befdfc42e43a8ece6e'
+ 'bba4ff9c01e353f0336e01836fd1418a08f43ab9215f678cc80cc94954d689e94e1425c7ed95f9b12d210bfc73574c98d0579b1356232c50f32f342395408ac2')
+
+prepare() {
+ patch -p1 < "$srcdir"/fix-simon-speck-simd-build.patch
+}
+
+build() {
+ 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() {
+ 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"
+}
Copied: crypto++/repos/community-staging-x86_64/crypto++.install (from rev 287500, crypto++/trunk/crypto++.install)
===================================================================
--- community-staging-x86_64/crypto++.install (rev 0)
+++ community-staging-x86_64/crypto++.install 2018-01-27 16:49:35 UTC (rev 287501)
@@ -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
+}
Copied: crypto++/repos/community-staging-x86_64/fix-cxxflags.patch (from rev 287500, crypto++/trunk/fix-cxxflags.patch)
===================================================================
--- community-staging-x86_64/fix-cxxflags.patch (rev 0)
+++ community-staging-x86_64/fix-cxxflags.patch 2018-01-27 16:49:35 UTC (rev 287501)
@@ -0,0 +1,49 @@
+From 733a073d65548848aabc39a45b5addb0e01b68fe Mon Sep 17 00:00:00 2001
+From: Jeffrey Walton <noloader at gmail.com>
+Date: Thu, 27 Oct 2016 01:01:01 -0400
+Subject: [PATCH] Fix mismatched arch capabilities (Issue 283)
+
+---
+ rijndael.cpp | 8 ++++----
+ rijndael.h | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/rijndael.cpp b/rijndael.cpp
+index fb934d08..37237be6 100644
+--- a/rijndael.cpp
++++ b/rijndael.cpp
+@@ -1345,17 +1345,17 @@ size_t Rijndael::Enc::AdvancedProcessBlocks(const byte *inBlocks, const byte *xo
+
+ #endif
+
+-#if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
+-
++#if CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86
+ size_t Rijndael::Dec::AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const
+ {
++#if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
+ if (HasAESNI())
+ return AESNI_AdvancedProcessBlocks(AESNI_Dec_Block, AESNI_Dec_4_Blocks, (MAYBE_CONST __m128i *)(const void *)m_key.begin(), m_rounds, inBlocks, xorBlocks, outBlocks, length, flags);
++#endif
+
+ return BlockTransformation::AdvancedProcessBlocks(inBlocks, xorBlocks, outBlocks, length, flags);
+ }
+-
+-#endif // #if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
++#endif // CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86
+
+ NAMESPACE_END
+
+diff --git a/rijndael.h b/rijndael.h
+index 5b334ffc..bdcf3ed3 100644
+--- a/rijndael.h
++++ b/rijndael.h
+@@ -69,7 +69,7 @@ class CRYPTOPP_DLL Rijndael : public Rijndael_Info, public BlockCipherDocumentat
+ {
+ public:
+ void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const;
+-#if CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE
++#if CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86
+ size_t AdvancedProcessBlocks(const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags) const;
+ #endif
+ };
Copied: crypto++/repos/community-staging-x86_64/fix-simon-speck-simd-build.patch (from rev 287500, crypto++/trunk/fix-simon-speck-simd-build.patch)
===================================================================
--- community-staging-x86_64/fix-simon-speck-simd-build.patch (rev 0)
+++ community-staging-x86_64/fix-simon-speck-simd-build.patch 2018-01-27 16:49:35 UTC (rev 287501)
@@ -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) $<
+
Copied: crypto++/repos/community-staging-x86_64/libcrypto++.pc (from rev 287500, crypto++/trunk/libcrypto++.pc)
===================================================================
--- community-staging-x86_64/libcrypto++.pc (rev 0)
+++ community-staging-x86_64/libcrypto++.pc 2018-01-27 16:49:35 UTC (rev 287501)
@@ -0,0 +1,11 @@
+# Written by Alexander Rødseth <rodseth at gmail.com>
+
+prefix=/usr
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: libcrypto++-6.0.0
+Description: Class library of cryptographic schemes
+Version: 6.0.0
+Libs: -L${libdir} -lcryptopp
+Cflags: -I${includedir}
More information about the arch-commits
mailing list