diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..0d58913 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,93 @@ +PNP4Nagios for Debian +--------------------- + +PNP4Nagios supports several modes of operation. They differ in the way how +performance data is being processed and, thus, the efficiency of PNP. Detailed +documentation is available at . + +Using bulk mode for Nagios3 +--------------------------- + +We recommend to use bulk mode with NPCD and npcdmod. This will facilitate an +easy installation and fast processing of performance data. To enable NPCD, set +'RUN' to 'yes' in /etc/default/npcd. + +In order to enable processing of performance data in Nagios, please change the +"process_performance_data" statement in "/etc/nagios3/nagios.cfg" to +"process_performance_data=1". + +To register the NPC event broker module (npcdmod), add the following line +(without quotes) to "/etc/nagios3/nagios.cfg": + +"broker_module=/usr/lib/pnp4nagios/npcdmod.o config_file=/etc/pnp4nagios/npcd.cfg" + +Finally reload your Nagios server by running "service nagios3 reload". All +performance data should be processed now. + +Using bulk mode for Icinga +--------------------------- + +We recommend to use bulk mode with NPCD and npcdmod. This will facilitate an +easy installation and fast processing of performance data. To enable NPCD, set +'RUN' to 'yes' in /etc/default/npcd. + +In order to enable processing of performance data in Icinga, please change the +"process_performance_data" statement in "/etc/icinga/icinga.cfg" to +"process_performance_data=1". + +To register the NPC event broker module (npcdmod), copy the file +"/usr/share/doc/pnp4nagios-bin/examples/npcdmod.cfg" to +"/etc/icinga/modules" + +Finally reload your Icinga server by running "service icinga reload". All +performance data should be processed now. + + -- Markus Frosch Sun, 26 Oct 2014 15:49:10 +0100 + +Add links for PNP4Nagios to Nagios / Icinga Webfrontend +------------------------------------------------------- + +If you want links to PNP4Nagios for your monitored hosts and services in the +Nagios web frontend just add + +- "action_url /pnp4nagios/graph?host=$HOSTNAME$" + to your hosts or host template(s) + +- "action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$" + to your services or service template(s) + +For more information and different modes of operation, see +. + + -- Sven Velt Wed, 30 Sep 2009 13:55:35 +0000 + +Using Gearman mode +------------------ + +Starting with version 0.6.12, PNP4Nagios may operate as a Gearman worker. This +is useful in large, distributed setups using Nagios's mod_gearman. To use +the PNP Gearman worker, you'll need a running mod_gearman environment. See + for detailed setup +instructions. + +In addition, the following configuration is required to get you started: + +- Enable processing of performance data in Nagios: set + 'process_performance_data=1' in "/etc/nagios3/nagios.cfg" or + "/etc/icinga/icinga.cfg" and reload your monitoring system: + "service nagios3 reload" / "service icinga reload". + +- Enable the PNP Gearman worker daemon by setting 'RUN' to 'yes' in + /etc/default/pnp_gearman_worker. Check the Gearman related options in + "/etc/pnp4nagios/process_perfdata.cfg" (GEARMAN_HOST and encryption + settings) and start the Gearman worker: /etc/init.d/pnp_gearman_worker start + +- Enable distribution of performance data in mod_gearman by setting the + 'perfdata=yes' option. + +When operating in Gearman mode, process_perfdata.pl requires the +Gearman::Worker, MIME::Base64, and Crypt::Rijndael Perl modules. These are +available in the libgearman-client-perl, perl, and libcrypt-rijndael-perl +Debian packages (see packages suggested by pnp4nagios-bin). + + -- Sebastian Harl Wed, 27 Apr 2011 09:32:52 +0200 diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..92cdadc --- /dev/null +++ b/debian/README.source @@ -0,0 +1,4 @@ +This package uses quilt to manage all modifications to the upstream source. +See /usr/share/doc/quilt/README.source for instructions how to generate the +patched source, add a new modification, and remove an existing one. + diff --git a/debian/README.templates.d b/debian/README.templates.d new file mode 100644 index 0000000..944257f --- /dev/null +++ b/debian/README.templates.d @@ -0,0 +1,7 @@ +# +# As of Debian version 0.6.16-1, the default config.php adds all directories +# inside /etc/pnp4nagios/templates.d/ to the templates_dirs configuration. +# This allows third-party packages to provide their own set of PNP4Nagios +# templates and create a symlink to the template directory inside +# /etc/pnp4nagios/templates.d. +# diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 0000000..7049f04 --- /dev/null +++ b/debian/TODO @@ -0,0 +1,4 @@ +* Config split + - dependencies on -web + - apache + - testing testing testing diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..d1d5755 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,256 @@ +pnp4nagios (0.6.24+dfsg1-4~bpo80+1) jessie-backports; urgency=medium + + * Backport to jessie-backports. + * Add myself to Uploaders. + + -- Micah Anderson Tue, 08 Dec 2015 13:39:31 -0500 + +pnp4nagios (0.6.24+dfsg1-4) unstable; urgency=medium + + [ Peter Michael Green ] + * [d7b0b89] Fix FTBFS on arm64 due to outdated config.sub/guess + (Closes: #774047) + + [ Markus Frosch ] + * [c672afa] Fix use of hardening flags with a patch + + -- Markus Frosch Wed, 01 Jul 2015 20:07:30 +0200 + +pnp4nagios (0.6.24+dfsg1-3) unstable; urgency=medium + + * [8021d79] Do JS minification with Python's jsmin (Closes: #769696) + + -- Markus Frosch Sat, 27 Dec 2014 22:37:09 +0100 + +pnp4nagios (0.6.24+dfsg1-2) unstable; urgency=medium + + * [36db791] Fix and clarify package descriptions + + -- Markus Frosch Mon, 27 Oct 2014 14:30:17 +0100 + +pnp4nagios (0.6.24+dfsg1-1) unstable; urgency=medium + + [ Sebastian Harl ] + * [48a705e9] Merged branch 'configsplit'. + * [bfcb36ca] README.Debian: Replaced c&p'ed Nagios with Icinga. + * [91a75610] README.Debian: Fixed typo (icingacfg → icinga.cfg). + * [9f1e4167] README.Debian: Improved typesetting a bit ;-) + * [a7f12f2d] README.Debian: Fixed typo (nagios → nagios3). + Also, made the document a bit more "DAU"-proof ;-) + * [009534c4] npcdmod.cfg: Fixed a few typos and improved wording. + + [ Bernd Zeimetz ] + * [832a9632] Refreshing patches. + + [ Markus Frosch ] + * [14693ff] Replace Sven Velt with Markus Frosch as secondary uploader + (Closes: #739098) + * [f2f01d4] Initial upstream branch + * [29d5377] Imported Upstream version 0.6.21 + * [d4a4cdb] DFSG cleaned upstream version 0.6.21+dfsg1 + (Closes: #737457) (Closes: #753457) + * [82701a7] Removed GBP config, we imported the tarball into GIT + * [45e91cc] Changes for the DFSG tarball, JQuery depends, links and cleanup + * [36ab52d] Switch to source format 3.0 (quilt) + * [fafe97f] Update watch file for DFSG versions + * [318fa21] Remove potential flattr code from documentation + * [913caf2] Control, Lintian and Standards Cleanup + * [28272e9] Add missing dependencies of config packages and fix arch + * [ce4e5ae] Modernize and split Apache configuration (Closes: #669839) + * [a79e4af] Prefer Icinga over Nagios3 + * [cb1832a] Fill config packages + * [2a2c4f6] Modernize rules + * [0a244f8] Update copyright + * [311c9c5] Include default build flags + * [c37bcc4] Fix Apache configuration handling + * [a65f63a] Revert "DFSG cleaned upstream version 0.6.21+dfsg1" + * [b542e4a] Imported Upstream version 0.6.24 + * [b920288] DFSG cleaned upstream version 0.6.24+dfsg1 + * [b87ba16] Update patch privacy-warning for 0.6.24 + * [eed3190] Add patch install_opts to avoid setting owners on dh_auto_install + * [46e24b7] Update README.Debian + * [7f49d88] Bump Standards version + + -- Markus Frosch Sun, 26 Oct 2014 16:02:13 +0100 + +pnp4nagios (0.6.19-1) experimental; urgency=low + + * New upstream release; thanks to Christoph Anton Mitterer for reporting + this (Closes: #682175). + * Uploading to experimental because of the Wheezy freeze. + * debian/pnp4nagios.postrm: + - Fixed typo: Apache's config files use file suffix .conf rather than + .cfg; this prevented /etc/apache2/conf.d/pnp4nagios.conf from being + removed on remove/purge; thanks to Andreas Beckmann for reporting this + (cf. #669839). + * debian/control: + - Optionally depend on php5-cgi instead of libapache2-mod-php5 to allow + for easier installations when not using Apache; thanks to Matthias + Wamser for reporting this (Closes: #671231). + - Updated standards-version to 3.9.4 -- no changes. + - Let pnp4nagios-bin suggest rrdtool which is used by the rrd_convert + helper script; thanks to Christoph Anton Mitterer for suggesting this + (cf. #684420). + * debian/patches: + - fix-npcd-path updated for 0.6.19. + - Added format-security; fixing a missing printf-style format argument. + * debian/rules: + - Manually clean-up auto-generated scripts/rrd_modify.pl. + - Use dpkg-buildflags to determine CPPFLAGS/CFLAGS. + * debian/icinga-module.cfg, debian/rules: + - Provide a sample Icinga module configuration; thanks to Christoph Anton + Mitterer for providing this (Closes: #683459). + * debian/nagios.cfg: + - Unified whitespacing; thanks to Christoph Anton Mitterer for the patch + (Closes: #683471). + * debian/pnp4nagios-bin.postinst: + - Don't use world-readable permissions for process_perfdata.cfg as this + would allow local users to read the Gearman shared key; thanks to + Christoph Anton Mitterer for reporting this; fixes CVE-2012-3457 + (Closes: #683879). + + -- Sebastian Harl Thu, 24 Jan 2013 16:30:51 +0100 + +pnp4nagios (0.6.16-2) unstable; urgency=low + + * debian/control: + - Adapted versioned build-dep on libjs-jquery-ui to the workaround used by + that package (1.8.14 -> 1.8.ooops.14). Thanks to Christoph Anton + Mitterer for reporting this (Closes: #683100). + * debian/patches/: + - adjust-template-path: Fixed the patch for empty templates.d and some + versions of glob() which in this case returns nothing resulting in PHP + syntax errors and a crash of PNP4Nagios; thanks to Christoph Anton + Mitterer for reporting this and pointing out a fix (Closes: #683138). + + -- Sebastian Harl Sat, 24 Nov 2012 15:34:54 +0100 + +pnp4nagios (0.6.16-1) unstable; urgency=low + + * New upstream version. + * debian/control: + - Depend on jQuery >= 1.6.2 and jQuery-ui >= 1.8.14 (rather than + unversioned dependencies); this is what upstream did as well. + * debian/rules: + - Added recommended targets build-{arch,indep} depending on build-stamp. + * debian/pnp4nagios-bin.install: + - Install verify_pnp_config_v2.pl to /u/l/pnp4nagios/libexec/. + * debian/pnp4nagios-web.postinst: + - Call a2mod / restart apache2 only if the binaries are available; thanks + to Wouter Schoot for reporting this (Closes: #636218). + * debian/po/: + - Added Spanish debconf translations; thanks to Camaleón for providing + those (Closes: #632953). + - Added Portuguese debconf translations; thanks to Pedro Ribeiro for + providing those (Closes: #651432). + - Added Dutch debconf translations; thanks to Jeroen Schot for providing + those (Closes: #654214). + - Added Danish debconf translations; thanks to Joe Dalton for providing + those (Closes: #654816). + - Added Czech debconf translations; thanks to Michal Šimůnek for providing + those (Closes: #655132). + * debian/README.Debian: + - Added a note about installation with Icinga referring to the different + htpasswd.users file location; thanks to Alexander Reichle-Schmehl for + reporting this (Closes: #646587). + * debian/patches/adjust-template-path: + - Added support for /etc/pnp4nagios/templates.d. + * debian/README.templates.d: + - Added README file for the use of /etc/pnp4nagios/templates.d. The file + will be installed to that directory. + + -- Sebastian Harl Tue, 31 Jan 2012 14:00:47 +0100 + +pnp4nagios (0.6.13-1) unstable; urgency=low + + * New upstream release. + * debian/README.Debian: + - Added more verbose instructions about how to setup mod_gearman mode. + * debian/patches/: + - Removed manpage-hyphen -- applied upstream. + * debian/rules: + - Don't remove scripts/rc.pnp_gearman_worker in 'clean' -- this is now + taken care of in the upstream Makefile. + * debian/po/: + - Added Japanese debconf translation; thanks to Hideki Yamane for + providing the translation (Closes: #626386). + - Added Swedish debconf translation; thanks to Martin Bagge for providing + the translation (Closes: #628926). + * debian/control: + - Updated standards-version to 3.9.2 -- no changes. + + -- Sebastian Harl Wed, 22 Jun 2011 12:42:18 +0200 + +pnp4nagios (0.6.12-1) unstable; urgency=low + + * New upstream release. + * debian/patches/: + - Removed raise-process-perfdata-timeout -- a similar patch has been + included upstream. + - Added manpage-hyphen -- do not use hyphens as minus sign in npcd.8. + * debian/rules: + - npcd.cfg and process_perfdata.cfg are not longer installed as sample + configs by the upstream Makefile; so, don't rename those files. + - Do not pass --prefix to configure and set man-/infodir correctly. The + prefix is set by layout=debian and cannot be overwritten, thus do not + pretend this is possible. Also, do not use $prefix when setting man-/ + infodir but specify the complete path. + - Do not install config_local.php and config.php.$PKG_VERSION. + - Remove generated scripts/rc.pnp_gearman_worker in 'clean'. + * debian/rules, debian/pnp4nagios-bin.install: + - Do not install npcd.8 using dh_installman; this is done by the upstream + Makefile now. + * debian/pnp4nagios-bin.pnp_gearman_worker.default, + pnp4nagios-bin.pnp_gearman_worker.init: + - Added init script for the PNP4Nagios Gearman worker daemon. + - The daemon is disabled by default. + + -- Sebastian Harl Wed, 27 Apr 2011 09:05:48 +0200 + +pnp4nagios (0.6.11-2) unstable; urgency=low + + * debian/po/: + - Added French debconf translation; thanks to Christian Perrier for + providing the translation (Closes: #623181). + - Added German debconf translation. + - Added Russian debconf translation; thanks to Yuri Kozlov for providing + the translation (Closes: #623798). + * debian/pnp4nagios-web.postinst: + - Do not set permissions of /var/log/pnp4nagios/stats -- this is done in + pnp4nagios-bin.postinst which ships the directory. This fixes an error + when installing -web without -bin. + + -- Sebastian Harl Tue, 26 Apr 2011 11:48:54 +0200 + +pnp4nagios (0.6.11-1) unstable; urgency=low + + [ Sven Velt ] + * Initial release (Closes: #479031) + * Use "php-fpdf", "php-fpdf-tpl" and "php-fpdi" packages instead of bundled + copies. + * Do not use the bundled copy of Kohana2 but rather depend on + libkohana2-php. + * Ship all configuration in /etc and create appropriate symlinks. + * Ship upstream sample configs as default configs. + * debian/patches: + - Added adjust-template-path: install templates into /etc/ rather than + /usr/share/. + - Added apache-fix-path-to-userfile: fix config directory in the sample + httpd.conf. + - Added fix-nagios-url: fix cgi-bin path in config.php. + - Added fix-npcd-path: fix perfdata paths in npcd.cfg. + - Added fix-path-fpdi: FPDI is shipped in its own subdirectory -- adopt + path in pdf.php. + - Added raise-process-perfdata-timeout: set timeout to 10s in + process_perfdata.cfg; in large and/or virtualized setups, 5s might not + be enough. + + [ Sebastian Harl ] + * Build the following binary packages: + - pnp4nagios-bin: NPCD and process_perfdata.pl + - pnp4nagios-web: web interface + - pnp4nagios: metapackage depending on the other two + * debian/watch: mangle upstream version to replace ".rc" with "~rc". + * Make Apache2 configuration optional using debconf. + + -- Sebastian Harl Mon, 14 Feb 2011 13:15:46 +0100 diff --git a/debian/check_commands/check_nrpe.cfg b/debian/check_commands/check_nrpe.cfg new file mode 100644 index 0000000..bbc0ec5 --- /dev/null +++ b/debian/check_commands/check_nrpe.cfg @@ -0,0 +1,15 @@ +# +# Adapt the Template if check_command should not be the PNP Template +# +# check_command check_nrpe!check_disk!20%!10% +# ________0__________| | | | +# ________1_____________________| | | +# ________2____________________________| | +# ________3_______________________________| +# +CUSTOM_TEMPLATE = 1 +# +# Change the RRD Datatype based on the check_command Name. +# Defaults to GAUGE. +# +# DATATYPE = COUNTER diff --git a/debian/check_commands/check_nrpe_1arg.cfg b/debian/check_commands/check_nrpe_1arg.cfg new file mode 100644 index 0000000..bbc0ec5 --- /dev/null +++ b/debian/check_commands/check_nrpe_1arg.cfg @@ -0,0 +1,15 @@ +# +# Adapt the Template if check_command should not be the PNP Template +# +# check_command check_nrpe!check_disk!20%!10% +# ________0__________| | | | +# ________1_____________________| | | +# ________2____________________________| | +# ________3_______________________________| +# +CUSTOM_TEMPLATE = 1 +# +# Change the RRD Datatype based on the check_command Name. +# Defaults to GAUGE. +# +# DATATYPE = COUNTER diff --git a/debian/clean b/debian/clean new file mode 100644 index 0000000..a5e087b --- /dev/null +++ b/debian/clean @@ -0,0 +1,2 @@ +scripts/rrd_modify.pl +share/pnp/media/js/jquery.imgareaselect.min.js diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +8 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..8cbdad6 --- /dev/null +++ b/debian/control @@ -0,0 +1,120 @@ +Source: pnp4nagios +Section: net +Priority: optional +Maintainer: Debian Nagios Maintainer Group +Uploaders: + Markus Frosch , + Micah Anderson +Build-Depends: + autotools-dev, + debhelper (>= 8), + dh-autoreconf, + quilt, + rrdtool, + librrds-perl, + python, + python-jsmin +Standards-Version: 3.9.6 +Homepage: http://www.pnp4nagios.org/ +Vcs-Git: git://anonscm.debian.org/pkg-nagios/pkg-pnp4nagios.git +Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-nagios/pkg-pnp4nagios.git + +Package: pnp4nagios +Architecture: all +Depends: + ${misc:Depends}, + pnp4nagios-bin, + pnp4nagios-web, +Description: monitoring addon to create graphs from performance data + PNP is a graphing tool for Nagios, Icinga or similar frameworks that + analyzes performance data provided by plugins and stores them + automatically into Round Robin Databases (RRD). + . + It offers integration into the Nagios and Icinga Frontends. + . + PNP's goal is to be easily configurable and maintainable. + . + This is a metapackage depending on all parts of PNP4Nagios. + +Package: pnp4nagios-bin +Architecture: any +Depends: + ${misc:Depends}, + ${perl:Depends}, + ${shlibs:Depends}, + librrds-perl, + adduser +Recommends: pnp4nagios-web, icinga | nagios3 +Suggests: rrdtool, rrdcached, perl, libgearman-client-perl, libcrypt-rijndael-perl +Description: monitoring addon to create graphs from performance data - binaries + PNP is a graphing tool for Nagios, Icinga or similar frameworks that + analyzes performance data provided by plugins and stores them + automatically into Round Robin Databases (RRD). + . + It offers integration into the Nagios and Icinga Frontends. + . + PNP's goal is to be easily configurable and maintainable. + . + This package contains the NPCD-related binaries and process_perfdata.pl. + +Package: pnp4nagios-web-config-icinga +Architecture: all +Depends: pnp4nagios-web (=${source:Version}), ${misc:Depends} +Recommends: apache2 | httpd +Suggests: icinga, icinga-cgi +Conflicts: pnp4nagios-web-config-nagios3 +Replaces: pnp4nagios-web (<< 0.6.21) +Description: monitoring addon to create graphs from performance data - Icinga Classic config + PNP is a graphing tool for Nagios, Icinga or similar frameworks that + analyzes performance data provided by plugins and stores them + automatically into Round Robin Databases (RRD). + . + It offers integration into the Nagios and Icinga Frontends. + . + PNP's goal is to be easily configurable and maintainable. + . + This package contains the icinga-cgi configuration for pnp4nagios-web. + +Package: pnp4nagios-web-config-nagios3 +Architecture: all +Depends: pnp4nagios-web (=${source:Version}), ${misc:Depends} +Recommends: apache2 | httpd +Suggests: nagios3, nagios3-cgi +Conflicts: pnp4nagios-web-config-icinga +Replaces: pnp4nagios-web (<< 0.6.21) +Description: monitoring addon to create graphs from performance data - Nagios3 CGI config + PNP is a graphing tool for Nagios, Icinga or similar frameworks that + analyzes performance data provided by plugins and stores them + automatically into Round Robin Databases (RRD). + . + It offers integration into the Nagios and Icinga Frontends. + . + PNP's goal is to be easily configurable and maintainable. + . + This package contains the nagios3-cgi configuration for pnp4nagios-web. + +Package: pnp4nagios-web +Architecture: all +Depends: + ${misc:Depends}, + libapache2-mod-php5 | php5-cgi | php5, + php5-gd, + libkohana2-php, + libfpdi-php, + libjs-jquery (>= 1.6.2), + libjs-jquery-ui (>= 1.8.ooops.14), + libjs-jquery-mobile, + rrdtool, + adduser +Recommends: pnp4nagios-bin, pnp4nagios-web-config-icinga | pnp4nagios-web-config-nagios3 +Suggests: rrdcached +Description: monitoring addon to create graphs from performance data - web interface + PNP is a graphing tool for Nagios, Icinga or similar frameworks that + analyzes performance data provided by plugins and stores them + automatically into Round Robin Databases (RRD). + . + It offers integration into the Nagios and Icinga Frontends. + . + PNP's goal is to be easily configurable and maintainable. + . + This package contains the web-interface for PNP4Nagios. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..a8b96bf --- /dev/null +++ b/debian/copyright @@ -0,0 +1,489 @@ +Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=166 +Upstream-Name: PNP4Nagios +Upstream-Contact: Jörg Linge +Source: http://docs.pnp4nagios.org/pnp-0.6/about#download + +Files: * +Copyright: + 2005-2014 Jörg Linge +License: GPL-2+ +Comment: See the file THANKS for a list of contributors. + +Files: + scripts/verify_pnp_config.pl.in +Copyright: + 2008-2010 Wolfgang Nieder +License: GPL-2+ + +Files: include/* +Copyright: + 1999-2008 Ethan Galstad +License: GPL-2 + +Files: include/npcdmod.h +Copyright: + 2008 Hendrik Baecker +License: GPL-2 + +Files: lib/kohana/* +Copyright: + 2007-2009 Kohana Team +License: BSD-3-clause +Comment: See for the list of team members. + +Files: + lib/kohana/system/core/utf8.php + lib/kohana/system/core/utf8/* +Copyright: + 2007, Kohana Team + 2005, Harry Fuecks +License: LGPL-2.1 + +Files: lib/kohana/system/fonts/* +Copyright: + 2003, Bitstream, Inc. + 2006, Tavmjong Bah. +License: fonts-copyright + +Files: lib/kohana/system/libraries/drivers/Database/Pdosqlite.php +Copyright: + Doutu + Greg MacLellan +License: BSD-3-clause + +Files: + scripts/verify_pnp_config_v2.pl + scripts/rrd_modify.pl.in +Copyright: + 2005-2012, PNP4Nagios Developer Team +License: GPL-2+ + +Files: share/pnp/templates.dist/check_apachestatus.php +Copyright: + Roman Ovchinnikov +License: GPL-2+ + +Files: share/pnp/templates.dist/check_ntp_time.php +Copyright: + Mathias Kettner +License: GPL-2+ + +Files: share/pnp/templates.dist/check_esx3.php +Copyright: + 2009 op5 AB (author: Mattias Ryrlen ) + Joerg Linge +License: GPL-2 + +Files: share/pnp/templates.dist/check_messpc_temp.php +Copyright: + Joerg Peter Geissler +License: GPL-2+ + +Files: check_mssql_health.php +Copyright: + 2009-2011 Gerhard Lausser + 2011 Joerg Linge +License: GPL-2+ + +Files: share/pnp/templates.dist/check_multi_nagiostats.php +Copyright: + 2009 Matthias Flacke +License: GPL-2+ + +Files: share/pnp/templates.dist/check_mysql_health.php +Copyright: + 2009 Gerhard Lausser +License: GPL-2+ + +Files: share/pnp/templates.dist/check_openmanage.php +Copyright: + 2008-2011 Trond Hasle Amundsen +License: GPL-3+ + +Files: share/pnp/application/lib/json.php +Copyright: + 2005 Michal Migurski + Matt Knapp + Brett Stimmerman +License: BSD-2-clause + +Files: share/pnp/application/vendor/fpdf/* +Copyright: + 2008 Olivier Plathey +License: FPDF-license + +Files: + share/pnp/application/vendor/fpdf/fpdf_tpl.php + share/pnp/application/vendor/fpdf/fpdi* + share/pnp/application/vendor/fpdf/pdf_context.php + share/pnp/application/vendor/fpdf/pdf_parser.php + share/pnp/application/vendor/fpdf/filters/* +Copyright: + 2004-2009 Setasign - Jan Slabon +License: Apache-2.0 + +Files: + share/pnp/media/css/jquery.mobile.min.css + share/pnp/media/js/jquery.mobile.min.js +Copyright: + 2010 jQuery Project +License: MIT and GPL-2+ + +Files: + share/pnp/media/js/jquery.imgareaselect.min.js +Copyright: + 2008-2011 Michal Wojciechowski (odyniec.net) +License: MIT and GPL-2+ + +Files: + share/pnp/media/js/jquery-ui.min.js + share/pnp/media/css/ui-* +Copyright: + 2010-2011 Brandon Aaron + 2010-2011 Paul Bakaus (paulbakaus.com) + 2010-2011 David Bolter + 2010-2011 Rich Caloggero + 2010-2011 Chi Cheng (cloudream@gmail.com) + 2010-2011 Colin Clark (http://colin.atrc.utoronto.ca/) + 2010-2011 Michelle D'Souza + 2010-2011 Aaron Eisenberger (aaronchi@gmail.com) + 2010-2011 Ariel Flesler + 2010-2011 Bohdan Ganicky + 2010-2011 Scott González + 2010-2011 Marc Grabanski (m@marcgrabanski.com) + 2010-2011 Klaus Hartl (stilbuero.de) + 2010-2011 Scott Jehl + 2010-2011 Cody Lindley + 2010-2011 Eduardo Lundgren (eduardolundgren@gmail.com) + 2010-2011 Todd Parker + 2010-2011 John Resig + 2010-2011 Patty Toland + 2010-2011 Ca-Phun Ung (yelotofu.com) + 2010-2011 Keith Wood (kbwood@virginbroadband.com.au) + 2010-2011 Maggie Costello Wachs + 2010-2011 Richard D. Worth (rdworth.org) + 2010-2011 Jörn Zaefferer (bassistance.de) +License: MIT and GPL-2+ + +Files: + share/pnp/media/js/jquery-ui-timepicker-addon.js +Copyright: + 2011 Trent Richardson +License: MIT and GPL-2+ + +Files: share/pnp/media/js/jquery.cluetip.js +Copyright: + 2009 Karl Swedberg +License: MIT and GPL-2+ +Comment: Copyright and license extracted from upstream website and sources. + +Files: share/pnp/media/js/jquery-min.js +Copyright: + 2010-2011 John Resig + 2010-2011 The Dojo Foundation +License: MIT and BSD-3-clause and GPL-2+ +Comment: License details extracted from upstream website. + +Files: src/* +Copyright: + 2006-2010 Hendrik Baecker +License: GPL-2 + +Files: src/utils.c +Copyright: + 2006-2009 Hendrik Baecker + 1999-2006 Ethan Galstad +License: GPL-2 + +Files: debian/* +Copyright: + 2009-2011, Sven Velt + 2011, Sebastian Harl + 2014, Markus Frosch +License: BSD-2-clause + +Files: + debian/pnp4nagios-bin.npcd.init +Copyright: + 2007 Javier Fernandez-Sanguino + 2009 Sven Velt +License: BSD-2-clause + +Files: + debian/pnp4nagios-bin.pnp_gearman_worker.init +Copyright: + 2007, Javier Fernandez-Sanguino + 2011, Sebastian Harl +License: BSD-2-clause + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + . + On Debian systems, the full text of the Apache License, Version 2.0 + can be found in the file `/usr/share/common-licenses/Apache-2.0'. + +License: BSD-3-clause + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + * Neither the name of the Kohana nor the names of its contributors may + be used to endorse or promote products derived from this software + without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: BSD-2-clause + All rights reserved. + . + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: LGPL-2.1 + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + . + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + . + On Debian systems, the full text of the GNU Lesser General Public + License version 2.1 can be found in the file + `/usr/share/common-licenses/LGPL-2.1'. + +License: MIT + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +License: GPL-2 + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; version 2. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the full text of the GNU General Public License version 2 + can be found in the file `/usr/share/common-licenses/GPL-2'. The latest + version of the library can be found in the file + `/usr/share/common-licenses/GPL-2'. + +License: GPL-2+ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the full text of the GNU General Public License version 2 + can be found in the file `/usr/share/common-licenses/GPL-2'. + +License: GPL-3+ + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see . + . + On Debian systems, the full text of the GNU General Public License version 3 + can be found in the file `/usr/share/common-licenses/GPL-3'. + +License: FPDF-license + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software to use, copy, modify, distribute, sublicense, and/or sell + copies of the software, and to permit persons to whom the software is + furnished to do so. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED. + +License: fonts-copyright + Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. + Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) + . + Bitstream Vera Fonts Copyright + ------------------------------ + . + Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is + a trademark of Bitstream, Inc. + . + Permission is hereby granted, free of charge, to any person obtaining a copy + of the fonts accompanying this license ("Fonts") and associated + documentation files (the "Font Software"), to reproduce and distribute the + Font Software, including without limitation the rights to use, copy, merge, + publish, distribute, and/or sell copies of the Font Software, and to permit + persons to whom the Font Software is furnished to do so, subject to the + following conditions: + . + The above copyright and trademark notices and this permission notice shall + be included in all copies of one or more of the Font Software typefaces. + . + The Font Software may be modified, altered, or added to, and in particular + the designs of glyphs or characters in the Fonts may be modified and + additional glyphs or characters may be added to the Fonts, only if the fonts + are renamed to names not containing either the words "Bitstream" or the word + "Vera". + . + This License becomes null and void to the extent applicable to Fonts or Font + Software that has been modified and is distributed under the "Bitstream + Vera" names. + . + The Font Software may be sold as part of a larger software package but no + copy of one or more of the Font Software typefaces may be sold by itself. + . + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, + TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME + FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING + ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF + THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE + FONT SOFTWARE. + . + Except as contained in this notice, the names of Gnome, the Gnome + Foundation, and Bitstream Inc., shall not be used in advertising or + otherwise to promote the sale, use or other dealings in this Font Software + without prior written authorization from the Gnome Foundation or Bitstream + Inc., respectively. For further information, contact: fonts at gnome dot + org. + . + Arev Fonts Copyright + ------------------------------ + . + Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. + . + Permission is hereby granted, free of charge, to any person obtaining + a copy of the fonts accompanying this license ("Fonts") and + associated documentation files (the "Font Software"), to reproduce + and distribute the modifications to the Bitstream Vera Font Software, + including without limitation the rights to use, copy, merge, publish, + distribute, and/or sell copies of the Font Software, and to permit + persons to whom the Font Software is furnished to do so, subject to + the following conditions: + . + The above copyright and trademark notices and this permission notice + shall be included in all copies of one or more of the Font Software + typefaces. + . + The Font Software may be modified, altered, or added to, and in + particular the designs of glyphs or characters in the Fonts may be + modified and additional glyphs or characters may be added to the + Fonts, only if the fonts are renamed to names not containing either + the words "Tavmjong Bah" or the word "Arev". + . + This License becomes null and void to the extent applicable to Fonts + or Font Software that has been modified and is distributed under the + "Tavmjong Bah Arev" names. + . + The Font Software may be sold as part of a larger software package but + no copy of one or more of the Font Software typefaces may be sold by + itself. + . + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL + TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM + OTHER DEALINGS IN THE FONT SOFTWARE. + . + Except as contained in this notice, the name of Tavmjong Bah shall not + be used in advertising or otherwise to promote the sale, use or other + dealings in this Font Software without prior written authorization + from Tavmjong Bah. For further information, contact: tavmjong @ free + . fr. diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..62deb04 --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +AUTHORS diff --git a/debian/icinga-module.cfg b/debian/icinga-module.cfg new file mode 100644 index 0000000..b88f361 --- /dev/null +++ b/debian/icinga-module.cfg @@ -0,0 +1,11 @@ +# This is a sample module definition for Icinga. +# +# Copy this file to /etc/icinga/modules/ in order to activate it. + +define module { + module_name npcdmod + module_type neb + path /usr/lib/pnp4nagios/npcdmod.o + args config_file=/etc/pnp4nagios/npcd.cfg +} + diff --git a/debian/icinga/config.icinga.php b/debian/icinga/config.icinga.php new file mode 100644 index 0000000..265f963 --- /dev/null +++ b/debian/icinga/config.icinga.php @@ -0,0 +1,2 @@ + + AllowOverride None + + AuthName "Icinga Access" + AuthType Basic + AuthUserFile /etc/icinga/htpasswd.users + Require valid-user + + # Turn on URL rewriting + RewriteEngine On + Options symLinksIfOwnerMatch + # Installation directory + RewriteBase /pnp4nagios/ + # Protect application and system files from being viewed + RewriteRule "^(?:application|modules|system)/" - [F] + # Allow any files or directories that exist to be displayed directly + RewriteCond "%{REQUEST_FILENAME}" !-f + RewriteCond "%{REQUEST_FILENAME}" !-d + # Rewrite all other URLs to index.php/URL + RewriteRule "^.*$" "index.php/$0" [PT] + + diff --git a/debian/nagios.cfg b/debian/nagios.cfg new file mode 100644 index 0000000..36f8b04 --- /dev/null +++ b/debian/nagios.cfg @@ -0,0 +1,34 @@ +define command { + command_name pnp-synchronous-service + command_line /usr/bin/perl /usr/lib/pnp4nagios/libexec/process_perfdata.pl +} + +define command { + command_name pnp-synchronous-host + command_line /usr/bin/perl /usr/lib/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA +} + +############################################################################## + +define command { + command_name pnp-bulk-service + command_line /usr/bin/perl /usr/lib/pnp4nagios/libexec/process_perfdata.pl --bulk=/var/spool/pnp4nagios/nagios/service-perfdata +} + +define command { + command_name pnp-bulk-host + command_line /usr/bin/perl /usr/lib/pnp4nagios/libexec/process_perfdata.pl --bulk=/var/spool/pnp4nagios/nagios/host-perfdata +} + +############################################################################## + +define command { + command_name pnp-bulknpcd-service + command_line /bin/mv /var/spool/pnp4nagios/nagios/service-perfdata /var/spool/pnp4nagios/npcd/service-perfdata.$TIMET$ +} + +define command { + command_name pnp-bulknpcd-host + command_line /bin/mv /var/spool/pnp4nagios/nagios/host-perfdata /var/spool/pnp4nagios/npcd/host-perfdata.$TIMET$ +} + diff --git a/debian/nagios3/config.nagios3.php b/debian/nagios3/config.nagios3.php new file mode 100644 index 0000000..d887841 --- /dev/null +++ b/debian/nagios3/config.nagios3.php @@ -0,0 +1,2 @@ + + AllowOverride None + + AuthName "Nagios Access" + AuthType Basic + AuthUserFile /etc/nagios3/htpasswd.users + Require valid-user + + # Turn on URL rewriting + RewriteEngine On + Options symLinksIfOwnerMatch + # Installation directory + RewriteBase /pnp4nagios/ + # Protect application and system files from being viewed + RewriteRule "^(?:application|modules|system)/" - [F] + # Allow any files or directories that exist to be displayed directly + RewriteCond "%{REQUEST_FILENAME}" !-f + RewriteCond "%{REQUEST_FILENAME}" !-d + # Rewrite all other URLs to index.php/URL + RewriteRule "^.*$" "index.php/$0" [PT] + + diff --git a/debian/patches/adjust-template-path b/debian/patches/adjust-template-path new file mode 100644 index 0000000..2e18a6e --- /dev/null +++ b/debian/patches/adjust-template-path @@ -0,0 +1,29 @@ +Description: Install templates into /etc/ rather than /usr/share/. + Also, add support for templates.d directory. +Author: Sven Velt , Sebastian Harl 0)) { ++ foreach ($templates_d as $dirname) { ++ $conf['template_dirs'][] = "$dirname"; ++ } ++} + $conf['template_dirs'][] = '@datarootdir@/templates.dist'; + + # + # Directory to search for special templates + # +-$conf['special_template_dir'] = '@datarootdir@/templates.special'; ++$conf['special_template_dir'] = '@sysconfdir@/templates.special'; + + # + # Regex to detect mobile devices diff --git a/debian/patches/apache-fix-path-to-userfile b/debian/patches/apache-fix-path-to-userfile new file mode 100644 index 0000000..1e10b85 --- /dev/null +++ b/debian/patches/apache-fix-path-to-userfile @@ -0,0 +1,15 @@ +Description: Fix config directory in the sample httpd.conf. +Author: Sven Velt +Forwarded: not-needed + +--- a/sample-config/httpd.conf.in ++++ b/sample-config/httpd.conf.in +@@ -11,7 +11,7 @@ + # + AuthName "Nagios Access" + AuthType Basic +- AuthUserFile /usr/local/nagios/etc/htpasswd.users ++ AuthUserFile /etc/nagios3/htpasswd.users + Require valid-user + + # Turn on URL rewriting diff --git a/debian/patches/config_instances b/debian/patches/config_instances new file mode 100644 index 0000000..13b6600 --- /dev/null +++ b/debian/patches/config_instances @@ -0,0 +1,28 @@ +Description: Include a instance based config +Author: Markus Frosch +Last-Update: 2014-09-01 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/sample-config/pnp/config.php.in ++++ b/sample-config/pnp/config.php.in +@@ -89,7 +89,8 @@ + # + # Link back to Nagios or Thruk ( www.thruk.org ) + # +-$conf['nagios_base'] = "/cgi-bin/nagios3"; ++## Debian: please see /etc/pnp4nagios/config..php ++##$conf['nagios_base'] = "/cgi-bin/nagios3"; + + # + # Link back to check_mk´s multisite ( http://mathias-kettner.de/checkmk_multisite.html ) +@@ -278,4 +279,10 @@ + '#F6E8C3','#C7EAE5','#DFC27D','#80CDC1','#BF812D','#35978F','#8C510A','#01665E'); + $scheme['mixed3'] = array ('#67001F','#80CDC1','#B2182B','#35978F','#D6604D','#01665E','#F4A582','#003C30', + '#FDDBC7','#92C5DE','#D1E5F0','#2166AC','#4393C3','#8C510A','#053061','#BF812D'); ++ ++if (file_exists('/etc/pnp4nagios/config.icinga.php')) { ++ include '/etc/pnp4nagios/config.icinga.php'; ++} else if (file_exists('/etc/pnp4nagios/config.nagios3.php')) { ++ include '/etc/pnp4nagios/config.nagios3.php'; ++} + ?> diff --git a/debian/patches/fix-nagios-url b/debian/patches/fix-nagios-url new file mode 100644 index 0000000..84419a4 --- /dev/null +++ b/debian/patches/fix-nagios-url @@ -0,0 +1,15 @@ +Description: Fix cgi-bin path in config.php. +Author: Sven Velt +Forwarded: not-needed + +--- a/sample-config/pnp/config.php.in ++++ b/sample-config/pnp/config.php.in +@@ -89,7 +89,7 @@ $conf['temp'] = "/var/tmp"; + # + # Link back to Nagios or Thruk ( www.thruk.org ) + # +-$conf['nagios_base'] = "/nagios/cgi-bin"; ++$conf['nagios_base'] = "/cgi-bin/nagios3"; + + # + # Link back to check_mk´s multisite ( http://mathias-kettner.de/checkmk_multisite.html ) diff --git a/debian/patches/fix-npcd-path b/debian/patches/fix-npcd-path new file mode 100644 index 0000000..f32dfdd --- /dev/null +++ b/debian/patches/fix-npcd-path @@ -0,0 +1,24 @@ +Description: Fix perfdata paths in npcd.cfg. +Author: Sven Velt +Forwarded: not-needed + +--- a/sample-config/pnp/npcd.cfg-sample.in ++++ b/sample-config/pnp/npcd.cfg-sample.in +@@ -76,7 +76,7 @@ + # perfdata_spool_dir = + # + +-perfdata_spool_dir = @PERFDATA_SPOOL_DIR@ ++perfdata_spool_dir = @PERFDATA_SPOOL_DIR@/npcd/ + + + # Execute following command for each found file +@@ -163,7 +163,7 @@ + # perfdata_file = + # + +-perfdata_file = @localstatedir@/perfdata.dump ++perfdata_file = @PERFDATA_SPOOL_DIR@/nagios/perfdata.dump + + + # perfdata_spool_filename - declare the destination diff --git a/debian/patches/fix-path-fpdi b/debian/patches/fix-path-fpdi new file mode 100644 index 0000000..c17addb --- /dev/null +++ b/debian/patches/fix-path-fpdi @@ -0,0 +1,15 @@ +Description: FPDI is shipped in its own subdirectory -- adopt path in pdf.php. +Author: Sven Velt +Forwarded: not-needed + +--- a/share/pnp/application/controllers/pdf.php ++++ b/share/pnp/application/controllers/pdf.php +@@ -268,7 +268,7 @@ class Pdf_Controller extends System_Cont + * + */ + require Kohana::find_file('vendor/fpdf', 'fpdf'); +-require Kohana::find_file('vendor/fpdf', 'fpdi'); ++require Kohana::find_file('vendor/fpdi', 'fpdi'); + class PDF extends FPDI { + //Page header + function Header() { diff --git a/debian/patches/hardening b/debian/patches/hardening new file mode 100644 index 0000000..64ff528 --- /dev/null +++ b/debian/patches/hardening @@ -0,0 +1,26 @@ +Description: Fix use of flags in Makefiles + To pass all hardening flags to gcc. +Author: Markus Frosch +Last-Update: 2015-07-01 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -83,7 +83,7 @@ + # + ############################### + npcd: npcd.c $(NPCDOBJS) $(NPCDHEAD) +- $(CC) $(CFLAGS) -o $@ npcd.c $(NPCDOBJS) -lpthread ++ $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ npcd.c $(NPCDOBJS) $(LDFLAGS) -lpthread + + ############################### + # +@@ -91,7 +91,7 @@ + # + ############################### + npcdmod.o: npcdmod.c +- $(CC) $(MOD_CFLAGS) $(CFLAGS) -o npcdmod.o npcdmod.c $(MOD_LDFLAGS) $(LDFLAGS) $(LIBS) -fPIC ++ $(CC) $(MOD_CFLAGS) $(CFLAGS) $(CPPFLAGS) -o npcdmod.o npcdmod.c $(MOD_LDFLAGS) $(LDFLAGS) $(LIBS) -fPIC + + ############################### + # diff --git a/debian/patches/install_opts b/debian/patches/install_opts new file mode 100644 index 0000000..9dd42cb2 --- /dev/null +++ b/debian/patches/install_opts @@ -0,0 +1,16 @@ +Description: Disable INSTALL_OPTS +Author: Markus Frosch +Last-Update: 2014-10-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/configure.ac ++++ b/configure.ac +@@ -116,7 +116,7 @@ + AC_SUBST(nagios_grp) + AC_DEFINE_UNQUOTED(DEFAULT_NAGIOS_USER,"$nagios_user") + AC_DEFINE_UNQUOTED(DEFAULT_NAGIOS_GROUP,"$nagios_grp") +-INSTALL_OPTS="-o $nagios_user -g $nagios_grp" ++INSTALL_OPTS="" + AC_SUBST(INSTALL_OPTS) + + # Checks for programs. diff --git a/debian/patches/privacy-warning b/debian/patches/privacy-warning new file mode 100644 index 0000000..fe6911b --- /dev/null +++ b/debian/patches/privacy-warning @@ -0,0 +1,23 @@ +Description: Remove flattr link code from documentation + The code is actually not used, because the flattr JS stuff is not included. + . + But we are disabling it anyways. +Author: Markus Frosch +Last-Update: 2014-10-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/share/pnp/documents/de_DE/start.html ++++ b/share/pnp/documents/de_DE/start.html +@@ -12,12 +12,6 @@ + + +

