Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Aug 2023 13:44:42 GMT
From:      Dan Langille <dvl@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: ce403815a76a - main - net-mgmt/librenms: Update to 23.8.2
Message-ID:  <202308221344.37MDigI6052923@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dvl:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ce403815a76af31dfd323b63415be7f7b9303745

commit ce403815a76af31dfd323b63415be7f7b9303745
Author:     Dan Langille <dvl@FreeBSD.org>
AuthorDate: 2023-08-22 13:26:33 +0000
Commit:     Dan Langille <dvl@FreeBSD.org>
CommitDate: 2023-08-22 13:44:38 +0000

    net-mgmt/librenms: Update to 23.8.2
    
    This port update includes a new cron job which launches the schedule
    process. This is distinct from the librenms-service.py daemon recently
    introduced and also from the previous poller script.
    See /usr/local/etc/cron.d/librenms
    
    This update also installs symlink between /usr/local/bin/lnms and
    %%%WWWDIR%%/lnms - this script is used during upgrades and always had
    permissions issues when run as non-root. The script attempts to enforce
    Linux-specific permissions (e.g. www owned). This symlink satisfies a
    validation check the code does.
    
    This commited patches the validation check for lnms. The check assumes
    /usr/local/bin is on the path but that is not the case when librenms is
    running. Instead, just check that the symlink exists.
    
    files/pkg-message.in - updated to reflect lnms symlink changes
    
    re: https://github.com/librenms/librenms/releases/tag/23.8.2
    
    These releases were skipped over:
    
    * https://github.com/librenms/librenms/releases/tag/23.8.1
    * https://github.com/librenms/librenms/releases/tag/23.8.0
---
 net-mgmt/librenms/Makefile                         | 26 ++++++++++++++--------
 net-mgmt/librenms/distinfo                         | 10 ++++-----
 .../files/patch-LibreNMS_Validations_System.php    | 24 ++++++++++++++++++++
 net-mgmt/librenms/files/patch-LibreNMS_wrapper.py  | 12 +++++-----
 .../files/patch-dist_librenms-scheduler.cron       |  6 +++++
 net-mgmt/librenms/files/pkg-message.in             | 19 +++++-----------
 6 files changed, 63 insertions(+), 34 deletions(-)

diff --git a/net-mgmt/librenms/Makefile b/net-mgmt/librenms/Makefile
index 290ff8c4554e..3865be12ea1c 100644
--- a/net-mgmt/librenms/Makefile
+++ b/net-mgmt/librenms/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	librenms
-PORTVERSION=	23.7.0
-PORTREVISION=	2
+PORTVERSION=	23.8.2
 PORTEPOCH=	1
 CATEGORIES=	net-mgmt
 MASTER_SITES=	LOCAL/dvl:vendor
@@ -45,7 +44,6 @@ SHEBANG_FILES=	../${PORTNAME}-vendor-${PORTVERSION}/tecnickcom/tcpdf/tools/tcpdf
 		../librenms-vendor-${PORTVERSION}/justinrainbow/json-schema/bin/validate-json \
 		../librenms-vendor-${PORTVERSION}/nesbot/carbon/bin/carbon \
 		../librenms-vendor-${PORTVERSION}/nikic/php-parser/bin/php-parse \
-		../librenms-vendor-${PORTVERSION}/predis/predis/bin/create-command-test \
 		../librenms-vendor-${PORTVERSION}/psy/psysh/bin/psysh \
 		../librenms-vendor-${PORTVERSION}/symfony/error-handler/Resources/bin/extract-tentative-return-types.php \
 		../librenms-vendor-${PORTVERSION}/symfony/error-handler/Resources/bin/patch-type-declarations \
@@ -127,10 +125,10 @@ _SCRIPT_FILES=		daily.sh lnms
 # _RELEASE_TIMESTAMP is used for a patch inside the vendor code
 # it represents the release date via: git show --pretty='%H|%ct' -s 1.42.01
 # It sits here so you remember to update it with each release
-_RELEASE_TIMESTAMP=	1689568961
+_RELEASE_TIMESTAMP=	1692632893
 _ROOT_DIRS=		LibreNMS app bootstrap config database doc html \
 			includes lang licenses mibs misc resources routes \
-			scripts sql-schema tests
+			scripts tests
 _DOCS=			AUTHORS.md CHANGELOG.md CONTRIBUTING.md LICENSE.txt \
 			README.md
 
@@ -150,9 +148,13 @@ post-patch:
 	${REINPLACE_CMD}    's|%%LOCALBASE%%|${LOCALBASE}|g'                  ${WRKSRC}/LibreNMS/Util/Version.php
 	${REINPLACE_CMD}    's|%%PORTVERSION%%|${PORTVERSION}|g'              ${WRKSRC}/LibreNMS/Util/Version.php
 	${REINPLACE_CMD}    's|%%RELEASE_TIMESTAMP%%|${_RELEASE_TIMESTAMP}|g' ${WRKSRC}/LibreNMS/Util/Version.php
