Index: head/net-mgmt/librenms/Makefile =================================================================== --- head/net-mgmt/librenms/Makefile (revision 533463) +++ head/net-mgmt/librenms/Makefile (revision 533464) @@ -1,207 +1,207 @@ # Created by: Muhammad Moinur Rahman # $FreeBSD$ PORTNAME= librenms -PORTVERSION= 1.62.2 +PORTVERSION= 1.63 PORTEPOCH= 1 -PORTREVISION= 1 +PORTREVISION= 0 CATEGORIES= net-mgmt MASTER_SITES= LOCAL/dvl:vendor DISTFILES= ${PORTNAME}-vendor-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}${EXTRACT_SUFX}:vendor MAINTAINER= dvl@FreeBSD.org COMMENT= Autodiscovering PHP/MySQL/SNMP based network monitoring LICENSE= GPLv3 USES= python${PY_MYSQL} shebangfix # 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= 1586016242 +RELEASE_TIMESTAMP= 1588045962 # perhaps we also need python-memcache python-mysqldb RUN_DEPENDS+= rrdtool:databases/rrdtool \ dot:graphics/graphviz \ ${LOCALBASE}/share/pear/Net/IPv4.php:net/pear-Net_IPv4@${PHP_FLAVOR} \ ${LOCALBASE}/share/pear/Net/IPv6.php:net/pear-Net_IPv6@${PHP_FLAVOR} \ snmpget:net-mgmt/net-snmp \ bash:shells/bash \ sudo:security/sudo USE_PHP= ctype curl dom fileinfo filter gd hash json ldap mbstring \ mysqli openssl pdo pdo_mysql phar posix session simplexml \ snmp sockets tokenizer xml xmlwriter zip USE_GITHUB= yes GH_ACCOUNT= librenms USERS= www WWW_USER= www NO_BUILD= yes OPTIONS_DEFINE= FPING IPMITOOL LIBVIRT MYSQLD NAGPLUGINS NMAP PYPOLLER WMIC DOCS EXAMPLES X11 OPTIONS_DEFAULT= FPING IPMITOOL LIBVIRT NAGPLUGINS NMAP PYPOLLER WMIC FPING_DESC= Enable fping support ping monitoring IPMITOOL_DESC= Enable support for monitoring hardware IPMI MYSQLD_DESC= Use local MySQL server WMIC_DESC= Enable support for WMI polling PYPOLLER_DESC= Enable Python Poller Wrapper FPING_RUN_DEPENDS= fping:net/fping IPMITOOL_RUN_DEPENDS= ipmitool:sysutils/ipmitool LIBVIRT_RUN_DEPENDS= virsh:devel/libvirt NAGPLUGINS_RUN_DEPENDS= ${LOCALBASE}/libexec/nagios/check_nagios:net-mgmt/nagios-plugins NMAP_RUN_DEPENDS= nmap:security/nmap PYPOLLER_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}MySQLdb>=1.2.3:databases/py-MySQLdb@${PY_FLAVOR} PYPOLLER_VARS= PY_MYSQL=:2.7 X11_RUN_DEPENDS= Magick-config:graphics/ImageMagick6 \ mtr:net/mtr X11_RUN_DEPENDS_OFF= Magick-config:graphics/ImageMagick6-nox11 \ mtr:net/mtr-nox11 WMIC_RUN_DEPENDS= wmic:net-mgmt/wmi-client MYSQLD_USES= mysql:server MYSQLD_USES_OFF= mysql:client 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 \ scripts/Migration/Standard_Conversion/mkdir.sh \ scripts/Migration/XML_Conversion/convert.sh \ scripts/Migration/XML_Conversion/destwork.sh \ scripts/Migration/XML_Conversion/mkdir.sh \ scripts/removespikes.pl scripts/removespikes.php scripts/watchmaillog/watchmaillog.pl \ poller.php poller-wrapper.py \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/generate-includes.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/flush-definition-cache.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/old-remove-require-once.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/config-scanner.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/add-vimline.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/remove-trailing-whitespace.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/merge-library.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/old-extract-schema.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/rename-config.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/generate-standalone.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/generate-schema-cache.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/old-remove-schema-def.php \ ../${PORTNAME}-vendor-${PORTVERSION}/ezyang/htmlpurifier/maintenance/generate-entity-file.php \ ../${PORTNAME}-vendor-${PORTVERSION}/swiftmailer/swiftmailer/lib/swiftmailer_generate_mimes_config.php \ ../${PORTNAME}-vendor-${PORTVERSION}/tecnickcom/tcpdf/tools/tcpdf_addfont.php SUB_FILES+= pkg-message SUB_LIST+= PHP="${PHPBASE}/bin/php" PYTHON=${PYTHON_CMD} ROOT_FILES= addhost.php adduser.php alerts.php artisan billing-calculate.php \ build-base.php build.sql check-services.php composer.json \ composer.lock config.php.default config_to_json.php cronic daily.php \ delhost.php discovery-wrapper.py discovery.php dist-pollers.php irc.php \ librenms-service.py mkdocs.yml pbin.sh phpunit.xml ping.php poll-billing.php poller.php poller-service.py \ poller-wrapper.py readmegen.yml renamehost.php services-wrapper.py snmp-scan.py \ snmptrap.php syslog.php validate.php SCRIPT_FILES= daily.sh lnms ROOT_DIRS= LibreNMS app bootstrap config contrib database doc html includes licenses logs mibs misc resources routes scripts sql-schema storage tests # these are directories which require a generic @DIR entry in pkg-plist OTHER_DIRS= html/js/lang \ + resources/views/overview/custom \ storage/app/public \ storage/debugbar \ storage/framework/cache/data \ storage/framework/testing \ storage/logs \ tests/Browser/console \ tests/Browser/screenshots \ vendor/amenadiel/jpgraph/tests/_output \ vendor/amenadiel/jpgraph/tests/_support/_generated \ vendor/laravel/laravel/bootstrap/cache \ vendor/laravel/laravel/storage/app/public \ vendor/laravel/laravel/storage/framework/cache \ vendor/laravel/laravel/storage/framework/cache/data \ vendor/laravel/laravel/storage/framework/sessions \ vendor/laravel/laravel/storage/framework/testing \ vendor/laravel/laravel/storage/framework/views \ - vendor/laravel/laravel/storage/logs + vendor/laravel/laravel/storage/logs \ + vendor/php-amqplib/php-amqplib/docs DOCS= AUTHORS.md CHANGELOG.md CONTRIBUTING.md LICENSE.txt README.md PORTDOCS= * PORTEXAMPLES= snmp.conf.example snmpd.conf.example NO_ARCH= yes post-patch: @${REINPLACE_CMD} 's|%%PORTNAME%%|${PORTNAME}|g' ${WRKSRC}/config.php.default @${REINPLACE_CMD} 's|%%WWW_USER%%|${WWW_USER}|g' ${WRKSRC}/config.php.default @${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} 's|%%RELEASE_TIMESTAMP%%|${RELEASE_TIMESTAMP}|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} .for dir in ${ROOT_DIRS} ${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 .for f in ${SCRIPT_FILES} ${INSTALL_SCRIPT} ${WRKSRC}/${f} ${STAGEDIR}/${WWWDIR} .endfor ${MKDIR} ${STAGEDIR}/${WWWDIR}/vendor (cd ${WRKDIR}/${PORTNAME}-vendor-${PORTVERSION} && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/vendor) # 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 ${FIND} ${STAGEDIR}/${WWWDIR} -type f -name '*.py' -or -type f -name \ '*.php' -exec ${CHMOD} +x {} \; # these values should be outside the www tree now ${MKDIR} ${STAGEDIR}/var/log/${PORTNAME} ${MKDIR} ${STAGEDIR}/var/db/${PORTNAME} do-install-DOCS-on: ${MKDIR} ${STAGEDIR}/${DOCSDIR} .for f in ${DOCS} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${DOCSDIR} .endfor cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}/${DOCSDIR} do-install-EXAMPLES-on: ${MKDIR} ${STAGEDIR}/${EXAMPLESDIR} .for f in ${PORTEXAMPLES} ${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${EXAMPLESDIR} .endfor post-install: @${FIND} -s ${STAGEDIR}${WWWDIR} -type f '(' -name '*.orig' -or -name '*.bak' -or -name '.gitignore' ')' -delete @${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \ ${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST} # we do this file separately because it needs a different chmod/chown # it will eventually contains secrets ${INSTALL_DATA} ${WRKSRC}/.env.example ${STAGEDIR}/${WWWDIR} @${ECHO_CMD} "@(root,www,0750) ${WWWDIR}/.env.example" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/logs" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/bootstrap/cache" >> ${TMPPLIST} -# @${ECHO_CMD} "@(www,www,0775) ${WWWDIR}/daily.sh" >> ${TMPPLIST} -# @${ECHO_CMD} "@(www,www,0775) ${WWWDIR}/lnms" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/storage" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/storage/framework/cache" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/storage/framework/sessions" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) ${WWWDIR}/storage/framework/views" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) /var/log/${PORTNAME}" >> ${TMPPLIST} @${ECHO_CMD} "@dir(www,www,0775) /var/db/${PORTNAME}" >> ${TMPPLIST} .for f in ${OTHER_DIRS} @${ECHO_CMD} "@dir(root,www,0775) ${WWWDIR}/${f}" >> ${TMPPLIST} .endfor .include Index: head/net-mgmt/librenms/distinfo =================================================================== --- head/net-mgmt/librenms/distinfo (revision 533463) +++ head/net-mgmt/librenms/distinfo (revision 533464) @@ -1,5 +1,5 @@ -TIMESTAMP = 1586120645 -SHA256 (librenms-vendor-1.62.2.tar.gz) = 1c5f171dc851e946cd92efe65678f878dd9c5fd0d6493d2e55ea37eab71b5b32 -SIZE (librenms-vendor-1.62.2.tar.gz) = 64935153 -SHA256 (librenms-librenms-1.62.2_GH0.tar.gz) = 40fa9d4f4bf0d2cf43642e879210d2915440b0b09ddf448d014a11876b337e70 -SIZE (librenms-librenms-1.62.2_GH0.tar.gz) = 43365349 +TIMESTAMP = 1588252287 +SHA256 (librenms-vendor-1.63.tar.gz) = 4c6bd2ad777d14752c7fe1ba22bae09079dd5d2f75dcfcfb48d7e42c804521e7 +SIZE (librenms-vendor-1.63.tar.gz) = 27496021 +SHA256 (librenms-librenms-1.63_GH0.tar.gz) = ac114391958327893013ed8e2e23aeef3f384a398d1fd2347aee91e2689eed43 +SIZE (librenms-librenms-1.63_GH0.tar.gz) = 43790047 Index: head/net-mgmt/librenms/files/patch-LibreNMS_Validations_Programs.php =================================================================== --- head/net-mgmt/librenms/files/patch-LibreNMS_Validations_Programs.php (revision 533463) +++ head/net-mgmt/librenms/files/patch-LibreNMS_Validations_Programs.php (revision 533464) @@ -1,10 +1,10 @@ ---- LibreNMS/Validations/Programs.php.orig 2018-10-17 10:33:28 UTC +--- LibreNMS/Validations/Programs.php.orig 2020-04-28 03:52:42 UTC +++ LibreNMS/Validations/Programs.php -@@ -73,6 +73,7 @@ class Programs extends BaseValidation +@@ -74,6 +74,7 @@ class Programs extends BaseValidation return; } + $validator->warn("fping FAILURES can be ignored if running LibreNMS in a jail without ::1. You may want to test it manually: fping ::1"); $validator->fail( "$bin could not be executed. $bin must have CAP_NET_RAW capability (getcap) or suid. Selinux exlusions may be required.\n ($output)" ); Index: head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php =================================================================== --- head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php (revision 533463) +++ head/net-mgmt/librenms/files/patch-LibreNMS_Validations_User.php (revision 533464) @@ -1,18 +1,18 @@ ---- LibreNMS/Validations/User.php.orig 2018-10-17 10:33:28 UTC +--- LibreNMS/Validations/User.php.orig 2020-04-28 03:52:42 UTC +++ LibreNMS/Validations/User.php -@@ -71,6 +71,7 @@ class User extends BaseValidation - "sudo setfacl -d -m g::rwx $rrd_dir $log_dir $dir/bootstrap/cache/ $dir/storage/\n" . - "sudo chmod -R ug=rwX $rrd_dir $log_dir $dir/bootstrap/cache/ $dir/storage/\n"; +@@ -85,6 +85,7 @@ class User extends BaseValidation + "sudo chmod -R ug=rwX $rrd_dir $log_dir $dir/bootstrap/cache/ $dir/storage/", + ]; + if (!Config::get('installed_from_package')) { $find_result = rtrim(`find $dir \! -user $lnms_username -o \! -group $lnms_groupname 2> /dev/null`); if (!empty($find_result)) { // Ignore files created by the webserver -@@ -124,6 +125,7 @@ class User extends BaseValidation +@@ -137,6 +138,7 @@ class User extends BaseValidation + $validator->result(ValidationResult::fail( 'Some folders have incorrect file permissions, this may cause issues.' )->setFix($fix)->setList('Files', explode(PHP_EOL, $incorrect))); - } + } + } } else { $validator->warn("You don't have \$config['user'] set, this most likely needs to be set to librenms"); - } Index: head/net-mgmt/librenms/files/patch-config.php.default =================================================================== --- head/net-mgmt/librenms/files/patch-config.php.default (revision 533463) +++ head/net-mgmt/librenms/files/patch-config.php.default (revision 533464) @@ -1,47 +1,47 @@ ---- config.php.default.orig 2020-03-02 04:03:32 UTC +--- config.php.default.orig 2020-04-28 03:52:42 UTC +++ config.php.default @@ -2,15 +2,20 @@ - ## Have a look in includes/defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! + ## Have a look in misc/config_definitions.json for examples of settings you can set here. DO NOT EDIT misc/config_definitions.json! +$config['installed_from_package'] = true; + ### Database config $config['db_host'] = 'localhost'; $config['db_user'] = 'USERNAME'; $config['db_pass'] = 'PASSWORD'; $config['db_name'] = 'librenms'; +$config['log_dir'] = '/var/log/librenms'; +$config['rrd_dir'] = '/var/db/librenms/rrd'; + // 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'; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname @@ -49,3 +54,22 @@ $config['enable_billing'] = 1; # Enable the in-built services support (Nagios plugins) $config['show_services'] = 1; + +# These paths are supplied by the FreeBSD port and correct those found in +# the code. + +$config['snmpwalk'] = '/usr/local/bin/snmpwalk'; +$config['snmpget'] = '/usr/local/bin/snmpget'; +$config['snmpbulkwalk'] = '/usr/local/bin/snmpbulkwalk'; +$config['snmptranslate'] = '/usr/local/bin/snmptranslate'; + +$config['ping'] = '/sbin/ping'; +$config['mtr'] = '/usr/local/bin/mtr'; +$config['nmap'] = '/usr/local/bin/nmap'; + +$config['nagios_plugins'] = '/usr/local/libexec/nagios'; +$config['ipmitool'] = '/usr/local/bin/ipmitool'; +$config['virsh'] = '/usr/local/bin/virsh'; +$config['dot'] = '/usr/local/bin/dot'; +$config['sfdp'] = '/usr/local/bin/sfdp'; +$config['nfdump'] = '/usr/local/bin/nfdump'; Index: head/net-mgmt/librenms/files/patch-html_install.php =================================================================== --- head/net-mgmt/librenms/files/patch-html_install.php (revision 533463) +++ head/net-mgmt/librenms/files/patch-html_install.php (revision 533464) @@ -1,37 +1,28 @@ ---- html/install.php.orig 2019-05-12 00:03:11 UTC +--- html/install.php.orig 2020-04-30 14:13:30 UTC +++ html/install.php -@@ -362,7 +362,7 @@ $config_file = <<<"EOD" +@@ -418,14 +418,14 @@ if ($stage == 0) { - // 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'; - - ### Locations - it is recommended to keep the default - #\$config\['install_dir'\] = "$install_dir"; -@@ -392,14 +392,14 @@ - # Update configuration #\$config\['update_channel'\] = 'release'; # uncomment to follow the monthly release channel -#\$config\['update'\] = 0; # uncomment to completely disable updates +\$config\['update'\] = 0; # uncomment to completely disable updates EOD; - if (!file_exists("{$librenms_dir}/config.php")) { - $conf = fopen("config.php", 'w'); - if ($conf != false) { - if (fwrite($conf, "We couldn't create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /opt/librenms/)"); ++ echo("
We couldn't create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /usr/local/www/librenms/)
"); + echo("
<?php\n".stripslashes($config_file)."
"); + } else { + $config_file = stripslashes($config_file); +@@ -433,7 +433,7 @@ EOD; + echo("
The config file has been created
"); + } + } else { - echo("
We couldn't create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /opt/librenms/)
"); + echo("
We couldn't create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /usr/local/www/librenms/)
"); echo("
<?php\n".stripslashes($config_file)."
"); - } else { - $config_file = stripslashes($config_file); -@@ -404,7 +404,7 @@ if (!file_exists("config.php")) { - echo("
The config file has been created
"); } - } else { -- echo("
We couldn't create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /opt/librenms/)
"); -+ echo("
We couldn't create the config.php file, please create this manually before continuing by copying the below into a config.php in the root directory of your install (typically /usr/local/www/librenms/)
"); - echo("
<?php\n".stripslashes($config_file)."
"); } - }