[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