diff --git a/debian/NEWS b/debian/NEWS new file mode 100644 index 0000000..e74a7c5 --- /dev/null +++ b/debian/NEWS @@ -0,0 +1,23 @@ +nagios3 (3.2.0-1) unstable; urgency=low + + I decided to remove the php frontend included with 3.2.0 and replace + it with the old html frontend. Its my personal oppinion that php should + not be used for administrational and security sensitive tasks. Also the new + frontend looks exactly the same as the old. If you really want the php + frontend look into README.Debian for instructions. + + The nagios3 package has been split up into two new packages: nagios3-core + and nagios3-cgi so you are now able to remove the webfrontend if you don't need. + The nagios3 package is now meta package which depends on nagios3-core and nagios3-cgi + it can be removed if you don't need it. + + -- Alexander Wirt Sat, 19 Sep 2009 10:33:40 +0200 + +nagios3 (3.0.6-4) unstable; urgency=low + + The homedirectory of the nagios user moved to /var/lib/nagios + which is now common on all nagios related packages. Its recommended + that you migrate an already existing nagios user to use /var/lib/nagios + as homedirectory. + + -- Alexander Wirt Sat, 21 Mar 2009 09:12:10 +0100 diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..83a16f3 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,64 @@ +Welcome to the nagios3 package for Debian GNU/Linux! +Below are some debian-specific notes which may be of help to you. + +If you have questions about using/configuring nagios, you should probably +contact the nagios-users mailing list and NOT the maintainers: + + nagios-users@lists.sourceforge.net + +Of course we'd be happy to hear about any bugs you find, and are always +open to discussing any ideas you might have for improvement. you can +contact the debian nagios maintainers at: + + pkg-nagios-devel@lists.alioth.debian.org + +Upgrading from Nagios 1 or Nagios 2 +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Nagios 1, Nagios 2 and Nagios 3 are independent packages. You can have both +installed at the same time, and both services can run at the same +time. There should be no interference between the two packages. That +way, you can take your time in migrating over your configuration. + +nagios3 allows you to continue supporting the 1.x URLs. After removing +and purging Nagios 1, either dpkg-reconfigure nagios3-common or +manually edit /etc/nagios3/apache.conf (activating all lines preceded +by "# nagios 1.x")to have nagios3 take over the nagios 1.x URLs. If +you enable these with nagios 1 still present, the results are undefined. + +If you upgrade from Nagios 2 please note that the host-notify-by-email and +notify-by-email have been renamed to notify-host-by-email and +notify-service-by-email to make the naming more intuitivly. + +External Commands +^^^^^^^^^^^^^^^^^ +Nagios 3 is not configured to look for external commands in the +default configuration as a security feature. To enable external +commands, you need to allow the web server write access to the +nagios command pipe. the simplest way of doing this is to +set check_external_commands=1 in your nagios configuration, +and then change the permissions in a way which will be maintained +across package upgrades (otherwise dpkg will overwrite your +permission changes). The following is the recommended approach: + +- activate external command checks in the nagios configuration. this + can be done by setting check_external_commands=1 in the file + /etc/nagios3/nagios.cfg. + +- perform the following commands to change directory permissions and + to make the changes permanent: + +/etc/init.d/nagios3 stop +dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw +dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3 +/etc/init.d/nagios3 start + +Manually Providing / Overriding Authentication Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The default debian configuration for nagios+apache is to use +an htpasswd style file in /etc/nagios3/htpasswd.users. if you +chose not to (or otherwise didn't) provide a password during package +configuration, we assume that you know what you're doing and will +not get in your way. however, if you don't know what you're doing, +you should either dpkg-reconfigure nagios3-common and provide +a password, or read the fine manual for htpasswd(1). diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..b9e490d --- /dev/null +++ b/debian/README.source @@ -0,0 +1,2 @@ +We use dpatch for patch handling inside our nagios packages. Please see +/usr/share/doc/dpatch/README.source.gz (if you have installed dpatch) for documentation about dpatch. diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 0000000..6459ae0 --- /dev/null +++ b/debian/TODO @@ -0,0 +1,8 @@ +what isn't there todo? :) + +- double check init script +- fill in README.Debian +- would be nice to manage apache2.conf via ucf, and make + nagios 1.x url support in the file a debconf option. +- good working default config, at least monitoring the freebies (disk, + swap, etc) on localhost. diff --git a/debian/apache2.conf b/debian/apache2.conf new file mode 100644 index 0000000..f0f8b2f --- /dev/null +++ b/debian/apache2.conf @@ -0,0 +1,67 @@ +# apache configuration for nagios 3.x +# note to users of nagios 1.x and 2.x: +# throughout this file are commented out sections which preserve +# backwards compatibility with bookmarks/config for older nagios versios. +# simply look for lines following "nagios 1.x:" and "nagios 2.x" comments. + +ScriptAlias /cgi-bin/nagios3 /usr/lib/cgi-bin/nagios3 +ScriptAlias /nagios3/cgi-bin /usr/lib/cgi-bin/nagios3 +# nagios 1.x: +#ScriptAlias /cgi-bin/nagios /usr/lib/cgi-bin/nagios3 +#ScriptAlias /nagios/cgi-bin /usr/lib/cgi-bin/nagios3 +# nagios 2.x: +#ScriptAlias /cgi-bin/nagios2 /usr/lib/cgi-bin/nagios3 +#ScriptAlias /nagios2/cgi-bin /usr/lib/cgi-bin/nagios3 + +# Where the stylesheets (config files) reside +Alias /nagios3/stylesheets /etc/nagios3/stylesheets +# nagios 1.x: +#Alias /nagios/stylesheets /etc/nagios3/stylesheets +# nagios 2.x: +#Alias /nagios2/stylesheets /etc/nagios3/stylesheets + +# Where the HTML pages live +Alias /nagios3 /usr/share/nagios3/htdocs +# nagios 2.x: +#Alias /nagios2 /usr/share/nagios3/htdocs +# nagios 1.x: +#Alias /nagios /usr/share/nagios3/htdocs + + + Options FollowSymLinks + + DirectoryIndex index.php index.html + + AllowOverride AuthConfig + + + + Order Allow,Deny + Allow From All + + + = 2.3> + Require all denied + + + AuthName "Nagios Access" + AuthType Basic + AuthUserFile /etc/nagios3/htpasswd.users + # nagios 1.x: + #AuthUserFile /etc/nagios/htpasswd.users + require valid-user + + + + Options +ExecCGI + + +# Enable this ScriptAlias if you want to enable the grouplist patch. +# See http://apan.sourceforge.net/download.html for more info +# It allows you to see a clickable list of all hostgroups in the +# left pane of the Nagios web interface +# XXX This is not tested for nagios 2.x use at your own peril +#ScriptAlias /nagios3/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi +# nagios 1.x: +#ScriptAlias /nagios/side.html /usr/lib/cgi-bin/nagios3/grouplist.cgi + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..f4e19a9 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,680 @@ +nagios3 (3.5.1.dfsg-2) unstable; urgency=medium + + * [a72437b] Make apache.conf compatible with apache 2.4.10 (Closes: #762096) + * [99f6a27] Check for existance of files in setperm() (Closes: #683521) + + -- Alexander Wirt Sun, 05 Oct 2014 11:53:19 +0200 + +nagios3 (3.5.1.dfsg-1) unstable; urgency=medium + + * [111b7c7] Check if apache init script exists before invoking it. + * [3d4069b] Imported Upstream version 3.5.1.dfsg + * [848ee55] Remove minified jquery versions and use packaged jquery + (Closes: #737441) + + -- Alexander Wirt Sat, 30 Aug 2014 11:29:32 -0700 + +nagios3 (3.5.1-1) unstable; urgency=medium + + * [bf5522e] Enable cgi module for apache 2.4 (Closes: #725177) + * [744e794] Stick to 3.x for now + * [5d1f7c2] Imported Upstream version 3.5.1 + Closes: #642515 + * [43e7d66] Remove obsolete patches + * [65bee9b] Move to quilt + * [77d98da] Remove dpatch dependency + * [63dacfb] Bump standards version + * [053130c] Take care that /var/run/nagios3 is created at boot time + * [cfca1db] Remove leading 'a' from description + * [057dfb9] Remove dpatch from rules file + * [de834df] Move /var/run/nagios3 creation to initscript (Closes: #689901) + * [ee6422c] Make 3.0 quilt more vcs friendly + * [c88bef8] don't let nagios call home. This fixes CVE-2013-4214. + (Closes: #719056) + * [828c43f] Bump standards version. + * [611d0f9] Don't ship folder in /var/run (Closes: #689901) + + -- Alexander Wirt Fri, 03 Jan 2014 23:18:34 +0100 + +nagios3 (3.4.1-5) unstable; urgency=low + + * [8b23685] Remove obsolete webapps configuration (Closes: #714707, #714258) + * [6abb302] Cleanup password handling + * [e4a9bf7] Fix password handling + + -- Alexander Wirt Sun, 21 Jul 2013 12:02:14 +0200 + +nagios3 (3.4.1-4) unstable; urgency=high + + * [cd50049] Add missing check command in initscript (Closes: #680615) + * [77c9d0e] Fix typo in initscript + * [a2c78a1] Stop status.cgi from listing unauthorized hosts and services in servicegroup view (CVE-2013-2214) + Thanks to Jonas Meurer for the report and the patch (Closes: #714171) + * [51fb59b] Backport upstream r1953 to fix downtime retention across restarts. + Thanks to Didier 'OdyX' Raboud for the patch (Closes: #710356) + * [c14f6cf] Deprecate Nagios1 compatible Nagios configuration + * [bfc4c8d] Don't use files from docs/examples (Closes: #709957) + * [abe9bc9] Update web specific packaging for apache 2.4 + + -- Alexander Wirt Thu, 27 Jun 2013 00:40:30 +0200 + +nagios3 (3.4.1-3) unstable; urgency=low + + * Fix several overflows in getcgi.cgi and history.cgi + This is fix for CVE 2012-6096 (Closes: #697930) + + -- Alexander Wirt Sun, 27 Jan 2013 19:24:49 +0100 + +nagios3 (3.4.1-2) unstable; urgency=low + + * [265c38d] Don't call the updatecheck on debian + * [4550d49] Use debians jquery instead of the shipped one + * [9976373] Remove stupid date() warning in PHP and set + UTC as default timezone + + -- Alexander Wirt Sat, 30 Jun 2012 10:44:31 +0200 + +nagios3 (3.4.1-1) unstable; urgency=low + + * [28e077b] Imported Upstream version 3.3.1 + * [d5314e0] don't call updatepo in clean target + * [45b3eb9] Don't remove config foo + * [54e3dff] Don't fix permissions in cgi postinst + * [d7be9db] Build-depend on libpng-dev (Closes: #662441) + * [4c47006] Add dutch po translation (Closes: #654855) + * [2b6573b] Refresh 10_p1_pl_shebang.dpatch + * [316fd7a] Update 40_fix_spurious_dollar_signs_added_to_command_lines + * [5ff2780] Refresh 55_strip_logarchivepath.dpatch + * [811d269] Refresh 60_fix_p1.pl_patch_mini_epn.dpatch + * [39a1e9c] Remove now unneeded patch 98_fix_XSS_CVE-2011-2179 + * [785a4e8] Remove unneded patch 99_fix_XSS_CVE-2011-1523 + * [6ce98ef] Remove unneeded patchs from 00list + * [1d18266] Imported Upstream version 3.4.0 + * [05584c8] Refresh patches + * [58098cd] Imported Upstream version 3.4.1 + * [3e9e07a] Bump standards version + * [fe991e2] wrap-and-sort + * [1ba78f7] Also create /var/run/nagios in cgi package (Closes: #626854) + + -- Alexander Wirt Sat, 16 Jun 2012 09:05:19 +0200 + +nagios3 (3.2.3-3) unstable; urgency=high + + * [9149473] Fix CVE-2011-2179: XSS via expand function in config.cgi (Closes: #629127). + * [b5f30e1] Fix for CVE-2011-1523: XSS problem in statusmap.cgi (Closes: #629127) + + -- Alexander Wirt Sat, 04 Jun 2011 20:22:20 +0200 + +nagios3 (3.2.3-2) unstable; urgency=low + + * Fix status function of initscript + * Allow deconfiguration of webservers via debconf (Closes: #591786) + * Add ExecCGI for index.php (Closes: #584696) + * Add danish po translation (Closes: #605520) + * Add option in default file to disable nagios3 at boottime (Closes: + #602490) + * [c01bde3] Enable hardening. + Thanks to Kees Cook (Closes: #542727) + + -- Alexander Wirt Sun, 22 May 2011 09:29:56 +0200 + +nagios3 (3.2.3-1) unstable; urgency=low + + * New upstream version + * Remove iputils-ping from build-dep (Closes: #590552) + * Add index.html to apache2.conf (Closes: #598859) + * Bump standards version (No changes) + + -- Alexander Wirt Sat, 02 Oct 2010 19:01:32 +0200 + +nagios3 (3.2.1-2) unstable; urgency=low + + * Fix "Missing conflict with nagios3 v3.0.6-4~lenny2 (/usr/lib/cgi- + bin/nagios3/extinfo.cgi": add a versioned Replaces/Breaks on nagios3 to + nagios3-cgi (Closes: #585410). Make the other Replaces versioned too and + also add them to the new Breaks. + + Thanks to Gregor Herrmann for the patch + + * Bump Standards version (no changes) + + -- Alexander Wirt Fri, 02 Jul 2010 09:09:10 +0200 + +nagios3 (3.2.1-1) unstable; urgency=low + + * New upstream version + * Fix strip of logarchivepath (Closes: #578232) + + -- Alexander Wirt Sat, 08 May 2010 21:36:50 +0200 + +nagios3 (3.2.0-5) unstable; urgency=low + + [ Jan Wagner ] + * Add Close to last changelog entry + + [ Alexander Wirt ] + * Don't rely on nagios3-cgi in initscript + * Fix init-functions logic (Closes: #561357) + * Add a status interface to init (Closes: #553300) + * Rework packaging based on my icinga packaging + * We use debsource 1.0 + + -- Alexander Wirt Mon, 12 Apr 2010 21:36:13 +0200 + +nagios3 (3.2.0-4) unstable; urgency=low + + * Add nagios3-doc to Replaces in nagios3-cgi (Closes: 551813) + + -- Alexander Wirt Fri, 23 Oct 2009 13:30:01 +0200 + +nagios3 (3.2.0-3) unstable; urgency=low + + * Replace o with * as bullet character (Closes: #552023) + + -- Alexander Wirt Thu, 22 Oct 2009 22:30:50 +0200 + +nagios3 (3.2.0-2) unstable; urgency=medium + + * Remove junkbytes from apache2.conf (Closes: #544190) + * Install debconf files also in arch-dep files (Closes: #549683) + + -- Alexander Wirt Sun, 11 Oct 2009 19:52:29 +0200 + +nagios3 (3.2.0-1) unstable; urgency=low + + * New upstream release (Closes: #542957) + - Timeperiods should work as expected now (Closes: #539882) + - Recovery notifications fixed (Closes: #543657) + * Update standards version + - Add README.source + * Manpage errors fixed (Closes: #540554) + * Split up the webfrontend into its own package (Closes: #479338, #485466) + + -- Alexander Wirt Sun, 16 Aug 2009 14:14:23 +0200 + +nagios3 (3.0.6-5) unstable; urgency=high + + * Fix Command Injection Vulnerability in statuswml.cgi. + This applies for SA35543. + * Bump standards version + - Add -dbg package to section debug + + -- Alexander Wirt Mon, 29 Jun 2009 13:55:45 +0200 + +nagios3 (3.0.6-4) unstable; urgency=low + + * Fix syntax error in nagios3-common.prerm + (Closes: #519341, #514168, #518884) + * Call ucf with --debconf-ok in nagios3-common.postrm. + Depend on ucf >= for this "feature" (Closes: #513905, #515289) + * Do not fail if apache include file has been removed by the user + (Closes: #515260) + * Remove rw pipe even if it is a file (Closes: #495236) + * Move debug log to /var/log (Closes: #502080) + * Readd documentation for nagios_check_command (Closes: #508439) + * Especially allow access to /etc/nagios3/stylesheets in apache2.conf + (Closes: #495245) + * Move homedirectory of the nagios user to /var/lib/nagios + (Closes: #500709) + * Adjust priority to htpass question to high + + -- Alexander Wirt Sat, 21 Mar 2009 09:00:47 +0100 + +nagios3 (3.0.6-3) unstable; urgency=low + + [ Alexander Wirt ] + * Don't mention conf.d directories for external command checks (Closes: #431953) + * Don't ship obsolete extcommands_nagios3.cfg + + [ Luk Claes ] + * Don't fail if $apacheconf doesn't exist while removing (Closes: #512882) + * Add myself to Uploaders. + + -- Luk Claes Sun, 25 Jan 2009 19:10:29 +0100 + +nagios3 (3.0.6-2) unstable; urgency=low + + * Fix forced single servicechecks + + -- Alexander Wirt Fri, 12 Dec 2008 13:51:44 +0100 + +nagios3 (3.0.6-1) unstable; urgency=high + + * New upstream version + - Even more fixes for CVE-2008-5028 + * Urgency high for security fixes + * Add ${shlibs:Depends} (Fixes lintian error, as the epn debugger + should depend on libc) + * Add ${misc:Depends} to binaries (Fixes lintian warning) + + -- Alexander Wirt Mon, 08 Dec 2008 02:51:21 +0100 + +nagios3 (3.0.5-1) unstable; urgency=low + + [ Christian Perrier ] + * Fix pending l10n issues. Debconf translations: + - Italian. Closes: #505813 + - Polish. Closes: #506851 + + [ Alexander Wirt ] + * New upstream version + - Adds security fix for cmd.cgi (Closes: #504894) + This security problem is referenced as CVE-2008-5028 and SA32610 + + -- Alexander Wirt Fri, 28 Nov 2008 21:18:27 +0100 + +nagios3 (3.0.3-3) unstable; urgency=low + + [ Alexander Wirt ] + * Create /var/lib/nagios3/spool/checkresults (Closes: #492201) + * Refer to nagios-plugins-basic instead of nagios-plugins in commands.cfg + (Closes: #493107) + * Fix helper paths in contributed eventhandlers (Closes: #493790) + * Fix '+' decoding in trend.cgi (Closes: #495052) + * Don't fail if nagios3 is already started or not running (Closes: #499571) + [ Christian Perrier ] + * Fix pending l10n bugs. Debconf translations: + - Brazilian Portuguese. Closes: #495225 + - Russian. Closes: #499032 + - Basque. Closes: #499113 + - Swedish. Closes: #499343 + - Finnish. Closes: #499706 + + -- Alexander Wirt Sun, 05 Oct 2008 12:02:20 +0200 + +nagios3 (3.0.3-2) unstable; urgency=medium + + [ Jan Wagner ] + * fixing temp_file location in 52_nagios.cfg-debianize.dpatch + (Closes: #491617) + + -- Alexander Wirt Mon, 21 Jul 2008 09:41:11 +0200 + +nagios3 (3.0.3-1) unstable; urgency=low + + [ Jan Wagner ] + * readd mailx as optional dependency + * add lintian override for empty dir in nagios3-doc + + [ Alexander Wirt ] + * New upstream version (Closes: #489888) + - Fixes some screwup in xodtemplate.c (Closes: #479044) + * Update controlfiles since nagios3 had replaced nagios2 + * Moved the *.diff mechanism to dpatch and some magic sed stuff + * Debians conf.d at the end of the config useless. Move it back to all + other debian specific configs + * Add mini_epn to nagios3-dbg + + -- Alexander Wirt Fri, 18 Jul 2008 21:29:33 +0200 + +nagios3 (3.0.2-1) unstable; urgency=low + + [ Alexander Wirt ] + * Remove bashism from rules file (Closes: #479324, #478412) + * Set p1.pl DEBUG_LOG_PATH to /var/log/nagios3/ (Closes: #478877) + * Start nagios3 in nagios3.postinst (Closes: #481334) + * Add a patch from Stephane Chazelas which fixes the incluѕion of spurious $ + signs into command output (Closes: #479061) + + [ Jan Wagner ] + * New upstream release (Closes: #485439) + * Fix XSS vulnerability (CVE-2007-5803). + * updated cfg-cgi.cfg.diff, cfg-commands.cfg.diff and cfg-nagios.cfg.diff + for new upstream release and remove version from config files + (Closes: #482178) + * Updating standards version to 3.8.0, no changes needed + * add myself fo Uploaders + * add doc-base support (Closes: #479334) + * replace dependency of mailx with bsd-mailx + * added Vcs- fields into source header's field + * take care if killproc isn't able to stop daemon via stop target of + initscript, thanks Stephen Gran for providing this fix + (Closes: #479329) + + -- Alexander Wirt Tue, 10 Jun 2008 21:26:00 +0200 + +nagios3 (3.0.1-1) unstable; urgency=low + + * New upstream version (Closes: #475041) + * Move cfg_dir=/etc/nagios3/conf.d to the end of nagios.cfg to + allow overwriting variables from nagios.cfg in conf.đ/ + * Disable external_commands in nagios.cfg as they are now enabled by + default + + -- Alexander Wirt Tue, 08 Apr 2008 20:39:11 +0200 + +nagios3 (3.0-1) unstable; urgency=low + + * New upstream release (Closes: #471485) + + -- Alexander Wirt Wed, 06 Feb 2008 14:48:38 +0100 + +nagios2 (2.10-1) unstable; urgency=low + + * NOT RELEASED YET + * New upstream release + * Fix XSS vulnerability (CVS-2007-5624). Closes: #448371 + * Adapt sample config patches + * Fix permissions on /var/log/nagios2/archives. + Thanks to Michael Feger. Closes: #429820 + * Fix typo in localhost_nagios2.cfg. + Thanks to Justin Pryzby. Closes: #430477. + * New Portuguese debconf translations from Rui Branco and the Traduz + team. Closes: #436155. + * Rearrange apache2.conf so that the Stylesheet alias path is + actually used. + Thanks to Joerg Dorchain. This may fix #420009 + * Relax dependency on web server to Recommends. Depend on + apache2-utils since we need htpasswd. + Thanks to Japp Eldering. Closes: #413519 + * Move stylesheets to /etc, create a symlink. + Thanks to Joerg Dorchain and Steve Greenland. Closes: #420011 + * Fix suboptimal formatting of package descriptions. + Thanks to Sam Morris. Closes: 413494 + * debian/control: re-order Source stanza according to dpkg 1.14.7, + add Homepage field. We're going to leave in the Upstream URL in the + package description for a while though. + * Unmark package names for translation in debconf templates. + Thanks to Kobayashi Noritada. Closes: #413127 + + [Jan Wagner] + * fixed README.Debian about setting check_external_commands=1 + (closes: #431953). + + -- Marc Haber Wed, 31 Oct 2007 19:47:31 +0100 + +nagios2 (2.9-1) unstable; urgency=low + + * New upstream release (closes: #414647). + * new dutch (nl) debconf translations from cobaco (closes: #414762). + * new japanese (ja) debconf translations from Kobayashi Noritada + (closes: #413122). + * Fix wrong path to debian.gd2 in extinfo_nagios2.cfg (closes: #423639). + [Sean Finney] + * various fixes/cleanups in init script should resolve issues with + pidfile handling etc (closes: #416763, #397289, #414050, #412980, #415752). + * Merge config file changes. + * add note for pam_tmpdir users about setting TMPDIR in + /etc/nagios2/default. thanks to Richard A Nelson (closes: #414652) + + -- sean finney Sat, 09 Jun 2007 11:27:42 +0200 + +nagios2 (2.6-3) unstable; urgency=low + + [Marc Haber] + * services_nagios2.cfg: add default notification_interval 0 clauses to + make it clear that nagios won't re-notify by default. + Thanks to Jan Wagner. + * Add symlink from /usr/share/nagios2/htdocs/docs to + /usr/share/doc/nagios2-doc/html as suggested by Mike O'Connor. + Closes: #408141 + * init script: use awk -v FS. Thanks to Mike O'Connor. Closes: #408136 + * init script: remove commented sleep-rekill loop which was confusing + to some users. It has never been enabled in nagios2 and is probably + left over from whatever package the original nagios2 init script + was taken from. Closes: #408231 + * run debconf-updatepo and commit new files + + [Sean Finney] + * added Build-Depends on dpkg-dev >= 1.13.19, since our use of + source:Version in debian/control requires it. + + -- Marc Haber Sat, 24 Feb 2007 10:25:52 +0100 + +nagios2 (2.6-2) unstable; urgency=low + + * new german debconf translations from Matthias Julius (closes: #400700). + * remove check_dns from commands.cfg. + Thanks to Dr. Tilo Levante. Closes: #402303 + * nagios2-common.postinst: Take 127.0.0.1 as default default gateway. + * nagios2-common.postrm: Send dpkg-statoverride standard error to + the bin to avoid a row of "No override present" error messages on + purge. + * Ship our own resource.cfg with nagios2-common + + -- Marc Haber Sat, 16 Dec 2006 09:24:36 +0100 + +nagios2 (2.6-1) unstable; urgency=low + + * new upstream version + * adapt configuration patches + * adapt installation lists + * Add README reference to nagios.cfg regarding the command file + * Add no-op logrotate file to really disable logrorate log rotation. + Closes: #396173, #401546 + + -- Marc Haber Wed, 6 Dec 2006 10:57:29 +0100 + +nagios2 (2.5-3) unstable; urgency=low + + [sean finney] + * add explicit DirectoryIndex to apache configuration, thanks to + Heiko Schlittermann for suggesting this (closes: #396100). + * the previous dpatch for the fixed path in submit_check_result wasn't + actually set to apply (closes: #396661). thanks to Richard Nelson + for pointing this out again. + + -- sean finney Sat, 04 Nov 2006 16:45:10 +0100 + +nagios2 (2.5-2) unstable; urgency=low + + [Marc Haber] + * Fix wrong path to nagios.cmd in + /usr/share/nagios2/plugins/eventhandlers/submit_check_result. + Thanks to Richard A Nelson. Closes: #386152 + * add po-debconf to build-depends + * fix Source:version dependencies to make lintian and bin-NMUs happier. + * Create pid directory with -p to allow /var/run to not exist. + Closes: #390155 + + [sean finney] + * revert to using nagios2's built-in logrotating features, since + using logrotate caused problems (closes: #388473, #395316). + * don't unconditionally use ucf in postrm script (closes: #389973). + * new spanish debconf translates from Rudy Godoy (closes: #394958). + + -- Marc Haber Sat, 28 Oct 2006 10:13:54 +0000 + +nagios2 (2.5-1) unstable; urgency=low + + * new upstream version. (mh) Closes: #382431 + * Now gracefully exits with meaningful log entry if p1.pl is not found. + Thanks to Matt Brown. Closes: #368684 + * -dbg package is extra. Thanks to Joerg Jaspert. + * lsb-ize init script. Closes: #377028 + * Versioned recommends on nagios-images >> 0.1, since n-i 0.2 has + symlinks fixing the issue mentioned by Herbert Straub. Closes: #358922. + * remove _ from Default: false in boolean template. + Thanks to Christian Perrier. (mh) Closes: #371200 + * Add dh_perl invocation to debian/rules + * Add #!/usr/bin/perl to p1.pl to properly generate perl dependency. + * make p1.pl executeable to make lintian happy + * Fix totally mixed up Section: and Priority: for binary packages. + * Add logrotate file + * Stop marking the Default fiels as translateable, fix translations. + Thanks to Thomas Huriaux. + * Fix path to debian.png in example extinfo file. + Thanks to Peter Schwindt. Closes: #355552 + * New French (fr) translation. + Thanks to Steve Petruzzello. Closes: #374418 + * New Czech (cs) translation. + Thanks to Martin Šín. Closes: #382924 + + -- Marc Haber Wed, 16 Aug 2006 10:11:48 +0000 + +nagios2 (2.4-1) unstable; urgency=low + + * new upstream version. (mh) Closes: #369801 + * now use install-unstripped target instead of 10no-strip patch. + * remove 20-handle-master-proc-event patch, fixed upstream. + + -- Marc Haber Thu, 1 Jun 2006 17:18:38 +0000 + +nagios2 (2.3.1-1) unstable; urgency=low + + [Marc Haber] + * new upstream version + * CVE-2006-2489 was already fixed locally in 2.3-1 + * remove dpatch + * Add nagios2-dbg package + * Add 10no-strip patch to keep upstream Makefiles from stripping + binaries before we can build the -dbg package. + * Fix typos in debian/control + * Standards-Version: 3.7.2 (no changes necessary thanks to the + cgi-lib policy having been reverted) + * Fix short description of nagios2/adminpassword-mismatch to make + lintian happy. + * Fix upstream syntax error in handle-master-proc-event script + * move contrib stuff to /usr/share to avoid having scripts in /usr/lib + * README.Debian: fix external command procedure + + [sean finney] + * posterity: the previous release 2.3-1 also included a fix for + CVE-2006-2489, as we were the ones who discovered it while fixing the + previous vulnerability :) + * include the needed function from the webapps-common httpd stub inline + in the config script, as fresh installations may not have the file + available (if using apt instead of dpkg, for example). Closes: #353966. + * remove "do not translate" remark and incorporate Christian Perrier's + suggested modifications to the debconf templates (closes: #352771). + + -- Marc Haber Mon, 29 May 2006 14:12:44 +0000 + +nagios2 (2.3-1) unstable; urgency=high + + * new upstream version + * Fix nagios2 restart in init script. + Thanks to Jim Jensen. (mh) Closes: #360778 + * Fix /usr/share/doc/nagios2/html symlink. + Thanks to Matt Zagrabelny. (mh) Closes: #360998 + * Create pid file directory dynamically in init script. + Thanks to Herbert Straub. (mh) Closes: #361239 + * Honor locally set file/dir permissions in postinst, fixing policy + 10.9.1 compliance. Thanks to Heiko Schlittermann. (mh) Closes: #361956 + + [sean finney] + * This upstream version addresses a security issue raised in CVE-2006-2162, + wrt malcious use of Content-Length headers on cgi scripts. This debian + release includes further refinement of this fix + (10_CVE-2006-2162_content-length.dpatch) + as we believe it's still theoretically possible to exploit the issue + via integer overflow. Closes: #366683. + * change eventhandlers dir to /usr/lib/nagios2/plugins/eventhandlers, + and make sure they're included (closes: #363152). + * security release, so urgency bumped. + + -- sean finney Fri, 12 May 2006 15:32:01 +0200 + +nagios2 (2.2-1) unstable; urgency=low + + * new upstream version + * fix wrong permissions on /var/lib/nagios2, 750 prevents web + interface from committing external commands + + -- Marc Haber Fri, 21 Apr 2006 11:09:59 +0000 + +nagios2 (2.1-1) unstable; urgency=low + + * new upstream version + * nagios2.prerm: replace "|| exit 0" with "|| true" (see #337664, + but we had the offending code in the script verbatim) + * move nagios2-doc to section docs + * re-work notifications to be slightly more verbose. For example, an + acknowledgement notification now actually includes the comment. + + -- Marc Haber Fri, 31 Mar 2006 11:44:49 +0000 + +nagios2 (2.0-1) unstable; urgency=low + + * First build with upstream's release version + + [sean finney] + * cleanup/simplification of http admin username/password handling + in maintscripts. + * documentation in README.Debian regarding this. + * fix in the determining $servers in postinst. + * the directory removals in the postrm have been updated to reflect + the nagios2 directory layout. + * conditionally stop the nagios2 daemon in the nagios2 packages' prerm, + for cases where it is being purged before nagios2-common's prerm + does so (the latter will not stop it otherwise). + * added Joerg Jaspert to the Uploaders field. + * fix to httpd configuration to properly detect apache2 processes + * remove numeric NNN_ from conffiles in conf.d, since it doesn't + affect the order. + * change the location of the embedded perl interpreter p1.pl to + /usr/lib/nagios2. + * a few other misc FHS related path changes. + * added support for autodetecting the default route and creating + a host object for it (and registering it in a seperate ucf + managed file) + * a few misc additions/edits to our default configuration. + * added manpages for nagios2(8) and nagios2stats(8) + + -- sean finney Sun, 12 Feb 2006 11:19:28 +0100 + +nagios2 (0rc2-2.0-2) experimental; urgency=low + + * re-work default configuration: split local.cfg into distinct files + in /etc/nagios2/conf.d from debian/conf.d + * add lintian override for resource.cfg permissions != 644 + * add linda override for outdated config.(guess|sub), we update at + build time, keeping the new files outside of Debian .diff + + -- Marc Haber Mon, 23 Jan 2006 16:22:08 +0000 + +nagios2 (0rc2-2.0-1) experimental; urgency=low + + * another "not quite ready for the limelight" release to experimental, + with nagios2-doc split off to a seperate package. thus this will + once again traverse NEW... + + [marc haber] + * This package's debconf templates are currently work in progress + and _will_ change in the very near future. DO NOT TRANSLATE! + * Add "do not translate" template to debian/templates + * remove boilerplate instructions from README.Debian + * move debian/copyright to the right place + * introduce nagios2-doc and populate it + * add myself to uploaders + * make nagios2stats out of nagios2tats + * build-depend on autotools-dev, use mechanisms from + /usr/share/doc/autotools-dev/examples/rules.gz to update config.* on + build + * fix permissions on /var/log/nagios2 to allow web interface to + access event log + * fix rw2 to rw in postinst + * Fix location of external command file + * Document "how to enable external commands" in README.Debian + + -- sean finney Sun, 22 Jan 2006 19:31:35 +0100 + +nagios2 (0rc2-2.0-0) experimental; urgency=low + + * this version is targeted as a prelease candidate for experimental. + + [sean finney] + * update to upstream rc2 + * after the change of course on the nagios vs nagios2 issue, a few + (hopefully) final naming changes were made in the build process. + * updated dependencies to reflect that nagios2 does not conflict + with nagios 1.x. + + -- sean finney Sun, 15 Jan 2006 01:55:14 +0100 + +nagios2 (0rc1-2.0-0) unreleased; urgency=low + + [sean finney] + * initial version (closes: #341748). until nagios2 officially releases, + we'll use the 0$rcfoo-$version numbering scheme so that we never find + ourselves stuck needing to muck with the epoch. + * debconf/web configuration, via scripts borrowed from the unreleased + webapps-common package. + * improvements to standard apache configuration + * various fixes to default configuration to ensure that the + nagios/nagios2 namespace is clearly defined. + + [marc haber] + * lots of initial packaging work. init script, user management, etc. + + -- sean finney Sat, 03 Dec 2005 15:29:40 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +7 diff --git a/debian/conf.d/contacts_nagios2.cfg b/debian/conf.d/contacts_nagios2.cfg new file mode 100644 index 0000000..91839e2 --- /dev/null +++ b/debian/conf.d/contacts_nagios2.cfg @@ -0,0 +1,46 @@ +############################################################################### +# contacts.cfg +############################################################################### + + + +############################################################################### +############################################################################### +# +# CONTACTS +# +############################################################################### +############################################################################### + +# In this simple config file, a single contact will receive all alerts. + +define contact{ + contact_name root + alias Root + service_notification_period 24x7 + host_notification_period 24x7 + service_notification_options w,u,c,r + host_notification_options d,r + service_notification_commands notify-service-by-email + host_notification_commands notify-host-by-email + email root@localhost + } + + + +############################################################################### +############################################################################### +# +# CONTACT GROUPS +# +############################################################################### +############################################################################### + +# We only have one contact in this simple configuration file, so there is +# no need to create more than one contact group. + +define contactgroup{ + contactgroup_name admins + alias Nagios Administrators + members root + } diff --git a/debian/conf.d/extinfo_nagios2.cfg b/debian/conf.d/extinfo_nagios2.cfg new file mode 100644 index 0000000..07bd594 --- /dev/null +++ b/debian/conf.d/extinfo_nagios2.cfg @@ -0,0 +1,13 @@ +## +## Extended Host and Service Information +## + +define hostextinfo{ + hostgroup_name debian-servers + notes Debian GNU/Linux servers +# notes_url http://webserver.localhost.localdomain/hostinfo.pl?host=netware1 + icon_image base/debian.png + icon_image_alt Debian GNU/Linux + vrml_image debian.png + statusmap_image base/debian.gd2 + } diff --git a/debian/conf.d/generic-host_nagios2.cfg b/debian/conf.d/generic-host_nagios2.cfg new file mode 100644 index 0000000..e6d96ac --- /dev/null +++ b/debian/conf.d/generic-host_nagios2.cfg @@ -0,0 +1,19 @@ +# Generic host definition template - This is NOT a real host, just a template! + +define host{ + name generic-host ; The name of this host template + notifications_enabled 1 ; Host notifications are enabled + event_handler_enabled 1 ; Host event handler is enabled + flap_detection_enabled 1 ; Flap detection is enabled + failure_prediction_enabled 1 ; Failure prediction is enabled + process_perf_data 1 ; Process performance data + retain_status_information 1 ; Retain status information across program restarts + retain_nonstatus_information 1 ; Retain non-status information across program restarts + check_command check-host-alive + max_check_attempts 10 + notification_interval 0 + notification_period 24x7 + notification_options d,u,r + contact_groups admins + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE! + } diff --git a/debian/conf.d/generic-service_nagios2.cfg b/debian/conf.d/generic-service_nagios2.cfg new file mode 100644 index 0000000..4d60c79 --- /dev/null +++ b/debian/conf.d/generic-service_nagios2.cfg @@ -0,0 +1,26 @@ +# generic service template definition +define service{ + name generic-service ; The 'name' of this service template + active_checks_enabled 1 ; Active service checks are enabled + passive_checks_enabled 1 ; Passive service checks are enabled/accepted + parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems) + obsess_over_service 1 ; We should obsess over this service (if necessary) + check_freshness 0 ; Default is to NOT check service 'freshness' + notifications_enabled 1 ; Service notifications are enabled + event_handler_enabled 1 ; Service event handler is enabled + flap_detection_enabled 1 ; Flap detection is enabled + failure_prediction_enabled 1 ; Failure prediction is enabled + process_perf_data 1 ; Process performance data + retain_status_information 1 ; Retain status information across program restarts + retain_nonstatus_information 1 ; Retain non-status information across program restarts + notification_interval 0 ; Only send notifications on status change by default. + is_volatile 0 + check_period 24x7 + normal_check_interval 5 + retry_check_interval 1 + max_check_attempts 4 + notification_period 24x7 + notification_options w,u,c,r + contact_groups admins + register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! + } diff --git a/debian/conf.d/hostgroups_nagios2.cfg b/debian/conf.d/hostgroups_nagios2.cfg new file mode 100644 index 0000000..63acbf5 --- /dev/null +++ b/debian/conf.d/hostgroups_nagios2.cfg @@ -0,0 +1,31 @@ +# Some generic hostgroup definitions + +# A simple wildcard hostgroup +define hostgroup { + hostgroup_name all + alias All Servers + members * + } + +# A list of your Debian GNU/Linux servers +define hostgroup { + hostgroup_name debian-servers + alias Debian GNU/Linux Servers + members localhost + } + +# A list of your web servers +define hostgroup { + hostgroup_name http-servers + alias HTTP servers + members localhost + } + +# A list of your ssh-accessible servers +define hostgroup { + hostgroup_name ssh-servers + alias SSH servers + members localhost + } + + diff --git a/debian/conf.d/localhost_nagios2.cfg b/debian/conf.d/localhost_nagios2.cfg new file mode 100644 index 0000000..27dbb4b --- /dev/null +++ b/debian/conf.d/localhost_nagios2.cfg @@ -0,0 +1,59 @@ +# A simple configuration file for monitoring the local host +# This can serve as an example for configuring other servers; +# Custom services specific to this host are added here, but services +# defined in nagios2-common_services.cfg may also apply. +# + +define host{ + use generic-host ; Name of host template to use + host_name localhost + alias localhost + address 127.0.0.1 + } + +# Define a service to check the disk space of the root partition +# on the local machine. Warning if < 20% free, critical if +# < 10% free space on partition. + +define service{ + use generic-service ; Name of service template to use + host_name localhost + service_description Disk Space + check_command check_all_disks!20%!10% + } + + + +# Define a service to check the number of currently logged in +# users on the local machine. Warning if > 20 users, critical +# if > 50 users. + +define service{ + use generic-service ; Name of service template to use + host_name localhost + service_description Current Users + check_command check_users!20!50 + } + + +# Define a service to check the number of currently running procs +# on the local machine. Warning if > 250 processes, critical if +# > 400 processes. + +define service{ + use generic-service ; Name of service template to use + host_name localhost + service_description Total Processes + check_command check_procs!250!400 + } + + + +# Define a service to check the load on the local machine. + +define service{ + use generic-service ; Name of service template to use + host_name localhost + service_description Current Load + check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0 + } diff --git a/debian/conf.d/services_nagios2.cfg b/debian/conf.d/services_nagios2.cfg new file mode 100644 index 0000000..7866687 --- /dev/null +++ b/debian/conf.d/services_nagios2.cfg @@ -0,0 +1,17 @@ +# check that web services are running +define service { + hostgroup_name http-servers + service_description HTTP + check_command check_http + use generic-service + notification_interval 0 ; set > 0 if you want to be renotified +} + +# check that ssh services are running +define service { + hostgroup_name ssh-servers + service_description SSH + check_command check_ssh + use generic-service + notification_interval 0 ; set > 0 if you want to be renotified +} diff --git a/debian/conf.d/timeperiods_nagios2.cfg b/debian/conf.d/timeperiods_nagios2.cfg new file mode 100644 index 0000000..55ecf9d --- /dev/null +++ b/debian/conf.d/timeperiods_nagios2.cfg @@ -0,0 +1,50 @@ +############################################################################### +# timeperiods.cfg +############################################################################### + +# This defines a timeperiod where all times are valid for checks, +# notifications, etc. The classic "24x7" support nightmare. :-) + +define timeperiod{ + timeperiod_name 24x7 + alias 24 Hours A Day, 7 Days A Week + sunday 00:00-24:00 + monday 00:00-24:00 + tuesday 00:00-24:00 + wednesday 00:00-24:00 + thursday 00:00-24:00 + friday 00:00-24:00 + saturday 00:00-24:00 + } + +# Here is a slightly friendlier period during work hours +define timeperiod{ + timeperiod_name workhours + alias Standard Work Hours + monday 09:00-17:00 + tuesday 09:00-17:00 + wednesday 09:00-17:00 + thursday 09:00-17:00 + friday 09:00-17:00 + } + +# The complement of workhours +define timeperiod{ + timeperiod_name nonworkhours + alias Non-Work Hours + sunday 00:00-24:00 + monday 00:00-09:00,17:00-24:00 + tuesday 00:00-09:00,17:00-24:00 + wednesday 00:00-09:00,17:00-24:00 + thursday 00:00-09:00,17:00-24:00 + friday 00:00-09:00,17:00-24:00 + saturday 00:00-24:00 + } + +# This one is a favorite: never :) +define timeperiod{ + timeperiod_name never + alias Never + } + +# end of file diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..6c9aebd --- /dev/null +++ b/debian/control @@ -0,0 +1,231 @@ +Source: nagios3 +Section: net +Priority: optional +Maintainer: Debian Nagios Maintainer Group +Uploaders: sean finney , + Alexander Wirt , + Jan Wagner +Homepage: http://www.nagios.org/ +Vcs-Browser: http://git.debian.org/?p=pkg-nagios/pkg-nagios3.git +Vcs-Git: git://git.debian.org/pkg-nagios/pkg-nagios3.git +Standards-Version: 3.9.5 +Build-Depends: autotools-dev, + debhelper (>= 7), + dpkg-dev (>= 1.13.19), + hardening-wrapper, + libgd2-noxpm-dev (>= 2.0.1) | libgd2-xpm-dev (>= 2.0.1), + libperl-dev, + libpng-dev, + po-debconf + +Package: nagios3-common +Architecture: all +Depends: adduser, + bsd-mailx | mailx, + coreutils (>= 4.5.3), + lsb-base (>= 3.0-6), + nagios-plugins-basic, + ucf (>= 0.28), + libjs-jquery, + ${misc:Depends}, + ${perl:Depends} +Recommends: nagios-plugins +Description: support files for nagios3 + Nagios is a monitoring and management system for hosts, services and + networks. nagios3-common contains the common files for the nagios3 package. + . + Nagios' features include: + . + * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, + PING, etc.) + * Plugin interface to allow for user-developed service checks + * Contact notifications when problems occur and get resolved (via email, + pager, or user-defined method) + * Ability to define event handlers to be run during service or host events + (for proactive problem resolution) + * Web output (current status, notifications, problem history, log file, etc.) + . + Nagios is designed to be easy to understand and modify to fit your own needs. + . + This package is the new version 3.x series of nagios, which replaced + the 2.x versions. + . + Nagios is a replacement of the Netsaint project. It accepts and uses the + previous Netsaint modules transparently. + . + Upstream URL: http://www.nagios.org/ + +Package: nagios3-cgi +Architecture: any +Replaces: nagios3 (<< 3.2.0), nagios3-common (<< 3.2.0), nagios3-doc (<< 3.2.0) +Breaks: nagios3 (<< 3.2.0), nagios3-common (<< 3.2.0), nagios3-doc (<< 3.2.0) +Depends: adduser, + apache2-utils, + coreutils (>= 4.5.3), + libapache2-mod-php5 | php5 | php5-cgi, + libjs-jquery, + nagios3-common (= ${source:Version}), + ucf (>= 0.28), + ${misc:Depends}, + ${perl:Depends}, + ${shlibs:Depends} +Recommends: apache2 | httpd, nagios-images (>> 0.1) +Description: cgi files for nagios3 + Nagios is a monitoring and management system for hosts, services and + networks. nagios3-common contains the common files for the nagios3 package. + . + Nagios' features include: + . + * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, + PING, etc.) + * Plugin interface to allow for user-developed service checks + * Contact notifications when problems occur and get resolved (via email, + pager, or user-defined method) + * Ability to define event handlers to be run during service or host events + (for proactive problem resolution) + * Web output (current status, notifications, problem history, log file, etc.) + . + Nagios is designed to be easy to understand and modify to fit your own needs. + . + This package is the new version 3.x series of nagios, which replaced + the 2.x versions. + . + Nagios is a replacement of the Netsaint project. It accepts and uses the + previous Netsaint modules transparently. + . + Upstream URL: http://www.nagios.org/ + +Package: nagios3 +Architecture: any +Depends: nagios3-cgi (= ${binary:Version}), + nagios3-core (= ${binary:Version}), + ${misc:Depends} +Suggests: nagios-nrpe-plugin +Description: host/service/network monitoring and management system + Nagios is a monitoring and management system for hosts, services and + networks. + . + Nagios' features include: + . + * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, + PING, etc.) + * Plugin interface to allow for user-developed service checks + * Contact notifications when problems occur and get resolved (via email, + pager, or user-defined method) + * Ability to define event handlers to be run during service or host events + (for proactive problem resolution) + * Web output (current status, notifications, problem history, log file, etc.) + . + Nagios was written in C and is designed to be easy to understand and modify + to fit your own needs. + . + This is a metapackage which depends on the nagios core and the webfrontend + . + This package is the new version 3.x series of nagios, which replaced + the 2.x versions. + . + Nagios is a replacement of the Netsaint project. It accepts and uses the + previous Netsaint modules transparently. + . + Upstream URL: http://www.nagios.org/ + +Package: nagios3-core +Architecture: any +Depends: nagios3-common (= ${source:Version}), + ${misc:Depends}, + ${perl:Depends}, + ${shlibs:Depends} +Suggests: nagios-nrpe-plugin +Replaces: nagios3 +Description: host/service/network monitoring and management system core files + Nagios is a monitoring and management system for hosts, services and + networks. + . + Nagios' features include: + . + * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, + PING, etc.) + * Plugin interface to allow for user-developed service checks + * Contact notifications when problems occur and get resolved (via email, + pager, or user-defined method) + * Ability to define event handlers to be run during service or host events + (for proactive problem resolution) + * Web output (current status, notifications, problem history, log file, etc.) + . + This package included the nagios core without the webfrontend + . + Nagios was written in C and is designed to be easy to understand and modify + to fit your own needs. + . + This package is the new version 3.x series of nagios, which replaced + the 2.x versions. + . + Nagios is a replacement of the Netsaint project. It accepts and uses the + previous Netsaint modules transparently. + . + Upstream URL: http://www.nagios.org/ + +Package: nagios3-doc +Section: doc +Architecture: all +Depends: ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends} +Description: documentation for nagios3 + Nagios is a monitoring and management system for hosts, services and + networks. + . + Nagios' features include: + . + * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, + PING, etc.) + * Plugin interface to allow for user-developed service checks + * Contact notifications when problems occur and get resolved (via email, + pager, or user-defined method) + * Ability to define event handlers to be run during service or host events + (for proactive problem resolution) + * Web output (current status, notifications, problem history, log file, etc.) + . + Nagios was written in C and is designed to be easy to understand and modify + to fit your own needs. + . + This package is the new version 3.x series of nagios, which replaced + the 2.x versions. + . + Nagios is a replacement of the Netsaint project. It accepts and uses the + previous Netsaint modules transparently. + . + Upstream URL: http://www.nagios.org/ + +Package: nagios3-dbg +Section: debug +Priority: extra +Architecture: any +Depends: nagios3-core (= ${binary:Version}), + ${misc:Depends}, + ${perl:Depends}, + ${shlibs:Depends} +Conflicts: icinga-dbg (<= 1.0.1-2) +Description: debugging symbols and debug stuff for nagios3 + Nagios is a monitoring and management system for hosts, services and + networks. + . + Nagios' features include: + . + * Monitoring of network services (via TCP port, SMTP, POP3, HTTP, NNTP, + PING, etc.) + * Plugin interface to allow for user-developed service checks + * Contact notifications when problems occur and get resolved (via email, + pager, or user-defined method) + * Ability to define event handlers to be run during service or host events + (for proactive problem resolution) + * Web output (current status, notifications, problem history, log file, etc.) + . + Nagios was written in C and is designed to be easy to understand and modify + to fit your own needs. + . + This package contains gdb debugging symbols for the nagios3 binaries and the + mini_epn tool which can help in debugging Nagios problems. + . + Nagios is a replacement of the Netsaint project. It accepts and uses the + previous Netsaint modules transparently. + . + Upstream URL: http://www.nagios.org/ diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..43377e5 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,36 @@ +This package was debianized by Alexander Wirt based on +the work of sean finney for Nagios 2. + +It was downloaded from http://www.nagios.org/ + +Current Debian Maintainers: The nagios packagingpackaging team + http://alioth.debian.org/projects/pkg-nagios/ + +Mailing-List: pkg-nagios-devel@lists.alioth.debian.org + +Upstream Author: Ethan Galstad + +Copyright (c) 1999-2008 Ethan Galstad (nagios@nagios.org) + +License: + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License version 2 as +published by the Free Software Foundation. + +On Debian systems, the complete text of the GNU General Public +License, version 2, can be found in /usr/share/common-licenses/GPL-2. + +p1.pl is Copyright 2007 by Stanley Hopcroft + +This program is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. + +On Debian systems, the complete text of the Artistic +License, can be found in /usr/share/common-licenses/Artistic. + +The file common/snprintf.c is Copyright 1995 by Patrick Powell + +This code is based on code written by Patrick Powell (papowell@astart.com) +It may be used for any purpose as long as this notice remains intact +on all source code distributions diff --git a/debian/httpd.webapps-common b/debian/httpd.webapps-common new file mode 100644 index 0000000..5050c06 --- /dev/null +++ b/debian/httpd.webapps-common @@ -0,0 +1,188 @@ +# httpd-related functions +# taken from the webapps-common project +# copyright (c) 2005, sean finney (GPL) + +wc_httpd_apaches="apache2" + +# if they have not specified what they support, assume support for all +if [ ! "$wc_httpd_supported" ]; then + wc_httpd_supported="$wc_httpd_apaches" +fi + +# +# wc_httpd_installed: test for installed httpds +# usage: +# wc_httpd_installed [ httpd1 httpd2 ... ] +# +# no arguments implies to test for all servers +wc_httpd_installed(){ + local httpds + if [ "$*" ]; then + httpds=$* + else + httpds=$wc_httpd_supported + fi + for f in $httpds; do + if test -x /usr/sbin/$f; then + echo $f + fi + done +} + +# +# wc_httpd_running: test for running httpds +# usage: +# wc_httpd_running [ httpd1 httpd2 ... ] +# +# no arguments implies to test for all servers +wc_httpd_running(){ + local httpds + if [ "$*" ]; then + httpds=$* + else + httpds=$wc_httpd_supported + fi + for f in $httpds; do + if pgrep -fx "/usr/sbin/$f( .*)*$" >/dev/null; then + echo $f + fi + done +} + +# wc_httpd_invoke: issue start/stop/etc command to web server init script +# usage: +# wc_httpd_invoke {start|stop|status|whatever} [ httpd1 httpd2 ... ] +# +# no servers implies to invoke all running servers +wc_httpd_invoke(){ + local httpds cmd err + if [ ! "$1" ]; then + echo "i need at least a command!" 2>&1 + return 1 + fi + cmd="$1" + shift + if [ "$*" ]; then + httpds=$* + else + httpds=`wc_httpd_running` + fi + for f in $httpds; do + if [ -x /etc/init.d/$f ]; then + invoke-rc.d $f $cmd || return $? + fi + done +} + +# wc_httpd_apache_include: include a file in the apache configuration +# usage: +# wc_httpd_apache_include file name [ httpd1 httpd2 ... ] +# +# no arguments implies all installed apache servers +wc_httpd_apache_include(){ + local h incfile httpds confdir + if [ ! "$1" ]; then + echo "i need at least a file!" 2>&1 + return 1 + fi + incfile="$1" + shift + if [ ! "$1" ]; then + echo "i also need a name!" 2>&1 + return 1 + fi + name="$1" + shift + if [ ! -e "$incfile" ]; then + echo "include file $incfile does not exist!" 2>&1 + return 1 + fi + if [ "$*" ]; then + httpds=$* + else + httpds=`wc_httpd_installed $wc_httpd_supported` + fi + for h in $httpds; do + confdir="/etc/$h/conf.d" + conflink="$confdir/${name}.conf" + if [ -d "$confdir" -a ! -e "$conflink" ]; then + ln -s "$incfile" "$conflink" + fi + done +} + +# wc_httpd_apache_configured: determine what servers are configured for a pkg +# usage: +# wc_httpd_apache_configured file name [ httpd1 httpd2 ... ] +# +# no arguments implies all installed apache servers +# outputs the list of servers that are configured with file->name +wc_httpd_apache_configured(){ + local h incfile httpds confdir + if [ ! "$1" ]; then + echo "i need at least a file!" 2>&1 + return 1 + fi + incfile="$1" + shift + if [ ! "$1" ]; then + echo "i also need a name!" 2>&1 + return 1 + fi + name="$1" + shift + if [ ! -e "$incfile" ]; then + echo "include file $incfile does not exist!" 2>&1 + return 1 + fi + if [ "$*" ]; then + httpds=$* + else + httpds=`wc_httpd_installed $wc_httpd_supported` + fi + for h in $httpds; do + confdir="/etc/$h/conf.d" + conflink="$confdir/${name}.conf" + if [ -L "$conflink" ]; then + echo "$h " + fi + done +} + +# wc_httpd_apache_uninclude: uninclude a file in the apache configuration +# usage: +# wc_httpd_apache_uninclude file name [ httpd1 httpd2 ... ] +# +# no arguments implies all installed apache servers +wc_httpd_apache_uninclude(){ + local h incfile name httpds conflink + if [ ! "$1" ]; then + echo "i need at least a file!" 2>&1 + return 1 + fi + incfile="$1" + shift + if [ ! "$1" ]; then + echo "i also need a name!" 2>&1 + return 1 + fi + name="$1" + shift + if [ ! -e "$incfile" ]; then + echo "include file $incfile does not exist!" 2>&1 + return 1 + fi + if [ "$*" ]; then + httpds=$* + else + httpds=`wc_httpd_installed $wc_httpd_supported` + fi + for h in $httpds; do + conflink="/etc/$h/conf.d/${name}.conf" + if [ -L "$conflink" ]; then + rm -f "$conflink" + elif [ -e "$conflink" ]; then + echo "warning: $conflink exists but is not a link" >&2 + fi + done +} diff --git a/debian/mini_epn_nagio3.8.txt b/debian/mini_epn_nagio3.8.txt new file mode 100644 index 0000000..05bd10d --- /dev/null +++ b/debian/mini_epn_nagio3.8.txt @@ -0,0 +1,31 @@ +:man source: Nagios +:man version: {revnumber} +:man manual: mini_epn + +mini_epn(8) +========== + +NAME +---- +mini_epn - too to nagiosplugins inside of an embedded perl interpreter + +SYNOPSIS +-------- +*mini_epn* + +DESCRIPTION +----------- +After calling *mini_epn* an embedded perl interpreter gets started and asks for you a script to execute under the interpreter. To exit the interpreter loop press ^d at the prompt. + +EXAMPLES +-------- + + # mini_epn + Enter file name: /usr/lib/nagios/plugins/check_linux_raid + embedded perl plugin return code and output was: 0 & 'OK md0 status=[UU]. md1 status=[UU]. + +AUTHOR +------ +This manpage was written by Alexander Wirt for the Debian Distribution. + + diff --git a/debian/mini_epn_nagios3.8 b/debian/mini_epn_nagios3.8 new file mode 100644 index 0000000..f411a71 --- /dev/null +++ b/debian/mini_epn_nagios3.8 @@ -0,0 +1,44 @@ +'\" t +.\" Title: mini_epn +.\" Author: [see the "AUTHOR" section] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 09/19/2009 +.\" Manual: mini_epn +.\" Source: Nagios +.\" Language: English +.\" +.TH "MINI_EPN" "8" "09/19/2009" "Nagios" "mini_epn" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +mini_epn \- too to nagiosplugins inside of an embedded perl interpreter +.SH "SYNOPSIS" +.sp +\fBmini_epn\fR +.SH "DESCRIPTION" +.sp +After calling \fBmini_epn\fR an embedded perl interpreter gets started and asks for you a script to execute under the interpreter\&. To exit the interpreter loop press ^d at the prompt\&. +.SH "EXAMPLES" +.sp +.if n \{\ +.RS 4 +.\} +.nf +# mini_epn +Enter file name: /usr/lib/nagios/plugins/check_linux_raid +embedded perl plugin return code and output was: 0 & \'OK md0 status=[UU]\&. md1 status=[UU]\&. +.fi +.if n \{\ +.RE +.\} +.SH "AUTHOR" +.sp +This manpage was written by Alexander Wirt for the Debian Distribution\&. diff --git a/debian/nagios3-cgi.config b/debian/nagios3-cgi.config new file mode 100644 index 0000000..b03e16c --- /dev/null +++ b/debian/nagios3-cgi.config @@ -0,0 +1,31 @@ +#!/bin/sh -e + +. /usr/share/debconf/confmodule + +db_fget nagios3/adminpassword seen || true +password_seen="$RET" + +if [ "$1" = "reconfigure" ]; then + password_seen=false +fi + +if [ "$rootpassword_seen" != "true" ]; then + while [ ! "$passwordsmatch" ]; do + db_input high nagios3/adminpassword || true + db_input high nagios3/adminpassword-repeat || true + db_go || true + db_get nagios3/adminpassword + p1="$RET" + db_get nagios3/adminpassword-repeat + p2="$RET" + if [ "$p1" = "$p2" ]; then + passwordsmatch="yes" + else + db_fset nagios3/adminpassword seen false + db_fset nagios3/adminpassword-repeat seen false + db_fset nagios3/adminpassword-mismatch seen false + db_input critical nagios3/adminpassword-mismatch || true + fi + done +fi +db_go || true diff --git a/debian/nagios3-cgi.dirs b/debian/nagios3-cgi.dirs new file mode 100644 index 0000000..7d75ba5 --- /dev/null +++ b/debian/nagios3-cgi.dirs @@ -0,0 +1,3 @@ +etc/nagios3/stylesheets +usr/share/nagios3/htdocs/ssi +usr/lib/cgi-bin diff --git a/debian/nagios3-cgi.install b/debian/nagios3-cgi.install new file mode 100644 index 0000000..66ba557 --- /dev/null +++ b/debian/nagios3-cgi.install @@ -0,0 +1,11 @@ +debian-configs/cgi.cfg /etc/nagios3 +debian/httpd.webapps-common /usr/share/nagios3/debian +usr/lib/cgi-bin/* +usr/share/nagios3/htdocs/*.php +usr/share/nagios3/htdocs/contexthelp +usr/share/nagios3/htdocs/images +usr/share/nagios3/htdocs/includes +usr/share/nagios3/htdocs/media +usr/share/nagios3/htdocs/robots.txt +usr/share/nagios3/htdocs/stylesheets/* /etc/nagios3/stylesheets/ +debian/apache2.conf usr/share/nagios3-cgi/ diff --git a/debian/nagios3-cgi.links b/debian/nagios3-cgi.links new file mode 100644 index 0000000..26707f5 --- /dev/null +++ b/debian/nagios3-cgi.links @@ -0,0 +1,4 @@ +usr/share/javascript/jquery/jquery.min.js usr/share/nagios3/htdocs/js/jquery-1.7.1.min.js +etc/nagios3/apache2.conf etc/apache2/conf-available/nagios3.conf +usr/share/javascript/jquery/jquery.min.js usr/share/nagios3/htdocs/includes/jquery-1.7.1.min.js +usr/share/javascript/jquery/jquery.min.js usr/share/nagios3/htdocs/js/jquery-1.7.1.min.js diff --git a/debian/nagios3-cgi.postinst b/debian/nagios3-cgi.postinst new file mode 100644 index 0000000..d60fa64 --- /dev/null +++ b/debian/nagios3-cgi.postinst @@ -0,0 +1,101 @@ +#!/bin/bash + +set -e + +# some shorthands for sanity +en="/etc/nagios3" +enc="/etc/nagios3/conf.d" +usn="/usr/share/nagios3" + +. /usr/share/debconf/confmodule + +if [ -n "$NAG3DEBUG" ]; then + echo "now debugging $0 $@" + set -x +fi + +# location of the default apache configuration for nagios. +apacheconf=$en/apache2.conf +# location of the default htpasswd authentication file. +htpw=$en/htpasswd.users + +setperm() { + local user="$1" + local group="$2" + local mode="$3" + local file="$4" + shift 4 + # only do something when no setting exists + if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then + if [ -e "$file" ]; then + chown "$user":"$group" "$file" + chmod "$mode" "$file" + fi + 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 + + db_get nagios3/adminpassword + admpass="$RET" + + # register apache2.conf via ucf: + ucf --debconf-ok /usr/share/nagios3-cgi/apache2.conf $apacheconf + + 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 cgi + apache2_invoke enconf nagios3 + + # remove OLD Apache 2.2 link + [ -L /etc/apache2/conf.d/nagios3.conf ] && rm /etc/apache2/conf.d/nagios3.conf + + # OLD methods for Apache < 2.4 + elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then + + # create symlink if not existing + [ -f /etc/apache2/conf.d/nagios3.conf ] || ln -vs $apacheconf /etc/apache2/conf.d/nagios3.conf + if [ -f /etc/init.d/apache2 ] ; then + if [ -x /usr/sbin/invoke-rc.d ]; then + invoke-rc.d apache2 reload 3>/dev/null || true + else + /etc/init.d/apache2 reload 3>/dev/null || true + fi + fi + fi + + # we reset the password every run, so if it exists we're running + # after being specifically given a password and can unconditionally set it. + # XXX there's no way of setting the pw w/out giving it on the cmdline? wtf? + if [ -n "$admpass" ]; then + touch "$htpw" + htpasswd -b "$htpw" nagiosadmin "$admpass" + fi + + # everything went well, so now let's reset the password + db_set nagios3/adminpassword "" + db_set nagios3/adminpassword-repeat "" + # ... done with debconf here + db_stop + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + *) + echo "postinst called with unknown argument \$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# diff --git a/debian/nagios3-cgi.postrm b/debian/nagios3-cgi.postrm new file mode 100644 index 0000000..d5273ac --- /dev/null +++ b/debian/nagios3-cgi.postrm @@ -0,0 +1,20 @@ +#!/bin/sh -e + +# some shorthands for sanity +en="/etc/nagios3" +enc="/etc/nagios3/conf.d" +usn="/usr/share/nagios3" + +case "$1" in + remove) + ;; + purge) + rm -f /etc/nagios3/htpasswd.users + rm -f /etc/nagios3/apache2.conf + if which ucf >/dev/null 2>&1; then + ucf --purge /etc/nagios3/apache2.conf + fi + ;; +esac + +#DEBHELPER# diff --git a/debian/nagios3-cgi.prerm b/debian/nagios3-cgi.prerm new file mode 100644 index 0000000..c7f5832 --- /dev/null +++ b/debian/nagios3-cgi.prerm @@ -0,0 +1,25 @@ +#!/bin/sh -e + +. /usr/share/nagios3/debian/httpd.webapps-common + +apacheconf="/etc/nagios3/apache2.conf" + +if [ -f $apacheconf ]; then + case "$1" in + remove) + # find the configured servers + configured_servers=`wc_httpd_apache_configured $apacheconf nagios3` + if [ "$configured_servers" ]; then + # deconfigure them + wc_httpd_apache_uninclude $apacheconf nagios3 $configured_servers + # reload the configured servers if they are running + running_servers="`wc_httpd_running $configured_servers`" + if [ "$running_servers" ]; then + wc_httpd_invoke "reload" $running_servers + fi + fi + ;; + esac +fi + +#DEBHELPER# diff --git a/debian/nagios3-cgi.templates b/debian/nagios3-cgi.templates new file mode 100644 index 0000000..685ec70 --- /dev/null +++ b/debian/nagios3-cgi.templates @@ -0,0 +1,16 @@ +Template: nagios3/adminpassword +Type: password +_Description: Nagios web administration password: + Please provide the password to be created with the "nagiosadmin" user. + . + This is the username and password you will use to log in to your nagios + installation after configuration is complete. If you do not provide + a password, you will have to configure access to nagios yourself. + +Template: nagios3/adminpassword-repeat +Type: password +_Description: Password confirmation: + +Template: nagios3/adminpassword-mismatch +Type: note +_Description: The passwords do not match diff --git a/debian/nagios3-common.dirs b/debian/nagios3-common.dirs new file mode 100644 index 0000000..d208935 --- /dev/null +++ b/debian/nagios3-common.dirs @@ -0,0 +1,10 @@ +etc/init.d +etc/nagios3 +etc/nagios3/conf.d +usr/share/nagios3/plugins/eventhandlers +var/lib/nagios3/rw +var/lib/nagios3/spool +var/lib/nagios3/spool/checkresults +var/log/nagios3/archives +var/cache/nagios3 +usr/share/nagios3/debian diff --git a/debian/nagios3-common.docs b/debian/nagios3-common.docs new file mode 100644 index 0000000..c42dfaf --- /dev/null +++ b/debian/nagios3-common.docs @@ -0,0 +1,2 @@ +README +UPGRADING diff --git a/debian/nagios3-common.examples b/debian/nagios3-common.examples new file mode 100644 index 0000000..2ac5432 --- /dev/null +++ b/debian/nagios3-common.examples @@ -0,0 +1,5 @@ +sample-config/template-object/commands.cfg +sample-config/template-object/localhost.cfg +sample-config/resource.cfg +sample-config/nagios.cfg +sample-config/cgi.cfg diff --git a/debian/nagios3-common.install b/debian/nagios3-common.install new file mode 100644 index 0000000..bfe66c5 --- /dev/null +++ b/debian/nagios3-common.install @@ -0,0 +1,8 @@ +contrib/eventhandlers/* usr/share/nagios3/plugins/eventhandlers +debian-configs/* /etc/nagios3 +debian/conf.d/* /etc/nagios3/conf.d +debian/resource.cfg /etc/nagios3 +sample-config/*.cfg /usr/share/doc/nagios3-common/examples +sample-config/README /usr/share/doc/nagios3-common/examples +sample-config/template-object/*.cfg /usr/share/doc/nagios3-common/examples/template-object +sample-config/template-object/README /usr/share/doc/nagios3-common/examples/template-object diff --git a/debian/nagios3-common.links b/debian/nagios3-common.links new file mode 100644 index 0000000..ca1f177 --- /dev/null +++ b/debian/nagios3-common.links @@ -0,0 +1 @@ +usr/share/nagios3/htdocs/docs usr/share/doc/nagios3-common/html diff --git a/debian/nagios3-common.lintian-overrides b/debian/nagios3-common.lintian-overrides new file mode 100644 index 0000000..8a28ef1 --- /dev/null +++ b/debian/nagios3-common.lintian-overrides @@ -0,0 +1,2 @@ +non-standard-file-perm etc/nagios3/resource.cfg 0600 != 0644 +dir-or-file-in-var-run var/run/nagios3/ diff --git a/debian/nagios3-common.nagios3.default b/debian/nagios3-common.nagios3.default new file mode 100644 index 0000000..5ea3b82 --- /dev/null +++ b/debian/nagios3-common.nagios3.default @@ -0,0 +1,17 @@ +# /etc/default/nagios3 + +# Enable Nagios3 at boottime? ("no" disables nagios3) +# compatibility note: if this variable is _not_ found Nagios3 will start +ENABLED="yes" + +# location of the nagios configuration file +NAGIOSCFG="/etc/nagios3/nagios.cfg" + +# location of the CGI configuration file +CGICFG="/etc/nagios3/cgi.cfg" + +# nicelevel to run nagios daemon with +NICENESS=5 + +# if you use pam_tmpdir, you need to explicitly set TMPDIR: +#TMPDIR=/tmp diff --git a/debian/nagios3-common.nagios3.init b/debian/nagios3-common.nagios3.init new file mode 100644 index 0000000..3a1a03d --- /dev/null +++ b/debian/nagios3-common.nagios3.init @@ -0,0 +1,263 @@ +#! /bin/sh +# Written by Miquel van Smoorenburg . +# Modified for Debian GNU/Linux +# by Ian Murdock . +# Clamav version by Magnus Ekdahl +# Nagios version by Sean Finney and probably others +# nagios2 version by Marc Haber +# nagios3 version by Alexander Wirt + +### BEGIN INIT INFO +# Provides: nagios3 +# Required-Start: $local_fs $remote_fs $syslog $named $network $time +# Required-Stop: $local_fs $remote_fs $syslog $named $network +# Should-Start: +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: nagios host/service/network monitoring and management system +# Description: nagios is a monitoring and management system for hosts, services and networks. +### END INIT INFO + +set -e + +. /lib/lsb/init-functions + +DAEMON=/usr/sbin/nagios3 +NAME="nagios3" +DESC="nagios3 monitoring daemon" +NAGIOSCFG="/etc/nagios3/nagios.cfg" +CGICFG="/etc/nagios3/cgi.cfg" +NICENESS=5 + +[ -x "$DAEMON" ] || exit 0 +[ -r /etc/default/nagios3 ] && . /etc/default/nagios3 + + +# this is from madduck on IRC, 2006-07-06 +# There should be a better possibility to give daemon error messages +# and/or to log things +log() +{ + case "$1" in + [[:digit:]]*) success=$1; shift;; + *) :;; + esac + log_action_begin_msg "$1"; shift + log_action_end_msg ${success:-0} "$*" +} + +check_run () { + if [ ! -d '/var/run/nagios3' ]; + then + mkdir /var/run/nagios3 + chown nagios:nagios /var/run/nagios3 + chmod 0750 /var/run/nagios3 + fi +} + + +check_started () { + #nagios3-core can be installed without -cgi + if [ -e $CGICFG ]; + then + check_cmd=$(get_config nagios_check_command $CGICFG) + if [ ! "$check_cmd" ]; then + log 6 "unable to determine nagios_check_command from $CGICFG!" + return 6 + fi + else + #use hardcoded default version + check_cmd="/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/status.dat 5 '/usr/sbin/nagios3'" + fi + + eval $check_cmd >/dev/null + + if [ -f "$THEPIDFILE" ]; then + pid="$(cat $THEPIDFILE)" + if [ "$pid" ] && kill -0 $pid >/dev/null 2>/dev/null; then + return 0 # Is started + fi + fi + return 1 # Isn't started +} + +# +# get_config() +# +# grab a config option from nagios.cfg (or possibly another nagios config +# file if specified). everything after the '=' is echo'd out, making +# this a nice generalized way to get requested settings. +# +get_config () { + if [ "$2" ]; then + set -- `grep ^$1 $2 | sed 's@=@ @'` + else + set -- `grep ^$1 $NAGIOSCFG | sed 's@=@ @'` + fi + shift + echo $* +} + +check_config () { + if $DAEMON -v $NAGIOSCFG >/dev/null 2>&1 ; then + # First get the user/group etc Nagios is running as + nagios_user="$(get_config nagios_user)" + nagios_group="$(get_config nagios_group)" + log_file="$(get_config log_file)" + log_dir="$(dirname $log_file)" + + return 0 # Config is ok + else + # config is not okay, so let's barf the error to the user + $DAEMON -v $NAGIOSCFG + fi +} + +check_named_pipe () { + nagiospipe="$(get_config command_file)" + if [ -p "$nagiospipe" ]; then + return 1 # a named pipe exists + elif [ -e "$nagiospipe" ];then + return 1 + else + return 0 # no named pipe exists + fi +} + +if [ ! -f "$NAGIOSCFG" ]; then + log_failure_msg "There is no configuration file for Nagios 3." + exit 6 +fi + +THEPIDFILE=$(get_config "lock_file") +[ -n "$THEPIDFILE" ] || THEPIDFILE='/var/run/nagios3/nagios.pid' + +start () { + + if [ "$ENABLED" = "no" ]; then + log_warning_msg "Not starting Nagios3 - set ENABLED to yes in /etc/default/nagios3" + exit 0 + fi + + if ! check_started; then + if ! check_named_pipe; then + log_action_msg "named pipe exists - removing" + rm -f $nagiospipe + fi + if check_config; then + start_daemon -n $NICENESS -p $THEPIDFILE $DAEMON -d $NAGIOSCFG + ret=$? + else + log_failure_msg "errors in config!" + log_end_msg 1 + exit 1 + fi + else + log_warning_msg "already running!" + fi + return $ret +} + +stop () { + killproc -p $THEPIDFILE + ret=$? + if [ `pidof nagios3 | wc -l ` -gt 0 ]; then + echo -n "Waiting for $NAME daemon to die.." + cnt=0 + while [ `pidof nagios3 | wc -l ` -gt 0 ]; do + cnt=`expr "$cnt" + 1` + if [ "$cnt" -gt 15 ]; then + kill -9 `pidof nagios3` + break + fi + sleep 1 + echo -n "." + done + fi + echo + if ! check_named_pipe; then + rm -f $nagiospipe + fi + if [ -n "$ret" ]; then + return $ret + else + return $? + fi +} + +status() +{ + log_action_begin_msg "checking $DAEMON" + if check_started; then + log_action_end_msg 0 "running" + else + if [ -e "$THEPIDFILE" ]; then + log_action_end_msg 1 "$DAEMON failed" + exit 1 + else + log_action_end_msg 1 "not running" + exit 3 + fi + fi +} + + +reload () { + # Check first + if check_config; then + if check_started; then + killproc -p $THEPIDFILE $DAEMON 1 + else + log_warning_msg "Not running." + fi + else + log_failure_msg "errors in config!" + log_end_msg 6 + exit 6 + fi +} + +check() { + $DAEMON -v $NAGIOSCFG +} + +check_run + +case "$1" in + start) + log_daemon_msg "Starting $DESC" "$NAME" + start + log_end_msg $? + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + stop + log_end_msg $? + ;; + restart) + log_daemon_msg "Restarting $DESC" "$NAME" + stop + if [ -z "$?" -o "$?" = "0" ]; then + start + fi + log_end_msg $? + ;; + reload|force-reload) + log_daemon_msg "Reloading $DESC configuration files" "$NAME" + reload + log_end_msg $? + ;; + status) + status + ;; + check) + check + ;; + *) + log_failure_msg "Usage: $0 {start|stop|restart|reload|force-reload|status}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/debian/nagios3-common.postinst b/debian/nagios3-common.postinst new file mode 100644 index 0000000..f775987 --- /dev/null +++ b/debian/nagios3-common.postinst @@ -0,0 +1,61 @@ +#!/bin/bash + +set -e + +# some shorthands for sanity +en="/etc/nagios3" +enc="/etc/nagios3/conf.d" +usn="/usr/share/nagios3" + +. /usr/share/debconf/confmodule + +if [ -n "$NAG3DEBUG" ]; then + echo "now debugging $0 $@" + set -x +fi + +setperm() { + local user="$1" + local group="$2" + local mode="$3" + local file="$4" + shift 4 + # only do something when no setting exists + if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then + if [ -e "$file" ]; then + chown "$user":"$group" "$file" + chmod "$mode" "$file" + fi + 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 + + # explicitly set permissions on some files that are dependent + # on the uid/gid of the nagios user, which is dynamically created. + setperm root nagios 0640 $en/resource.cfg + setperm nagios adm 2751 /var/log/nagios3 + setperm nagios adm 2751 /var/log/nagios3/archives + setperm nagios nagios 0750 /var/lib/nagios3 + setperm nagios nagios 0750 /var/lib/nagios3/spool + setperm nagios nagios 0750 /var/lib/nagios3/spool/checkresults + setperm nagios www-data 02750 /var/cache/nagios3 + setperm nagios www-data 0700 /var/lib/nagios3/rw + + db_stop + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + *) + echo "postinst called with unknown argument \$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# diff --git a/debian/nagios3-common.postrm b/debian/nagios3-common.postrm new file mode 100644 index 0000000..69939b8 --- /dev/null +++ b/debian/nagios3-common.postrm @@ -0,0 +1,29 @@ +#!/bin/sh -e + +# some shorthands for sanity +en="/etc/nagios3" +enc="/etc/nagios3/conf.d" +usn="/usr/share/nagios3" + +case "$1" in + remove) + ;; + purge) + for file in $en/resource.cfg /var/log/nagios3 /var/run/nagios3 \ + /var/lib/nagios3 /var/lib/nagios3/spool \ + /var/lib/nagios3/spool/checkresults \ + /var/cache/nagios3 /var/lib/nagios3/rw; do + dpkg-statoverride --force --remove $file 2>/dev/null || true + done + rm -rf /var/run/nagios3 /var/log/nagios3 /var/lib/nagios3 \ + /var/cache/nagios3 + rm -f /etc/nagios3/conf.d/host-gateway_nagios3.cfg + #rm -f /etc/nagios3/conf.d/extcommands_nagios3.cfg + if which ucf >/dev/null 2>&1; then + ucf --purge /etc/nagios3/conf.d/host-gateway_nagios3.cfg + #ucf --purge /etc/nagios3/conf.d/extcommands_nagios3.cfg + fi + ;; +esac + +#DEBHELPER# diff --git a/debian/nagios3-core.dirs b/debian/nagios3-core.dirs new file mode 100644 index 0000000..fd21446 --- /dev/null +++ b/debian/nagios3-core.dirs @@ -0,0 +1,2 @@ +usr/sbin +usr/lib/nagios3 diff --git a/debian/nagios3-core.install b/debian/nagios3-core.install new file mode 100644 index 0000000..e3b74be --- /dev/null +++ b/debian/nagios3-core.install @@ -0,0 +1 @@ +usr/sbin/p1.pl usr/lib/nagios3/ diff --git a/debian/nagios3-core.links b/debian/nagios3-core.links new file mode 100644 index 0000000..059946d --- /dev/null +++ b/debian/nagios3-core.links @@ -0,0 +1 @@ +usr/share/doc/nagios3-common usr/share/doc/nagios3-core diff --git a/debian/nagios3-core.manpages b/debian/nagios3-core.manpages new file mode 100644 index 0000000..0d1b016 --- /dev/null +++ b/debian/nagios3-core.manpages @@ -0,0 +1,2 @@ +debian/nagios3.8 +debian/nagios3stats.8 diff --git a/debian/nagios3-core.postinst b/debian/nagios3-core.postinst new file mode 100644 index 0000000..917c23f --- /dev/null +++ b/debian/nagios3-core.postinst @@ -0,0 +1,16 @@ +#!/bin/sh -e + +#if we stop nagios3 in nagios3.prerm we should also start it here.. +#(#481334) +if [ -x "/etc/init.d/nagios3" ]; then + if ! /etc/init.d/nagios3 status >/dev/null; then + + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d nagios3 start || true + else + /etc/init.d/nagios3 start || true + fi + fi +fi + +#DEBHELPER# diff --git a/debian/nagios3-core.prerm b/debian/nagios3-core.prerm new file mode 100644 index 0000000..1176c4b --- /dev/null +++ b/debian/nagios3-core.prerm @@ -0,0 +1,16 @@ +#!/bin/sh -e + +# we attempt to stop nagios3 twice, once in nagios3-common's prerm +# and once here. otherwise, if nagios3+nagios3-common are being purged, +# the /usr/sbin/nagios3 binary could disappear before nagios3-common's +# prerm script runs, which would prevent it from being able to stop +# the binary. +if [ -x "/etc/init.d/nagios3" ]; then + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d nagios3 stop || true + else + /etc/init.d/nagios3 stop || true + fi +fi + +#DEBHELPER# diff --git a/debian/nagios3-dbg.manpages b/debian/nagios3-dbg.manpages new file mode 100644 index 0000000..b08523c --- /dev/null +++ b/debian/nagios3-dbg.manpages @@ -0,0 +1 @@ +debian/mini_epn_nagios3.8 diff --git a/debian/nagios3-dbg.postinst b/debian/nagios3-dbg.postinst new file mode 100644 index 0000000..d1568db --- /dev/null +++ b/debian/nagios3-dbg.postinst @@ -0,0 +1,6 @@ +#!/bin/sh -e + +update-alternatives --quiet --install /usr/bin/mini_epn mini_epn /usr/bin/mini_epn_nagios3 10 \ + --slave /usr/share/man/man8/mini_epn.8.gz mini_epn.8.gz /usr/share/man/man8/mini_epn_nagios3.8.gz + +#DEBHELPER# diff --git a/debian/nagios3-dbg.prerm b/debian/nagios3-dbg.prerm new file mode 100644 index 0000000..e0be6a3 --- /dev/null +++ b/debian/nagios3-dbg.prerm @@ -0,0 +1,7 @@ +#!/bin/sh -e + +if [ "$1" != "upgrade" ]; then + update-alternatives --remove mini_epn /usr/bin/mini_epn_nagios3 +fi + +#DEBHELPER# diff --git a/debian/nagios3-doc.dirs b/debian/nagios3-doc.dirs new file mode 100644 index 0000000..b5c38de --- /dev/null +++ b/debian/nagios3-doc.dirs @@ -0,0 +1,2 @@ +usr/share/nagios3/htdocs +etc/nagios3/stylesheets diff --git a/debian/nagios3-doc.doc-base b/debian/nagios3-doc.doc-base new file mode 100644 index 0000000..713b5cc --- /dev/null +++ b/debian/nagios3-doc.doc-base @@ -0,0 +1,9 @@ +Document: nagios3 +Title: Nagios Documentation +Author: Ethan Galstad +Abstract: Nagios user and administrator's documentation +Section: Network/Monitoring + +Format: HTML +Index: /usr/share/nagios3/htdocs/docs/index.html +Files: /usr/share/nagios3/htdocs/docs/*.html diff --git a/debian/nagios3-doc.install b/debian/nagios3-doc.install new file mode 100644 index 0000000..6ba7b64 --- /dev/null +++ b/debian/nagios3-doc.install @@ -0,0 +1 @@ +usr/share/nagios3/htdocs/docs diff --git a/debian/nagios3-doc.links b/debian/nagios3-doc.links new file mode 100644 index 0000000..adf1154 --- /dev/null +++ b/debian/nagios3-doc.links @@ -0,0 +1,2 @@ +usr/share/nagios3/htdocs/docs usr/share/doc/nagios3-doc/html +etc/nagios3/stylesheets usr/share/nagios3/stylesheets diff --git a/debian/nagios3-doc.lintian-overrides b/debian/nagios3-doc.lintian-overrides new file mode 100644 index 0000000..16fdb1c --- /dev/null +++ b/debian/nagios3-doc.lintian-overrides @@ -0,0 +1 @@ +package-contains-empty-directory usr/share/nagios3/htdocs/ssi/ diff --git a/debian/nagios3.8 b/debian/nagios3.8 new file mode 100644 index 0000000..273f497 --- /dev/null +++ b/debian/nagios3.8 @@ -0,0 +1,46 @@ +.TH nagios3 "8" "February 2006" "sean finney " "nagios" +.SH NAME +nagios3 \- network/systems status monitoring daemon + +.SH SYNOPSIS +.B nagios3 [\-h] [\-v] [\-s] [\-d] +.br + +.SH DESCRIPTION +.B nagios3 +is a daemon program that monitors the status of various network +accessible systems, devices, and more. For more information, please +consult the online documentation available at http://www.nagios.org, +or on your nagios server's web page. + +.SH OPTIONS +.TP +main_config_file +The main configuration file. On debian systems this defaults to +/etc/nagios3/nagios.cfg +.TP +\fB\-h\fR +A helpful usage message +.TP +\fB\-v\fR +Reads all data in the configuration files and performs a basic +verification/sanity check. Always make sure you verify your +config data before (re)starting Nagios. +.TP +\fB\-s\fR +Shows projected/recommended check scheduling information based +on the current data in the configuration files. +.TP +\fB\-d\fR +Starts Nagios in daemon mode (instead of as a foreground process). + +.SH FILES +.TP +.IP /etc/nagios3 +Default configuration directory for nagios3 + +.SH AUTHOR +nagios3 is written and maintained by Ethan Galstad . This +manual page was written by sean finney for the +Debian GNU/Linux operating system (but it may be freely used, modified, +and redistributed by others). diff --git a/debian/nagios3.links b/debian/nagios3.links new file mode 100644 index 0000000..9822c76 --- /dev/null +++ b/debian/nagios3.links @@ -0,0 +1 @@ +usr/share/doc/nagios3-common usr/share/doc/nagios3 diff --git a/debian/nagios3.lintian-overrides b/debian/nagios3.lintian-overrides new file mode 100644 index 0000000..e0c6ca8 --- /dev/null +++ b/debian/nagios3.lintian-overrides @@ -0,0 +1 @@ +usr-share-doc-symlink-without-dependency nagios3-common diff --git a/debian/nagios3stats.8 b/debian/nagios3stats.8 new file mode 100644 index 0000000..aec47b3 --- /dev/null +++ b/debian/nagios3stats.8 @@ -0,0 +1,51 @@ +.TH nagios3stats "8" "February 2006" "sean finney " "nagios" +.SH NAME +nagios3stats \- report statistics information from the nagios system + +.SH SYNOPSIS +.B nagios3stats [\-hVL] [\-c config] [\-m] [\-d] +.br + +.SH DESCRIPTION +.B nagios3stats +Is a program designed to provide information on the running nagios +system. It can provide a brief summary of information, or it can +be used to export specific information about the nagios system +into an MRTG-compatible format. +For more information please consult the nagios online documentation +available at http://www.nagios.org or the documentation available +with your nagios server's web page. + +.SH OPTIONS +.TP +\fB\-c\fR|\-\-config=FILE +The main configuration file. On debian systems this defaults to +/etc/nagios3/nagios.cfg +.TP +\fB\-m\fR|\-\-mrtg +Print output in MRTG-compatible format. For more details run +nagios3stats with \-\-help +.TP +\fB\-d\fR|\-\-data=VARS +Comma-seperated list of variables to output in MRTG format. For +more details run nagios3stats with \-\-help. +.TP +\fB\-h\fR|\-\-help +A helpful usage message +.TP +\fB\-V\fR|\-\-version +Print version information +.TP +\fB\-L\fR|\-\-license +Print license details + +.SH FILES +.TP +.IP /etc/nagios3 +Default configuration directory for nagios3 + +.SH AUTHOR +nagios3 is written and maintained by Ethan Galstad . This +manual page was written by sean finney for the +Debian GNU/Linux operating system (but it may be freely used, modified, +and redistributed by others). diff --git a/debian/patches/10_p1_pl_shebang.patch b/debian/patches/10_p1_pl_shebang.patch new file mode 100644 index 0000000..69d9e16 --- /dev/null +++ b/debian/patches/10_p1_pl_shebang.patch @@ -0,0 +1,12 @@ +Author: Marc Haber +Description: Fix shebang of perl interpreter +--- a/p1.pl ++++ b/p1.pl +@@ -1,4 +1,6 @@ +- package Embed::Persistent; ++#!/usr/bin/perl ++ ++package Embed::Persistent; + + # p1.pl for Nagios + diff --git a/debian/patches/40_fix_spurious_dollar_signs_added_to_command_lines.patch b/debian/patches/40_fix_spurious_dollar_signs_added_to_command_lines.patch new file mode 100644 index 0000000..077b320 --- /dev/null +++ b/debian/patches/40_fix_spurious_dollar_signs_added_to_command_lines.patch @@ -0,0 +1,14 @@ +Author: Alexander Wirt +Description: Fixes the output of spurious $ signs in commandoutput (#480001) +--- a/common/macros.c ++++ b/common/macros.c +@@ -221,7 +221,8 @@ + *output_buffer = (char *)realloc(*output_buffer, strlen(*output_buffer) + strlen(temp_buffer) + 3); + strcat(*output_buffer, "$"); + strcat(*output_buffer, temp_buffer); +- strcat(*output_buffer, "$"); ++ if (buf_ptr!=NULL) ++ strcat(*output_buffer,"$"); + } + + /* insert macro */ diff --git a/debian/patches/50_cgi.cfg-debianize.patch b/debian/patches/50_cgi.cfg-debianize.patch new file mode 100644 index 0000000..4e14495 --- /dev/null +++ b/debian/patches/50_cgi.cfg-debianize.patch @@ -0,0 +1,36 @@ +Author: Alexander Wirt +Description: Debianize cgi.cfg +--- a/sample-config/cgi.cfg.in ++++ b/sample-config/cgi.cfg.in +@@ -43,7 +43,7 @@ + # Values: 0 = disables context-sensitive help + # 1 = enables context-sensitive help + +-show_context_help=0 ++show_context_help=1 + + + +@@ -55,7 +55,22 @@ + + use_pending_states=1 + ++# NAGIOS PROCESS CHECK COMMAND ++# This is the full path and filename of the program used to check ++# the status of the Nagios process. It is used only by the CGIs ++# and is completely optional. However, if you don't use it, you'll ++# see warning messages in the CGIs about the Nagios process ++# not running and you won't be able to execute any commands from ++# the web interface. The program should follow the same rules ++# as plugins; the return codes are the same as for the plugins, ++# it should have timeout protection, it should output something ++# to STDIO, etc. ++# ++# Note: The command line for the check_nagios plugin below may ++# have to be tweaked a bit, as different versions of the plugin ++# use different command line arguments/syntaxes. + ++nagios_check_command=/usr/lib/nagios/plugins/check_nagios /var/cache/nagios3/status.dat 5 '/usr/sbin/nagios3' + + + # AUTHENTICATION USAGE diff --git a/debian/patches/51_commands.cfg-debianize.patch b/debian/patches/51_commands.cfg-debianize.patch new file mode 100644 index 0000000..ed8e855 --- /dev/null +++ b/debian/patches/51_commands.cfg-debianize.patch @@ -0,0 +1,218 @@ +Author: Alexander Wirt +Description: Debianize commands.cfg +--- a/sample-config/template-object/commands.cfg.in ++++ b/sample-config/template-object/commands.cfg.in +@@ -3,23 +3,12 @@ + # + # Last Modified: 05-31-2007 + # +-# NOTES: This config file provides you with some example command definitions +-# that you can reference in host, service, and contact definitions. +-# +-# You don't need to keep commands in a separate file from your other +-# object definitions. This has been done just to make things easier to +-# understand. +-# + ############################################################################### + + + ################################################################################ + # +-# SAMPLE NOTIFICATION COMMANDS +-# +-# These are some example notification commands. They may or may not work on +-# your system without modification. As an example, some systems will require +-# you to use "/usr/bin/mailx" instead of "/usr/bin/mail" in the commands below. ++# NOTIFICATION COMMANDS + # + ################################################################################ + +@@ -42,184 +31,16 @@ + + ################################################################################ + # +-# SAMPLE HOST CHECK COMMANDS ++# HOST CHECK COMMANDS + # + ################################################################################ + ++# On Debian, check-host-alive is being defined from within the ++# nagios-plugins-basic package + +-# This command checks to see if a host is "alive" by pinging it +-# The check must result in a 100% packet loss or 5 second (5000ms) round trip +-# average time to produce a critical error. +-# Note: Five ICMP echo packets are sent (determined by the '-p 5' argument) +- +-# 'check-host-alive' command definition +-define command{ +- command_name check-host-alive +- command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 +- } +- +- +- +- +-################################################################################ +-# +-# SAMPLE SERVICE CHECK COMMANDS +-# +-# These are some example service check commands. They may or may not work on +-# your system, as they must be modified for your plugins. See the HTML +-# documentation on the plugins for examples of how to configure command definitions. +-# +-# NOTE: The following 'check_local_...' functions are designed to monitor +-# various metrics on the host that Nagios is running on (i.e. this one). +-################################################################################ +- +-# 'check_local_disk' command definition +-define command{ +- command_name check_local_disk +- command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ +- } +- +- +-# 'check_local_load' command definition +-define command{ +- command_name check_local_load +- command_line $USER1$/check_load -w $ARG1$ -c $ARG2$ +- } +- +- +-# 'check_local_procs' command definition +-define command{ +- command_name check_local_procs +- command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ +- } +- +- +-# 'check_local_users' command definition +-define command{ +- command_name check_local_users +- command_line $USER1$/check_users -w $ARG1$ -c $ARG2$ +- } +- +- +-# 'check_local_swap' command definition +-define command{ +- command_name check_local_swap +- command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$ +- } +- +- +-# 'check_local_mrtgtraf' command definition +-define command{ +- command_name check_local_mrtgtraf +- command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ +- } +- +- +-################################################################################ +-# NOTE: The following 'check_...' commands are used to monitor services on +-# both local and remote hosts. + ################################################################################ +- +-# 'check_ftp' command definition +-define command{ +- command_name check_ftp +- command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_hpjd' command definition +-define command{ +- command_name check_hpjd +- command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_snmp' command definition +-define command{ +- command_name check_snmp +- command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_http' command definition +-define command{ +- command_name check_http +- command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_ssh' command definition +-define command{ +- command_name check_ssh +- command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ +- } +- +- +-# 'check_dhcp' command definition +-define command{ +- command_name check_dhcp +- command_line $USER1$/check_dhcp $ARG1$ +- } +- +- +-# 'check_ping' command definition +-define command{ +- command_name check_ping +- command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 +- } +- +- +-# 'check_pop' command definition +-define command{ +- command_name check_pop +- command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_imap' command definition +-define command{ +- command_name check_imap +- command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_smtp' command definition +-define command{ +- command_name check_smtp +- command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$ +- } +- +- +-# 'check_tcp' command definition +-define command{ +- command_name check_tcp +- command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ +- } +- +- +-# 'check_udp' command definition +-define command{ +- command_name check_udp +- command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ +- } +- +- +-# 'check_nt' command definition +-define command{ +- command_name check_nt +- command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ +- } +- +- +- +-################################################################################ +-# +-# SAMPLE PERFORMANCE DATA COMMANDS + # +-# These are sample performance data commands that can be used to send performance +-# data output to two text files (one for hosts, another for services). If you +-# plan on simply writing performance data out to a file, consider using the +-# host_perfdata_file and service_perfdata_file options in the main config file. ++# PERFORMANCE DATA COMMANDS + # + ################################################################################ + diff --git a/debian/patches/52_nagios.cfg-debianize.patch b/debian/patches/52_nagios.cfg-debianize.patch new file mode 100644 index 0000000..621e645 --- /dev/null +++ b/debian/patches/52_nagios.cfg-debianize.patch @@ -0,0 +1,146 @@ +Author: Alexander Wirt +Description: Debianize nagios.cfg +--- a/sample-config/nagios.cfg.in ++++ b/sample-config/nagios.cfg.in +@@ -2,10 +2,6 @@ + # + # NAGIOS.CFG - Sample Main Config File for Nagios @VERSION@ + # +-# Read the documentation for more information on this configuration +-# file. I've provided some comments here, but things may not be so +-# clear without further explanation. +-# + # Last Modified: 12-14-2008 + # + ############################################################################## +@@ -16,9 +12,19 @@ + # for historical purposes. This should be the first option specified + # in the config file!!! + +-log_file=@localstatedir@/nagios.log ++log_file=/var/log/nagios3/nagios.log + ++# Commands definitions ++cfg_file=/etc/nagios3/commands.cfg + ++# Debian also defaults to using the check commands defined by the debian ++# nagios-plugins package ++cfg_dir=/etc/nagios-plugins/config ++ ++# Debian uses by default a configuration directory where nagios3-common, ++# other packages and the local admin can dump or link configuration ++# files into. ++cfg_dir=/etc/nagios3/conf.d + + # OBJECT CONFIGURATION FILE(S) + # These are the object configuration files in which you define hosts, +@@ -27,13 +33,10 @@ + # if you wish (as shown below), or keep them all in a single config file. + + # You can specify individual object config files as shown below: +-cfg_file=@sysconfdir@/objects/commands.cfg +-cfg_file=@sysconfdir@/objects/contacts.cfg +-cfg_file=@sysconfdir@/objects/timeperiods.cfg +-cfg_file=@sysconfdir@/objects/templates.cfg +- +-# Definitions for monitoring the local (Linux) host +-cfg_file=@sysconfdir@/objects/localhost.cfg ++#cfg_file=@sysconfdir@/objects/commands.cfg ++#cfg_file=@sysconfdir@/objects/contacts.cfg ++#cfg_file=@sysconfdir@/objects/timeperiods.cfg ++#cfg_file=@sysconfdir@/objects/templates.cfg + + # Definitions for monitoring a Windows machine + #cfg_file=@sysconfdir@/objects/windows.cfg +@@ -64,7 +67,7 @@ + # directly) in order to prevent inconsistencies that can occur + # when the config files are modified after Nagios starts. + +-object_cache_file=@localstatedir@/objects.cache ++object_cache_file=/var/cache/nagios3/objects.cache + + + +@@ -103,7 +106,7 @@ + # The contents of the status file are deleted every time Nagios + # restarts. + +-status_file=@localstatedir@/status.dat ++status_file=/var/cache/nagios3/status.dat + + + +@@ -140,7 +143,7 @@ + # you will have to enable this. + # Values: 0 = disable commands, 1 = enable commands + +-check_external_commands=1 ++check_external_commands=0 + + + +@@ -169,6 +172,8 @@ + # is running as (usually 'nobody'). Permissions should be set at the + # directory level instead of on the file, as the file is deleted every + # time its contents are processed. ++# Debian Users: In case you didn't read README.Debian yet, _NOW_ is the ++# time to do it. + + command_file=@localstatedir@/rw/nagios.cmd + +@@ -198,7 +203,7 @@ + # is created, used, and deleted throughout the time that Nagios is + # running. + +-temp_file=@localstatedir@/nagios.tmp ++temp_file=/var/cache/nagios3/nagios.tmp + + + +@@ -264,7 +269,7 @@ + # This is the directory where archived (rotated) log files should be + # placed (assuming you've chosen to do log rotation). + +-log_archive_path=@localstatedir@/archives ++log_archive_path=/var/log/nagios3/archives + + + +@@ -1112,7 +1117,7 @@ + # strict-iso8601 (YYYY-MM-DDTHH:MM:SS) + # + +-date_format=us ++date_format=iso8601 + + + +@@ -1142,7 +1147,7 @@ + # embedded Perl interpreter) is located. If you didn't compile + # Nagios with embedded Perl support, this option has no effect. + +-p1_file=@bindir@/p1.pl ++p1_file=/usr/lib/nagios3/p1.pl + + + +@@ -1226,8 +1231,8 @@ + # using the $ADMINEMAIL$ and $ADMINPAGER$ macros in your notification + # commands. + +-admin_email=@nagios_user@@localhost +-admin_pager=page@nagios_user@@localhost ++admin_email=root@localhost ++admin_pager=pageroot@localhost + + + +@@ -1334,7 +1339,7 @@ + # DEBUG FILE + # This option determines where Nagios should write debugging information. + +-debug_file=@localstatedir@/nagios.debug ++debug_file=/var/log/nagios3/nagios.debug + + + diff --git a/debian/patches/55_strip_logarchivepath.patch b/debian/patches/55_strip_logarchivepath.patch new file mode 100644 index 0000000..abfceed --- /dev/null +++ b/debian/patches/55_strip_logarchivepath.patch @@ -0,0 +1,13 @@ +Author: Omni Flux +Description: stripping the log_archive_path value from cgi.cfg (#578232) +--- a/cgi/cgiutils.c ++++ b/cgi/cgiutils.c +@@ -500,7 +500,7 @@ + temp_buffer = strtok(NULL, "\n"); + strncpy(log_archive_path, (temp_buffer == NULL) ? "" : temp_buffer, sizeof(log_archive_path)); + log_archive_path[sizeof(log_archive_path) - 1] = '\x0'; +- strip(physical_html_path); ++ strip(log_archive_path); + if(log_archive_path[strlen(log_archive_path) - 1] != '/' && (strlen(log_archive_path) < sizeof(log_archive_path) - 1)) + strcat(log_archive_path, "/"); + } diff --git a/debian/patches/60_fix_p1.pl_patch_mini_epn.patch b/debian/patches/60_fix_p1.pl_patch_mini_epn.patch new file mode 100644 index 0000000..85071f3 --- /dev/null +++ b/debian/patches/60_fix_p1.pl_patch_mini_epn.patch @@ -0,0 +1,13 @@ +Author: Alexander Wirt +Description: Call p1.pl from /usr/lib/nagios3 +--- a/contrib/mini_epn.c ++++ b/contrib/mini_epn.c +@@ -19,7 +19,7 @@ + #endif + */ + +- char *embedding[] = { "", "p1.pl" }; ++ char *embedding[] = { "", "/usr/lib/nagios3/p1.pl" }; + char *plugin_output ; + char fname[MAX_INPUT_CHARS]; + char *args[] = {"", "0", "", "", NULL }; diff --git a/debian/patches/70_fix_eventhandler_paths.patch b/debian/patches/70_fix_eventhandler_paths.patch new file mode 100644 index 0000000..a1fbf6f --- /dev/null +++ b/debian/patches/70_fix_eventhandler_paths.patch @@ -0,0 +1,111 @@ +Author: Alexander Wirt +Description: Fixes paths for all contributed eventhandlers +--- a/contrib/eventhandlers/disable_active_service_checks ++++ b/contrib/eventhandlers/disable_active_service_checks +@@ -16,7 +16,7 @@ + + printfcmd="/usr/bin/printf" + +-CommandFile="/usr/local/nagios/var/rw/nagios.cmd" ++CommandFile="/var/lib/nagios3/rw/nagios.cmd" + + # get the current date/time in seconds since UNIX epoch + datetime=`date +%s` +--- a/contrib/eventhandlers/disable_notifications ++++ b/contrib/eventhandlers/disable_notifications +@@ -14,7 +14,7 @@ + + printfcmd="/usr/bin/printf" + +-CommandFile="/usr/local/nagios/var/rw/nagios.cmd" ++CommandFile="/var/lib/nagios3/rw/nagios.cmd" + + # get the current date/time in seconds since UNIX epoch + datetime=`date +%s` +--- a/contrib/eventhandlers/distributed-monitoring/obsessive_svc_handler ++++ b/contrib/eventhandlers/distributed-monitoring/obsessive_svc_handler +@@ -21,7 +21,7 @@ + # + + # Location of the submit_check_result_via_nsca script +-SubmitCmd="/usr/local/nagios/libexec/eventhandlers/submit_check_result_via_nsca" ++SubmitCmd="/usr/share/nagios3/plugins/eventhandlers/distributed-monitoring/submit_check_result_via_nsca" + + # Convert the state string to the corresponding return code + return_code=-1 +--- a/contrib/eventhandlers/distributed-monitoring/submit_check_result_via_nsca ++++ b/contrib/eventhandlers/distributed-monitoring/submit_check_result_via_nsca +@@ -28,8 +28,8 @@ + + printfcmd="/usr/bin/printf" + +-NscaBin="/usr/local/nagios/libexec/send_nsca" +-NscaCfg="/usr/local/nagios/etc/send_nsca.cfg" ++NscaBin="/usr/sbin/send_nsca" ++NscaCfg="/etc/send_nsca.cfg" + NagiosHost="nagioshost" + + # Fire the data off to the NSCA daemon using the send_nsca script +--- a/contrib/eventhandlers/enable_active_service_checks ++++ b/contrib/eventhandlers/enable_active_service_checks +@@ -16,7 +16,7 @@ + + printfcmd="/usr/bin/printf" + +-CommandFile="/usr/local/nagios/var/rw/nagios.cmd" ++CommandFile="/var/lib/nagios3/rw/nagios.cmd" + + # get the current date/time in seconds since UNIX epoch + datetime=`date +%s` +--- a/contrib/eventhandlers/enable_notifications ++++ b/contrib/eventhandlers/enable_notifications +@@ -14,7 +14,7 @@ + + printfcmd="/usr/bin/printf" + +-CommandFile="/usr/local/nagios/var/rw/nagios.cmd" ++CommandFile="/var/lib/nagios3/rw/nagios.cmd" + + # get the current date/time in seconds since UNIX epoch + datetime=`date +%s` +--- a/contrib/eventhandlers/redundancy-scenario1/handle-master-host-event ++++ b/contrib/eventhandlers/redundancy-scenario1/handle-master-host-event +@@ -10,10 +10,10 @@ + + # Location of the echo and mail commands + echocmd="/bin/echo" +-mailcmd="/bin/mail" ++mailcmd="/usr/bin/mail" + + # Location of the event handlers +-eventhandlerdir="/usr/local/nagios/libexec/eventhandlers" ++eventhandlerdir="/usr/share/nagios3/plugins/eventhandlers" + + + # Only take action on hard host states... +--- a/contrib/eventhandlers/redundancy-scenario1/handle-master-proc-event ++++ b/contrib/eventhandlers/redundancy-scenario1/handle-master-proc-event +@@ -10,10 +10,10 @@ + + # Location of the echo and mail commands + echocmd="/bin/echo" +-mailcmd="/bin/mail" ++mailcmd="/usr/bin/mail" + + # Location of the event handlers +-eventhandlerdir="/usr/local/nagios/libexec/eventhandlers" ++eventhandlerdir="/usr/share/nagios3/plugins/eventhandlers" + + + # Only take action on hard service states... +--- a/contrib/eventhandlers/submit_check_result ++++ b/contrib/eventhandlers/submit_check_result +@@ -24,7 +24,7 @@ + + echocmd="/bin/echo" + +-CommandFile="/usr/local/nagios/var/rw/nagios.cmd" ++CommandFile="/var/lib/nagios3/rw/nagios.cmd" + + # get the current date/time in seconds since UNIX epoch + datetime=`date +%s` diff --git a/debian/patches/80_dont_call_home.patch b/debian/patches/80_dont_call_home.patch new file mode 100644 index 0000000..0fadf35 --- /dev/null +++ b/debian/patches/80_dont_call_home.patch @@ -0,0 +1,4685 @@ +commit 16ecc5c1b71b88631af948a41d3fb26ef11e4f9e +Author: Michael Friedrich +Date: Fri Jan 3 15:21:56 2014 +0100 + + html: Remove RSS news feeds and update checks entirely. + + This patch leaves the status.dat/retention.dat parsing functionality in + utils.inc.php intact, even if that was used only for the update check + itsself. + +diff --git a/html/Makefile.in b/html/Makefile.in +index a977e35..6d40b04 100644 +--- a/html/Makefile.in ++++ b/html/Makefile.in +@@ -44,8 +44,6 @@ install: + $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/images + $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/images/logos + $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/includes +- $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/includes/rss +- $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/includes/rss/extlib + $(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(HTMLDIR)/ssi + $(INSTALL) -m 664 $(INSTALL_OPTS) robots.txt $(DESTDIR)$(HTMLDIR) + # $(INSTALL) -m 664 $(INSTALL_OPTS) docs/robots.txt $(DESTDIR)$(HTMLDIR)/docs +@@ -79,10 +77,6 @@ install: + do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/images/logos; done + for file in includes/*.*; \ + do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/includes; done +- for file in includes/rss/*.*; \ +- do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/includes/rss; done +- for file in includes/rss/extlib/*.*; \ +- do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/includes/rss/extlib; done + + install-unstripped: + $(MAKE) install +diff --git a/html/includes/rss/AUTHORS b/html/includes/rss/AUTHORS +deleted file mode 100644 +index 7d7f3f5..0000000 +--- a/html/includes/rss/AUTHORS ++++ /dev/null +@@ -1 +0,0 @@ +-kellan +diff --git a/html/includes/rss/CHANGES b/html/includes/rss/CHANGES +deleted file mode 100644 +index 3346f2b..0000000 +--- a/html/includes/rss/CHANGES ++++ /dev/null +@@ -1,41 +0,0 @@ +-Version 0.72 +------------ +- - fix security exploit: http://www.sec-consult.com/216.html +- +-Version 0.7 +------------ +- - support for input and output charset encoding +- based on the work in FoF, uses iconv or mbstring if available +- - +- +-Version 0.6 +------------ +- - basic support for Atom syndication format +- including support for Atom content constructs +- - fixed support for private feeds (HTTP Auth and SSL) +- (thanks to silverorange.com for providing test feeds) +- - support for some broken webservers +- +-Version 0.52 +------------ +- - support GZIP content negoiation +- - PHP 4.3.2 support +- +-Version 0.4 +------------ +- - improved error handling, better access for script authors +- - included example scripts of working with MagpieRSS +- - new Smarty plugin for RSS date parsing +- +-Version 0.3 +------------ +- - added support for conditional gets (Last-Modified, ETag) +- - now use Snoopy to handle fetching RSS files +- +-Version 0.2 +------------ +- - MAJOR CLEAN UP +- - removed kludgy $options array in favour of constants +- - phased out returning arrays +- - added better error handling +- - re-worked comments +diff --git a/html/includes/rss/ChangeLog b/html/includes/rss/ChangeLog +deleted file mode 100644 +index 62fa4f5..0000000 +--- a/html/includes/rss/ChangeLog ++++ /dev/null +@@ -1,405 +0,0 @@ +-2005-10-28 14:11 kellan +- +- * extlib/Snoopy.class.inc: a better solution +- +-2005-10-28 11:51 kellan +- +- * extlib/Snoopy.class.inc: fix arbtriary code execution +- vulnerability when using curl+ssl +- +- http://www.sec-consult.com/216.html +- +-2005-03-08 10:46 kellan +- +- * rss_parse.inc: fix bug w/ atom and date normalization +- +-2005-02-09 14:59 kellan +- +- * rss_fetch.inc: fix stale cache bug +- +-2005-01-28 02:27 kellan +- +- * rss_parse.inc: support php w/o array_change_case +- +-2005-01-23 20:02 kellan +- +- * rss_fetch.inc: fix cache bug introduced by charset encoding +- +-2005-01-12 09:14 kellan +- +- * rss_cache.inc, rss_fetch.inc: more sanity checks for when things +- go wrong +- +-2004-12-12 13:44 kellan +- +- * INSTALL, rss_cache.inc, rss_utils.inc: detab +- +-2004-11-23 20:15 kellan +- +- * rss_parse.inc: fix calling iconv instead of mb_convert_encoding +- +-2004-11-22 02:11 kellan +- +- * CHANGES, ChangeLog, rss_parse.inc, scripts/magpie_debug.php: last +- bit of tidying +- +-2004-11-22 01:45 kellan +- +- * rss_fetch.inc: detab, bump version +- +-2004-11-22 01:43 kellan +- +- * rss_parse.inc: was filtering too much +- +-2004-11-22 00:03 kellan +- +- * rss_fetch.inc, rss_parse.inc: cache on $url . $output_encoding +- otherwise we can get munged output +- +-2004-11-21 23:52 kellan +- +- * rss_parse.inc: add WARNING +- +-2004-11-21 23:45 kellan +- +- * rss_parse.inc: don't set ERROR on notice or warning (rss_fetch +- dies on parse errors) +- +-2004-11-21 23:44 kellan +- +- * rss_fetch.inc: add encoding defines (fix timeout error reporting) +- +-2004-11-21 20:21 kellan +- +- * rss_parse.inc: incorporate steve's patch +- +-2004-11-21 19:26 kellan +- +- * rss_parse.inc: remove old debugging functions, totally +- arbitrarily. might break stuff. can't really explain why i'm +- doing this. +- +-2004-10-28 15:52 kellan +- +- * rss_parse.inc: fixed '=' instead of '==' +- +-2004-10-26 00:48 kellan +- +- * rss_parse.inc: chance epoch to timestamp to conform w/ php naming +- conventions +- +-2004-06-15 12:00 kellan +- +- * rss_parse.inc: [no log message] +- +-2004-04-26 14:16 kellan +- +- * rss_fetch.inc: bump version +- +-2004-04-26 12:36 kellan +- +- * rss_parse.inc: fix field doubling +- +-2004-04-24 17:47 kellan +- +- * CHANGES, ChangeLog: updated +- +-2004-04-24 17:35 kellan +- +- * rss_fetch.inc: bumped version +- +-2004-04-24 16:52 kellan +- +- * rss_parse.inc: support arbitrary atom content constructs +- +- some refactoring +- +-2004-04-24 16:15 kellan +- +- * rss_parse.inc: support summary content contstruct. add normalize +- function +- +-2004-03-27 16:29 kellan +- +- * extlib/Snoopy.class.inc: accept self-signed certs +- +-2004-03-27 12:53 kellan +- +- * extlib/Snoopy.class.inc: fixed SSL support * set status * set +- error on bad curl +- +- (also ripped out big chunks of dead weight (submit_form) which +- were getting in my way +- +-2004-01-25 02:25 kellan +- +- * rss_parse.inc: make RSS 1.0's rdf:about available +- +-2004-01-25 02:07 kellan +- +- * rss_parse.inc: clean up text, and line formats. add support item +- rdf:about +- +-2004-01-24 23:40 kellan +- +- * CHANGES, ChangeLog: update changes +- +-2004-01-24 23:37 kellan +- +- * rss_fetch.inc: updated version +- +-2004-01-24 23:35 kellan +- +- * rss_parse.inc: whitespace +- +-2004-01-24 23:23 kellan +- +- * extlib/Snoopy.class.inc: support badly formatted http headers +- +-2004-01-24 23:20 kellan +- +- * rss_parse.inc: added alpha atom parsing support +- +-2003-06-25 22:34 kellan +- +- * extlib/Snoopy.class.inc: fixed fread 4.3.2 compatibility problems +- +-2003-06-13 11:31 kellan +- +- * rss_fetch.inc: reset cache on 304 +- +-2003-06-12 21:37 kellan +- +- * rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: +- bumped up version numbers +- +-2003-06-12 21:32 kellan +- +- * htdocs/index.html: updated news +- +-2003-06-12 21:27 kellan +- +- * NEWS: a manual blog :) +- +-2003-06-12 21:22 kellan +- +- * htdocs/index.html: fully qualified img +- +-2003-06-12 21:20 kellan +- +- * htdocs/index.html: clean up. added badge. +- +-2003-06-12 21:04 kellan +- +- * rss_utils.inc: clean up regex +- +-2003-06-12 21:02 kellan +- +- * rss_cache.inc: suppress some warnings +- +-2003-05-30 20:44 kellan +- +- * extlib/Snoopy.class.inc: more comments, cleaned up notice +- +-2003-05-30 15:14 kellan +- +- * extlib/Snoopy.class.inc: don't advertise gzip support if the user +- hasn't built php with gzinflate support +- +-2003-05-12 22:32 kellan +- +- * ChangeLog: changes +- +-2003-05-12 22:11 kellan +- +- * htdocs/index.html: announce 0.5 +- +-2003-05-12 21:42 kellan +- +- * htdocs/index.html: change +- +-2003-05-12 21:39 kellan +- +- * rss_fetch.inc: use gzip +- +-2003-05-12 21:37 kellan +- +- * extlib/Snoopy.class.inc: added support gzip encoded content +- negoiation +- +-2003-05-12 21:32 kellan +- +- * rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: fixed +- typoes +- +-2003-04-26 21:44 kellan +- +- * rss_parse.inc: fix minor typo +- +-2003-04-18 08:19 kellan +- +- * htdocs/cookbook.html: updated cookbook to show more code for +- limiting items +- +-2003-03-03 16:02 kellan +- +- * rss_parse.inc, scripts/magpie_slashbox.php: committed (or +- adpated) patch from Nicola (www.technick.com) to quell 'Undefined +- Indexes' notices +- +-2003-03-03 15:59 kellan +- +- * rss_fetch.inc: commited patch from nicola (www.technick.com) to +- quell 'undefined indexes' notices. +- +- * Magpie now automatically includes its version in the +- user-agent, & whether cacheing is turned on. +- +-2003-02-12 01:22 kellan +- +- * CHANGES, ChangeLog: ChangeLog now auto-generated by cvs2cl +- +-2003-02-12 00:21 kellan +- +- * rss_fetch.inc: better errors, hopefully stomped on pesky notices +- +-2003-02-12 00:19 kellan +- +- * rss_parse.inc: check to see is xml is supported, if not die +- +- also throw better xml errors +- +-2003-02-12 00:18 kellan +- +- * rss_cache.inc: hopefully cleared up some notices that were being +- thrown into the log +- +- fixed a debug statement that was being called as an error +- +-2003-02-12 00:15 kellan +- +- * scripts/: magpie_simple.php, magpie_slashbox.php: moved +- magpie_simple to magpie_slashbox, and replaced it with a simpler +- demo. +- +-2003-02-12 00:02 kellan +- +- * INSTALL, README, TROUBLESHOOTING: Improved documentation. Better +- install instructions. +- +- TROUBLESHOOTING cover common installation and usage problems +- +-2003-01-22 14:40 kellan +- +- * htdocs/cookbook.html: added cookbook.html +- +-2003-01-21 23:47 kellan +- +- * cookbook: a magpie cookbook +- +-2003-01-20 10:09 kellan +- +- * ChangeLog: updated +- +-2003-01-20 09:23 kellan +- +- * scripts/simple_smarty.php: minor clean up +- +-2003-01-20 09:15 kellan +- +- * scripts/README: added smarty url +- +-2003-01-20 09:14 kellan +- +- * magpie_simple.php, htdocs/index.html, scripts/README, +- scripts/magpie_debug.php, scripts/magpie_simple.php, +- scripts/simple_smarty.php, +- scripts/smarty_plugin/modifier.rss_date_parse.php, +- scripts/templates/simple.smarty: Added scripts directory for +- examples on how to use MagpieRSS +- +- magpie_simple - is a simple example magpie_debug - spew all the +- information from a parsed RSS feed simple_smary - example of +- using magpie with Smarty template system +- smarty_plugin/modifier.rss_date_parse.php - support file for the +- smarty demo templates/simple.smary - template for the smarty demo +- +-2003-01-20 09:11 kellan +- +- * rss_fetch.inc, rss_parse.inc: changes to error handling to give +- script authors more access to magpie's errors. +- +- added method magpie_error() to retrieve global MAGPIE_ERROR +- variable for when fetch_rss() returns false +- +-2002-10-26 19:02 kellan +- +- * htdocs/index.html: putting the website under source control +- +-2002-10-26 18:43 kellan +- +- * AUTHORS, ChangeLog, INSTALL, README: some documentation to make +- it all look official :) +- +-2002-10-25 23:04 kellan +- +- * magpie_simple.php: quxx +- +-2002-10-25 23:04 kellan +- +- * rss_parse.inc: added support for textinput and image +- +-2002-10-25 19:23 kellan +- +- * magpie_simple.php, rss_cache.inc, rss_fetch.inc, rss_parse.inc, +- rss_utils.inc: switched to using Snoopy for fetching remote RSS +- files. +- +- added support for conditional gets +- +-2002-10-25 19:22 kellan +- +- * rss_cache.inc, rss_fetch.inc, rss_parse.inc, rss_utils.inc: +- Change comment style to slavishly imitate the phpinsider style +- found in Smarty and Snoopy :) +- +-2002-10-25 19:18 kellan +- +- * extlib/Snoopy.class.inc: added Snoopy in order to support +- conditional gets +- +-2002-10-23 23:19 kellan +- +- * magpie_simple.php, rss_cache.inc, rss_fetch.inc, rss_parse.inc: +- MAJOR CLEANUP! +- +- * rss_fetch got rid of the options array, replaced it with a more +- PHP-like solution of using defines. constants are setup, with +- defaults, in the function init() +- +- got rid of the idiom of passing back an array, its was awkward to +- deal with in PHP, and unusual (and consquently confusing to +- people). now i return true/false values, and try to setup error +- string where appropiate (rss_cache has the most complete example +- of this) +- +- change the logic for interacting with the cache +- +- * rss_cache major re-working of how error are handled. tried to +- make the code more resillient. the cache is now much more aware +- of MAX_AGE, where before this was being driven out of rss_fetch +- (which was silly) +- +- * rss_parse properly handles xml parse errors. used to sail +- along blithely unaware. +- +-2002-09-11 11:11 kellan +- +- * rss_cache.inc, rss_parse.inc, magpie_simple.php, rss_fetch.inc, +- rss_utils.inc: Initial revision +- +-2002-09-11 11:11 kellan +- +- * rss_cache.inc, rss_parse.inc, magpie_simple.php, rss_fetch.inc, +- rss_utils.inc: initial import +- +diff --git a/html/includes/rss/INSTALL b/html/includes/rss/INSTALL +deleted file mode 100644 +index 640833d..0000000 +--- a/html/includes/rss/INSTALL ++++ /dev/null +@@ -1,143 +0,0 @@ +-REQUIREMENTS +- +- MapieRSS requires a recent PHP 4+ (developed with 4.2.0) +- with xml (expat) support. +- +- Optionally: +- * PHP5 with libxml2 support. +- * cURL for SSL support +- * iconv (preferred) or mb_string for expanded character set support +- +-QUICK START +- +- Magpie consists of 4 files (rss_fetch.inc, rss_parser.inc, rss_cache.inc, +- and rss_utils.inc), and the directory extlib (which contains a modified +- version of the Snoopy HTTP client) +- +- Copy these 5 resources to a directory named 'magpierss' in the same +- directory as your PHP script. +- +- At the top of your script add the following line: +- +- require_once('magpierss/rss_fetch.inc'); +- +- Now you can use the fetch_rss() method: +- +- $rss = fetch_rss($url); +- +- Done. That's it. See README for more details on using MagpieRSS. +- +-NEXT STEPS +- +- Important: you'll probably want to get the cache directory working in +- order to speed up your application, and not abuse the webserver you're +- downloading the RSS from. +- +- Optionally you can install MagpieRSS in your PHP include path in order to +- make it available server wide. +- +- Lastly you might want to look through the constants in rss_fetch.inc see if +- there is anything you want to override (the defaults are pretty good) +- +- For more info, or if you have trouble, see TROUBLESHOOTING +- +-SETTING UP CACHING +- +- Magpie has built-in transparent caching. With caching Magpie will only +- fetch and parse RSS feeds when there is new content. Without this feature +- your pages will be slow, and the sites serving the RSS feed will be annoyed +- with you. +- +-** Simple and Automatic ** +- +- By default Magpie will try to create a cache directory named 'cache' in the +- same directory as your PHP script. +- +-** Creating a Local Cache Directory ** +- +- Often this will fail, because your webserver doesn't have sufficient +- permissions to create the directory. +- +- Exact instructions for how to do this will vary from install to install and +- platform to platform. The steps are: +- +- 1. Make a directory named 'cache' +- 2. Give the web server write access to that directory. +- +- An example of how to do this on Debian would be: +- +- 1. mkdir /path/to/script/cache +- 2. chgrp www-data /path/to/script/cache +- 3. chmod 775 /path/to/script/cache +- +- On other Unixes you'll need to change 'www-data' to what ever user Apache +- runs as. (on MacOS X the user would be 'www') +- +-** Cache in /tmp ** +- +- Sometimes you won't be able to create a local cache directory. Some reasons +- might be: +- +- 1. No shell account +- 2. Insufficient permissions to change ownership of a directory +- 3. Webserver runs as 'nobody' +- +- In these situations using a cache directory in /tmp can often be a good +- option. +- +- The drawback is /tmp is public, so anyone on the box can read the cache +- files. Usually RSS feeds are public information, so you'll have to decide +- how much of an issue that is. +- +- To use /tmp as your cache directory you need to add the following line to +- your script: +- +- define('MAGPIE_CACHE_DIR', '/tmp/magpie_cache'); +- +-** Global Cache ** +- +- If you have several applications using Magpie, you can create a single +- shared cache directory, either using the /tmp cache, or somewhere else on +- the system. +- +- The upside is that you'll distribute fetching and parsing feeds across +- several applications. +- +-INSTALLING MAGPIE SERVER WIDE +- +- Rather then following the Quickstart instructions which requires you to have +- a copy of Magpie per application, alternately you can place it in some +- shared location. +- +-** Adding Magpie to Your Include Path ** +- +- Copy the 5 resources (rss_fetch.inc, rss_parser.inc, rss_cache.inc, +- rss_utils.inc, and extlib) to a directory named 'magpierss' in your include +- path. Now any PHP file on your system can use Magpie with: +- +- require_once('magpierss/rss_fetch.inc'); +- +- Different installs have different include paths, and you'll have to figure +- out what your include_path is. +- +- From shell you can try: +- +- php -i | grep 'include_path' +- +- Alternatley you can create a phpinfo.php file with contains: +- +- +- +- Debian's default is: +- +- /usr/share/php +- +- (though more idealogically pure location would be /usr/local/share/php) +- +- Apple's default include path is: +- +- /usr/lib/php +- +- While the Entropy PHP build seems to use: +- +- /usr/local/php/lib/php +\ No newline at end of file +diff --git a/html/includes/rss/NEWS b/html/includes/rss/NEWS +deleted file mode 100644 +index 5ac6b97..0000000 +--- a/html/includes/rss/NEWS ++++ /dev/null +@@ -1,53 +0,0 @@ +-MagpieRSS News +- +-MAGPIERSS 0.51 RELEASED +- * important bugfix! +- * fix "silent failure" when PHP doesn't have zlib +- +-FEED ON FEEDS USES MAGPIE +- * web-based RSS aggregator built with Magpie +- * easy to install, easy to use. +- http://minutillo.com/steve/feedonfeeds/ +- +-MAGPIERSS 0.5 RELEASED +- * supports transparent HTTP gzip content negotiation for reduced bandwidth usage +- * quashed some undefined index notices +- +-MAGPIERSS 0.46 RELEASED +- * minor release, more error handling clean up +- * documentation fixes, simpler example +- * new trouble shooting guide for installation and usage problems +- http://magpierss.sourceforge.net/TROUBLESHOOTING +- +-MAGPIE NEWS AS RSS +- * releases, bug fixes, releated stories in RSS +- +-MAGPIERSS COOKBOOK: SIMPLE PHP RSS HOW TOS +- * answers some of the most frequently asked Magpie questions +- * feedback, suggestions, requests, recipes welcome +- http://magpierss.sourceforge.net/cookbook.html +- +-MAGPIERSS 0.4 RELEASED! +- * improved error handling, more flexibility for script authors, backwards compatible +- * new and better examples! including using MagpieRSS and Smarty +- * new Smarty plugin for RSS date parsing +- http://smarty.php.net +- +-INFINITE PENGUIN NOW SUPPORTS MAGPIE 0.3 +- * simple, sophisticated RSS viewer +- * includes auto-generated javascript ticker from RSS feed +- http://www.infinitepenguins.net/rss/ +- +-TRAUMWIND RELEASES REX BACKEND FOR MAGPIERSS +- * drop in support using regex based XML parser +- * parses improperly formed XML that chokes expat +- http://traumwind.de/blog/magpie/magpie_alike.php +- +-MAGPIERSS 0.3 RELEASED! +- * Support added for HTTP Conditional GETs. +- http://fishbowl.pastiche.org/archives/001132.html +- +-MAGPIERSS 0.2! +- * Major clean up of the code. Easier to use. +- * Simpler install on shared hosts. +- * Better documentation and comments. +diff --git a/html/includes/rss/README b/html/includes/rss/README +deleted file mode 100644 +index 6af7edb..0000000 +--- a/html/includes/rss/README ++++ /dev/null +@@ -1,48 +0,0 @@ +-NAME +- +- MagpieRSS - a simple RSS integration tool +- +-SYNOPSIS +- +- require_once(rss_fetch.inc); +- $url = $_GET['url']; +- $rss = fetch_rss( $url ); +- +- echo "Channel Title: " . $rss->channel['title'] . "

