diff options
author | Tomáš Mózes <hydrapolic@gmail.com> | 2022-11-06 11:26:22 +0000 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2022-11-06 08:39:24 -0500 |
commit | 09842f299803969fff3faf26d75b5ab6f0f9c3c5 (patch) | |
tree | 4dd7f4f586710de245f9dfc56df5566b79f12936 /net-analyzer | |
parent | app-admin/mcelog: add 190 (diff) | |
download | gentoo-09842f299803969fff3faf26d75b5ab6f0f9c3c5.tar.gz gentoo-09842f299803969fff3faf26d75b5ab6f0f9c3c5.tar.bz2 gentoo-09842f299803969fff3faf26d75b5ab6f0f9c3c5.zip |
net-analyzer/pnp4nagios: add snapshot with php 8.0 support
- adding latest snapshot from:
https://github.com/lingej/pnp4nagios/commits/master
- adding compatibility patches from:
https://github.com/Tontonitch/pnp4nagios
- adding php 8.0 patches that work on my instance
Closes: https://github.com/gentoo/gentoo/pull/28157
Signed-off-by: Tomáš Mózes <hydrapolic@gmail.com>
Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'net-analyzer')
4 files changed, 210 insertions, 0 deletions
diff --git a/net-analyzer/pnp4nagios/Manifest b/net-analyzer/pnp4nagios/Manifest index e33adf3e6b1d..083f4e6e612e 100644 --- a/net-analyzer/pnp4nagios/Manifest +++ b/net-analyzer/pnp4nagios/Manifest @@ -1 +1,2 @@ DIST pnp4nagios-0.6.26.tar.gz 3039265 BLAKE2B 1adb3c41222e6bc93671af955a1564387d77901ce118f5d309d101d88c691140e0feef1c2594bc5db44706ff01505a4fcf99b79b6a0c5b5cb923838dd00f1ff0 SHA512 caf6dcced74967174d9e6f09dd1a5bee17397c10a68d0f577c37dcc836f928d78c20d75a0189539e9ffa93715ab7b6e732e9f36b9698cf4dd9c09cfb65184427 +DIST pnp4nagios-0.6.26_p20221106.tar.gz 3029704 BLAKE2B 5866f4dbfef9b1028255eb3e47ac57fa260c1e2caca50fcb1c5ff93a3dc9bee9f14152e3a269ecf12daab59e50e1f4dfcd6513f9ce3dc5da35de50b944c38260 SHA512 cd0c3ad3d4983c43f7e1a100e8a2e6a530b573ca6bed60125c87b22ab33c2486c5ce99c6f52d641cdc7468984925a22a6ee7e1ac330ea2278ec2439acb910d04 diff --git a/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.26_p20221106_compat.patch b/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.26_p20221106_compat.patch new file mode 100644 index 000000000000..21f9c89ed94f --- /dev/null +++ b/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.26_p20221106_compat.patch @@ -0,0 +1,53 @@ +# https://github.com/Tontonitch/pnp4nagios/commits/master + +diff --git a/share/pnp/application/views/graph_content.php b/share/pnp/application/views/graph_content.php +index 3ea99dc0..00469ce0 100644 +--- a/share/pnp/application/views/graph_content.php ++++ b/share/pnp/application/views/graph_content.php +@@ -88,7 +88,8 @@ + # treated like a url fragment when zooming + $gid = array(); + parse_str(ltrim($this->url, '?'), $gid); +- $gid = htmlentities("?host=".urlencode($gid["host"])."&srv=".urlencode($gid["srv"])); ++ $srv = isset($gid['srv']) ? $gid['srv'] : ''; ++ $gid = htmlentities("?host=".urlencode($gid["host"])."&srv=".urlencode($srv)); + + echo "<div start=".$value['TIMERANGE']['start']." end=".$value['TIMERANGE']['end']." style=\"width:".$value['GRAPH_WIDTH']."px; height:".$value['GRAPH_HEIGHT']."px; position:absolute; top:33px\" class=\"graph\" id=\"".$gid."\" ></div>"; + +diff --git a/share/pnp/application/vendor/fpdf/fpdf.php b/share/pnp/application/vendor/fpdf/fpdf.php +index cfc09593..efb53b4e 100755 +--- a/share/pnp/application/vendor/fpdf/fpdf.php ++++ b/share/pnp/application/vendor/fpdf/fpdf.php +@@ -1040,8 +1040,11 @@ protected function _dochecks() + if(ini_get('mbstring.func_overload') & 2)
+ $this->Error('mbstring overloading must be disabled');
+ // Ensure runtime magic quotes are disabled
+- if(get_magic_quotes_runtime())
+- @set_magic_quotes_runtime(0);
++# if(get_magic_quotes_runtime())
++# @set_magic_quotes_runtime(0);
++ if (PHP_VERSION_ID < 70400 && get_magic_quotes_runtime()) {
++ set_magic_quotes_runtime(0);
++ }
+ }
+
+ protected function _checkoutput()
+diff --git a/share/pnp/application/vendor/fpdf/fpdi_pdf_parser.php b/share/pnp/application/vendor/fpdf/fpdi_pdf_parser.php +index 9e6d521a..c044f200 100755 +--- a/share/pnp/application/vendor/fpdf/fpdi_pdf_parser.php ++++ b/share/pnp/application/vendor/fpdf/fpdi_pdf_parser.php +@@ -305,6 +305,7 @@ protected function _getPageRotation($obj) + }
+
+ $res = $this->_getPageRotation($obj[1][1]['/Parent']);
++ if(false == $res) return false;
+ if ($res[0] == pdf_parser::TYPE_OBJECT)
+ return $res[1];
+
+@@ -344,4 +345,4 @@ protected function _readPages(&$pages, &$result) + }
+ }
+ }
+-} +\ No newline at end of file ++}
diff --git a/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.26_p20221106_php80.patch b/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.26_p20221106_php80.patch new file mode 100644 index 000000000000..2407bb6c51e9 --- /dev/null +++ b/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.26_p20221106_php80.patch @@ -0,0 +1,42 @@ +diff --git a/lib/kohana/system/core/utf8.php b/lib/kohana/system/core/utf8.php +index 9f20f42..b349c68 100644 +--- a/lib/kohana/system/core/utf8.php ++++ b/lib/kohana/system/core/utf8.php +@@ -49,17 +49,6 @@ if ( ! extension_loaded('iconv')) + ); + } + +-if (extension_loaded('mbstring') AND (ini_get('mbstring.func_overload') & MB_OVERLOAD_STRING)) +-{ +- trigger_error +- ( +- 'The <a href="http://php.net/mbstring">mbstring</a> extension is overloading PHP\'s native string functions. '. +- 'Disable this by setting mbstring.func_overload to 0, 1, 4 or 5 in php.ini or a .htaccess file.'. +- 'This application cannot be run without UTF-8 support.', +- E_USER_ERROR +- ); +-} +- + // Check PCRE support for Unicode properties such as \p and \X. + $ER = error_reporting(0); + define('PCRE_UNICODE_PROPERTIES', (bool) preg_match('/^\pL$/u', 'ñ')); +@@ -740,4 +729,4 @@ final class utf8 { + return _from_unicode($arr); + } + +-} // End utf8 +\ No newline at end of file ++} // End utf8 +diff --git a/share/pnp/application/models/data.php b/share/pnp/application/models/data.php +index 576c8ec..20cdade 100644 +--- a/share/pnp/application/models/data.php ++++ b/share/pnp/application/models/data.php +@@ -266,7 +266,7 @@ class Data_Model extends System_Model + $xml = array(); + if (file_exists($xmlfile)) { + libxml_use_internal_errors(TRUE); +- libxml_clear_errors(TRUE); ++ libxml_clear_errors(); + if(! $xml = simplexml_load_file($xmlfile) ){; + if( $throw_exception == TRUE ){ + $errors = '<br>'; diff --git a/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20221106.ebuild b/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20221106.ebuild new file mode 100644 index 000000000000..1ce42b2d29c9 --- /dev/null +++ b/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20221106.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="A performance data analyzer for nagios" +HOMEPAGE="http://www.pnp4nagios.org/" +GH_COMMIT="5e09f538373ac4310a13355746bb3d3a10eb7bef" +SRC_URI="https://github.com/lingej/pnp4nagios/archive/${GH_COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${GH_COMMIT}" + +LICENSE="GPL-2" +SLOT="0" +IUSE="apache2 icinga +nagios" +KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86" + +REQUIRED_USE="^^ ( icinga nagios )" + +# Some things (sync mode, for one) are broken with nagios-4.x, but since +# nagios-3.x has been end-of-life'd, we don't have much choice here but +# to accept it. +DEPEND="net-analyzer/rrdtool[graph,perl] + icinga? ( + acct-group/icinga + acct-user/icinga + ) + nagios? ( + acct-group/nagios + acct-user/nagios + )" + +# A list of modules used in our Apache config file. +APACHE_MODS="apache2_modules_alias," # "Alias" directive +APACHE_MODS+="apache2_modules_authz_core," # "Require" directive +APACHE_MODS+="apache2_modules_rewrite" # "RewriteEngine" and friends + +RDEPEND="${DEPEND} + dev-lang/php:*[filter,gd,json(+),simplexml,xml,zlib] + media-fonts/dejavu + virtual/perl-Getopt-Long + virtual/perl-Time-HiRes + apache2? ( >=www-servers/apache-2.4[${APACHE_MODS}] )" + +PATCHES=( + "${FILESDIR}/${PN}-0.6.14-makefile.patch" + "${FILESDIR}/${PN}-0.6.26_p20221106_compat.patch" + "${FILESDIR}/${PN}-0.6.26_p20221106_php80.patch" +) + +src_configure() { + local user_group=nagios + use icinga && user_group=icinga + + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/pnp + --datarootdir="${EPREFIX}"/usr/share/pnp + --localstatedir="${EPREFIX}"/var/lib/pnp + --with-nagios-user="${user_group}" + --with-nagios-group="${user_group}" + --with-perfdata-logfile="${EPREFIX}"/var/log/pnp/process_perfdata.log + ) + + econf "${myeconfargs[@]}" +} + +src_compile() { + # The default target just shows a help + emake all +} + +src_install() { + # Don't use INSTALL_OPTS because they set insecure permissions on + # all of /etc/pnp (https://github.com/lingej/pnp4nagios/issues/140). + emake INSTALL_OPTS="" DESTDIR="${D}" install install-config + einstalldocs + newinitd "${FILESDIR}"/npcd.initd npcd + rm "${ED}/usr/share/pnp/install.php" || \ + die "unable to remove ${ED}/usr/share/pnp/install.php" + + # Fix CVE-2012-3457 (Gentoo bug 430358) + fperms o-rwx /etc/pnp/process_perfdata.cfg + + if use apache2 ; then + insinto /etc/apache2/modules.d + newins "${FILESDIR}"/98_pnp4nagios-2.4.conf 98_pnp4nagios.conf + fi + + # The nagios or icinga user needs to write performance data to the + # perfdata-dir... + local user_group=nagios + use icinga && user_group=icinga + fowners ":${user_group}" /var/lib/pnp/{,perfdata,spool} + fperms g+rwx /var/lib/pnp/{,perfdata,spool} + + # and likewise for its logs... + dodir /var/log/pnp + fowners ":${user_group}" /var/log/pnp + fperms g+rwx /var/log/pnp + + # and its statistics. This one is arguably the responsibility of the + # build system, since process_perfdata.cfg refers to this location. + dodir /var/lib/pnp/stats + fowners ":${user_group}" /var/lib/pnp/stats + fperms g+rwx /var/lib/pnp/stats +} + +pkg_postinst() { + elog "To enable the pnp4nagios web front-end, please visit" + elog "${EROOT}/etc/conf.d/apache2 and add \"-D PNP -D PHP\"" + elog "to APACHE2_OPTS. Then pnp4nagios will be available at," + elog + elog " http://localhost/pnp4nagios" + elog +} |