diff options
author | Alon Bar-Lev <alonbl@gentoo.org> | 2017-04-11 09:48:19 +0300 |
---|---|---|
committer | Alon Bar-Lev <alonbl@gentoo.org> | 2017-04-11 09:49:27 +0300 |
commit | 9d90879749a22548cb21093842352e242226bd3e (patch) | |
tree | 87aac8e2a6fc0df1fb4b491ab753a849d251b9ad /dev-libs | |
parent | dev-libs/libksba: cleanup (diff) | |
download | gentoo-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
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/libgcrypt/Manifest | 2 | ||||
-rw-r--r-- | dev-libs/libgcrypt/files/libgcrypt-1.5.4-CVE-2015-7511.patch | 326 | ||||
-rw-r--r-- | dev-libs/libgcrypt/files/libgcrypt-1.7.5-fix-nehalem.patch | 41 | ||||
-rw-r--r-- | dev-libs/libgcrypt/libgcrypt-1.7.3.ebuild | 71 | ||||
-rw-r--r-- | dev-libs/libgcrypt/libgcrypt-1.7.5-r2.ebuild | 75 |
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 -} |