blob: 7862772e1d6f0b5e296b79f6726740b90857d338 (
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
|
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/webapp-apache.eclass,v 1.19 2003/12/16 10:55:43 robbat2 Exp $
#
# Author: Stuart Herbert <stuart@gentoo.org>
#
# Based on discussions held on gentoo-dev mailing list, and a bug report
# contributed by Ian Leitch <port001@w0r.mine.nu> in bug #14870,
# and robbat2's mod_php ebuild
#
# This package will be offically depreciated when vhost-config and
# webapp-config from GLEP11 are released.
ECLASS=webapp-apache
INHERITED="$INHERITED $ECLASS"
DEPEND="${DEPEND} net-www/apache"
EXPORT_FUNCTIONS pkg_setup
# NOTE:
#
# It is deliberate that the functions in this eclass are called
# 'webapp-xxx' rather than 'webapp-apache-xxx'. This ensures
# that we can drop in eclasses for other web servers without
# having to change the ebuilds!
function webapp-apache-detect ()
{
APACHEVER=
has_version '=net-www/apache-1*' && APACHEVER=1 && CONFVER=
has_version '=net-www/apache-2*' && use apache2 && APACHEVER=2 && CONFVER=2
[ -z "${APACHEVER}" ] && has_version '=net-www/apache-2*' && APACHEVER=2 && CONFVER=2
if [ "${APACHEVER}+" = "+" ]; then
# no apache version detected
return 1
fi
APACHECONF="/etc/apache${CONFVER}/conf/apache${CONFVER}.conf"
APACHECONF_COMMON="/etc/apache${CONFVER}/conf/commonapache${CONFVER}.conf"
APACHECONF_DIR="/etc/apache${CONFVER}/conf/"
WEBAPP_SERVER="Apache v${APACHEVER}"
}
# run the function, so we know which version of apache we are using
function webapp-detect () {
webapp-apache-detect || return 1
webapp-determine-installowner
webapp-determine-htdocsdir
webapp-determine-cgibindir
# explicit return here to ensure the return code
# from webapp-determine-cgibindir above isn't returned instead
return 0
}
function webapp-mkdirs () {
webapp-determine-htdocsdir
webapp-determine-cgibindir
keepdir "$HTTPD_ROOT"
fowners "$HTTPD_USER":"$HTTPD_GROUP" "$HTTPD_ROOT"
fperms 755 "$HTTPD_ROOT"
# explicit return here to ensure the return code
# from above isn't returned instead
return 0
}
function webapp-determine-htdocsdir ()
{
webapp-determine-installowner
# HTTPD_ROOT="`grep '^DocumentRoot' ${APACHECONF} | cut -d ' ' -f 2`"
# [ -z "${HTTPD_ROOT}" ] && HTTPD_ROOT="/home/httpd/htdocs/"
# temporary fix for webapps
HTTPD_ROOT="/var/www/localhost/htdocs/"
}
function webapp-determine-cgibindir ()
{
#HTTPD_CGIBIN="`grep 'ScriptAlias /cgi-bin/' ${APACHECONF_COMMON} | cut -d ' ' -f 7`"
#[ -z "${HTTPD_CGIBIN}" ] && HTTPD_CGIBIN="/home/httpd/cgi-bin/"
# temporary fix for webapps
HTTPD_CGIBIN="/var/www/localhost/cgi-bin/"
}
function webapp-determine-installowner ()
{
HTTPD_USER="apache"
HTTPD_GROUP="apache"
}
function webapp-pkg_setup ()
{
if [ "$1" == "1" ]; then
msg="I couldn't find an installation of Apache"
eerror "${msg}"
die "${msg}"
fi
}
# shamelessly stolen from Max Kalika <max@gentoo.org>'s horde stuff ;-)
#
# call this from your ebuild's pkg_setup() function!!
function webapp-check-php ()
{
local missing=""
local php_use="$(</var/db/pkg/`best_version dev-php/mod_php`/USE)"
local i
for i in $* ; do
if [ ! "`has ${i} ${php_use}`" ] ; then
missing="${missing} ${i}"
fi
done
# let's tell the user how to fix these problems
if [ -n "${missing}" ]; then
eerror "PHP is missing support for one or more options:"
eerror " ${missing}"
eerror
eerror "Please add '${missing}' to your USE flags, and re-install mod_php"
die "mod_php needs re-compiling with missing options"
fi
return 0
}
|