Index: net-mgmt/librenms/Makefile =================================================================== --- net-mgmt/librenms/Makefile +++ net-mgmt/librenms/Makefile @@ -2,8 +2,8 @@ # $FreeBSD$ PORTNAME= librenms -PORTVERSION= 1.33.01 -PORTREVISION= 1 +PORTVERSION= 1.35 +PORTREVISION= 0 PORTEPOCH= 1 CATEGORIES= net-mgmt @@ -15,7 +15,7 @@ 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 \ @@ -40,9 +40,10 @@ 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 @@ -79,84 +80,74 @@ 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} ${STAGEDIR}/${PREFIX}/etc/newsyslog.conf.d .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 {} \; + ${INSTALL_DATA} ${WRKDIR}/librenms.conf ${STAGEDIR}/${PREFIX}/etc/newsyslog.conf.d/librenms.conf 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} "etc/newsyslog.conf.d/librenms.conf" >> ${TMPPLIST} + @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/logs" >> ${TMPPLIST} + @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/rrd" >> ${TMPPLIST} .include Index: net-mgmt/librenms/distinfo =================================================================== --- net-mgmt/librenms/distinfo +++ net-mgmt/librenms/distinfo @@ -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: net-mgmt/librenms/files/librenms.conf.in =================================================================== --- /dev/null +++ net-mgmt/librenms/files/librenms.conf.in @@ -0,0 +1,6 @@ +# configuration file for newsyslog for LibreNMS +# +# see newsyslog.conf(5) for details + +# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] +%%WWWDIR%%/logs/librenms.log www:www 644 7 100 * J Index: net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php =================================================================== --- /dev/null +++ net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php @@ -0,0 +1,11 @@ +--- LibreNMS/Util/FileLock.php.orig 2018-01-14 15:32:35 UTC ++++ LibreNMS/Util/FileLock.php +@@ -45,7 +45,7 @@ class FileLock implements Lock + global $config; + + $this->name = $lock_name; +- $this->file = "$config[install_dir]/.$lock_name.lock"; ++ $this->file = "/tmp/.$lock_name.lock"; + $this->handle = fopen($this->file, "w+"); + } + Index: net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php =================================================================== --- /dev/null +++ net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php @@ -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"); + } + Index: net-mgmt/librenms/files/patch-config.php.default =================================================================== --- net-mgmt/librenms/files/patch-config.php.default +++ net-mgmt/librenms/files/patch-config.php.default @@ -1,4 +1,4 @@ ---- 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'; Index: net-mgmt/librenms/files/patch-html_install.php =================================================================== --- /dev/null +++ net-mgmt/librenms/files/patch-html_install.php @@ -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")) { Index: net-mgmt/librenms/files/patch-includes_defaults.inc.php =================================================================== --- net-mgmt/librenms/files/patch-includes_defaults.inc.php +++ net-mgmt/librenms/files/patch-includes_defaults.inc.php @@ -1,6 +1,6 @@ ---- 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; @@ -30,5 +30,5 @@ +$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: net-mgmt/librenms/files/patch-poller-wrapper.py =================================================================== --- net-mgmt/librenms/files/patch-poller-wrapper.py +++ net-mgmt/librenms/files/patch-poller-wrapper.py @@ -1,11 +1,5 @@ ---- 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) Index: net-mgmt/librenms/files/patch-poller.php =================================================================== --- net-mgmt/librenms/files/patch-poller.php +++ /dev/null @@ -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 -