|
Lines 2-12
Link Here
|
| 2 |
# Distributed under the terms of the GNU General Public License v2 |
2 |
# Distributed under the terms of the GNU General Public License v2 |
| 3 |
# $Id$ |
3 |
# $Id$ |
| 4 |
|
4 |
|
| 5 |
EAPI="5" |
5 |
EAPI="6" |
| 6 |
|
6 |
|
| 7 |
# needed to make webapp-config dep optional |
7 |
# needed to make webapp-config dep optional |
| 8 |
WEBAPP_OPTIONAL="yes" |
8 |
WEBAPP_OPTIONAL="yes" |
| 9 |
inherit flag-o-matic webapp autotools java-pkg-opt-2 user systemd toolchain-funcs |
9 |
inherit flag-o-matic webapp java-pkg-opt-2 user systemd toolchain-funcs |
| 10 |
|
10 |
|
| 11 |
DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers" |
11 |
DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers" |
| 12 |
HOMEPAGE="http://www.zabbix.com/" |
12 |
HOMEPAGE="http://www.zabbix.com/" |
|
Lines 16-23
Link Here
|
| 16 |
LICENSE="GPL-2" |
16 |
LICENSE="GPL-2" |
| 17 |
SLOT="0" |
17 |
SLOT="0" |
| 18 |
WEBAPP_MANUAL_SLOT="yes" |
18 |
WEBAPP_MANUAL_SLOT="yes" |
| 19 |
KEYWORDS="amd64 x86" |
19 |
KEYWORDS="~amd64 ~x86" |
| 20 |
IUSE="agent java curl frontend ipv6 xmpp ldap libxml2 mysql openipmi oracle postgres proxy server ssh snmp sqlite odbc static" |
20 |
IUSE="agent java curl frontend ipv6 xmpp ldap libxml2 mysql openipmi oracle postgres proxy server ssh snmp sqlite odbc static" |
|
|
21 |
REQUIRED_USE="|| ( agent frontend proxy server ) |
| 22 |
proxy? ( ^^ ( mysql oracle postgres sqlite odbc ) ) |
| 23 |
server? ( ^^ ( mysql oracle postgres sqlite odbc ) ) |
| 24 |
static? ( !oracle !snmp )" |
| 21 |
|
25 |
|
| 22 |
COMMON_DEPEND="snmp? ( net-analyzer/net-snmp ) |
26 |
COMMON_DEPEND="snmp? ( net-analyzer/net-snmp ) |
| 23 |
ldap? ( |
27 |
ldap? ( |
|
Lines 38-109
Link Here
|
| 38 |
odbc? ( dev-db/unixODBC )" |
42 |
odbc? ( dev-db/unixODBC )" |
| 39 |
|
43 |
|
| 40 |
RDEPEND="${COMMON_DEPEND} |
44 |
RDEPEND="${COMMON_DEPEND} |
| 41 |
proxy? ( <=net-analyzer/fping-2.9 ) |
45 |
proxy? ( net-analyzer/fping ) |
| 42 |
server? ( <=net-analyzer/fping-2.9 |
46 |
server? ( net-analyzer/fping |
| 43 |
app-admin/webapp-config ) |
47 |
app-admin/webapp-config ) |
| 44 |
java? ( |
48 |
java? ( |
| 45 |
>=virtual/jre-1.4 |
49 |
>=virtual/jre-1.4 |
| 46 |
dev-java/slf4j-api |
50 |
dev-java/slf4j-api |
| 47 |
dev-java/json-simple |
|
|
| 48 |
) |
51 |
) |
| 49 |
frontend? ( |
52 |
frontend? ( |
| 50 |
>=dev-lang/php-5.3.0[bcmath,ctype,sockets,gd,truetype,xml,session,xmlreader,xmlwriter,nls,sysvipc,unicode] |
53 |
>=dev-lang/php-5.3.0[bcmath,ctype,sockets,gd,truetype,xml,session,xmlreader,xmlwriter,nls,sysvipc,unicode] |
| 51 |
|| ( dev-lang/php[apache2] dev-lang/php[cgi] dev-lang/php[fpm] ) |
54 |
|| ( dev-lang/php[apache2] dev-lang/php[cgi] dev-lang/php[fpm] ) |
|
|
55 |
mysql? ( dev-lang/php[mysqli] ) |
| 56 |
odbc? ( dev-lang/php[odbc] ) |
| 57 |
oracle? ( dev-lang/php[oci8-instant-client] ) |
| 58 |
postgres? ( dev-lang/php[postgres] ) |
| 59 |
sqlite? ( dev-lang/php[sqlite] ) |
| 52 |
media-libs/gd[png] |
60 |
media-libs/gd[png] |
| 53 |
app-admin/webapp-config )" |
61 |
app-admin/webapp-config )" |
| 54 |
DEPEND="${COMMON_DEPEND} |
62 |
DEPEND="${COMMON_DEPEND} |
|
|
63 |
static? ( |
| 64 |
ldap? ( |
| 65 |
net-nds/openldap[static-libs] |
| 66 |
=dev-libs/cyrus-sasl-2*[static-libs] |
| 67 |
net-libs/gnutls[static-libs] |
| 68 |
) |
| 69 |
mysql? ( >=virtual/mysql-5.0.3[static-libs] ) |
| 70 |
sqlite? ( >=dev-db/sqlite-3.3.5[static-libs] ) |
| 71 |
postgres? ( dev-db/postgresql:*[static-libs] ) |
| 72 |
libxml2? ( dev-libs/libxml2[static-libs] ) |
| 73 |
curl? ( net-misc/curl[static-libs] ) |
| 74 |
ssh? ( net-libs/libssh2[static-libs] ) |
| 75 |
odbc? ( dev-db/unixODBC[static-libs] ) |
| 76 |
) |
| 55 |
virtual/pkgconfig" |
77 |
virtual/pkgconfig" |
| 56 |
|
78 |
|
| 57 |
S=${WORKDIR}/${MY_P} |
79 |
S=${WORKDIR}/${MY_P} |
| 58 |
|
80 |
|
| 59 |
ZABBIXJAVA_BASE="opt/zabbix_java" |
81 |
ZABBIXJAVA_BASE="opt/zabbix_java" |
| 60 |
|
82 |
|
| 61 |
java_prepare() { |
|
|
| 62 |
cd "${S}/src/zabbix_java/lib" |
| 63 |
rm -v *.jar || die |
| 64 |
|
| 65 |
java-pkg_jar-from slf4j-api |
| 66 |
java-pkg_jar-from json-simple |
| 67 |
} |
| 68 |
|
| 69 |
src_prepare() { |
| 70 |
eautoreconf |
| 71 |
} |
| 72 |
|
| 73 |
pkg_setup() { |
83 |
pkg_setup() { |
| 74 |
if use server || use proxy ; then |
84 |
if use oracle; then |
| 75 |
local dbnum dbtypes="mysql oracle postgres sqlite" dbtype |
85 |
if [ -z "${ORACLE_HOME}" ]; then |
| 76 |
declare -i dbnum=0 |
|
|
| 77 |
for dbtype in ${dbtypes}; do |
| 78 |
use ${dbtype} && let dbnum++ |
| 79 |
done |
| 80 |
if [ ${dbnum} -gt 1 ]; then |
| 81 |
eerror |
| 82 |
eerror "You can't use more than one database type in Zabbix." |
| 83 |
eerror "Select exactly one database type out of these: ${dbtypes}" |
| 84 |
eerror |
| 85 |
die "Multiple database types selected." |
| 86 |
elif [ ${dbnum} -lt 1 ]; then |
| 87 |
eerror |
86 |
eerror |
| 88 |
eerror "Select exactly one database type out of these: ${dbtypes}" |
87 |
eerror "The environment variable ORACLE_HOME must be set" |
|
|
88 |
eerror "and point to the correct location." |
| 89 |
eerror "It looks like you don't have Oracle installed." |
| 89 |
eerror |
90 |
eerror |
| 90 |
die "No database type selected." |
91 |
die "Environment variable ORACLE_HOME is not set" |
| 91 |
fi |
92 |
fi |
| 92 |
if use oracle; then |
93 |
if has_version 'dev-db/oracle-instantclient-basic'; then |
| 93 |
if [ -z "${ORACLE_HOME}" ]; then |
94 |
ewarn |
| 94 |
eerror |
95 |
ewarn "Please ensure you have a full install of the Oracle client." |
| 95 |
eerror "The environment variable ORACLE_HOME must be set" |
96 |
ewarn "dev-db/oracle-instantclient* is NOT sufficient." |
| 96 |
eerror "and point to the correct location." |
97 |
ewarn |
| 97 |
eerror "It looks like you don't have Oracle installed." |
|
|
| 98 |
eerror |
| 99 |
die "Environment variable ORACLE_HOME is not set" |
| 100 |
fi |
| 101 |
if has_version 'dev-db/oracle-instantclient-basic'; then |
| 102 |
ewarn |
| 103 |
ewarn "Please ensure you have a full install of the Oracle client." |
| 104 |
ewarn "dev-db/oracle-instantclient* is NOT sufficient." |
| 105 |
ewarn |
| 106 |
fi |
| 107 |
fi |
98 |
fi |
| 108 |
fi |
99 |
fi |
| 109 |
|
100 |
|
|
Lines 115-212
Link Here
|
| 115 |
enewuser zabbix -1 -1 /var/lib/zabbix/home zabbix |
106 |
enewuser zabbix -1 -1 /var/lib/zabbix/home zabbix |
| 116 |
} |
107 |
} |
| 117 |
|
108 |
|
| 118 |
pkg_postinst() { |
109 |
java_prepare() { |
| 119 |
if use server || use proxy ; then |
110 |
cd "${S}/src/zabbix_java/lib" |
| 120 |
elog |
111 |
rm -v *.jar || die |
| 121 |
elog "You may need to configure your database for Zabbix," |
|
|
| 122 |
elog "if you have not already done so. " |
| 123 |
elog |
| 124 |
|
| 125 |
zabbix_homedir=$(egethome zabbix) |
| 126 |
if [ -n "${zabbix_homedir}" ] && \ |
| 127 |
[ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then |
| 128 |
ewarn |
| 129 |
ewarn "The user 'zabbix' should have his homedir changed" |
| 130 |
ewarn "to /var/lib/zabbix/home if you want to use" |
| 131 |
ewarn "custom alert scripts." |
| 132 |
ewarn |
| 133 |
ewarn "A real homedir might be needed for configfiles" |
| 134 |
ewarn "for custom alert scripts (e.g. ~/.sendxmpprc when" |
| 135 |
ewarn "using sendxmpp for Jabber alerts)." |
| 136 |
ewarn |
| 137 |
ewarn "To change the homedir use:" |
| 138 |
ewarn " usermod -d /var/lib/zabbix/home zabbix" |
| 139 |
ewarn |
| 140 |
fi |
| 141 |
fi |
| 142 |
|
| 143 |
if use server; then |
| 144 |
elog |
| 145 |
elog "For distributed monitoring you have to run:" |
| 146 |
elog |
| 147 |
elog "zabbix_server -n <nodeid>" |
| 148 |
elog |
| 149 |
elog "This will convert database data for use with Node ID" |
| 150 |
elog "and also adds a local node." |
| 151 |
elog |
| 152 |
fi |
| 153 |
|
| 154 |
elog "--" |
| 155 |
elog |
| 156 |
elog "You may need to add these lines to /etc/services:" |
| 157 |
elog |
| 158 |
elog "zabbix-agent 10050/tcp Zabbix Agent" |
| 159 |
elog "zabbix-agent 10050/udp Zabbix Agent" |
| 160 |
elog "zabbix-trapper 10051/tcp Zabbix Trapper" |
| 161 |
elog "zabbix-trapper 10051/udp Zabbix Trapper" |
| 162 |
elog |
| 163 |
|
| 164 |
elog "Feel free to download or contribute gentoo specific zabbix templates" |
| 165 |
elog "via https://github.com/deploylinux/gentooZabbixTemplates (WIP)." |
| 166 |
|
| 167 |
# repeat fowners/fperms functionality from src_install() |
| 168 |
# here to catch wrong permissions on existing files in |
| 169 |
# the live filesystem (yeah, that sucks). |
| 170 |
chown -R zabbix:zabbix \ |
| 171 |
"${ROOT}"/etc/zabbix \ |
| 172 |
"${ROOT}"/var/lib/zabbix \ |
| 173 |
"${ROOT}"/var/lib/zabbix/home \ |
| 174 |
"${ROOT}"/var/lib/zabbix/scripts \ |
| 175 |
"${ROOT}"/var/log/zabbix |
| 176 |
chmod 0750 \ |
| 177 |
"${ROOT}"/etc/zabbix \ |
| 178 |
"${ROOT}"/var/lib/zabbix \ |
| 179 |
"${ROOT}"/var/lib/zabbix/home \ |
| 180 |
"${ROOT}"/var/lib/zabbix/scripts \ |
| 181 |
"${ROOT}"/var/log/zabbix |
| 182 |
|
112 |
|
| 183 |
chmod 0640 \ |
113 |
java-pkg_jar-from slf4j-api |
| 184 |
"${ROOT}"/etc/zabbix/zabbix_* |
114 |
} |
| 185 |
|
115 |
|
| 186 |
if use server || use proxy ; then |
116 |
src_prepare() { |
| 187 |
# check for fping |
117 |
default |
| 188 |
fping_perms=$(stat -c %a /usr/sbin/fping 2>/dev/null) |
|
|
| 189 |
case "${fping_perms}" in |
| 190 |
4[157][157][157]) |
| 191 |
;; |
| 192 |
*) |
| 193 |
ewarn |
| 194 |
ewarn "If you want to use the checks 'icmpping' and 'icmppingsec'," |
| 195 |
ewarn "you have to make /usr/sbin/fping setuid root and executable" |
| 196 |
ewarn "by everyone. Run the following command to fix it:" |
| 197 |
ewarn |
| 198 |
ewarn " chmod u=rwsx,g=rx,o=rx /usr/sbin/fping" |
| 199 |
ewarn |
| 200 |
ewarn "Please be aware that this might impose a security risk," |
| 201 |
ewarn "depending on the code quality of fping." |
| 202 |
ewarn |
| 203 |
;; |
| 204 |
esac |
| 205 |
fi |
| 206 |
} |
118 |
} |
| 207 |
|
119 |
|
| 208 |
src_configure() { |
120 |
src_configure() { |
| 209 |
|
|
|
| 210 |
econf \ |
121 |
econf \ |
| 211 |
$(use_enable server) \ |
122 |
$(use_enable server) \ |
| 212 |
$(use_enable proxy) \ |
123 |
$(use_enable proxy) \ |
|
Lines 229-234
Link Here
|
| 229 |
|| die "econf failed" |
140 |
|| die "econf failed" |
| 230 |
} |
141 |
} |
| 231 |
|
142 |
|
|
|
143 |
src_compile() { |
| 144 |
if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then |
| 145 |
emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" || die "emake failed" |
| 146 |
fi |
| 147 |
} |
| 148 |
|
| 232 |
src_install() { |
149 |
src_install() { |
| 233 |
dodir \ |
150 |
dodir \ |
| 234 |
/etc/zabbix \ |
151 |
/etc/zabbix \ |
|
Lines 345-351
Link Here
|
| 345 |
src/zabbix_java/lib/logback-console.xml \ |
262 |
src/zabbix_java/lib/logback-console.xml \ |
| 346 |
src/zabbix_java/lib/logback-core-0.9.27.jar \ |
263 |
src/zabbix_java/lib/logback-core-0.9.27.jar \ |
| 347 |
src/zabbix_java/lib/logback.xml \ |
264 |
src/zabbix_java/lib/logback.xml \ |
| 348 |
src/zabbix_java/lib/org-json-2010-12-28.jar \ |
265 |
src/zabbix_java/lib/android-json-4.3_r3.1.jar \ |
| 349 |
src/zabbix_java/lib/slf4j-api-1.6.1.jar |
266 |
src/zabbix_java/lib/slf4j-api-1.6.1.jar |
| 350 |
exeinto /${ZABBIXJAVA_BASE}/ |
267 |
exeinto /${ZABBIXJAVA_BASE}/ |
| 351 |
doexe \ |
268 |
doexe \ |
|
Lines 354-364
Link Here
|
| 354 |
src/zabbix_java/shutdown.sh |
271 |
src/zabbix_java/shutdown.sh |
| 355 |
fowners -R zabbix:zabbix /${ZABBIXJAVA_BASE} |
272 |
fowners -R zabbix:zabbix /${ZABBIXJAVA_BASE} |
| 356 |
fi |
273 |
fi |
| 357 |
|
|
|
| 358 |
} |
274 |
} |
| 359 |
|
275 |
|
| 360 |
src_compile() { |
276 |
pkg_postinst() { |
| 361 |
if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then |
277 |
if use server || use proxy ; then |
| 362 |
emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" || die "emake failed" |
278 |
elog |
|
|
279 |
elog "You may need to configure your database for Zabbix," |
| 280 |
elog "if you have not already done so. " |
| 281 |
elog |
| 282 |
|
| 283 |
zabbix_homedir=$(egethome zabbix) |
| 284 |
if [ -n "${zabbix_homedir}" ] && \ |
| 285 |
[ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then |
| 286 |
ewarn |
| 287 |
ewarn "The user 'zabbix' should have his homedir changed" |
| 288 |
ewarn "to /var/lib/zabbix/home if you want to use" |
| 289 |
ewarn "custom alert scripts." |
| 290 |
ewarn |
| 291 |
ewarn "A real homedir might be needed for configfiles" |
| 292 |
ewarn "for custom alert scripts (e.g. ~/.sendxmpprc when" |
| 293 |
ewarn "using sendxmpp for Jabber alerts)." |
| 294 |
ewarn |
| 295 |
ewarn "To change the homedir use:" |
| 296 |
ewarn " usermod -d /var/lib/zabbix/home zabbix" |
| 297 |
ewarn |
| 298 |
fi |
| 299 |
fi |
| 300 |
|
| 301 |
if use server; then |
| 302 |
elog |
| 303 |
elog "For distributed monitoring you have to run:" |
| 304 |
elog |
| 305 |
elog "zabbix_server -n <nodeid>" |
| 306 |
elog |
| 307 |
elog "This will convert database data for use with Node ID" |
| 308 |
elog "and also adds a local node." |
| 309 |
elog |
| 310 |
fi |
| 311 |
|
| 312 |
elog "--" |
| 313 |
elog |
| 314 |
elog "You may need to add these lines to /etc/services:" |
| 315 |
elog |
| 316 |
elog "zabbix-agent 10050/tcp Zabbix Agent" |
| 317 |
elog "zabbix-agent 10050/udp Zabbix Agent" |
| 318 |
elog "zabbix-trapper 10051/tcp Zabbix Trapper" |
| 319 |
elog "zabbix-trapper 10051/udp Zabbix Trapper" |
| 320 |
elog |
| 321 |
|
| 322 |
if use server || use proxy ; then |
| 323 |
# check for fping |
| 324 |
fping_perms=$(stat -c %a /usr/sbin/fping 2>/dev/null) |
| 325 |
case "${fping_perms}" in |
| 326 |
4[157][157][157]) |
| 327 |
;; |
| 328 |
*) |
| 329 |
ewarn |
| 330 |
ewarn "If you want to use the checks 'icmpping' and 'icmppingsec'," |
| 331 |
ewarn "you have to make /usr/sbin/fping setuid root and executable" |
| 332 |
ewarn "by everyone. Run the following command to fix it:" |
| 333 |
ewarn |
| 334 |
ewarn " chmod u=rwsx,g=rx,o=rx /usr/sbin/fping" |
| 335 |
ewarn |
| 336 |
ewarn "Please be aware that this might impose a security risk," |
| 337 |
ewarn "depending on the code quality of fping." |
| 338 |
ewarn |
| 339 |
;; |
| 340 |
esac |
| 363 |
fi |
341 |
fi |
| 364 |
} |
342 |
} |