+- +-

+-

+- +-

+- + Theme "smoothness" +

+ diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..1a82f5c --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,9 @@ +fix-path-fpdi +apache-fix-path-to-userfile +fix-npcd-path +fix-nagios-url +adjust-template-path +privacy-warning +config_instances +install_opts +hardening diff --git a/debian/pnp4nagios-bin.examples b/debian/pnp4nagios-bin.examples new file mode 100644 index 0000000..7bd7544 --- /dev/null +++ b/debian/pnp4nagios-bin.examples @@ -0,0 +1 @@ +debian/icinga/npcdmod.cfg diff --git a/debian/pnp4nagios-bin.install b/debian/pnp4nagios-bin.install new file mode 100644 index 0000000..f34ca3a --- /dev/null +++ b/debian/pnp4nagios-bin.install @@ -0,0 +1,12 @@ +etc/pnp4nagios/nagios.cfg +etc/pnp4nagios/check_commands/ +etc/pnp4nagios/*.cfg +usr/lib/pnp4nagios/ +../../scripts/verify_pnp_config_v2.pl /usr/lib/pnp4nagios/libexec/ +usr/sbin/npcd +usr/share/doc/pnp4nagios/examples/*.cfg +usr/share/doc/pnp4nagios/examples/check_commands/ +usr/share/man/man8/npcd.8 +var/log/pnp4nagios/stats/ +var/lib/pnp4nagios/perfdata/ +var/spool/pnp4nagios/ diff --git a/debian/pnp4nagios-bin.npcd.default b/debian/pnp4nagios-bin.npcd.default new file mode 100644 index 0000000..f474034 --- /dev/null +++ b/debian/pnp4nagios-bin.npcd.default @@ -0,0 +1,7 @@ +# Default settings for the NPCD init script. + +# Should NPCD be started? ("yes" to enable) +RUN="no" + +# Additional options that are passed to the daemon. +DAEMON_OPTS="-d -f /etc/pnp4nagios/npcd.cfg" diff --git a/debian/pnp4nagios-bin.npcd.init b/debian/pnp4nagios-bin.npcd.init new file mode 100644 index 0000000..d4d247a --- /dev/null +++ b/debian/pnp4nagios-bin.npcd.init @@ -0,0 +1,204 @@ +#!/bin/sh +# +# init.d script for NPCD of PNP4Nagios +# +# Based on a example script of Javier Fernandez-Sanguino +# Copyright (c) 2007 Javier Fernandez-Sanguino +# Copyright (c) 2009 Sven Velt +# +### BEGIN INIT INFO +# Provides: npcd +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: $network $local_fs $remote_fs +# Should-Start: +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Nagios Performance C Daemon +# Description: Speed up processing of Nagios' performance data +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +DAEMON=/usr/sbin/npcd +NAME=npcd +DESC="Nagios Performance C Daemon (PNP4Nagios)" +LOGDIR=/var/log/pnp4nagios + +PIDFILE=/var/run/$NAME.pid + +test -x $DAEMON || exit 0 + +. /lib/lsb/init-functions + +# Default options, these can be overriden by the information +# at /etc/default/$NAME +DAEMON_OPTS="" +DIETIME=10 +STARTTIME=2 +LOGFILE=$LOGDIR/$NAME.log + +# Include defaults if available +if [ -f /etc/default/npcd ] ; then + . /etc/default/npcd +fi + +# Check if RUN is set to "yes" in /etc/defaults/npcd +if [ "x$RUN" != "xyes" ] ; then + echo "$NAME has been disabled in /etc/default/npcd." + exit 0 +fi + +set -e + +# Check if a given process pid's cmdline matches a given name +running_pid() { + pid=$1 + name=$2 + [ -z "$pid" ] && return 1 + [ ! -d /proc/$pid ] && return 1 + cmd=`cat /proc/$pid/cmdline | tr "\000" "\n" | head -n 1 | cut -d : -f 1` + # Is this the expected server + [ "$cmd" != "$name" ] && return 1 + return 0 +} + +# Check if the process is running looking at /proc +# (works for all users) +running() { + # No pidfile, probably no daemon present + [ ! -f "$PIDFILE" ] && return 1 + pid=`cat $PIDFILE` + running_pid $pid $DAEMON || return 1 + return 0 +} + +# Start the process using the wrapper +start_server() { + start_daemon -p $PIDFILE $DAEMON $DAEMON_OPTS + errcode=$? + return $errcode +} + +# Stop the process using the wrapper +stop_server() { + killproc -p $PIDFILE $DAEMON + errcode=$? + return $errcode +} + +reload_server() { + [ ! -f "$PIDFILE" ] && return 1 + pid=pidofproc $PIDFILE # This is the daemon's pid + # Send a SIGHUP + kill -1 $pid + return $? +} + +# Force the process to die killing it manually +force_stop() { + [ ! -e "$PIDFILE" ] && return + if running ; then + kill -15 $pid + # Is it really dead? + sleep "$DIETIME"s + if running ; then + kill -9 $pid + sleep "$DIETIME"s + if running ; then + echo "Cannot kill $NAME (pid=$pid)!" + exit 1 + fi + fi + fi + rm -f $PIDFILE +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + # Check if it's running first + if running ; then + log_progress_msg "apparently already running" + log_end_msg 0 + exit 0 + fi + if start_server ; then + # NOTE: Some servers might die some time after they start, + # this code will detect this issue if STARTTIME is set + # to a reasonable value + [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time + if running ; then + # It's ok, the server started and is running + log_end_msg 0 + else + # It is not running after we did start + log_end_msg 1 + fi + else + # Either we could not start it + log_end_msg 1 + fi + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + if running ; then + # Only stop the server if we see it running + errcode=0 + stop_server || errcode=$? + log_end_msg $errcode + else + # If it's not running don't do anything + log_progress_msg "apparently not running" + log_end_msg 0 + exit 0 + fi + ;; + force-stop) + # First try to stop gracefully the program + $0 stop + if running; then + # If it's still running try to kill it more forcefully + log_daemon_msg "Stopping (force) $DESC" "$NAME" + errcode=0 + force_stop || errcode=$? + log_end_msg $errcode + fi + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + errcode=0 + stop_server || errcode=$? + # Wait some sensible amount, some server need this + [ -n "$DIETIME" ] && sleep $DIETIME + start_server || errcode=$? + [ -n "$STARTTIME" ] && sleep $STARTTIME + running || errcode=$? + log_end_msg $errcode + ;; + status) + + log_daemon_msg "Checking status of $DESC" "$NAME" + if running ; then + log_progress_msg "running" + log_end_msg 0 + else + log_progress_msg "apparently not running" + log_end_msg 1 + exit 1 + fi + ;; + # Use this if the daemon cannot reload + reload) + log_warning_msg "Reloading $NAME daemon: not implemented, as the daemon" + log_warning_msg "cannot re-read the config file (use restart)." + exit 1 + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/pnp4nagios-bin.pnp_gearman_worker.default b/debian/pnp4nagios-bin.pnp_gearman_worker.default new file mode 100644 index 0000000..f36af0d --- /dev/null +++ b/debian/pnp4nagios-bin.pnp_gearman_worker.default @@ -0,0 +1,11 @@ +# Default settings for the pnp_gearman_worker init script. + +# Should the gearman worker daemon be started? ("yes" to enable) +RUN="no" + +# Additional options that are passed to the daemon. +DAEMON_OPTS="--config=/etc/pnp4nagios/process_perfdata.cfg" + +# Change to this user before starting the daemon. +# Note: the daemon refuses to start as root. +USER=nagios diff --git a/debian/pnp4nagios-bin.pnp_gearman_worker.init b/debian/pnp4nagios-bin.pnp_gearman_worker.init new file mode 100644 index 0000000..e45120b --- /dev/null +++ b/debian/pnp4nagios-bin.pnp_gearman_worker.init @@ -0,0 +1,210 @@ +#!/bin/sh +# +# init.d script for the Gearman worker daemon of PNP4Nagios +# +# Based on an example script for NPCD of Javier Fernandez-Sanguino +# Copyright (c) 2007 Javier Fernandez-Sanguino +# Copyright (c) 2011 Sebastian Harl +# +### BEGIN INIT INFO +# Provides: pnp_gearman_worker +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: $network $local_fs $remote_fs +# Should-Start: +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: PNP4Nagios Gearman worker daemon +# Description: Processing of Nagios' perf data in distributed setups +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +DAEMON=/usr/lib/pnp4nagios/libexec/process_perfdata.pl +NAME=pnp_gearman_worker +DESC="PNP4Nagios Gearman worker daemon" + +PIDFILE=/var/run/pnp4nagios/$NAME.pid + +test -x $DAEMON || exit 0 + +. /lib/lsb/init-functions + +# Default options, these can be overriden by the information +# at /etc/default/$NAME +DAEMON_OPTS="" +DIETIME=10 +STARTTIME=2 +USER=nagios + +if [ -f /etc/default/pnp_gearman_worker ] ; then + . /etc/default/pnp_gearman_worker +fi + +if [ "x$RUN" != "xyes" ] ; then + echo "$NAME has been disabled in /etc/default/pnp_gearman_worker." + exit 0 +fi + +set -e + +# Check if a given process pid's cmdline matches a given name +running_pid() { + pid=$1 + name=$2 + [ -z "$pid" ] && return 1 + [ ! -d /proc/$pid ] && return 1 + cmd=`cat /proc/$pid/cmdline | tr "\000" "\n" | head -n 1 | cut -d : -f 1` + # Is this the expected server + [ "$cmd" != "$name" ] && return 1 + return 0 +} + +# Check if the process is running looking at /proc +# (works for all users) +running() { + # No pidfile, probably no daemon present + [ ! -f "$PIDFILE" ] && return 1 + pid=`cat $PIDFILE` + running_pid "$pid" $DAEMON \ + || running_pid "$pid" "/usr/bin/perl" || return 1 + return 0 +} + +# Start the process using the wrapper +start_server() { + if ! perl -MGearman::Worker -e '1;' > /dev/null 2>&1 \ + || ! perl -MMIME::Base64 -e '1;' > /dev/null 2>&1 \ + || ! perl -MCrypt::Rijndael -e '1;' > /dev/null 2>&1; then + echo "$NAME requires the Gearman::Worker, MIME::Base64 and" >&2 + echo "Crypt::Rijndael Perl modules. Make sure that the packages" >&2 + echo "perl, libgearman-client-perl and libcrypt-rijndael-perl" >&2 + echo "are installed." >&2 + exit 1 + fi + + if [ -d /var/run/pnp4nagios ]; then + chmod 755 /var/run/pnp4nagios + chown nagios.nagios /var/run/pnp4nagios + else + install -d -m 755 -o nagios -g nagios /var/run/pnp4nagios + fi + + start_opts="--start --quiet --oknodo --pidfile $PIDFILE" + if [ -n "$USER" ]; then + start_opts="$start_opts --chuid $USER" + fi + start-stop-daemon $start_opts --exec $DAEMON -- \ + --pidfile=$PIDFILE --gearman --daemon $DAEMON_OPTS + errcode=$? + return $errcode +} + +# Stop the process using the wrapper +stop_server() { + killproc -p $PIDFILE $DAEMON + errcode=$? + return $errcode +} + +# Force the process to die killing it manually +force_stop() { + [ ! -e "$PIDFILE" ] && return + if running ; then + kill -15 $pid + # Is it really dead? + sleep "$DIETIME"s + if running ; then + kill -9 $pid + sleep "$DIETIME"s + if running ; then + echo "Cannot kill $NAME (pid=$pid)!" + exit 1 + fi + fi + fi + rm -f $PIDFILE +} + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + # Check if it's running first + if running ; then + log_progress_msg "apparently already running" + log_end_msg 0 + exit 0 + fi + if start_server ; then + # NOTE: Some servers might die some time after they start, + # this code will detect this issue if STARTTIME is set + # to a reasonable value + [ -n "$STARTTIME" ] && sleep $STARTTIME # Wait some time + if running ; then + # It's ok, the server started and is running + log_end_msg 0 + else + # It is not running after we did start + log_end_msg 1 + fi + else + # Either we could not start it + log_end_msg 1 + fi + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + if running ; then + # Only stop the server if we see it running + errcode=0 + stop_server || errcode=$? + log_end_msg $errcode + else + # If it's not running don't do anything + log_progress_msg "apparently not running" + log_end_msg 0 + exit 0 + fi + ;; + force-stop) + # First try to stop gracefully the program + $0 stop + if running; then + # If it's still running try to kill it more forcefully + log_daemon_msg "Stopping (force) $DESC" "$NAME" + errcode=0 + force_stop || errcode=$? + log_end_msg $errcode + fi + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + errcode=0 + stop_server || errcode=$? + # Wait some sensible amount, some server need this + [ -n "$DIETIME" ] && sleep $DIETIME + start_server || errcode=$? + [ -n "$STARTTIME" ] && sleep $STARTTIME + running || errcode=$? + log_end_msg $errcode + ;; + status) + + log_daemon_msg "Checking status of $DESC" "$NAME" + if running ; then + log_progress_msg "running" + log_end_msg 0 + else + log_progress_msg "apparently not running" + log_end_msg 1 + exit 1 + fi + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|force-stop|restart|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/pnp4nagios-bin.postinst b/debian/pnp4nagios-bin.postinst new file mode 100644 index 0000000..6c0b1b6 --- /dev/null +++ b/debian/pnp4nagios-bin.postinst @@ -0,0 +1,78 @@ +#!/bin/sh +# postinst script for pnp4nagios-bin +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +setperm() { + user="$1" + group="$2" + mode="$3" + file="$4" + shift 4 + # only do something when no setting exists + if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then + chown "$user":"$group" "$file" + chmod "$mode" "$file" + fi +} + +case "$1" in + configure) + if ! getent passwd nagios > /dev/null ; then + echo 'Adding system-user for nagios' 1>&2 + adduser --system --group --home /var/lib/nagios \ + --disabled-login --force-badname nagios > /dev/null + fi + setperm nagios www-data 750 /var/lib/pnp4nagios + setperm nagios nagios 755 /var/lib/pnp4nagios/perfdata + setperm nagios www-data 750 /var/log/pnp4nagios + setperm nagios nagios 750 /var/log/pnp4nagios/stats + setperm nagios nagios 770 /var/spool/pnp4nagios + setperm nagios nagios 770 /var/spool/pnp4nagios/nagios + setperm nagios nagios 770 /var/spool/pnp4nagios/npcd + + setperm root nagios 640 /etc/pnp4nagios/process_perfdata.cfg + + if [ -d /etc/nagios3/conf.d/ ]; then + if [ ! -e /etc/nagios3/conf.d/pnp4nagios.cfg ]; then + ln -s /etc/pnp4nagios/nagios.cfg /etc/nagios3/conf.d/pnp4nagios.cfg + fi + fi + if [ -d /etc/icinga/objects/ ]; then + if [ ! -e /etc/icinga/objects/pnp4nagios.cfg ]; then + ln -s /etc/pnp4nagios/nagios.cfg /etc/icinga/objects/pnp4nagios.cfg + fi + fi + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + diff --git a/debian/pnp4nagios-bin.postrm b/debian/pnp4nagios-bin.postrm new file mode 100644 index 0000000..369f60b --- /dev/null +++ b/debian/pnp4nagios-bin.postrm @@ -0,0 +1,57 @@ +#!/bin/sh +# postrm script for pnp4nagios-bin +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove) + if [ -d /etc/nagios3/conf.d/ ]; then + if [ -L /etc/nagios3/conf.d/pnp4nagios.cfg ]; then + ls -l /etc/nagios3/conf.d/pnp4nagios.cfg | grep -q /etc/pnp4nagios/nagios.cfg + if [ $? -eq 0 ]; then + rm -f /etc/nagios3/conf.d/pnp4nagios.cfg + fi + fi + fi + if [ -d /etc/icinga/objects/ ]; then + if [ -L /etc/icinga/objects/pnp4nagios.cfg ]; then + ls -l /etc/icinga/objects/pnp4nagios.cfg | grep -q /etc/pnp4nagios/nagios.cfg + if [ $? -eq 0 ]; then + rm -f /etc/icinga/objects/pnp4nagios.cfg + fi + fi + fi + + ;; + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + diff --git a/debian/pnp4nagios-web-config-icinga.install b/debian/pnp4nagios-web-config-icinga.install new file mode 100644 index 0000000..c2911fa --- /dev/null +++ b/debian/pnp4nagios-web-config-icinga.install @@ -0,0 +1,2 @@ +debian/icinga/config.icinga.php etc/pnp4nagios +debian/icinga/pnp4nagios.conf etc/apache2/conf-available diff --git a/debian/pnp4nagios-web-config-icinga.lintian-overrides b/debian/pnp4nagios-web-config-icinga.lintian-overrides new file mode 100644 index 0000000..b0459a6 --- /dev/null +++ b/debian/pnp4nagios-web-config-icinga.lintian-overrides @@ -0,0 +1,7 @@ +# ignoring apache2 warning +# this is actually not a problem, because the handling is backwards compatible +apache2-reverse-dependency-calls-invoke-rc.d postrm +apache2-reverse-dependency-calls-wrapper-script postinst a2enmod +apache2-reverse-dependency-calls-invoke-rc.d postinst +# we actually want that +non-standard-apache2-configuration-name pnp4nagios.conf != pnp4nagios-web-config-icinga.conf diff --git a/debian/pnp4nagios-web-config-icinga.postinst b/debian/pnp4nagios-web-config-icinga.postinst new file mode 100644 index 0000000..cc921ca --- /dev/null +++ b/debian/pnp4nagios-web-config-icinga.postinst @@ -0,0 +1,63 @@ +#!/bin/sh +# postinst script for pnp4nagios-web-config-icinga +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +case "$1" in + configure) + echo "enabling Apache2 config..." + + COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) + + # NEW method for Apache >= 2.4 + if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then + . /usr/share/apache2/apache2-maintscript-helper + + apache2_invoke enmod rewrite + apache2_invoke enconf pnp4nagios + + # remove OLD Apache 2.2 link + [ -L /etc/apache2/conf.d/pnp4nagios-web.conf ] && rm /etc/apache2/conf.d/pnp4nagios-web.conf + + # OLD methods for Apache < 2.4 + elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then + # enable mod rewrite + [ -f /etc/apache2/mods-enabled/rewrite.load ] || a2enmod rewrite + + # create symlink if not existing + [ -f /etc/apache2/conf.d/pnp4nagios.conf ] || ln -vs ../conf-available/pnp4nagios.conf /etc/apache2/conf.d/pnp4nagios.conf + + # reload webserver + [ -x $(which invoke-rc.d) ] && invoke-rc.d apache2 reload + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/pnp4nagios-web-config-icinga.postrm b/debian/pnp4nagios-web-config-icinga.postrm new file mode 100644 index 0000000..cfe533b --- /dev/null +++ b/debian/pnp4nagios-web-config-icinga.postrm @@ -0,0 +1,54 @@ +#!/bin/sh +# postrm script for pnp4nagios-web-config-icinga +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove) + # Apache2 + if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then + echo "disabling Apache2 configuration ..." + . /usr/share/apache2/apache2-maintscript-helper + apache2_invoke disconf pnp4nagios-web + fi + + if [ -L /etc/apache2/conf.d/pnp4nagios-web.conf ]; then + echo "removing link /etc/apache2/conf.d/pnp4nagios-web.conf ..." + # remove link to config + rm -f /etc/apache2/conf.d/pnp4nagios-web.conf + # reload webserver + [ -x $(which invoke-rc.d) ] && invoke-rc.d apache2 reload || true + fi + ;; + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + diff --git a/debian/pnp4nagios-web-config-nagios3.install b/debian/pnp4nagios-web-config-nagios3.install new file mode 100644 index 0000000..d767274 --- /dev/null +++ b/debian/pnp4nagios-web-config-nagios3.install @@ -0,0 +1,2 @@ +debian/nagios3/config.nagios3.php etc/pnp4nagios +debian/nagios3/pnp4nagios.conf etc/apache2/conf-available diff --git a/debian/pnp4nagios-web-config-nagios3.lintian-overrides b/debian/pnp4nagios-web-config-nagios3.lintian-overrides new file mode 100644 index 0000000..c317999 --- /dev/null +++ b/debian/pnp4nagios-web-config-nagios3.lintian-overrides @@ -0,0 +1,7 @@ +# ignoring apache2 warning +# this is actually not a problem, because the handling is backwards compatible +apache2-reverse-dependency-calls-invoke-rc.d postrm +apache2-reverse-dependency-calls-wrapper-script postinst a2enmod +apache2-reverse-dependency-calls-invoke-rc.d postinst +# we actually want that +non-standard-apache2-configuration-name pnp4nagios.conf != pnp4nagios-web-config-nagios3.conf diff --git a/debian/pnp4nagios-web-config-nagios3.postinst b/debian/pnp4nagios-web-config-nagios3.postinst new file mode 100644 index 0000000..ed0aa5d --- /dev/null +++ b/debian/pnp4nagios-web-config-nagios3.postinst @@ -0,0 +1,63 @@ +#!/bin/sh +# postinst script for pnp4nagios-web-config-nagios3 +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +case "$1" in + configure) + echo "enabling Apache2 config..." + + COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) + + # NEW method for Apache >= 2.4 + if [ -e /usr/share/apache2/apache2-maintscript-helper ]; then + . /usr/share/apache2/apache2-maintscript-helper + + apache2_invoke enmod rewrite + apache2_invoke enconf pnp4nagios + + # remove OLD Apache 2.2 link + [ -L /etc/apache2/conf.d/pnp4nagios-web.conf ] && rm /etc/apache2/conf.d/pnp4nagios-web.conf + + # OLD methods for Apache < 2.4 + elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then + # enable mod rewrite + [ -f /etc/apache2/mods-enabled/rewrite.load ] || a2enmod rewrite + + # create symlink if not existing + [ -f /etc/apache2/conf.d/pnp4nagios.conf ] || ln -vs ../conf-available/pnp4nagios.conf /etc/apache2/conf.d/pnp4nagios.conf + + # reload webserver + [ -x $(which invoke-rc.d) ] && invoke-rc.d apache2 reload + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 diff --git a/debian/pnp4nagios-web-config-nagios3.postrm b/debian/pnp4nagios-web-config-nagios3.postrm new file mode 100644 index 0000000..60c4666 --- /dev/null +++ b/debian/pnp4nagios-web-config-nagios3.postrm @@ -0,0 +1,54 @@ +#!/bin/sh +# postrm script for pnp4nagios-web-config-nagios3 +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `remove' +# * `purge' +# * `upgrade' +# * `failed-upgrade' +# * `abort-install' +# * `abort-install' +# * `abort-upgrade' +# * `disappear' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + purge|remove) + # Apache2 + if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then + echo "disabling Apache2 configuration ..." + . /usr/share/apache2/apache2-maintscript-helper + apache2_invoke disconf pnp4nagios-web + fi + + if [ -L /etc/apache2/conf.d/pnp4nagios-web.conf ]; then + echo "removing link /etc/apache2/conf.d/pnp4nagios-web.conf ..." + # remove link to config + rm -f /etc/apache2/conf.d/pnp4nagios-web.conf + # reload webserver + [ -x $(which invoke-rc.d) ] && invoke-rc.d apache2 reload || true + fi + ;; + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + diff --git a/debian/pnp4nagios-web.examples b/debian/pnp4nagios-web.examples new file mode 100644 index 0000000..0846caf --- /dev/null +++ b/debian/pnp4nagios-web.examples @@ -0,0 +1 @@ +sample-config/httpd.conf diff --git a/debian/pnp4nagios-web.install b/debian/pnp4nagios-web.install new file mode 100644 index 0000000..9a86804 --- /dev/null +++ b/debian/pnp4nagios-web.install @@ -0,0 +1,13 @@ +etc/pnp4nagios/config.php +etc/pnp4nagios/background.pdf +etc/pnp4nagios/templates/ +etc/pnp4nagios/templates.d/ +etc/pnp4nagios/pages/ +etc/pnp4nagios/templates.special/ +etc/pnp4nagios/pnp4nagios_release +usr/share/doc/pnp4nagios/examples/templates.special/ +usr/share/doc/pnp4nagios/examples/pages/ +usr/share/doc/pnp4nagios/examples/ssi/ +usr/share/pnp4nagios/html/ +var/log/pnp4nagios/kohana/ +var/lib/pnp4nagios/ diff --git a/debian/pnp4nagios-web.links b/debian/pnp4nagios-web.links new file mode 100644 index 0000000..b3200b7 --- /dev/null +++ b/debian/pnp4nagios-web.links @@ -0,0 +1,6 @@ +/usr/share/php/fpdf /usr/share/pnp4nagios/html/application/vendor/fpdf +/usr/share/php/fpdi /usr/share/pnp4nagios/html/application/vendor/fpdi +/usr/share/javascript/jquery/jquery.min.js /usr/share/pnp4nagios/html/media/js/jquery-min.js +/usr/share/javascript/jquery-ui/jquery-ui.js /usr/share/pnp4nagios/html/media/js/jquery-ui.min.js +/usr/share/javascript/jquery-mobile/jquery.mobile.min.js /usr/share/pnp4nagios/html/media/js/jquery.mobile.min.js +/usr/share/javascript/jquery-mobile/jquery.mobile.min.css /usr/share/pnp4nagios/html/media/css/jquery.mobile.min.css diff --git a/debian/pnp4nagios-web.postinst b/debian/pnp4nagios-web.postinst new file mode 100644 index 0000000..da6d8c3 --- /dev/null +++ b/debian/pnp4nagios-web.postinst @@ -0,0 +1,60 @@ +#!/bin/sh +# postinst script for pnp4nagios-web +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +setperm() { + user="$1" + group="$2" + mode="$3" + file="$4" + shift 4 + # only do something when no setting exists + if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then + chown "$user":"$group" "$file" + chmod "$mode" "$file" + fi +} + +case "$1" in + configure) + if ! getent passwd nagios > /dev/null ; then + echo 'Adding system-user for nagios' 1>&2 + adduser --system --group --home /var/lib/nagios \ + --disabled-login --force-badname nagios > /dev/null + fi + setperm nagios www-data 750 /var/lib/pnp4nagios + setperm nagios nagios 755 /var/lib/pnp4nagios/perfdata + setperm nagios www-data 750 /var/log/pnp4nagios + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..7fb862b --- /dev/null +++ b/debian/rules @@ -0,0 +1,113 @@ +#!/usr/bin/make -f +# debian/rules for PNP4Nagios + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk +CFLAGS += -Wextra + +%: + dh $@ --with autoreconf,autotools_dev + +override_dh_auto_configure: + dh_auto_configure -- \ + --with-layout=debian \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --without-kohana \ + --with-kohana_system=/usr/share/php/kohana2/system + +override_dh_auto_build: + dh_auto_build -- all + python -m jsmin share/pnp/media/js/jquery.imgareaselect.js \ + > share/pnp/media/js/jquery.imgareaselect.min.js + +override_dh_auto_install: + dh_auto_install -- install-config + + # Ignore install.php (for future debugging don't delete it) + touch debian/tmp/usr/share/pnp4nagios/html/install.ignore + + mkdir -p debian/tmp/usr/share/doc/pnp4nagios/examples/ + + # Move template config dir to /etc/pnp4nagios/templates + rmdir debian/tmp/usr/share/pnp4nagios/html/templates + mkdir debian/tmp/etc/pnp4nagios/templates + mv debian/tmp/usr/share/pnp4nagios/html/templates.special \ + debian/tmp/usr/share/doc/pnp4nagios/examples/ + mkdir debian/tmp/etc/pnp4nagios/templates.special + + mkdir -p debian/tmp/usr/sbin/ + mv debian/tmp/usr/bin/npcd \ + debian/tmp/usr/sbin/ + + mv debian/tmp/etc/pnp4nagios/rra.cfg-sample \ + debian/tmp/etc/pnp4nagios/rra.cfg + + mv debian/tmp/etc/pnp4nagios/nagios.cfg-sample \ + debian/tmp/usr/share/doc/pnp4nagios/examples/nagios.cfg + + mv debian/tmp/etc/pnp4nagios/misccommands.cfg-sample \ + debian/tmp/usr/share/doc/pnp4nagios/examples/misccommands.cfg + + mkdir debian/tmp/usr/share/doc/pnp4nagios/examples/check_commands + mv debian/tmp/etc/pnp4nagios/check_commands/check_nwstat.cfg-sample \ + debian/tmp/usr/share/doc/pnp4nagios/examples/check_commands/check_nwstat.cfg + + mkdir debian/tmp/usr/share/doc/pnp4nagios/examples/pages + mv debian/tmp/etc/pnp4nagios/pages/web_traffic.cfg-sample \ + debian/tmp/usr/share/doc/pnp4nagios/examples/pages/web_traffic.cfg + + cp -av contrib/ssi debian/tmp/usr/share/doc/pnp4nagios/examples/ + rm -fv debian/tmp/usr/share/doc/pnp4nagios/examples/ssi/*.in + + # Icinga module sample configuration + cp debian/icinga-module.cfg debian/tmp/usr/share/doc/pnp4nagios/examples/ + + # Remove external PHP classes/libraries: FPDF, FPDF-TPL, FPDI + rm -r debian/tmp/usr/share/pnp4nagios/html/application/vendor/fpdf + + # remove source files + rm debian/tmp/usr/share/pnp4nagios/html/media/js/jquery.imgareaselect.Debian.txt + rm debian/tmp/usr/share/pnp4nagios/html/media/js/jquery.imgareaselect.js + + # Remove external JavaScript files: jQuery and jQuery-UI + # no longer present in DFSG tarball + #rm debian/tmp/usr/share/pnp4nagios/html/media/js/jquery-min.js + #rm debian/tmp/usr/share/pnp4nagios/html/media/js/jquery-ui.min.js + + # Clean up some files + rmdir debian/tmp/usr/bin + mv debian/tmp/etc/pnp4nagios/check_commands/check_all_local_disks.cfg-sample \ + debian/tmp/etc/pnp4nagios/check_commands/check_all_local_disks.cfg + rm debian/tmp/etc/pnp4nagios/check_commands/check_nrpe.cfg-sample + + # Add Debian specific config and placeholder files + #touch debian/tmp/etc/pnp4nagios/pages/.placeholder + cp -av debian/nagios.cfg debian/tmp/etc/pnp4nagios/ + cp -av debian/check_commands/* debian/tmp/etc/pnp4nagios/check_commands/ + + # Remove unnecessary config files (duplicates) + rm -f debian/tmp/etc/pnp4nagios/config_local.php + rm -f debian/tmp/etc/pnp4nagios/config.php.0.6* + + # Add subdirs to /var/spool/pnp4nagios/ to prepare for different modes + mkdir debian/tmp/var/spool/pnp4nagios/nagios + mkdir debian/tmp/var/spool/pnp4nagios/npcd + + # Delete not used and empty directories + #rmdir debian/tmp/usr/share/pnp4nagios/html/application/logs/ + rmdir debian/tmp/usr/share/pnp4nagios/html/application/cache/ + rmdir debian/tmp/usr/share/pnp4nagios/html/application/hooks/ + #rmdir debian/tmp/usr/share/pnp4nagios/html/application/libraries/ + + mkdir debian/tmp/etc/pnp4nagios/templates.d + cp debian/README.templates.d debian/tmp/etc/pnp4nagios/templates.d/README + +override_dh_installinit: + dh_installinit -ppnp4nagios-bin --name=npcd + dh_installinit -ppnp4nagios-bin --name=pnp_gearman_worker + +# vi: noexpandtab ts=4 sw=4 : diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..189fbc2 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=3 +opts="dversionmangle=s/\+dfsg\d*//,uversionmangle=s/\.rc/~rc/" \ +http://sf.net/pnp4nagios/pnp4nagios-(.+)\.tar\.gz