svn commit: r459374 - in branches/2018Q1/net-mgmt/librenms: . files
Mark Felder
feld at FreeBSD.org
Thu Jan 18 20:23:34 UTC 2018
Author: feld
Date: Thu Jan 18 20:23:31 2018
New Revision: 459374
URL: https://svnweb.freebsd.org/changeset/ports/459374
Log:
MFH: r459372
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
Differential Revision: https://reviews.freebsd.org/D13907
Added:
branches/2018Q1/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php
- copied unchanged from r459372, head/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php
branches/2018Q1/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php
- copied unchanged from r459372, head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php
branches/2018Q1/net-mgmt/librenms/files/patch-html_install.php
- copied unchanged from r459372, head/net-mgmt/librenms/files/patch-html_install.php
Deleted:
branches/2018Q1/net-mgmt/librenms/files/patch-poller.php
Modified:
branches/2018Q1/net-mgmt/librenms/Makefile
branches/2018Q1/net-mgmt/librenms/distinfo
branches/2018Q1/net-mgmt/librenms/files/patch-config.php.default
branches/2018Q1/net-mgmt/librenms/files/patch-includes_defaults.inc.php
branches/2018Q1/net-mgmt/librenms/files/patch-poller-wrapper.py
Directory Properties:
branches/2018Q1/ (props changed)
Modified: branches/2018Q1/net-mgmt/librenms/Makefile
==============================================================================
--- branches/2018Q1/net-mgmt/librenms/Makefile Thu Jan 18 20:22:01 2018 (r459373)
+++ branches/2018Q1/net-mgmt/librenms/Makefile Thu Jan 18 20:23:31 2018 (r459374)
@@ -2,8 +2,8 @@
# $FreeBSD$
PORTNAME= librenms
-PORTVERSION= 1.33.01
-PORTREVISION= 1
+PORTVERSION= 1.35
+PORTREVISION= 0
PORTEPOCH= 1
CATEGORIES= net-mgmt
@@ -40,9 +40,10 @@ SHEBANG_FILES= scripts/auth_test.php scripts/deploy-do
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
@@ -78,84 +79,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>
Modified: branches/2018Q1/net-mgmt/librenms/distinfo
==============================================================================
--- branches/2018Q1/net-mgmt/librenms/distinfo Thu Jan 18 20:22:01 2018 (r459373)
+++ branches/2018Q1/net-mgmt/librenms/distinfo Thu Jan 18 20:23:31 2018 (r459374)
@@ -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
Copied: branches/2018Q1/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php (from r459372, head/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2018Q1/net-mgmt/librenms/files/patch-LibreNMS_Util_FileLock.php Thu Jan 18 20:23:31 2018 (r459374, copy of r459372, head/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+");
+ }
+
Copied: branches/2018Q1/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php (from r459372, head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2018Q1/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php Thu Jan 18 20:23:31 2018 (r459374, copy of r459372, head/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");
+ }
+
Modified: branches/2018Q1/net-mgmt/librenms/files/patch-config.php.default
==============================================================================
--- branches/2018Q1/net-mgmt/librenms/files/patch-config.php.default Thu Jan 18 20:22:01 2018 (r459373)
+++ branches/2018Q1/net-mgmt/librenms/files/patch-config.php.default Thu Jan 18 20:23:31 2018 (r459374)
@@ -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';
Copied: branches/2018Q1/net-mgmt/librenms/files/patch-html_install.php (from r459372, head/net-mgmt/librenms/files/patch-html_install.php)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ branches/2018Q1/net-mgmt/librenms/files/patch-html_install.php Thu Jan 18 20:23:31 2018 (r459374, copy of r459372, head/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")) {
Modified: branches/2018Q1/net-mgmt/librenms/files/patch-includes_defaults.inc.php
==============================================================================
--- branches/2018Q1/net-mgmt/librenms/files/patch-includes_defaults.inc.php Thu Jan 18 20:22:01 2018 (r459373)
+++ branches/2018Q1/net-mgmt/librenms/files/patch-includes_defaults.inc.php Thu Jan 18 20:23:31 2018 (r459374)
@@ -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
Modified: branches/2018Q1/net-mgmt/librenms/files/patch-poller-wrapper.py
==============================================================================
--- branches/2018Q1/net-mgmt/librenms/files/patch-poller-wrapper.py Thu Jan 18 20:22:01 2018 (r459373)
+++ branches/2018Q1/net-mgmt/librenms/files/patch-poller-wrapper.py Thu Jan 18 20:23:31 2018 (r459374)
@@ -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)
More information about the svn-ports-all
mailing list