Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jan 2018 20:23:31 +0000 (UTC)
From:      Mark Felder <feld@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org
Subject:   svn commit: r459374 - in branches/2018Q1/net-mgmt/librenms: . files
Message-ID:  <201801182023.w0IKNV2O080288@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801182023.w0IKNV2O080288>