blob: 4ce8a57561449dcc1ce139d53d1b686fafc54d76 (
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
163
164
165
166
167
168
169
|
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/base/base-1.2.2.ebuild,v 1.1 2006/01/28 20:16:52 vanquirius Exp $
inherit webapp versionator eutils depend.apache depend.php
CONF_DIR="/etc/${PN}"
CONF_OLD="base_conf.php.dist"
CONF_NEW="base_conf.php"
MIDDLEMAN="base_path.php"
DESCRIPTION="A web-based front-end to the Snort IDS."
HOMEPAGE="http://base.secureideas.net"
SRC_URI="mirror://sourceforge/secureideas/${P}.tar.gz"
LICENSE="GPL-2"
KEYWORDS="~x86 ~amd64"
# SLOT is intentionally omitted because this package uses webapp-config
IUSE="session apache apache2 mysql postgres mssql oracle gd gd-external"
DEPEND=">=app-arch/tar-1.14
>=sys-libs/zlib-1.2.1-r3
>=app-arch/gzip-1.3.5-r4
>=sys-apps/coreutils-5.2.1-r2
>=sys-apps/sed-4.0.9
mysql? ( >=dev-db/mysql-3.23.0 )
postgres? ( >=dev-db/postgresql-7.1.0 )"
# A local database isn't necessary, so we only require one when the user
# has use-flags set for one of the supported DBs.
# Snort can also be installed on a remote system, so we don't require it.
RDEPEND="${DEPEND}
>=media-libs/gd-1.8.0
>=dev-php/adodb-1.2
>=dev-php4/jpgraph-1.12.2
>=dev-php/PEAR-PEAR-1.3.6-r1
>=dev-php/PEAR-Image_Color-1.0.2
>=dev-php/PEAR-Log-1.9.3
>=dev-php/PEAR-Numbers_Roman-0.2.0
>=dev-php/PEAR-Numbers_Words-0.14.0
>=dev-php/PEAR-Image_Canvas-0.2.4
>=dev-php/PEAR-Image_Graph-0.7.1"
# Require PHP4 to be installed.
need_php4
need_php4_cli
# BASE *should* work with any php-driven web server, so only require Apache
# when the user has an apache use-flag set. Then set the group ownership for
# /etc/base/base_conf.php so it can be read by the user's web server.
if use apache2 || use apache; then
need_apache
WWW_GROUP="apache"
else
# Set a safe default group.
WWW_GROUP="root"
APACHE_WWW_GROUP="FALSE"
fi
pkg_setup() {
webapp_pkg_setup
# Set the PHP environment variables.
has_php
# Make sure php was built with the necessary use-flags.
require_php_with_use session cli
require_gd
}
src_unpack() {
unpack ${A}
cd "${S}"
# Help the user configure /etc/base/base_conf.php so BASE works out of the
# box in most environments. The user will still be warned to edit the
# file manually at the pkg_postinst() stage.
sed -i -e 's:$BASE_urlpath.*:$BASE_urlpath = "/base";:g' \
${CONF_OLD}
sed -i -e 's:$DBlib_path.*:$DBlib_path = "/usr/lib/php/adodb";:g' \
${CONF_OLD}
if use postgres; then
sed -i -e 's:$DBtype.*:$DBtype = "postgres";:g' \
${CONF_OLD}
fi
if use mssql; then
sed -i -e 's:$DBtype.*:$DBtype = "mssql";:g' \
${CONF_OLD}
fi
if use oracle; then
sed -i -e 's:$DBtype.*:$DBtype = "oci8";:g' \
${CONF_OLD}
fi
# Install the configuration files in the usual /etc/${PN} location so that
# etc-update functions properly (it also improves security somewhat, since
# the config file contains plain-text passwords and should not be located
# inside the web-root). This requires changing the BASE source a tad to
# recognize the new location for base_conf.php.
for PHP in *.php */*.php; do
sed -i -e "s:${CONF_NEW}:${MIDDLEMAN}:g" \
${CONF_OLD} "${PHP}"
done
# Create the file ${MIDDLEMAN} to determine the web-root and to change
# the location of "include" to /etc/base/base_conf.php.
echo "<?php" > ${MIDDLEMAN}
echo ' $BASE_path = dirname(__FILE__);' >> ${MIDDLEMAN}
echo " include(\"${CONF_DIR}/${CONF_NEW}\");" >> ${MIDDLEMAN}
echo "?>" >> ${MIDDLEMAN}
# Delete the $BASE_path variable from the config file because we
# now handle it with ${MIDDLEMAN} created above.
sed -i -e 's:$BASE_path =.*::g' ${CONF_OLD}
# Modify the HTML headers so search engines don't index BASE.
sed -i -e \
's:<HEAD>:<HEAD>\n <META name="robots" content="noindex,nofollow">:g' \
index.php
sed -i -e \
's:<HEAD>:<HEAD>\n <META name="robots" content="noindex,nofollow">:g' \
base_main.php
}
src_install() {
webapp_src_preinst
# Install the docs once in the standard /usr/share/doc/${PF}/DOCDESTREE
# location instead of installing them in every virtual host directory.
cd docs
dodoc *
cd "${S}"
rm -rf docs
# Install the config files in the normal location (/etc/${PN}).
insinto ${CONF_DIR} || die "Unable to insinto ${CONF_DIR}"
doins ${CONF_OLD} || die "Unable to doins ${CONF_OLD}"
newins ${CONF_OLD} ${CONF_NEW} || die "Unable to create ${CONF_NEW}"
# Install BASE for webapp-config
insinto ${MY_HTDOCSDIR} || die "Unable to insinto ${MY_HTDOCSDIR}"
doins -r *
webapp_src_install
# Set the proper permissions on /etc/base/base_conf.php
fperms 640 ${CONF_DIR}/${CONF_NEW} || FPERMS="FALSE"
fowners root:${WWW_GROUP} ${CONF_DIR}/${CONF_NEW} || FOWNERS="FALSE"
}
pkg_postinst() {
webapp_pkg_postinst
# Notify the user of any problems at the very end.
if [ "${APACHE_WWW_GROUP}" == "FALSE" ]; then
ewarn ""
ewarn "It looks like you are not using the Apache web server. For "
ewarn "BASE to work properly, you will need to change the "
ewarn "ownership on ${CONF_DIR}/${CONF_NEW} to root:[www user]"
fi
einfo ""
einfo "You should edit \"${CONF_DIR}/${CONF_NEW}\" before using BASE."
einfo ""
einfo "To setup your initial database, direct your web browser to the"
einfo "location you installed BASE/base_db_setup.php."
einfo "You can find instructions in /usr/share/doc/${P}/README."
einfo ""
}
|