blob: c281151c7b7f5fbd22849efc4af9b14dff23c460 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-0.9.6m.ebuild,v 1.5 2004/07/02 04:53:33 eradicator Exp $
inherit eutils
DESCRIPTION="Toolkit for SSL v2/v3 and TLS v1"
HOMEPAGE="http://www.openssl.org/"
SRC_URI="mirror://openssl/source/${P}.tar.gz"
LICENSE="as-is"
SLOT="0"
KEYWORDS="x86 ppc alpha sparc mips hppa -amd64"
IUSE=""
RDEPEND="virtual/libc"
DEPEND="${RDEPEND}
>=dev-lang/perl-5"
set_ssh_target() {
if [ "${PROFILE_ARCH}" == "sparc64" ] ; then
SSH_TARGET="linux-sparcv8"
fi
if [ "${ARCH}" == "hppa" ] ; then
SSH_TARGET="linux-parisc"
fi
case $CHOST in
alphaev56*|alphaev6*) SSH_TARGET="linux-alpha+bwx-${CC:-gcc}" ;;
alpha*) SSH_TARGET="linux-alpha-${CC:-gcc}" ;;
esac
}
src_unpack() {
unpack ${A} ; cd ${S}
epatch ${FILESDIR}/${P}-gentoo.diff
if [ "${ARCH}" = "mips" ]
then
cd ${S}
epatch ${FILESDIR}/openssl-0.9.6-mips.diff
fi
if [ "${ARCH}" = "arm" ]; then
# patch linker to add -ldl or things linking aginst libcrypto fail
sed -e \
's!^"linux-elf-arm"\(.*\)::BN\(.*\)!"linux-elf-arm"\1:-ldl:BN\2!' \
Configure > Configure.orig
elif [ "${ARCH}" = "hppa" ]; then
sed -e \
's!^"linux-parisc"\(.*\)::BN\(.*\)::!"linux-parisc"\1:-ldl:BN\2::::::::::dlfcn:linux-shared:-fPIC::.so.\\$(SHLIB_MAJOR).\\$(SHLIB_MINOR)!' \
Configure > Configure.orig
else
cp Configure Configure.orig
fi
sed -e "s/-O3/$CFLAGS/" -e "s/-m486//" Configure.orig > Configure
}
src_compile() {
set_ssh_target
if [ ${SSH_TARGET} ]; then
einfo "Forcing ${SSH_TARGET} compile"
./Configure ${SSH_TARGET} --prefix=/usr \
--openssldir=/etc/ssl shared threads || die
else
./config --prefix=/usr --openssldir=/etc/ssl shared threads || die
fi
# i think parallel make has problems
make all || die
}
src_install() {
make INSTALL_PREFIX=${D} MANDIR=/usr/share/man install || die
dodoc CHANGES* FAQ LICENSE NEWS README
dodoc doc/*.txt
dohtml doc/*
insinto /usr/share/emacs/site-lisp
doins doc/c-indentation.el
# The man pages rand.3 and passwd.1 conflict with other packages
# Rename them to ssl-* and also make a symlink from openssl-* to ssl-*
cd ${D}/usr/share/man/man1
mv passwd.1 ssl-passwd.1
ln -sf ssl-passwd.1 openssl-passwd.1
cd ${D}/usr/share/man/man3
mv rand.3 ssl-rand.3
ln -sf ssl-rand.3 openssl-rand.3
# 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
dodir /etc/ssl/certs
fperms a+x /usr/lib/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
}
|