| 1 |
# Copyright 1999-2011 Gentoo Foundation
|
| 2 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
# $Header: /var/cvsroot/gentoo-x86/eclass/horde.eclass,v 1.39 2011/08/18 14:58:57 vapier Exp $
|
| 4 |
#
|
| 5 |
# Help manage the horde project http://www.horde.org/
|
| 6 |
#
|
| 7 |
# Author: Mike Frysinger <vapier@gentoo.org>
|
| 8 |
# CVS additions by Chris Aniszczyk <zx@mea-culpa.net>
|
| 9 |
# SNAP additions by Jonathan Polansky <jpolansky@lsit.ucsb.edu>
|
| 10 |
#
|
| 11 |
# This eclass provides generic functions to make the writing of horde
|
| 12 |
# ebuilds fairly trivial since there are many horde applications and
|
| 13 |
# they all share the same basic install process.
|
| 14 |
|
| 15 |
# EHORDE_SNAP
|
| 16 |
# This variable tracks whether the user is using a snapshot version
|
| 17 |
#
|
| 18 |
# EHORDE_SNAP_BRANCH
|
| 19 |
# You set this via the ebuild to whatever branch you wish to grab a
|
| 20 |
# snapshot of. Typically this is 'HEAD' or 'RELENG'.
|
| 21 |
#
|
| 22 |
# EHORDE_CVS
|
| 23 |
# This variable tracks whether the user is using a cvs version
|
| 24 |
|
| 25 |
inherit webapp eutils
|
| 26 |
[[ ${PN} != ${PN/-cvs} ]] && inherit cvs
|
| 27 |
|
| 28 |
IUSE="vhosts"
|
| 29 |
|
| 30 |
EXPORT_FUNCTIONS pkg_setup src_unpack src_install pkg_postinst
|
| 31 |
|
| 32 |
[[ -z ${HORDE_PN} ]] && HORDE_PN="${PN/horde-}"
|
| 33 |
[[ -z ${HORDE_MAJ} ]] && HORDE_MAJ=""
|
| 34 |
|
| 35 |
EHORDE_CVS="false"
|
| 36 |
EHORDE_SNAP="false"
|
| 37 |
if [[ ${PN} != ${PN/-cvs} ]] ; then
|
| 38 |
EHORDE_CVS="true"
|
| 39 |
HORDE_PN=${HORDE_PN/-cvs}
|
| 40 |
|
| 41 |
ECVS_SERVER="anoncvs.horde.org:/repository"
|
| 42 |
ECVS_MODULE="${HORDE_PN}"
|
| 43 |
ECVS_TOP_DIR="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/cvs-src/${PN}"
|
| 44 |
ECVS_USER="cvsread"
|
| 45 |
ECVS_PASS="horde"
|
| 46 |
|
| 47 |
SRC_URI=""
|
| 48 |
S=${WORKDIR}/${HORDE_PN}
|
| 49 |
|
| 50 |
elif [[ ${PN} != ${PN/-snap} ]] ; then
|
| 51 |
EHORDE_SNAP="true"
|
| 52 |
EHORDE_SNAP_BRANCH=${EHORDE_SNAP_BRANCH:-HEAD}
|
| 53 |
SNAP_PV=${PV:0:4}-${PV:4:2}-${PV:6:2}
|
| 54 |
|
| 55 |
HORDE_PN=${HORDE_PN/-snap}
|
| 56 |
|
| 57 |
SRC_URI="http://ftp.horde.org/pub/snaps/${SNAP_PV}/${HORDE_PN}-${EHORDE_SNAP_BRANCH}-${SNAP_PV}.tar.gz"
|
| 58 |
S=${WORKDIR}/${HORDE_PN}
|
| 59 |
|
| 60 |
else
|
| 61 |
SRC_URI="http://ftp.horde.org/pub/${HORDE_PN}/${HORDE_PN}${HORDE_MAJ}-${PV/_/-}.tar.gz"
|
| 62 |
S=${WORKDIR}/${HORDE_PN}${HORDE_MAJ}-${PV/_/-}
|
| 63 |
fi
|
| 64 |
HOMEPAGE="http://www.horde.org/${HORDE_PN}"
|
| 65 |
|
| 66 |
LICENSE="LGPL-2"
|
| 67 |
|
| 68 |
# INSTALL_DIR is used by webapp.eclass when USE=-vhosts
|
| 69 |
INSTALL_DIR="/horde"
|
| 70 |
[[ ${HORDE_PN} != "horde" && ${HORDE_PN} != "horde-groupware" && ${HORDE_PN} != "horde-webmail" ]] && INSTALL_DIR="${INSTALL_DIR}/${HORDE_PN}"
|
| 71 |
|
| 72 |
HORDE_APPLICATIONS="${HORDE_APPLICATIONS} ."
|
| 73 |
|
| 74 |
horde_pkg_setup() {
|
| 75 |
webapp_pkg_setup
|
| 76 |
|
| 77 |
if [[ ! -z ${HORDE_PHP_FEATURES} ]] ; then
|
| 78 |
local param
|
| 79 |
if [[ ${HORDE_PHP_FEATURES:0:2} = "-o" ]] ; then
|
| 80 |
param="-o"
|
| 81 |
HORDE_PHP_FEATURES=${HORDE_PHP_FEATURES:2}
|
| 82 |
fi
|
| 83 |
if ! built_with_use ${param} dev-lang/php ${HORDE_PHP_FEATURES} ; then
|
| 84 |
echo
|
| 85 |
if [[ ${param} == "-o" ]] ; then
|
| 86 |
eerror "You MUST re-emerge php with at least one of"
|
| 87 |
else
|
| 88 |
eerror "You MUST re-emerge php with all of"
|
| 89 |
fi
|
| 90 |
eerror "the following options in your USE:"
|
| 91 |
eerror " ${HORDE_PHP_FEATURES}"
|
| 92 |
die "current php install cannot support ${HORDE_PN}"
|
| 93 |
fi
|
| 94 |
fi
|
| 95 |
}
|
| 96 |
|
| 97 |
horde_src_unpack() {
|
| 98 |
if [[ ${EHORDE_CVS} = "true" ]] ; then
|
| 99 |
cvs_src_unpack
|
| 100 |
else
|
| 101 |
unpack ${A}
|
| 102 |
fi
|
| 103 |
cd "${S}"
|
| 104 |
|
| 105 |
[[ -n ${EHORDE_PATCHES} ]] && epatch ${EHORDE_PATCHES}
|
| 106 |
|
| 107 |
for APP in ${HORDE_APPLICATIONS}
|
| 108 |
do
|
| 109 |
[[ -f ${APP}/test.php ]] && chmod 000 ${APP}/test.php
|
| 110 |
done
|
| 111 |
}
|
| 112 |
|
| 113 |
horde_src_install() {
|
| 114 |
webapp_src_preinst
|
| 115 |
|
| 116 |
local destdir=${MY_HTDOCSDIR}
|
| 117 |
|
| 118 |
# Work-around when dealing with CVS sources
|
| 119 |
[[ ${EHORDE_CVS} = "true" ]] && cd ${HORDE_PN}
|
| 120 |
|
| 121 |
# Install docs and then delete them (except for CREDITS which
|
| 122 |
# many horde apps include in their help page #121003)
|
| 123 |
dodoc README docs/*
|
| 124 |
mv docs/CREDITS "${T}"/
|
| 125 |
rm -rf COPYING LICENSE README docs/*
|
| 126 |
mv "${T}"/CREDITS docs/
|
| 127 |
|
| 128 |
dodir ${destdir}
|
| 129 |
cp -r . "${D}"/${destdir}/ || die "install files"
|
| 130 |
|
| 131 |
for APP in ${HORDE_APPLICATIONS}
|
| 132 |
do
|
| 133 |
for DISTFILE in ${APP}/config/*.dist
|
| 134 |
do
|
| 135 |
if [[ -f ${DISTFILE/.dist/} ]] ; then
|
| 136 |
webapp_configfile "${MY_HTDOCSDIR}"/${DISTFILE/.dist/}
|
| 137 |
fi
|
| 138 |
done
|
| 139 |
if [[ -f ${APP}/config/conf.php ]] ; then
|
| 140 |
webapp_serverowned "${MY_HTDOCSDIR}"/${APP}/config/conf.php
|
| 141 |
webapp_configfile "${MY_HTDOCSDIR}"/${APP}/config/conf.php
|
| 142 |
fi
|
| 143 |
done
|
| 144 |
|
| 145 |
[[ -n ${HORDE_RECONFIG} ]] && webapp_hook_script ${HORDE_RECONFIG}
|
| 146 |
[[ -n ${HORDE_POSTINST} ]] && webapp_postinst_txt en ${HORDE_POSTINST}
|
| 147 |
|
| 148 |
webapp_src_install
|
| 149 |
}
|
| 150 |
|
| 151 |
horde_pkg_postinst() {
|
| 152 |
if [ -e ${ROOT}/usr/share/doc/${PF}/INSTALL* ] ; then
|
| 153 |
elog "Please read the INSTALL file in /usr/share/doc/${PF}."
|
| 154 |
fi
|
| 155 |
|
| 156 |
einfo "Before this package will work, you have to setup the configuration files."
|
| 157 |
einfo "Please review the config/ subdirectory of ${HORDE_PN} in the webroot."
|
| 158 |
|
| 159 |
if [ -e ${ROOT}/usr/share/doc/${PF}/SECURITY* ] ; then
|
| 160 |
ewarn
|
| 161 |
ewarn "Users are HIGHLY recommended to consult the SECURITY guide in"
|
| 162 |
ewarn "/usr/share/doc/${PF} before going into production with Horde."
|
| 163 |
fi
|
| 164 |
|
| 165 |
if [[ ${HORDE_PN} != "horde" && ${HORDE_PN} != "horde-groupware" && ${HORDE_PN} != "horde-webmail" ]] ; then
|
| 166 |
ewarn
|
| 167 |
ewarn "Make sure ${HORDE_PN} is accounted for in Horde's root"
|
| 168 |
ewarn " config/registry.php"
|
| 169 |
fi
|
| 170 |
|
| 171 |
if [[ ${EHORDE_CVS} = "true" ]] ; then
|
| 172 |
ewarn
|
| 173 |
ewarn "Use these CVS versions at your own risk."
|
| 174 |
ewarn "They tend to break things when working with the non CVS versions of horde."
|
| 175 |
fi
|
| 176 |
|
| 177 |
if use vhosts ; then
|
| 178 |
ewarn
|
| 179 |
ewarn "When installing Horde into a vhost dir, you will need to use the"
|
| 180 |
ewarn "-d option so that it is installed into the proper location."
|
| 181 |
fi
|
| 182 |
|
| 183 |
webapp_pkg_postinst
|
| 184 |
}
|