summaryrefslogtreecommitdiff
blob: a0284379eb85326bb457f1aea33ee77918f8b325 (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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-1.8.3-r5.ebuild,v 1.4 2007/06/14 20:11:56 dang Exp $

WANT_AUTOMAKE="1.9"
WANT_AUTOCONF="latest"
inherit db-use eutils flag-o-matic gnome2 autotools

DESCRIPTION="Evolution groupware backend"
HOMEPAGE="http://www.gnome.org/projects/evolution/"

LICENSE="LGPL-2 Sleepycat"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ppc ~ppc64 sparc ~x86 ~x86-fbsd"
IUSE="doc ipv6 kerberos keyring krb4 ldap nntp ssl"

RDEPEND=">=dev-libs/glib-2.4
	>=gnome-base/libbonobo-2.4.2
	>=gnome-base/orbit-2.9.8
	>=gnome-base/libgnomeui-2
	>=gnome-base/gnome-vfs-2
	>=gnome-base/libgnome-2
	>=gnome-base/gnome-common-2
	keyring? ( gnome-base/gnome-keyring )
	>=dev-libs/libxml2-2
	>=gnome-base/gconf-2
	>=x11-libs/gtk+-2
	>=gnome-base/libglade-2
	>=net-libs/libsoup-2.2.90
	sys-libs/zlib
	=sys-libs/db-4*
	ldap? ( >=net-nds/openldap-2.0 )
	ssl? (
		>=dev-libs/nspr-4.4
		>=dev-libs/nss-3.9 )
	kerberos? ( virtual/krb5 )
	krb4? ( virtual/krb5 )"

DEPEND="${RDEPEND}
	>=dev-util/pkgconfig-0.9
	>=dev-util/intltool-0.35
	doc? ( >=dev-util/gtk-doc-1.4 )"

MAKEOPTS="${MAKEOPTS} -j1"
DOCS="ChangeLog MAINTAINERS NEWS TODO"

RESTRICT="confcache"

pkg_setup() {
	G2CONF="$(use_with ldap openldap)	\
		$(use_with kerberos krb5 /usr)	\
		$(use_enable ssl nss)		\
		$(use_enable ssl smime)		\
		$(use_enable ipv6)		\
		$(use_enable nntp)		\
		$(use_enable keyring gnome-keyring)		\
		--with-libdb=/usr/$(get_libdir)"

	if use krb4 && ! built_with_use virtual/krb5 krb4; then
		ewarn
		ewarn "In order to add kerberos 4 support, you have to emerge"
		ewarn "virtual/krb5 with the 'krb4' USE flag enabled as well."
		ewarn
		ewarn "Skipping for now."
		ewarn
		G2CONF="${G2CONF} --without-krb4"
	else
		G2CONF="${G2CONF} $(use_with krb4 krb4 /usr)"
	fi
}

src_unpack() {
	gnome2_src_unpack

	epatch "${FILESDIR}"/${PN}-1.2.0-gentoo_etc_services.patch

	# Fix broken libdb build
	epatch "${FILESDIR}"/${PN}-1.7.3-libdb.patch

	# Resolve symbols at execution time for setgid binaries
	epatch "${FILESDIR}"/${PN}-no_lazy_bindings.patch

	# exchange-storage --as-needed fixes
	epatch "${FILESDIR}"/${PN}-1.7.3-exchange-storage.patch
	epatch "${FILESDIR}"/${PN}-1.7.4-move-subdirs.patch

	# Rewind in camel-disco-diary to fix a crash
	epatch "${FILESDIR}"/${PN}-1.8.0-camel-rewind.patch

	# Fix non-english contact insertion.  Upstream bug:
	# http://bugzilla.gnome.org/show_bug.cgi?id=405531
	epatch "${FILESDIR}"/${P}-category.patch

	# Fix DST changes; bug #172835
	epatch "${FILESDIR}"/${P}-dst.patch.gz

	# Fix vulnerability in APOP authentification; bug #174210
	epatch "${FILESDIR}"/${PN}-APOP-auth-fix.patch

	# Fix vulnerability in IMAP; bug #182011
	epatch "${FILESDIR}"/${PN}-1.10.1-imap-overflow.patch

#-------------Upstream GNOME look here -----------------#

	# fix for dep ordering so we can add libedataserverui to libexchange-storage
	# we need to do this or: undefined reference to `e_passwords_get_password'
	# are the kinds of errors you will get.

	# move the groupwise backend and provider for addressbook, camel, and
	# calendar to its own folder called server.deps.
	mkdir server.deps
	mv addressbook/backends/groupwise server.deps/addressbook
	mv camel/providers/groupwise server.deps/camel
	mv calendar/backends/groupwise server.deps/calendar

	# now fix the autotools foo for the new directory and the removed ones
	echo "SUBDIRS = addressbook camel calendar" > server.deps/Makefile.am

	# remove groupwise folder from Makefile's since they are in a diff location
	sed -i -e 's: groupwise::' addressbook/backends/Makefile.am camel/providers/Makefile.am calendar/backends/Makefile.am

	# fix configure.in location of the Makefile's
	sed -i -e 's:addressbook/backends/groupwise:server.deps/addressbook:' configure.in
	sed -i -e 's:camel/providers/groupwise:server.deps/camel:' configure.in
	# tack on the server.deps Makefile on our last edit
	sed -i -e 's:calendar/backends/groupwise:server.deps/calendar/Makefile\nserver.deps:' configure.in

	# fix file includes
	sed -i -e 's:<backends/groupwise/e-book-backend-groupwise.h>:"server.deps/addressbook/e-book-backend-groupwise.h":' addressbook/libedata-book/e-data-book-factory.c

	# Fix db version for FreeBSD users where -ldb is always db-1
	sed -i -e "s:-ldb:-l$(db_libname):" configure.in

#---------------Upstream GNOME stop here---------------
	eautoreconf
}

src_compile() {
	# Use NSS/NSPR only if 'ssl' is enabled.
	if use ssl ; then
		NSS_LIB=/usr/$(get_libdir)/nss
		NSS_INC=/usr/include/nss
		NSPR_LIB=/usr/$(get_libdir)/nspr
		NSPR_INC=/usr/include/nspr

		G2CONF="${G2CONF} \
			--with-nspr-includes=${NSPR_INC} \
			--with-nspr-libs=${NSPR_LIB}     \
			--with-nss-includes=${NSS_INC}   \
			--with-nss-libs=${NSS_LIB}"
	else
		G2CONF="${G2CONF} --without-nspr-libs --without-nspr-includes \
			--without-nss-libs --without-nss-includes"
	fi

	# /usr/include/db.h is always db-1 on FreeBSD
	# so include the right dir in CPPFLAGS
	append-cppflags "-I$(db_includedir)"

	cd "${S}"
	gnome2_src_compile
}