Version bumpage.
authorMike Frysinger <vapier@gentoo.org>
Wed, 12 Oct 2005 05:20:02 +0000 (05:20 +0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 12 Oct 2005 05:20:02 +0000 (05:20 +0000)
Package-Manager: portage-2.0.53_rc4

dev-libs/openssl/ChangeLog
dev-libs/openssl/Manifest
dev-libs/openssl/files/digest-openssl-0.9.7h [new file with mode: 0644]
dev-libs/openssl/files/digest-openssl-0.9.8a [new file with mode: 0644]
dev-libs/openssl/files/openssl-0.9.7h-ABI-compat.patch [new file with mode: 0644]
dev-libs/openssl/files/openssl-0.9.8-hppa-fix-detection.patch [new file with mode: 0644]
dev-libs/openssl/openssl-0.9.7h.ebuild [new file with mode: 0644]
dev-libs/openssl/openssl-0.9.8-r1.ebuild
dev-libs/openssl/openssl-0.9.8.ebuild
dev-libs/openssl/openssl-0.9.8a.ebuild [new file with mode: 0644]

index 58e69af06f6237db62cfb9586d2b5100eaa24e9c..36e48f299544197d7b5bd22bf348a3b6bfc5f050 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for dev-libs/openssl
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.137 2005/10/12 04:56:44 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.138 2005/10/12 05:20:02 vapier Exp $
+
+*openssl-0.9.8a (12 Oct 2005)
+*openssl-0.9.7h (12 Oct 2005)
+
+  12 Oct 2005; Mike Frysinger <vapier@gentoo.org>
+  +files/openssl-0.9.7h-ABI-compat.patch, +openssl-0.9.7h.ebuild,
+  +files/openssl-0.9.8-hppa-fix-detection.patch, +openssl-0.9.8a.ebuild:
+  Version bumpage.
 
 *openssl-0.9.8-r1 (12 Oct 2005)
 *openssl-0.9.7g-r1 (12 Oct 2005)
index a0877bc9d6c218ff64487fe6606e1be0fd0589f7..c0905da941a500b3cc62ef194e845b76b33171db 100644 (file)
@@ -1,15 +1,17 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 88757f488454def4365bb04c175d4337 ChangeLog 22129
+MD5 80fa5daf53b8c989cb3bc2413dd3c5d8 ChangeLog 22399
 MD5 744b358cd3b68b2ca6561c214c541fc0 files/addppc64support.diff 1327
 MD5 2e6ed24d513a8f2b1b6f03709ab5ba18 files/digest-openssl-0.9.6m 67
 MD5 acab4ad88a6c249a7cde0511a0961a2c files/digest-openssl-0.9.7e-r1 134
 MD5 acab4ad88a6c249a7cde0511a0961a2c files/digest-openssl-0.9.7e-r2 134
 MD5 1a7aabb860415c7be612863579d67b4d files/digest-openssl-0.9.7g 67
 MD5 1a7aabb860415c7be612863579d67b4d files/digest-openssl-0.9.7g-r1 67
+MD5 0b87439b95b8ecda7b7cd59c336625cd files/digest-openssl-0.9.7h 67
 MD5 592d5a5b643b835123af4a44caffc75e files/digest-openssl-0.9.8 66
 MD5 592d5a5b643b835123af4a44caffc75e files/digest-openssl-0.9.8-r1 66
+MD5 b8f72a6ed636d44f938a026b12abc7e2 files/digest-openssl-0.9.8a 67
 MD5 fd8c9447dfd4b64c49d44dfc52e4e221 files/gentoo.config-0.9.7g 3319
 MD5 b901850df9952252974316e78775673b files/openssl-0.9.6-mips.diff 1487
 MD5 cebd09d1819c07b0fab14ad90b0da884 files/openssl-0.9.6m-gentoo.diff 1591
@@ -32,7 +34,9 @@ MD5 90fac5947e771433132723442dc90ab0 files/openssl-0.9.7g-no-fips.patch 333
 MD5 be045f45d974ec215ec4986c6c7b6ffb files/openssl-0.9.7g-ppc64.patch 856
 MD5 cde67bc688a59d0178f1a6e1bb1db7cf files/openssl-0.9.7g-ptr-casting.patch 714
 MD5 b1b3eafc93c66f16be0730d45a659526 files/openssl-0.9.7g-superh.patch 1380
+MD5 2d07dd2e6c4f2c0df485ec5b007763c3 files/openssl-0.9.7h-ABI-compat.patch 1131
 MD5 5c3fdb5362f72b49a3d1b393514cc315 files/openssl-0.9.8-CAN-2005-2969.patch 4169
+MD5 f402ee8807a8a089d1b53d0e4101bcab files/openssl-0.9.8-hppa-fix-detection.patch 724
 MD5 8c5ab963e60bc0744408eebf48596981 files/openssl-0.9.8-make-engines-dir.patch 461
 MD5 e476b45b7b15df41a0e3f06c187201ee files/openssl-0.9.8-parallel-build.patch 649
 MD5 4a170a962292bdd019fe303ba981e3ab files/openssl-0.9.8-ppc64.patch 1463
@@ -42,12 +46,14 @@ MD5 ee44884b82b96b48d7e33effbbc88230 openssl-0.9.7e-r1.ebuild 8736
 MD5 8d0cc3c95e7be6bd21e6ea68e1e55971 openssl-0.9.7e-r2.ebuild 8797
 MD5 4a6626d9417b73b3cf097f2c7b088e2c openssl-0.9.7g-r1.ebuild 5534
 MD5 4ce0d905b32bf15f4fec2b83a07ade33 openssl-0.9.7g.ebuild 5470
-MD5 bf464f18c3673ce48bfca39f9ee3ff1f openssl-0.9.8-r1.ebuild 5390
-MD5 9027c6b394e767625c5c7a9ce52f617b openssl-0.9.8.ebuild 5334
+MD5 5529efcdf1ed36de4ad475f2c7e29ed8 openssl-0.9.7h.ebuild 5354
+MD5 46e37d3c5d41a3350216b1ebc83b3238 openssl-0.9.8-r1.ebuild 5389
+MD5 4a74cf1db0fb48d5569d3903fb4701fd openssl-0.9.8.ebuild 5333
+MD5 2232fa718d2c1d6e39af4a343a5b5abb openssl-0.9.8a.ebuild 5333
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFDTJgIgIKl8Uu19MoRAk6sAJwNCwdM0I8G3+Wl5zpewFcpjCgKdwCff3JZ
-25ao3Cnkv0Bl9p292nOYDHs=
-=u3oV
+iD8DBQFDTJ19gIKl8Uu19MoRAkD1AJ48tB2mPOXHa3G5jnWAvBb4+wQRVQCfaz9K
+mOtJo5PcOwTrwq6qzFXYvwo=
+=yqgT
 -----END PGP SIGNATURE-----
diff --git a/dev-libs/openssl/files/digest-openssl-0.9.7h b/dev-libs/openssl/files/digest-openssl-0.9.7h
new file mode 100644 (file)
index 0000000..a72fb85
--- /dev/null
@@ -0,0 +1 @@
+MD5 8dc90a113eb8925795071fbe52b2932c openssl-0.9.7h.tar.gz 3287019
diff --git a/dev-libs/openssl/files/digest-openssl-0.9.8a b/dev-libs/openssl/files/digest-openssl-0.9.8a
new file mode 100644 (file)
index 0000000..9ea1a44
--- /dev/null
@@ -0,0 +1 @@
+MD5 1d16c727c10185e4d694f87f5e424ee1 openssl-0.9.8a.tar.gz 3271435
diff --git a/dev-libs/openssl/files/openssl-0.9.7h-ABI-compat.patch b/dev-libs/openssl/files/openssl-0.9.7h-ABI-compat.patch
new file mode 100644 (file)
index 0000000..878ec60
--- /dev/null
@@ -0,0 +1,11 @@
+Fix from RedHat:
+* Thu Mar 31 2005 Tomas Mraz <tmraz@redhat.com> 0.9.7f-2
+- disable broken bignum assembly on x86_64
+
+--- Configure
++++ Configure
+@@ -413,3 +413,3 @@
+ "linux-ia64-ecc",   "ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o::::::asm/rc4-x86_64.o:::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
++"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o:::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+ "NetBSD-sparc",       "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
diff --git a/dev-libs/openssl/files/openssl-0.9.8-hppa-fix-detection.patch b/dev-libs/openssl/files/openssl-0.9.8-hppa-fix-detection.patch
new file mode 100644 (file)
index 0000000..5ec141f
--- /dev/null
@@ -0,0 +1,13 @@
+--- config.orig        2005-10-12 01:05:03.000000000 -0400
++++ config     2005-10-12 01:05:16.000000000 -0400
+@@ -564,8 +564,8 @@
+   parisc*-*-linux2)
+       # 64-bit builds under parisc64 linux are not supported and
+       # compiler is expected to generate 32-bit objects...
+-      CPUARCH=`awk '/cpu family/{print substr($5,1,3); exit(0);}' /proc/cpuinfo`
+-      CPUSCHEDULE=`awk '/^cpu.[       ]*: PA/{print substr($3,3); exit(0);}' /proc/cpuinfo`
++      CPUARCH=`awk '/cpu family/{print substr($5,1,3); exit(0);}' /proc/cpuinfo | head -n 1`
++      CPUSCHEDULE=`awk '/^cpu.[       ]*: PA/{print substr($3,3); exit(0);}' /proc/cpuinfo | head -n 1`
+ 
+       # ??TODO ??  Model transformations
+       # 0. CPU Architecture for the 1.1 processor has letter suffixes. We strip that off
diff --git a/dev-libs/openssl/openssl-0.9.7h.ebuild b/dev-libs/openssl/openssl-0.9.7h.ebuild
new file mode 100644 (file)
index 0000000..3aba6bd
--- /dev/null
@@ -0,0 +1,171 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.7h.ebuild,v 1.1 2005/10/12 05:20:02 vapier Exp $
+
+inherit eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Toolkit for SSL v2/v3 and TLS v1"
+HOMEPAGE="http://www.openssl.org/"
+SRC_URI="mirror://openssl/source/${P}.tar.gz"
+
+LICENSE="openssl"
+SLOT="0"
+# make sure your arch is ABI compat before adding KEYWORD back in
+KEYWORDS="-*"
+IUSE="emacs test bindist zlib"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+       sys-apps/diffutils
+       >=dev-lang/perl-5
+       test? ( sys-devel/bc )"
+
+src_unpack() {
+       unpack ${A}
+
+       cd "${S}"
+
+       epatch "${FILESDIR}"/${PN}-0.9.7g-ppc64.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7e-gentoo.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7-hppa-fix-detection.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7-alpha-default-gcc.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7g-no-fips.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7g-mem-clr-ptr-cast.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7h-ABI-compat.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7g-superh.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7g-amd64-fbsd.patch
+
+       # allow openssl to be cross-compiled
+       cp "${FILESDIR}"/gentoo.config-0.9.7g gentoo.config || die "cp cross-compile failed"
+       chmod a+rx gentoo.config
+
+       # Don't build manpages if we don't want them
+       has noman FEATURES && sed -i '/^install:/s:install_docs::' Makefile.org
+
+       case $(gcc-version) in
+               3.2)
+                       filter-flags -fprefetch-loop-arrays -freduce-all-givs -funroll-loop
+               ;;
+               3.4 | 3.3 )
+                       filter-flags -fprefetch-loop-arrays -freduce-all-givs -funroll-loops
+                       [[ ${ARCH} == "ppc" ||  ${ARCH} == "ppc64" ]] && append-flags -fno-strict-aliasing
+               ;;
+       esac
+       append-flags -Wa,--noexecstack
+
+       # replace CFLAGS
+       OLDIFS=$IFS
+       IFS=$'\n'
+       for a in $( grep -n -e "^\"linux-" Configure ); do
+               LINE=$( echo $a | awk -F: '{print $1}' )
+               CUR_CFLAGS=$( echo $a | awk -F: '{print $3}' )
+               NEW_CFLAGS=$(echo $CUR_CFLAGS | sed -r -e "s|-O[23]||" -e "s:-fomit-frame-pointer::" -e "s:-mcpu=[-a-z0-9]+::" -e "s:-m486::")
+               # ppc64's current toolchain sucks at optimization and will break this package
+               [[ $(tc-arch) != "ppc64" ]] && NEW_CFLAGS="${NEW_CFLAGS} ${CFLAGS}"
+
+               sed -i "${LINE}s:$CUR_CFLAGS:$NEW_CFLAGS:" Configure || die "sed failed"
+       done
+       IFS=$OLDIFS
+
+       if [ "$(get_libdir)" != "lib" ] ; then
+               # using a library directory other than lib requires some magic
+               sed -i \
+                       -e "s+\(\$(INSTALL_PREFIX)\$(INSTALLTOP)\)/lib+\1/$(get_libdir)+g" \
+                       -e "s+libdir=\$\${exec_prefix}/lib+libdir=\$\${exec_prefix}/$(get_libdir)+g" \
+                       Makefile.org \
+                       || die "sed failed"
+               ./config --test-sanity || die "sanity failed"
+       fi
+}
+
+src_compile() {
+       # Clean out patent-or-otherwise-encumbered code.
+       # MDC-2: 4,908,861 13/03/2007
+       # IDEA:  5,214,703 25/05/2010
+       # RC5:   5,724,428 03/03/2015
+       # EC:    ????????? ??/??/2015
+       local confopts=""
+       use bindist && confopts="no-idea no-rc5 no-mdc2 -no-ec"
+
+       use zlib && confopts="${confopts} zlib-dynamic"
+
+       local sslout=$(./gentoo.config)
+       einfo "Use configuration ${sslout}"
+
+       local config="Configure"
+       [[ -z ${sslout} ]] && config="config"
+       ./${config} \
+               ${sslout} \
+               ${confopts} \
+               --prefix=/usr \
+               --openssldir=/etc/ssl \
+               shared threads \
+               || die "Configure failed"
+
+       emake \
+               CC="$(tc-getCC)" MAKEDEPPROG="$(tc-getCC)" \
+               AR="$(tc-getAR) r" \
+               RANLIB="$(tc-getRANLIB)" \
+               all || die "make all failed"
+
+       # force until we get all the gentoo.config kinks worked out
+       tc-is-cross-compiler || src_test
+}
+
+src_test() {
+       # make sure sandbox doesnt die on *BSD
+       add_predict /dev/crypto
+
+       make test || die "make test failed"
+}
+
+src_install() {
+       make INSTALL_PREFIX="${D}" MANDIR=/usr/share/man install || die
+       dodoc CHANGES* FAQ NEWS README
+       dodoc doc/*.txt
+       dohtml doc/*
+
+       if use emacs ; then
+               insinto /usr/share/emacs/site-lisp
+               doins doc/c-indentation.el
+       fi
+
+       # create the certs directory.  Previous openssl builds
+       # would need to create /usr/lib/ssl/certs but this looks
+       # to be the more FHS compliant setup... -raker
+       insinto /etc/ssl/certs
+       doins certs/*.pem
+       LD_LIBRARY_PATH="${D}"/usr/$(get_libdir)/ \
+       OPENSSL="${D}"/usr/bin/openssl /usr/bin/perl tools/c_rehash "${D}"/etc/ssl/certs
+
+       # These man pages with other packages so rename them
+       cd "${D}"/usr/share/man
+       for m in man1/passwd.1 man3/rand.3 man3/err.3 ; do
+               d=${m%%/*} ; m=${m##*/}
+               mv ${d}/{,ssl-}${m}
+               ln -s ssl-${m} ${d}/openssl-${m}
+       done
+
+       fperms a+x /usr/$(get_libdir)/pkgconfig #34088
+}
+
+pkg_postinst() {
+       local BN_H="${ROOT}$(gcc-config -L)/include/openssl/bn.h"
+       # Breaks things one some boxen, bug #13795.  The problem is that
+       # if we have a 'gcc fixed' version in $(gcc-config -L) from 0.9.6,
+       # then breaks as it was defined as 'int BN_mod(...)' and in 0.9.7 it
+       # is a define with BN_div(...) - <azarah@gentoo.org> (24 Sep 2003)
+       if [ -f "${BN_H}" ] && [ -n "$(grep '^int[[:space:]]*BN_mod(' "${BN_H}")" ]
+       then
+               rm -f "${BN_H}"
+       fi
+
+       if [[ -e ${ROOT}/usr/lib/libcrypto.so.0.9.6 ]] ; then
+               ewarn "You must re-compile all packages that are linked against"
+               ewarn "OpenSSL 0.9.6 by using revdep-rebuild from gentoolkit:"
+               ewarn "# revdep-rebuild --soname libssl.so.0.9.6"
+               ewarn "# revdep-rebuild --soname libcrypto.so.0.9.6"
+               ewarn "After this, you can delete /usr/lib/libssl.so.0.9.6 and /usr/lib/libcrypto.so.0.9.6"
+               touch -c "${ROOT}"/usr/lib/lib{crypto,ssl}.so.0.9.6
+       fi
+}
index 0a8a2e49e98c06b907bfe9d0a4f6f61a010eba14..2d599e1e427d6d15e31865cd2ef927ae33e087ab 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.8-r1.ebuild,v 1.1 2005/10/12 04:56:44 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.8-r1.ebuild,v 1.2 2005/10/12 05:20:02 vapier Exp $
 
 inherit eutils flag-o-matic toolchain-funcs
 
