summaryrefslogtreecommitdiff
path: root/dev-libs/libgcrypt
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-libs/libgcrypt
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-libs/libgcrypt')
-rw-r--r--dev-libs/libgcrypt/Manifest15
-rw-r--r--dev-libs/libgcrypt/files/libgcrypt-1.5.0-uscore.patch33
-rw-r--r--dev-libs/libgcrypt/files/libgcrypt-1.5.4-clang-arm.patch84
-rw-r--r--dev-libs/libgcrypt/files/libgcrypt-1.6.1-uscore.patch26
-rw-r--r--dev-libs/libgcrypt/files/libgcrypt-multilib-syspath.patch23
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.5.6-r101.ebuild60
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.8.1.ebuild73
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.8.2-r1.ebuild73
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.8.2-r2.ebuild75
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.8.2.ebuild73
-rw-r--r--dev-libs/libgcrypt/libgcrypt-1.8.3.ebuild75
-rw-r--r--dev-libs/libgcrypt/metadata.xml15
12 files changed, 625 insertions, 0 deletions
diff --git a/dev-libs/libgcrypt/Manifest b/dev-libs/libgcrypt/Manifest
new file mode 100644
index 000000000000..d85d53dd6ec7
--- /dev/null
+++ b/dev-libs/libgcrypt/Manifest
@@ -0,0 +1,15 @@
+AUX libgcrypt-1.5.0-uscore.patch 981 BLAKE2B 0f7bae068fa1c04834a0295b902aa479304a8b9f066d984d28a49c59a5c041281d93a7bc73e053f4098461364e87b7a665cb890b4792cdf221f44593c23fbae4 SHA512 716e182684886c905525ab9218b3453fd968ee8f73da83d3ba97ca84a868e18eb1c1c9bb3891a1e4b25f870eb3d762a5e8a415168c9804e9367d8dd12090a601
+AUX libgcrypt-1.5.4-clang-arm.patch 4189 BLAKE2B 39fb88e752a544232c4c48aa8b8df44952e700966f1cbc361664015d075c1d8ef171ae68e9cabd87cab9ce0424243dfbe71271ce2a984d7ad1bdc8c52efd1349 SHA512 86d462340595420a70977d697237a8bb87583750e90c8368ce783ca0fbfed8816c646dd5e40b8e929fbce29917a2b05bb48a0a492d271605958fcb98faf4caa4
+AUX libgcrypt-1.6.1-uscore.patch 843 BLAKE2B a1023bf915e342dd52d07d4c497d3e514c8c4b6c621e4f8704c4841fd95d48773f0af850a456c6f80b80deed878be1334f08f8181f97dce64ed9e61f5cb1bae5 SHA512 971814ac34f17464a96fbc110fe995923d873981949a0126e50c206d39499d6146fd00414e837774e6932e4b491cc68c4147278d6216dda630fb876bc8f61791
+AUX libgcrypt-multilib-syspath.patch 588 BLAKE2B 6a8d30246263339571455df3c1cccfc9f38e50117cef34bc92ce37a296c3e31017c0190923ea992f51706c55a63c6f75b1d9fc7d8d40930707486f419e1795c4 SHA512 913c1a474aba50ec3589fb5a991f65204ba2cc28203b92353fdef8fb092350c3be814a57f29a26a2176627509a4f573f6db02ebdbcde3f04a2f1d632879293dc
+DIST libgcrypt-1.5.6.tar.bz2 1548918 BLAKE2B 14ff8dfcfd7c5345f1be6d5300b97db27c9ac3c78141cc888ee978882aee39ac386a1e90588d3840bf0595a519437e92fa53b5f73d8659e193a43cfa374dfb34 SHA512 2c16912de66bc83adfbf8f43a2a9f57e1afcc866b1774ec11a670e2a793a7c5f2029d134c0bda681c9cb95f7dcc166133782c124e520b7fbe246ec10a9e1c06a
+DIST libgcrypt-1.8.1.tar.bz2 2967344 BLAKE2B f259d08427f76238576e3897a821d457b6ff47c99716301b54b20a21ae7574a7ef1f4aa62947c443efb8274d5cb3d64dc1d9c4ea45568f6df6f29c2c1717860b SHA512 27c9d2fd9cba5afca71d421c9299d6942463975fae0bd10d4ff42cda2d7ea213e6b73c071a40fcf23ff52a93394cc7505ab332f8a4a3321826460e471eda5b4e
+DIST libgcrypt-1.8.2.tar.bz2 2966534 BLAKE2B 1a0768dc1c4fc64913256575ec9ebe77fe8c4297c648972c93865271f0a18e60954d2f37c264bad5f1941b5e80753f34349ded9626e5c26ab469cc076da9ac2e SHA512 1e8c414f95bf6b50e778102ca7c1b3b1f30d8320826d9fff747a0a098ef85499cdc3e6de736853b9cd4e5dadda35c7c0a291e13643dcac5eaef44f2ddc7a6c09
+DIST libgcrypt-1.8.3.tar.bz2 2989166 BLAKE2B 3443883c3e8d005be6cbdc91589b8b287226f26eb59536e1a32512004af739a64a3817ac38fa1132fdfc3424c21ca49c81db93535a23d590a5dc4f4518f3cce1 SHA512 8c873204303f173dd3f49817a81035c1d504b2fc885965c9bc074a6e3fb108ceb6dca366d85e840a40712a6890fc325018ea9b8c1b7b8804c51c44b296cb96a0
+EBUILD libgcrypt-1.5.6-r101.ebuild 1679 BLAKE2B 8e65e4e836227b5701e1111e27aba14c7656df9f286aeada02410c6413240f3689620ba2b57a92b3482912766ee2f462ca5b930212dd5e0ce1a73fba34c0c3e2 SHA512 3ec645179ac9836eeaf369f12e654186e171d3cd04c42857df75d1ced9b35b70c098ff5697d20ff66396d9438c37bc7c0733a200587781edc2f9db5b0d344ea5
+EBUILD libgcrypt-1.8.1.ebuild 2098 BLAKE2B 05f395da3900dcc66b319f25c1a4ad57fe51acbf7fbe042956577291325abadd2cc76e8fe4e7dfc8828b792771aecfd39af0a529b6978390a2e704557c1d5d77 SHA512 ce773db8eda9b5e64191974da00ae9cfdee292d6bacdfa8a79074501dc9120ade518a2dc7f007a13733a7fa67342d1ae1793e55f792d5b8222b70e22c6e1c987
+EBUILD libgcrypt-1.8.2-r1.ebuild 2145 BLAKE2B bf0273a1c467077406890da14fcd055dc7b144a834b04554fbd1cf9949530a6c4905dc701a42fa945b93bea6d6ae031b2dc22073d9873487906b75aed60fa0d4 SHA512 e3aeeafeccff8e5c70c7d3c5784dd26c7f250f08a8dba378856ed065e1e7dfa18da989fce814872a36d548829ebeddd48758ebaf40d4c9031ebfd012575fa580
+EBUILD libgcrypt-1.8.2-r2.ebuild 2210 BLAKE2B f34057ad59eca6355567b72bbfdf1985e44e4746d7fbb1b0522f2306ebf645aa73f4760561520beed81ff51ad713787fcced4f4af0fbbeec3f6865e325a95850 SHA512 d2e53d31e04a409b5dd58012416ed0470dadae9cc8a0eabaeffc35131d390a9a77466c2a8bd61ce3e4a90585db9a8352660ca7e66df7849a90dbf1c23edc807d
+EBUILD libgcrypt-1.8.2.ebuild 2111 BLAKE2B 8102d7a2504f12054a8a6b99960651930b22df9961d9df8efd72ba4f5ce76e89741a4607ee96118eadc2cd91cf2f1c2467405d2aaae145e709d382091b1ace08 SHA512 e8977abb9bc4313b09222d4945f487b0f3dd39e7bd1455e2186cb65965f77f653c7618b7c8b10d9d8028d50ff3d054b06b9565df7ecfd0f8849188fc783d78d1
+EBUILD libgcrypt-1.8.3.ebuild 2201 BLAKE2B 56b9089acc154f834d5682ebad620cfab84aefd1b9146c63526148a07635e1186b03ec1c5c200d572549bbc210a929af777e9f64c8980b8615047e3909e18f0e SHA512 db93fce4ccb773b04c4f216fd3eacfdec783bcf263491bae43cc0c20ad3cb3684b713384ca7ce747582192fa8c5feb544aac9203af654973985b6026dc0c32bd
+MISC metadata.xml 436 BLAKE2B 63494d2110caa2744cb7e2a43bb1622cc1709698a914bcda9958ee6fb9f8e5c5cee94e5cc9ce744a6638650e6bb78a0cea719a7afad53868513a15314ebb75f6 SHA512 953eb7a141dadcdb8f4c997924169a5e9dc5ce9e86a37b3171417f3825fad7763891ddf71cf7f05e36e2c39c534474dcba3e958b06bfb0f384d0ddf26afc10e4
diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.5.0-uscore.patch b/dev-libs/libgcrypt/files/libgcrypt-1.5.0-uscore.patch
new file mode 100644
index 000000000000..1d4f650b6c7a
--- /dev/null
+++ b/dev-libs/libgcrypt/files/libgcrypt-1.5.0-uscore.patch
@@ -0,0 +1,33 @@
+The version taken from GnuPG 1.4 assumes any cross-compiled package have
+prefixed underscores, which is not the case; by using libtool's own macro,
+we can avoid the whole issue.
+
+diff --git a/configure.ac b/configure.ac
+index ab160c3..6df49bf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -886,7 +886,7 @@ fi
+ #
+ # Setup assembler stuff.
+ #
+-GNUPG_SYS_SYMBOL_UNDERSCORE()
++LT_SYS_SYMBOL_USCORE
+ AC_ARG_ENABLE(mpi-path,
+ AC_HELP_STRING([--enable-mpi-path=EXTRA_PATH],
+ [prepend EXTRA_PATH to list of CPU specific optimizations]),
+diff --git a/mpi/config.links b/mpi/config.links
+index 7e910ee..9696828 100644
+--- a/mpi/config.links
++++ b/mpi/config.links
+@@ -291,7 +291,7 @@ fi
+
+ # Make sysdep.h
+ echo '/* created by config.links - do not edit */' >./mpi/sysdep.h
+-if test x$ac_cv_sys_symbol_underscore = xyes; then
++if test x$sys_symbol_underscore = xyes; then
+ cat <<EOF >>./mpi/sysdep.h
+ #if __STDC__
+ #define C_SYMBOL_NAME(name) _##name
+--
+1.7.6.1
+
diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.5.4-clang-arm.patch b/dev-libs/libgcrypt/files/libgcrypt-1.5.4-clang-arm.patch
new file mode 100644
index 000000000000..ab5d844552af
--- /dev/null
+++ b/dev-libs/libgcrypt/files/libgcrypt-1.5.4-clang-arm.patch
@@ -0,0 +1,84 @@
+fix from upstream
+
+From e67c67321ce240c93dd0fa2b21c649c0a8e233f7 Mon Sep 17 00:00:00 2001
+From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+Date: Tue, 22 Oct 2013 17:07:53 +0300
+Subject: [PATCH] mpi: allow building with clang on ARM
+
+* mpi/longlong.h [__arm__] (add_ssaaaa, sub_ddmmss, umul_ppmm)
+(count_leading_zeros): Do not cast assembly output arguments.
+[__arm__] (umul_ppmm): Remove the extra '%' ahead of assembly comment.
+[_ARM_ARCH >= 4] (umul_ppmm): Use correct inputs and outputs instead of
+registers.
+--
+
+Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
+---
+ mpi/longlong.h | 27 +++++++++++++--------------
+ 1 file changed, 13 insertions(+), 14 deletions(-)
+
+diff --git a/mpi/longlong.h b/mpi/longlong.h
+index c2ab9c5..8c8260e 100644
+--- a/mpi/longlong.h
++++ b/mpi/longlong.h
+@@ -188,8 +188,8 @@ extern UDItype __udiv_qrnnd ();
+ #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("adds %1, %4, %5\n" \
+ "adc %0, %2, %3" \
+- : "=r" ((USItype)(sh)), \
+- "=&r" ((USItype)(sl)) \
++ : "=r" ((sh)), \
++ "=&r" ((sl)) \
+ : "%r" ((USItype)(ah)), \
+ "rI" ((USItype)(bh)), \
+ "%r" ((USItype)(al)), \
+@@ -197,15 +197,15 @@ extern UDItype __udiv_qrnnd ();
+ #define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subs %1, %4, %5\n" \
+ "sbc %0, %2, %3" \
+- : "=r" ((USItype)(sh)), \
+- "=&r" ((USItype)(sl)) \
++ : "=r" ((sh)), \
++ "=&r" ((sl)) \
+ : "r" ((USItype)(ah)), \
+ "rI" ((USItype)(bh)), \
+ "r" ((USItype)(al)), \
+ "rI" ((USItype)(bl)))
+ #if defined __ARM_ARCH_2__ || defined __ARM_ARCH_3__
+ #define umul_ppmm(xh, xl, a, b) \
+- __asm__ ("%@ Inlined umul_ppmm\n" \
++ __asm__ ("@ Inlined umul_ppmm\n" \
+ "mov %|r0, %2, lsr #16 @ AAAA\n" \
+ "mov %|r2, %3, lsr #16 @ BBBB\n" \
+ "bic %|r1, %2, %|r0, lsl #16 @ aaaa\n" \
+@@ -218,20 +218,19 @@ extern UDItype __udiv_qrnnd ();
+ "addcs %|r2, %|r2, #65536\n" \
+ "adds %1, %|r1, %|r0, lsl #16\n" \
+ "adc %0, %|r2, %|r0, lsr #16" \
+- : "=&r" ((USItype)(xh)), \
+- "=r" ((USItype)(xl)) \
++ : "=&r" ((xh)), \
++ "=r" ((xl)) \
+ : "r" ((USItype)(a)), \
+ "r" ((USItype)(b)) \
+ : "r0", "r1", "r2")
+ #else
+ #define umul_ppmm(xh, xl, a, b) \
+- __asm__ ("%@ Inlined umul_ppmm\n" \
+- "umull %r1, %r0, %r2, %r3" \
+- : "=&r" ((USItype)(xh)), \
+- "=r" ((USItype)(xl)) \
++ __asm__ ("@ Inlined umul_ppmm\n" \
++ "umull %1, %0, %2, %3" \
++ : "=&r" ((xh)), \
++ "=r" ((xl)) \
+ : "r" ((USItype)(a)), \
+- "r" ((USItype)(b)) \
+- : "r0", "r1")
++ "r" ((USItype)(b)))
+ #endif
+ #define UMUL_TIME 20
+ #define UDIV_TIME 100
+--
+2.4.4
+
diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.6.1-uscore.patch b/dev-libs/libgcrypt/files/libgcrypt-1.6.1-uscore.patch
new file mode 100644
index 000000000000..22bfac3104bc
--- /dev/null
+++ b/dev-libs/libgcrypt/files/libgcrypt-1.6.1-uscore.patch
@@ -0,0 +1,26 @@
+The version taken from GnuPG 1.4 assumes any cross-compiled package have
+prefixed underscores, which is not the case; by using libtool's own macro,
+we can avoid the whole issue.
+
+--- libgcrypt-1.6.1/configure.ac
++++ libgcrypt-1.6.1/configure.ac
+@@ -1022,7 +1022,7 @@
+ # Check whether underscores in symbols are required. This needs to be
+ # done before setting up the assembler stuff.
+ #
+-GNUPG_SYS_SYMBOL_UNDERSCORE()
++LT_SYS_SYMBOL_USCORE
+
+
+ #################################
+--- libgcrypt-1.6.1/mpi/config.links
++++ libgcrypt-1.6.1/mpi/config.links
+@@ -362,7 +362,7 @@
+
+ # Make sysdep.h
+ echo '/* created by config.links - do not edit */' >./mpi/sysdep.h
+-if test x$ac_cv_sys_symbol_underscore = xyes; then
++if test x$sys_symbol_underscore = xyes; then
+ cat <<EOF >>./mpi/sysdep.h
+ #if __STDC__
+ #define C_SYMBOL_NAME(name) _##name
diff --git a/dev-libs/libgcrypt/files/libgcrypt-multilib-syspath.patch b/dev-libs/libgcrypt/files/libgcrypt-multilib-syspath.patch
new file mode 100644
index 000000000000..7859851ccc4a
--- /dev/null
+++ b/dev-libs/libgcrypt/files/libgcrypt-multilib-syspath.patch
@@ -0,0 +1,23 @@
+diff --git a/src/libgcrypt-config.in b/src/libgcrypt-config.in
+index c052638..4c8ddc3 100644
+--- a/src/libgcrypt-config.in
++++ b/src/libgcrypt-config.in
+@@ -154,9 +154,12 @@ if test "$echo_libs" = "yes"; then
+ libs_final="$libs"
+
+ # Set up `libdirs'.
+- if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/lib"; then
+- libdirs="-L$libdir"
+- fi
++ case "$libdir" in
++ /usr/lib|/usr/lib64|/lib|/lib64) ;;
++ *)
++ libdirs="-L$libdir"
++ ;;
++ esac
+
+ # Set up `libs_final'.
+ libs_final="$libs_final $gpg_error_libs"
+--
+1.7.6.1
+
diff --git a/dev-libs/libgcrypt/libgcrypt-1.5.6-r101.ebuild b/dev-libs/libgcrypt/libgcrypt-1.5.6-r101.ebuild
new file mode 100644
index 000000000000..6b4a94d3540b
--- /dev/null
+++ b/dev-libs/libgcrypt/libgcrypt-1.5.6-r101.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools ltprune 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="11/11" # subslot = soname major version
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE=""
+
+RDEPEND=">=dev-libs/libgpg-error-1.12[${MULTILIB_USEDEP}]
+ !dev-libs/libgcrypt:0/11"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.5.0-uscore.patch
+ "${FILESDIR}"/${PN}-multilib-syspath.patch
+ "${FILESDIR}"/${PN}-1.5.4-clang-arm.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --disable-padlock-support # bug 201917
+ --disable-dependency-tracking
+ --enable-noexecstack
+ --disable-O-flag-munging
+
+ # 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_install() {
+ emake DESTDIR="${D}" install
+
+ rm -r "${ED%/}"/usr/{bin,include,lib*/*.so,share} || die
+}
+
+multilib_src_install_all() {
+ default
+ prune_libtool_files
+}
diff --git a/dev-libs/libgcrypt/libgcrypt-1.8.1.ebuild b/dev-libs/libgcrypt/libgcrypt-1.8.1.ebuild
new file mode 100644
index 000000000000..361413f50a04
--- /dev/null
+++ b/dev-libs/libgcrypt/libgcrypt-1.8.1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic ltprune 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 ~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.25[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( virtual/texi2dvi )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.1-uscore.patch
+ "${FILESDIR}"/${PN}-multilib-syspath.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
+}
+
+multilib_src_install_all() {
+ default
+ prune_libtool_files
+}
diff --git a/dev-libs/libgcrypt/libgcrypt-1.8.2-r1.ebuild b/dev-libs/libgcrypt/libgcrypt-1.8.2-r1.ebuild
new file mode 100644
index 000000000000..f5f5899b7265
--- /dev/null
+++ b/dev-libs/libgcrypt/libgcrypt-1.8.2-r1.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic ltprune 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 ~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 o-flag-munging static-libs"
+
+RDEPEND=">=dev-libs/libgpg-error-1.25[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( virtual/texi2dvi )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.1-uscore.patch
+ "${FILESDIR}"/${PN}-multilib-syspath.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
+ $(use_enable o-flag-munging 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
+}
+
+multilib_src_install_all() {
+ default
+ prune_libtool_files
+}
diff --git a/dev-libs/libgcrypt/libgcrypt-1.8.2-r2.ebuild b/dev-libs/libgcrypt/libgcrypt-1.8.2-r2.ebuild
new file mode 100644
index 000000000000..038308e1dc4c
--- /dev/null
+++ b/dev-libs/libgcrypt/libgcrypt-1.8.2-r2.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic ltprune 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 ~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 o-flag-munging static-libs"
+
+RDEPEND=">=dev-libs/libgpg-error-1.25[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( virtual/texi2dvi )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.1-uscore.patch
+ "${FILESDIR}"/${PN}-multilib-syspath.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
+ $(use_enable o-flag-munging 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")
+
+ GPG_ERROR_CONFIG="${EROOT}/usr/bin/${CHOST}-gpg-error-config"
+ )
+ 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
+}
+
+multilib_src_install_all() {
+ default
+ prune_libtool_files
+}
diff --git a/dev-libs/libgcrypt/libgcrypt-1.8.2.ebuild b/dev-libs/libgcrypt/libgcrypt-1.8.2.ebuild
new file mode 100644
index 000000000000..41a6baf100a1
--- /dev/null
+++ b/dev-libs/libgcrypt/libgcrypt-1.8.2.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic ltprune 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 ~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.25[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( virtual/texi2dvi )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.1-uscore.patch
+ "${FILESDIR}"/${PN}-multilib-syspath.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
+}
+
+multilib_src_install_all() {
+ default
+ prune_libtool_files
+}
diff --git a/dev-libs/libgcrypt/libgcrypt-1.8.3.ebuild b/dev-libs/libgcrypt/libgcrypt-1.8.3.ebuild
new file mode 100644
index 000000000000..7286569a35b5
--- /dev/null
+++ b/dev-libs/libgcrypt/libgcrypt-1.8.3.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic ltprune 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 ~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 o-flag-munging static-libs"
+
+RDEPEND=">=dev-libs/libgpg-error-1.25[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}
+ doc? ( virtual/texi2dvi )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.1-uscore.patch
+ "${FILESDIR}"/${PN}-multilib-syspath.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
+ $(use_enable o-flag-munging 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")
+
+ GPG_ERROR_CONFIG="${EROOT}/usr/bin/${CHOST}-gpg-error-config"
+ )
+ 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
+}
+
+multilib_src_install_all() {
+ default
+ prune_libtool_files
+}
diff --git a/dev-libs/libgcrypt/metadata.xml b/dev-libs/libgcrypt/metadata.xml
new file mode 100644
index 000000000000..9b7e9f273f57
--- /dev/null
+++ b/dev-libs/libgcrypt/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>k_f@gentoo.org</email>
+ <name>Kristian Fiskerstrand</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>crypto@gentoo.org</email>
+ <name>Crypto</name>
+ </maintainer>
+<use>
+<flag name="o-flag-munging">Enable O-flag mangling during build</flag>
+</use>
+</pkgmetadata>