aboutsummaryrefslogtreecommitdiffstats
path: root/net-mgmt/librenms
diff options
context:
space:
mode:
authorfeld <feld@FreeBSD.org>2018-01-19 04:21:42 +0800
committerfeld <feld@FreeBSD.org>2018-01-19 04:21:42 +0800
commitc0b885230933343dae3fdecfd7ee8d0ced4f761e (patch)
treedcb47bde03a694f99ce3d419f277188877f393b2 /net-mgmt/librenms
parent6dc85c0c661060a426c9cf65750a2db793c547ef (diff)
downloadfreebsd-ports-gnome-c0b885230933343dae3fdecfd7ee8d0ced4f761e.tar.gz
freebsd-ports-gnome-c0b885230933343dae3fdecfd7ee8d0ced4f761e.tar.zst
freebsd-ports-gnome-c0b885230933343dae3fdecfd7ee8d0ced4f761e.zip
net-mgmt/librenms: Update to 1.35, many improvements
Improvements: - All files should be owned root:wheel except logs and rrd which need to be writable by the app - Add missing php posix extension - Do not install config.php by default. This breaks the install process which won't run if this file exists - Clean up automatic PLIST creation: don't install .orig or .bak files, don't add @dir as they aren't needed - Patch LibreNMS to make /validate/ page not produce warnings about files not being writable (for git updates) - Remove the Updates validation check altogether as we won't be using git to update - Patch the User validation check to only check the logs and rrd dir and ensure the correct user owns them - Change the default user in the generated config to "www" - Patch the File Lock code to put the lock file in /tmp and not in the WWWDIR which should not be writable - Update message in installer to use WWWDIR as suggested path for config.php - Use shebangfix instead of patch where applicable - Fix APACHEMOD port option and declaration of the USES=php PR: 225161 MFH: 2018Q1 Differential Revision: https://reviews.freebsd.org/D13907
Diffstat (limited to 'net-mgmt/librenms')
-rw-r--r--net-mgmt/librenms/Makefile65
-rw-r--r--net-mgmt/librenms/distinfo6
-rw-r--r--net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php11
-rw-r--r--net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php33
-rw-r--r--net-mgmt/librenms/files/patch-config.php.default2
-rw-r--r--net-mgmt/librenms/files/patch-html_install.php20
-rw-r--r--net-mgmt/librenms/files/patch-includes_defaults.inc.php10
-rw-r--r--net-mgmt/librenms/files/patch-poller-wrapper.py8
-rw-r--r--net-mgmt/librenms/files/patch-poller.php8
9 files changed, 101 insertions, 62 deletions
diff --git a/net-mgmt/librenms/Makefile b/net-mgmt/librenms/Makefile
index 8df5ef9f6282..b12e7ef93d4e 100644
--- a/net-mgmt/librenms/Makefile
+++ b/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 @@ 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 \
@@ -40,9 +40,10 @@ SHEBANG_FILES= scripts/auth_test.php scripts/deploy-docs.sh scripts/github-remov
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,72 @@ 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 <bsd.port.mk>
diff --git a/net-mgmt/librenms/distinfo b/net-mgmt/librenms/distinfo
index 1a32f00e4573..5248eebb4f95 100644
--- a/net-mgmt/librenms/distinfo
+++ b/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
diff --git a/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php b/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php
new file mode 100644
index 000000000000..ac1e6a1fad6d
--- /dev/null
+++ b/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+");
+ }
+
diff --git a/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php b/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php
new file mode 100644
index 000000000000..bd1081d060fd
--- /dev/null
+++ b/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");
+ }
+
diff --git a/net-mgmt/librenms/files/patch-config.php.default b/net-mgmt/librenms/files/patch-config.php.default
index c10b1cdda1e5..c1eaa777ad17 100644
--- a/net-mgmt/librenms/files/patch-config.php.default
+++ b/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';
diff --git a/net-mgmt/librenms/files/patch-html_install.php b/net-mgmt/librenms/files/patch-html_install.php
new file mode 100644
index 000000000000..9973465e2a32
--- /dev/null
+++ b/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")) {
diff --git a/net-mgmt/librenms/files/patch-includes_defaults.inc.php b/net-mgmt/librenms/files/patch-includes_defaults.inc.php
index 27ade5e35b20..7921bfa94df5 100644
--- a/net-mgmt/librenms/files/patch-includes_defaults.inc.php
+++ b/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
diff --git a/net-mgmt/librenms/files/patch-poller-wrapper.py b/net-mgmt/librenms/files/patch-poller-wrapper.py
index ea7640349fc1..d0ab95987a67 100644
--- a/net-mgmt/librenms/files/patch-poller-wrapper.py
+++ b/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)
diff --git a/net-mgmt/librenms/files/patch-poller.php b/net-mgmt/librenms/files/patch-poller.php
deleted file mode 100644
index 2633bb84463d..000000000000
--- a/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
- <?php
-
- /**