Index: head/net-mgmt/librenms/Makefile =================================================================== --- head/net-mgmt/librenms/Makefile (revision 459371) +++ head/net-mgmt/librenms/Makefile (revision 459372) @@ -1,162 +1,151 @@ # Created by: Muhammad Moinur Rahman # $FreeBSD$ PORTNAME= librenms -PORTVERSION= 1.33.01 -PORTREVISION= 1 +PORTVERSION= 1.35 +PORTREVISION= 0 PORTEPOCH= 1 CATEGORIES= net-mgmt MAINTAINER= bofh@FreeBSD.org COMMENT= Autodiscovering PHP/MySQL/SNMP based network monitoring LICENSE= GPLv3 USE_GITHUB= yes GH_ACCOUNT= librenms -USES= php:cli python${PY_MYSQL} shebangfix +USES= python${PY_MYSQL} shebangfix SHEBANG_FILES= scripts/auth_test.php scripts/deploy-docs.sh scripts/github-remove \ scripts/Migration/Standard_Conversion/convert_no_xml.sh \ scripts/Migration/Standard_Conversion/destwork_no_xml.sh \ scripts/Migration/Standard_Conversion/mkdir.sh \ scripts/Migration/XML_Conversion/convert.sh \ scripts/Migration/XML_Conversion/destwork.sh \ scripts/Migration/XML_Conversion/mkdir.sh \ scripts/removespikes.php scripts/agent-local/nfs-stats.sh \ scripts/removespikes.pl scripts/watchmaillog/watchmaillog.pl \ vendor/ezyang/htmlpurifier/maintenance/add-vimline.php \ vendor/ezyang/htmlpurifier/maintenance/config-scanner.php \ vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php \ vendor/ezyang/htmlpurifier/maintenance/flush.php \ vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php \ vendor/ezyang/htmlpurifier/maintenance/generate-includes.php \ vendor/ezyang/htmlpurifier/maintenance/generate-schema-cache.php \ vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php \ vendor/ezyang/htmlpurifier/maintenance/merge-library.php \ vendor/ezyang/htmlpurifier/maintenance/old-extract-schema.php \ vendor/ezyang/htmlpurifier/maintenance/old-remove-require-once.php \ vendor/ezyang/htmlpurifier/maintenance/old-remove-schema-def.php \ vendor/ezyang/htmlpurifier/maintenance/rename-config.php \ vendor/ezyang/htmlpurifier/maintenance/remove-trailing-whitespace.php \ vendor/ezyang/htmlpurifier/maintenance/update-config.php \ - vendor/tecnickcom/tcpdf/tools/tcpdf_addfont.php + vendor/tecnickcom/tcpdf/tools/tcpdf_addfont.php \ + poller.php poller-wrapper.py -USE_PHP= ctype curl filter gd hash json ldap mcrypt mysqli openssl session simplexml snmp tokenizer xml +USE_PHP= ctype curl filter gd hash json ldap mcrypt mysqli openssl posix session simplexml snmp tokenizer xml NO_BUILD= yes RUN_DEPENDS+= rrdtool:databases/rrdtool \ dot:graphics/graphviz \ ${LOCALBASE}/share/pear/Net/IPv4.php:net/pear-Net_IPv4 \ ${LOCALBASE}/share/pear/Net/IPv6.php:net/pear-Net_IPv6 \ snmpget:net-mgmt/net-snmp \ bash:shells/bash \ sudo:security/sudo OPTIONS_DEFINE= APACHEMOD FPING IPMITOOL LIBVIRT MYSQLD NAGPLUGINS NMAP PYPOLLER WMIC DOCS EXAMPLES X11 OPTIONS_DEFAULT= APACHEMOD FPING IPMITOOL LIBVIRT NAGPLUGINS NMAP PYPOLLER WMIC APACHEMOD_DESC= Use PHP with Apache 2.2+ module FPING_DESC= Enable fping support ping monitoring IPMITOOL_DESC= Enable support for monitoring hardware IPMI MYSQLD_DESC= Use local MySQL server WMIC_DESC= Enable support for WMI polling PYPOLLER_DESC= Enable Python Poller Wrapper FPING_RUN_DEPENDS= fping:net/fping IPMITOOL_RUN_DEPENDS= ipmitool:sysutils/ipmitool LIBVIRT_RUN_DEPENDS= virsh:devel/libvirt NAGPLUGINS_RUN_DEPENDS= ${LOCALBASE}/libexec/nagios/check_nagios:net-mgmt/nagios-plugins NMAP_RUN_DEPENDS= nmap:security/nmap PYPOLLER_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.3:databases/py-MySQLdb PYPOLLER_VARS= PY_MYSQL=:2.7 X11_RUN_DEPENDS= Magick-config:graphics/ImageMagick \ mtr:net/mtr X11_RUN_DEPENDS_OFF= Magick-config:graphics/ImageMagick-nox11 \ mtr:net/mtr-nox11 WMIC_RUN_DEPENDS= wmic:net-mgmt/wmi-client MYSQLD_USES= mysql:server MYSQLD_USES_OFF= mysql:client -SUB_FILES+= pkg-message +SUB_FILES+= librenms.conf pkg-message SUB_LIST+= PHP="${PHPBASE}/bin/php" PYTHON=${PYTHON_CMD} ROOT_FILES= addhost.php adduser.php alerts.php build-base.php build.sql \ - billing-calculate.php \ - check-services.php composer.json config_to_json.php cronic daily.php daily.sh \ + billing-calculate.php check-services.php composer.json \ + config.php.default config_to_json.php cronic daily.php daily.sh \ delhost.php discovery-wrapper.py discovery.php dist-pollers.php irc.php \ mkdocs.yml pbin.sh phpunit.xml poll-billing.php poller.php poller-service.py \ poller-wrapper.py readmegen.yml renamehost.php services-wrapper.py \ snmptrap.php syslog.php validate.php -ROOT_DIRS= LibreNMS contrib doc html includes lib mibs misc scripts sql-schema tests vendor +ROOT_DIRS= LibreNMS contrib doc html includes lib logs mibs misc rrd scripts sql-schema tests vendor DOCS= AUTHORS.md CHANGELOG CONTRIBUTING.md LICENSE.txt README.md PORTDOCS= * PORTEXAMPLES= snmp.conf.example snmpd.conf.example NO_ARCH= yes -.if !defined(PACKAGE_BUILDING) -APACHEMOD_VARS_ON= WANT_PHP_MOD=yes +APACHEMOD_USES= php:mod +APACHEMOD_USES_OFF= php:web APACHEMOD_USE= APACHE_RUN=22+ -.else -# Package builder doesn't create php5 with module -USES+= php:web -.endif post-patch: ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/poller-wrapper.py ${WRKSRC}/poller.php ${REINPLACE_CMD} 's|%%PORTVERSION%%|${PORTVERSION}|g' \ ${WRKSRC}/includes/common.php + ${REINPLACE_CMD} -e 's|/opt/librenms|${WWWDIR}|' \ + ${WRKSRC}/html/install.php + ${RM} ${WRKSRC}/LibreNMS/Validations/Updates.php do-install: - @${MKDIR} ${STAGEDIR}/${WWWDIR} + ${MKDIR} ${STAGEDIR}/${WWWDIR} .for dir in ${ROOT_DIRS} - @${MKDIR} ${STAGEDIR}/${WWWDIR}/${dir} - @cd ${WRKSRC}/${dir} && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/${dir} + ${MKDIR} ${STAGEDIR}/${WWWDIR}/${dir} + (cd ${WRKSRC}/${dir} && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/${dir}) .endfor .for f in ${ROOT_FILES} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${WWWDIR} .endfor -# Create empty rrd dir writable by www - @${MKDIR} ${STAGEDIR}/${WWWDIR}/rrd - @${CHMOD} 0775 ${STAGEDIR}/${WWWDIR}/rrd -# Create empty logs dir - @${MKDIR} ${STAGEDIR}/${WWWDIR}/logs # Make daily.sh executable - @${CHMOD} 0755 ${STAGEDIR}/${WWWDIR}/daily.sh + ${CHMOD} 0755 ${STAGEDIR}/${WWWDIR}/daily.sh # Files in scripts dir should be executable - @${FIND} ${STAGEDIR}/${WWWDIR}/scripts -type f -exec ${CHMOD} +x {} \; + ${FIND} ${STAGEDIR}/${WWWDIR}/scripts -type f -exec ${CHMOD} +x {} \; # Ensure PHP and Python scripts are executable - @${FIND} ${STAGEDIR}/${WWWDIR} -type f -name '*.py' -or -type f -name \ + ${FIND} ${STAGEDIR}/${WWWDIR} -type f -name '*.py' -or -type f -name \ '*.php' -exec ${CHMOD} +x {} \; do-install-DOCS-on: - @${MKDIR} ${STAGEDIR}/${DOCSDIR} + ${MKDIR} ${STAGEDIR}/${DOCSDIR} .for f in ${DOCS} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${DOCSDIR} .endfor - @cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}/${DOCSDIR} + cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}/${DOCSDIR} do-install-EXAMPLES-on: - @${MKDIR} ${STAGEDIR}/${EXAMPLESDIR} + ${MKDIR} ${STAGEDIR}/${EXAMPLESDIR} .for f in ${PORTEXAMPLES} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${EXAMPLESDIR} .endfor post-install: - @${ECHO_CMD} "@owner ${WWWOWN}" >> ${TMPPLIST} - @${ECHO_CMD} "@group ${WWWGRP}" >> ${TMPPLIST} + @${FIND} -s ${STAGEDIR}${WWWDIR} -type f '(' -name '*.orig' -or -name '*.bak' ')' -delete @${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} - @${FIND} -s ${STAGEDIR}${WWWDIR} -type d | \ - ${SED} -e 's#^${STAGEDIR}#@dir #' >> ${TMPPLIST} - ${INSTALL_DATA} ${WRKSRC}/config.php.default \ - ${STAGEDIR}/${WWWDIR}/config.php.sample - @${ECHO} @sample ${WWWDIR}/config.php.sample >> ${TMPPLIST} - @${ECHO_CMD} "@group" >> ${TMPPLIST} - @${ECHO_CMD} "@owner" >> ${TMPPLIST} + @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/logs" >> ${TMPPLIST} + @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/rrd" >> ${TMPPLIST} .include Index: head/net-mgmt/librenms/distinfo =================================================================== --- head/net-mgmt/librenms/distinfo (revision 459371) +++ head/net-mgmt/librenms/distinfo (revision 459372) @@ -1,3 +1,3 @@ -TIMESTAMP = 1511119483 -SHA256 (librenms-librenms-1.33.01_GH0.tar.gz) = ca5f3d5a606efd445291c14126c9216d1a595dc37f330cc00284d5d42f6bf5e9 -SIZE (librenms-librenms-1.33.01_GH0.tar.gz) = 60473613 +TIMESTAMP = 1515895316 +SHA256 (librenms-librenms-1.35_GH0.tar.gz) = 6ac5d1164642cdef589487a2d599b774081a6e82e59f5fffca2c566b69d98850 +SIZE (librenms-librenms-1.35_GH0.tar.gz) = 62664279 Index: head/net-mgmt/librenms/files/patch-poller.php =================================================================== --- head/net-mgmt/librenms/files/patch-poller.php (revision 459371) +++ head/net-mgmt/librenms/files/patch-poller.php (nonexistent) @@ -1,8 +0,0 @@ ---- poller.php.orig 2015-05-27 15:48:33 UTC -+++ poller.php -@@ -1,4 +1,4 @@ --#!/usr/bin/env php -+#!%%LOCALBASE%%/bin/php - name = $lock_name; +- $this->file = "$config[install_dir]/.$lock_name.lock"; ++ $this->file = "/tmp/.$lock_name.lock"; + $this->handle = fopen($this->file, "w+"); + } + Property changes on: head/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php =================================================================== --- head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php (nonexistent) +++ head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php (revision 459372) @@ -0,0 +1,33 @@ +--- LibreNMS/Validations/User.php.orig 2017-12-31 20:48:36 UTC ++++ LibreNMS/Validations/User.php +@@ -62,29 +62,7 @@ class User implements ValidationGroup + + + // Let's test the user configured if we have it +- if (Config::has('user')) { +- $dir = Config::get('install_dir'); +- +- $find_result = rtrim(`find $dir \! -user $lnms_username -o \! -group $lnms_groupname &> /dev/null`); +- if (!empty($find_result)) { +- // Ignore the two logs that may be created by the +- $files = array_diff(explode(PHP_EOL, $find_result), array( +- "$dir/logs/error_log", +- "$dir/logs/access_log", +- )); +- +- if (!empty($files)) { +- $result = ValidationResult::fail( +- "We have found some files that are owned by a different user than $lnms_username, this " . +- 'will stop you updating automatically and / or rrd files being updated causing graphs to fail.' +- ) +- ->setFix("chown -R $lnms_username:$lnms_groupname $dir") +- ->setList('Files', $files); +- +- $validator->result($result); +- } +- } +- } else { ++ if (!Config::has('user')) { + $validator->warn("You don't have \$config['user'] set, this most likely needs to be set to librenms"); + } + Property changes on: head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net-mgmt/librenms/files/patch-config.php.default =================================================================== --- head/net-mgmt/librenms/files/patch-config.php.default (revision 459371) +++ head/net-mgmt/librenms/files/patch-config.php.default (revision 459372) @@ -1,11 +1,11 @@ ---- config.php.default.orig 2017-04-11 17:32:28 UTC +--- config.php.default.orig 2017-12-31 20:48:36 UTC +++ config.php.default @@ -10,7 +10,7 @@ $config['db_name'] = 'librenms'; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install -$config['user'] = 'librenms'; +$config['user'] = 'www'; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname Index: head/net-mgmt/librenms/files/patch-html_install.php =================================================================== --- head/net-mgmt/librenms/files/patch-html_install.php (nonexistent) +++ head/net-mgmt/librenms/files/patch-html_install.php (revision 459372) @@ -0,0 +1,20 @@ +--- html/install.php.orig 2017-12-31 20:48:36 UTC ++++ html/install.php +@@ -364,7 +364,7 @@ $config_file = <<<"EOD" + + // This is the user LibreNMS will run as + //Please ensure this user is created and has the correct permissions to your install +-\$config['user'] = 'librenms'; ++\$config['user'] = 'www'; + + ### Memcached config - We use this to store realtime usage + \$config\['memcached'\]\['enable'\] = FALSE; +@@ -395,7 +395,7 @@ $config_file = <<<"EOD" + #\$config\['nets'\]\[\] = "192.168.0.0/16"; + + # Uncomment the next line to disable daily updates +-#\$config\['update'\] = 0; ++\$config\['update'\] = 0; + EOD; + + if (!file_exists("../config.php")) { Property changes on: head/net-mgmt/librenms/files/patch-html_install.php ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net-mgmt/librenms/files/patch-includes_defaults.inc.php =================================================================== --- head/net-mgmt/librenms/files/patch-includes_defaults.inc.php (revision 459371) +++ head/net-mgmt/librenms/files/patch-includes_defaults.inc.php (revision 459372) @@ -1,34 +1,34 @@ ---- includes/defaults.inc.php.orig 2017-11-01 17:55:06.000000000 +0000 -+++ includes/defaults.inc.php 2017-11-20 23:16:29.419902000 +0000 -@@ -48,19 +48,21 @@ +--- includes/defaults.inc.php.orig 2017-12-31 20:48:36 UTC ++++ includes/defaults.inc.php +@@ -48,19 +48,21 @@ $config['fping_options']['retries'] = 3; $config['fping_options']['timeout'] = 500; $config['fping_options']['count'] = 3; $config['fping_options']['millisec'] = 200; -$config['snmpwalk'] = '/usr/bin/snmpwalk'; -$config['snmpget'] = '/usr/bin/snmpget'; -$config['snmpbulkwalk'] = '/usr/bin/snmpbulkwalk'; +$config['snmpwalk'] = '/usr/local/bin/snmpwalk'; +$config['snmpget'] = '/usr/local/bin/snmpget'; +$config['snmpbulkwalk'] = '/usr/local/bin/snmpbulkwalk'; $config['snmptranslate'] = '/usr/bin/snmptranslate'; $config['whois'] = '/usr/bin/whois'; -$config['ping'] = '/bin/ping'; -$config['mtr'] = '/usr/bin/mtr'; -$config['nmap'] = '/usr/bin/nmap'; +$config['ping'] = '/sbin/ping'; +$config['mtr'] = '/usr/local/bin/mtr'; +$config['nmap'] = '/usr/local/bin/nmap'; $config['nagios_plugins'] = '/usr/lib/nagios/plugins'; -$config['ipmitool'] = '/usr/bin/ipmitool'; -$config['virsh'] = '/usr/bin/virsh'; -$config['dot'] = '/usr/bin/dot'; -$config['sfdp'] = '/usr/bin/sfdp'; +$config['rrdtool'] = '/usr/local/bin/rrdtool'; +$config['rrdtool_version'] = 1.7; +$config['ipmitool'] = '/usr/local/bin/ipmitool'; +$config['virsh'] = '/usr/lacal/bin/virsh'; +$config['dot'] = '/usr/local/bin/dot'; +$config['sfdp'] = '/usr/local/bin/sfdp'; - // Memcached - Keep immediate statistics - $config['memcached']['enable'] = false; + $config['slow_statistics'] = true; + // THIS WILL CHANGE TO FALSE IN FUTURE Index: head/net-mgmt/librenms/files/patch-poller-wrapper.py =================================================================== --- head/net-mgmt/librenms/files/patch-poller-wrapper.py (revision 459371) +++ head/net-mgmt/librenms/files/patch-poller-wrapper.py (revision 459372) @@ -1,17 +1,11 @@ ---- poller-wrapper.py.orig 2017-05-28 21:54:20 UTC +--- poller-wrapper.py.orig 2018-01-14 15:32:19 UTC +++ poller-wrapper.py -@@ -1,4 +1,4 @@ --#! /usr/bin/env python2 -+#! %%LOCALBASE%%/bin/python - """ - poller-wrapper A small tool which wraps around the poller and tries to - guide the polling process with a more modern approach with a @@ -36,6 +36,8 @@ except: print "threading, Queue, sys, subprocess, time, os, json" sys.exit(2) +os.environ['PATH'] += ':%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin' + try: import MySQLdb except: