commit:     8cc70f2b5cd0e33c1c5cb25dafd6be28c71cc7d7
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 29 06:54:06 2016 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Fri Jan 29 06:58:57 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8cc70f2b

dev-libs/openssl: Security bump to versions 1.0.1r and 1.0.2f (bug #572854).

Package-Manager: portage-2.2.27
Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 dev-libs/openssl/Manifest                       |   2 +
 dev-libs/openssl/files/openssl-1.0.1r-x32.patch |  66 ++++++
 dev-libs/openssl/openssl-1.0.1r.ebuild          | 256 +++++++++++++++++++++++
 dev-libs/openssl/openssl-1.0.2f.ebuild          | 265 ++++++++++++++++++++++++
 4 files changed, 589 insertions(+)

diff --git a/dev-libs/openssl/Manifest b/dev-libs/openssl/Manifest
index 9fff022..17b0441 100644
--- a/dev-libs/openssl/Manifest
+++ b/dev-libs/openssl/Manifest
@@ -1,9 +1,11 @@
 DIST openssl-0.9.8zg.tar.gz 3826891 SHA256 
06500060639930e471050474f537fcd28ec934af92ee282d78b52460fbe8f580 SHA512 
c757454de321d168ac6d89fe2859966a9f07a8b28305bf697af9018db13fc457e0883346b3d35977461ab058442375563554ecb2a8756a687ff9fc2fdd9103c9
 WHIRLPOOL 
55ecf50a264a2ddd9b5755b5d90b9b736d2f27e0ba2fd529ccff3b68bbd726d1f60460182a0d215ae6712dbc4d3ef2df11339fb2d8424e049f54c3e904fcfab0
 DIST openssl-0.9.8zh.tar.gz 3818524 SHA256 
f1d9f3ed1b85a82ecf80d0e2d389e1fda3fca9a4dba0bf07adbf231e1a5e2fd6 SHA512 
b97fa2468211f86c0719c68ad1781eff84f772c479ed5193d6da14bac086b4ca706e7d851209d9df3f0962943b5e5333ab0def00110fb2e517caa73c0c6674c6
 WHIRLPOOL 
8ed3362e6aed89cd6ae02438bc3fb58ff3a91afb8a2d401d1d66c1ee4fd96f4befb50558131dd03a60fc15b588172fc1ede5d56bb1f68e184453bfe3b34f9abf
 DIST openssl-1.0.1p.tar.gz 4560208 SHA256 
bd5ee6803165c0fb60bbecbacacf244f1f90d2aa0d71353af610c29121e9b2f1 SHA512 
64e475c53a85b78de7c5aa71a22d4bb3a456142842373ebf8f22e9857cb0352b646e591b21af866933baecdbdb5ac4a22aeb64914440c53a0f30cd25914029e5
 WHIRLPOOL 
2a81f3b9274e3fef37a2a88e3084d8283159b3a61db08e7805879905c87a74faa85bc6e570d18525741bd5c27c34fe09eeb58b2bfe500545d0f304716e14f819
+DIST openssl-1.0.1r.tar.gz 4547786 SHA256 
784bd8d355ed01ce98b812f873f8b2313da61df7c7b5677fcf2e57b0863a3346 SHA512 
7a5a2efe5d9421ea6f4f86f75ed40b4459b3825355ad18da3bdba28393bc50a6f457b2e1f11a31828f1af0d62a716d258ac7868fb719c9997f3bc750a1723e86
 WHIRLPOOL 
de9c92f5ddb9bcaac967ac735696e739f5762b7d3a0b2430dbfa0c6cd7ac021fdf3c3257255a2fe995f24aa3550d59ce3067f030f09acc5d43b61dfda627686a
 DIST openssl-1.0.2a.tar.gz 5262089 SHA256 
15b6393c20030aab02c8e2fe0243cb1d1d18062f6c095d67bca91871dc7f324a SHA512 
02d228578824add52b73433d64697706e6503c2334933fe8dd6b477f59c430977012c3c34da207096229a425e1dcb6f3ae806043894b5ac98c27bbcddb794dd4
 WHIRLPOOL 
a590c71794f5d29b80afa28b18621b7535e96b714b3690d793c1422a90b09a89cbcb912841d400c5982a8197bb02c13051190e96ba0e4d530509b48b43067cd7
 DIST openssl-1.0.2b.tar.gz 5281009 SHA256 
d5d488cc9f0a07974195a7427094ea3cab9800a4e90178b989aa621fbc238e3f SHA512 
563eb662113668bb9ccf17a6e36697ad6392321ac1a32aa2cada9d8f4047651c2fa4da61f508ee3e1834fea343dbba189e09c1d6cabe5d1de5e3e6d022c31f4f
 WHIRLPOOL 
d828dc76842d25f02f211031b3ab9a2a8fd44975e9aaf87d0fd5fca9935a27b61c3e4f896a2186194f1a7b4d668fc48cafc5be9f7c670017ba342ce40113935f
 DIST openssl-1.0.2c.tar.gz 5280670 SHA256 
0038ba37f35a6367c58f17a7a7f687953ef8ce4f9684bbdec63e62515ed36a83 SHA512 
2a68e8b017d0d3e34e4f9d33b77abd960b3d04e418f106e852684a2ff247dc8ea390b7d6a42d130fd84d821a15e84e77b68b3677433433ef5c10d156333b9dae
 WHIRLPOOL 
c59878c3bd5e8904913b97d71a15ef1eaafcfb4eb58c691ba4fb38bf81752308d0ef4a902e53aec4c6e7585677f2404d29cdea0832d14206fabf28d744af2622
 DIST openssl-1.0.2d.tar.gz 5295447 SHA256 
671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8 SHA512 
68a051e92aaed0e7a8b218c185427c534c32f30f50c45f5d2c1f5b7a26d1416e83863d2953c77486acde3b636a148f39faf48246d28a207607ec069f62b13d75
 WHIRLPOOL 
e3d8f0784903c8d6aa05ada7b8b410517c99157a3c2f4ac34c8a9d80c77408bd6ff9e820ded47f6223ccac4a77413174aa625303166ec28fdbf8374a7d4659ec
 DIST openssl-1.0.2e.tar.gz 5256555 SHA256 
e23ccafdb75cfcde782da0151731aa2185195ac745eea3846133f2e05c0e0bff SHA512 
b73f114a117ccab284cf5891dac050e3016d28e0b1fc71639442cdb42accef676115af90a12deff4bcc1f599cc0cbdeb38142cbf4570bd7d03634786ad32c95f
 WHIRLPOOL 
8e1c1800a66f57fa78dc391e717e4b2bdf0e6e37a837c5ac033d7a4b1a6437451c7e7540c4ec2f75f936a2d2ef4f9293b42c76f51b0c9c93706639589612f196
+DIST openssl-1.0.2f.tar.gz 5258384 SHA256 
932b4ee4def2b434f85435d9e3e19ca8ba99ce9a065a61524b429a9d5e9b2e9c SHA512 
50abf6dc94cafd06e7fd20770808bdc675c88daa369e4f752bd584ab17f72a57357c1ca1eca3c83e6745b5a3c9c73c99dce70adaa904d73f6df4c75bc7138351
 WHIRLPOOL 
179e1b5ad38c50a4c8110024aa7b33c53634c39690917e3bf5c2099548430beef96132ae9f9588ff0cedd6e08bb216a8d36835baaaa04e506fb3fbaed37d31c9
 DIST openssl-c_rehash.sh.1.7 4167 SHA256 
4999ee79892f52bd6a4a7baba9fac62262454d573bbffd72685d3aae9e48cee0 SHA512 
55e8c2e827750a4f375cb83c86bfe2d166c01ffa5d7e9b16657b72b38b747c8985dd2c98f854c911dfbbee2ff3e92aff39fdf089d979b2e3534b7685ee8b80da
 WHIRLPOOL 
c88f06a3b8651f76b6289552cccceb64e13f6697c5f0ce3ff114c781ce1c218912b8ee308af9d087cd76a9600fdacda1953175bff07d7d3eb21b0c0b7f4f1ce1

diff --git a/dev-libs/openssl/files/openssl-1.0.1r-x32.patch 
b/dev-libs/openssl/files/openssl-1.0.1r-x32.patch
new file mode 100644
index 0000000..9e490fd
--- /dev/null
+++ b/dev-libs/openssl/files/openssl-1.0.1r-x32.patch
@@ -0,0 +1,66 @@
+--- openssl-1.0.1r/Configure
++++ openssl-1.0.1r/Configure
+@@ -368,6 +368,7 @@
+ "linux-ia64-icc","icc:-DL_ENDIAN -O2 -Wall 
-no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 
DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "linux-x86_64",       "gcc:-m64 -DL_ENDIAN -O3 
-Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT 
DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+ "linux-x86_64-clang","clang: -m64 -DL_ENDIAN -O3 -Wall 
-Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT 
DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
++"linux-x32",   "gcc:-DL_ENDIAN -DTERMIO -O2 -pipe -g 
-feliminate-unused-debug-types -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT 
RC4_CHUNK DES_INT 
DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "linux64-s390x",      "gcc:-m64 -DB_ENDIAN -O3 
-Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT 
DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
+ #### So called "highgprs" target for z/Architecture CPUs
+ # "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
+--- openssl-1.0.1r/crypto/bn/asm/x86_64-gcc.c
++++ openssl-1.0.1r/crypto/bn/asm/x86_64-gcc.c
+@@ -55,7 +55,7 @@
+  *    machine.
+  */
+ 
+-# ifdef _WIN64
++# ifdef _WIN64 || !defined __LP64__
+ #  define BN_ULONG unsigned long long
+ # else
+ #  define BN_ULONG unsigned long
+@@ -211,9 +211,9 @@
+ 
+     asm volatile ("       subq    %2,%2           \n"
+                   ".p2align 4                     \n"
+-                  "1:     movq    (%4,%2,8),%0    \n"
+-                  "       adcq    (%5,%2,8),%0    \n"
+-                  "       movq    %0,(%3,%2,8)    \n"
++                  "1:     movq    (%q4,%2,8),%0    \n"
++                  "       adcq    (%q5,%2,8),%0    \n"
++                  "       movq    %0,(%q3,%2,8)    \n"
+                   "       leaq    1(%2),%2        \n"
+                   "       loop    1b              \n"
+                   "       sbbq    %0,%0           \n":"=&a" (ret), "+c"(n),
+@@ -235,9 +235,9 @@
+ 
+     asm volatile ("       subq    %2,%2           \n"
+                   ".p2align 4                     \n"
+-                  "1:     movq    (%4,%2,8),%0    \n"
+-                  "       sbbq    (%5,%2,8),%0    \n"
+-                  "       movq    %0,(%3,%2,8)    \n"
++                  "1:     movq    (%q4,%2,8),%0    \n"
++                  "       sbbq    (%q5,%2,8),%0    \n"
++                  "       movq    %0,(%q3,%2,8)    \n"
+                   "       leaq    1(%2),%2        \n"
+                   "       loop    1b              \n"
+                   "       sbbq    %0,%0           \n":"=&a" (ret), "+c"(n),
+--- openssl-1.0.1r/crypto/bn/bn.h
++++ openssl-1.0.1r/crypto/bn/bn.h
+@@ -174,6 +174,16 @@
+ # endif
+ 
+ /*
++ * Address type.
++ */
++#ifdef _WIN64
++#define BN_ADDR unsigned long long
++#else
++#define BN_ADDR unsigned long
++#endif
++
++
++/*
+  * assuming long is 64bit - this is the DEC Alpha unsigned long long is only
+  * 64 bits :-(, don't define BN_LLONG for the DEC Alpha
+  */

diff --git a/dev-libs/openssl/openssl-1.0.1r.ebuild 
b/dev-libs/openssl/openssl-1.0.1r.ebuild
new file mode 100644
index 0000000..234c6cc
--- /dev/null
+++ b/dev-libs/openssl/openssl-1.0.1r.ebuild
@@ -0,0 +1,256 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic toolchain-funcs multilib multilib-minimal
+
+REV="1.7"
+DESCRIPTION="full-strength general purpose cryptography library (including SSL 
and TLS)"
+HOMEPAGE="http://www.openssl.org/";
+SRC_URI="mirror://openssl/source/${P}.tar.gz
+       
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/${PN}/${PN}-c_rehash.sh?rev=${REV}
 -> ${PN}-c_rehash.sh.${REV}"
+
+LICENSE="openssl"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 
~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
+IUSE="bindist gmp kerberos rfc3779 cpu_flags_x86_sse2 static-libs test 
+tls-heartbeat vanilla zlib"
+RESTRICT="!bindist? ( bindist )"
+
+# The blocks are temporary just to make sure people upgrade to a
+# version that lack runtime version checking.  We'll drop them in
+# the future.
+RDEPEND="gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
+       zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
+       kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
+       abi_x86_32? (
+               !<=app-emulation/emul-linux-x86-baselibs-20140406-r3
+               !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+       )
+       !<net-misc/openssh-5.9_p1-r4
+       !<net-libs/neon-0.29.6-r1"
+DEPEND="${RDEPEND}
+       sys-apps/diffutils
+       >=dev-lang/perl-5
+       test? ( sys-devel/bc )"
+PDEPEND="app-misc/ca-certificates"
+
+MULTILIB_WRAPPED_HEADERS=(
+       usr/include/openssl/opensslconf.h
+)
+
+src_prepare() {
+       SSL_CNF_DIR="/etc/ssl"
+       sed \
+               -e "/^DIR=/s:=.*:=${EPREFIX}${SSL_CNF_DIR}:" \
+               -e "s:SSL_CMD=/usr:SSL_CMD=${EPREFIX}/usr:" \
+               "${DISTDIR}"/${PN}-c_rehash.sh.${REV} \
+               > "${WORKDIR}"/c_rehash || die #416717
+
+       # Make sure we only ever touch Makefile.org and avoid patching a file
+       # that gets blown away anyways by the Configure script in src_configure
+       rm -f Makefile
+
+       if ! use vanilla ; then
+               epatch "${FILESDIR}"/${PN}-1.0.0a-ldflags.patch #327421
+               epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
+               epatch "${FILESDIR}"/${PN}-1.0.0h-pkg-config.patch
+               epatch "${FILESDIR}"/${PN}-1.0.1p-parallel-build.patch
+               epatch "${FILESDIR}"/${PN}-1.0.1r-x32.patch
+               epatch "${FILESDIR}"/${PN}-1.0.1m-ipv6.patch
+               epatch 
"${FILESDIR}"/${PN}-1.0.1f-revert-alpha-perl-generation.patch #499086
+               epatch "${FILESDIR}"/${PN}-1.0.1p-default-source.patch #554338
+               epatch_user #332661
+       fi
+
+       # disable fips in the build
+       # make sure the man pages are suffixed #302165
+       # don't bother building man pages if they're disabled
+       sed -i \
+               -e '/DIRS/s: fips : :g' \
+               -e '/^MANSUFFIX/s:=.*:=ssl:' \
+               -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
+               -e $(has noman FEATURES \
+                       && echo '/^install:/s:install_docs::' \
+                       || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') 
\
+               Makefile.org \
+               || die
+       # show the actual commands in the log
+       sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
+
+       # since we're forcing $(CC) as makedep anyway, just fix
+       # the conditional as always-on
+       # helps clang (#417795), and versioned gcc (#499818)
+       sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
+
+       # quiet out unknown driver argument warnings since openssl
+       # doesn't have well-split CFLAGS and we're making it even worse
+       # and 'make depend' uses -Werror for added fun (#417795 again)
+       [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
+
+       # allow openssl to be cross-compiled
+       cp "${FILESDIR}"/gentoo.config-1.0.1 gentoo.config || die
+       chmod a+rx gentoo.config
+
+       append-flags -fno-strict-aliasing
+       append-flags $(test-flags-CC -Wa,--noexecstack)
+
+       sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
+       # The config script does stupid stuff to prompt the user.  Kill it.
+       sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
+       ./config --test-sanity || die "I AM NOT SANE"
+
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       unset APPS #197996
+       unset SCRIPTS #312551
+       unset CROSS_COMPILE #311473
+
+       tc-export CC AR RANLIB RC
+
+       # Clean out patent-or-otherwise-encumbered code
+       # Camellia: Royalty Free            
http://en.wikipedia.org/wiki/Camellia_(cipher)
+       # IDEA:     Expired                 
http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
+       # EC:       ????????? ??/??/2015    
http://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
+       # MDC2:     Expired                 http://en.wikipedia.org/wiki/MDC-2
+       # RC5:      5,724,428 03/03/2015    http://en.wikipedia.org/wiki/RC5
+
+       use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+       echoit() { echo "$@" ; "$@" ; }
+
+       local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo 
"Heimdal")
+
+       # See if our toolchain supports __uint128_t.  If so, it's 64bit
+       # friendly and can use the nicely optimized code paths. #460790
+       local ec_nistp_64_gcc_128
+       # Disable it for now though #469976
+       #if ! use bindist ; then
+       #       echo "__uint128_t i;" > "${T}"/128.c
+       #       if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; 
then
+       #               ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
+       #       fi
+       #fi
+
+       local sslout=$(./gentoo.config)
+       einfo "Use configuration ${sslout:-(openssl knows best)}"
+       local config="Configure"
+       [[ -z ${sslout} ]] && config="config"
+
+       echoit \
+       ./${config} \
+               ${sslout} \
+               $(use cpu_flags_x86_sse2 || echo "no-sse2") \
+               enable-camellia \
+               $(use_ssl !bindist ec) \
+               ${ec_nistp_64_gcc_128} \
+               enable-idea \
+               enable-mdc2 \
+               $(use_ssl !bindist rc5) \
+               enable-tlsext \
+               $(use_ssl gmp gmp -lgmp) \
+               $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
+               $(use_ssl rfc3779) \
+               $(use_ssl tls-heartbeat heartbeats) \
+               $(use_ssl zlib) \
+               --prefix="${EPREFIX}"/usr \
+               --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
+               --libdir=$(get_libdir) \
+               shared threads \
+               || die
+
+       # Clean out hardcoded flags that openssl uses
+       local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
+               -e 's:^CFLAG=::' \
+               -e 's:-fomit-frame-pointer ::g' \
+               -e 's:-O[0-9] ::g' \
+               -e 's:-march=[-a-z0-9]* ::g' \
+               -e 's:-mcpu=[-a-z0-9]* ::g' \
+               -e 's:-m[a-z0-9]* ::g' \
+       )
+       sed -i \
+               -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
+               -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
+               Makefile || die
+}
+
+multilib_src_compile() {
+       # depend is needed to use $confopts; it also doesn't matter
+       # that it's -j1 as the code itself serializes subdirs
+       emake -j1 depend
+       emake all
+       # rehash is needed to prep the certs/ dir; do this
+       # separately to avoid parallel build issues.
+       emake rehash
+}
+
+multilib_src_test() {
+       emake -j1 test
+}
+
+multilib_src_install() {
+       emake INSTALL_PREFIX="${D}" install
+}
+
+multilib_src_install_all() {
+       dobin "${WORKDIR}"/c_rehash #333117
+       dodoc CHANGES* FAQ NEWS README doc/*.txt doc/c-indentation.el
+       dohtml -r doc/*
+       use rfc3779 && dodoc engines/ccgost/README.gost
+
+       # This is crappy in that the static archives are still built even
+       # when USE=static-libs.  But this is due to a failing in the openssl
+       # build system: the static archives are built as PIC all the time.
+       # Only way around this would be to manually configure+compile openssl
+       # twice; once with shared lib support enabled and once without.
+       use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
+
+       # create the certs directory
+       dodir ${SSL_CNF_DIR}/certs
+       cp -RP certs/* "${ED}"${SSL_CNF_DIR}/certs/ || die
+       rm -r "${ED}"${SSL_CNF_DIR}/certs/{demo,expired}
+
+       # Namespace openssl programs to prevent conflicts with other man pages
+       cd "${ED}"/usr/share/man
+       local m d s
+       for m in $(find . -type f | xargs grep -L '#include') ; do
+               d=${m%/*} ; d=${d#./} ; m=${m##*/}
+               [[ ${m} == openssl.1* ]] && continue
+               [[ -n $(find -L ${d} -type l) ]] && die "erp, broken links 
already!"
+               mv ${d}/{,ssl-}${m}
+               # fix up references to renamed man pages
+               sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' 
${d}/ssl-${m}
+               ln -s ssl-${m} ${d}/openssl-${m}
+               # locate any symlinks that point to this man page ... we assume
+               # that any broken links are due to the above renaming
+               for s in $(find -L ${d} -type l) ; do
+                       s=${s##*/}
+                       rm -f ${d}/${s}
+                       ln -s ssl-${m} ${d}/ssl-${s}
+                       ln -s ssl-${s} ${d}/openssl-${s}
+               done
+       done
+       [[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
+
+       dodir /etc/sandbox.d #254521
+       echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
+
+       diropts -m0700
+       keepdir ${SSL_CNF_DIR}/private
+}
+
+pkg_preinst() {
+       has_version ${CATEGORY}/${PN}:0.9.8 && return 0
+       preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
+}
+
+pkg_postinst() {
+       ebegin "Running 'c_rehash ${EROOT%/}${SSL_CNF_DIR}/certs/' to rebuild 
hashes #333069"
+       c_rehash "${EROOT%/}${SSL_CNF_DIR}/certs" >/dev/null
+       eend $?
+
+       has_version ${CATEGORY}/${PN}:0.9.8 && return 0
+       preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
+}

diff --git a/dev-libs/openssl/openssl-1.0.2f.ebuild 
b/dev-libs/openssl/openssl-1.0.2f.ebuild
new file mode 100644
index 0000000..721dde4
--- /dev/null
+++ b/dev-libs/openssl/openssl-1.0.2f.ebuild
@@ -0,0 +1,265 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils flag-o-matic toolchain-funcs multilib multilib-minimal
+
+MY_P=${P/_/-}
+DESCRIPTION="full-strength general purpose cryptography library (including SSL 
and TLS)"
+HOMEPAGE="http://www.openssl.org/";
+SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
+
+LICENSE="openssl"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 
~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
+IUSE="+asm bindist gmp kerberos rfc3779 sctp cpu_flags_x86_sse2 static-libs 
test +tls-heartbeat vanilla zlib"
+RESTRICT="!bindist? ( bindist )"
+
+# The blocks are temporary just to make sure people upgrade to a
+# version that lack runtime version checking.  We'll drop them in
+# the future.
+RDEPEND=">=app-misc/c_rehash-1.7-r1
+       gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
+       zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
+       kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )
+       abi_x86_32? (
+               !<=app-emulation/emul-linux-x86-baselibs-20140508
+               !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
+       )
+       !<net-misc/openssh-5.9_p1-r4
+       !<net-libs/neon-0.29.6-r1"
+DEPEND="${RDEPEND}
+       >=dev-lang/perl-5
+       sctp? ( >=net-misc/lksctp-tools-1.0.12 )
+       test? (
+               sys-apps/diffutils
+               sys-devel/bc
+       )"
+PDEPEND="app-misc/ca-certificates"
+
+S="${WORKDIR}/${MY_P}"
+
+MULTILIB_WRAPPED_HEADERS=(
+       usr/include/openssl/opensslconf.h
+)
+
+src_prepare() {
+       # keep this in sync with app-misc/c_rehash
+       SSL_CNF_DIR="/etc/ssl"
+
+       # Make sure we only ever touch Makefile.org and avoid patching a file
+       # that gets blown away anyways by the Configure script in src_configure
+       rm -f Makefile
+
+       if ! use vanilla ; then
+               epatch "${FILESDIR}"/${PN}-1.0.0a-ldflags.patch #327421
+               epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
+               epatch "${FILESDIR}"/${PN}-1.0.2e-parallel-build.patch
+               epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-obj-headers.patch
+               epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-install-dirs.patch
+               epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-symlinking.patch 
#545028
+               epatch "${FILESDIR}"/${PN}-1.0.2-ipv6.patch
+               epatch "${FILESDIR}"/${PN}-1.0.2a-x32-asm.patch #542618
+               epatch "${FILESDIR}"/${PN}-1.0.1p-default-source.patch #554338
+
+               epatch_user #332661
+       fi
+
+       # disable fips in the build
+       # make sure the man pages are suffixed #302165
+       # don't bother building man pages if they're disabled
+       sed -i \
+               -e '/DIRS/s: fips : :g' \
+               -e '/^MANSUFFIX/s:=.*:=ssl:' \
+               -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
+               -e $(has noman FEATURES \
+                       && echo '/^install:/s:install_docs::' \
+                       || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') 
\
+               Makefile.org \
+               || die
+       # show the actual commands in the log
+       sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
+
+       # since we're forcing $(CC) as makedep anyway, just fix
+       # the conditional as always-on
+       # helps clang (#417795), and versioned gcc (#499818)
+       sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
+
+       # quiet out unknown driver argument warnings since openssl
+       # doesn't have well-split CFLAGS and we're making it even worse
+       # and 'make depend' uses -Werror for added fun (#417795 again)
+       [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
+
+       # allow openssl to be cross-compiled
+       cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
+       chmod a+rx gentoo.config
+
+       append-flags -fno-strict-aliasing
+       append-flags $(test-flags-CC -Wa,--noexecstack)
+       append-cppflags -DOPENSSL_NO_BUF_FREELISTS
+
+       sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
+       # The config script does stupid stuff to prompt the user.  Kill it.
+       sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
+       ./config --test-sanity || die "I AM NOT SANE"
+
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       unset APPS #197996
+       unset SCRIPTS #312551
+       unset CROSS_COMPILE #311473
+
+       tc-export CC AR RANLIB RC
+
+       # Clean out patent-or-otherwise-encumbered code
+       # Camellia: Royalty Free            
http://en.wikipedia.org/wiki/Camellia_(cipher)
+       # IDEA:     Expired                 
http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
+       # EC:       ????????? ??/??/2015    
http://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
+       # MDC2:     Expired                 http://en.wikipedia.org/wiki/MDC-2
+       # RC5:      Expired                 http://en.wikipedia.org/wiki/RC5
+
+       use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
+       echoit() { echo "$@" ; "$@" ; }
+
+       local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo 
"Heimdal")
+
+       # See if our toolchain supports __uint128_t.  If so, it's 64bit
+       # friendly and can use the nicely optimized code paths. #460790
+       local ec_nistp_64_gcc_128
+       # Disable it for now though #469976
+       #if ! use bindist ; then
+       #       echo "__uint128_t i;" > "${T}"/128.c
+       #       if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; 
then
+       #               ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
+       #       fi
+       #fi
+
+       local sslout=$(./gentoo.config)
+       einfo "Use configuration ${sslout:-(openssl knows best)}"
+       local config="Configure"
+       [[ -z ${sslout} ]] && config="config"
+
+       echoit \
+       ./${config} \
+               ${sslout} \
+               $(use cpu_flags_x86_sse2 || echo "no-sse2") \
+               enable-camellia \
+               $(use_ssl !bindist ec) \
+               ${ec_nistp_64_gcc_128} \
+               enable-idea \
+               enable-mdc2 \
+               enable-rc5 \
+               enable-tlsext \
+               $(use_ssl asm) \
+               $(use_ssl gmp gmp -lgmp) \
+               $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
+               $(use_ssl rfc3779) \
+               $(use_ssl sctp) \
+               $(use_ssl tls-heartbeat heartbeats) \
+               $(use_ssl zlib) \
+               --prefix="${EPREFIX}"/usr \
+               --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
+               --libdir=$(get_libdir) \
+               shared threads \
+               || die
+
+       # Clean out hardcoded flags that openssl uses
+       local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
+               -e 's:^CFLAG=::' \
+               -e 's:-fomit-frame-pointer ::g' \
+               -e 's:-O[0-9] ::g' \
+               -e 's:-march=[-a-z0-9]* ::g' \
+               -e 's:-mcpu=[-a-z0-9]* ::g' \
+               -e 's:-m[a-z0-9]* ::g' \
+       )
+       sed -i \
+               -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
+               -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
+               Makefile || die
+}
+
+multilib_src_compile() {
+       # depend is needed to use $confopts; it also doesn't matter
+       # that it's -j1 as the code itself serializes subdirs
+       emake -j1 depend
+       emake all
+       # rehash is needed to prep the certs/ dir; do this
+       # separately to avoid parallel build issues.
+       emake rehash
+}
+
+multilib_src_test() {
+       emake -j1 test
+}
+
+multilib_src_install() {
+       emake INSTALL_PREFIX="${D}" install
+}
+
+multilib_src_install_all() {
+       # openssl installs perl version of c_rehash by default, but
+       # we provide a shell version via app-misc/c_rehash
+       rm "${ED}"/usr/bin/c_rehash || die
+
+       dodoc CHANGES* FAQ NEWS README doc/*.txt doc/c-indentation.el
+       dohtml -r doc/*
+       use rfc3779 && dodoc engines/ccgost/README.gost
+
+       # This is crappy in that the static archives are still built even
+       # when USE=static-libs.  But this is due to a failing in the openssl
+       # build system: the static archives are built as PIC all the time.
+       # Only way around this would be to manually configure+compile openssl
+       # twice; once with shared lib support enabled and once without.
+       use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
+
+       # create the certs directory
+       dodir ${SSL_CNF_DIR}/certs
+       cp -RP certs/* "${ED}"${SSL_CNF_DIR}/certs/ || die
+       rm -r "${ED}"${SSL_CNF_DIR}/certs/{demo,expired}
+
+       # Namespace openssl programs to prevent conflicts with other man pages
+       cd "${ED}"/usr/share/man
+       local m d s
+       for m in $(find . -type f | xargs grep -L '#include') ; do
+               d=${m%/*} ; d=${d#./} ; m=${m##*/}
+               [[ ${m} == openssl.1* ]] && continue
+               [[ -n $(find -L ${d} -type l) ]] && die "erp, broken links 
already!"
+               mv ${d}/{,ssl-}${m}
+               # fix up references to renamed man pages
+               sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' 
${d}/ssl-${m}
+               ln -s ssl-${m} ${d}/openssl-${m}
+               # locate any symlinks that point to this man page ... we assume
+               # that any broken links are due to the above renaming
+               for s in $(find -L ${d} -type l) ; do
+                       s=${s##*/}
+                       rm -f ${d}/${s}
+                       ln -s ssl-${m} ${d}/ssl-${s}
+                       ln -s ssl-${s} ${d}/openssl-${s}
+               done
+       done
+       [[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
+
+       dodir /etc/sandbox.d #254521
+       echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
+
+       diropts -m0700
+       keepdir ${SSL_CNF_DIR}/private
+}
+
+pkg_preinst() {
+       has_version ${CATEGORY}/${PN}:0.9.8 && return 0
+       preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
+}
+
+pkg_postinst() {
+       ebegin "Running 'c_rehash ${EROOT%/}${SSL_CNF_DIR}/certs/' to rebuild 
hashes #333069"
+       c_rehash "${EROOT%/}${SSL_CNF_DIR}/certs" >/dev/null
+       eend $?
+
+       has_version ${CATEGORY}/${PN}:0.9.8 && return 0
+       preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
+}

Reply via email to