"; +- echo "

    "; +- foreach ($rss->items as $item) { +- $href = $item['link']; +- $title = $item['title']; +- echo "
  • $title
  • "; +- } +- echo "
"; +- +-DESCRIPTION +- +- MapieRSS is an XML-based RSS parser in PHP. It attempts to be "PHP-like", +- and simple to use. +- +- Some features include: +- +- * supports RSS 0.9 - 1.0, with limited RSS 2.0 support +- * supports namespaces, and modules, including mod_content and mod_event +- * open minded [1] +- * simple, functional interface, to object oriented backend parser +- * automatic caching of parsed RSS objects makes its easy to integrate +- * supports conditional GET with Last-Modified, and ETag +- * uses constants for easy override of default behaviour +- * heavily commented +- +- +-1. By open minded I mean Magpie will accept any tag it finds in good faith that +- it was supposed to be here. For strict validation, look elsewhere. +- +- +-GETTING STARTED +- +- +- +-COPYRIGHT: +- Copyright(c) 2002 kellan@protest.net. All rights reserved. +- This software is released under the GNU General Public License. +- Please read the disclaimer at the top of the Snoopy.class.inc file. +diff --git a/html/includes/rss/TROUBLESHOOTING b/html/includes/rss/TROUBLESHOOTING +deleted file mode 100644 +index 89068d3..0000000 +--- a/html/includes/rss/TROUBLESHOOTING ++++ /dev/null +@@ -1,152 +0,0 @@ +-TROUBLESHOOTING +- +- +-Trouble Installing MagpieRSS: +- +-1. Fatal error: Failed opening required '/path/to/script/rss_fetch.inc' +- (include_path='.:/usr/local/lib/php:/usr/local/lib/php/pear') +- +-2. Cache couldn't make dir './cache'. +- +-3. Fatal error: Failed to load PHP's XML Extension. +- http://www.php.net/manual/en/ref.xml.php +- +-Trouble Using MagpieRSS +- +-4. Warning: MagpieRSS: Failed to fetch example.com/index.rdf. +- (HTTP Error: Invalid protocol "") +- +-5. Warning: MagpieRSS: Failed to parse RSS file. +- (not well-formed (invalid token) at line 19, column 98) +- +-6. Warning: MagpieRSS: Failed to fetch http://localhost/rss/features.1-0.rss. +- (HTTP Response: HTTP/1.1 404 Not Found) +- +-If you would rather provide a custom error, see the COOKBOOK +-(http://magpierss.sf.net/cookbook.html) recipe 2. +- +-************************************************************************* +-1. Fatal error: Failed opening required '/path/to/script/rss_fetch.inc' +- (include_path='.:/usr/local/lib/php:/usr/local/lib/php/pear') +- +- This could mean that: +- +- a) PHP can't find the MagpieRSS files. +- b) PHP found them the MagpieRSS files, but can't read them. +- +- a. Telling PHP where to look for MagpieRSS file. +- +- This might mean your PHP program can't find the MagpieRSS libraries. +- Magpie relies on 4 include files, rss_fetch.inc, rss_parse.inc, +- rss_cache.inc, rss_util.inc, and for normal use you'll need all 4 (see the +- cookbook for exceptions). +- +- This can be fixed by making sure the MagpieRSS files are in your include +- path. +- +- If you can edit your include path (for example your on a shared host) then +- you need to replace: +- +- require_once('rss_fetch.inc'); +- +- -with- +- +- define('MAGPIE_DIR', '/path/to/magpierss/'); +- require_once(MAGPIE_DIR.'rss_fetch.inc'); +- +- b. PHP can't read the MagpieRSS files +- +- All PHP libraries need to be readable by your webserver. +- +- On Unix you can accomplish this with: +- +- chmod 755 rss_fetch.inc rss_parse.inc rss_cache.inc rss_util.inc +- +-************************************************************************* +-2. Cache couldn't make dir './cache'. +- +- MagpieRSS caches the results of fetched and parsed RSS to reduce the load on +- both your server, and the remote server providing the RSS. It does this by +- writing files to a cache directory. +- +- This error means the webserver doesn't have write access to the current +- directory. +- +- a. Make a webserver writeable cache directory +- +- Find the webserver's group. (on my system it is 'www') +- +- mkdir ./cache +- chgrp www directory_name +- chmod g+w directory_name +- +- (this is the best, and desired solution) +- +- b. Tell MagpieRSS to create the cache directory somewhere the webserver can +- write to. +- +- define('MAGPIE_CACHE_DIR', '/tmp/magpierss'); +- +- (this is not a great solution, and might have security considerations) +- +- c. Turn off cacheing. +- +- Magpie can work fine with cacheing, but it will be slower, and you might +- become a nuiance to the RSS provider, but it is an option. +- +- define('MAGPIE_CACHE_ON', 0); +- +- d. And lastly, do NOT +- +- chmod 777 ./cache +- +- Any of the above solutions are better then this. +- +- NOTE: If none of this works for you, let me know. I've got root, and a +- custom compiled Apache on almost any box I ever touch, so I can be a little +- out of touch with reality. But I won't know that if I don't feedback. +- +-************************************************************************* 3. +-3. Fatal error: Failed to load PHP's XML Extension. +- http://www.php.net/manual/en/ref.xml.php +- +- -or- +- +- Fatal error: Failed to create an instance of PHP's XML parser. +- http://www.php.net/manual/en/ref.xml.php +- +- Make sure your PHP was built with --with-xml +- +- This has been turned on by default for several versions of PHP, but it might +- be turned off in your build. +- +- See php.net for details on building and configuring PHP. +- +- +-************************************************************************* +-4. Warning: MagpieRSS: Failed to fetch index.rdf. +- (HTTP Error: Invalid protocol "") +- +- You need to put http:// in front of your the URL to your RSS feed +- +-************************************************************************* +-5. Warning: MagpieRSS: Failed to parse RSS file. +- (not well-formed (invalid token) at line 19, column 98) +- +- There is a problem with the RSS feed you are trying to read. +- MagpieRSS is an XML parser, and therefore can't parse RSS feed with invalid +- characters. Some RSS parser are based on regular expressions, and can +- parse invalid RSS but they have their own problems. +- +- You could try contacting the author of the RSS feed, and pointing them to +- the online RSS validator at: +- +- http://feeds.archive.org/validator/ +- +-************************************************************************* +-6. Warning: MagpieRSS: Failed to fetch http://example.com/index.rdf +- (HTTP Response: HTTP/1.1 404 Not Found) +- +- Its a 404! The RSS file ain't there. +- +- +diff --git a/html/includes/rss/cookbook b/html/includes/rss/cookbook +deleted file mode 100644 +index 45dda98..0000000 +--- a/html/includes/rss/cookbook ++++ /dev/null +@@ -1,125 +0,0 @@ +-MAGPIERSS RECIPES: Cooking with Corbies +- +- "Four and twenty blackbirds baked in a pie." +- +-1. LIMIT THE NUMBER OF HEADLINES(AKA ITEMS) RETURNED. +- +-PROBLEM: +- +-You want to display the 10 (or 3) most recent headlines, but the RSS feed +-contains 15. +- +-SOLUTION: +- +-$num_items = 10; +-$rss = fetch_rss($url); +- +-$items = array_slice($rss->items, 0, $num_items); +- +-DISCUSSION: +- +-Rather then trying to limit the number of items Magpie parses, a much simpler, +-and more flexible approach is to take a "slice" of the array of items. And +-array_slice() is smart enough to do the right thing if the feed has less items +-then $num_items. +- +-See: http://www.php.net/array_slice +- +- +-2. DISPLAY A CUSTOM ERROR MESSAGE IF SOMETHING GOES WRONG +- +-PROBLEM: +- +-You don't want Magpie's error messages showing up if something goes wrong. +- +-SOLUTION: +- +-# Magpie throws USER_WARNINGS only +-# so you can cloak these, by only showing ERRORs +-error_reporting(E_ERROR); +- +-# check the return value of fetch_rss() +- +-$rss = fetch_rss($url); +- +-if ( $rss ) { +-...display rss feed... +-} +-else { +- echo "An error occured! " . +- "Consider donating more $$$ for restoration of services." . +- "
Error Message: " . magpie_error(); +-} +- +-DISCUSSION: +- +-MagpieRSS triggers a warning in a number of circumstances. The 2 most common +-circumstances are: if the specified RSS file isn't properly formed (usually +-because it includes illegal HTML), or if Magpie can't download the remote RSS +-file, and there is no cached version. +- +-If you don't want your users to see these warnings change your error_reporting +-settings to only display ERRORs. Another option is to turn off display_error, +-so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages. +- +-You can do this with: +- +-ini_set('display_errors', 0); +- +-See: http://www.php.net/error_reporting, +- http://www.php.net/ini_set, +- http://www.php.net/manual/en/ref.errorfunc.php +- +-3. GENERATE A NEW RSS FEED +- +-PROBLEM: +- +-Create an RSS feed for other people to use. +- +-SOLUTION: +- +-Use Useful Inc's RSSWriter (http://usefulinc.com/rss/rsswriter/) +- +-DISCUSSION: +- +-An example of turning a Magpie parsed RSS object back into an RSS file is forth +-coming. In the meantime RSSWriter has great documentation. +- +-4. DISPLAY HEADLINES MORE RECENT THEN X DATE +- +-PROBLEM: +- +-You only want to display headlines that were published on, or after a certain +-date. +- +- +-SOLUTION: +- +-require 'rss_utils.inc'; +- +-# get all headlines published today +-$today = getdate(); +- +-# today, 12AM +-$date = mktime(0,0,0,$today['mon'], $today['mday'], $today['year']); +- +-$rss = fetch_rss($url); +- +-foreach ( $rss->items as $item ) { +- $published = parse_w3cdtf($item['dc']['date']); +- if ( $published >= $date ) { +- echo "Title: " . $item['title']; +- echo "Published: " . date("h:i:s A", $published); +- echo "