+	${REINPLACE_CMD}    's|%%LOCALBASE%%|${LOCALBASE}|g'                  ${WRKSRC}/LibreNMS/Validations/System.php
 	${REINPLACE_CMD}    's|%%LOCALBASE%%|${LOCALBASE}|g'                  ${WRKSRC}/includes/html/output/capture.inc.php
 	${REINPLACE_CMD}    's|%%LOCALBASE%%|${LOCALBASE}|g'                  ${WRKSRC}/config.php.default
 	${REINPLACE_CMD}    's|%%LOCALBASE%%|${LOCALBASE}|g'                  ${WRKSRC}/poller-wrapper.py
+	${REINPLACE_CMD}    's|%%LOCALBASE%%|${LOCALBASE}|g'                  ${WRKSRC}/dist/librenms-scheduler.cron
+	${REINPLACE_CMD}    's|%%WWWDIR%%|${WWWDIR}|g'                        ${WRKSRC}/dist/librenms-scheduler.cron
+	${REINPLACE_CMD}    's|%%USER%%|${WWWOWN}|g'                          ${WRKSRC}/dist/librenms-scheduler.cron
 	${RM} ${WRKSRC}/LibreNMS/Validations/Updates.php
 	${RM} -rf ${WRKSRC}/logs
 
@@ -181,10 +183,6 @@ do-install:
 	${MV} ${STAGEDIR}/${WWWDIR}/vendor/html-js-lang/* ${STAGEDIR}/${WWWDIR}/html/js/lang/
 	${RM} -rf ${STAGEDIR}/${WWWDIR}/vendor/html-js-lang
 
-# Make daily.sh executable
-#	${CHMOD} 0755 ${STAGEDIR}/${WWWDIR}/daily.sh
-# lnms does not fall into any other +x category
-#	${CHMOD} 0755 ${STAGEDIR}/${WWWDIR}/lnms
 # Files in scripts dir should be executable
 	${FIND} ${STAGEDIR}/${WWWDIR}/scripts -type f -exec ${CHMOD} +x {} \;
 # Ensure PHP and Python scripts are executable
@@ -238,4 +236,14 @@ post-install:
 	${ECHO_CMD} "@dir etc/newsyslog.conf.d" >> ${TMPPLIST}
 	${ECHO_CMD} "@sample etc/newsyslog.conf.d/librenms.conf.sample" >> ${TMPPLIST}
 
+	${MKDIR} ${STAGEDIR}/${WWWDIR} ${STAGEDIR}${PREFIX}/etc/cron.d/
+	${INSTALL_DATA} ${WRKSRC}/dist/librenms-scheduler.cron ${STAGEDIR}${PREFIX}/etc/cron.d/librenms
+	${ECHO_CMD} "@dir etc/cron.d" >> ${TMPPLIST}
+	${ECHO_CMD} "etc/cron.d/librenms" >> ${TMPPLIST}
+
+	# avoid the "Global lnms shortcut not installed." validataion warning.
+	# this can also be run as root.
+	${RLN} ${STAGEDIR}${WWWDIR}/lnms ${STAGEDIR}${PREFIX}/bin/lnms
+	${ECHO_CMD} "bin/lnms" >> ${TMPPLIST}
+
 .include <bsd.port.mk>
diff --git a/net-mgmt/librenms/distinfo b/net-mgmt/librenms/distinfo
index 944426062ff4..7b9c2fbf3373 100644
--- a/net-mgmt/librenms/distinfo
+++ b/net-mgmt/librenms/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1689616753
-SHA256 (librenms-vendor-23.7.0.tar.gz) = a452f2e4488e637de673be1975e8d5e0a898f9281ac45d01cd5d70fd0b2dc9f0
-SIZE (librenms-vendor-23.7.0.tar.gz) = 27501794
-SHA256 (librenms-librenms-23.7.0_GH0.tar.gz) = c9a8be8a830b292a490eeb491367b831a463336934629272c4c1f205e792dae3
-SIZE (librenms-librenms-23.7.0_GH0.tar.gz) = 57749912
+TIMESTAMP = 1692633919
+SHA256 (librenms-vendor-23.8.2.tar.gz) = 015bc3d79bd7312fcafbf14161f93093e1f395d134311c38c54daf7d47c445f3
+SIZE (librenms-vendor-23.8.2.tar.gz) = 27762415
+SHA256 (librenms-librenms-23.8.2_GH0.tar.gz) = e232f39bdf2e3238bbcbc60122b59ac7141f5760d7552aee41f3f9382f95a710
+SIZE (librenms-librenms-23.8.2_GH0.tar.gz) = 57980278
diff --git a/net-mgmt/librenms/files/patch-LibreNMS_Validations_System.php b/net-mgmt/librenms/files/patch-LibreNMS_Validations_System.php
new file mode 100644
index 000000000000..744b3533df01
--- /dev/null
+++ b/net-mgmt/librenms/files/patch-LibreNMS_Validations_System.php
@@ -0,0 +1,24 @@
+--- LibreNMS/Validations/System.php.orig	2023-08-21 20:59:01 UTC
++++ LibreNMS/Validations/System.php
+@@ -40,19 +40,12 @@ class System extends BaseValidation
+     {
+         $install_dir = $validator->getBaseDir();
+ 
+-        $lnms = str_replace('lnms:', '', rtrim(`whereis -b lnms 2>/dev/null`));
++        $lnms = rtrim(`/usr/bin/find /usr/local/bin -name lnms`);
+         $path = rtrim(`echo "\$PATH"`);
+ 
+         // if couldn't find lnms and we have PATH
+         if (empty($lnms) && ! empty($path)) {
+-            $paths = explode(':', $path);
+-            $bin = Arr::first(array_intersect([
+-                '/usr/local/bin',
+-                '/usr/bin',
+-                '/bin',
+-            ], $paths), null, Arr::last($paths));
+-
+-            $validator->warn('Global lnms shortcut not installed. lnms command must be run with full path', "sudo ln -s $install_dir/lnms $bin/lnms");
++            $validator->warn('Global lnms shortcut not installed. lnms command must be run with full path', "sudo ln -s $install_dir/lnms %%LOCALBASE%%/bin/lnms");
+         }
+ 
+         $bash_completion_dir = '/etc/bash_completion.d/';
diff --git a/net-mgmt/librenms/files/patch-LibreNMS_wrapper.py b/net-mgmt/librenms/files/patch-LibreNMS_wrapper.py
index dd8aae6e73de..d0f9187b21cf 100644
--- a/net-mgmt/librenms/files/patch-LibreNMS_wrapper.py
+++ b/net-mgmt/librenms/files/patch-LibreNMS_wrapper.py
@@ -1,11 +1,11 @@
---- LibreNMS/wrapper.py.orig	2023-07-30 23:13:00 UTC
+--- LibreNMS/wrapper.py.orig	2023-08-21 15:25:48 UTC
 +++ LibreNMS/wrapper.py
-@@ -278,7 +278,7 @@ def poll_worker(
+@@ -280,7 +280,7 @@ def poll_worker(
                      os.path.dirname(os.path.dirname(os.path.realpath(__file__))),
                      wrappers[wrapper_type]["executable"],
                  )
 -                command = "/usr/bin/env php {} -h {}".format(executable, device_id)
-+                command = "/usr/local/bin/php {} -h {}".format(executable, device_id)
-                 if debug:
-                     command = command + " -d"
-                 exit_code, output = command_runner(
++                command = "/usr/local/bin/php php {} -h {}".format(executable, device_id)
+                 if modules is not None and len(str(modules).strip()):
+                     module_str = re.sub("\s", "", str(modules).strip())
+                     command = command + " -m {}".format(module_str)
diff --git a/net-mgmt/librenms/files/patch-dist_librenms-scheduler.cron b/net-mgmt/librenms/files/patch-dist_librenms-scheduler.cron
new file mode 100644
index 000000000000..8e5019131323
--- /dev/null
+++ b/net-mgmt/librenms/files/patch-dist_librenms-scheduler.cron
@@ -0,0 +1,6 @@
+--- dist/librenms-scheduler.cron.orig	2023-08-21 17:05:45 UTC
++++ dist/librenms-scheduler.cron
+@@ -1 +1,2 @@
+-* * * * * php /opt/librenms/artisan schedule:run --no-ansi --no-interaction > /dev/null 2>&1
++#minute	hour	mday	month	wday	who	command
++*       *       *       *       *       %%USER%% %%LOCALBASE%%/bin/php %%WWWDIR%%/artisan schedule:run --no-ansi --no-interaction > /dev/null 2>&1
diff --git a/net-mgmt/librenms/files/pkg-message.in b/net-mgmt/librenms/files/pkg-message.in
index de2af2e0d07d..9baa7ecdf16a 100644
--- a/net-mgmt/librenms/files/pkg-message.in
+++ b/net-mgmt/librenms/files/pkg-message.in
@@ -100,22 +100,13 @@ EOM
   message: <<EOM
 Depending on the version, you may have to run the upgrade script.
 
-cd %%WWWDIR%%
-./build-base.php
-
-Or the database upgrade script:
-
-./lnms migrate
+sudo %%PREFIX%%/bin/lnms migrate
 
 NOTE: that script is particular about who runs it and ownership.
-You might have to chown www first, then:
-
-chown www lnms
-su -fm www
-./lnms migrate
-exit
-chown root lnms
-
+Previously, it was suggested you avoid this via chown when using
+the script %%WWWDIR%%/lnms
+Now, a symlink is provided. Using %%PREFIX%%/bin/lnms avoids
+those issues. Use it instead.
 
 re: https://docs.librenms.org/General/Updating/
 



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