blob: 4c934b6b0211bad44247609a3f237324728ee12f (
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/c-client-2007f-r4.ebuild,v 1.7 2012/12/16 16:20:48 ago Exp $
EAPI=4
inherit flag-o-matic eutils libtool toolchain-funcs multilib
MY_PN=imap
MY_P="${MY_PN}-${PV}"
S=${WORKDIR}/${MY_P}
CHAPPA_PL=115
DESCRIPTION="UW IMAP c-client library"
HOMEPAGE="http://www.washington.edu/imap/"
SRC_URI="ftp://ftp.cac.washington.edu/imap/${MY_P}.tar.Z
chappa? ( mirror://gentoo/${P}-chappa-${CHAPPA_PL}-all.patch.gz )"
LICENSE="as-is"
SLOT="0"
KEYWORDS="~alpha amd64 arm hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd"
IUSE="doc +ipv6 kerberos kernel_linux kernel_FreeBSD pam ssl static-libs topal chappa"
RDEPEND="ssl? ( dev-libs/openssl )
!net-mail/uw-imap
kerberos? ( app-crypt/mit-krb5 )"
DEPEND="${RDEPEND}
kernel_linux? ( pam? ( >=sys-libs/pam-0.72 ) )"
src_prepare() {
# Tarball packed with bad file perms
chmod -R u+rwX,go-w .
# lots of things need -fPIC, including various platforms, and this library
# generally should be built with it anyway.
append-flags -fPIC
# Modifications so we can build it optimally and correctly
sed \
-e "s:BASECFLAGS=\".*\":BASECFLAGS=:g" \
-e 's:SSLDIR=/usr/local/ssl:SSLDIR=/usr:g' \
-e 's:SSLCERTS=$(SSLDIR)/certs:SSLCERTS=/etc/ssl/certs:g' \
-i src/osdep/unix/Makefile || die "Makefile sed fixing failed"
# Make the build system more multilib aware
sed \
-e "s:^SSLLIB=\$(SSLDIR)/lib:SSLLIB=\$(SSLDIR)/$(get_libdir):" \
-e "s:^AFSLIB=\$(AFSDIR)/lib:AFSLIB=\$(AFSDIR)/$(get_libdir):" \
-i src/osdep/unix/Makefile || die "Makefile sed fixing failed"
# Targets should use the Gentoo (ie linux) fs
sed -e '/^bsf:/,/^$/ s:ACTIVEFILE=.*:ACTIVEFILE=/var/lib/news/active:g' \
-i src/osdep/unix/Makefile || die "Makefile sex fixing failed for FreeBSD"
# Apply a patch to only build the stuff we need for c-client
epatch "${FILESDIR}"/${PN}-2006k_GENTOO_Makefile.patch
# Apply patch to add the compilation of a .so for PHP
# This was previously conditional, but is more widely useful.
epatch "${FILESDIR}"/${PN}-2006k_GENTOO_amd64-so-fix.patch
# Remove the pesky checks about SSL stuff
sed -e '/read.*exit/d' -i Makefile || die
# Respect LDFLAGS
epatch "${FILESDIR}"/${PN}-2007f-ldflags.patch
sed -e "s/CC=cc/CC=$(tc-getCC)/" \
-e "s/ARRC=ar/ARRC=$(tc-getAR)/" \
-e "s/RANLIB=ranlib/RANLIB=$(tc-getRANLIB)/" \
-i src/osdep/unix/Makefile || die "Respecting build flags"
use topal && epatch "${FILESDIR}/${P}-topal.patch"
use chappa && epatch "${DISTDIR}/${P}-chappa-${CHAPPA_PL}-all.patch.gz"
elibtoolize
}
src_compile() {
local mymake ipver ssltype target passwdtype
ipver='IP=4'
use ipv6 && ipver="IP=6" && touch ip6
use ssl && ssltype="unix" || ssltype="none"
if use kernel_linux ; then
use pam && target=lnp passwdtype=pam || target=lnx passwdtype=std
elif use kernel_FreeBSD ; then
target=bsf passwdtype=pam
fi
use kerberos \
&& mymake="EXTRAAUTHENTICATORS=gss" \
&& EXTRALIBS="-lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" \
# no parallel builds supported!
emake -j1 SSLTYPE=${ssltype} $target \
PASSWDTYPE=${passwdtype} ${ipver} ${mymake} \
EXTRACFLAGS="${CFLAGS}" \
EXTRALDFLAGS="${LDFLAGS}" \
EXTRALIBS="${EXTRALIBS}" \
GSSDIR=/usr
}
src_install() {
if use static-libs; then
# Library binary
dolib.a c-client/c-client.a
dosym c-client.a /usr/$(get_libdir)/libc-client.a
fi
# Now the shared library
dolib.so c-client/libc-client.so.1.0.0
dosym libc-client.so.1.0.0 /usr/$(get_libdir)/libc-client.so
dosym libc-client.so.1.0.0 /usr/$(get_libdir)/libc-client.so.1
# Headers
insinto /usr/include/imap
doins src/osdep/unix/*.h
doins src/c-client/*.h
doins c-client/linkage.h
doins c-client/linkage.c
doins c-client/osdep.h
if use ssl; then
echo " ssl_onceonlyinit ();" >> "${D}"/usr/include/imap/linkage.c || die
fi
# Docs
dodoc README docs/*.txt docs/BUILD docs/CONFIG docs/RELNOTES docs/SSLBUILD
if use doc; then
docinto rfc
dodoc docs/rfc/*.txt
docinto draft
dodoc docs/draft/*
fi
}
|