"; +- } +-} +- +-DISCUSSION: +- +-This recipe only works for RSS 1.0 feeds that include the field. +-(which is very good RSS style) +- +-parse_w3cdtf is defined in rss_utils.inc, and parses RSS style dates into Unix +-epoch seconds. +- +-See: http://www.php.net/manual/en/ref.datetime.php +diff --git a/html/includes/rss/extlib/Snoopy.class.inc b/html/includes/rss/extlib/Snoopy.class.inc +deleted file mode 100644 +index 3ddecba..0000000 +--- a/html/includes/rss/extlib/Snoopy.class.inc ++++ /dev/null +@@ -1,900 +0,0 @@ +- +-Copyright (c): 1999-2000 ispi, all rights reserved +-Version: 1.0 +- +- * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +- +-You may contact the author of Snoopy by e-mail at: +-monte@ispi.net +- +-Or, write to: +-Monte Ohrt +-CTO, ispi +-237 S. 70th suite 220 +-Lincoln, NE 68510 +- +-The latest version of Snoopy can be obtained from: +-http://snoopy.sourceforge.com +- +-*************************************************/ +- +-class Snoopy +-{ +- /**** Public variables ****/ +- +- /* user definable vars */ +- +- var $host = "www.php.net"; // host name we are connecting to +- var $port = 80; // port we are connecting to +- var $proxy_host = ""; // proxy host to use +- var $proxy_port = ""; // proxy port to use +- var $agent = "Snoopy v1.0"; // agent we masquerade as +- var $referer = ""; // referer info to pass +- var $cookies = array(); // array of cookies to pass +- // $cookies["username"]="joe"; +- var $rawheaders = array(); // array of raw headers to send +- // $rawheaders["Content-type"]="text/html"; +- +- var $maxredirs = 5; // http redirection depth maximum. 0 = disallow +- var $lastredirectaddr = ""; // contains address of last redirected address +- var $offsiteok = true; // allows redirection off-site +- var $maxframes = 0; // frame content depth maximum. 0 = disallow +- var $expandlinks = true; // expand links to fully qualified URLs. +- // this only applies to fetchlinks() +- // or submitlinks() +- var $passcookies = true; // pass set cookies back through redirects +- // NOTE: this currently does not respect +- // dates, domains or paths. +- +- var $user = ""; // user for http authentication +- var $pass = ""; // password for http authentication +- +- // http accept types +- var $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"; +- +- var $results = ""; // where the content is put +- +- var $error = ""; // error messages sent here +- var $response_code = ""; // response code returned from server +- var $headers = array(); // headers returned from server sent here +- var $maxlength = 500000; // max return data length (body) +- var $read_timeout = 0; // timeout on read operations, in seconds +- // supported only since PHP 4 Beta 4 +- // set to 0 to disallow timeouts +- var $timed_out = false; // if a read operation timed out +- var $status = 0; // http request status +- +- var $curl_path = "/usr/bin/curl"; +- // Snoopy will use cURL for fetching +- // SSL content if a full system path to +- // the cURL binary is supplied here. +- // set to false if you do not have +- // cURL installed. See http://curl.haxx.se +- // for details on installing cURL. +- // Snoopy does *not* use the cURL +- // library functions built into php, +- // as these functions are not stable +- // as of this Snoopy release. +- +- // send Accept-encoding: gzip? +- var $use_gzip = true; +- +- /**** Private variables ****/ +- +- var $_maxlinelen = 4096; // max line length (headers) +- +- var $_httpmethod = "GET"; // default http request method +- var $_httpversion = "HTTP/1.0"; // default http request version +- var $_submit_method = "POST"; // default submit method +- var $_submit_type = "application/x-www-form-urlencoded"; // default submit type +- var $_mime_boundary = ""; // MIME boundary for multipart/form-data submit type +- var $_redirectaddr = false; // will be set if page fetched is a redirect +- var $_redirectdepth = 0; // increments on an http redirect +- var $_frameurls = array(); // frame src urls +- var $_framedepth = 0; // increments on frame depth +- +- var $_isproxy = false; // set if using a proxy server +- var $_fp_timeout = 30; // timeout for socket connection +- +-/*======================================================================*\ +- Function: fetch +- Purpose: fetch the contents of a web page +- (and possibly other protocols in the +- future like ftp, nntp, gopher, etc.) +- Input: $URI the location of the page to fetch +- Output: $this->results the output text from the fetch +-\*======================================================================*/ +- +- function fetch($URI) +- { +- +- //preg_match("|^([^:]+)://([^:/]+)(:[\d]+)*(.*)|",$URI,$URI_PARTS); +- $URI_PARTS = parse_url($URI); +- if (!empty($URI_PARTS["user"])) +- $this->user = $URI_PARTS["user"]; +- if (!empty($URI_PARTS["pass"])) +- $this->pass = $URI_PARTS["pass"]; +- +- switch($URI_PARTS["scheme"]) +- { +- case "http": +- $this->host = $URI_PARTS["host"]; +- if(!empty($URI_PARTS["port"])) +- $this->port = $URI_PARTS["port"]; +- if($this->_connect($fp)) +- { +- if($this->_isproxy) +- { +- // using proxy, send entire URI +- $this->_httprequest($URI,$fp,$URI,$this->_httpmethod); +- } +- else +- { +- $path = $URI_PARTS["path"].(isset($URI_PARTS["query"]) ? "?".$URI_PARTS["query"] : ""); +- // no proxy, send only the path +- $this->_httprequest($path, $fp, $URI, $this->_httpmethod); +- } +- +- $this->_disconnect($fp); +- +- if($this->_redirectaddr) +- { +- /* url was redirected, check if we've hit the max depth */ +- if($this->maxredirs > $this->_redirectdepth) +- { +- // only follow redirect if it's on this site, or offsiteok is true +- if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok) +- { +- /* follow the redirect */ +- $this->_redirectdepth++; +- $this->lastredirectaddr=$this->_redirectaddr; +- $this->fetch($this->_redirectaddr); +- } +- } +- } +- +- if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0) +- { +- $frameurls = $this->_frameurls; +- $this->_frameurls = array(); +- +- while(list(,$frameurl) = each($frameurls)) +- { +- if($this->_framedepth < $this->maxframes) +- { +- $this->fetch($frameurl); +- $this->_framedepth++; +- } +- else +- break; +- } +- } +- } +- else +- { +- return false; +- } +- return true; +- break; +- case "https": +- if(!$this->curl_path || (!is_executable($this->curl_path))) { +- $this->error = "Bad curl ($this->curl_path), can't fetch HTTPS \n"; +- return false; +- } +- $this->host = $URI_PARTS["host"]; +- if(!empty($URI_PARTS["port"])) +- $this->port = $URI_PARTS["port"]; +- if($this->_isproxy) +- { +- // using proxy, send entire URI +- $this->_httpsrequest($URI,$URI,$this->_httpmethod); +- } +- else +- { +- $path = $URI_PARTS["path"].($URI_PARTS["query"] ? "?".$URI_PARTS["query"] : ""); +- // no proxy, send only the path +- $this->_httpsrequest($path, $URI, $this->_httpmethod); +- } +- +- if($this->_redirectaddr) +- { +- /* url was redirected, check if we've hit the max depth */ +- if($this->maxredirs > $this->_redirectdepth) +- { +- // only follow redirect if it's on this site, or offsiteok is true +- if(preg_match("|^http://".preg_quote($this->host)."|i",$this->_redirectaddr) || $this->offsiteok) +- { +- /* follow the redirect */ +- $this->_redirectdepth++; +- $this->lastredirectaddr=$this->_redirectaddr; +- $this->fetch($this->_redirectaddr); +- } +- } +- } +- +- if($this->_framedepth < $this->maxframes && count($this->_frameurls) > 0) +- { +- $frameurls = $this->_frameurls; +- $this->_frameurls = array(); +- +- while(list(,$frameurl) = each($frameurls)) +- { +- if($this->_framedepth < $this->maxframes) +- { +- $this->fetch($frameurl); +- $this->_framedepth++; +- } +- else +- break; +- } +- } +- return true; +- break; +- default: +- // not a valid protocol +- $this->error = 'Invalid protocol "'.$URI_PARTS["scheme"].'"\n'; +- return false; +- break; +- } +- return true; +- } +- +- +- +-/*======================================================================*\ +- Private functions +-\*======================================================================*/ +- +- +-/*======================================================================*\ +- Function: _striplinks +- Purpose: strip the hyperlinks from an html document +- Input: $document document to strip. +- Output: $match an array of the links +-\*======================================================================*/ +- +- function _striplinks($document) +- { +- preg_match_all("'<\s*a\s+.*href\s*=\s* # find ]+)) # if quote found, match up to next matching +- # quote, otherwise match up to next space +- 'isx",$document,$links); +- +- +- // catenate the non-empty matches from the conditional subpattern +- +- while(list($key,$val) = each($links[2])) +- { +- if(!empty($val)) +- $match[] = $val; +- } +- +- while(list($key,$val) = each($links[3])) +- { +- if(!empty($val)) +- $match[] = $val; +- } +- +- // return the links +- return $match; +- } +- +-/*======================================================================*\ +- Function: _stripform +- Purpose: strip the form elements from an html document +- Input: $document document to strip. +- Output: $match an array of the links +-\*======================================================================*/ +- +- function _stripform($document) +- { +- preg_match_all("'<\/?(FORM|INPUT|SELECT|TEXTAREA|(OPTION))[^<>]*>(?(2)(.*(?=<\/?(option|select)[^<>]*>[\r\n]*)|(?=[\r\n]*))|(?=[\r\n]*))'Usi",$document,$elements); +- +- // catenate the matches +- $match = implode("\r\n",$elements[0]); +- +- // return the links +- return $match; +- } +- +- +- +-/*======================================================================*\ +- Function: _striptext +- Purpose: strip the text from an html document +- Input: $document document to strip. +- Output: $text the resulting text +-\*======================================================================*/ +- +- function _striptext($document) +- { +- +- // I didn't use preg eval (//e) since that is only available in PHP 4.0. +- // so, list your entities one by one here. I included some of the +- // more common ones. +- +- $search = array("']*?>.*?'si", // strip out javascript +- "'<[\/\!]*?[^<>]*?>'si", // strip out html tags +- "'([\r\n])[\s]+'", // strip out white space +- "'&(quote|#34);'i", // replace html entities +- "'&(amp|#38);'i", +- "'&(lt|#60);'i", +- "'&(gt|#62);'i", +- "'&(nbsp|#160);'i", +- "'&(iexcl|#161);'i", +- "'&(cent|#162);'i", +- "'&(pound|#163);'i", +- "'&(copy|#169);'i" +- ); +- $replace = array( "", +- "", +- "\\1", +- "\"", +- "&", +- "<", +- ">", +- " ", +- chr(161), +- chr(162), +- chr(163), +- chr(169)); +- +- $text = preg_replace($search,$replace,$document); +- +- return $text; +- } +- +-/*======================================================================*\ +- Function: _expandlinks +- Purpose: expand each link into a fully qualified URL +- Input: $links the links to qualify +- $URI the full URI to get the base from +- Output: $expandedLinks the expanded links +-\*======================================================================*/ +- +- function _expandlinks($links,$URI) +- { +- +- preg_match("/^[^\?]+/",$URI,$match); +- +- $match = preg_replace("|/[^\/\.]+\.[^\/\.]+$|","",$match[0]); +- +- $search = array( "|^http://".preg_quote($this->host)."|i", +- "|^(?!http://)(\/)?(?!mailto:)|i", +- "|/\./|", +- "|/[^\/]+/\.\./|" +- ); +- +- $replace = array( "", +- $match."/", +- "/", +- "/" +- ); +- +- $expandedLinks = preg_replace($search,$replace,$links); +- +- return $expandedLinks; +- } +- +-/*======================================================================*\ +- Function: _httprequest +- Purpose: go get the http data from the server +- Input: $url the url to fetch +- $fp the current open file pointer +- $URI the full URI +- $body body contents to send if any (POST) +- Output: +-\*======================================================================*/ +- +- function _httprequest($url,$fp,$URI,$http_method,$content_type="",$body="") +- { +- if($this->passcookies && $this->_redirectaddr) +- $this->setcookies(); +- +- $URI_PARTS = parse_url($URI); +- if(empty($url)) +- $url = "/"; +- $headers = $http_method." ".$url." ".$this->_httpversion."\r\n"; +- if(!empty($this->agent)) +- $headers .= "User-Agent: ".$this->agent."\r\n"; +- if(!empty($this->host) && !isset($this->rawheaders['Host'])) +- $headers .= "Host: ".$this->host."\r\n"; +- if(!empty($this->accept)) +- $headers .= "Accept: ".$this->accept."\r\n"; +- +- if($this->use_gzip) { +- // make sure PHP was built with --with-zlib +- // and we can handle gzipp'ed data +- if ( function_exists(gzinflate) ) { +- $headers .= "Accept-encoding: gzip\r\n"; +- } +- else { +- trigger_error( +- "use_gzip is on, but PHP was built without zlib support.". +- " Requesting file(s) without gzip encoding.", +- E_USER_NOTICE); +- } +- } +- +- if(!empty($this->referer)) +- $headers .= "Referer: ".$this->referer."\r\n"; +- if(!empty($this->cookies)) +- { +- if(!is_array($this->cookies)) +- $this->cookies = (array)$this->cookies; +- +- reset($this->cookies); +- if ( count($this->cookies) > 0 ) { +- $cookie_headers .= 'Cookie: '; +- foreach ( $this->cookies as $cookieKey => $cookieVal ) { +- $cookie_headers .= $cookieKey."=".urlencode($cookieVal)."; "; +- } +- $headers .= substr($cookie_headers,0,-2) . "\r\n"; +- } +- } +- if(!empty($this->rawheaders)) +- { +- if(!is_array($this->rawheaders)) +- $this->rawheaders = (array)$this->rawheaders; +- while(list($headerKey,$headerVal) = each($this->rawheaders)) +- $headers .= $headerKey.": ".$headerVal."\r\n"; +- } +- if(!empty($content_type)) { +- $headers .= "Content-type: $content_type"; +- if ($content_type == "multipart/form-data") +- $headers .= "; boundary=".$this->_mime_boundary; +- $headers .= "\r\n"; +- } +- if(!empty($body)) +- $headers .= "Content-length: ".strlen($body)."\r\n"; +- if(!empty($this->user) || !empty($this->pass)) +- $headers .= "Authorization: BASIC ".base64_encode($this->user.":".$this->pass)."\r\n"; +- +- $headers .= "\r\n"; +- +- // set the read timeout if needed +- if ($this->read_timeout > 0) +- socket_set_timeout($fp, $this->read_timeout); +- $this->timed_out = false; +- +- fwrite($fp,$headers.$body,strlen($headers.$body)); +- +- $this->_redirectaddr = false; +- unset($this->headers); +- +- // content was returned gzip encoded? +- $is_gzipped = false; +- +- while($currentHeader = fgets($fp,$this->_maxlinelen)) +- { +- if ($this->read_timeout > 0 && $this->_check_timeout($fp)) +- { +- $this->status=-100; +- return false; +- } +- +- // if($currentHeader == "\r\n") +- if(preg_match("/^\r?\n$/", $currentHeader) ) +- break; +- +- // if a header begins with Location: or URI:, set the redirect +- if(preg_match("/^(Location:|URI:)/i",$currentHeader)) +- { +- // get URL portion of the redirect +- preg_match("/^(Location:|URI:)\s+(.*)/",chop($currentHeader),$matches); +- // look for :// in the Location header to see if hostname is included +- if(!preg_match("|\:\/\/|",$matches[2])) +- { +- // no host in the path, so prepend +- $this->_redirectaddr = $URI_PARTS["scheme"]."://".$this->host.":".$this->port; +- // eliminate double slash +- if(!preg_match("|^/|",$matches[2])) +- $this->_redirectaddr .= "/".$matches[2]; +- else +- $this->_redirectaddr .= $matches[2]; +- } +- else +- $this->_redirectaddr = $matches[2]; +- } +- +- if(preg_match("|^HTTP/|",$currentHeader)) +- { +- if(preg_match("|^HTTP/[^\s]*\s(.*?)\s|",$currentHeader, $status)) +- { +- $this->status= $status[1]; +- } +- $this->response_code = $currentHeader; +- } +- +- if (preg_match("/Content-Encoding: gzip/", $currentHeader) ) { +- $is_gzipped = true; +- } +- +- $this->headers[] = $currentHeader; +- } +- +- # $results = fread($fp, $this->maxlength); +- $results = ""; +- while ( $data = fread($fp, $this->maxlength) ) { +- $results .= $data; +- if ( +- strlen($results) > $this->maxlength ) { +- break; +- } +- } +- +- // gunzip +- if ( $is_gzipped ) { +- // per http://www.php.net/manual/en/function.gzencode.php +- $results = substr($results, 10); +- $results = gzinflate($results); +- } +- +- if ($this->read_timeout > 0 && $this->_check_timeout($fp)) +- { +- $this->status=-100; +- return false; +- } +- +- // check if there is a a redirect meta tag +- +- if(preg_match("']*?content[\s]*=[\s]*[\"\']?\d+;[\s]+URL[\s]*=[\s]*([^\"\']*?)[\"\']?>'i",$results,$match)) +- { +- $this->_redirectaddr = $this->_expandlinks($match[1],$URI); +- } +- +- // have we hit our frame depth and is there frame src to fetch? +- if(($this->_framedepth < $this->maxframes) && preg_match_all("']+)'i",$results,$match)) +- { +- $this->results[] = $results; +- for($x=0; $x_frameurls[] = $this->_expandlinks($match[1][$x],$URI_PARTS["scheme"]."://".$this->host); +- } +- // have we already fetched framed content? +- elseif(is_array($this->results)) +- $this->results[] = $results; +- // no framed content +- else +- $this->results = $results; +- +- return true; +- } +- +-/*======================================================================*\ +- Function: _httpsrequest +- Purpose: go get the https data from the server using curl +- Input: $url the url to fetch +- $URI the full URI +- $body body contents to send if any (POST) +- Output: +-\*======================================================================*/ +- +- function _httpsrequest($url,$URI,$http_method,$content_type="",$body="") +- { +- if($this->passcookies && $this->_redirectaddr) +- $this->setcookies(); +- +- $headers = array(); +- +- $URI_PARTS = parse_url($URI); +- if(empty($url)) +- $url = "/"; +- // GET ... header not needed for curl +- //$headers[] = $http_method." ".$url." ".$this->_httpversion; +- if(!empty($this->agent)) +- $headers[] = "User-Agent: ".$this->agent; +- if(!empty($this->host)) +- $headers[] = "Host: ".$this->host; +- if(!empty($this->accept)) +- $headers[] = "Accept: ".$this->accept; +- if(!empty($this->referer)) +- $headers[] = "Referer: ".$this->referer; +- if(!empty($this->cookies)) +- { +- if(!is_array($this->cookies)) +- $this->cookies = (array)$this->cookies; +- +- reset($this->cookies); +- if ( count($this->cookies) > 0 ) { +- $cookie_str = 'Cookie: '; +- foreach ( $this->cookies as $cookieKey => $cookieVal ) { +- $cookie_str .= $cookieKey."=".urlencode($cookieVal)."; "; +- } +- $headers[] = substr($cookie_str,0,-2); +- } +- } +- if(!empty($this->rawheaders)) +- { +- if(!is_array($this->rawheaders)) +- $this->rawheaders = (array)$this->rawheaders; +- while(list($headerKey,$headerVal) = each($this->rawheaders)) +- $headers[] = $headerKey.": ".$headerVal; +- } +- if(!empty($content_type)) { +- if ($content_type == "multipart/form-data") +- $headers[] = "Content-type: $content_type; boundary=".$this->_mime_boundary; +- else +- $headers[] = "Content-type: $content_type"; +- } +- if(!empty($body)) +- $headers[] = "Content-length: ".strlen($body); +- if(!empty($this->user) || !empty($this->pass)) +- $headers[] = "Authorization: BASIC ".base64_encode($this->user.":".$this->pass); +- +- for($curr_header = 0; $curr_header < count($headers); $curr_header++) { +- $cmdline_params .= " -H \"".$headers[$curr_header]."\""; +- } +- +- if(!empty($body)) +- $cmdline_params .= " -d \"$body\""; +- +- if($this->read_timeout > 0) +- $cmdline_params .= " -m ".$this->read_timeout; +- +- $headerfile = uniqid(time()); +- +- # accept self-signed certs +- $cmdline_params .= " -k"; +- exec($this->curl_path." -D \"/tmp/$headerfile\"".escapeshellcmd($cmdline_params)." ".escapeshellcmd($URI),$results,$return); +- +- if($return) +- { +- $this->error = "Error: cURL could not retrieve the document, error $return."; +- return false; +- } +- +- +- $results = implode("\r\n",$results); +- +- $result_headers = file("/tmp/$headerfile"); +- +- $this->_redirectaddr = false; +- unset($this->headers); +- +- for($currentHeader = 0; $currentHeader < count($result_headers); $currentHeader++) +- { +- +- // if a header begins with Location: or URI:, set the redirect +- if(preg_match("/^(Location: |URI: )/i",$result_headers[$currentHeader])) +- { +- // get URL portion of the redirect +- preg_match("/^(Location: |URI:)(.*)/",chop($result_headers[$currentHeader]),$matches); +- // look for :// in the Location header to see if hostname is included +- if(!preg_match("|\:\/\/|",$matches[2])) +- { +- // no host in the path, so prepend +- $this->_redirectaddr = $URI_PARTS["scheme"]."://".$this->host.":".$this->port; +- // eliminate double slash +- if(!preg_match("|^/|",$matches[2])) +- $this->_redirectaddr .= "/".$matches[2]; +- else +- $this->_redirectaddr .= $matches[2]; +- } +- else +- $this->_redirectaddr = $matches[2]; +- } +- +- if(preg_match("|^HTTP/|",$result_headers[$currentHeader])) +- { +- $this->response_code = $result_headers[$currentHeader]; +- if(preg_match("|^HTTP/[^\s]*\s(.*?)\s|",$this->response_code, $match)) +- { +- $this->status= $match[1]; +- } +- } +- $this->headers[] = $result_headers[$currentHeader]; +- } +- +- // check if there is a a redirect meta tag +- +- if(preg_match("']*?content[\s]*=[\s]*[\"\']?\d+;[\s]+URL[\s]*=[\s]*([^\"\']*?)[\"\']?>'i",$results,$match)) +- { +- $this->_redirectaddr = $this->_expandlinks($match[1],$URI); +- } +- +- // have we hit our frame depth and is there frame src to fetch? +- if(($this->_framedepth < $this->maxframes) && preg_match_all("']+)'i",$results,$match)) +- { +- $this->results[] = $results; +- for($x=0; $x_frameurls[] = $this->_expandlinks($match[1][$x],$URI_PARTS["scheme"]."://".$this->host); +- } +- // have we already fetched framed content? +- elseif(is_array($this->results)) +- $this->results[] = $results; +- // no framed content +- else +- $this->results = $results; +- +- unlink("/tmp/$headerfile"); +- +- return true; +- } +- +-/*======================================================================*\ +- Function: setcookies() +- Purpose: set cookies for a redirection +-\*======================================================================*/ +- +- function setcookies() +- { +- for($x=0; $xheaders); $x++) +- { +- if(preg_match("/^set-cookie:[\s]+([^=]+)=([^;]+)/i", $this->headers[$x],$match)) +- $this->cookies[$match[1]] = $match[2]; +- } +- } +- +- +-/*======================================================================*\ +- Function: _check_timeout +- Purpose: checks whether timeout has occurred +- Input: $fp file pointer +-\*======================================================================*/ +- +- function _check_timeout($fp) +- { +- if ($this->read_timeout > 0) { +- $fp_status = socket_get_status($fp); +- if ($fp_status["timed_out"]) { +- $this->timed_out = true; +- return true; +- } +- } +- return false; +- } +- +-/*======================================================================*\ +- Function: _connect +- Purpose: make a socket connection +- Input: $fp file pointer +-\*======================================================================*/ +- +- function _connect(&$fp) +- { +- if(!empty($this->proxy_host) && !empty($this->proxy_port)) +- { +- $this->_isproxy = true; +- $host = $this->proxy_host; +- $port = $this->proxy_port; +- } +- else +- { +- $host = $this->host; +- $port = $this->port; +- } +- +- $this->status = 0; +- +- if($fp = fsockopen( +- $host, +- $port, +- $errno, +- $errstr, +- $this->_fp_timeout +- )) +- { +- // socket connection succeeded +- +- return true; +- } +- else +- { +- // socket connection failed +- $this->status = $errno; +- switch($errno) +- { +- case -3: +- $this->error="socket creation failed (-3)"; +- case -4: +- $this->error="dns lookup failure (-4)"; +- case -5: +- $this->error="connection refused or timed out (-5)"; +- default: +- $this->error="connection failed (".$errno.")"; +- } +- return false; +- } +- } +-/*======================================================================*\ +- Function: _disconnect +- Purpose: disconnect a socket connection +- Input: $fp file pointer +-\*======================================================================*/ +- +- function _disconnect($fp) +- { +- return(fclose($fp)); +- } +- +- +-/*======================================================================*\ +- Function: _prepare_post_body +- Purpose: Prepare post body according to encoding type +- Input: $formvars - form variables +- $formfiles - form upload files +- Output: post body +-\*======================================================================*/ +- +- function _prepare_post_body($formvars, $formfiles) +- { +- settype($formvars, "array"); +- settype($formfiles, "array"); +- +- if (count($formvars) == 0 && count($formfiles) == 0) +- return; +- +- switch ($this->_submit_type) { +- case "application/x-www-form-urlencoded": +- reset($formvars); +- while(list($key,$val) = each($formvars)) { +- if (is_array($val) || is_object($val)) { +- while (list($cur_key, $cur_val) = each($val)) { +- $postdata .= urlencode($key)."[]=".urlencode($cur_val)."&"; +- } +- } else +- $postdata .= urlencode($key)."=".urlencode($val)."&"; +- } +- break; +- +- case "multipart/form-data": +- $this->_mime_boundary = "Snoopy".md5(uniqid(microtime())); +- +- reset($formvars); +- while(list($key,$val) = each($formvars)) { +- if (is_array($val) || is_object($val)) { +- while (list($cur_key, $cur_val) = each($val)) { +- $postdata .= "--".$this->_mime_boundary."\r\n"; +- $postdata .= "Content-Disposition: form-data; name=\"$key\[\]\"\r\n\r\n"; +- $postdata .= "$cur_val\r\n"; +- } +- } else { +- $postdata .= "--".$this->_mime_boundary."\r\n"; +- $postdata .= "Content-Disposition: form-data; name=\"$key\"\r\n\r\n"; +- $postdata .= "$val\r\n"; +- } +- } +- +- reset($formfiles); +- while (list($field_name, $file_names) = each($formfiles)) { +- settype($file_names, "array"); +- while (list(, $file_name) = each($file_names)) { +- if (!is_readable($file_name)) continue; +- +- $fp = fopen($file_name, "r"); +- $file_content = fread($fp, filesize($file_name)); +- fclose($fp); +- $base_name = basename($file_name); +- +- $postdata .= "--".$this->_mime_boundary."\r\n"; +- $postdata .= "Content-Disposition: form-data; name=\"$field_name\"; filename=\"$base_name\"\r\n\r\n"; +- $postdata .= "$file_content\r\n"; +- } +- } +- $postdata .= "--".$this->_mime_boundary."--\r\n"; +- break; +- } +- +- return $postdata; +- } +-} +- +-?> +diff --git a/html/includes/rss/htdocs/cookbook.html b/html/includes/rss/htdocs/cookbook.html +deleted file mode 100644 +index 2a18e74..0000000 +--- a/html/includes/rss/htdocs/cookbook.html ++++ /dev/null +@@ -1,237 +0,0 @@ +- +- +- Magie RSS Recipes: Simple PHP RSS How To +- +- +- +-