@@ -26,7 +26,7 @@ src_unpack() {
 
        epatch "${FILESDIR}"/${PN}-0.9.8-ppc64.patch
        epatch "${FILESDIR}"/${PN}-0.9.7e-gentoo.patch
-       #epatch "${FILESDIR}"/${PN}-0.9.7-hppa-fix-detection.patch
+       epatch "${FILESDIR}"/${PN}-0.9.8-hppa-fix-detection.patch
        epatch "${FILESDIR}"/${PN}-0.9.7-alpha-default-gcc.patch
        epatch "${FILESDIR}"/${PN}-0.9.8-parallel-build.patch
        epatch "${FILESDIR}"/${PN}-0.9.8-make-engines-dir.patch
index c949ead40140610387745b2bd061e70854e99490..73a4472fb863c73dfda9fd8df0d8de9ff56020eb 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.8.ebuild,v 1.11 2005/10/06 02:54:00 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.8.ebuild,v 1.12 2005/10/12 05:20:02 vapier Exp $
 
 inherit eutils flag-o-matic toolchain-funcs
 
@@ -26,7 +26,7 @@ src_unpack() {
 
        epatch "${FILESDIR}"/${PN}-0.9.8-ppc64.patch
        epatch "${FILESDIR}"/${PN}-0.9.7e-gentoo.patch
-       #epatch "${FILESDIR}"/${PN}-0.9.7-hppa-fix-detection.patch
+       epatch "${FILESDIR}"/${PN}-0.9.8-hppa-fix-detection.patch
        epatch "${FILESDIR}"/${PN}-0.9.7-alpha-default-gcc.patch
        epatch "${FILESDIR}"/${PN}-0.9.8-parallel-build.patch
        epatch "${FILESDIR}"/${PN}-0.9.8-make-engines-dir.patch
diff --git a/dev-libs/openssl/openssl-0.9.8a.ebuild b/dev-libs/openssl/openssl-0.9.8a.ebuild
new file mode 100644 (file)
index 0000000..9f6d74d
--- /dev/null
@@ -0,0 +1,174 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.8a.ebuild,v 1.1 2005/10/12 05:20:02 vapier Exp $
+
+inherit eutils flag-o-matic toolchain-funcs
+
+DESCRIPTION="Toolkit for SSL v2/v3 and TLS v1"
+HOMEPAGE="http://www.openssl.org/"
+SRC_URI="mirror://openssl/source/${P}.tar.gz"
+
+LICENSE="openssl"
+SLOT="0"
+KEYWORDS="-*"
+IUSE="emacs test bindist zlib"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+       sys-apps/diffutils
+       >=dev-lang/perl-5
+       test? ( sys-devel/bc )"
+
+src_unpack() {
+       unpack ${A}
+
+       cd "${S}"
+
+       epatch "${FILESDIR}"/${PN}-0.9.8-ppc64.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7e-gentoo.patch
+       epatch "${FILESDIR}"/${PN}-0.9.8-hppa-fix-detection.patch
+       epatch "${FILESDIR}"/${PN}-0.9.7-alpha-default-gcc.patch
+       epatch "${FILESDIR}"/${PN}-0.9.8-parallel-build.patch
+       epatch "${FILESDIR}"/${PN}-0.9.8-make-engines-dir.patch
+
+       # allow openssl to be cross-compiled
+       cp "${FILESDIR}"/gentoo.config-0.9.7g gentoo.config || die "cp cross-compile failed"
+       chmod a+rx gentoo.config
+
+       # Don't build manpages if we don't want them
+       has noman FEATURES && sed -i '/^install:/s:install_docs::' Makefile.org
+
+       case $(gcc-version) in
+               3.2)
+                       filter-flags -fprefetch-loop-arrays -freduce-all-givs -funroll-loop
+               ;;
+               3.4 | 3.3 )
+                       filter-flags -fprefetch-loop-arrays -freduce-all-givs -funroll-loops
+                       [[ ${ARCH} == "ppc" ||  ${ARCH} == "ppc64" ]] && append-flags -fno-strict-aliasing
+               ;;
+       esac
+       append-flags -Wa,--noexecstack
+
+       # replace CFLAGS
+       OLDIFS=$IFS
+       IFS=$'\n'
+       for a in $( grep -n -e "^\"linux-" Configure ); do
+               LINE=$( echo $a | awk -F: '{print $1}' )
+               CUR_CFLAGS=$( echo $a | awk -F: '{print $3}' )
+               NEW_CFLAGS=$(echo $CUR_CFLAGS | sed -r -e "s|-O[23]||" -e "s:-fomit-frame-pointer::" -e "s:-mcpu=[-a-z0-9]+::" -e "s:-m486::")
+               # ppc64's current toolchain sucks at optimization and will break this package
+               [[ $(tc-arch) != "ppc64" ]] && NEW_CFLAGS="${NEW_CFLAGS} ${CFLAGS}"
+
+               sed -i "${LINE}s:$CUR_CFLAGS:$NEW_CFLAGS:" Configure || die "sed failed"
+       done
+       IFS=$OLDIFS
+
+       if [ "$(get_libdir)" != "lib" ] ; then
+               # using a library directory other than lib requires some magic
+               sed -i \
+                       -e "s+\(\$(INSTALL_PREFIX)\$(INSTALLTOP)\)/lib+\1/$(get_libdir)+g" \
+                       -e "s+libdir=\$\${exec_prefix}/lib+libdir=\$\${exec_prefix}/$(get_libdir)+g" \
+                       Makefile.org engines/Makefile \
+                       || die "sed failed"
+               ./config --test-sanity || die "sanity failed"
+       fi
+}
+
+src_compile() {
+       # Clean out patent-or-otherwise-encumbered code.
+       # MDC-2: 4,908,861 13/03/2007
+       # IDEA:  5,214,703 25/05/2010
+       # RC5:   5,724,428 03/03/2015
+       # EC:    ????????? ??/??/2015
+       local confopts=""
+       use bindist && confopts="no-idea no-rc5 no-mdc2 -no-ec"
+
+       use zlib && confopts="${confopts} zlib-dynamic"
+
+       local sslout=$(./gentoo.config)
+       einfo "Use configuration ${sslout}"
+
+       local config="Configure"
+       [[ -z ${sslout} ]] && config="config"
+       ./${config} \
+               ${sslout} \
+               ${confopts} \
+               --prefix=/usr \
+               --openssldir=/etc/ssl \
+               shared threads \
+               || die "Configure failed"
+
+       emake \
+               CC="$(tc-getCC)" MAKEDEPPROG="$(tc-getCC)" \
+               AR="$(tc-getAR) r" \
+               RANLIB="$(tc-getRANLIB)" \
+               all || die "make all failed"
+
+       # force until we get all the gentoo.config kinks worked out
+       tc-is-cross-compiler || src_test
+}
+
+src_test() {
+       # make sure sandbox doesnt die on *BSD
+       add_predict /dev/crypto
+
+       make test || die "make test failed"
+}
+
+src_install() {
+       make INSTALL_PREFIX="${D}" MANDIR=/usr/share/man install || die
+       dodoc CHANGES* FAQ NEWS README
+       dodoc doc/*.txt
+       dohtml doc/*
+
+       if use emacs ; then
+               insinto /usr/share/emacs/site-lisp
+               doins doc/c-indentation.el
+       fi
+
+       # create the certs directory.  Previous openssl builds
+       # would need to create /usr/lib/ssl/certs but this looks
+       # to be the more FHS compliant setup... -raker
+       insinto /etc/ssl/certs
+       doins certs/*.pem
+       LD_LIBRARY_PATH="${D}"/usr/$(get_libdir)/ \
+       OPENSSL="${D}"/usr/bin/openssl /usr/bin/perl tools/c_rehash \
+               "${D}"/etc/ssl/certs
+
+       # These man pages with other packages so rename them
+       cd "${D}"/usr/share/man
+       for m in man1/passwd.1 man3/rand.3 man3/err.3 ; do
+               d=${m%%/*} ; m=${m##*/}
+               mv -f ${d}/{,ssl-}${m}
+               ln -snf ssl-${m} ${d}/openssl-${m}
+       done
+
+       fperms a+x /usr/$(get_libdir)/pkgconfig #34088
+}
+
+pkg_preinst() {
+       if [[ -e ${ROOT}/usr/$(get_libdir)/libcrypto.so.0.9.7 ]] ; then
+               cp -pPR "${ROOT}"/usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.7 "${IMAGE}"/usr/$(get_libdir)/
+       fi
+}
+
+pkg_postinst() {
+       local BN_H="${ROOT}$(gcc-config -L)/include/openssl/bn.h"
+       # Breaks things one some boxen, bug #13795.  The problem is that
+       # if we have a 'gcc fixed' version in $(gcc-config -L) from 0.9.6,
+       # then breaks as it was defined as 'int BN_mod(...)' and in 0.9.7 it
+       # is a define with BN_div(...) - <azarah@gentoo.org> (24 Sep 2003)
+       if [ -f "${BN_H}" ] && [ -n "$(grep '^int[[:space:]]*BN_mod(' "${BN_H}")" ]
+       then
+               rm -f "${BN_H}"
+       fi
+
+       if [[ -e ${ROOT}/usr/$(get_libdir)/libcrypto.so.0.9.7 ]] ; then
+               ewarn "You must re-compile all packages that are linked against"
+               ewarn "OpenSSL 0.9.7 by using revdep-rebuild from gentoolkit:"
+               ewarn "# revdep-rebuild --soname libssl.so.0.9.7"
+               ewarn "# revdep-rebuild --soname libcrypto.so.0.9.7"
+               ewarn "After this, you can delete /usr/$(get_libdir)/libssl.so.0.9.7"
+               ewarn "and /usr/$(get_libdir)/libcrypto.so.0.9.7"
+       fi
+}