summaryrefslogtreecommitdiff
blob: de25d5ac9733c63484bf36368839866408a0135c (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
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/horde.eclass,v 1.5 2004/04/07 22:41:05 vapier Exp $
#
# Help manage the horde project http://www.horde.org/
#
# Author: Mike Frysinger <vapier@gentoo.org>
# CVS additions by Chris Aniszczyk <zx@mea-culpa.net>
#
# This eclass provides generic functions to make the writing of horde
# ebuilds fairly trivial since there are many horde applications and 
# they all share the same basic install process.

# EHORDE_CVS
# This variable is just simply used to track whether the user is 
# using a cvs version of a horde ebulid.

inherit webapp-apache
[ "${PN}" != "${PN/-cvs}" ] && inherit cvs

ECLASS=horde
INHERITED="$INHERITED $ECLASS"

EXPORT_FUNCTIONS pkg_setup src_unpack src_install pkg_postinst

[ -z "${HORDE_PN}" ] && HORDE_PN="${PN/horde-}"

if [ "${PN}" != "${PN/-cvs}" ] ; then
	ECVS_SERVER="anoncvs.horde.org:/repository"
	ECVS_MODULE="${HORDE_PN}"
	ECVS_TOP_DIR="${DISTDIR}/cvs-src/${PN}"
	ECVS_USER="cvsread"
	ECVS_PASS="horde"

	HORDE_PN="${HORDE_PN/-cvs}"

	EHORDE_CVS="true"
	SRC_URI=""
	S=${WORKDIR}/${ECVS_MODULES}
else
	EHORDE_CVS="false"
	SRC_URI="http://ftp.horde.org/pub/${HORDE_PN}/${HORDE_PN}-${PV}.tar.gz"
	S=${WORKDIR}/${HORDE_PN}-${PV}
fi
HOMEPAGE="http://www.horde.org/${HORDE_PN}"

LICENSE="LGPL-2"
SLOT="0"

horde_pkg_setup() {
	webapp-detect || NO_WEBSERVER=1
	webapp-pkg_setup "${NO_WEBSERVER}"

	if [ ! -z "${HORDE_PHP_FEATURES}" ] ; then
		local phpver="`best_version mod_php`"
		local phpuse=" $(<${ROOT}/var/db/pkg/${phpver}/USE) "
		local found=0
		local myu=
		for myu in ${HORDE_PHP_FEATURES} ; do
			[ "${phpuse/ ${myu} }" != "${phpuse}" ] && found=1
		done
		if [ ${found} -eq 0 ] ; then
			eerror "You MUST re-emerge ${phpver} with at least one of"
			eerror "the following options in your USE:"
			eerror " ${HORDE_PHP_FEATURES}"
			die "current mod_php install cannot support ${HORDE_PN}"
		fi
	fi
}

horde_src_unpack() {
	if [ "${EHORDE_CVS}" == "true" ] ; then
		cvs_src_unpack
	else
		unpack ${A}
	fi
}

horde_src_install() {
	webapp-mkdirs

	local DocumentRoot=${HTTPD_ROOT}
	local destdir=${DocumentRoot}/horde
	[ "${HORDE_PN}" != "horde" ] && destdir=${destdir}/${HORDE_PN}

	dodoc README docs/*
	rm -rf COPYING LICENSE README docs

	dodir ${destdir}

	# Work-around when dealing with CVS sources
	[ "${EHORDE_CVS}" == "true" ] && cd ${HORDE_PN}

	cp -r . ${D}/${destdir}/
	cd ${D}/${destdir}

	# protecting files
	chown -R ${HTTPD_USER}:${HTTPD_GROUP} ${D}/${destdir}
	find ${D}/${destdir} -type f -exec chmod 0640 '{}' \;
	find ${D}/${destdir} -type d -exec chmod 0750 '{}' \;
}

horde_pkg_postinst() {
	if [ -e ${ROOT}/usr/share/doc/${PF}/INSTALL.gz ] ; then
		einfo "Please read /usr/share/doc/${PF}/INSTALL.gz"
	fi
	einfo "Before this package will work, you have to setup"
	einfo "the configuration files.  Please review the"
	einfo "config/ subdirectory of ${HORDE_PN} in the webroot."
	if [ "${HORDE_PN}" != "horde" ] ; then
		ewarn
		ewarn "Make sure ${HORDE_PN} is accounted for in horde's root"
		ewarn "    config/registry.php"
	fi
	if [ "${EHORDE_CVS}" == "true" ] ; then
		ewarn
		ewarn "Use these CVS versions at your own risk."
		ewarn "They tend to break things when working with" 
		ewarn "the non CVS versions of horde."
	fi
}