+-

MagpieRSS Recipes: Cooking with Corbies

+- +-

"Four and twenty blackbirds baked in a +-pie."

+-

+-

+-

    +-
  1. Limit the Number of Headlines(aka Items) Returned
  2. +-
  3. Display a Custom Error Message if Something Goes +-Wrong
  4. +-
  5. Generate a New RSS Feed
  6. +-
  7. Display Headlines More Recent then X Date
  8. +-
  9. Parse a Local File Containing RSS
  10. +- +-
+-

+- +-

1. Limit the Number of Headlines(aka Items) Returned.

+- +-

Problem:

+- +-You want to display the 10 (or 3 or whatever) most recent headlines, but the RSS feed +-contains 15. +- +-

Solution:

+- +-
+-$num_items = 10;
+-$rss = fetch_rss($url);
+-
+-$items = array_slice($rss->items, 0, $num_items);
+-
+-foreach ( $items as $item ) {
+-
+-

Discussion:

+- +-Rather then trying to limit the number of items Magpie parses, a much simpler, +-and more flexible approach is to take a "slice" of the array of items. And +-array_slice() is smart enough to do the right thing if the feed has less items +-then $num_items. +- +-

See:

http://www.php.net/array_slice +-

+- +-

2. Display a Custom Error Message if Something Goes Wrong

+- +-

Problem:

+- +-You don't want Magpie's error messages showing up if something goes wrong. +- +-

Solution:

+-
+-# Magpie throws USER_WARNINGS only
+-# so you can cloak these, by only showing ERRORs
+-error_reporting(E_ERROR);
+-
+-# check the return value of fetch_rss()
+-
+-$rss = fetch_rss($url);
+-
+-if ( $rss ) {
+-...display rss feed...
+-}
+-else {
+-   echo "An error occured!  " .
+-        "Consider donating more $$$ for restoration of services." .
+-        "<br>Error Message: " . magpie_error();
+-}
+-
+-

Discussion:

+- +-MagpieRSS triggers a warning in a number of circumstances. The 2 most common +-circumstances are: if the specified RSS file isn't properly formed (usually +-because it includes illegal HTML), or if Magpie can't download the remote RSS +-file, and there is no cached version. +- +-If you don't want your users to see these warnings change your error_reporting +-settings to only display ERRORs.
+-Another option is to turn off display_error, +-so that WARNINGs, and NOTICEs still go to the error_log but not to the webpages. +- +-You can do this with: +- +-
+-# you can also do this in your php.ini file
+-ini_set('display_errors', 0);
+-
+- +-

See:

+-http://www.php.net/error_reporting,
+-http://www.php.net/ini_set,
+-http://www.php.net/manual/en/ref.errorfunc.php
+- +-

3. Generate a New RSS Feed

+- +-

Problem:

+- +-Create an RSS feed for other people to use. +- +-

Solution:

+- +-Use Useful Inc's RSSWriter. +- +-

Discussion:

+- +-An example of turning a Magpie parsed RSS object back into an RSS file is +-forthcoming. In the meantime RSSWriter is well documented. +- +-

4. Display Headlines More Recent then X Date

+- +-

Problem:

+- +-You only want to display headlines that were published on, or after a certain +-date. +- +- +-

Solution:

+-
+-require_once('rss_utils.inc');
+-
+-# get all headlines published today
+-$today = getdate();
+-
+-# today, 12AM
+-$date = mktime(0,0,0,$today['mon'], $today['mday'], $today['year']);
+-
+-$rss = fetch_rss($url);
+-
+-foreach ( $rss->items as $item ) {
+-   $published = parse_w3cdtf($item['dc']['date']);
+-   if ( $published >= $date ) {
+-        echo "Title: " . $item['title'];
+-        echo "Published: " . date("h:i:s A", $published);
+-        echo "<p>";
+-    }
+-}
+-
+-

Discussion:

+- +-This recipe only works for RSS 1.0 feeds that include the field. +-(which is very good RSS style)
+-parse_w3cdtf() is defined in +-rss_utils.inc, and parses RSS style dates into Unix epoch +-seconds. +- +-

See:

+-http://www.php.net/manual/en/ref.datetime.php +- +- +-

5. Parse a Local File Containing RSS

+-

Problem:

+-MagpieRSS provides fetch_rss() which takes a URL and returns a +-parsed RSS object, but what if you want to parse a file stored locally that +-doesn't have a URL? +- +-

Solution

+-
+-require_once('rss_parse.inc');
+-
+-$rss_file = 'some_rss_file.rdf';
+-$rss_string = read_file($rss_file);
+-$rss = new MagpieRSS( $rss_string );
+-
+-if ( $rss and !$rss->ERROR) {
+-...display rss...
+-}
+-else {
+-    echo "Error: " . $rss->ERROR;
+-}
+-
+-# efficiently read a file into a string
+-# in php >= 4.3.0 you can simply use file_get_contents()
+-#
+-function read_file($filename) {
+-    $fh = fopen($filename, 'r') or die($php_errormsg);
+-    $rss_string = fread($fh, filesize($filename) );
+-    fclose($fh);
+-    return $rss_string;
+-}
+-
+- +-

Discussion

+-Here we are using MagpieRSS's RSS parser directly without the convience wrapper +-of fetch_rss(). We read the contents of the RSS file into a +-string, and pass it to the parser constructor. Notice also that error handling +-is subtly different. +- +-

See:

+-http://www.php.net/manual/en/ref.filesystem.php,
+-http://www.php.net/manual/en/language.oop.php +- +- +- +- +- +diff --git a/html/includes/rss/htdocs/index.html b/html/includes/rss/htdocs/index.html +deleted file mode 100644 +index e6b24b5..0000000 +--- a/html/includes/rss/htdocs/index.html ++++ /dev/null +@@ -1,419 +0,0 @@ +- +- +- Magpie RSS - PHP RSS Parser +- +- +- +- +- +-

MagpieRSS

+-

+-

MagpieRSS provides an XML-based (expat) RSS parser in PHP.

+-

+- MagpieRSS is compatible with RSS .9 through RSS 1.0, and supports the +- RSS 1.0's modules. (with a few exceptions) +-

+-

+- +-

News!

+-
    +- +-
  • +- MagpieRSS +-0.51 Released +- +- +-
  • +- +-
  • +- Feed On Feeds Uses Magpie +-
      +-
    • server based PHP RSS aggregator built with MagpieRSS
    • +-
    • easy to install, easy to use.
    • +-
    +- +-
  • +- +- +-
  • +- MagpieRSS +-0.5 Released +-
      +-
    • supports transparent HTTP gzip content negotiation for reduced bandwidth usage
    • +-
    • quashed some undefined index notices
    • +-
    +- +-
  • +- +- +-
  • +- MagpieRSS +-0.46 Released +-
      +-
    • minor release, more error handling clean up
    • +-
    • documentation fixes, simpler example
    • +-
    • new trouble shooting guide for installation and usage problems +-
    +- +-
  • +- +-
  • +- Magpie News as RSS +-
      +-
    • releases, bug fixes, releated stories as an RSS feed
    • +-
    +- +-
  • +- +- +-
  • +- MagpieRSS +-Cookbook: Simple PHP RSS How Tos +-
      +-
    • answers some of the most frequently asked Magpie questions
    • +-
    • feedback, suggestions, requests, recipes welcome
    • +-
    +- +-
  • +- +-
  • +- MagpieRSS 0.4 Released! +-
      +-
    • improved error handling, more flexibility for script authors, +-backwards compatible
    • +-
    • new and better examples! including using MagpieRSS and Smarty
    • +-
    • new Smarty plugin for RSS date parsing
    • +-
    +-
    +-
  • +- +-
+-

+-

+- +-

Why?

+- I wrote MagpieRSS out of a frustration with the limitations of existing +- solutions. In particular many of the existing PHP solutions seemed to: +-
    +-
  • use a parser based on regular expressions, making for an inherently +- fragile solution +-
  • only support early versions of RSS +-
  • discard all the interesting information besides item title, description, +- and link. +-
  • not build proper separation between parsing the RSS and displaying it. +-
+- In particular I failed to find any PHP RSS parsers that could sufficiently +- parse RSS 1.0 feeds, to be useful on the RSS based event feeds we generate +- at Protest.net. +-

+-

+- +-

Features

+- +-
    +-
  • +-

    Easy to Use

    +- As simple as: +-
    +-require('rss_fetch.inc');
    +-$rss = fetch_rss($url);
    +-
    +- +-
  • +-
  • +-

    Parses RSS 0.9 - RSS 1.0

    +- +- Parses most RSS formats, including support for +- 1.0 modules and limited +- namespace support. RSS is packed into convenient data structures; easy to +- use in PHP, and appropriate for passing to a templating system, like +- Smarty. +-
  • +-
  • +-

    Integrated Object Cache

    +- +- Caching the parsed RSS means that the 2nd request is fast, and that +-including the rss_fetch call in your PHP page won't destroy your performance, +-and force you to reply on an external cron job. And it happens transparently. +- +-
  • +-
  • +-

    HTTP Conditional GETs

    +- +- Save bandwidth and speed up download times with intelligent use of +- Last-Modified and ETag.
    See HTTP Conditional Get for RSS Hackers +-
  • +- +-
  • Configurable

    +- +- Makes extensive use of constants to allow overriding default behaviour, and +- installation on shared hosts. +-
  • +-
  • Modular

    +-
      +-
    • rss_fetch.inc - wraps a simple interface (fetch_rss()) +- around the library. +-
    • rss_parse.inc - provides the RSS parser, and the RSS object +-
    • rss_cache.inc - a simple (no GC) object cache, optimized for RSS objects +-
    • rss_utils.inc - utility functions for working with RSS. currently +- provides parse_w3cdtf(), for parsing W3CDTF into epoch seconds. +-
    +-
+- +- +-

+-

+- +-

Magpie's approach to parsing RSS

+- +- Magpie takes a naive, and inclusive approach. Absolutely +- non-validating, as long as the RSS feed is well formed, Magpie will +- cheerfully parse new, and never before seen tags in your RSS feeds. +-

+-

+- This makes it very simple support the varied versions of RSS simply, but +- forces the consumer of a RSS feed to be cognizant of how it is +- structured.(at least if you want to do something fancy) +-

+-

+- Magpie parses a RSS feed into a simple object, with 4 fields: +- channel, items, image, and +- textinput. +-

+-

+-

channel

+- $rss->channel contains key-value pairs of all tags, without +- nested tags, found between the root tag (<rdf:RDF>, or <rss>) +- and the end of the document. +-

+-

+-

items

+- $rss->items is an array of associative arrays, each one +- describing a single item. An example that looks like: +-
+-<item rdf:about="http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257">
+-<title>Weekly Peace Vigil</title>
+-<link>http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257</link>
+-<description>Wear a white ribbon</description>
+-<dc:subject>Peace</dc:subject>
+-<ev:startdate>2002-06-01T11:00:00</ev:startdate>
+-<ev:location>Northampton, MA</ev:location>
+-<ev:enddate>2002-06-01T12:00:00</ev:enddate>
+-<ev:type>Protest</ev:type>
+-</item>
+-	

+- Is parsed, and pushed on the $rss->items array as: +-

+-array(
+-	title => 'Weekly Peace Vigil',
+-	link => 'http://protest.net/NorthEast/calendrome.cgi?span=event&ID=210257',
+-	description => 'Wear a white ribbon',
+-	dc => array (
+-			subject => 'Peace'
+-		),
+-	ev => array (
+-		startdate => '2002-06-01T11:00:00',
+-		enddate => '2002-06-01T12:00:00',
+-		type => 'Protest',
+-		location => 'Northampton, MA'
+-	)
+-);
+-
+-

+-

+-

image and textinput

+-$rss->image and $rss-textinput are associative arrays +-including name-value pairs for anything found between the respective parent +-tags. +-

+-

+- +-

Usage Examples:

+- +-A very simple example would be: +-
+-require_once 'rss_fetch.inc';
+-
+-$url = 'http://magpie.sf.net/samples/imc.1-0.rdf';
+-$rss = fetch_rss($url);
+-
+-echo "Site: ", $rss->channel['title'], "<br>\n";
+-foreach ($rss->items as $item ) {
+-	$title = $item[title];
+-	$url   = $item[link];
+-	echo "<a href=$url>$title</a></li><br>\n";
+-}
+-
+-More soon....in the meantime you can check out a +-cool tool built with +-MagpieRSS, version 0.1. +-

+-

+- +-

Todos

+-

RSS Parser

+-
    +-
  • Swap in a smarter parser that includes optional +- support for validation, and required fields.
  • +- +-
  • Support RSS 2.0 (as much as I'm annoyed by it)
  • +- +-
  • Improve support for modules that rely on attributes
  • +-
+- +-

RSS Cache

+-
    +-
  • Light-weight garbage collection +-
+- +-

Fetch RSS

+- +-

Misc

+-
    +-
  • More examples
  • +-
  • A test suite
  • +-
  • RSS generation, perhaps with RSSwriter? +-
  • +-
+- +-

+-

+-

RSS Resources

+- . +-

+-

License and Contact Info

+-Magpie is distributed under the GPL license... +-

+-coded by: kellan (at) protest.net, feedback is always appreciated. +-

+-SourceForge.net Logo +- +- +- +diff --git a/html/includes/rss/rss_cache.inc b/html/includes/rss/rss_cache.inc +deleted file mode 100644 +index b8d436c..0000000 +--- a/html/includes/rss/rss_cache.inc ++++ /dev/null +@@ -1,200 +0,0 @@ +- +- * Version: 0.51 +- * License: GPL +- * +- * The lastest version of MagpieRSS can be obtained from: +- * http://magpierss.sourceforge.net +- * +- * For questions, help, comments, discussion, etc., please join the +- * Magpie mailing list: +- * http://lists.sourceforge.net/lists/listinfo/magpierss-general +- * +- */ +- +-class RSSCache { +- var $BASE_CACHE = './cache'; // where the cache files are stored +- var $MAX_AGE = 3600; // when are files stale, default one hour +- var $ERROR = ""; // accumulate error messages +- +- function RSSCache ($base='', $age='') { +- if ( $base ) { +- $this->BASE_CACHE = $base; +- } +- if ( $age ) { +- $this->MAX_AGE = $age; +- } +- +- // attempt to make the cache directory +- if ( ! file_exists( $this->BASE_CACHE ) ) { +- $status = @mkdir( $this->BASE_CACHE, 0755 ); +- +- // if make failed +- if ( ! $status ) { +- $this->error( +- "Cache couldn't make dir '" . $this->BASE_CACHE . "'." +- ); +- } +- } +- } +- +-/*=======================================================================*\ +- Function: set +- Purpose: add an item to the cache, keyed on url +- Input: url from wich the rss file was fetched +- Output: true on sucess +-\*=======================================================================*/ +- function set ($url, $rss) { +- $this->ERROR = ""; +- $cache_file = $this->file_name( $url ); +- $fp = @fopen( $cache_file, 'w' ); +- +- if ( ! $fp ) { +- $this->error( +- "Cache unable to open file for writing: $cache_file" +- ); +- return 0; +- } +- +- +- $data = $this->serialize( $rss ); +- fwrite( $fp, $data ); +- fclose( $fp ); +- +- return $cache_file; +- } +- +-/*=======================================================================*\ +- Function: get +- Purpose: fetch an item from the cache +- Input: url from wich the rss file was fetched +- Output: cached object on HIT, false on MISS +-\*=======================================================================*/ +- function get ($url) { +- $this->ERROR = ""; +- $cache_file = $this->file_name( $url ); +- +- if ( ! file_exists( $cache_file ) ) { +- $this->debug( +- "Cache doesn't contain: $url (cache file: $cache_file)" +- ); +- return 0; +- } +- +- $fp = @fopen($cache_file, 'r'); +- if ( ! $fp ) { +- $this->error( +- "Failed to open cache file for reading: $cache_file" +- ); +- return 0; +- } +- +- if ($filesize = filesize($cache_file) ) { +- $data = fread( $fp, filesize($cache_file) ); +- $rss = $this->unserialize( $data ); +- +- return $rss; +- } +- +- return 0; +- } +- +-/*=======================================================================*\ +- Function: check_cache +- Purpose: check a url for membership in the cache +- and whether the object is older then MAX_AGE (ie. STALE) +- Input: url from wich the rss file was fetched +- Output: cached object on HIT, false on MISS +-\*=======================================================================*/ +- function check_cache ( $url ) { +- $this->ERROR = ""; +- $filename = $this->file_name( $url ); +- +- if ( file_exists( $filename ) ) { +- // find how long ago the file was added to the cache +- // and whether that is longer then MAX_AGE +- $mtime = filemtime( $filename ); +- $age = time() - $mtime; +- if ( $this->MAX_AGE > $age ) { +- // object exists and is current +- return 'HIT'; +- } +- else { +- // object exists but is old +- return 'STALE'; +- } +- } +- else { +- // object does not exist +- return 'MISS'; +- } +- } +- +- function cache_age( $cache_key ) { +- $filename = $this->file_name( $url ); +- if ( file_exists( $filename ) ) { +- $mtime = filemtime( $filename ); +- $age = time() - $mtime; +- return $age; +- } +- else { +- return -1; +- } +- } +- +-/*=======================================================================*\ +- Function: serialize +-\*=======================================================================*/ +- function serialize ( $rss ) { +- return serialize( $rss ); +- } +- +-/*=======================================================================*\ +- Function: unserialize +-\*=======================================================================*/ +- function unserialize ( $data ) { +- return unserialize( $data ); +- } +- +-/*=======================================================================*\ +- Function: file_name +- Purpose: map url to location in cache +- Input: url from wich the rss file was fetched +- Output: a file name +-\*=======================================================================*/ +- function file_name ($url) { +- $filename = md5( $url ); +- return join( DIRECTORY_SEPARATOR, array( $this->BASE_CACHE, $filename ) ); +- } +- +-/*=======================================================================*\ +- Function: error +- Purpose: register error +-\*=======================================================================*/ +- function error ($errormsg, $lvl=E_USER_WARNING) { +- // append PHP's error message if track_errors enabled +- if ( isset($php_errormsg) ) { +- $errormsg .= " ($php_errormsg)"; +- } +- $this->ERROR = $errormsg; +- if ( MAGPIE_DEBUG ) { +- trigger_error( $errormsg, $lvl); +- } +- else { +- error_log( $errormsg, 0); +- } +- } +- +- function debug ($debugmsg, $lvl=E_USER_NOTICE) { +- if ( MAGPIE_DEBUG ) { +- $this->error("MagpieRSS [debug] $debugmsg", $lvl); +- } +- } +- +-} +- +-?> +diff --git a/html/includes/rss/rss_fetch.inc b/html/includes/rss/rss_fetch.inc +deleted file mode 100644 +index f2fa2fa..0000000 +--- a/html/includes/rss/rss_fetch.inc ++++ /dev/null +@@ -1,458 +0,0 @@ +- +- * License: GPL +- * +- * The lastest version of MagpieRSS can be obtained from: +- * http://magpierss.sourceforge.net +- * +- * For questions, help, comments, discussion, etc., please join the +- * Magpie mailing list: +- * magpierss-general@lists.sourceforge.net +- * +- */ +- +-// Setup MAGPIE_DIR for use on hosts that don't include +-// the current path in include_path. +-// with thanks to rajiv and smarty +-if (!defined('DIR_SEP')) { +- define('DIR_SEP', DIRECTORY_SEPARATOR); +-} +- +-if (!defined('MAGPIE_DIR')) { +- define('MAGPIE_DIR', dirname(__FILE__) . DIR_SEP); +-} +- +-require_once( MAGPIE_DIR . 'rss_parse.inc' ); +-require_once( MAGPIE_DIR . 'rss_cache.inc' ); +- +-// for including 3rd party libraries +-define('MAGPIE_EXTLIB', MAGPIE_DIR . 'extlib' . DIR_SEP); +-require_once( MAGPIE_EXTLIB . 'Snoopy.class.inc'); +- +- +-/* +- * CONSTANTS - redefine these in your script to change the +- * behaviour of fetch_rss() currently, most options effect the cache +- * +- * MAGPIE_CACHE_ON - Should Magpie cache parsed RSS objects? +- * For me a built in cache was essential to creating a "PHP-like" +- * feel to Magpie, see rss_cache.inc for rationale +- * +- * +- * MAGPIE_CACHE_DIR - Where should Magpie cache parsed RSS objects? +- * This should be a location that the webserver can write to. If this +- * directory does not already exist Mapie will try to be smart and create +- * it. This will often fail for permissions reasons. +- * +- * +- * MAGPIE_CACHE_AGE - How long to store cached RSS objects? In seconds. +- * +- * +- * MAGPIE_CACHE_FRESH_ONLY - If remote fetch fails, throw error +- * instead of returning stale object? +- * +- * MAGPIE_DEBUG - Display debugging notices? +- * +-*/ +- +- +-/*=======================================================================*\ +- Function: fetch_rss: +- Purpose: return RSS object for the give url +- maintain the cache +- Input: url of RSS file +- Output: parsed RSS object (see rss_parse.inc) +- +- NOTES ON CACHEING: +- If caching is on (MAGPIE_CACHE_ON) fetch_rss will first check the cache. +- +- NOTES ON RETRIEVING REMOTE FILES: +- If conditional gets are on (MAGPIE_CONDITIONAL_GET_ON) fetch_rss will +- return a cached object, and touch the cache object upon recieving a +- 304. +- +- NOTES ON FAILED REQUESTS: +- If there is an HTTP error while fetching an RSS object, the cached +- version will be return, if it exists (and if MAGPIE_CACHE_FRESH_ONLY is off) +-\*=======================================================================*/ +- +-define('MAGPIE_VERSION', '0.72'); +- +-$MAGPIE_ERROR = ""; +- +-function fetch_rss ($url) { +- // initialize constants +- init(); +- +- if ( !isset($url) ) { +- error("fetch_rss called without a url"); +- return false; +- } +- +- // if cache is disabled +- if ( !MAGPIE_CACHE_ON ) { +- // fetch file, and parse it +- $resp = _fetch_remote_file( $url ); +- if ( is_success( $resp->status ) ) { +- return _response_to_rss( $resp ); +- } +- else { +- error("Failed to fetch $url and cache is off"); +- return false; +- } +- } +- // else cache is ON +- else { +- // Flow +- // 1. check cache +- // 2. if there is a hit, make sure its fresh +- // 3. if cached obj fails freshness check, fetch remote +- // 4. if remote fails, return stale object, or error +- +- $cache = new RSSCache( MAGPIE_CACHE_DIR, MAGPIE_CACHE_AGE ); +- +- if (MAGPIE_DEBUG and $cache->ERROR) { +- debug($cache->ERROR, E_USER_WARNING); +- } +- +- +- $cache_status = 0; // response of check_cache +- $request_headers = array(); // HTTP headers to send with fetch +- $rss = 0; // parsed RSS object +- $errormsg = 0; // errors, if any +- +- // store parsed XML by desired output encoding +- // as character munging happens at parse time +- $cache_key = $url . MAGPIE_OUTPUT_ENCODING; +- +- if (!$cache->ERROR) { +- // return cache HIT, MISS, or STALE +- $cache_status = $cache->check_cache( $cache_key); +- } +- +- // if object cached, and cache is fresh, return cached obj +- if ( $cache_status == 'HIT' ) { +- $rss = $cache->get( $cache_key ); +- if ( isset($rss) and $rss ) { +- // should be cache age +- $rss->from_cache = 1; +- if ( MAGPIE_DEBUG > 1) { +- debug("MagpieRSS: Cache HIT", E_USER_NOTICE); +- } +- return $rss; +- } +- } +- +- // else attempt a conditional get +- +- // setup headers +- if ( $cache_status == 'STALE' ) { +- $rss = $cache->get( $cache_key ); +- if ( $rss and $rss->etag and $rss->last_modified ) { +- $request_headers['If-None-Match'] = $rss->etag; +- $request_headers['If-Last-Modified'] = $rss->last_modified; +- } +- } +- +- $resp = _fetch_remote_file( $url, $request_headers ); +- +- if (isset($resp) and $resp) { +- if ($resp->status == '304' ) { +- // we have the most current copy +- if ( MAGPIE_DEBUG > 1) { +- debug("Got 304 for $url"); +- } +- // reset cache on 304 (at minutillo insistent prodding) +- $cache->set($cache_key, $rss); +- return $rss; +- } +- elseif ( is_success( $resp->status ) ) { +- $rss = _response_to_rss( $resp ); +- if ( $rss ) { +- if (MAGPIE_DEBUG > 1) { +- debug("Fetch successful"); +- } +- // add object to cache +- $cache->set( $cache_key, $rss ); +- return $rss; +- } +- } +- else { +- $errormsg = "Failed to fetch $url "; +- if ( $resp->status == '-100' ) { +- $errormsg .= "(Request timed out after " . MAGPIE_FETCH_TIME_OUT . " seconds)"; +- } +- elseif ( $resp->error ) { +- # compensate for Snoopy's annoying habbit to tacking +- # on '\n' +- $http_error = substr($resp->error, 0, -2); +- $errormsg .= "(HTTP Error: $http_error)"; +- } +- else { +- $errormsg .= "(HTTP Response: " . $resp->response_code .')'; +- } +- } +- } +- else { +- $errormsg = "Unable to retrieve RSS file for unknown reasons."; +- } +- +- // else fetch failed +- +- // attempt to return cached object +- if ($rss) { +- if ( MAGPIE_DEBUG ) { +- debug("Returning STALE object for $url"); +- } +- return $rss; +- } +- +- // else we totally failed +- error( $errormsg ); +- +- return false; +- +- } // end if ( !MAGPIE_CACHE_ON ) { +-} // end fetch_rss() +- +-/*=======================================================================*\ +- Function: error +- Purpose: set MAGPIE_ERROR, and trigger error +-\*=======================================================================*/ +- +-function error ($errormsg, $lvl=E_USER_WARNING) { +- global $MAGPIE_ERROR; +- +- // append PHP's error message if track_errors enabled +- if ( isset($php_errormsg) ) { +- $errormsg .= " ($php_errormsg)"; +- } +- if ( $errormsg ) { +- $errormsg = "MagpieRSS: $errormsg"; +- $MAGPIE_ERROR = $errormsg; +- trigger_error( $errormsg, $lvl); +- } +-} +- +-function debug ($debugmsg, $lvl=E_USER_NOTICE) { +- trigger_error("MagpieRSS [debug] $debugmsg", $lvl); +-} +- +-/*=======================================================================*\ +- Function: magpie_error +- Purpose: accessor for the magpie error variable +-\*=======================================================================*/ +-function magpie_error ($errormsg="") { +- global $MAGPIE_ERROR; +- +- if ( isset($errormsg) and $errormsg ) { +- $MAGPIE_ERROR = $errormsg; +- } +- +- return $MAGPIE_ERROR; +-} +- +-/*=======================================================================*\ +- Function: _fetch_remote_file +- Purpose: retrieve an arbitrary remote file +- Input: url of the remote file +- headers to send along with the request (optional) +- Output: an HTTP response object (see Snoopy.class.inc) +-\*=======================================================================*/ +-function _fetch_remote_file ($url, $headers = "" ) { +- // Snoopy is an HTTP client in PHP +- $client = new Snoopy(); +- $client->agent = MAGPIE_USER_AGENT; +- $client->read_timeout = MAGPIE_FETCH_TIME_OUT; +- $client->use_gzip = MAGPIE_USE_GZIP; +- if (is_array($headers) ) { +- $client->rawheaders = $headers; +- } +- +- @$client->fetch($url); +- return $client; +- +-} +- +-/*=======================================================================*\ +- Function: _response_to_rss +- Purpose: parse an HTTP response object into an RSS object +- Input: an HTTP response object (see Snoopy) +- Output: parsed RSS object (see rss_parse) +-\*=======================================================================*/ +-function _response_to_rss ($resp) { +- $rss = new MagpieRSS( $resp->results, MAGPIE_OUTPUT_ENCODING, MAGPIE_INPUT_ENCODING, MAGPIE_DETECT_ENCODING ); +- +- // if RSS parsed successfully +- if ( $rss and !$rss->ERROR) { +- +- // find Etag, and Last-Modified +- foreach($resp->headers as $h) { +- // 2003-03-02 - Nicola Asuni (www.tecnick.com) - fixed bug "Undefined offset: 1" +- if (strpos($h, ": ")) { +- list($field, $val) = explode(": ", $h, 2); +- } +- else { +- $field = $h; +- $val = ""; +- } +- +- if ( $field == 'ETag' ) { +- $rss->etag = $val; +- } +- +- if ( $field == 'Last-Modified' ) { +- $rss->last_modified = $val; +- } +- } +- +- return $rss; +- } // else construct error message +- else { +- $errormsg = "Failed to parse RSS file."; +- +- if ($rss) { +- $errormsg .= " (" . $rss->ERROR . ")"; +- } +- error($errormsg); +- +- return false; +- } // end if ($rss and !$rss->error) +-} +- +-/*=======================================================================*\ +- Function: init +- Purpose: setup constants with default values +- check for user overrides +-\*=======================================================================*/ +-function init () { +- if ( defined('MAGPIE_INITALIZED') ) { +- return; +- } +- else { +- define('MAGPIE_INITALIZED', true); +- } +- +- if ( !defined('MAGPIE_CACHE_ON') ) { +- define('MAGPIE_CACHE_ON', true); +- } +- +- if ( !defined('MAGPIE_CACHE_DIR') ) { +- define('MAGPIE_CACHE_DIR', './cache'); +- } +- +- if ( !defined('MAGPIE_CACHE_AGE') ) { +- define('MAGPIE_CACHE_AGE', 60*60); // one hour +- } +- +- if ( !defined('MAGPIE_CACHE_FRESH_ONLY') ) { +- define('MAGPIE_CACHE_FRESH_ONLY', false); +- } +- +- if ( !defined('MAGPIE_OUTPUT_ENCODING') ) { +- define('MAGPIE_OUTPUT_ENCODING', 'ISO-8859-1'); +- } +- +- if ( !defined('MAGPIE_INPUT_ENCODING') ) { +- define('MAGPIE_INPUT_ENCODING', null); +- } +- +- if ( !defined('MAGPIE_DETECT_ENCODING') ) { +- define('MAGPIE_DETECT_ENCODING', true); +- } +- +- if ( !defined('MAGPIE_DEBUG') ) { +- define('MAGPIE_DEBUG', 0); +- } +- +- if ( !defined('MAGPIE_USER_AGENT') ) { +- $ua = 'MagpieRSS/'. MAGPIE_VERSION . ' (+http://magpierss.sf.net'; +- +- if ( MAGPIE_CACHE_ON ) { +- $ua = $ua . ')'; +- } +- else { +- $ua = $ua . '; No cache)'; +- } +- +- define('MAGPIE_USER_AGENT', $ua); +- } +- +- if ( !defined('MAGPIE_FETCH_TIME_OUT') ) { +- define('MAGPIE_FETCH_TIME_OUT', 5); // 5 second timeout +- } +- +- // use gzip encoding to fetch rss files if supported? +- if ( !defined('MAGPIE_USE_GZIP') ) { +- define('MAGPIE_USE_GZIP', true); +- } +-} +- +-// NOTE: the following code should really be in Snoopy, or at least +-// somewhere other then rss_fetch! +- +-/*=======================================================================*\ +- HTTP STATUS CODE PREDICATES +- These functions attempt to classify an HTTP status code +- based on RFC 2616 and RFC 2518. +- +- All of them take an HTTP status code as input, and return true or false +- +- All this code is adapted from LWP's HTTP::Status. +-\*=======================================================================*/ +- +- +-/*=======================================================================*\ +- Function: is_info +- Purpose: return true if Informational status code +-\*=======================================================================*/ +-function is_info ($sc) { +- return $sc >= 100 && $sc < 200; +-} +- +-/*=======================================================================*\ +- Function: is_success +- Purpose: return true if Successful status code +-\*=======================================================================*/ +-function is_success ($sc) { +- return $sc >= 200 && $sc < 300; +-} +- +-/*=======================================================================*\ +- Function: is_redirect +- Purpose: return true if Redirection status code +-\*=======================================================================*/ +-function is_redirect ($sc) { +- return $sc >= 300 && $sc < 400; +-} +- +-/*=======================================================================*\ +- Function: is_error +- Purpose: return true if Error status code +-\*=======================================================================*/ +-function is_error ($sc) { +- return $sc >= 400 && $sc < 600; +-} +- +-/*=======================================================================*\ +- Function: is_client_error +- Purpose: return true if Error status code, and its a client error +-\*=======================================================================*/ +-function is_client_error ($sc) { +- return $sc >= 400 && $sc < 500; +-} +- +-/*=======================================================================*\ +- Function: is_client_error +- Purpose: return true if Error status code, and its a server error +-\*=======================================================================*/ +-function is_server_error ($sc) { +- return $sc >= 500 && $sc < 600; +-} +- +-?> +diff --git a/html/includes/rss/rss_parse.inc b/html/includes/rss/rss_parse.inc +deleted file mode 100644 +index 56d420f..0000000 +--- a/html/includes/rss/rss_parse.inc ++++ /dev/null +@@ -1,605 +0,0 @@ +- +-* @version 0.7a +-* @license GPL +-* +-*/ +- +-define('RSS', 'RSS'); +-define('ATOM', 'Atom'); +- +-require_once (MAGPIE_DIR . 'rss_utils.inc'); +- +-/** +-* Hybrid parser, and object, takes RSS as a string and returns a simple object. +-* +-* see: rss_fetch.inc for a simpler interface with integrated caching support +-* +-*/ +-class MagpieRSS { +- var $parser; +- +- var $current_item = array(); // item currently being parsed +- var $items = array(); // collection of parsed items +- var $channel = array(); // hash of channel fields +- var $textinput = array(); +- var $image = array(); +- var $feed_type; +- var $feed_version; +- var $encoding = ''; // output encoding of parsed rss +- +- var $_source_encoding = ''; // only set if we have to parse xml prolog +- +- var $ERROR = ""; +- var $WARNING = ""; +- +- // define some constants +- +- var $_CONTENT_CONSTRUCTS = array('content', 'summary', 'info', 'title', 'tagline', 'copyright'); +- var $_KNOWN_ENCODINGS = array('UTF-8', 'US-ASCII', 'ISO-8859-1'); +- +- // parser variables, useless if you're not a parser, treat as private +- var $stack = array(); // parser stack +- var $inchannel = false; +- var $initem = false; +- var $incontent = false; // if in Atom field +- var $intextinput = false; +- var $inimage = false; +- var $current_namespace = false; +- +- +- /** +- * Set up XML parser, parse source, and return populated RSS object.. +- * +- * @param string $source string containing the RSS to be parsed +- * +- * NOTE: Probably a good idea to leave the encoding options alone unless +- * you know what you're doing as PHP's character set support is +- * a little weird. +- * +- * NOTE: A lot of this is unnecessary but harmless with PHP5 +- * +- * +- * @param string $output_encoding output the parsed RSS in this character +- * set defaults to ISO-8859-1 as this is PHP's +- * default. +- * +- * NOTE: might be changed to UTF-8 in future +- * versions. +- * +- * @param string $input_encoding the character set of the incoming RSS source. +- * Leave blank and Magpie will try to figure it +- * out. +- * +- * +- * @param bool $detect_encoding if false Magpie won't attempt to detect +- * source encoding. (caveat emptor) +- * +- */ +- function MagpieRSS ($source, $output_encoding='ISO-8859-1', +- $input_encoding=null, $detect_encoding=true) +- { +- # if PHP xml isn't compiled in, die +- # +- if (!function_exists('xml_parser_create')) { +- $this->error( "Failed to load PHP's XML Extension. " . +- "http://www.php.net/manual/en/ref.xml.php", +- E_USER_ERROR ); +- } +- +- list($parser, $source) = $this->create_parser($source, +- $output_encoding, $input_encoding, $detect_encoding); +- +- +- if (!is_resource($parser)) { +- $this->error( "Failed to create an instance of PHP's XML parser. " . +- "http://www.php.net/manual/en/ref.xml.php", +- E_USER_ERROR ); +- } +- +- +- $this->parser = $parser; +- +- # pass in parser, and a reference to this object +- # setup handlers +- # +- xml_set_object( $this->parser, $this ); +- xml_set_element_handler($this->parser, +- 'feed_start_element', 'feed_end_element' ); +- +- xml_set_character_data_handler( $this->parser, 'feed_cdata' ); +- +- $status = xml_parse( $this->parser, $source ); +- +- if (! $status ) { +- $errorcode = xml_get_error_code( $this->parser ); +- if ( $errorcode != XML_ERROR_NONE ) { +- $xml_error = xml_error_string( $errorcode ); +- $error_line = xml_get_current_line_number($this->parser); +- $error_col = xml_get_current_column_number($this->parser); +- $errormsg = "$xml_error at line $error_line, column $error_col"; +- +- $this->error( $errormsg ); +- } +- } +- +- xml_parser_free( $this->parser ); +- +- $this->normalize(); +- } +- +- function feed_start_element($p, $element, &$attrs) { +- $el = $element = strtolower($element); +- $attrs = array_change_key_case($attrs, CASE_LOWER); +- +- // check for a namespace, and split if found +- $ns = false; +- if ( strpos( $element, ':' ) ) { +- list($ns, $el) = split( ':', $element, 2); +- } +- if ( $ns and $ns != 'rdf' ) { +- $this->current_namespace = $ns; +- } +- +- # if feed type isn't set, then this is first element of feed +- # identify feed from root element +- # +- if (!isset($this->feed_type) ) { +- if ( $el == 'rdf' ) { +- $this->feed_type = RSS; +- $this->feed_version = '1.0'; +- } +- elseif ( $el == 'rss' ) { +- $this->feed_type = RSS; +- $this->feed_version = $attrs['version']; +- } +- elseif ( $el == 'feed' ) { +- $this->feed_type = ATOM; +- $this->feed_version = $attrs['version']; +- $this->inchannel = true; +- } +- return; +- } +- +- if ( $el == 'channel' ) +- { +- $this->inchannel = true; +- } +- elseif ($el == 'item' or $el == 'entry' ) +- { +- $this->initem = true; +- if ( isset($attrs['rdf:about']) ) { +- $this->current_item['about'] = $attrs['rdf:about']; +- } +- } +- +- // if we're in the default namespace of an RSS feed, +- // record textinput or image fields +- elseif ( +- $this->feed_type == RSS and +- $this->current_namespace == '' and +- $el == 'textinput' ) +- { +- $this->intextinput = true; +- } +- +- elseif ( +- $this->feed_type == RSS and +- $this->current_namespace == '' and +- $el == 'image' ) +- { +- $this->inimage = true; +- } +- +- # handle atom content constructs +- elseif ( $this->feed_type == ATOM and in_array($el, $this->_CONTENT_CONSTRUCTS) ) +- { +- // avoid clashing w/ RSS mod_content +- if ($el == 'content' ) { +- $el = 'atom_content'; +- } +- +- $this->incontent = $el; +- +- +- } +- +- // if inside an Atom content construct (e.g. content or summary) field treat tags as text +- elseif ($this->feed_type == ATOM and $this->incontent ) +- { +- // if tags are inlined, then flatten +- $attrs_str = join(' ', +- array_map('map_attrs', +- array_keys($attrs), +- array_values($attrs) ) ); +- +- $this->append_content( "<$element $attrs_str>" ); +- +- array_unshift( $this->stack, $el ); +- } +- +- // Atom support many links per containging element. +- // Magpie treats link elements of type rel='alternate' +- // as being equivalent to RSS's simple link element. +- // +- elseif ($this->feed_type == ATOM and $el == 'link' ) +- { +- if ( isset($attrs['rel']) and $attrs['rel'] == 'alternate' ) +- { +- $link_el = 'link'; +- } +- else { +- $link_el = 'link_' . $attrs['rel']; +- } +- +- $this->append($link_el, $attrs['href']); +- } +- // set stack[0] to current element +- else { +- array_unshift($this->stack, $el); +- } +- } +- +- +- +- function feed_cdata ($p, $text) { +- if ($this->feed_type == ATOM and $this->incontent) +- { +- $this->append_content( $text ); +- } +- else { +- $current_el = join('_', array_reverse($this->stack)); +- $this->append($current_el, $text); +- } +- } +- +- function feed_end_element ($p, $el) { +- $el = strtolower($el); +- +- if ( $el == 'item' or $el == 'entry' ) +- { +- $this->items[] = $this->current_item; +- $this->current_item = array(); +- $this->initem = false; +- } +- elseif ($this->feed_type == RSS and $this->current_namespace == '' and $el == 'textinput' ) +- { +- $this->intextinput = false; +- } +- elseif ($this->feed_type == RSS and $this->current_namespace == '' and $el == 'image' ) +- { +- $this->inimage = false; +- } +- elseif ($this->feed_type == ATOM and in_array($el, $this->_CONTENT_CONSTRUCTS) ) +- { +- $this->incontent = false; +- } +- elseif ($el == 'channel' or $el == 'feed' ) +- { +- $this->inchannel = false; +- } +- elseif ($this->feed_type == ATOM and $this->incontent ) { +- // balance tags properly +- // note: i don't think this is actually neccessary +- if ( $this->stack[0] == $el ) +- { +- $this->append_content(""); +- } +- else { +- $this->append_content("<$el />"); +- } +- +- array_shift( $this->stack ); +- } +- else { +- array_shift( $this->stack ); +- } +- +- $this->current_namespace = false; +- } +- +- function concat (&$str1, $str2="") { +- if (!isset($str1) ) { +- $str1=""; +- } +- $str1 .= $str2; +- } +- +- +- +- function append_content($text) { +- if ( $this->initem ) { +- $this->concat( $this->current_item[ $this->incontent ], $text ); +- } +- elseif ( $this->inchannel ) { +- $this->concat( $this->channel[ $this->incontent ], $text ); +- } +- } +- +- // smart append - field and namespace aware +- function append($el, $text) { +- if (!$el) { +- return; +- } +- if ( $this->current_namespace ) +- { +- if ( $this->initem ) { +- $this->concat( +- $this->current_item[ $this->current_namespace ][ $el ], $text); +- } +- elseif ($this->inchannel) { +- $this->concat( +- $this->channel[ $this->current_namespace][ $el ], $text ); +- } +- elseif ($this->intextinput) { +- $this->concat( +- $this->textinput[ $this->current_namespace][ $el ], $text ); +- } +- elseif ($this->inimage) { +- $this->concat( +- $this->image[ $this->current_namespace ][ $el ], $text ); +- } +- } +- else { +- if ( $this->initem ) { +- $this->concat( +- $this->current_item[ $el ], $text); +- } +- elseif ($this->intextinput) { +- $this->concat( +- $this->textinput[ $el ], $text ); +- } +- elseif ($this->inimage) { +- $this->concat( +- $this->image[ $el ], $text ); +- } +- elseif ($this->inchannel) { +- $this->concat( +- $this->channel[ $el ], $text ); +- } +- +- } +- } +- +- function normalize () { +- // if atom populate rss fields +- if ( $this->is_atom() ) { +- $this->channel['description'] = $this->channel['tagline']; +- for ( $i = 0; $i < count($this->items); $i++) { +- $item = $this->items[$i]; +- if ( isset($item['summary']) ) +- $item['description'] = $item['summary']; +- if ( isset($item['atom_content'])) +- $item['content']['encoded'] = $item['atom_content']; +- +- $atom_date = (isset($item['issued']) ) ? $item['issued'] : $item['modified']; +- if ( $atom_date ) { +- $epoch = @parse_w3cdtf($atom_date); +- if ($epoch and $epoch > 0) { +- $item['date_timestamp'] = $epoch; +- } +- } +- +- $this->items[$i] = $item; +- } +- } +- elseif ( $this->is_rss() ) { +- $this->channel['tagline'] = $this->channel['description']; +- for ( $i = 0; $i < count($this->items); $i++) { +- $item = $this->items[$i]; +- if ( isset($item['description'])) +- $item['summary'] = $item['description']; +- if ( isset($item['content']['encoded'] ) ) +- $item['atom_content'] = $item['content']['encoded']; +- +- if ( $this->is_rss() == '1.0' and isset($item['dc']['date']) ) { +- $epoch = @parse_w3cdtf($item['dc']['date']); +- if ($epoch and $epoch > 0) { +- $item['date_timestamp'] = $epoch; +- } +- } +- elseif ( isset($item['pubdate']) ) { +- $epoch = @strtotime($item['pubdate']); +- if ($epoch > 0) { +- $item['date_timestamp'] = $epoch; +- } +- } +- +- $this->items[$i] = $item; +- } +- } +- } +- +- +- function is_rss () { +- if ( $this->feed_type == RSS ) { +- return $this->feed_version; +- } +- else { +- return false; +- } +- } +- +- function is_atom() { +- if ( $this->feed_type == ATOM ) { +- return $this->feed_version; +- } +- else { +- return false; +- } +- } +- +- /** +- * return XML parser, and possibly re-encoded source +- * +- */ +- function create_parser($source, $out_enc, $in_enc, $detect) { +- if ( substr(phpversion(),0,1) == 5) { +- $parser = $this->php5_create_parser($in_enc, $detect); +- } +- else { +- list($parser, $source) = $this->php4_create_parser($source, $in_enc, $detect); +- } +- if ($out_enc) { +- $this->encoding = $out_enc; +- xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, $out_enc); +- } +- +- return array($parser, $source); +- } +- +- /** +- * Instantiate an XML parser under PHP5 +- * +- * PHP5 will do a fine job of detecting input encoding +- * if passed an empty string as the encoding. +- * +- * All hail libxml2! +- * +- */ +- function php5_create_parser($in_enc, $detect) { +- // by default php5 does a fine job of detecting input encodings +- if(!$detect && $in_enc) { +- return xml_parser_create($in_enc); +- } +- else { +- return xml_parser_create(''); +- } +- } +- +- /** +- * Instaniate an XML parser under PHP4 +- * +- * Unfortunately PHP4's support for character encodings +- * and especially XML and character encodings sucks. As +- * long as the documents you parse only contain characters +- * from the ISO-8859-1 character set (a superset of ASCII, +- * and a subset of UTF-8) you're fine. However once you +- * step out of that comfy little world things get mad, bad, +- * and dangerous to know. +- * +- * The following code is based on SJM's work with FoF +- * @see http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss +- * +- */ +- function php4_create_parser($source, $in_enc, $detect) { +- if ( !$detect ) { +- return array(xml_parser_create($in_enc), $source); +- } +- +- if (!$in_enc) { +- if (preg_match('//m', $source, $m)) { +- $in_enc = strtoupper($m[1]); +- $this->source_encoding = $in_enc; +- } +- else { +- $in_enc = 'UTF-8'; +- } +- } +- +- if ($this->known_encoding($in_enc)) { +- return array(xml_parser_create($in_enc), $source); +- } +- +- // the dectected encoding is not one of the simple encodings PHP knows +- +- // attempt to use the iconv extension to +- // cast the XML to a known encoding +- // @see http://php.net/iconv +- +- if (function_exists('iconv')) { +- $encoded_source = iconv($in_enc,'UTF-8', $source); +- if ($encoded_source) { +- return array(xml_parser_create('UTF-8'), $encoded_source); +- } +- } +- +- // iconv didn't work, try mb_convert_encoding +- // @see http://php.net/mbstring +- if(function_exists('mb_convert_encoding')) { +- $encoded_source = mb_convert_encoding($source, 'UTF-8', $in_enc ); +- if ($encoded_source) { +- return array(xml_parser_create('UTF-8'), $encoded_source); +- } +- } +- +- // else +- $this->error("Feed is in an unsupported character encoding. ($in_enc) " . +- "You may see strange artifacts, and mangled characters.", +- E_USER_NOTICE); +- +- return array(xml_parser_create(), $source); +- } +- +- function known_encoding($enc) { +- $enc = strtoupper($enc); +- if ( in_array($enc, $this->_KNOWN_ENCODINGS) ) { +- return $enc; +- } +- else { +- return false; +- } +- } +- +- function error ($errormsg, $lvl=E_USER_WARNING) { +- // append PHP's error message if track_errors enabled +- if ( isset($php_errormsg) ) { +- $errormsg .= " ($php_errormsg)"; +- } +- if ( MAGPIE_DEBUG ) { +- trigger_error( $errormsg, $lvl); +- } +- else { +- error_log( $errormsg, 0); +- } +- +- $notices = E_USER_NOTICE|E_NOTICE; +- if ( $lvl&$notices ) { +- $this->WARNING = $errormsg; +- } else { +- $this->ERROR = $errormsg; +- } +- } +- +- +-} // end class RSS +- +-function map_attrs($k, $v) { +- return "$k=\"$v\""; +-} +- +-// patch to support medieval versions of PHP4.1.x, +-// courtesy, Ryan Currie, ryan@digibliss.com +- +-if (!function_exists('array_change_key_case')) { +- define("CASE_UPPER",1); +- define("CASE_LOWER",0); +- +- +- function array_change_key_case($array,$case=CASE_LOWER) { +- if ($case=CASE_LOWER) $cmd=strtolower; +- elseif ($case=CASE_UPPER) $cmd=strtoupper; +- foreach($array as $key=>$value) { +- $output[$cmd($key)]=$value; +- } +- return $output; +- } +- +-} +- +-?> +diff --git a/html/includes/rss/rss_utils.inc b/html/includes/rss/rss_utils.inc +deleted file mode 100644 +index 2a29e72..0000000 +--- a/html/includes/rss/rss_utils.inc ++++ /dev/null +@@ -1,67 +0,0 @@ +- +- * Version: 0.51 +- * License: GPL +- * +- * The lastest version of MagpieRSS can be obtained from: +- * http://magpierss.sourceforge.net +- * +- * For questions, help, comments, discussion, etc., please join the +- * Magpie mailing list: +- * magpierss-general@lists.sourceforge.net +- */ +- +- +-/*======================================================================*\ +- Function: parse_w3cdtf +- Purpose: parse a W3CDTF date into unix epoch +- +- NOTE: http://www.w3.org/TR/NOTE-datetime +-\*======================================================================*/ +- +-function parse_w3cdtf ( $date_str ) { +- +- # regex to match wc3dtf +- $pat = "/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/"; +- +- if ( preg_match( $pat, $date_str, $match ) ) { +- list( $year, $month, $day, $hours, $minutes, $seconds) = +- array( $match[1], $match[2], $match[3], $match[4], $match[5], $match[6]); +- +- # calc epoch for current date assuming GMT +- $epoch = gmmktime( $hours, $minutes, $seconds, $month, $day, $year); +- +- $offset = 0; +- if ( $match[10] == 'Z' ) { +- # zulu time, aka GMT +- } +- else { +- list( $tz_mod, $tz_hour, $tz_min ) = +- array( $match[8], $match[9], $match[10]); +- +- # zero out the variables +- if ( ! $tz_hour ) { $tz_hour = 0; } +- if ( ! $tz_min ) { $tz_min = 0; } +- +- $offset_secs = (($tz_hour*60)+$tz_min)*60; +- +- # is timezone ahead of GMT? then subtract offset +- # +- if ( $tz_mod == '+' ) { +- $offset_secs = $offset_secs * -1; +- } +- +- $offset = $offset_secs; +- } +- $epoch = $epoch + $offset; +- return $epoch; +- } +- else { +- return -1; +- } +-} +- +-?> +diff --git a/html/includes/rss/scripts/README b/html/includes/rss/scripts/README +deleted file mode 100644 +index e37afe5..0000000 +--- a/html/includes/rss/scripts/README ++++ /dev/null +@@ -1,27 +0,0 @@ +-Some example on how to use Magpie: +- +-* magpie_simple.php * +- Simple example of fetching and parsing an RSS file. Expects to be +- called with a query param 'rss_url=http://' +- +-* simple_smarty.php * +- Similiar to magpie_simple, but using the Smarty template engine to do +- display. Also demostrates using rss_utils.inc and a smarty plugin to +- parse and display when each RSS item was published. +- +-* magpie_debug.php * +- Displays all the information available from a parsed feed. +- +-* smarty_plugin/modifier.rss_date_parse.php * +- +- A Smarty plugin for parsing RSS style dates. You must include rss_utils.inc +- for this plugin to work. It also must be installed in the Smarty plugin +- directory, see the Smarty docs for details. +- +-* templates/simple.smarty +- A Smarty template used by simple_smarty.php which demostrates +- displaying an RSS feed and using the date parse plugin. +- +- +-The Smarty template engine and documentation on how to use it are available from +-http://smarty.php.net +diff --git a/html/includes/rss/scripts/magpie_debug.php b/html/includes/rss/scripts/magpie_debug.php +deleted file mode 100644 +index 84549db..0000000 +--- a/html/includes/rss/scripts/magpie_debug.php ++++ /dev/null +@@ -1,80 +0,0 @@ +-Example Output"; +- echo "Channel: " . $rss->channel['title'] . "

"; +- echo "

    "; +- foreach ($rss->items as $item) { +- $href = $item['link']; +- $title = $item['title']; +- echo "
  • $title
  • "; +- } +- echo "
"; +-} +-else { +- echo "Error: " . magpie_error(); +-} +-?> +- +-
+- RSS URL:
+- +-
+- +-

Parsed Results (var_dump'ed)

+-
+-
+-
+- +-Error: PHP compiled without XML support (--with-xml), Mapgie won't work without PHP support for XML.
\n"; +- exit; +- } +- else { +- echo "OK: Found an XML parser.
\n"; +- } +- +- if ( ! function_exists('gzinflate') ) { +- echo "Warning: PHP compiled without Zlib support (--with-zlib). No support for GZIP encoding.
\n"; +- } +- else { +- echo "OK: Support for GZIP encoding.
\n"; +- } +- +- if ( ! (function_exists('iconv') and function_exists('mb_convert_encoding') ) ) { +- echo "Warning: No support for iconv (--with-iconv) or multi-byte strings (--enable-mbstring)." . +- "No support character set munging.
\n"; +- } +- else { +- echo "OK: Support for character munging.
\n"; +- } +-} +- +-?> +diff --git a/html/includes/rss/scripts/magpie_simple.php b/html/includes/rss/scripts/magpie_simple.php +deleted file mode 100644 +index 282735e..0000000 +--- a/html/includes/rss/scripts/magpie_simple.php ++++ /dev/null +@@ -1,29 +0,0 @@ +-channel['title'] . "

"; +- echo "

    "; +- foreach ($rss->items as $item) { +- $href = $item['link']; +- $title = $item['title']; +- echo "
  • $title
  • "; +- } +- echo "
"; +-} +-?> +- +-
+- RSS URL:
+- +-
+- +-

+-

Security Note:

+-This is a simple example script. If this was a real script we probably wouldn't allow strangers to submit random URLs, and we certainly wouldn't simply echo anything passed in the URL. Additionally its a bad idea to leave this example script lying around. +-

+\ No newline at end of file +diff --git a/html/includes/rss/scripts/magpie_slashbox.php b/html/includes/rss/scripts/magpie_slashbox.php +deleted file mode 100644 +index bbef30b..0000000 +--- a/html/includes/rss/scripts/magpie_slashbox.php ++++ /dev/null +@@ -1,66 +0,0 @@ +- +- +- +- +-
+- +-
+- +-"; +- $rss = fetch_rss( $url ); +- echo slashbox ($rss); +-} +- +-echo "
";
+-print_r($rss);
+-echo "
"; +-?> +- +- +- +- +-"; +- echo ""; +- +- # get the channel title and link properties off of the rss object +- # +- $title = $rss->channel['title']; +- $link = $rss->channel['link']; +- +- echo "$title"; +- echo ""; +- +- # foreach over each item in the array. +- # displaying simple links +- # +- # we could be doing all sorts of neat things with the dublin core +- # info, or the event info, or what not, but keeping it simple for now. +- # +- foreach ($rss->items as $item ) { +- echo ""; +- echo ""; +- echo $item['title']; +- echo ""; +- } +- +- echo ""; +-} +- +-?> +diff --git a/html/includes/rss/scripts/simple_smarty.php b/html/includes/rss/scripts/simple_smarty.php +deleted file mode 100644 +index a904d88..0000000 +--- a/html/includes/rss/scripts/simple_smarty.php ++++ /dev/null +@@ -1,58 +0,0 @@ +-compile_check = true; +- +-// url of an rss file +-$url = $_GET['rss_url']; +- +- +-if ( $url ) { +- // assign a variable to smarty for use in the template +- $smarty->assign('rss_url', $url); +- +- // use MagpieRSS to fetch remote RSS file, and parse it +- $rss = fetch_rss( $url ); +- +- // if fetch_rss returned false, we encountered an error +- if ( !$rss ) { +- $smarty->assign( 'error', magpie_error() ); +- } +- $smarty->assign('rss', $rss ); +- +- $item = $rss->items[0]; +- $date = parse_w3cdtf( $item['dc']['date'] ); +- $smarty->assign( 'date', $date ); +-} +- +-// parse smarty template, and display using the variables we assigned +-$smarty->display('simple.smarty'); +- +-?> +diff --git a/html/includes/rss/scripts/smarty_plugin/modifier.rss_date_parse.php b/html/includes/rss/scripts/smarty_plugin/modifier.rss_date_parse.php +deleted file mode 100644 +index 593270e..0000000 +--- a/html/includes/rss/scripts/smarty_plugin/modifier.rss_date_parse.php ++++ /dev/null +@@ -1,31 +0,0 @@ +- +diff --git a/html/includes/rss/scripts/templates/simple.smarty b/html/includes/rss/scripts/templates/simple.smarty +deleted file mode 100644 +index c0761cf..0000000 +--- a/html/includes/rss/scripts/templates/simple.smarty ++++ /dev/null +@@ -1,46 +0,0 @@ +- +- +-A Simple RSS Box: I'm not a designer +- +- +- +-
+-RSS File: +- +- +-
+- +-Displaying: {$rss_url} +-

+- +-{* if $error display the error +- elseif parsed RSS object display the RSS +- else solicit user for a URL +-*} +- +-{if $error } +-Error: {$error} +-{elseif $rss} +- +- +- +- +- {foreach from=$rss->items item=item} +- +- +- +- +- {/foreach} +-
+- {$rss->channel.title} +-
+- {$item.title} +- +- {$item.dc.date|rss_date_parse|date_format:"%A, %B %e, %Y"} +-
+-{else} +- Enter the URL of an RSS file to display. +-{/if} +- +- +- +diff --git a/html/includes/utils.inc.php b/html/includes/utils.inc.php +index 1fbd948..0a9a1d9 100644 +--- a/html/includes/utils.inc.php ++++ b/html/includes/utils.inc.php +@@ -3,120 +3,6 @@ + + require_once(dirname(__FILE__).'/../config.inc.php'); + +-function get_update_information(){ +- global $cfg; +- +- // initialize array +- $updateinfo=array( +- "found_update_info" => false, +- "update_checks_enabled" => true, +- "last_update_check" => "", +- "update_available" => false, +- "update_version" => "", +- ); +- +- // first read CGI config file to determine main file location +- $ccfc=read_cgi_config_file(); +- //print_r($ccfc); +- +- // read main config file to determine file locations +- if(isset($ccf['main_config_file'])) +- $mcf=$ccf['main_config_file']; +- else +- $mcf=""; +- $mcfc=read_main_config_file($mcf); +- //print_r($mcfc); +- +- if(isset($mcf['status_file'])) +- $sf=$mcf['status_file']; +- else +- $sf=""; +- +- if(isset($mcf['state_retention_file'])) +- $rf=$mcf['state_retention_file']; +- else +- $rf=""; +- +- +- /////////////////////////////////////////////// +- // GET PROGRAM VARIABLES FROM MAIN CONFIG FILE +- /////////////////////////////////////////////// +- +- // are update checks enabled? +- if(isset($mcfc['check_for_updates']) && $mcfc['check_for_updates']=="0") +- $updateinfo["update_checks_enabled"]=false; +- +- +- ///////////////////////////////////////// +- // DETERMINE UPDATE INFO FROM STATUS FILE +- ///////////////////////////////////////// +- +- // read status file (just first few lines) +- $sfc=read_status_file($sf,50); +- //print_r($sfc); +- //exit(); +- +- // last update time +- if(isset($sfc['info']['last_update_check'])){ +- $updateinfo["last_update_check"]=$sfc['info']['last_update_check']; +- $updateinfo["found_update_info"]=true; +- } +- +- // update available +- if(isset($sfc['info']['update_available'])){ +- if($sfc['info']['update_available']=="1") +- $updateinfo["update_available"]=true; +- else +- $updateinfo["update_available"]=false; +- } +- +- // update version +- if(isset($sfc['info']['new_version'])){ +- $updateinfo["update_version"]=$sfc['info']['new_version']; +- } +- +- // did we find update information in the status file? if so, we're done +- if($updateinfo["found_update_info"]==true) +- return $updateinfo; +- +- +- //////////////////////////////////////////// +- // DETERMINE UPDATE INFO FROM RETENTION FILE +- //////////////////////////////////////////// +- +- // Nagios might be shutdown (ie, no status file), so try and read data from the retention file +- +- // read retentiion file (just first few lines) +- $rfc=read_retention_file($rf,50); +- //print_r($rfc); +- //exit(); +- +- // last update time +- if(isset($rfc['info']['last_update_check'])){ +- $updateinfo["last_update_check"]=$rfc['info']['last_update_check']; +- $updateinfo["found_update_info"]=true; +- } +- +- // update available +- if(isset($rfc['info']['update_available'])){ +- if($rfc['info']['update_available']=="1") +- $updateinfo["update_available"]=true; +- else +- $updateinfo["update_available"]=false; +- } +- +- // update version +- if(isset($rfc['info']['new_version'])){ +- $updateinfo["update_version"]=$rfc['info']['new_version']; +- } +- +- +- return $updateinfo; +- } +- +- +- +- + //////////////////////////////////////////////////////////////////////////////////////////////// + // FILE PROCESSING FUNCTIONS + //////////////////////////////////////////////////////////////////////////////////////////////// +@@ -470,4 +356,4 @@ function read_retention_file($thefile="",$maxlines=0){ + return $contents; + } + +-?> +\ No newline at end of file ++?> +diff --git a/html/main.php b/html/main.php +index a3bff3c..607a023 100644 +--- a/html/main.php ++++ b/html/main.php +@@ -13,17 +13,6 @@ $this_version="3.4.1"; + Nagios Core + + +- +- +- + + + +@@ -44,34 +33,6 @@ $this_version="3.4.1"; + + + +- +-

+- +-
+-
Warning: Automatic Update Checks are Disabled!
+-
Disabling update checks presents a possible security risk. Visit nagios.org to check for updates manually or enable update checks in your Nagios config file.
+-
+- +-
+-
A new version of Nagios Core is available!
+-
Visit nagios.org to download Nagios .
+-
+- +-
+- +- +- +
+
+
+@@ -87,12 +48,6 @@ $this_version="3.4.1"; + +
+ +- +-
+-

Don't Miss...

+-
+-
+- +
+ +
+@@ -110,11 +65,6 @@ $this_version="3.4.1"; + +
+ +- +-
+-

Latest News

+-
+-
+
+ + +diff --git a/html/rss-corefeed.php b/html/rss-corefeed.php +deleted file mode 100644 +index fbf8215..0000000 +--- a/html/rss-corefeed.php ++++ /dev/null +@@ -1,50 +0,0 @@ +-"; +- +- foreach ($rss->items as $item){ +- $x++; +- if($x>3) +- break; +- //$href = $item['link']; +- //$title = $item['title']; +- $desc = $item['description']; +- $html .="
  • {$item['description']}
  • "; +- } +- $html .=""; +- +- print $html; +- } +- else{ +- $html = " +- An error occurred while trying to fetch the Nagios Core feed. Stay on top of what's happening by visiting http://www.nagios.org/. +- "; +- print $html; +- } +- } +- +- +-?> +\ No newline at end of file +diff --git a/html/rss-newsfeed.php b/html/rss-newsfeed.php +deleted file mode 100644 +index 52d7901..0000000 +--- a/html/rss-newsfeed.php ++++ /dev/null +@@ -1,48 +0,0 @@ +-\n"; +- +- foreach ($rss->items as $item){ +- $x++; +- if($x>3) +- break; +- $href = $item['link']; +- $title = $item['title']; +- $html .="
  • $title
  • "; +- } +- $html .=' +-
  • More news...
  • +- '; +- +- print $html; +- } +- else{ +- $html = " +- An error occurred while trying to fetch the latest Nagios news. Stay on top of what's happening by visiting http://www.nagios.org/news. +- "; +- print $html; +- } +- } +- +- +-?> +\ No newline at end of file diff --git a/debian/patches/99_fix_php_warning.patch b/debian/patches/99_fix_php_warning.patch new file mode 100644 index 0000000..2f4b508 --- /dev/null +++ b/debian/patches/99_fix_php_warning.patch @@ -0,0 +1,20 @@ +Author: Alexander Wirt +Description: No description. +--- a/html/index.php ++++ b/html/index.php +@@ -8,6 +8,7 @@ + + + +Description: Stop cgi-bin/status.c from listing unauthorized hosts and + services in servicegroup view +Upstream bugreport: http://tracker.nagios.org/view.php?id=456 +--- a/cgi/status.c ++++ b/cgi/status.c +@@ -2547,6 +2547,10 @@ + if(temp_host == NULL) + continue; + ++ /* make sure user has rights to view this host */ ++ if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) ++ continue; ++ + /* skip this if it isn't a new host... */ + if(temp_host == last_host) + continue; +@@ -2752,6 +2756,10 @@ + if(temp_host == NULL) + continue; + ++ /* make sure user has rights to view this host */ ++ if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) ++ continue; ++ + /* skip this if it isn't a new host... */ + if(temp_host == last_host) + continue; +@@ -2936,6 +2944,10 @@ + if(temp_service == last_service) + continue; + ++ /* make sure user has rights to view this service */ ++ if(is_authorized_for_service(temp_service, ¤t_authdata) == FALSE) ++ continue; ++ + /* find the service status */ + temp_servicestatus = find_servicestatus(temp_service->host_name, temp_service->description); + if(temp_servicestatus == NULL) +@@ -3290,6 +3302,10 @@ + if(temp_host == NULL) + continue; + ++ /* make sure user has rights to view this host */ ++ if(is_authorized_for_host(temp_host, ¤t_authdata) == FALSE) ++ continue; ++ + /* get the status of the host */ + temp_hoststatus = find_hoststatus(temp_host->name); + if(temp_hoststatus == NULL) diff --git a/debian/patches/remove_javascript b/debian/patches/remove_javascript new file mode 100644 index 0000000..8808584 --- /dev/null +++ b/debian/patches/remove_javascript @@ -0,0 +1,19 @@ +--- a/html/Makefile.in ++++ b/html/Makefile.in +@@ -26,7 +26,6 @@ + rm -f docs/*~ + rm -f docs/images/*.jbf + rm -f stylesheets/*~ +- rm -f js/*~ + + distclean: clean + rm -f Makefile config.inc.php +@@ -61,8 +60,6 @@ + do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/stylesheets; done + for file in contexthelp/*.html; \ + do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/contexthelp; done +- for file in js/*.js; \ +- do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/js; done + # for file in docs/*.html; \ + # do $(INSTALL) -m 664 $(INSTALL_OPTS) $$file $(DESTDIR)$(HTMLDIR)/docs; done + # for file in docs/images/*.*; \ diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..4f4fe8f --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,11 @@ +remove_javascript +10_p1_pl_shebang.patch +40_fix_spurious_dollar_signs_added_to_command_lines.patch +50_cgi.cfg-debianize.patch +51_commands.cfg-debianize.patch +52_nagios.cfg-debianize.patch +55_strip_logarchivepath.patch +60_fix_p1.pl_patch_mini_epn.patch +70_fix_eventhandler_paths.patch +80_dont_call_home.patch +99_fix_php_warning.patch diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in new file mode 100644 index 0000000..34b73a3 --- /dev/null +++ b/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] nagios3-cgi.templates diff --git a/debian/po/cs.po b/debian/po/cs.po new file mode 100644 index 0000000..b6985c2 --- /dev/null +++ b/debian/po/cs.po @@ -0,0 +1,97 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Martin Sin , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3 2.4-1\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2006-08-13 17:01+0200\n" +"Last-Translator: Martin Sin \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Heslo webové administrace Nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" +"Zadejte prosím heslo použité pro nově vytvořeného uživatele \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Toto uživatelské jméno a heslo bude po dokončení nastavení použito pro " +"přihlášení k nagios. Pokud nezadáte heslo, budete muset nastavit přístup k " +"nagios ručně." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Potvrzení hesla:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Hesla nesouhlasí" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Servery Apache pro nastavení s nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Vyberte prosím, které servery apache nastavit pro použití s nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "Pokud dáváte přednost ruční konfiguraci, nevybírejte žádné servery." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Povolit podporu odkazů nagios 1.x v nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Vyberte si prosím, zda má konfigurace Apache pro nagios3 poskytovat " +#~ "kompatibilitu s odkazy z nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Pokud zvolíte tuto možnost, konfigurace apache použitá pro nagios bude " +#~ "obsahovat příkazy pro podporu URL adres známých z nagios 1.x. Tuto volbu " +#~ "byste neměli volit v případě, že máte dosud nainstalován nagios 1.x. " +#~ "Jinak může dojít k neočekávaným výsledkům." + +#~ msgid "apache, apache-ssl, apache2" +#~ msgstr "apache, apache-ssl, apache2" + +#~ msgid "apache2" +#~ msgstr "apache2" + +#~ msgid "false" +#~ msgstr "chybné" diff --git a/debian/po/da.po b/debian/po/da.po new file mode 100644 index 0000000..920ab52 --- /dev/null +++ b/debian/po/da.po @@ -0,0 +1,89 @@ +# Danish translation nagios3. +# Copyright (C) 2010 nagios3 og nedenstående oversættere. +# This file is distributed under the same license as nagios3 package. +# Joe Hansen , 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2010-11-30 17:30+01:00\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Adgangskode for Nagios' internetadministration:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" +"Angiv venligst adgangskoden som skal oprettes med brugeren »nagiosadmin«." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Dette er brugernavnet og adgangskoden, som du skal bruge til at logge ind i " +"din nagiosinstallation, efter konfigurationen er færdig. Hvis du ikke " +"angiver en adgangskode, skal du selv konfigurere adgang til nagios." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Bekræftelse af adgangskode:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Adgangskoderne er ikke ens" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Apacheservere at konfigurere for nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Vælg venligst hvilke apacheservere der skal konfigureres for nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Hvis du ønsker at udføre konfigurationen manuelt, så vælg ingen servere." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Aktiver understøttelse for nagios 1.x-henvisninger i nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Vælg venligst hvorvidt Apachekonfigurationen for nagios3 skal tilbyde " +#~ "kompatibilitet med henvisninger fra nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Hvis du vælger denne indstilling, vil apachekonfigurationen brugt for " +#~ "nagios inkludere direktiver for understøttelse af adresser fra nagios 1." +#~ "x. Du bør ikke vælge denne indstilling, hvis du stadig har nagios 1.x på " +#~ "dit system, da uforudsete ting kan opstå." diff --git a/debian/po/de.po b/debian/po/de.po new file mode 100644 index 0000000..9663496 --- /dev/null +++ b/debian/po/de.po @@ -0,0 +1,97 @@ +# translation of po-debconf template to German +# Copyright (C) 2006, Matthias Julius +# This file is distributed under the same license as the nagios3 package. +# +# Matthias Julius , 2006. +msgid "" +msgstr "" +"Project-Id-Version: nagios3 2.5-3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2006-11-27 22:53-0500\n" +"Last-Translator: Matthias Julius \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Passwort für die Web-Administration von nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" +"Bitte geben Sie das Passwort ein, das für den »nagiosadmin«-Benutzer " +"festgelegt werden soll." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Dies sind Benutzername und Passwort, die Sie verwenden werden, sich bei " +"Ihrer nagios-Installation anzumelden, nachdem deren Einrichtung beendet ist. " +"Falls Sie kein Passwort eingeben, werden Sie den Zugang zu nagios selbst " +"einrichten müssen." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Passwortbestätigung:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Die Passwörter stimmen nicht überein." + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Für nagios3 einzurichtende Apache-Server:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Bitte wählen Sie, welche Apache-Server für nagios3 eingerichtet werden " +#~ "sollen." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Falls Sie es vorziehen, die Einrichtung manuell durchzuführen, lassen Sie " +#~ "alle Server deselektiert." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Unterstützung für nagios-1.x-Links in nagios3 freischalten?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Bitte wählen Sie, ob die Apache-Konfiguration für nagios3 Kompatibilität " +#~ "mit Links von nagios 1.x zur Verfügung stellen soll." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Falls Sie diese Möglichkeit wählen, wird die Apache-Konfiguration für " +#~ "nagios Direktiven enthalten, um URLs von nagios 1.x zu unterstützen. Sie " +#~ "sollten diese Möglichkeit nicht wählen, falls noch nagios 1.x auf Ihrem " +#~ "System installiert ist. Dies könnte unvorhersehbare Ergebnisse liefern." + +#~ msgid "apache, apache-ssl, apache2" +#~ msgstr "apache, apache-ssl, apache2" diff --git a/debian/po/es.po b/debian/po/es.po new file mode 100644 index 0000000..56eeec7 --- /dev/null +++ b/debian/po/es.po @@ -0,0 +1,120 @@ +# nagios3 po-debconf translation to spanish +# Copyright (C) 2004 Software in the Public Interest +# This file is distributed under the same license as the nagios3 package. +# +# Changes: +# - Initial translation +# Rudy Godoy , 2006 +# +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Equipo de traducción al español, por favor lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/coordinacion +# especialmente las notas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3 2.5\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2006-10-23 23:28-0500\n" +"Last-Translator: Rudy Godoy \n" +"Language-Team: Debian Spanish l10n team \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Clave de administración web de Nagios" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" +"Por favor, introduzca la contraseña para el nuevo usuario «nagiosadmin»." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Estos son el usuario y contraseña que usará para ingresar a su instalación " +"de\n" +"nagios, después de que termine la configuración. Si no define una " +"contraseña\n" +"tendrá que configurar nagios de forma manual." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Confirmar clave:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Las contraseñas no coinciden" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Servidores apache que se deberían configurar para nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Por favor, seleccione los servidores apache que se deberían configurar " +#~ "para nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "No elija ningún servidor si prefiere realizar la configuración de forma " +#~ "manual." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "¿Desea activar el soporte para enlaces de nagios 1.x en nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Indique si la configuración de apache para nagios3 debería ser " +#~ "compatible\n" +#~ "con enlaces de nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Si elije esta opción, se incluirán las directivas para soporte de URLs\n" +#~ "de nagios 1.x en la configuración de apache. No debe elegir esta\n" +#~ "opción si todavía tiene nagios 1.x instalado en su sistema, esto puede\n" +#~ "producir resultados impredecibles." + +#~ msgid "apache, apache-ssl, apache2" +#~ msgstr "apache, apache-ssl, apache2" diff --git a/debian/po/eu.po b/debian/po/eu.po new file mode 100644 index 0000000..c002e33 --- /dev/null +++ b/debian/po/eu.po @@ -0,0 +1,91 @@ +# translation of nagios3-eu.po to Euskara +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Piarres Beobide , 2008. +msgid "" +msgstr "" +"Project-Id-Version: nagios3-eu\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2008-09-16 10:46+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Nagios web kudeatzaile pasahitza:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Mesedez ezarri \"nagiosadmin\" erabiltzailearen pasahitza." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Hau da nagios instalazioan konfigurazioa amaitu aurretik saioa hasteko " +"erabili behar diren erabiltzaile-izen eta pasahitza. Ez baduzu pasahitzik " +"ezartzen nagios saio hasiera zure kabuz konfiguratu beharko duzu." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Pasahitz berrespena:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Pasahitzak ez datoz bat" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Nagios3-rako konfiguratu behar diren apache zerbitzariak:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Mesedez hautatu zein apache zerbitzari konfiguratu behar dira nagios3-" +#~ "rako.apache konfiguratuta errepikatu arte." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Eskuzko instalazio bat egitea nahigo baduzu, utzi zerbitzari guztiak " +#~ "hautatu gabe." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Nagios 1.x loturako gaitu nagios3-an?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Mesedez hautatu Apache zerbitzariko nagios3 konfigurazioak nagios 1.x " +#~ "bertsioko loturekin bateragarritasuna mantendu behar duen ala ez." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Aukera hau hautatuaz gero apache nagios-en konfigurazioak nagios 1.x " +#~ "bertsioko loturak onartzeko direktibak izango ditu. Ez zenuke aukera hau " +#~ "onartu beharko dagoeneko 1.x bertsioetako nagios bat sisteman abiarazirik " +#~ "baduzu edo emaitza aurre-ikustezinak gerta daitezke." diff --git a/debian/po/fi.po b/debian/po/fi.po new file mode 100644 index 0000000..f4c05fe --- /dev/null +++ b/debian/po/fi.po @@ -0,0 +1,84 @@ +msgid "" +msgstr "" +"Project-Id-Version: nagios3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: \n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Nagios-verkkoylläpidon salasana:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Anna salasana käyttäjätunnukselle ”nagiosadmin”." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Tämän käyttäjätunnuksen ja salasanan avulla voidaan nagios-asennukseen " +"kirjautua, kun asetusten muokkaus on päättynyt. Jos salasanaa ei anneta, " +"täytyy nagiokseen pääsy asettaa käsin." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Salasanan vahvistus:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Salasanat eivät täsmää." + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Apache-palvelimet, joiden asetuksia muokataan nagios3:a varten:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Valitse minkä Apache-palvelimien asetuksia tulisi muokata nagios3:n " +#~ "käyttöönottamiseksi." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "Jos haluat tehdä asetukset käsin, älä valitse mitään palvelinta." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Otetaanko nagiosin version 1.x linkkien tuki käyttöön nagios3:ssa?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Valitse tulisiko nagios3:n Apache-asetusten olla yhteensopivia nagios 1.x:" +#~ "n linkkien kanssa." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Jos valitset tämän, Apachen nagios-asetuksiin sisällytetään tuki nagios 1." +#~ "x:n URLeille. Tätä ei tulisi valita, jos järjestelmässä on edelleen " +#~ "nagios 1.x asennettuna, koska seuraukset eivät ole ennustettavissa." diff --git a/debian/po/fr.po b/debian/po/fr.po new file mode 100644 index 0000000..4f0ddd6 --- /dev/null +++ b/debian/po/fr.po @@ -0,0 +1,103 @@ +# Nagios3 +# Copyright (C) 2006 +# This file is distributed under the same license as the Nagios3 package. +# Sean Finney, Marc Haber et Joerg Jasper , 2006 +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3_2.4-1\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2006-06-07 10:58+0100\n" +"Last-Translator: Steve Petruzzello \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: French\n" +"X-Poedit-Country: SWITZERLAND\n" +"X-Poedit-SourceCharset: iso-8859-15\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Mot de passe pour l'administration web de Nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" +"Veuillez fournir le mot de passe utiliser avec l'utilisateur " +"nagiosadmin." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Il s'agit du nom d'utilisateur et du mot de passe que vous utiliserez pour " +"vous connecter Nagios une fois que l'installation est termine. Si vous ne " +"fournissez pas de mot de passe, vous devrez configurer Nagios vous-mme afin " +"d'y accder." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Confirmation du mot de passe:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Mots de passe diffrents" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Serveurs Apache configurer pour Nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "Veuillez choisir le(s) serveur(s) web configurer pour Nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Si vous prfrez configurer vous-mme ce paquet, ne slectionnez aucun " +#~ "serveur." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Faut-il activer la gestion des liens de Nagios1.x pour Nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Veuillez choisir si la configuration d'Apache pour Nagios3 doit permettre " +#~ "la compatibilit avec les liens de Nagios1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "En choisissant cette option, la configuration d'Apache pour Nagios " +#~ "contiendra des directives permettant la gestion d'URL depuis Nagios1.x. " +#~ "Vous ne devriez pas choisir cette option si vous avez encore Nagios1.x " +#~ "sur votre systme, sinon vous risquez d'avoir des rsultats inattendus." + +#~ msgid "apache, apache-ssl, apache2" +#~ msgstr "Apache, Apache-ssl, Apache2" + +#~ msgid "apache2" +#~ msgstr "Apache2" + +#~ msgid "false" +#~ msgstr "Faux" diff --git a/debian/po/it.po b/debian/po/it.po new file mode 100644 index 0000000..624bf8a --- /dev/null +++ b/debian/po/it.po @@ -0,0 +1,89 @@ +# Italian (it) translation of debconf templates for nagios3 +# Copyright (C) 2008 Software in the Public Interest +# This file is distributed under the same license as the nagios3 package. +# Luca Monducci , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3 3.0.3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2008-11-15 21:02+0100\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Password per l'amministrazione di nagios da web:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Inserire la password da associare all'utente \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Al termine della configurazione è necessario usare questo nome utente e " +"questa password per accedere alla propria installazione di nagios. Se non si " +"inserisce una password, si dovrà configurare da soli l'accesso a nagios." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Conferma della password:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Le password non coincidono" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Server Apache da configurare per nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Selezionare quali server Apache devono essere configurati per nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Per effettuare una configurazione manuale, lasciare tutti i server non " +#~ "selezionati." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Attivare il supporto per i collegamenti di nagios 1.x in nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Scegliere se la configurazione di Apache per nagios3 deve fornire anche " +#~ "la compatibilità con i collegamenti di nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Se si accetta, la configurazione di apache per nagios includerà anche le " +#~ "direttive per il supporto delle URL di nagios 1.x. Non si deve accettare " +#~ "se sul proprio sistema è ancora installato nagios 1.x, altrimenti i " +#~ "risultati saranno imprevedibili." diff --git a/debian/po/ja.po b/debian/po/ja.po new file mode 100644 index 0000000..e12534c --- /dev/null +++ b/debian/po/ja.po @@ -0,0 +1,90 @@ +# Japanese debconf templates translation for nagios3. +# Copyright (C) 2007 Noritada Kobayashi +# This file is distributed under the same license as the nagios3 package. +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3 (debconf) 2.6-3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2007-03-02 22:03+0900\n" +"Last-Translator: Noritada Kobayashi \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "nagios ウェブ管理用パスワード:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "\"nagiosadmin\" ユーザ用に作成するパスワードを入力してください。" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"これは、設定完了後に、インストールした nagios にログインするのに使用される" +"ユーザ名とパスワードです。ここでパスワードを入力しない場合は、nagios へのアク" +"セスを自分で設定しなければなりません。" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "パスワードの確認:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "パスワードが一致しません" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "nagios3 の設定をする Apache サーバ:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "nagios3 の設定をする Apache サーバを選択してください。" + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "手動で設定を行う方がよい場合は、どのサーバも選択せずに次に進んでください。" + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "nagios3 内で nagios 1.x のリンクのサポートを有効にしますか?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "nagios3 用の Apache の設定によって nagios 1.x 由来のリンクとの互換性を与え" +#~ "るかどうかを選択してください。" + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "このオプションを選択すると、nagios 用に使用される Apache の設定に、nagios " +#~ "1.x 由来の URL をサポートするディレクティブが含まれるようになります。シス" +#~ "テムでまだ nagios 1.x を使用している場合はこのオプションを選択すべきではあ" +#~ "りません。選択すると予測不可能な結果になります。" + +# FIXME: Do not mark for translation since these are package names. +#~ msgid "apache, apache-ssl, apache2" +#~ msgstr "apache, apache-ssl, apache2" diff --git a/debian/po/nl.po b/debian/po/nl.po new file mode 100644 index 0000000..83d8564 --- /dev/null +++ b/debian/po/nl.po @@ -0,0 +1,88 @@ +# Dutch translation of nagios3 debconf templates. +# Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the nagios3 package. +# Jeroen Schot , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3 3.2.3-3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2012-01-06 10:59+0100\n" +"Last-Translator: Jeroen Schot \n" +"Language-Team: Debian l10n Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Nagios webbeheerwachtwoord:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Kies een wachtwoord voor de gebruiker \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Dit zij de gebruikersnaam en wachtwoord waarmee u in kunt loggen bij uw " +"nagios-systeem nadat de configuratie is voltooid. Als u geen wachtwoord " +"opgeeft zal u de toegang tot nagios zelf moeten instellen." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Wachtwoord ter bevestiging:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "De wachtwoorden komen niet overeen" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Automatisch te configureren apache-servers:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "Welke apache-servers moeten er worden geconfigureerd voor nagios3?" + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Als u de configuratie liever handmatig doet, selecteer dan geen enkele " +#~ "server." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Ondersteuning activeren voor nagios-1.x-links?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Geef aan of de Apache-configuratie van nagios3 compatibiliteit moet " +#~ "aanbieden met links van nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Als u voor deze optie kiest zal de apache-configuratie van nagios regels " +#~ "bevatten om URL's van nagios1.x te ondersteunen. U moet hier niet voor " +#~ "kiezen als u nog steeds nagios 1.x op uw systeem heeft, anders kan dit " +#~ "tot onverwachte resultaten leiden." diff --git a/debian/po/pl.po b/debian/po/pl.po new file mode 100644 index 0000000..03e5a13 --- /dev/null +++ b/debian/po/pl.po @@ -0,0 +1,91 @@ +# debconf templates for ppp package +# Polish translation +# Copyright (C) 2008 +# This file is distributed under the same license as the ppp package. +# Łukasz Paździora , 2008 +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3 3.0.3-3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2008-11-20 17:20+0100\n" +"Last-Translator: Łukasz Paździora \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Hasło administratora Nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Proszę podać hasło dla użytkownika \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Po zakończeniu konfiguracji ta nazwa użytkownika oraz hasło zostaną użyte do " +"zalogowania się w nagios. Jeśli hasło nie zostanie podane, konieczne będzie " +"ręczne skonfigurowanie dostępu do nagios." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Potwierdzenie hasła:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Hasła nie są takie same" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Konfiguracja serwerów Apache dla nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Proszę wybrać, które serwery apache powinny zostać skonfigurowane dla " +#~ "nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Nie zaznaczaj żadnego serwera jeżeli chcesz przeprowadzić konfigurację " +#~ "ręcznie." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Włączyć obsługę linków z nagios 1.x w nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Czy konfiguracja Apache dla nagios3 powinna być kompatybilna z linkami z " +#~ "nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Jeśli ta opcja zostanie wybrana, konfiguracja apache używana dla nagios " +#~ "będzie zawierać dyrektywy obsługujące URL-e z nagios 1.x. Ta opcja nie " +#~ "powinna być zaznaczona jeśli nagios 1.x jest nadal zainstalowany na tym " +#~ "systemie ponieważ może to wywołać niemożliwe do przewidzenia efekty." diff --git a/debian/po/pt.po b/debian/po/pt.po new file mode 100644 index 0000000..c268c8c --- /dev/null +++ b/debian/po/pt.po @@ -0,0 +1,96 @@ +# translation of nagios3 debconf to Portuguese +# Copyright (C) 2007 Américo Monteiro +# This file is distributed under the same license as the nagios3 package. +# +# Américo Monteiro , 2007. +msgid "" +msgstr "" +"Project-Id-Version: nagios3 2.9-1\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2007-08-04 04:08+0100\n" +"Last-Translator: Américo Monteiro \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Password de administração Web do Nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" +"Por favor indique uma password para ser criada com o utilizador \"nagiosadmin" +"\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Este é o nome de utilizador e password que irá usar para se autenticar na " +"instalação do seu nagios após a configuração estar completa. Se você não " +"providenciar uma password, terá que ser você a configurar o acesso ao nagios." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Confirmação da password:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "As passwords não condizem." + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Servidores Apache a configurar para nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Por favor seleccione quais servidores Apache deverão ser configurados " +#~ "para nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Se você preferir efectuar a configuração manualmente, não seleccione " +#~ "nenhum servidor." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Activar suporte para atalhos do nagios 1.x no nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Por favor escolha se a configuração do Apache para nagios3 deverá " +#~ "providenciar compatibilidade com atalhos do nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Se seleccionar esta opção, a configuração do apache usada para nagios irá " +#~ "incluir directivas para suportar URLs do nagios 1.x. Você não deverá " +#~ "escolher esta opção se ainda tiver o nagios 1.x no seu sistema, ou podem " +#~ "ocorrer resultados imprevisíveis." + +#~ msgid "apache, apache-ssl, apache2" +#~ msgstr "apache, apache-ssl, apache2" diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po new file mode 100644 index 0000000..61deeeb --- /dev/null +++ b/debian/po/pt_BR.po @@ -0,0 +1,92 @@ +# nagios3 Brazilian Portuguese translation. +# Copyright (C) THE nagios3's COPYRIGHT HOLDER +# This file is distributed under the same license as nagios3 package. +# Bruno Gurgel Gomes de Oliveira , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: nagios3_3.0.3-1\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2008-07-25 19:40-0300\n" +"Last-Translator: Bruno Gurgel Gomes de Oliveira \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Senha de administração web do Nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Por favor, forneça a senha a ser criada com o usuário \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Este é o nome de usuário e a senha que você usará para acessar sua " +"instalação nagios depois que a configuração estiver completa. Se você não " +"fornecer uma senha, você mesmo terá que configurar o acesso ao nagios." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Confirmação de senha:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "As senhas não coincidem" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Servidores apache a serem configurados para o nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "" +#~ "Por favor, selecione quais servidores apache deverão ser configurados " +#~ "para o nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Se você preferir realizar a configuração manualmente, não selecione " +#~ "nenhum servidor." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Habilitar suporte para links do nagios 1.x no nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Por favor, selecione se a configuração do Apache para o nagios3 deve " +#~ "fornecer compatibilidade com links do nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Se você selecionar esta opção, a configuração do apache usada para o " +#~ "nagios incluirá diretivas para dar suporte a URLs do nagios 1.x. Você não " +#~ "deveria escolher esta opção se você ainda tem o nagios 1.x no seu " +#~ "sistema, ou resultados imprevisíveis podem ocorrer." diff --git a/debian/po/ru.po b/debian/po/ru.po new file mode 100644 index 0000000..067f0f7 --- /dev/null +++ b/debian/po/ru.po @@ -0,0 +1,89 @@ +# translation of ru.po to Russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Kozlov , 2008. +msgid "" +msgstr "" +"Project-Id-Version: ru\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2008-09-15 19:06+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Пароль для веб-администрирования Nagios:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Введите пароль для создаваемой учётной записи \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Вы будете использовать эту учётную запись и пароль для доступа к nagios " +"после завершения настройки. Если вы не укажите пароль, то вам нужно будет " +"настроить доступ к nagios самостоятельно." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Введите пароль ещё раз:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Пароли не совпадают" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Серверы apache для настройки под nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "Выберите серверы apache, которые нужно настроить для nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "Если вы хотите выполнить настройку вручную, то ничего не выбирайте." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Включить поддержку ссылок nagios 1.x в nagios3?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Выберите, нужно ли настраивать Apache в nagios3 для предоставления " +#~ "обратной совместимости по ссылкам с nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Если вы ответите утвердительно, то в настройку apache, который " +#~ "используется с nagios, будут включены директивы для поддержки URL-ов из " +#~ "nagios 1.x. Лучше не включать поддержку, если в системе ещё используется " +#~ "nagios 1.x, так как это приведёт к непредсказуемым последствиям." diff --git a/debian/po/sv.po b/debian/po/sv.po new file mode 100644 index 0000000..92a9712 --- /dev/null +++ b/debian/po/sv.po @@ -0,0 +1,88 @@ +# translation of nagios3.po to swedish +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Martin Bagge , 2008. +msgid "" +msgstr "" +"Project-Id-Version: nagios3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: 2008-09-17 23:30+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: swedish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "Lösenord för nagios webbadministration:" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "Ange lösenordet som ska användas för användaren \"nagiosadmin\"." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" +"Detta användarnamn och lösenord använder du för att logga in i din " +"nagiosinstallation. Om du inte anger ett lösenord här måste du ställa in " +"nagios manuellt." + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "Upprepa lösenordet:" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "Lösenorden stämmer inte överrens" + +#~ msgid "Apache servers to configure for nagios3:" +#~ msgstr "Ange vilken apacheversion som ska förberedas för nagios3:" + +#~ msgid "Please select which apache servers should be configured for nagios3." +#~ msgstr "Ange den apacheserver som ska ställas in för nagios3." + +#~ msgid "" +#~ "If you would prefer to perform configuration manually, leave all servers " +#~ "unselected." +#~ msgstr "" +#~ "Om du föredrar att ställa in apache manuellt markerar du inte något av " +#~ "alternativen." + +#~ msgid "Enable support for nagios 1.x links in nagios3?" +#~ msgstr "Aktivera stöd för länkar som de såg ut inagios 1.x?" + +#~ msgid "" +#~ "Please choose whether the Apache configuration for nagios3 should provide " +#~ "compatibility with links from nagios 1.x." +#~ msgstr "" +#~ "Ange om du vill att inställningarna i Apache ska ha stöd för länkar från " +#~ "nagios 1.x." + +#~ msgid "" +#~ "If you select this option, the apache configuration used for nagios will " +#~ "include directives to support URLs from nagios 1.x. You should not choose " +#~ "this option if you still have nagios 1.x on your system, or unpredictable " +#~ "results may occur." +#~ msgstr "" +#~ "Om du väljer detta alternativ för nagios så kommer stöd för URL:er från " +#~ "nagios 1.x aktiveras. Du ska inte aktivera detta om du fortfarande har " +#~ "nagios 1.x instllerat på ditt system, konflikter kan då uppstå." diff --git a/debian/po/templates.pot b/debian/po/templates.pot new file mode 100644 index 0000000..401ab2a --- /dev/null +++ b/debian/po/templates.pot @@ -0,0 +1,52 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: nagios3\n" +"Report-Msgid-Bugs-To: nagios3@packages.debian.org\n" +"POT-Creation-Date: 2013-06-26 23:55+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "Nagios web administration password:" +msgstr "" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"Please provide the password to be created with the \"nagiosadmin\" user." +msgstr "" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:1001 +msgid "" +"This is the username and password you will use to log in to your nagios " +"installation after configuration is complete. If you do not provide a " +"password, you will have to configure access to nagios yourself." +msgstr "" + +#. Type: password +#. Description +#: ../nagios3-cgi.templates:2001 +msgid "Password confirmation:" +msgstr "" + +#. Type: note +#. Description +#: ../nagios3-cgi.templates:3001 +msgid "The passwords do not match" +msgstr "" diff --git a/debian/resource.cfg b/debian/resource.cfg new file mode 100644 index 0000000..3ed732b --- /dev/null +++ b/debian/resource.cfg @@ -0,0 +1,31 @@ +########################################################################### +# +# RESOURCE.CFG - Resource File for Nagios +# +# You can define $USERx$ macros in this file, which can in turn be used +# in command definitions in your host config file(s). $USERx$ macros are +# useful for storing sensitive information such as usernames, passwords, +# etc. They are also handy for specifying the path to plugins and +# event handlers - if you decide to move the plugins or event handlers to +# a different directory in the future, you can just update one or two +# $USERx$ macros, instead of modifying a lot of command definitions. +# +# The CGIs will not attempt to read the contents of resource files, so +# you can set restrictive permissions (600 or 660) on them. +# +# Nagios supports up to 32 $USERx$ macros ($USER1$ through $USER32$) +# +# Resource files may also be used to store configuration directives for +# external data sources like MySQL... +# +########################################################################### + +# Sets $USER1$ to be the path to the plugins +$USER1$=/usr/lib/nagios/plugins + +# Sets $USER2$ to be the path to event handlers +#$USER2$=/usr/lib/nagios/plugins/eventhandlers + +# Store some usernames and passwords (hidden from the CGIs) +#$USER3$=someuser +#$USER4$=somepassword diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..6997b10 --- /dev/null +++ b/debian/rules @@ -0,0 +1,157 @@ +#!/usr/bin/make -f +# debian/rules makefile for nagios3 +# Last modified: +# $Id$ + +# export DH_VERBOSE=1 +export DEB_BUILD_HARDENING=1 + +b := $(shell pwd)/debian + +export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +# -Wall disabled until source is fixed to not print tons of warnings with it. :) +#CFLAGS = -Wall -g +CFLAGS = -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +CFLAGS += -O0 +else +CFLAGS += -O2 +endif + +SHELL = /bin/sh -e +CONFIGURE = CFLAGS='$(CFLAGS)' ./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --bindir=/usr/sbin \ + --sbindir=/usr/lib/cgi-bin/nagios3 \ + --datadir=/usr/share/nagios3/htdocs \ + --sysconfdir=/etc/nagios3 \ + --infodir=/usr/share/info \ + --libexecdir=/usr/lib/nagios/plugins \ + --localstatedir=/var/lib/nagios3 \ + --enable-event-broker \ + --enable-embedded-perl \ + --with-nagios-user=nagios \ + --with-nagios-group=nagios \ + --with-command-user=nagios \ + --with-command-group=nagios \ + --with-init-dir=/etc/init.d \ + --with-lockfile=/var/run/nagios3/nagios3.pid \ + --with-mail=/usr/bin/mail \ + --with-perlcache \ + --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) \ + --with-htmurl=/nagios3 \ + --with-cgiurl=/cgi-bin/nagios3 + +clean: + dh_testdir -a + dh_testroot -a + if test -f Makefile; then make distclean; fi + rm -f install-stamp configure-stamp build-stamp fix-configs-stamp + rm -rf debian-configs + -rm contrib/perlxsi.c + find -type d -name autom4te.cache -print0 | xargs -0 -r rm -rf \; + -rm -f platform.h auto-include.h + find -type d -name build -print0 | xargs -0 -r rm -rf \; + dh_clean + +fix-configs: fix-configs-stamp +fix-configs-stamp: configure-stamp + mkdir -p debian-configs + sed -e '/Sample CGI/ s/\([0-9]\.[0-9]\.[0-9]\)//' \ + -e '/Last Modified/,+1 d' \ + sample-config/cgi.cfg > debian-configs/cgi.cfg + sed -e '/Sample Main Config/ s/\([0-9]\.[0-9]\.[0-9]\)//' \ + -e '/Last Modified/ d' \ + sample-config/nagios.cfg > debian-configs/nagios.cfg + sed -e '/SAMPLE COMMAND DEFINITIONS/ s/\([0-9]\.[0-9]\.[0-9]\)//' \ + -e '/Last Modified/,+1 d' \ + -e '/^#$$/ d' sample-config/template-object/commands.cfg > debian-configs/commands.cfg + +configure: configure-stamp +configure-stamp: + dh_testdir -a + @echo "Doing $@" + if test -f Makefile; then make clean; fi + ln -sf /usr/share/misc/config.sub . + ln -sf /usr/share/misc/config.guess . + rm -f config.cache + $(CONFIGURE) + touch configure-stamp + +build: build-stamp +build-stamp: configure-stamp + dh_testdir -a + @echo "Doing $@" + $(MAKE) all + make -C contrib + touch build-stamp + +install: install-stamp +install-stamp: build-stamp fix-configs-stamp + @echo "Doing $@" + dh_testdir -a + dh_testroot -a + dh_installdirs -a -i + # zero out INSTALL_OPTS to prevent chowning at build-time + make install-unstripped DESTDIR=$b/tmp INSTALL_OPTS="" + # move some arch-indep stuff to the other packages + chgrp www-data ${b}/nagios3-common/var/cache/nagios3 + chmod g+s ${b}/nagios3-common/var/cache/nagios3 + chown root:www-data ${b}/nagios3-common/var/lib/nagios3/rw + chmod 700 ${b}/nagios3-common/var/lib/nagios3/rw + mv debian/tmp/usr/sbin/nagios ${b}/nagios3-core/usr/sbin/nagios3 + mv debian/tmp/usr/sbin/nagiostats ${b}/nagios3-core/usr/sbin/nagios3stats + dh_link -i + dh_lintian + dh_installdocs -i + dh_installman -a -pnagios3 + dh_installlogrotate + dh_installchangelogs -i + dh_install -i + dh_installinit --name nagios3 -- defaults 30 18 + dh_installexamples + chmod 755 ${b}/nagios3-common/var/lib/nagios3 + rm ${b}/nagios3-common/etc/nagios3/cgi.cfg + touch install-stamp + +binary: binary-arch binary-indep +binary-arch: install-stamp + @echo "Doing $@" + dh_testdir -a + dh_testroot -a + dh_link -a + dh_installchangelogs -a + dh_installdocs -a + dh_installdebconf -a + dh_install -a + chmod 600 ${b}/nagios3-common/etc/nagios3/resource.cfg + # fix permissions of p1 + chmod 755 ${b}/nagios3-core/usr/lib/nagios3/p1.pl + mkdir -p ${b}/nagios3-dbg/usr/bin/ + mv contrib/mini_epn ${b}/nagios3-dbg/usr/bin/mini_epn_nagios3 + dh_strip -a --dbg-package=nagios3-dbg + dh_compress -a -X.php + dh_fixperms -a -X/var/cache/nagios3 + dh_makeshlibs -a -V + dh_installdeb -a + dh_perl -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +binary-indep: install-stamp + dh_link -i + dh_compress -i + dh_fixperms -i -Xnagios3/resource.cfg + dh_installdebconf -i + dh_perl -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +.PHONY: binary-indep binary-arch build configure binary install 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..40bd68b --- /dev/null +++ b/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://sf.net/nagios/nagios-(3\.[0-9.]+)\.tar\.gz