Date: Wednesday, June 15, 2016 @ 02:47:54 Author: felixonmars Revision: 180124
upgpkg: haskell-cryptonite 0.17-1 rebuild with asn1-encoding-0.9.4, cgrep-6.6.15, data-default-0.7.1, data-default-class-0.1.1, js-jquery-3.0.0, microlens-0.4.4.3, pipes-http-1.0.3, scientific-0.3.4.7, shake-0.15.9, tagsoup-0.14 Modified: haskell-cryptonite/trunk/PKGBUILD Deleted: haskell-cryptonite/trunk/i686.patch ------------+ PKGBUILD | 14 ++--------- i686.patch | 75 ----------------------------------------------------------- 2 files changed, 3 insertions(+), 86 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-06-15 02:47:53 UTC (rev 180123) +++ PKGBUILD 2016-06-15 02:47:54 UTC (rev 180124) @@ -4,7 +4,7 @@ _hkgname=cryptonite pkgname=haskell-cryptonite -pkgver=0.16 +pkgver=0.17 pkgrel=1 pkgdesc="Cryptography Primitives sink" url="https://github.com/vincenthz/cryptonite" @@ -11,17 +11,9 @@ license=("custom:BSD3") arch=('i686' 'x86_64') depends=("ghc=8.0.1" "haskell-memory") -source=("http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz" - i686.patch) -sha256sums=('5c3bf190954986ea4af466914eb7a0c55a0b4c1c66552d00341277c89082511a' - '0bd68b7fd7caa859ca9a5dd7343c45c0dfd22c0c5cd55dec626de2dd9804abec') +source=("http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz") +sha256sums=('a6c6a129b844c55580c4bfd79ecdf5bdc37ea8be6634ae7858015219111156c8') -prepare() { - cd $_hkgname-$pkgver - # https://github.com/haskell-crypto/cryptonite/issues/88 - patch -p1 -i ../i686.patch -} - build() { cd "${srcdir}/${_hkgname}-${pkgver}" Deleted: i686.patch =================================================================== --- i686.patch 2016-06-15 02:47:53 UTC (rev 180123) +++ i686.patch 2016-06-15 02:47:54 UTC (rev 180124) @@ -1,75 +0,0 @@ -From f5a811e755eee253bc34897f327e096e04ad1286 Mon Sep 17 00:00:00 2001 -From: Vincent Hanquez <[email protected]> -Date: Fri, 3 Jun 2016 07:12:38 +0100 -Subject: [PATCH] [rdrand] add an untested workaround for i686 machine - ---- - cbits/cryptonite_rdrand.c | 35 ++++++++++++++++++++++++++++------- - 1 file changed, 28 insertions(+), 7 deletions(-) - -diff --git a/cbits/cryptonite_rdrand.c b/cbits/cryptonite_rdrand.c -index 54409fc..66501e5 100644 ---- a/cbits/cryptonite_rdrand.c -+++ b/cbits/cryptonite_rdrand.c -@@ -65,17 +65,38 @@ static inline int crypto_random_rdrand64_step(uint64_t *buffer) - : \ - : "cc") - -+/* inline encoding of 'rdrand %eax' to cover old binutils -+ * - no inputs -+ * - 'cc' to the clobber list as we modify condition code. -+ * - output of rdrand in eax and have a 8 bit error condition -+ */ -+#define inline_rdrand_eax(val, err) \ -+ asm(".byte 0x0f,0xc7,0xf0; setc %1" \ -+ : "=a" (val), "=q" (err) \ -+ : \ -+ : "cc") -+ -+#ifdef __x86_64__ -+# define RDRAND_SZ 8 -+# define RDRAND_T uint64_t -+#define inline_rdrand(val, err) inline_rdrand_rax(val, err) -+#else -+# define RDRAND_SZ 4 -+# define RDRAND_T uint32_t -+#define inline_rdrand(val, err) inline_rdrand_eax(val, err) -+#endif -+ - /* Returns the number of bytes succesfully generated */ - int cryptonite_get_rand_bytes(uint8_t *buffer, size_t len) - { -- uint64_t tmp; -- int aligned = (intptr_t) buffer % 8; -+ RDRAND_T tmp; -+ int aligned = (intptr_t) buffer % RDRAND_SZ; - int orig_len = len; -- int to_alignment = 8 - aligned; -+ int to_alignment = RDRAND_SZ - aligned; - uint8_t ok; - - if (aligned != 0) { -- inline_rdrand_rax(tmp, ok); -+ inline_rdrand(tmp, ok); - if (!ok) - return 0; - memcpy(buffer, (uint8_t *) &tmp, to_alignment); -@@ -83,15 +104,15 @@ int cryptonite_get_rand_bytes(uint8_t *buffer, size_t len) - len -= to_alignment; - } - -- for (; len >= 8; buffer += 8, len -= 8) { -- inline_rdrand_rax(tmp, ok); -+ for (; len >= RDRAND_SZ; buffer += RDRAND_SZ, len -= RDRAND_SZ) { -+ inline_rdrand(tmp, ok); - if (!ok) - return (orig_len - len); - *((uint64_t *) buffer) = tmp; - } - - if (len > 0) { -- inline_rdrand_rax(tmp, ok); -+ inline_rdrand(tmp, ok); - if (!ok) - return (orig_len - len); - memcpy(buffer, (uint8_t *) &tmp, len);
