diff --git a/sysutils/Makefile b/sysutils/Makefile index abbe0cc1c815..f1cc5d9d0918 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -499,6 +499,7 @@ SUBDIR += modules SUBDIR += monit SUBDIR += monitord + SUBDIR += monitorix SUBDIR += monkeytail SUBDIR += mono-kmod SUBDIR += moosefs-chunkserver diff --git a/sysutils/monitorix/Makefile b/sysutils/monitorix/Makefile new file mode 100644 index 000000000000..dae8a7763f13 --- /dev/null +++ b/sysutils/monitorix/Makefile @@ -0,0 +1,123 @@ +# New ports collection makefile for: monitorix +# Date created: 15 Aug 2010 +# Whom: Olli Hauer +# +# $FreeBSD$ +# + +PORTNAME= monitorix +PORTVERSION= 1.5.1 +CATEGORIES= sysutils +MASTER_SITES= http://monitorix.org/ + +MAINTAINER= admin@mjbrune.org +COMMENT= A web based monitoring system + +LIB_DEPENDS= rrd:${PORTSDIR}/databases/rrdtool +BUILD_DEPENDS= ${SITE_PERL}/LWP/Parallel.pm:${PORTSDIR}/www/p5-ParallelUA + +LICENSE= GPLv2 + +OPTIONS= REPORTS "Mail HTML reports to a given address" off + +.include + +MAN5= monitorix.conf.5 +MANCOMPRESSED= no +NO_BUILD= yes + +CGIDIR?= ${PREFIX}/www/cgi-bin +#REPORTS?= true +# owner of $WWWROOT/imgs +WWW_OWNER?= ${WWWOWN} +WWW_GROUP?= ${WWWGRP} +DATADIR= ${INSTDIR} +REPORT_LANG= ca de en it +INSTDIR= ${PREFIX}/${PORTNAME} +# WWWROOT: (WWWDIR - portname), we need the resulting path for a variable in monitorix.conf +WWWROOT= ${WWWDIR:S,${PORTNAME},,} + +SUB_FILES= pkg-message +SUB_LIST= PERL=${PERL} INSTDIR=${INSTDIR} +PLIST_SUB+= CGIDIR=${CGIDIR:S,${PREFIX}/,,} WWW_OWNER=${WWW_OWNER} WWW_GROUP=${WWW_GROUP} + +WWW_FILES= logo_top.png logo_bot.png monitorixico.png +DOCS= COPYING Changes README README.FreeBSD README.nginx TODO \ + monitorix-alert.sh monitorix-apache.conf +REPORT_FILES= imgs_email/blank.png imgs_email/logo.jpg imgs_email/signature.png \ + imgs_email/title.jpg traffic_report.html traffic_report.sh + +.if defined(WITH_REPORTS) +RUN_DEPENDS+= metamail>=2.7:${PORTSDIR}/mail/metamail +PLIST_SUB+= REPORTS="" +.else +PLIST_SUB+= REPORTS="@comment " +.endif + +pre-everything:: + @${ECHO_MSG} "" + @${ECHO_MSG} "You may set following options:" + @${ECHO_MSG} "" + @${ECHO_MSG} "DATADIR=${DATADIR} Where do you put RRD databases?" + @${ECHO_MSG} "CGIDIR=${CGIDIR} Where do you put cgi?" + @${ECHO_MSG} "WWWDIR=${WWWDIR} Where do you put httpd's document root?" + @${ECHO_MSG} "" + +post-patch: +.for f in cgi conf pl + @${REINPLACE_CMD} -e "s|/usr/bin/perl|${PERL}|" ${WRKSRC}/monitorix.${f} +.endfor +# Notes about the adjustments for default configuration: +# - set FreeBSD as OSTYPE +# - set a generic WWWROOT, since we can include it in the webserver config +# - milter-greylist use a new database path on FreeBSD +# - FreeBSD's interface name came from the NIC, the lo0 interface is almost everytime present +# - file/directory handling outside ${PREFIX} with ports is silly. We don't want to rewrite +# monitorix.pl therefore we use ${PREFIX} instead /var/db/! + @${REINPLACE_CMD} -e 's|our \$$OSTYPE = \"Linux-RHFC\"|our \$$OSTYPE = \"FreeBSD\"|' \ + -e "s|/usr/local/www/apache22/data|${WWWROOT}|" \ + -e "s|/var/lib/milter-greylist/db/greylist.db|/var/milter-greylist/greylist.db|" \ + -e "s|eth0|lo0|g" -e "s|/var/db/monitorix/|${INSTDIR}/|" \ + -e "s|%%INSTDIR%%|${INSTDIR}|g" ${WRKSRC}/monitorix.conf +.for d in ${REPORT_LANG} + @${REINPLACE_CMD} -e "s|^rm|${RM}|g" -e "s|/bin/sed|${SED}|g" \ + -e "s|/usr/bin/metasend|${PREFIX}/bin/metasend|g" \ + -e "s|\"tmp|\"/tmp/${PORTNAME}_report|g" ${WRKSRC}/reports/${d}/traffic_report.sh +.endfor + +do-install: + @${INSTALL_SCRIPT} ${WRKSRC}/monitorix.pl ${PREFIX}/sbin/ + @${MKDIR} ${WWWDIR}/imgs + @${CHOWN} ${WWW_OWNER}:${WWW_GROUP} ${WWWDIR}/imgs + @for f in ${WWW_FILES}; do \ + ${INSTALL_DATA} ${WRKSRC}/$${f} ${WWWDIR}/; \ + done + @${MKDIR} ${CGIDIR} + @${INSTALL_SCRIPT} ${WRKSRC}/monitorix.cgi ${CGIDIR}/ +.for m in ${MAN5} + @${INSTALL_MAN} ${WRKSRC}/man/man5/$m ${PREFIX}/man/man5/ +.endfor +.if defined(WITH_REPORTS) +. for l in ${REPORT_LANG} + @${MKDIR} ${PREFIX}/${PORTNAME}/reports/${l}/imgs_email +. for f in ${REPORT_FILES} + @${INSTALL_DATA} ${WRKSRC}/reports/${l}/${f} ${PREFIX}/${PORTNAME}/reports/${l}/${f} +. endfor +. endfor +.endif +.if !defined(NOPORTDOCS) + @${MKDIR} ${DOCSDIR} + @for doc in ${DOCS}; do \ + ${INSTALL_DATA} ${WRKSRC}/$${doc} ${DOCSDIR}; \ + done +.endif + +post-install: + @${INSTALL_DATA} ${WRKSRC}/monitorix.conf ${PREFIX}/etc/monitorix.conf.sample + @if [ ! -f ${PREFIX}/etc/monitorix.conf ]; then \ + ${CP} -p ${PREFIX}/etc/monitorix.conf.sample ${PREFIX}/etc/monitorix.conf ; \ + fi + @${MKDIR} ${DATADIR}/usage + @${CAT} ${PKGMESSAGE} + +.include diff --git a/sysutils/monitorix/distinfo b/sysutils/monitorix/distinfo new file mode 100644 index 000000000000..9fe8f44b64f0 --- /dev/null +++ b/sysutils/monitorix/distinfo @@ -0,0 +1,3 @@ +MD5 (monitorix-1.5.1.tar.gz) = 982f20acfac8d2b175d61a4e3defb641 +SHA256 (monitorix-1.5.1.tar.gz) = e3bb853209e6fc56a883b34ab3a0395d3db0a8c512d87b40b6420620b102252b +SIZE (monitorix-1.5.1.tar.gz) = 141695 diff --git a/sysutils/monitorix/files/monitorix.in b/sysutils/monitorix/files/monitorix.in new file mode 100644 index 000000000000..7548ad93fe26 --- /dev/null +++ b/sysutils/monitorix/files/monitorix.in @@ -0,0 +1,37 @@ +#!/bin/sh +# +# @(#) Fibranet NSP, SL +# Copyright (C) 2005-2010 by Jordi Sanfeliu +# +# /usr/local/etc/rc.d/monitorix +# +# Starts Monitorix on FreeBSD systems +# +# PROVIDE: monitorix +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: FreeBSD shutdown + +monitorix_enable=${monitorix_enable:-"NO"} + +. /etc/rc.subr + +name="monitorix" +rcvar=`set_rcvar` +command_interpreter=%%PERL%% +start_cmd=monitorix_start +stop_cmd=monitorix_stop + +monitorix_start() +{ # Creates RRDs files (if needed) + %%PREFIX%%/sbin/monitorix.pl create + %%PREFIX%%/sbin/monitorix.pl init +} + +monitorix_stop() +{ + %%PREFIX%%/sbin/monitorix.pl stop +} + +load_rc_config $name +run_rc_command "$1" diff --git a/sysutils/monitorix/files/patch-monitorix.pl b/sysutils/monitorix/files/patch-monitorix.pl new file mode 100644 index 000000000000..043203c7e468 --- /dev/null +++ b/sysutils/monitorix/files/patch-monitorix.pl @@ -0,0 +1,65 @@ +--- ./monitorix.pl.orig 2010-06-21 10:54:38.000000000 +0200 ++++ ./monitorix.pl 2010-08-15 20:20:34.000000000 +0200 +@@ -733,20 +733,25 @@ + if($ENABLE_CROND_MAIL ne "Y") { + $mailto = "MAILTO=\"\""; + } +- open(OCRON, "> $O_CRON"); +- print OCRON < +-# +-PATH=/sbin:/bin:/usr/sbin:/usr/bin +-$mailto ++# FreeBSD: ++# The crontab replacment was removed for the port, ++# we can not risc the damage of existing crontabs! ++ print <