summaryrefslogtreecommitdiff
blob: eed85f4c5cb54ed8537e3e2f3af9ed5da17f7079 (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
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils webapp depend.php depend.apache

MY_PN="${PN}mail"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="A browser-based multilingual IMAP client using AJAX"
HOMEPAGE="http://www.roundcube.net"
SRC_URI="mirror://sourceforge/${MY_PN}/${MY_P}.tar.gz"

# roundcube is GPL-licensed, the rest of the licenses here are
# for bundled PEAR components, googiespell and utf8.class.php
LICENSE="GPL-2 BSD PHP-2.02 PHP-3 MIT public-domain"
KEYWORDS="~amd64 ~x86"
IUSE="ldap mysql postgres sqlite ssl spell"

RDEPEND="dev-php/PEAR-PEAR"
need_httpd_cgi
need_php_httpd

S="${WORKDIR}/${MY_P}"

pkg_setup() {
	local flags="crypt iconv imap pcre session unicode"
	use ldap && flags="${flags} ldap"
	use ssl && flags="${flags} ssl"
	use spell && flags="${flags} curl ssl"

	# check for required PHP features
	if ! use mysql && ! use postgres && ! use sqlite ; then
		local dbflags="mysql mysqli postgres sqlite"
		if ! PHPCHECKNODIE="yes" require_php_with_use ${flags} || \
			! PHPCHECKNODIE="yes" require_php_with_any_use ${dbflags} ; then
				die "Re-install ${PHP_PKG} with ${flags} and at least one of ${dbflags} in USE."
		fi
	else
		for db in postgres sqlite ; do
			use ${db} && flags="${flags} ${db}"
		done
		if ! PHPCHECKNODIE="yes" require_php_with_use ${flags} || \
			( use mysql && ! PHPCHECKNODIE="yes" require_php_with_any_use mysql mysqli ) ; then
				local diemsg="Re-install ${PHP_PKG} with ${flags}"
				use mysql && diemsg="${diemsg} and at least one of mysql mysqli"
				die "${diemsg} in USE"
		fi
	fi

	# add some warnings about optional functionality
	if ! PHPCHECKNODIE="yes" require_php_with_any_use gd gd-external ; then
		ewarn "IMAP quota display will not work correctly without GD support in PHP."
		ewarn "Recompile PHP with either gd or gd-external in USE if you want this feature."
		ewarn
	fi
	use ldap || ewarn "PHP with USE=\"ldap\" is required for using LDAP addressbooks."
	use ssl || ewarn "PHP with USE=\"ssl\" is required for IMAPS/STMPS functionality."
	use spell || ewarn "PHP with USE=\"curl ssl\" required for spellchecker functionality."

	webapp_pkg_setup
}

src_unpack() {
	unpack ${A}
	cd "${S}"
	epatch "${FILESDIR}"/${P}-no-sockets-check.patch
	mv config/db.inc.php{.dist,}
	mv config/main.inc.php{.dist,}
}

src_install () {
	webapp_src_preinst
	dodoc CHANGELOG INSTALL README UPGRADING

	cp -R [[:lower:]]* SQL "${D}/${MY_HTDOCSDIR}"

	webapp_serverowned "${MY_HTDOCSDIR}"/logs
	webapp_serverowned "${MY_HTDOCSDIR}"/temp

	webapp_configfile "${MY_HTDOCSDIR}"/config/{db,main}.inc.php
	webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt
	webapp_postupgrade_txt en UPGRADING
	webapp_src_install
}