summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Bar-Lev <alonbl@gentoo.org>2017-04-11 09:48:19 +0300
committerAlon Bar-Lev <alonbl@gentoo.org>2017-04-11 09:49:27 +0300
commit9d90879749a22548cb21093842352e242226bd3e (patch)
tree87aac8e2a6fc0df1fb4b491ab753a849d251b9ad
parentdev-libs/libksba: cleanup (diff)
downloadgentoo-9d90879749a22548cb21093842352e242226bd3e.tar.gz
gentoo-9d90879749a22548cb21093842352e242226bd3e.tar.bz2
gentoo-9d90879749a22548cb21093842352e242226bd3e.zip
dev-libs/libgcrypt: cleanup
Bug: 613232 Package-Manager: Portage-2.3.3, Repoman-2.3.1
-rw-r--r--dev-libs/libgcrypt/Manifest2
-rw-r--r--dev-libs/libgcrypt/files/libgcrypt-1.5.4-CVE-2015-7511.patch326
-rw-r--r--dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch41
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.7.3.ebuild71
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.7.5-r2.ebuild75
5 files changed, 0 insertions, 515 deletions
diff --git a/dev-libs/libgcrypt/Manifest b/dev-libs/libgcrypt/Manifest
index 295b7fc4533c..1a6b79eadc7b 100644
--- a/dev-libs/libgcrypt/Manifest
+++ b/dev-libs/libgcrypt/Manifest
@@ -1,4 +1,2 @@
DIST libgcrypt-1.5.6.tar.bz2 1548918 SHA256 301826b5e521c867056fd630aad6f0a60e176d18a017da6bc24b1695df3abe79 SHA512 2c16912de66bc83adfbf8f43a2a9f57e1afcc866b1774ec11a670e2a793a7c5f2029d134c0bda681c9cb95f7dcc166133782c124e520b7fbe246ec10a9e1c06a WHIRLPOOL d1d556268fafdf7cd19dc0442e25a24b732748b47ce4edd42ce03b039f42e0c409a4711af6759aa04bbcdd94d0dd1c64a20ede89731458d099ea7864c70c24b4
-DIST libgcrypt-1.7.3.tar.bz2 2861294 SHA256 ddac6111077d0a1612247587be238c5294dd0ee4d76dc7ba783cc55fb0337071 SHA512 55c5704e45167dc5adf1e5a92789a5d841dc27966212cc556abb374e724fddcd85c74b83e0cfa5f3ed2575e3fec9465e8a90d1c5bc8ab1f6697c9abfc2dcaa05 WHIRLPOOL c409710569cc2d9288622884826848eca3677c833c61de20b7e9e771e969a0565fea320d557e3df81024e3b8055deb5c6252ac7dabbfb88e0122dc66f03af0f6
-DIST libgcrypt-1.7.5.tar.bz2 2883968 SHA256 d1fea4128beef2bb30a470af6bafabccc503ced350534fb9dd8f5a53ffbae800 SHA512 575cc6cda3a7c3770e62089d5de1d26de3136a1360b9913814727fdef1c803890d77c57f61621687419d7e572ffd3bc11090cc8899cc4b6af2908ed38324405c WHIRLPOOL 42e790e956d0aeb9d07ce388c80262e34386d436714c7eb436a3c6cdb0d86f863bc42e3dd2fc8cd7e997716fa53002d6f49298015a98666444f47f22def6f5ed
DIST libgcrypt-1.7.6.tar.bz2 2897695 SHA256 626aafee84af9d2ce253d2c143dc1c0902dda045780cc241f39970fc60be05bc SHA512 fb7e20c50280f2ca715c3fc9a457f1cc22224797812f8dfa3ec756471bd0049c2cf75ffe12daa543aefe6cdcd1b90b4b9f943f148c073ad99d3a7dee42a8173f WHIRLPOOL 30c0e6a61ad0c8d2251beeb46466a2aaec05e991fc097f54302af3cdd98c7456522df006d4e590fd9e95a13f1f8291bc3ea5cd0bb99baecadbc0df2a20f2e0e0
diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.5.4-CVE-2015-7511.patch b/dev-libs/libgcrypt/files/libgcrypt-1.5.4-CVE-2015-7511.patch
deleted file mode 100644
index 9ab0b4c2e645..000000000000
--- a/dev-libs/libgcrypt/files/libgcrypt-1.5.4-CVE-2015-7511.patch
+++ /dev/null
@@ -1,326 +0,0 @@
-From fcbb9fcc2e6983ea61bf565b6ee2e29816b8cd57 Mon Sep 17 00:00:00 2001
-From: NIIBE Yutaka <gniibe@fsij.org>
-Date: Wed, 10 Feb 2016 17:43:03 +0900
-Subject: [PATCH] ecc: Fix for chosen cipher text attacks.
-
-* src/mpi.h (_gcry_mpi_ec_curve_point): New internal function.
-* cipher/ecc.c (ecc_decrypt_raw): Validate input. Remove duplicated
-point_free.
-* mpi/ec.c (_gcry_mpi_ec_mul_point):Use simple left-to-right binary
-method for when SCALAR is secure.
-(_gcry_mpi_ec_curve_point): New.
-
---
-
-CVE-id: CVE-2015-7511
-
-Thanks to Daniel Genkin, Lev Pachmanov, Itamar Pipman, and Eran
-Tromer. http://www.cs.tau.ac.IL/~tromer/ecdh/
-
-This could be an effective contermeasure to some chosen cipher text
-attacks.
-
-(backport from master
- commit 88e1358962e902ff1cbec8d53ba3eee46407851a)
-(backport from LIBGCRYPT-1-6-BRANCH
- commit 28eb424e4427b320ec1c9c4ce56af25d495230bd)
-
-Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
----
- cipher/ecc.c | 11 ++-
- mpi/ec.c | 226 +++++++++++++++++++++++++++++++++++------------------------
- src/mpi.h | 2 +-
- 3 files changed, 145 insertions(+), 94 deletions(-)
-
-diff --git a/cipher/ecc.c b/cipher/ecc.c
-index b8487dc..80b67ae 100644
---- a/cipher/ecc.c
-+++ b/cipher/ecc.c
-@@ -1535,12 +1535,19 @@ ecc_decrypt_raw (int algo, gcry_mpi_t *result, gcry_mpi_t *data,
-
- ctx = _gcry_mpi_ec_init (sk.E.p, sk.E.a);
-
-+ if (!_gcry_mpi_ec_curve_point (&kG, sk.E.b, ctx))
-+ {
-+ point_free (&kG);
-+ point_free (&sk.E.G);
-+ point_free (&sk.Q);
-+ _gcry_mpi_ec_free (ctx);
-+ return GPG_ERR_INV_DATA;
-+ }
-+
- /* R = dkG */
- point_init (&R);
- _gcry_mpi_ec_mul_point (&R, sk.d, &kG, ctx);
-
-- point_free (&kG);
--
- /* The following is false: assert( mpi_cmp_ui( R.x, 1 )==0 );, so: */
- {
- gcry_mpi_t x, y;
-diff --git a/mpi/ec.c b/mpi/ec.c
-index fa00818..bdb155a 100644
---- a/mpi/ec.c
-+++ b/mpi/ec.c
-@@ -612,110 +612,154 @@ _gcry_mpi_ec_mul_point (mpi_point_t *result,
- gcry_mpi_t scalar, mpi_point_t *point,
- mpi_ec_t ctx)
- {
--#if 0
-- /* Simple left to right binary method. GECC Algorithm 3.27 */
-- unsigned int nbits;
-- int i;
--
-- nbits = mpi_get_nbits (scalar);
-- mpi_set_ui (result->x, 1);
-- mpi_set_ui (result->y, 1);
-- mpi_set_ui (result->z, 0);
--
-- for (i=nbits-1; i >= 0; i--)
-+ if (mpi_is_secure(scalar))
- {
-- _gcry_mpi_ec_dup_point (result, result, ctx);
-- if (mpi_test_bit (scalar, i) == 1)
-- _gcry_mpi_ec_add_points (result, result, point, ctx);
-- }
--
--#else
-- gcry_mpi_t x1, y1, z1, k, h, yy;
-- unsigned int i, loops;
-- mpi_point_t p1, p2, p1inv;
--
-- x1 = mpi_alloc_like (ctx->p);
-- y1 = mpi_alloc_like (ctx->p);
-- h = mpi_alloc_like (ctx->p);
-- k = mpi_copy (scalar);
-- yy = mpi_copy (point->y);
-+ /* Simple left to right binary method. GECC Algorithm 3.27 */
-+ unsigned int nbits;
-+ int i;
-+ mpi_point_t tmppnt;
-
-- if ( mpi_is_neg (k) )
-- {
-- k->sign = 0;
-- ec_invm (yy, yy, ctx);
-- }
-+ nbits = mpi_get_nbits (scalar);
-+ mpi_set_ui (result->x, 1);
-+ mpi_set_ui (result->y, 1);
-+ mpi_set_ui (result->z, 0);
-
-- if (!mpi_cmp_ui (point->z, 1))
-- {
-- mpi_set (x1, point->x);
-- mpi_set (y1, yy);
-+ point_init (&tmppnt);
-+ for (i=nbits-1; i >= 0; i--)
-+ {
-+ _gcry_mpi_ec_dup_point (result, result, ctx);
-+ _gcry_mpi_ec_add_points (&tmppnt, result, point, ctx);
-+ if (mpi_test_bit (scalar, i) == 1)
-+ point_set (result, &tmppnt);
-+ }
-+ point_free (&tmppnt);
- }
- else
- {
-- gcry_mpi_t z2, z3;
--
-- z2 = mpi_alloc_like (ctx->p);
-- z3 = mpi_alloc_like (ctx->p);
-- ec_mulm (z2, point->z, point->z, ctx);
-- ec_mulm (z3, point->z, z2, ctx);
-- ec_invm (z2, z2, ctx);
-- ec_mulm (x1, point->x, z2, ctx);
-- ec_invm (z3, z3, ctx);
-- ec_mulm (y1, yy, z3, ctx);
-- mpi_free (z2);
-- mpi_free (z3);
-- }
-- z1 = mpi_copy (ctx->one);
-+ gcry_mpi_t x1, y1, z1, k, h, yy;
-+ unsigned int i, loops;
-+ mpi_point_t p1, p2, p1inv;
-
-- mpi_mul (h, k, ctx->three); /* h = 3k */
-- loops = mpi_get_nbits (h);
-- if (loops < 2)
-- {
-- /* If SCALAR is zero, the above mpi_mul sets H to zero and thus
-- LOOPs will be zero. To avoid an underflow of I in the main
-- loop we set LOOP to 2 and the result to (0,0,0). */
-- loops = 2;
-- mpi_clear (result->x);
-- mpi_clear (result->y);
-- mpi_clear (result->z);
-- }
-- else
-- {
-- mpi_set (result->x, point->x);
-- mpi_set (result->y, yy);
-- mpi_set (result->z, point->z);
-- }
-- mpi_free (yy); yy = NULL;
-+ x1 = mpi_alloc_like (ctx->p);
-+ y1 = mpi_alloc_like (ctx->p);
-+ h = mpi_alloc_like (ctx->p);
-+ k = mpi_copy (scalar);
-+ yy = mpi_copy (point->y);
-
-- p1.x = x1; x1 = NULL;
-- p1.y = y1; y1 = NULL;
-- p1.z = z1; z1 = NULL;
-- point_init (&p2);
-- point_init (&p1inv);
-+ if ( mpi_is_neg (k) )
-+ {
-+ k->sign = 0;
-+ ec_invm (yy, yy, ctx);
-+ }
-
-- for (i=loops-2; i > 0; i--)
-- {
-- _gcry_mpi_ec_dup_point (result, result, ctx);
-- if (mpi_test_bit (h, i) == 1 && mpi_test_bit (k, i) == 0)
-+ if (!mpi_cmp_ui (point->z, 1))
-+ {
-+ mpi_set (x1, point->x);
-+ mpi_set (y1, yy);
-+ }
-+ else
- {
-- point_set (&p2, result);
-- _gcry_mpi_ec_add_points (result, &p2, &p1, ctx);
-+ gcry_mpi_t z2, z3;
-+
-+ z2 = mpi_alloc_like (ctx->p);
-+ z3 = mpi_alloc_like (ctx->p);
-+ ec_mulm (z2, point->z, point->z, ctx);
-+ ec_mulm (z3, point->z, z2, ctx);
-+ ec_invm (z2, z2, ctx);
-+ ec_mulm (x1, point->x, z2, ctx);
-+ ec_invm (z3, z3, ctx);
-+ ec_mulm (y1, yy, z3, ctx);
-+ mpi_free (z2);
-+ mpi_free (z3);
- }
-- if (mpi_test_bit (h, i) == 0 && mpi_test_bit (k, i) == 1)
-+ z1 = mpi_copy (ctx->one);
-+
-+ mpi_mul (h, k, ctx->three); /* h = 3k */
-+ loops = mpi_get_nbits (h);
-+ if (loops < 2)
- {
-- point_set (&p2, result);
-- /* Invert point: y = p - y mod p */
-- point_set (&p1inv, &p1);
-- ec_subm (p1inv.y, ctx->p, p1inv.y, ctx);
-- _gcry_mpi_ec_add_points (result, &p2, &p1inv, ctx);
-+ /* If SCALAR is zero, the above mpi_mul sets H to zero and thus
-+ LOOPs will be zero. To avoid an underflow of I in the main
-+ loop we set LOOP to 2 and the result to (0,0,0). */
-+ loops = 2;
-+ mpi_clear (result->x);
-+ mpi_clear (result->y);
-+ mpi_clear (result->z);
-+ }
-+ else
-+ {
-+ mpi_set (result->x, point->x);
-+ mpi_set (result->y, yy);
-+ mpi_set (result->z, point->z);
-+ }
-+ mpi_free (yy); yy = NULL;
-+
-+ p1.x = x1; x1 = NULL;
-+ p1.y = y1; y1 = NULL;
-+ p1.z = z1; z1 = NULL;
-+ point_init (&p2);
-+ point_init (&p1inv);
-+
-+ for (i=loops-2; i > 0; i--)
-+ {
-+ _gcry_mpi_ec_dup_point (result, result, ctx);
-+ if (mpi_test_bit (h, i) == 1 && mpi_test_bit (k, i) == 0)
-+ {
-+ point_set (&p2, result);
-+ _gcry_mpi_ec_add_points (result, &p2, &p1, ctx);
-+ }
-+ if (mpi_test_bit (h, i) == 0 && mpi_test_bit (k, i) == 1)
-+ {
-+ point_set (&p2, result);
-+ /* Invert point: y = p - y mod p */
-+ point_set (&p1inv, &p1);
-+ ec_subm (p1inv.y, ctx->p, p1inv.y, ctx);
-+ _gcry_mpi_ec_add_points (result, &p2, &p1inv, ctx);
-+ }
- }
-+
-+ point_free (&p1);
-+ point_free (&p2);
-+ point_free (&p1inv);
-+ mpi_free (h);
-+ mpi_free (k);
- }
-+}
-+
-+
-+/* Return true if POINT is on the curve described by CTX. */
-+int
-+_gcry_mpi_ec_curve_point (mpi_point_t *point, gcry_mpi_t b, mpi_ec_t ctx)
-+{
-+ int res = 0;
-+ gcry_mpi_t x, y, w;
-+ gcry_mpi_t xxx;
-+
-+ x = mpi_new (0);
-+ y = mpi_new (0);
-+ w = mpi_new (0);
-+ xxx = mpi_new (0);
-+
-+ if (_gcry_mpi_ec_get_affine (x, y, point, ctx))
-+ goto leave;
-+
-+ /* y^2 == x^3 + a·x + b */
-+ ec_mulm (y, y, y, ctx);
-+
-+ ec_mulm (xxx, x, x, ctx);
-+ ec_mulm (xxx, xxx, x, ctx);
-+ ec_mulm (w, ctx->a, x, ctx);
-+ ec_addm (w, w, b, ctx);
-+ ec_addm (w, w, xxx, ctx);
-+
-+ if (!mpi_cmp (y, w))
-+ res = 1;
-+
-+ leave:
-+ _gcry_mpi_release (xxx);
-+ _gcry_mpi_release (w);
-+ _gcry_mpi_release (x);
-+ _gcry_mpi_release (y);
-
-- point_free (&p1);
-- point_free (&p2);
-- point_free (&p1inv);
-- mpi_free (h);
-- mpi_free (k);
--#endif
-+ return res;
- }
-diff --git a/src/mpi.h b/src/mpi.h
-index 65a4f97..adc65e2 100644
---- a/src/mpi.h
-+++ b/src/mpi.h
-@@ -257,7 +257,7 @@ void _gcry_mpi_ec_add_points (mpi_point_t *result,
- void _gcry_mpi_ec_mul_point (mpi_point_t *result,
- gcry_mpi_t scalar, mpi_point_t *point,
- mpi_ec_t ctx);
--
-+int _gcry_mpi_ec_curve_point (mpi_point_t *point, gcry_mpi_t b, mpi_ec_t ctx);
-
-
- #endif /*G10_MPI_H*/
---
-2.1.4
-
diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch b/dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch
deleted file mode 100644
index 25633adae1ea..000000000000
--- a/dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From aada604594fd42224d366d3cb98f67fd3b989cd6 Mon Sep 17 00:00:00 2001
-From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-Date: Wed, 4 Jan 2017 12:02:36 +0200
-Subject: [PATCH 1/1] rijndael-ssse3: fix counter operand from read-only to
- read/write
-
-* cipher/rijndael-ssse3-amd64.c (_gcry_aes_ssse3_ctr_enc): Change
-'ctrlow' operand from read-only to read-write.
---
-
-With read-only operand, compiler is allowed to pass temporary
-register to assembly block and throw away any calculation that
-have been done on that register. On the other hand, compiler is
-also allowed to keep operand value permanently in one register
-as value is treated as read-only, and effectly operates as
-expected. Selection between these two depends on compiler
-version and used flags.
-
-Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
----
- cipher/rijndael-ssse3-amd64.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/cipher/rijndael-ssse3-amd64.c b/cipher/rijndael-ssse3-amd64.c
-index a8e89d4..2adb73f 100644
---- a/cipher/rijndael-ssse3-amd64.c
-+++ b/cipher/rijndael-ssse3-amd64.c
-@@ -387,8 +387,8 @@ _gcry_aes_ssse3_ctr_enc (RIJNDAEL_context *ctx, unsigned char *outbuf,
- ".Lno_carry%=:\n\t"
-
- "pshufb %%xmm6, %%xmm7\n\t"
-- :
-- : [ctr] "r" (ctr), [ctrlow] "r" (ctrlow)
-+ : [ctrlow] "+r" (ctrlow)
-+ : [ctr] "r" (ctr)
- : "cc", "memory");
-
- do_vpaes_ssse3_enc (ctx, nrounds, aes_const_ptr);
---
-2.8.0.rc3
-
diff --git a/dev-libs/libgcrypt/libgcrypt-1.7.3.ebuild b/dev-libs/libgcrypt/libgcrypt-1.7.3.ebuild
deleted file mode 100644
index 7ad973e8e8f8..000000000000
--- a/dev-libs/libgcrypt/libgcrypt-1.7.3.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-AUTOTOOLS_AUTORECONF=1
-WANT_AUTOMAKE=1.14
-
-inherit autotools-multilib flag-o-matic
-
-DESCRIPTION="General purpose crypto library based on the code used in GnuPG"
-HOMEPAGE="http://www.gnupg.org/"
-SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
-
-LICENSE="LGPL-2.1 MIT"
-SLOT="0/20" # subslot = soname major version
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc static-libs"
-
-RDEPEND=">=dev-libs/libgpg-error-1.12[${MULTILIB_USEDEP}]
- abi_x86_32? (
- !<=app-emulation/emul-linux-x86-baselibs-20131008-r19
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32]
- )"
-DEPEND="${RDEPEND}
- doc? ( virtual/texi2dvi )"
-
-DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.6.1-uscore.patch
- "${FILESDIR}"/${PN}-multilib-syspath.patch
-)
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/libgcrypt-config
-)
-
-multilib_src_configure() {
- if [[ ${CHOST} == *86*-solaris* ]] ; then
- # ASM code uses GNU ELF syntax, divide in particular, we need to
- # allow this via ASFLAGS, since we don't have a flag-o-matic
- # function for that, we'll have to abuse cflags for this
- append-cflags -Wa,--divide
- fi
- local myeconfargs=(
- --disable-dependency-tracking
- --enable-noexecstack
- --disable-O-flag-munging
- $(use_enable static-libs static)
-
- # disabled due to various applications requiring privileges
- # after libgcrypt drops them (bug #468616)
- --without-capabilities
-
- # http://trac.videolan.org/vlc/ticket/620
- # causes bus-errors on sparc64-solaris
- $([[ ${CHOST} == *86*-darwin* ]] && echo "--disable-asm")
- $([[ ${CHOST} == sparcv9-*-solaris* ]] && echo "--disable-asm")
- )
- autotools-utils_src_configure
-}
-
-multilib_src_compile() {
- emake
- multilib_is_native_abi && use doc && VARTEXFONTS="${T}/fonts" emake -C doc gcrypt.pdf
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
- multilib_is_native_abi && use doc && dodoc doc/gcrypt.pdf
-}
diff --git a/dev-libs/libgcrypt/libgcrypt-1.7.5-r2.ebuild b/dev-libs/libgcrypt/libgcrypt-1.7.5-r2.ebuild
deleted file mode 100644
index eac98eb478b3..000000000000
--- a/dev-libs/libgcrypt/libgcrypt-1.7.5-r2.ebuild
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools flag-o-matic multilib-minimal
-
-DESCRIPTION="General purpose crypto library based on the code used in GnuPG"
-HOMEPAGE="http://www.gnupg.org/"
-SRC_URI="mirror://gnupg/${PN}/${P}.tar.bz2"
-
-LICENSE="LGPL-2.1 MIT"
-SLOT="0/20" # subslot = soname major version
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="doc static-libs"
-
-RDEPEND=">=dev-libs/libgpg-error-1.12[${MULTILIB_USEDEP}]
- abi_x86_32? (
- !<=app-emulation/emul-linux-x86-baselibs-20131008-r19
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32]
- )"
-DEPEND="${RDEPEND}
- doc? ( virtual/texi2dvi )"
-
-DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.6.1-uscore.patch
- "${FILESDIR}"/${PN}-multilib-syspath.patch
- "${FILESDIR}"/${P}-fix-nehalem.patch
-)
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/libgcrypt-config
-)
-
-src_prepare() {
- default
- eautoreconf
-}
-
-multilib_src_configure() {
- if [[ ${CHOST} == *86*-solaris* ]] ; then
- # ASM code uses GNU ELF syntax, divide in particular, we need to
- # allow this via ASFLAGS, since we don't have a flag-o-matic
- # function for that, we'll have to abuse cflags for this
- append-cflags -Wa,--divide
- fi
- local myeconfargs=(
- --disable-dependency-tracking
- --enable-noexecstack
- --disable-O-flag-munging
- $(use_enable static-libs static)
-
- # disabled due to various applications requiring privileges
- # after libgcrypt drops them (bug #468616)
- --without-capabilities
-
- # http://trac.videolan.org/vlc/ticket/620
- # causes bus-errors on sparc64-solaris
- $([[ ${CHOST} == *86*-darwin* ]] && echo "--disable-asm")
- $([[ ${CHOST} == sparcv9-*-solaris* ]] && echo "--disable-asm")
- )
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_compile() {
- default
- multilib_is_native_abi && use doc && VARTEXFONTS="${T}/fonts" emake -C doc gcrypt.pdf
-}
-
-multilib_src_install() {
- emake DESTDIR="${D}" install
- multilib_is_native_abi && use doc && dodoc doc/gcrypt.pdf
-}