--- cacti-0.8.7e.orig/debian/compat +++ cacti-0.8.7e/debian/compat @@ -0,0 +1 @@ +5 --- cacti-0.8.7e.orig/debian/cacti.apache.conf +++ cacti-0.8.7e/debian/cacti.apache.conf @@ -0,0 +1,22 @@ +Alias /cacti /usr/share/cacti/site + + + Options +FollowSymLinks + AllowOverride None + order allow,deny + allow from all + + AddType application/x-httpd-php .php + + php_flag magic_quotes_gpc Off + php_flag short_open_tag On + php_flag register_globals Off + php_flag register_argc_argv On + php_flag track_vars On + # this setting is necessary for some locales + php_value mbstring.func_overload 0 + php_value include_path . + + DirectoryIndex index.php + + --- cacti-0.8.7e.orig/debian/docs +++ cacti-0.8.7e/debian/docs @@ -0,0 +1,6 @@ +docs/README +docs/CONTRIB +docs/html/ +docs/txt/ +cacti.sql +debian/cacti.apache.conf --- cacti-0.8.7e.orig/debian/cacti.cron.d +++ cacti-0.8.7e/debian/cacti.cron.d @@ -0,0 +1,2 @@ +MAILTO=root +*/5 * * * * www-data php /usr/share/cacti/site/poller.php >/dev/null 2>/var/log/cacti/poller-error.log --- cacti-0.8.7e.orig/debian/install.excludes +++ cacti-0.8.7e/debian/install.excludes @@ -0,0 +1,9 @@ +cactid +cacti.sql +docs +LICENSE +log +README +rra +#adodb # we use the debian libphp-adodb package +lib/adodb --- cacti-0.8.7e.orig/debian/cacti.links +++ cacti-0.8.7e/debian/cacti.links @@ -0,0 +1,2 @@ +/usr/share/cacti/resource /usr/share/cacti/site/resource +/usr/share/doc/cacti/html /usr/share/cacti/site/docs/html --- cacti-0.8.7e.orig/debian/watch +++ cacti-0.8.7e/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://www.cacti.net/downloads/cacti-(.*)\.tar\.gz --- cacti-0.8.7e.orig/debian/dirs +++ cacti-0.8.7e/debian/dirs @@ -0,0 +1,10 @@ +etc/cacti +var/log/cacti +var/lib/cacti/rra +usr/share/cacti/site +usr/share/cacti/site/docs +usr/share/doc/cacti +usr/local/share/cacti/resource +usr/local/share/cacti/scripts +usr/share/lintian/overrides +usr/share/dbconfig-common/data/cacti/install --- cacti-0.8.7e.orig/debian/cacti.lintian-overrides +++ cacti-0.8.7e/debian/cacti.lintian-overrides @@ -0,0 +1,3 @@ +# the following directory has to be writable by www-data, and also +# may contain privileged/sensative data, hence root:www-data/0770. +cacti binary: non-standard-dir-perm var/lib/cacti/rra/ 0770 != 0755 --- cacti-0.8.7e.orig/debian/control +++ cacti-0.8.7e/debian/control @@ -0,0 +1,28 @@ +Source: cacti +Section: web +Priority: extra +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Sean Finney +Build-Depends: debhelper (>= 4.2.8), po-debconf, quilt +Homepage: http://www.cacti.net/ +Vcs-Browser: http://git.debian.org/?p=users/seanius/cacti.git +Vcs-Git: git://git.debian.org/git/users/seanius/cacti.git +Standards-Version: 3.7.3 + +Package: cacti +Architecture: all +Depends: apache2 | apache | apache-ssl | apache-perl | httpd, libapache2-mod-php5 | php5, php5-mysql, php5-cli, php5-snmp, virtual-mysql-client, rrdtool, snmp, libphp-adodb (>= 4.50-1), ucf, dbconfig-common (>= 1.8.8), ${misc:Depends} +Recommends: mysql-server, iputils-ping, logrotate +Suggests: php5-ldap +Description: Frontend to rrdtool for monitoring systems and services + Cacti is a complete frontend to rrdtool, it stores all of the necessary + information to create graphs and populates them with data in a MySQL + database. The frontend is completely PHP driven. Along with being able + to maintain Graphs, Data Sources, and Round Robin Archives in a + database, cacti handles the data gathering also. There is also SNMP + support for those used to creating traffic graphs with MRTG. + . + This package requires a functional MySQL database server on either the + installation host or remotely accessible system. If you do not already + have a database server available, you should also install mysql-server. + --- cacti-0.8.7e.orig/debian/changelog +++ cacti-0.8.7e/debian/changelog @@ -0,0 +1,949 @@ +cacti (0.8.7e-2ubuntu0.3) lucid-proposed; urgency=low + + * Fix regression in the CVE-2010-1645 update on error handling: + "PHP Fatal error: Cannot use string offset as an array in + /usr/share/cacti/site/lib/data_query.php on line 183" (LP: #914746) + - debian/patches/LP914746_regression_lucid_string_offset_in_data_query.patch + + -- Paul Gevers Wed, 18 Jul 2012 13:55:19 -0700 + +cacti (0.8.7e-2ubuntu0.2) lucid-security; urgency=low + + * SECURITY UPDATE: FIX SQL injection in auth_login.php (LP: #906773) + - debian/patches/CVE-2011-4824.patch: patch derived from upstream. + - CVE-2011-4824 + + -- Mahyuddin Susanto Tue, 20 Dec 2011 22:39:36 +0700 + +cacti (0.8.7e-2ubuntu0.1) lucid-security; urgency=low + + * SECURITY UPDATE: Fix SQL injection vulnerability in templates_export.php + (LP: #599892) + - debian/patches/CVE-2010-1431.patch: patch derived from upstream patch + - CVE-2010-1431 + * SECURITY UPDATE: Fix cross-site scripting (XSS) vulnerabilities + - debian/patches/CVE-2010-1644.patch: patch derived from upstream patch + - CVE-2010-1644 + * SECURITY UPDATE: Fix arbitrary command execution vuln + - debian/patches/CVE-2010-1645.patch: patch derived from upstream patches + - CVE-2010-1645 + * SECURITY UPDATE: Fix a SQL injection vulnerability in graph.php + - debian/patches/CVE-2010-2092.patch: patch derived from Debian patch + - CVE-2010-2092 + - DSA-2060 + * SECURITY UPDATE: Fix cross-site scripting (XSS) vulnerabilities + - debian/patches/CVE-2010-2543.patch: patch derived from upstream patches + - CVE-2010-2543 + - CVE-2010-2544 + - CVE-2010-2545 + + -- Brian Thomason Mon, 24 Jan 2011 11:20:13 -0500 + +cacti (0.8.7e-2) unstable; urgency=low + + * Import 2 new "official" patches from upstream + * Italian debconf translation + - thanks to Alessandro De Zorzi (Closes: #548447) + * Fix for "Undefined index: local_data_id in graphs_new.php" + - new debian patch 563955_undefined_index_local_data_id.patch + - thanks to Teodor MICU (Closes: #563955) + * Fix for "must not RE-add /etc/apache2/conf.d/cacti.conf link on upgrade" + - thanks to Patrick Schoenfeld (Closes: #561477) + * Bump debhelper compatibility level to 5 + + -- Sean Finney Sun, 24 Jan 2010 21:39:46 +0100 + +cacti (0.8.7e-1) unstable; urgency=low + + * New upstream release (Closes: #541490). + + [ Sean Finney ] + * fix path to global.php in cli scripts (Closes: #525024). + - thanks to Jean-François Masure + * add a watch file to track upstream updates (Closes: #527066). + - thanks to Laurent Bigonville + * downgrade Depends on logrotate to a Recommends (Closes: #526997). + - thanks to Russ Allbery + * updates to (eu,ru,ja) debconf translations + - eu: Piarres Beobide (Closes: #535636). + - ru: Yuri Kozlov (Closes: #535820). + - ja: Hideki Yamane (Debian-JP) (Closes: #546229). + + [ Sander Klein ] + * Change location of docs/text to docs/txt + * Removed 'Official' patches for 0.8.7d since they are not needed anymore + * Import 'Official' patches for 0.8.7e + * Make cli-include-path.patch apply + * use ':' with chown instead of deprecated '.' + * suggested spelling/grammar changes from lintian for ./debian/control + + -- Sean Finney Mon, 14 Sep 2009 23:42:32 +0200 + +cacti (0.8.7d-1) unstable; urgency=low + + * Imported Upstream version 0.8.7d + * update/massage/remove patches for new upstream release + * import new "official" patches for 0.8.7d + * remove obsolete dependencies on php4 packages (Closes: #514342) + * update default apache config php options (Closes: #459594) + * add Homepage field to control file (Closes: #494811) + * add Suggests: php5-ldap for ldap authentication (Closes: #496854) - + thanks to Paul Nijjar + * call ucf with --debconf-ok in postinst + * copy cli directory to /usr/share/cacti (Closes: #483556) + * add gbp.conf for git-buildpackage and friends + + -- Sean Finney Sun, 29 Mar 2009 17:51:10 +0200 + +cacti (0.8.7b-2) unstable; urgency=low + + * ack previous NMU, thanks Andreas. + * cacti packaging now in public git repository, updated Vcs-foo headers + in debian/control appropriately. + * update Standards-Version to 3.7.3. + * New upstream "official" patch: official_invalid-upgrade-path.patch + * New upstream "official" patch: official_snmp_auth_none_notice.patch + + -- Sean Finney Sat, 22 Mar 2008 23:58:08 +0100 + +cacti (0.8.7b-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Move ucf call in cacti.postinst above db_stop to fix freeze during + installation. (Closes: #470066) + + -- Andreas Henriksson Mon, 17 Mar 2008 12:52:17 +0100 + +cacti (0.8.7b-1) unstable; urgency=high + + * New upstream release. Fixes multiple security vulnerabilities (no + CVE references yet). Closes: #465567. Thanks to Alessandro Ogier for + the suggestion about the overzealous PHP_SELF checking. + + -- Sean Finney Wed, 13 Feb 2008 23:30:31 +0100 + +cacti (0.8.7a-2) unstable; urgency=high + + * Update errors in copyright information (closes: #457366). + + -- Sean Finney Sun, 30 Dec 2007 22:56:17 +0100 + +cacti (0.8.7a-1) unstable; urgency=high + + * New upstream release, including fixes for bugs and security issues. + Includes fix for CVE-2007-6035 (sql injection vulnerability) + Closes: #452085. + + -- Sean Finney Tue, 20 Nov 2007 18:20:13 +0100 + +cacti (0.8.7-1) unstable; urgency=low + + * New upstream release. + * updated 06_config_settings.php_cactid_path.patch with an extra fix + for the cacti logfile path. + + -- sean finney Wed, 24 Oct 2007 20:15:19 +0200 + +cacti (0.8.7~beta4-1~pre) experimental; urgency=low + + * New upstream (beta) release + * Removed "official" patches incorporated into upstream version: + - 07_official_graph_debug_lockup_fix.patch + - 07_official_ping_php_version4_snmpgetnext.patch + - 07_official_thumbnail_graphs_not_working.patch + - 07_official_tree_console_missing_hosts.patch + * updated 06_config_settings.php_cactid_path.patch to use FHS compatible + locations as default values, removing the need for shipping + compatibility symlinks (closes: #366662). + * updated list of upstream docs and changelog location. + * Package now uses quilt instead of dpatch for add-on patch managment. + + -- sean finney Tue, 09 Oct 2007 19:39:49 +0200 + +cacti (0.8.6j-1) unstable; urgency=low + + * New upstream release. Any further etch-targeted changes will be + handled in a seperate branch. + * The following patches are now obsolete: + - 07_official_poller_output_remainder.dpatch + - 07_official_import_template_argument_space_removal.dpatch + - 07_official_dec06-vulnerability-scripts-0.8.6i.dpatch + - 07_official_dec06-vulnerability-poller-0.8.6i.dpatch + - 08_svn_timespan_breakage_fix.dpatch + * The following new "official" patches are added: + - 07_official_graph_debug_lockup_fix.dpatch + - 07_official_ping_php_version4_snmpgetnext.dpatch + - 07_official_thumbnail_graphs_not_working.dpatch + - 07_official_tree_console_missing_hosts.dpatch + + -- sean finney Tue, 06 Mar 2007 19:00:03 +0100 + +cacti (0.8.6i-4) unstable; urgency=medium + + * don't unconditionally source the dbconfig-common helper script + in the cacti config script, which would at least require a + pre-depends, but ultimately isn't necessary (closes: #408550). + + -- sean finney Fri, 26 Jan 2007 23:25:11 +0100 + +cacti (0.8.6i-3) unstable; urgency=high + + * include the list of official patches from upstream which (among other + things) resolves multiple vulnerabilities in the poller and default + scripts (Closes: 404818). thanks to Alex de Oliveira Silva for reporting + this, and Neil McGovern for a bit of consultation. + * security references: + - SA23528, CVE-2006-6799 + * also include one extra changeset from svn which fixes a regression + introduced in the security patch. + * new patches: + - 07_official_dec06-vulnerability-scripts-0.8.6i.dpatch + - 07_official_dec06-vulnerability-poller-0.8.6i.dpatch + - 07_official_poller_output_remainder.dpatch + - 07_official_import_template_argument_space_removal.dpatch + - 08_svn_timespan_breakage_fix.dpatch + + -- sean finney Mon, 15 Jan 2007 15:36:25 +0100 + +cacti (0.8.6i-2) unstable; urgency=low + + * let cacti know where the cactid binary is, since it doesn't + seem to have a reasonable default an longer. + + -- sean finney Mon, 30 Oct 2006 23:18:55 +0100 + +cacti (0.8.6i-1) unstable; urgency=low + + * new upstream release + * no longer need the following patches: + - 06_official-fix_search_session_clear_issue.dpatch + - 07_official-fix_sql_syntax_related_to_default_rra_id.dpatch + - 08_official-mysql_5x_strict.dpatch + - 09_official-nth_percentile_empty_return_set_issue.dpatch + - 10_official-database_autoincrement_corruption.patch.dpatch + + + -- sean finney Sat, 28 Oct 2006 15:05:46 +0200 + +cacti (0.8.6h-6) unstable; urgency=low + + * fix up debian/rules targets to comply with policy (closes: #395584). + * change build-depends-indep to build-depends for targets needed + in the clean rule. + * update standards-version to 3.7.2 + + -- sean finney Fri, 22 Sep 2006 21:39:12 +0200 + +cacti (0.8.6h-5) unstable; urgency=low + + * fix for braindead bug in postrm script introduced by yours + truly. fixed a bashism in there while i was at it (closes: #387540). + thanks to Olivier Berger for finding this. + * fix for non-essential dependencies (dbconfig-common) in the config + script (closes: #388214). + * updated portuguese brazillian templates, thanks to Andre Luis Lopes + for providing them (closes: #374020). + + -- sean finney Fri, 22 Sep 2006 21:04:19 +0200 + +cacti (0.8.6h-4) unstable; urgency=low + + * updated dependencies to allow any httpd-providing daemon to + satisfy the requirements for cacti. that doesn't necessarily + mean any httpd will work, but i've heard from at least one + report that others do, and i'd like to make it easier for + others to test. closes: #373886. + * updated postrm to handle cases where it's being purged without + its dependencies present. + + -- sean finney Tue, 29 Aug 2006 09:35:34 +0200 + +cacti (0.8.6h-3) unstable; urgency=low + + * official patch from upstream to fix database corruption and display some + users were having as a result of the differing version of adodb + in debian vs. the bundled version in cacti. thanks to the upstream + authors for their help addressing the issue, and to Rene Cunningham + for testing out the initial version of the patch. + (closes: #364391, #351342) + * added note to README.Debian about potential unmet dependencies in + mixed php4/php5 environments (thanks to Uwe Storbeck), and also + about checking the cli configuration for the required modules (thanks + to Troy Poppe), and also about potential problems with the cli + poller and safe_mode (thanks to Birger Brunswiek) (closes: #359964). + * update package description to mention that it's likely that mysql-server + should also be installed unless cacti is to be configured against a + remote database system (closes: #349754). + * added a note to README.Debian about the initial user/pass, at the + suggestion of Jonas Genannt, thanks. (closes: #352724). + * changed package dependencies to list apache2 as the first of the + series of apache-providing packages, and likewise reordered the + php/apache modules (closes: #356843). + * updated version of 08_official-mysql_5x_strict.dpatch which fixes + the breakage in ldap authentication reported by Matt Clauson, thanks. + (closes: #354663) + + -- sean finney Tue, 25 Apr 2006 19:30:50 +0200 + +cacti (0.8.6h-2) unstable; urgency=low + + * incorporated the following official upstream patches: + - 06_official-fix_search_session_clear_issue.dpatch + - 07_official-fix_sql_syntax_related_to_default_rra_id.dpatch + - 08_official-mysql_5x_strict.dpatch + - 09_official-nth_percentile_empty_return_set_issue.dpatch + * updated german debconf translation, thanks to + Mathias Klein (closes: #345786). + * typographical corrections to package description, thanks to + Jens Siedel (closes: #346007). + + -- sean finney Mon, 16 Jan 2006 16:02:44 +0100 + +cacti (0.8.6h-1) unstable; urgency=low + + * new upstream release. + * upstream now officially supports mysql-5.0 (closes: #336531). + * updated README.Debian with some information about zombie mysql + processes that some users have been experiencing when viewing + graphs (closes: #344519). + * updated 01_config.php.dpatch and 05_no-adodb.dpatch to apply to new + upstream version. + * removed "official" patches which are now incorporated into the + new upstream release: + - 06_official-short_open_tag_parse_error.dpatch + - 07_official-graph_properties_zoom.dpatch + - 08_official-script_server_snmp_auth.dpatch + - 09_official-mib_file_loading.dpatch + * added a db_stop to the postinst to help prevent hangs when + restarting apache2. + + -- sean finney Fri, 06 Jan 2006 08:24:29 +0100 + +cacti (0.8.6g-3) unstable; urgency=low + + * cacti now uses dbconfig-common, and thus once again ships with + automagical database support. + * Portuguese translation for cacti's debconf messages by LuíFerreira + (closes: #336836). + * new Swedish translations from Daniel Nylander (closes: #338668). + + -- sean finney Thu, 01 Dec 2005 14:59:40 +0100 + +cacti (0.8.6g-2) unstable; urgency=low + + * updated dependencies to allow working with the php5 family of packages. + * new spanish debconf translations from César Gómez Martín and the + debian-l10n-spanish mailing list (closes: #334384). + * added a note to README.Debian about possible breakage if rrdtool + is upgraded without changing cacti settings (closes: #335737). + + -- sean finney Sat, 29 Oct 2005 12:58:39 +0200 + +cacti (0.8.6g-1) unstable; urgency=low + + * new upstream release. + * upstream has re-implemented the limited snmpv3 support that previously + existed but was later removed (closes: #301165). + * removed patches that are now incorporated upstream: + - 03_dos2unix_on_scripts + - 06_cmd-snmp-data-sanity-fixes + - 07_snmp_alternate_port + * added the current list of upstream patches: + - 06_official-short_open_tag_parse_error + - 07_official-graph_properties_zoom + - 08_official-script_server_snmp_auth + - 09_official-mib_file_loading + + -- sean finney Sat, 24 Sep 2005 10:10:15 -0400 + +cacti (0.8.6f-5) unstable; urgency=low + + * fix cacti to explicitly depend on versions of libphp-adodb starting + at the version which silently changed the path. thanks to + Mark Sheppard and Javier Fernández-Sanguino Peña for independantly + pointing this out (closes: #322707, #325376). + * fix cacti to depend on "virtual-mysql-client" virtual package, to + allow cacti to co-exist with the new mysql-5.0 series of packages. + thanks to Miah Gregory for pointing this out (closes: #326011). + + -- sean finney Fri, 02 Sep 2005 05:55:46 -0400 + +cacti (0.8.6f-4) unstable; urgency=low + + * cacti now properly depends on debconf. + + -- sean finney Mon, 08 Aug 2005 13:23:24 -0400 + +cacti (0.8.6f-3) unstable; urgency=low + + * fix to allow xml based check templates to work for hosts running + snmp on an alternate port. thanks to Justin Hallet for the + patch (closes: #317689). + * for posterity, the security fixes included in 0.8.6e-1 addressed + the following CVE id's: + - CAN-2005-1524 (idefense remote file inclusion) + - CAN-2005-1525 (idefense SQL injection) + - CAN-2005-1526 (idefense remote code execution) + * updated include path for adodb configuration (closes #320782), thanks + to loïc lefort for reporting this. + + -- sean finney Mon, 01 Aug 2005 13:33:05 -0400 + +cacti (0.8.6f-2) unstable; urgency=high + + * new version of the upstream 'sanity checking' patches introduced + in 0.8.6e-2 (closes: #317253). + * the updated Czech debconf translation from Martin Sín somehow + got mixed up with the debconf translation for mysql. fixed. + (closes: #317137). + * for posterity, the security updates included in the previous + update have the following CAN numbers assigned to them: + - CAN-2005-2148 (hardened-php advisories 032005 and 042005) + - CAN-2005-2149 (hardened-php advisory 052005) + * even though it's been like 5 days, and the previous version's urgency + was set to high, it has not entered testing, so urgency will remain + at this level. + + -- sean finney Thu, 07 Jul 2005 08:05:17 -0400 + +cacti (0.8.6f-1) unstable; urgency=high + + * new upstream release. + * this new version addresses the following security issues reported by the + php-hardened project: + - 032005: Cacti Multiple SQL Injection Vulnerabilities + - 042005: Cacti Remote Command Execution Vulnerability + - 052005: Cacti Authentication/Addslashes Bypass Vulnerability + + -- sean finney Sat, 02 Jul 2005 01:11:18 -0400 + +cacti (0.8.6e-2) UNRELEASED; urgency=high + + * updated standards version to 3.6.2 + * patch for sanity checking of some of the cached database information, + which sometimes causes cmd.php based poller checks to hang and + eventually fail. + + -- sean finney Tue, 28 Jun 2005 00:54:57 -0400 + +cacti (0.8.6e-1) unstable; urgency=high + + * new upstream release. + * this release contains fixes for the arbitrary sql injection and input + validation vulnerabilities discovered in 0.8.6d. + * new Vietnamese debian translations from Clytie Siddall (closes: #313190). + * removed obsolete (and poorly written) debconf templates. thanks + to Clytie Siddall for pointing these out (closes: #313191). + * updated Czech debconf translation from Martin Sín (closes: #314620). + * lintian fixes: + - include debhelper macro in preinst + - changelog converted to UTF-8 format. + - overrides file introduced, to ignore permissions on rra dir. + + -- sean finney Mon, 20 Jun 2005 22:30:05 -0400 + +cacti (0.8.6d-1) unstable; urgency=low + + * new upstream release. + * removed "official patches" patch, as they are now included in this version. + * the adodb code is now removed from the build tree instead of being patched + out of the source, which makes things a bit cleaner in the long run. + * document how to login after installation. thanks to Jari Aalto for + mentioning this omission (closes: #309619). + * initial czech translation for cacti, thanks to Martin Sin (closes: #311095). + * have the cronjob output stderr to a logfile instead of stdout. thanks + to Daniel van Eeden for helping find the best solution to this + (closes: #309425). + + -- sean finney Sat, 28 May 2005 19:42:30 -0400 + +cacti (0.8.6c-8) unstable; urgency=low + + * import of upstream patches was b0rken. should be fixed up in this + release. + * removed the adodb code, as we're allready depending on libphp-adodb, + and should have been using that instead this whole time. i also + updated the include statement in config.php to include adodb from + its new location. + * only change ownership/permissions of debian.php the first time it is + created (which should prevent local ownership/permission changes + later on from being silently overwritten) + * don't mask errors when you can't include debian.php + * don't throw away stderr from cacti's cron.d file, and change MAILTO + to send mail to root (otherwise it'd go to www-data). thanks for + this and the preceding two fixes go to Mark Sheppard + (closes: #309194). + + -- sean finney Wed, 11 May 2005 17:54:51 -0400 + +cacti (0.8.6c-7) unstable; urgency=low + + * brought in the rest of the patches from the upstream authors. + this should fix the problem with graphing negative numbers, as + reported by Kelly Brown (closes: #305561). + * updated dependency on php4-mysql to be versioned, to make dependencies + work better for woody users. thanks to Vittorio R Tracy + for mentioning this (closes: #302563). + + -- sean finney Wed, 06 Apr 2005 20:03:27 -0400 + +cacti (0.8.6c-6) unstable; urgency=low + + * updated french debconf translations, thanks for this to + Christian Perrier (closes: #299895). + * updated portuguese brazillian templates, thanks to + Tiago Bortoletto Vaz (closes: #301499). + * include upstream patch to fix tree browsing when authentication + is turned off. thanks to Hannu Teulahti (closes: #300843). + * strip ^M's from the scripts, as it can mess up execution according + to Fred Blaise , thanks (closes: #300845). + * debian.php is now managed via ucf. + * generate_config is now always called in the postinst, so calling + dpkg-reconfigure should regenerate the contents of the config + file. thanks to Mickael Marchand (closes: #300876). + * correction in README.Debian, thanks to Miah Gregory + and all the other people who emailed me about this. (closes: #299834). + * no longer depend on wwwconfig-common, only support the conf.d style + of apache configuration. this should as a side effect resolve the bug + reported by Tiago Bortoletto Vaz (closes: #289156). + + -- sean finney Tue, 29 Mar 2005 22:00:28 -0500 + +cacti (0.8.6c-5) unstable; urgency=high + + * oops, let's not rm -rf the old scripts directory in the preinst, + instead try to remove the directory or fail gracefully if there + are still things in there. thanks and an apology are due to + Gérald GARCIA (closes: #300449). this is a grave + severity bug, so urgency set to high. + * README.Debian updated to mention where custom user scripts should + go, so that they can stay out of my reach :) + + -- sean finney Mon, 21 Mar 2005 06:12:21 -0500 + +cacti (0.8.6c-4) unstable; urgency=high + + * turns out removing the symlink wasn't as easy, need to do a couple + extra things in the preinst otherwise dpkg will keep and follow + the symlink according to debian policy. + * minor fixes in the templates. + + -- sean finney Sun, 06 Mar 2005 12:21:01 -0500 + +cacti (0.8.6c-3) unstable; urgency=high + + * José de Paula Eufrásio Júnior found + that there's some voodoo with ereg that doesn't work in some + locales unless mbstring.func_overload is set to 0. this + prevents cacti from installing, which gave the bug a grave + severity, thus again the high urgency. sigh. thanks, josé + (closes: #298102). + * the script dir can't be a symlink after all, because it + breaks php scripts. thanks to Bernardo Achirica + for finding this out (closes: #298032). + + -- sean finney Fri, 04 Mar 2005 23:24:17 -0500 + +cacti (0.8.6c-2) unstable; urgency=high + + * removed unneccesary poller debconf cruft. + * otherwise the same as -1, but to unstable and urgency set to high + as foretold in the previous changelog entry (closes rc bug). + + -- sean finney Thu, 03 Mar 2005 14:21:01 -0500 + +cacti (0.8.6c-1) experimental; urgency=low + + * new upstream release (closes: #271661). + * the cacti source package no longer produces cacti-cactid, which is + provided by a seperate upstream tarball. + * cacti site stuff now in /usr/share/cacti/site, which frees + up /usr/share for non-site related stuff. + * automagical install/upgrades of the mysql database are disabled + for the time being. see README.Debian for the rationale. + * start to bring in ucf for managing config files. + * no longer have a need for /etc/cacti/default-poller, as this is + now handled completely inside the application (closes: #292365). + * rrd files are now stored in /var/lib/cacti/rra, as they can + not be reconstituted from scratch. this closes an rc bug, so priority + on this package will be set to high when it goes into unstable, which + will be the next upload (closes: #297470). + * documentation provided for what you need to do if you're upgrading + from a 0.6.x version of cacti. i can't guarantee that it will + work, but it did for me, and this is probably the best you're + going to get (closes: #226404). + * various README.Debian updates. + * cacti online documentation now made online to symlinking to where + it already exists in /usr/share/doc. + + -- sean finney Fri, 25 Feb 2005 19:26:57 -0500 + +cacti (0.8.5a-9) unstable; urgency=low + + * new maintainer has adopted the package (closes: #292770) + * fixed dependencies against mysql-client, so cacti now depends + mysql client or mysql-client-4.1 (i'm hesitant to use + virtual-mysql-client since i think mysql-client < 3.23 might + not work). thanks to Robert Loomans , + Olaf van der Spek , and the mysql maintainer + Christian Hammers for pointing this out. + (closes: #293750, #285002). + * no longer use delaycompress in the logrotate script, since + there's not much use to leaving it uncompressed by default + and it's a lot of data. thanks, Gustavo Franco + (closes: #275045). + + -- sean finney Sat, 19 Feb 2005 19:37:54 -0500 + +cacti (0.8.5a-8) unstable; urgency=high + + * Update pt_BR, nl debconf translations. (Closes: #270277, #270787) + + -- Thorsten Sauter Sat, 11 Sep 2004 00:18:12 +0200 + +cacti (0.8.5a-7) unstable; urgency=low + + * Update french translation. (Closes: #268801) + * Checking for short tags in cacti/debian.php and fix them if needed. (Closes: #269480) + * debian/README.Debian: add a new section about php short tags + + -- Thorsten Sauter Thu, 2 Sep 2004 23:27:27 +0200 + +cacti (0.8.5a-6) unstable; urgency=high + + * Don't know why it was last: change priority from extra to optional + * debian/README.Debian: spell checking, add docu for php4-cli + * ship a new script which check for php4-mysql support and print a + error message to the poller logfile. With the modification of the + readme file I think the bug can be closed. (Closes: #267009) + + -- Thorsten Sauter Thu, 26 Aug 2004 22:52:38 +0200 + +cacti (0.8.5a-5) unstable; urgency=high + + * debian/control: change priority from extra to optional + * replace Brazilian Portuguese translation. (Closes: #264090) + * debian/cacti.templates: Add new choice "None" to the webserver question. + This gives the user a chance to use his own webserver. (Closes: #255971) + * If we search for a local installed mysql-server check for packages + which are installed or on hold. (Closes: #263262) + * Fix some errors while removing include line from httpd.conf file. Also, + print an error message if this doesn't work. New installations should + use apache/conf.d anyway. (Closes: #253202) + * SECURITY-UPDATE: Fix SQL Injection in CACTI. (Closes: #267758) + Original upstream patch: + http://cvs.raxnet.net/cgi-bin/viewcvs.cgi/cacti/auth_login.php.diff?r1=1.48&r2=1.49 + Full-Disclosure: + http://archives.neohapsis.com/archives/fulldisclosure/2004-08/0717.html + * cacti.apache.conf: Change some php4 settings to make cacti more robust/secure. + * /etc/cacti/debian.php: create long php4 tags ' Wed, 23 Jun 2004 08:46:37 +0200 + +cacti (0.8.5a-4) unstable; urgency=low + + * Change package priority to extra. + * Change cronjob. The output of the poller job is now appended to the + logfile + * Update french debconf translation: fr.po. (Closes: #253585) + * Add debconf translation: pt_BR.po. Don't know, which language + this is :-) (Closes: #252021, #252017) + * Backport cacti cvs fix (#0000176) into debian version. This will fix + compatiblity problem with the output of the df command and long device + names. (Closes: #254856) + + -- Thorsten Sauter Tue, 22 Jun 2004 23:26:17 +0200 + +cacti (0.8.5a-3) unstable; urgency=low + + * Fix type in package description. (Closes: #249590) + * Update dutch debconf translation. (Closes: #250652) + + -- Thorsten Sauter Wed, 26 May 2004 11:49:27 +0200 + +cacti (0.8.5a-2) unstable; urgency=low + + * Fix error in the cron script + - poll.sh isn't in the default path, we need ./poll.sh here + - make sure the cacti directory exists, otherwise we will get + a lot of error messages from cron. (Closes: #246982) + * Depend also on apache2. Still depend on php4-cgi, we need both + packages: php4 and php4-cgi. (Closes: #227295) + * Make the package apache2 "safe". Depend on php4 or libapache2-mod-php4 + * Include apache2 howto into debian/README.Debian. + * Update templates, maintainer scripts to install config files for apache2 + too. Update german translation + * cactid: remove upstream installation docu + + -- Thorsten Sauter Mon, 17 May 2004 11:12:05 +0200 + +cacti (0.8.5a-1) unstable; urgency=low + + * New upstream version. + * Include new dutch debconf translation: nl.po. (Closes: #245916) + * Insert new dependency on php4-snmp which removes a lot of extra cpu usage. + Thanks Rafael D'Halleweyn. (Closes: #228948) + * Update debconf template and german/french translations. + Thanks Christian Perrier. (Closes: #225890) + * Including the new multi-threading poller (cactid). This binary can collect + multiple datasources at the same time. (Closes: #186013, #237055) + The program is not in the core release and not marked as stable, that's + why I include it in an extra debian package. + * The MySQL admin password is now removed from debconf database, if the user + decide to not store it. (Closes: #224214) + * The new poll.sh script report the output from the poller into a logfile. + Maybe not the best solution, but so we don't loose any output. (Closes: #234726) + * The new package containts the install/ directory also. This is useful, + if we're not upgrading from 0.8.4 but from an other version. (Closes: #227737) + * Insert an upgrade path from 0.8.4 and 0.8.5, this is done via sql scripts + in updscripts/ + * A new poll.sh script is used for cronjobs. This script use either cacti + or the new cactid poller (depends on the default-poller file). + * During upgrade the databases are dumped/backuped. + * Update build system. Change to cdbs system. + * Update README.Debian file. + * Update Build-Depends/Depends + + -- Thorsten Sauter Mon, 26 Apr 2004 10:48:58 +0200 + +cacti (0.8.4-2) unstable; urgency=low + + * Print a warning message, if cacti is upgraded from an old version + * extend debian/README.Debian with upgrade database instructions + + -- Thorsten Sauter Tue, 30 Dec 2003 13:44:55 +0100 + +cacti (0.8.4-1) unstable; urgency=low + + * New maintainer. (Closes: #196199) + * New upstream version. (Closes: #198777) + * debian/changelog: + - convert to UTF-8 + * debian/control: + - update standards version + - update build dependencies + - insert new logrotate dependency + - depend on libphp-adodb, which is also in the archive + - add apache-perl to apache dependency list. (Closes: #204290) + * debian/rules: rewrite the way to install the files into the package + * debian/cacti.cron.d: + - make the script a little bit more robust. (Closes: #211249) + * debian/README.Debian: + - replace most parts of the text. + * debian/cacti.apache.conf: + - reformat the file a little bit + - remove unused phtml extension + * debian/cacti.logrotate: + - reformat the file + + -- Thorsten Sauter Tue, 2 Dec 2003 11:24:49 +0100 + +cacti (0.6.8a-13.1) unstable; urgency=low + + * NMU + * Rewrote debconf templates to more standard english with the help of + debian-l10n-english. Former templates have been left for future reference + Closes: #189401 + * French debconf templates update. Closes: #197119 + * More secure temp file handling in postrm. Thanks lintian. + + -- Christian Perrier Mon, 16 Jun 2003 22:54:11 +0200 + +cacti (0.6.8a-13) unstable; urgency=low + + * Orphan this package + + -- Igor Genibel Thu, 5 Jun 2003 11:58:50 +0200 + +cacti (0.6.8a-12) unstable; urgency=low + + * Missed to close bug #183287 (Closes: #183287) + + -- Igor Genibel Wed, 19 Mar 2003 09:32:25 +0100 + +cacti (0.6.8a-11) unstable; urgency=low + + * remove quote in cron.php in order to be run in safe_mode + and /var/log/httpd/access_log -> /var/log/apache/access_log in + scripts/webhits (Closes: #177791) + * fix non installation when no mysql server is present when localhost + installation (Closes: #183288, #184324) + * fix non removal when no mysql server found (in localhost installation) + (Closes: #183288) + * fix loop when upgrading and mysql-server != localhost (Closes: #179561) + * use po-debconf + + -- Igor Genibel Mon, 17 Mar 2003 15:00:55 +0100 + +cacti (0.6.8a-10) unstable; urgency=low + + * Fix various packaging mistakes + - Mention that mysql is not installed on local systems (complement to the + #172414) + - Provide a good cacti.sql (Closes: #166296) + - config.php is only store in /etc/cacti (Closes: #172410) + - Provide somes explanations for scripts provided in the package + (see the README.Debian file) (Closes: #167814) + * Standards-Version: 3.5.8 + + -- Igor Genibel Sun, 5 Jan 2003 21:15:49 +0100 + +cacti (0.6.8a-9) unstable; urgency=low + + * Fix extra OID in parameter. Thanks to Roberto Moreda + (Closes: #162873) + + -- Igor Genibel Mon, 30 Sep 2002 16:51:36 +0200 + +cacti (0.6.8a-8) unstable; urgency=low + + * Fix typo in postinst file (Closes: #162574) + + -- Igor Genibel Fri, 27 Sep 2002 12:20:28 +0200 + +cacti (0.6.8a-7) unstable; urgency=low + + * fix broken regexp in include/snmp_functions.php + * force the use of external snmp functions + + -- Igor Genibel Thu, 26 Sep 2002 17:39:03 +0200 + +cacti (0.6.8a-6) unstable; urgency=low + + * apply a patch provided by Blaine Kahle in order to + cleanly use net-snmp5 + + -- Igor Genibel Thu, 26 Sep 2002 16:50:24 +0200 + +cacti (0.6.8a-5) unstable; urgency=low + + * re-add lost patch provided by Adam Conrad in order to bypass the php4-cgi + installation bug (related bugs: #147385, #147261, #129883 and #145465) + (Closes: #154822) + + -- Igor Genibel Thu, 26 Sep 2002 16:10:05 +0200 + +cacti (0.6.8a-4) unstable; urgency=low + + * New recommends on iputils-ping (because of the "-w" ping option) + (Closes: #161278, #161279) + * New Standards (3.5.7.0) + * DH_COMPAT 4 + + -- Igor Genibel Thu, 26 Sep 2002 12:35:46 +0200 + +cacti (0.6.8a-3) unstable; urgency=low + + * Fix type in postinst file (Closes: #160694) + * Add missing ; in include/rrd_functions.php file (Closes: #160703) + + -- Igor Genibel Tue, 17 Sep 2002 17:51:09 +0200 + +cacti (0.6.8a-2) unstable; urgency=high + + * Security upload: + really fix the arbitrary program code execution. + + -- Igor Genibel Tue, 10 Sep 2002 09:57:00 +0200 + +cacti (0.6.8a-1) unstable; urgency=high + + * Security Upload: + prevent executing arbitrary program code under the user id of the web + server. + + -- Igor Genibel Mon, 9 Sep 2002 14:39:37 +0200 + +cacti (0.6.8-10) unstable; urgency=high + + * fix the wrong setcookie() call (Closes: #157740) + * force the use of net-snmp tool instead of using native broken php-snmp + functions (Closes: #157383,#157381) + * urgency=high because cacti is not usable with the php-snmp functions + + -- Igor Genibel Thu, 22 Aug 2002 17:20:32 +0200 + +cacti (0.6.8-9) unstable; urgency=low + + * The «I'm too lame and stupid» version + * really add the «if exists» statement + + -- Igor Genibel Mon, 19 Aug 2002 16:03:44 +0200 + +cacti (0.6.8-8) unstable; urgency=low + + * add a «if exists» when dropping the database (for partial installation) + + -- Igor Genibel Mon, 19 Aug 2002 15:46:58 +0200 + +cacti (0.6.8-7) unstable; urgency=low + + * Fix uninstallable package with calling mysql differently (Closes: #156951) + + -- Igor Genibel Mon, 19 Aug 2002 14:41:08 +0200 + +cacti (0.6.8-6) unstable; urgency=low + + * move php-cgi bug workaround from include/database.php to + include/config.php in order to fix the html export bug + * put strict dependency on mysql-client (because of SQL query) + (Closes: #149787) + + -- Igor Genibel Wed, 12 Jun 2002 19:40:29 +0200 + +cacti (0.6.8-5) unstable; urgency=low + + * ask for password confirmation. + * Test if provided password for mysql is Ok. (Closes: #148862) + * add two scripts + + -- Igor Genibel Mon, 3 Jun 2002 14:11:28 +0200 + +cacti (0.6.8-4) unstable; urgency=low + + * put php_flag short_open_tag On in apache.conf file (Closes: #147283) + * fix SQL entry for webhits script + + -- Igor Genibel Fri, 17 May 2002 18:45:17 +0200 + +cacti (0.6.8-3) unstable; urgency=low + + * provide the get_stat_for_interface.pl script (I'm too lame) + + -- Igor Genibel Fri, 17 May 2002 18:36:44 +0200 + +cacti (0.6.8-2) unstable; urgency=low + + * Suppress and fix wrong SQL inserts. (Closes: #147259,#147262) + Thanks to Guillaume + * Applied a patch provided by Adam Conrad in order to bypass php4-cgi + installation bug + + -- Igor Genibel Fri, 17 May 2002 16:19:14 +0200 + +cacti (0.6.8-1) unstable; urgency=low + + * New upstream version (Closes: #146799) + * add new script that fetches informations directly from /proc (Luc + Saillard) + * patch auth_login.php in order to move php4 dependency from Depends to + Recommends. Now only php4-cgi package is mandatory. (Luc Saillard) + * Standards-Version: 3.5.6.0 + + -- Igor Genibel Mon, 13 May 2002 16:03:13 +0200 + +cacti (0.6.7-2) unstable; urgency=low + + * add snmp to dependencies + * fix logrotate broken file + * add a note in README.Debian concerning php4-cgi installation + + -- Igor Genibel Fri, 5 Apr 2002 12:59:51 +0200 + +cacti (0.6.7-1) unstable; urgency=low + + * Initial Release. (Closes: #140461) + + -- Igor Genibel Wed, 3 Apr 2002 15:04:11 +0200 + --- cacti-0.8.7e.orig/debian/gbp.conf +++ cacti-0.8.7e/debian/gbp.conf @@ -0,0 +1,6 @@ +[DEFAULT] +debian-branch = debian-sid +upstream-branch = upstream-sid + +[git-dch] +meta = 1 --- cacti-0.8.7e.orig/debian/cacti.prerm +++ cacti-0.8.7e/debian/cacti.prerm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +# source debconf stuff +. /usr/share/debconf/confmodule +# source dbconfig-common stuff +. /usr/share/dbconfig-common/dpkg/prerm.mysql +dbc_go cacti $@ + +#DEBHELPER# --- cacti-0.8.7e.orig/debian/cacti.postinst +++ cacti-0.8.7e/debian/cacti.postinst @@ -0,0 +1,74 @@ +#!/bin/sh + +set -e + +# source debconf stuff +. /usr/share/debconf/confmodule +db_version 2.0 +# source dbconfig-common stuff +. /usr/share/dbconfig-common/dpkg/postinst.mysql +dbc_first_version="0.8.6g-3" +dbc_generate_include="php:/etc/cacti/debian.php" +dbc_generate_include_owner="root:www-data" +dbc_generate_include_perms="0640" +dbc_generate_include_args="--dbname=database_default --dbpass=database_password --dbuser=database_username --dbserver=database_hostname --dbport=database_port" +dbc_go cacti $@ + +# +# Skip, if we are not in "configure" state +# +if [ "$1" != "configure" ]; then + exit 0 +fi +version="$2" + +## Source debconf library + +# +# retieve various configuration options from debconf +# +db_get cacti/webserver +WWWTYPE="$RET" + +ucf --debconf-ok /usr/share/doc/cacti/cacti.apache.conf /etc/cacti/apache.conf + +# done with debconf... +db_stop + +# Create common files (logfile) and grant permissions +touch /var/log/cacti/rrd.log /var/log/cacti/cacti.log +chmod 0640 /var/log/cacti/rrd.log /var/log/cacti/cacti.log +chown -R www-data:www-data /var/log/cacti/ + +# update the webserver, if needed +case "$WWWTYPE" in + "Apache") + webservers="apache" ;; + "Apache-SSL") + webservers="apache-ssl" ;; + "Apache2") + webservers="apache2" ;; + "All") + webservers="apache apache-ssl apache2" ;; + *) + webservers="" ;; +esac + +# Only try to add a symlink on a fresh install to respect +# changes done by the administrator +if [ "$2" = '' ]; then + for server in $webservers; do + if [ -d "/etc/${server}/conf.d" ]; then + if [ ! -e "/etc/${server}/conf.d/cacti.conf" ] ; then + ln -s ../../cacti/apache.conf "/etc/${server}/conf.d/cacti.conf" + fi + invoke-rc.d $server reload || true + fi + done +fi + +# remove old unused config file +rm -f /etc/cacti/config.php + +#DEBHELPER# +exit 0 --- cacti-0.8.7e.orig/debian/cacti.templates +++ cacti-0.8.7e/debian/cacti.templates @@ -0,0 +1,8 @@ +Template: cacti/webserver +Type: select +_Choices: Apache, Apache-SSL, Apache2, All, None +Default: Apache +_Description: Webserver type + Which kind of web server should be used by cacti? + . + Select "None" if you would like to configure your webserver by hand. --- cacti-0.8.7e.orig/debian/rules +++ cacti-0.8.7e/debian/rules @@ -0,0 +1,84 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +CFLAGS = -Wall -g + +TDIR:=debian/cacti +SHAREDIR:=${TDIR}/usr/share/cacti +SITEDIR:=${SHAREDIR}/site +RRADIR:=${TDIR}/var/lib/cacti/rra + +# include the patch/unpatch rules from quilt +include /usr/share/quilt/quilt.make + + +configure: configure-stamp +configure-stamp: $(QUILT_STAMPFN) + dh_testdir + touch configure-stamp + +build: build-stamp +build-stamp: patch configure-stamp + dh_testdir + touch build-stamp + +clean: unpatch + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + dh_clean + debconf-updatepo + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + install -p *.php ${SITEDIR}/ + cp -pr scripts images include install lib ${SITEDIR}/ + cp -pr cli resource ${SHAREDIR}/ + # place the sql script where dbconfig-common wants it + cp cacti.sql ${TDIR}/usr/share/dbconfig-common/data/cacti/install/mysql + # normalize permissions in the site directory + find ${RRADIR} ${SITEDIR}/ -exec chown root:www-data {} \; + find ${SITEDIR}/ -type f -exec chmod 640 {} \; + find ${SITEDIR}/ -type d -exec chmod 750 {} \; + # and then fix the special case files + find ${SITEDIR}/scripts -type f -name '*.php' -exec chmod 640 {} \; + for f in cmd.php poller.php lib/ping.php; do \ + chmod ug+x ${SITEDIR}/$$f; \ + done + chmod 770 ${RRADIR} + # remove all adodb code at build time, as we get this from libphp-adodb + rm -rf ${SITEDIR}/lib/adodb + # plop in our lintian override file + cp debian/cacti.lintian-overrides ${TDIR}/usr/share/lintian/overrides/cacti + + +binary-arch: +# Build architecture-dependent files here. +binary-indep: build install + dh_testdir + dh_testroot + dh_installchangelogs docs/CHANGELOG + dh_installdocs + dh_installexamples + dh_installdebconf + dh_installlogrotate + dh_installcron + dh_installman + dh_usrlocal + dh_link + dh_strip + dh_compress + dh_fixperms -X/var/lib/cacti/rra + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep +.PHONY: build clean binary-arch binary-indep binary install configure patch unpatch --- cacti-0.8.7e.orig/debian/cacti.logrotate +++ cacti-0.8.7e/debian/cacti.logrotate @@ -0,0 +1,10 @@ +/var/log/cacti/*.log { + weekly + missingok + rotate 52 + compress + notifempty + create 640 www-data www-data + sharedscripts +} + --- cacti-0.8.7e.orig/debian/TODO +++ cacti-0.8.7e/debian/TODO @@ -0,0 +1,6 @@ +================================================== +sean's todo list +================================================== +- permissions and such in postinst should be in rules +- doc symlink the $site/docs -> /usr/share/doc/html +================================================== --- cacti-0.8.7e.orig/debian/cacti.postrm +++ cacti-0.8.7e/debian/cacti.postrm @@ -0,0 +1,89 @@ +#!/bin/sh + + +# +# Skip, if we are not in "configure" state +# +if [ "$1" != "remove" ] && [ "$1" != "purge" ]; then + exit 0 +fi + +## Source debconf library +. /usr/share/debconf/confmodule +db_version 2.0 +# source dbconfig-common stuff +if [ -f /usr/share/dbconfig-common/dpkg/postrm.mysql ]; then + . /usr/share/dbconfig-common/dpkg/postrm.mysql + dbc_go cacti $@ +fi + + +# +# retieve various configuration options from debconf +# +db_get cacti/webserver +WWWTYPE="$RET" + +case "$WWWTYPE" in + "Apache") + webservers="apache" ;; + "Apache-SSL") + webservers="apache-ssl" ;; + "Apache2") + webservers="apache2" ;; + "All") + webservers="apache apache-ssl apache2" ;; + *) + webservers="" ;; +esac +includefile=/etc/cacti/apache.conf + +# +# remove or purge the whole package +# +case "$1" in +purge) + # cleanup some unsed directores + [ -d "/var/log/cacti" ] && rm -rf /var/log/cacti + [ -d "/var/cache/cacti" ] && rm -rf /var/cache/cacti + + # get rid of non conffiles generated in /etc + rm -f /etc/cacti/debian.php /etc/cacti/default-poller + + # get rid of ucf entries + if which ucf >/dev/null 2>&1; then + ucf --purge /etc/cacti/apache.conf + ucf --purge /etc/cacti/debian.php + fi + rm -f /etc/cacti/apache.conf + rm -f /etc/cacti/debian.php + + # remove apache config symlinks and restart apache + for server in $webservers; do + if [ -d "/etc/${server}/conf.d" ]; then + if [ -L "/etc/${server}/conf.d/cacti.conf" ]; then + rm "/etc/${server}/conf.d/cacti.conf" + fi + fi + invoke-rc.d $server reload || true + done + + ;; + +remove) + for server in $webservers; do + if [ -d "/etc/${server}/conf.d" ]; then + if [ -L "/etc/${server}/conf.d/cacti.conf" ]; then + rm "/etc/${server}/conf.d/cacti.conf" + fi + fi + invoke-rc.d $server reload || true + done + + ;; + +esac + +#DEBHELPER# +exit 0 + --- cacti-0.8.7e.orig/debian/copyright +++ cacti-0.8.7e/debian/copyright @@ -0,0 +1,64 @@ +This package was debianized by Igor Genibel on +Wed Apr 3 15:13:41 CEST 2002 + +It was downloaded from http://www.raxnet.net/products/cacti/ + +Author: Ian Berry. + += = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + +Copyright (C) 2004-2007 The Cacti Group + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + MA 02110-1301, USA. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL-2'. + += = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + +This source package also includes an embedded copy of adodb, which is not +used in the resulting binary packages. adodb is dual licensed BSD-style/LGPL, +the former of which is included below: + +Copyright (c) 2000, 2001, 2002, 2003, 2004 John Lim +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list +of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list +of conditions and the following disclaimer in the documentation and/or other materials +provided with the distribution. + +Neither the name of the John Lim nor the names of its contributors may be used to +endorse or promote products derived from this software without specific prior written +permission. + +DISCLAIMER: +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +JOHN LIM OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +alternatively the contents of the LGPL v2.1 can be found in +/usr/share/common-licenses/LGPL-2.1 --- cacti-0.8.7e.orig/debian/cacti.preinst +++ cacti-0.8.7e/debian/cacti.preinst @@ -0,0 +1,30 @@ +#!/bin/sh + +set -e + +# this is where rrd's used to go +oldrradir="/var/cache/cacti" +# this is where rrd's should go, according to policy +newrradir="/var/lib/cacti/rra" +# this used to be a symlink, and needs to be removed before unpacking +oldlink="/usr/share/cacti/site/scripts" +# and this is where it used to point +oldlinkdir="/usr/share/cacti/scripts" + +if [ "$1" = "install" -o "$1" = "upgrade" ]; then + # check for pre-existing rrd's in and move them to where they should be + if [ "`ls $oldrradir 2>/dev/null`" ]; then + mkdir -m 755 -p "$newrradir" || true + cp -pR ${oldrradir}/* ${newrradir}/ + rm -rf ${oldrradir} + chown -R www-data:www-data "$newrradir" + fi + if [ -L "$oldlink" ]; then + rm -f "$oldlink" + fi + if [ -d "$oldlinkdir" ]; then + rmdir "$oldlinkdir" || true + fi +fi + +#DEBHELPER# --- cacti-0.8.7e.orig/debian/README.Debian +++ cacti-0.8.7e/debian/README.Debian @@ -0,0 +1,198 @@ +cacti for Debian + +---------------- +originally written by Thorsten Sauter +Fri, 3 Sep 2004 11:25:28 +0200 + +last edited by sean finney +Fri, 06 Jan 2006 08:07:46 +0100 +---------------- + +* viewing graphs causing zombie mysql processes? + + If this happens, take a look at the solutions given in + http://bugs.debian.org/344519. + +* ERROR: Garbage ':33:09 To 2005/10/27 08:33:09\c' after command: + + If you get this, it's probably because you just upgraded rrdtool, + which changed its output format between versions and cacti is still + trying to parse it using the old versions' output. If you go into + your cacti settings, you will see an option to change the version + of rrdtool you have installed, which should solve your problem. + +* installation + + note that cacti now uses automatic configuration via dbconfig-common. + however, if you've chosen to go the manual route, the following + information may be helpful. + + using the username and password you provided in debconf (and stored + in the cacti config file /etc/cacti/debian.php), create a database + and load up the cacti skeleton. assuming you chose a database and + user both named 'cacti': + + mysql -u root -p -e "create database cacti" + mysql -u root -p -e "grant all privileges on cacti.* to cacti@localhost identified by 'yourpasswordhere'; flush privileges" + zcat /usr/share/doc/cacti/cacti.sql.gz | mysql -u cacti -p cacti + + next, go to http://$yourhost/cacti/, and follow the on-screen directions. + the default login is admin/admin. once automagical configuration is + brought back into cacti, this will probably change to something better. + +* Upgrading from recent versions of cacti (>= 0.8.x) + + There is a special directory install/ available, which contains some + basic php scripts to upgrade your current database to the new version + of cacti. + + Normally, this should happen automatically. If not, simply point your + browser to your cacti installation: + + http://$yourhost/cacti/install + + At some point the automatic upgrade feature will return, but not now. + +* Upgrading from old cacti versions (<= 0.6.x) + + The database structure has changed between version 0.6.x and 0.8.x. To make + cacti working again, you must create a new database, and import the cacti + database configuration. You can do this with the following commands. Please + replace "cacti" with your database name. Maybe you must also specify an + host name (-h host). + + # backup the old database + $ mysqldump -u root -p cacti | gzip -9 - >/tmp/cacti-old.gz + + # delete and create the database again + $ mysqladmin -u root -p drop cacti + $ mysqladmin -u root -p create cacti + + # import the database structure + $ zcat /usr/share/doc/cacti/cacti.sql.gz | mysql -u root -p cacti + + optionally, if you have lots and lots of data and it's critically important + to keep it, you can try the following, which i've had work on smaller test + installations: + + - downgrade to the previous 0.6.x version of cacti in woody. + - download version 0.6.8a from the old cacti repository: + http://www.cacti.net/downloads/archive/ + - extract the tarball in /usr/local/cacti, configure config.php. + - change your Alias to point /cacti/ at this directory + - go to http://$yourhost/cacti/install/ and do the 0.6.7->0.6.8a upgrade + - turn off cron (or at least the cronjob for cacti) + - back up your current database, load a copy into a database + called cacti-old. truncate the old database. + - repeat the described upgrade process to go from 0.6.8a to 0.8. + you'll be asked for an "old database" and a "new database". this + is where things will either work or not work. + - remove these two cacti directories in /usr/local + - install the latest version of cacti from sarge/sid + - point your apache config back where it should + - go to http://$yourhost/cacti/install/ and cacti should take you + the rest of the way to the current version. + - turn the cronjob back on + + note that i haven't tried this on a large scale, it takes quite a bit + of effort, and i can't guarantee it will work. sorry :/ + + i would like at some point to offer some automated (or at least cmdline) + programs to help automate this, but my first priority is to get the next + upstream release out the door. i've already done some work on this, if + you're interested in helping out, send me an email. + +* PHP command line scripts: + + If you install the php4-{cli,cgi} package _after_ the php4-mysql package, + there will be no entry for the mysql extension in this file. + To fix this, you can run the following command and select the cgi + interface also: + # dpkg-reconfigure php4-mysql + + You need to enable mysql support for apache, cli and/or cgi. Depending + on your configuration. + +* Apache2 support + + If you would like to use cacti with apache2 you need to install the php4 + package for apache2: libapache2-mod-php4. After this you need to enable + the mysql and snmp extension for php4. + + # cd /etc/php4/apache2/ + # grep -q mysql.so php.ini || echo "extension=mysql.so">>php.ini + # grep -q snmp.so php.ini || echo "extension=snmp.so">>php.ini + + (Please note the two ">>" signs) + +* PHP short tags problem in /etc/cacti/debian.php + + Previous versions of cacti create the debian.php file with short php + tags ' (derived from upstream svn diffs) +# Origin: http://svn.cacti.net/viewvc?view=rev&revision=6025 +# http://svn.cacti.net/viewvc?view=rev&revision=6037 +# http://svn.cacti.net/viewvc?view=rev&revision=6038 +# http://svn.cacti.net/viewvc?view=rev&revision=6041 +# http://svn.cacti.net/viewvc?view=rev&revision=6042 + +diff -Nur cacti-0.8.7e.base/auth_login.php cacti-0.8.7e.patched/auth_login.php +--- cacti-0.8.7e.base/auth_login.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/auth_login.php 2011-02-01 13:52:03.613384163 -0500 +@@ -294,7 +294,7 @@ + + + User Name: +- ++ + + + Password: +diff -Nur cacti-0.8.7e.base/cdef.php cacti-0.8.7e.patched/cdef.php +--- cacti-0.8.7e.base/cdef.php 2011-01-24 15:18:35.557370689 -0500 ++++ cacti-0.8.7e.patched/cdef.php 2011-02-01 13:52:03.613384163 -0500 +@@ -299,7 +299,7 @@ + draw_cdef_preview($_GET["cdef_id"]); + html_end_box(); + +- html_start_box("CDEF Items [edit: " . db_fetch_cell("select name from cdef where id=" . $_GET["cdef_id"]) . "]", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("CDEF Items [edit: " . htmlspecialchars(db_fetch_cell("select name from cdef where id=" . $_GET["cdef_id"])) . "]", "100%", $colors["header"], "3", "center", ""); + + if (isset($_GET["type_select"])) { + $current_type = $_GET["type_select"]; +@@ -376,7 +376,7 @@ + + if ((read_config_option("deletion_verification") == "on") && (!isset($_GET["confirm"]))) { + include("./include/top_header.php"); +- form_confirm("Are You Sure?", "Are you sure you want to delete the CDEF '" . db_fetch_cell("select name from cdef where id=" . $_GET["id"]) . "'?", "cdef.php", "cdef.php?action=remove&id=" . $_GET["id"]); ++ form_confirm("Are You Sure?", "Are you sure you want to delete the CDEF '" . htmlspecialchars(db_fetch_cell("select name from cdef where id=" . $_GET["id"])) . "'?", htmlspecialchars("cdef.php"), htmlspecialchars("cdef.php?action=remove&id=" . $_GET["id"])); + include("./include/bottom_footer.php"); + exit; + } +@@ -396,7 +396,7 @@ + + if (!empty($_GET["id"])) { + $cdef = db_fetch_row("select * from cdef where id=" . $_GET["id"]); +- $header_label = "[edit: " . $cdef["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($cdef["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -427,25 +427,25 @@ + + $i = 0; + if (sizeof($cdef_items) > 0) { +- foreach ($cdef_items as $cdef_item) { +- form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; +- ?> +- +- &cdef_id=">Item # +- +- +- : +- +- +- &cdef_id=">Move Down +- &cdef_id=">Move Up +- +- +- &cdef_id=">Delete +- +- +- ++ ++ ">Item # ++ ++ ++ : ++ ++ ++ ">Move Down ++ ">Move Up ++ ++ ++ ">Delete ++ ++ ++ + +- "> ++ "> + + +   +@@ -568,7 +568,7 @@ + if (sizeof($cdef_list) > 0) { + foreach ($cdef_list as $cdef) { + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $cdef["id"]);$i++; +- form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $cdef["name"]) : $cdef["name"]) . "", $cdef["id"]); ++ form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($cdef["name"])) : htmlspecialchars($cdef["name"])) . "", $cdef["id"]); + form_checkbox_cell($cdef["name"], $cdef["id"]); + form_end_row(); + } +diff -Nur cacti-0.8.7e.base/data_input.php cacti-0.8.7e.patched/data_input.php +--- cacti-0.8.7e.base/data_input.php 2011-01-24 15:18:35.585370856 -0500 ++++ cacti-0.8.7e.patched/data_input.php 2011-02-01 13:52:03.617383081 -0500 +@@ -314,7 +314,7 @@ + return; + } + +- html_start_box("$header_name Fields [edit: " . $data_input["name"] . "]", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("$header_name Fields [edit: " . htmlspecialchars($data_input["name"]) . "]", "100%", $colors["header"], "3", "center", ""); + + $form_array = array(); + +@@ -376,7 +376,7 @@ + + if (!empty($_GET["id"])) { + $data_input = db_fetch_row("select * from data_input where id=" . $_GET["id"]); +- $header_label = "[edit: " . $data_input["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($data_input["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -406,13 +406,13 @@ + form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; + ?> + +- &data_input_id="> ++ "> + + + + + +- ++ + + + &data_input_id=">Delete +@@ -520,7 +520,7 @@ + Search:  + + +- "> ++ "> + + +   +@@ -591,7 +591,7 @@ + foreach ($data_inputs as $data_input) { + /* hide system types */ + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $data_input["id"]); $i++; +- form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $data_input["name"]) : $data_input["name"]) . "", $data_input["id"]); ++ form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($data_input["name"])) : htmlspecialchars($data_input["name"])) . "", $data_input["id"]); + form_selectable_cell($input_types{$data_input["type_id"]}, $data_input["id"]); + form_checkbox_cell($data_input["name"], $data_input["id"]); + form_end_row(); +diff -Nur cacti-0.8.7e.base/data_queries.php cacti-0.8.7e.patched/data_queries.php +--- cacti-0.8.7e.base/data_queries.php 2011-01-24 15:18:35.445370665 -0500 ++++ cacti-0.8.7e.patched/data_queries.php 2011-02-01 13:52:03.617383081 -0500 +@@ -231,7 +231,7 @@ + input_validate_input_number($matches[1]); + /* ==================================================== */ + +- $dq_list .= "
  • " . db_fetch_cell("SELECT snmp_query.name FROM snmp_query WHERE id='" . $matches[1] . "'") . "
    "; ++ $dq_list .= "
  • " . htmlspecialchars(db_fetch_cell("SELECT snmp_query.name FROM snmp_query WHERE id='" . $matches[1] . "'")) . "
    "; + $dq_array[$i] = $matches[1]; + } + +@@ -371,7 +371,7 @@ + } + + $snmp_query = db_fetch_row("select name,xml_path from snmp_query where id=" . $_GET["snmp_query_id"]); +- $header_label = "[edit: " . $snmp_query["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($snmp_query["name"]) . "]"; + + html_start_box("Associated Graph/Data Templates $header_label", "100%", $colors["header"], "3", "center", ""); + +@@ -399,66 +399,66 @@ + + $i = 0; + if (sizeof($data_templates) > 0) { +- foreach ($data_templates as $data_template) { +- print " +- Data Template - " . $data_template["name"] . " +- "; ++ foreach ($data_templates as $data_template) { ++ print " ++ Data Template - " . $data_template["name"] . " ++ "; ++ ++ $data_template_rrds = db_fetch_assoc("select ++ data_template_rrd.id, ++ data_template_rrd.data_source_name, ++ snmp_query_graph_rrd.snmp_field_name, ++ snmp_query_graph_rrd.snmp_query_graph_id ++ from data_template_rrd ++ left join snmp_query_graph_rrd on (snmp_query_graph_rrd.data_template_rrd_id=data_template_rrd.id and snmp_query_graph_rrd.snmp_query_graph_id=" . $_GET["id"] . " and snmp_query_graph_rrd.data_template_id=" . $data_template["id"] . ") ++ where data_template_rrd.data_template_id=" . $data_template["id"] . " ++ and data_template_rrd.local_data_id=0 ++ order by data_template_rrd.data_source_name"); ++ ++ $i = 0; ++ if (sizeof($data_template_rrds) > 0) { ++ foreach ($data_template_rrds as $data_template_rrd) { ++ if (empty($data_template_rrd["snmp_query_graph_id"])) { ++ $old_value = ""; ++ }else{ ++ $old_value = "on"; ++ } + +- $data_template_rrds = db_fetch_assoc("select +- data_template_rrd.id, +- data_template_rrd.data_source_name, +- snmp_query_graph_rrd.snmp_field_name, +- snmp_query_graph_rrd.snmp_query_graph_id +- from data_template_rrd +- left join snmp_query_graph_rrd on (snmp_query_graph_rrd.data_template_rrd_id=data_template_rrd.id and snmp_query_graph_rrd.snmp_query_graph_id=" . $_GET["id"] . " and snmp_query_graph_rrd.data_template_id=" . $data_template["id"] . ") +- where data_template_rrd.data_template_id=" . $data_template["id"] . " +- and data_template_rrd.local_data_id=0 +- order by data_template_rrd.data_source_name"); +- +- $i = 0; +- if (sizeof($data_template_rrds) > 0) { +- foreach ($data_template_rrds as $data_template_rrd) { +- if (empty($data_template_rrd["snmp_query_graph_id"])) { +- $old_value = ""; +- }else{ +- $old_value = "on"; ++ form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); $i++; ++ ?> ++ ++ ++ ++ ++ ++ ++ ++ ++
    ++ Data Source: ++ ++ ++ ++ ++ ++ ";?> ++
    ++ ++ ++ +- +- +- +- +- +- +- +- +-
    +- Data Source: +- +- +- +- +- +- ";?> +-
    +- +- +- +- Data Template - " . $data_template["name"] . " ++ Data Template - " . htmlspecialchars($data_template["name"]) . " + "; + + $i = 0; +@@ -491,10 +491,10 @@ + form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); $i++; + ?> + +- ++ + + +- ++ + + + &id=&snmp_query_id=&data_template_id=&field_name=">Move Down +@@ -542,7 +542,7 @@ + order by field_name,sequence"); + + print " +- Graph Template - " . db_fetch_cell("select name from graph_templates where id=" . $snmp_query_item["graph_template_id"]) . " ++ Graph Template - " . htmlspecialchars(db_fetch_cell("select name from graph_templates where id=" . $snmp_query_item["graph_template_id"])) . " + "; + + $i = 0; +@@ -553,10 +553,10 @@ + form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); $i++; + ?> + +- ++ + + +- ++ + + + &id=&snmp_query_id=&field_name=">Move Down +@@ -627,7 +627,7 @@ + + if (!empty($_GET["id"])) { + $snmp_query = db_fetch_row("select * from snmp_query where id=" . $_GET["id"]); +- $header_label = "[edit: " . $snmp_query["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($snmp_query["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -680,10 +680,10 @@ + form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); $i++; + ?> + +- &snmp_query_id="> ++ "> + + +- ++ + + + &snmp_query_id=">Delete +@@ -751,7 +751,7 @@ + Search:  + + +- "> ++ "> + + +   +@@ -823,7 +823,7 @@ + if (sizeof($snmp_queries) > 0) { + foreach ($snmp_queries as $snmp_query) { + form_alternate_row_color($colors["alternate"],$colors["light"],$i, 'line' . $snmp_query["id"]); $i++; +- form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $snmp_query["name"]) : $snmp_query["name"]) . "", $snmp_query["id"]); ++ form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($snmp_query["name"])) : htmlspecialchars($snmp_query["name"])) . "", $snmp_query["id"]); + form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $snmp_query["data_input_method"]) : $snmp_query["data_input_method"]), $snmp_query["id"]); + form_checkbox_cell($snmp_query["name"], $snmp_query["id"]); + form_end_row(); +diff -Nur cacti-0.8.7e.base/data_sources.php cacti-0.8.7e.patched/data_sources.php +--- cacti-0.8.7e.base/data_sources.php 2011-02-01 13:59:36.064888029 -0500 ++++ cacti-0.8.7e.patched/data_sources.php 2011-02-01 13:52:03.621381865 -0500 +@@ -576,7 +576,7 @@ + + $host = db_fetch_row("select host.id,host.hostname from (data_local,host) where data_local.host_id=host.id and data_local.id=" . $_GET["id"]); + +- $header_label = "[edit: " . $data["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($data["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -588,7 +588,7 @@ + /* get each INPUT field for this data input source */ + $fields = db_fetch_assoc("select * from data_input_fields where data_input_id=" . $data["data_input_id"] . " and input_output='in' order by sequence"); + +- html_start_box("Custom Data [data input: " . db_fetch_cell("select name from data_input where id=" . $data["data_input_id"]) . "]", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Custom Data [data input: " . htmlspecialchars(db_fetch_cell("select name from data_input where id=" . $data["data_input_id"])) . "]", "100%", $colors["header"], "3", "center", ""); + + /* loop through each field found */ + if (sizeof($fields) > 0) { +@@ -691,7 +691,7 @@ + exit; + } + +- $header_label = "[edit: " . get_data_source_title($_GET["id"]) . "]"; ++ $header_label = "[edit: " . htmlspecialchars(get_data_source_title($_GET["id"])) . "]"; + + if (empty($data_local["data_template_id"])) { + $use_data_template = false; +@@ -718,7 +718,7 @@ + + + + \n + \n"; + } +@@ -1064,7 +1064,7 @@ + + Data Sources [host: " . (empty($host["hostname"]) ? "No Host" : $host["hostname"]) . "]", "100%", $colors["header"], "3", "center", "data_sources.php?action=ds_edit&host_id=" . get_request_var_request("host_id")); ++ html_start_box("Data Sources [host: " . (empty($host["hostname"]) ? "No Host" : htmlspecialchars($host["hostname"])) . "]", "100%", $colors["header"], "3", "center", "data_sources.php?action=ds_edit&host_id=" . get_request_var_request("host_id")); + + ?> + "> +@@ -1083,9 +1083,9 @@ + $hosts = db_fetch_assoc("select id,CONCAT_WS('',description,' (',hostname,')') as name from host order by description,hostname"); + + if (sizeof($hosts) > 0) { +- foreach ($hosts as $host) { +- print "\n"; +- } ++ foreach ($hosts as $host) { ++ print "\n"; ++ } + } + ?> + +@@ -1108,9 +1108,9 @@ + ORDER BY data_template.name"); + + if (sizeof($templates) > 0) { +- foreach ($templates as $template) { +- print "\n"; +- } ++ foreach ($templates as $template) { ++ print "\n"; ++ } + } + ?> + +@@ -1139,9 +1139,9 @@ + ORDER BY data_input.name"); + + if (sizeof($methods) > 0) { +- foreach ($methods as $method) { +- print "\n"; +- } ++ foreach ($methods as $method) { ++ print "\n"; ++ } + } + ?> + +@@ -1154,9 +1154,9 @@ + + 0) { +- foreach ($item_rows as $key => $value) { +- print "\n"; +- } ++ foreach ($item_rows as $key => $value) { ++ print "\n"; ++ } + } + ?> + +@@ -1169,7 +1169,7 @@ + Search:  + + + +
    +- ++ + + *Turn Data Source Debug Mode.
    +@@ -870,7 +870,7 @@ + foreach ($template_data_rrds as $template_data_rrd) { + $i++; + print "
    +- $i: " . $template_data_rrd["data_source_name"] . "" . (($use_data_template == false) ? " Delete" : "") . " ++ $i: " . htmlspecialchars($template_data_rrd["data_source_name"]) . "" . (($use_data_template == false) ? " Delete" : "") . " +
    +- "> ++ "> +
    +@@ -1304,12 +1304,12 @@ + $data_input_name = ((empty($data_source["data_input_name"])) ? "External" : $data_source["data_input_name"]); + $poller_interval = ((isset($poller_intervals[$data_source["local_data_id"]])) ? $poller_intervals[$data_source["local_data_id"]] : 0); + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $data_source["local_data_id"]); $i++; +- form_selectable_cell("" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlentities($data_source["name_cache"]), read_config_option("max_title_data_source"))) . "", $data_source["local_data_id"]); ++ form_selectable_cell("" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", title_trim(htmlspecialchars($data_source["name_cache"]), read_config_option("max_title_data_source"))) : title_trim(htmlspecialchars($data_source["name_cache"]), read_config_option("max_title_data_source"))) . "", $data_source["local_data_id"]); + form_selectable_cell($data_source['local_data_id'], $data_source['local_data_id']); +- form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $data_input_name) : $data_input_name) . "", $data_source["local_data_id"]); ++ form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($data_input_name)) : htmlspecialchars($data_input_name)), $data_source["local_data_id"]); + form_selectable_cell(get_poller_interval($poller_interval), $data_source["local_data_id"]); + form_selectable_cell(($data_source['active'] == "on" ? "Yes" : "No"), $data_source["local_data_id"]); +- form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $data_source['data_template_name']) : $data_source['data_template_name']) . "", $data_source["local_data_id"]); ++ form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($data_source['data_template_name'])) : htmlspecialchars($data_source['data_template_name'])), $data_source["local_data_id"]); + form_checkbox_cell($data_source["name_cache"], $data_source["local_data_id"]); + form_end_row(); + } +diff -Nur cacti-0.8.7e.base/data_templates.php cacti-0.8.7e.patched/data_templates.php +--- cacti-0.8.7e.base/data_templates.php 2011-01-24 15:18:35.117381542 -0500 ++++ cacti-0.8.7e.patched/data_templates.php 2011-02-01 13:52:03.621381865 -0500 +@@ -427,7 +427,7 @@ + $header_label = "[new]"; + } + +- html_start_box("Data Templates $header_label", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Data Templates " . htmlspecialchars($header_label), "100%", $colors["header"], "3", "center", ""); + + draw_edit_form(array( + "config" => array(), +@@ -516,7 +516,7 @@ + + print " + +- Data Source Item [" . (isset($template_rrd) ? $template_rrd["data_source_name"] : "") . "] ++ Data Source Item [" . (isset($template_rrd) ? htmlspecialchars($template_rrd["data_source_name"]) : "") . "] + + + " . (!empty($_GET["id"]) ? "New " : "") . " +@@ -567,7 +567,7 @@ + /* get each INPUT field for this data input source */ + $fields = db_fetch_assoc("select * from data_input_fields where data_input_id=" . $template_data["data_input_id"] . " and input_output='in' order by sequence"); + +- html_start_box("Custom Data [data input: " . db_fetch_cell("select name from data_input where id=" . $template_data["data_input_id"]) . "]", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Custom Data [data input: " . htmlspecialchars(db_fetch_cell("select name from data_input where id=" . $template_data["data_input_id"])) . "]", "100%", $colors["header"], "3", "center", ""); + + /* loop through each field found */ + if (sizeof($fields) > 0) { +@@ -658,7 +658,7 @@ + Search:  + + +- "> ++ "> + + +   +diff -Nur cacti-0.8.7e.base/gprint_presets.php cacti-0.8.7e.patched/gprint_presets.php +--- cacti-0.8.7e.base/gprint_presets.php 2011-01-24 15:18:35.389369115 -0500 ++++ cacti-0.8.7e.patched/gprint_presets.php 2011-02-01 13:52:03.544881043 -0500 +@@ -95,7 +95,7 @@ + + if ((read_config_option("deletion_verification") == "on") && (!isset($_GET["confirm"]))) { + include_once("./include/top_header.php"); +- form_confirm("Are You Sure?", "Are you sure you want to delete the GPRINT preset '" . db_fetch_cell("select name from graph_templates_gprint where id=" . $_GET["id"]) . "'? This could affect every graph that uses this preset, make sure you know what you are doing first!", "gprint_presets.php", "gprint_presets.php?action=remove&id=" . $_GET["id"]); ++ form_confirm("Are You Sure?", "Are you sure you want to delete the GPRINT preset '" . htmlspecialchars(db_fetch_cell("select name from graph_templates_gprint where id=" . $_GET["id"])) . "'? This could affect every graph that uses this preset, make sure you know what you are doing first!", htmlspecialchars("gprint_presets.php"), htmlspecialchars("gprint_presets.php?action=remove&id=" . $_GET["id"])); + exit; + } + +@@ -113,7 +113,7 @@ + + if (!empty($_GET["id"])) { + $gprint_preset = db_fetch_row("select * from graph_templates_gprint where id=" . $_GET["id"]); +- $header_label = "[edit: " . $gprint_preset["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($gprint_preset["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -150,7 +150,7 @@ + form_alternate_row_color($colors["alternate"],$colors["light"],$i); + ?> + +- "> ++ "> + + + ">Delete +diff -Nur cacti-0.8.7e.base/graph.php cacti-0.8.7e.patched/graph.php +--- cacti-0.8.7e.base/graph.php 2011-02-01 13:59:36.136869779 -0500 ++++ cacti-0.8.7e.patched/graph.php 2011-02-01 13:52:03.625388497 -0500 +@@ -80,39 +80,39 @@ + ?> + + +- Viewing Graph '' ++ Viewing Graph '' + + + 0) { +- foreach ($rras as $rra) { +- ?> +- +- +- +- +- +- +- +- +- +- +-
    +- <?php print $graph_title;?> +- +- Zoom Graph
    +- CSV Export
    +- Graph Source/Properties +-
    +- +-
    +- +- +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
    ++ <?php print htmlspecialchars($graph_title);?> ++ ++ Zoom Graph
    ++ CSV Export
    ++ Graph Source/Properties ++
    ++ ++
    ++ ++ ++ + + +- Zooming Graph '' ++ Zooming Graph '' + + +
    +@@ -209,7 +209,7 @@ + + + + + + + +
    +- <?php print $graph_title;?> ++ <?php print htmlspecialchars($graph_title);?> + + Graph Source/Properties +@@ -218,7 +218,7 @@ +
    +- ++ +
    +@@ -233,7 +233,7 @@ + ?> + + +- Viewing Graph Properties '' ++ Viewing Graph Properties '' + + + +@@ -241,7 +241,7 @@ + + + + + + + +
    +- <?php print $graph_title;?> ++ <?php print htmlspecialchars($graph_title);?> + + Zoom Graph
    +@@ -250,7 +250,7 @@ +
    +- ++ +
    +diff -Nur cacti-0.8.7e.base/graphs_new.php cacti-0.8.7e.patched/graphs_new.php +--- cacti-0.8.7e.base/graphs_new.php 2011-02-01 13:59:35.996870890 -0500 ++++ cacti-0.8.7e.patched/graphs_new.php 2011-02-01 13:52:03.625388497 -0500 +@@ -426,12 +426,12 @@ + + + + +@@ -448,9 +448,9 @@ + $hosts = db_fetch_assoc("select id,CONCAT_WS('',description,' (',hostname,')') as name from host order by description,hostname"); + + if (sizeof($hosts) > 0) { +- foreach ($hosts as $item) { +- print "\n"; +- } ++ foreach ($hosts as $item) { ++ print "\n"; ++ } + } + ?> + +@@ -494,7 +494,7 @@ + Search:  + + + "; $i++; + + print " +
    +- () ++ () + + + +- "> ++ "> + +   +@@ -570,7 +570,7 @@ + print "
    +- Create: " . $graph_template["graph_template_name"] . " ++ Create: " . htmlspecialchars($graph_template["graph_template_name"]) . " + + +diff -Nur cacti-0.8.7e.base/graphs.php cacti-0.8.7e.patched/graphs.php +--- cacti-0.8.7e.base/graphs.php 2011-01-24 15:18:35.469381736 -0500 ++++ cacti-0.8.7e.patched/graphs.php 2011-02-01 13:52:03.625388497 -0500 +@@ -563,7 +563,7 @@ + order by graph_templates_item.sequence"); + + $host_id = db_fetch_cell("select host_id from graph_local where id=" . $_GET["id"]); +- $header_label = "[edit: " . get_graph_title($_GET["id"]) . "]"; ++ $header_label = "[edit: " . htmlspecialchars(get_graph_title($_GET["id"])) . "]"; + } + + $graph_template_id = db_fetch_cell("select graph_template_id from graph_local where id=" . $_GET["id"]); +@@ -826,7 +826,7 @@ + $graphs_template = db_fetch_row("select * from graph_templates_graph where id=$local_graph_template_graph_id"); + + $host_id = db_fetch_cell("select host_id from graph_local where id=" . $_GET["id"]); +- $header_label = "[edit: " . get_graph_title($_GET["id"]) . "]"; ++ $header_label = "[edit: " . htmlspecialchars(get_graph_title($_GET["id"])) . "]"; + + if ($graphs["graph_template_id"] == "0") { + $use_graph_template = false; +@@ -850,7 +850,7 @@ + + + + + + + + + + + + + + + + "; + }elseif ($_POST["drp_action"] == "3") { /* Disable Devices */ + print " + + "; + }elseif ($_POST["drp_action"] == "4") { /* change snmp options */ +@@ -360,7 +360,7 @@ + + "; + $form_array = array(); +@@ -391,7 +391,7 @@ + + "; + $form_array = array(); +@@ -427,7 +427,7 @@ + print " + +@@ -439,7 +439,7 @@ + + \n +@@ -514,7 +514,7 @@ + + if ((read_config_option("deletion_verification") == "on") && (!isset($_GET["confirm"]))) { + include("./include/top_header.php"); +- form_confirm("Are You Sure?", "Are you sure you want to delete the host '" . db_fetch_cell("select description from host where id=" . $_GET["id"]) . "'?", "host.php", "host.php?action=remove&id=" . $_GET["id"]); ++ form_confirm("Are You Sure?", "Are you sure you want to delete the host '" . htmlspecialchars(db_fetch_cell("select description from host where id=" . $_GET["id"])) . "'?", htmlspecialchars("host.php"), htmlspecialchars("host.php?action=remove&id=" . $_GET["id"])); + include("./include/bottom_footer.php"); + exit; + } +@@ -535,7 +535,7 @@ + + if (!empty($_GET["id"])) { + $host = db_fetch_row("select * from host where id=" . $_GET["id"]); +- $header_label = "[edit: " . $host["description"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($host["description"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -545,7 +545,7 @@ +
    +- ++ + + *Turn Graph Debug Mode.
    +@@ -1146,9 +1146,9 @@ + } + + if (sizeof($hosts) > 0) { +- foreach ($hosts as $host) { +- print "\n"; +- } ++ foreach ($hosts as $host) { ++ print "\n"; ++ } + } + ?> + +@@ -1178,9 +1178,9 @@ + } + + if (sizeof($templates) > 0) { +- foreach ($templates as $template) { +- print "\n"; +- } ++ foreach ($templates as $template) { ++ print "\n"; ++ } + } + ?> + +@@ -1197,7 +1197,7 @@ +  Search:  +
    +- "> ++ "> + + Rows per Page:  +@@ -1207,9 +1207,9 @@ + + 0) { +- foreach ($item_rows as $key => $value) { +- print "\n"; +- } ++ foreach ($item_rows as $key => $value) { ++ print "\n"; ++ } + } + ?> + +@@ -1308,9 +1308,9 @@ + foreach ($graph_list as $graph) { + $template_name = ((empty($graph["name"])) ? "None" : $graph["name"]); + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $graph["local_graph_id"]); $i++; +- form_selectable_cell("" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", title_trim($graph["title_cache"], read_config_option("max_title_graph"))) : title_trim($graph["title_cache"], read_config_option("max_title_graph"))) . "", $graph["local_graph_id"]); ++ form_selectable_cell("" . ((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", title_trim(htmlspecialchars($graph["title_cache"]), read_config_option("max_title_graph"))) : title_trim(htmlspecialchars($graph["title_cache"]), read_config_option("max_title_graph"))) . "", $graph["local_graph_id"]); + form_selectable_cell($graph["local_graph_id"], $graph["local_graph_id"]); +- form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $template_name) : $template_name) . "", $graph["local_graph_id"]); ++ form_selectable_cell(((get_request_var_request("filter") != "") ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($template_name)) : htmlspecialchars($template_name)), $graph["local_graph_id"]); + form_selectable_cell($graph["height"] . "x" . $graph["width"], $graph["local_graph_id"]); + form_checkbox_cell($graph["title_cache"], $graph["local_graph_id"]); + form_end_row(); +diff -Nur cacti-0.8.7e.base/graph_templates_inputs.php cacti-0.8.7e.patched/graph_templates_inputs.php +--- cacti-0.8.7e.base/graph_templates_inputs.php 2011-01-24 15:18:35.721380661 -0500 ++++ cacti-0.8.7e.patched/graph_templates_inputs.php 2011-02-01 13:52:03.552882100 -0500 +@@ -161,7 +161,7 @@ + $graph_template_input = db_fetch_row("select * from graph_template_input where id=" . $_GET["id"]); + } + +- html_start_box("Graph Item Inputs $header_label", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Graph Item Inputs " . htmlspecialchars($header_label), "100%", $colors["header"], "3", "center", ""); + + draw_edit_form(array( + "config" => array(), +diff -Nur cacti-0.8.7e.base/graph_templates_items.php cacti-0.8.7e.patched/graph_templates_items.php +--- cacti-0.8.7e.base/graph_templates_items.php 2011-01-24 15:18:35.309370877 -0500 ++++ cacti-0.8.7e.patched/graph_templates_items.php 2011-02-01 13:52:03.552882100 -0500 +@@ -299,7 +299,7 @@ + + $header_label = "[edit graph: " . db_fetch_cell("select name from graph_templates where id=" . $_GET["graph_template_id"]) . "]"; + +- html_start_box("Graph Template Items $header_label", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Graph Template Items " . htmlspecialchars($header_label), "100%", $colors["header"], "3", "center", ""); + + if (!empty($_GET["id"])) { + $template_item = db_fetch_row("select * from graph_templates_item where id=" . $_GET["id"]); +diff -Nur cacti-0.8.7e.base/graph_templates.php cacti-0.8.7e.patched/graph_templates.php +--- cacti-0.8.7e.base/graph_templates.php 2011-01-24 15:18:35.609371048 -0500 ++++ cacti-0.8.7e.patched/graph_templates.php 2011-02-01 13:52:03.629382900 -0500 +@@ -308,7 +308,7 @@ + $header_label = "[edit: " . db_fetch_cell("select name from graph_templates where id=" . $_GET["id"]) . "]"; + } + +- html_start_box("Graph Template Items $header_label", "100%", $colors["header"], "3", "center", "graph_templates_items.php?action=item_edit&graph_template_id=" . $_GET["id"]); ++ html_start_box("Graph Template Items " . htmlspecialchars($header_label), "100%", $colors["header"], "3", "center", "graph_templates_items.php?action=item_edit&graph_template_id=" . $_GET["id"]); + draw_graph_items_list($template_item_list, "graph_templates_items.php", "graph_template_id=" . $_GET["id"], false); + html_end_box(); + +@@ -326,7 +326,7 @@ + form_alternate_row_color($colors["alternate"],$colors["light"],$i); + ?> + +- &graph_template_id="> ++ "> + + &graph_template_id=">Delete +@@ -367,7 +367,7 @@ + $header_label = "[new]"; + } + +- html_start_box("Template $header_label", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Template " . htmlspecialchars($header_label), "100%", $colors["header"], "3", "center", ""); + + draw_edit_form(array( + "config" => array(), +@@ -493,7 +493,7 @@ + Search:  + +- "> ++ "> + +   +@@ -558,7 +558,7 @@ + if (sizeof($template_list) > 0) { + foreach ($template_list as $template) { + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $template["id"]);$i++; +- form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $template["name"]) : $template["name"]) . "", $template["id"]); ++ form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($template["name"])) : htmlspecialchars($template["name"])) . "", $template["id"]); + form_checkbox_cell($template["name"], $template["id"]); + form_end_row(); + } +diff -Nur cacti-0.8.7e.base/graph_view.php cacti-0.8.7e.patched/graph_view.php +--- cacti-0.8.7e.base/graph_view.php 2011-01-24 15:18:35.413381585 -0500 ++++ cacti-0.8.7e.patched/graph_view.php 2011-02-01 13:52:03.629382900 -0500 +@@ -326,9 +326,9 @@ + } + + if (sizeof($hosts) > 0) { +- foreach ($hosts as $host) { +- print "\n"; +- } ++ foreach ($hosts as $host) { ++ print "\n"; ++ } + } + ?> + +@@ -357,9 +357,9 @@ + } + + if (sizeof($graph_templates) > 0) { +- foreach ($graph_templates as $template) { +- print "\n"; +- } ++ foreach ($graph_templates as $template) { ++ print "\n"; ++ } + } + ?> + +@@ -368,7 +368,7 @@ +  Search:  + +- "> ++ "> + +   +@@ -689,9 +689,9 @@ + } + + if (sizeof($hosts) > 0) { +- foreach ($hosts as $host) { +- print "\n"; +- } ++ foreach ($hosts as $host) { ++ print "\n"; ++ } + } + ?> + +@@ -701,7 +701,7 @@ + + +@@ -730,7 +730,7 @@ +  Search:  + +- "> ++ "> + +   +diff -Nur cacti-0.8.7e.base/host.php cacti-0.8.7e.patched/host.php +--- cacti-0.8.7e.base/host.php 2011-02-01 13:59:36.068881641 -0500 ++++ cacti-0.8.7e.patched/host.php 2011-02-01 13:52:03.633382279 -0500 +@@ -325,7 +325,7 @@ + input_validate_input_number($matches[1]); + /* ==================================================== */ + +- $host_list .= "
  • " . db_fetch_cell("select description from host where id=" . $matches[1]) . "
    "; ++ $host_list .= "
  • " . htmlspecialchars(db_fetch_cell("select description from host where id=" . $matches[1])) . "
    "; + $host_array[$i] = $matches[1]; + } + +@@ -345,14 +345,14 @@ + print "
  • +

    To enable the following devices, press the \"yes\" button below.

    +-

    $host_list

    ++

      " . $host_list . "

    +
    +

    To disable the following devices, press the \"yes\" button below.

    +-

    $host_list

    ++

      " . $host_list . "

    +
    +

    To change SNMP parameters for the following devices, check the box next to the fields + you want to update, fill in the new value, and click Save.

    +-

    $host_list

    ++

      " . $host_list . "

    +
    +

    To change SNMP parameters for the following devices, check the box next to the fields + you want to update, fill in the new value, and click Save.

    +-

    $host_list

    ++

      " . $host_list . "

    +
    +

    Are you sure you want to delete the following devices?

    +-

    $host_list

    "; ++

      " . $host_list . "

    "; + form_radio_button("delete_type", "2", "1", "Leave all graphs and data sources untouched. Data sources will be disabled however.", "1"); print "
    "; + form_radio_button("delete_type", "2", "2", "Delete all associated graphs and data sources.", "1"); print "
    "; + print "
    +

    When you click save, the following hosts will be placed under the branch selected + below.

    +-

    $host_list

    ++

      " . $host_list . "

    +

    Destination Branch:
    "; grow_dropdown_tree($matches[1], "tree_item_id", "0"); print "

    +
    + + + + +@@ -986,7 +986,7 @@ + ?> + + + + + + + + + + + + + + +diff -Nur cacti-0.8.7e.base/lib/functions.php cacti-0.8.7e.patched/lib/functions.php +--- cacti-0.8.7e.base/lib/functions.php 2011-01-24 15:18:35.221369622 -0500 ++++ cacti-0.8.7e.patched/lib/functions.php 2011-02-01 13:52:03.565370802 -0500 +@@ -1762,15 +1762,18 @@ + if ($current_mappings[$i] == "?") { + /* '?' tells us to pull title from the cache at this level */ + if (isset($nav_level_cache{$i})) { +- $current_nav .= (empty($url) ? "" : "") . resolve_navigation_variables($nav{$nav_level_cache{$i}["id"]}["title"]) . (empty($url) ? "" : "") . " -> "; ++ $current_nav .= (empty($url) ? "" : "") . htmlspecialchars(resolve_navigation_variables($nav{$nav_level_cache{$i}["id"]}["title"])) . (empty($url) ? "" : "") . " -> "; ++ $title .= htmlspecialchars(resolve_navigation_variables($nav{$nav_level_cache{$i}["id"]}["title"])) . " -> "; + } + }else{ + /* there is no '?' - pull from the above array */ +- $current_nav .= (empty($url) ? "" : "") . resolve_navigation_variables($nav{$current_mappings[$i]}["title"]) . (empty($url) ? "" : "") . " -> "; ++ $current_nav .= (empty($url) ? "" : "") . htmlspecialchars(resolve_navigation_variables($nav{$current_mappings[$i]}["title"])) . (empty($url) ? "" : "") . " -> "; ++ $title .= htmlspecialchars(resolve_navigation_variables($nav{$current_mappings[$i]}["title"])) . " -> "; + } + } + +- $current_nav .= resolve_navigation_variables($current_array["title"]); ++ $current_nav .= htmlspecialchars(resolve_navigation_variables($current_array["title"])); ++ $title .= htmlspecialchars(resolve_navigation_variables($current_array["title"])); + + /* keep a cache for each level we encounter */ + $nav_level_cache{$current_array["level"]} = array("id" => $current_page . ":" . $current_action, "url" => get_browser_query_string()); +diff -Nur cacti-0.8.7e.base/lib/html_form.php cacti-0.8.7e.patched/lib/html_form.php +--- cacti-0.8.7e.base/lib/html_form.php 2011-02-01 13:59:36.096871163 -0500 ++++ cacti-0.8.7e.patched/lib/html_form.php 2011-02-01 13:52:03.565370802 -0500 +@@ -65,7 +65,7 @@ + form_alternate_row_color($colors["form_alternate1"], $colors["form_alternate2"], $i, 'row_' . $field_name); + } + +- print "\n"; +- }elseif (($draw_any_items == false) && ($draw_title_for_each_item == true) && ($header_title != "")) { +- print "\n"; ++ /* append the data source item name so the user will recognize it */ ++ if ($draw_title_for_each_item == false) { ++ $form_array[$form_field_name]["friendly_name"] .= " [" . $rrd["data_source_name"] . "]"; + } + +- $draw_any_items = true; +- +- /* if the "Output field" appears here among the non-templated fields, the +- valid choices for the drop-down box must be fetched from the associated +- data input method */ +- if ($field_name == "data_input_field_id") { +- $data_input_id = db_fetch_cell("select data_input_id from data_template_data where data_template_id=".$rrd["data_template_id"]." and local_data_id=0"); +- $form_array[$form_field_name]["sql"] = "select id,CONCAT(data_name,' - ',name) as name from data_input_fields where data_input_id=".$data_input_id." and input_output='out' and update_rra='on' order by data_name,name"; ++ if ($data_template_rrd{"t_" . $field_name} != "on") { ++ if ($include_hidden_fields == true) { ++ $form_array[$form_field_name]["method"] = "hidden"; ++ }else{ ++ unset($form_array[$form_field_name]); ++ } ++ }elseif ((!empty($snmp_query_graph_id)) && (sizeof(db_fetch_assoc("select id from snmp_query_graph_rrd_sv where snmp_query_graph_id=$snmp_query_graph_id and data_template_id=$data_template_id and field_name='$field_name'")) > 0)) { ++ if ($include_hidden_fields == true) { ++ $form_array[$form_field_name]["method"] = "hidden"; ++ }else{ ++ unset($form_array[$form_field_name]); ++ } ++ }else{ ++ if (($draw_any_items == false) && ($draw_title_for_each_item == false) && ($header_title != "")) { ++ print "\n"; ++ }elseif (($draw_any_items == false) && ($draw_title_for_each_item == true) && ($header_title != "")) { ++ print "\n"; ++ } ++ ++ $draw_any_items = true; ++ ++ /* if the "Output field" appears here among the non-templated fields, the ++ valid choices for the drop-down box must be fetched from the associated ++ data input method */ ++ if ($field_name == "data_input_field_id") { ++ $data_input_id = db_fetch_cell("select data_input_id from data_template_data where data_template_id=".$rrd["data_template_id"]." and local_data_id=0"); ++ $form_array[$form_field_name]["sql"] = "select id,CONCAT(data_name,' - ',name) as name from data_input_fields where data_input_id=".$data_input_id." and input_output='out' and update_rra='on' order by data_name,name"; ++ } + } + } +- } + +- draw_edit_form( +- array( +- "config" => $form_config_array, +- "fields" => $form_array +- ) +- ); ++ draw_edit_form( ++ array( ++ "config" => $form_config_array, ++ "fields" => $form_array ++ ) ++ ); + +- $num_fields_drawn += sizeof($form_array); +- } ++ $num_fields_drawn += sizeof($form_array); ++ } + } + + return $num_fields_drawn; +@@ -414,61 +414,61 @@ + /* loop through each field found */ + $i = 0; + if (sizeof($fields) > 0) { +- foreach ($fields as $field) { +- $data_input_data = db_fetch_row("select * from data_input_data where data_template_data_id=" . $data["id"] . " and data_input_field_id=" . $field["id"]); +- +- if (sizeof($data_input_data) > 0) { +- $old_value = $data_input_data["value"]; +- }else{ +- $old_value = ""; +- } +- +- /* if data template then get t_value from template, else always allow user input */ +- if (empty($data["data_template_id"])) { +- $can_template = "on"; +- }else{ +- $can_template = db_fetch_cell("select t_value from data_input_data where data_template_data_id=" . $template_data["id"] . " and data_input_field_id=" . $field["id"]); +- } +- +- /* find our field name */ +- $form_field_name = str_replace("|id|", $field["id"], $field_name_format); ++ foreach ($fields as $field) { ++ $data_input_data = db_fetch_row("select * from data_input_data where data_template_data_id=" . $data["id"] . " and data_input_field_id=" . $field["id"]); + +- if ((!empty($host_id)) && (eregi('^' . VALID_HOST_FIELDS . '$', $field["type_code"])) && (empty($can_template))) { /* no host fields */ +- if ($include_hidden_fields == true) { +- form_hidden_box($form_field_name, $old_value, ""); +- } +- }elseif ((!empty($snmp_query_id)) && (eregi('^(index_type|index_value|output_type)$', $field["type_code"]))) { /* no data query fields */ +- if ($include_hidden_fields == true) { +- form_hidden_box($form_field_name, $old_value, ""); +- } +- }elseif (empty($can_template)) { /* no templated fields */ +- if ($include_hidden_fields == true) { +- form_hidden_box($form_field_name, $old_value, ""); +- } +- }else{ +- if (($draw_any_items == false) && ($header_title != "")) { +- print "\n"; ++ if (sizeof($data_input_data) > 0) { ++ $old_value = $data_input_data["value"]; ++ }else{ ++ $old_value = ""; + } + +- if ($alternate_colors == true) { +- form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); ++ /* if data template then get t_value from template, else always allow user input */ ++ if (empty($data["data_template_id"])) { ++ $can_template = "on"; + }else{ +- print "\n"; ++ $can_template = db_fetch_cell("select t_value from data_input_data where data_template_data_id=" . $template_data["id"] . " and data_input_field_id=" . $field["id"]); + } + +- print "\n"; +- print "\n"; ++ } ++ ++ if ($alternate_colors == true) { ++ form_alternate_row_color($colors["form_alternate1"],$colors["form_alternate2"],$i); ++ }else{ ++ print "\n"; ++ } ++ ++ print "\n"; ++ print ""; +- print "\n"; ++ print ""; ++ print "\n"; + +- $draw_any_items = true; +- $i++; ++ $draw_any_items = true; ++ $i++; ++ } + } + } +- } + + return $i; + } +diff -Nur cacti-0.8.7e.base/lib/html.php cacti-0.8.7e.patched/lib/html.php +--- cacti-0.8.7e.base/lib/html.php 2011-01-24 15:18:35.169381809 -0500 ++++ cacti-0.8.7e.patched/lib/html.php 2011-02-01 13:52:03.573370897 -0500 +@@ -109,7 +109,7 @@ + if ($print) { + print " + + "; + } +@@ -127,7 +127,7 @@ + } + + if ($print) { +- print ""; ++ print ""; + } + print " +
    +- () ++ () +
    +- ) ++ ) + + Is Being Graphed (Edit)" : "Not Being Graphed");?> +@@ -1062,7 +1062,7 @@ + ?> +
    +- ) ++ ) + + (&host_id=">Verbose Query) +@@ -1205,9 +1205,9 @@ + $host_templates = db_fetch_assoc("select id,name from host_template order by name"); + + if (sizeof($host_templates) > 0) { +- foreach ($host_templates as $host_template) { +- print "\n"; +- } ++ foreach ($host_templates as $host_template) { ++ print "\n"; ++ } + } + ?> + +@@ -1231,7 +1231,7 @@ +  Search:  + +- "> ++ "> + +  Rows per Page:  +@@ -1241,9 +1241,9 @@ + + 0) { +- foreach ($item_rows as $key => $value) { +- print "\n"; +- } ++ foreach ($item_rows as $key => $value) { ++ print "\n"; ++ } + } + ?> + +@@ -1354,13 +1354,13 @@ + foreach ($hosts as $host) { + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $host["id"]); $i++; + form_selectable_cell("" . +- (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $host["description"]) : $host["description"]) . "", $host["id"], 250); ++ (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($host["description"])) : htmlspecialchars($host["description"])) . "", $host["id"], 250); + form_selectable_cell(round(($host["id"]), 2), $host["id"]); + form_selectable_cell((isset($host_graphs[$host["id"]]) ? $host_graphs[$host["id"]] : 0), $host["id"]); + form_selectable_cell((isset($host_data_sources[$host["id"]]) ? $host_data_sources[$host["id"]] : 0), $host["id"]); + form_selectable_cell(get_colored_device_status(($host["disabled"] == "on" ? true : false), $host["status"]), $host["id"]); + form_selectable_cell(round(($host["status_event_count"]), 2), $host["id"]); +- form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $host["hostname"]) : $host["hostname"]), $host["id"]); ++ form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($host["hostname"])) : htmlspecialchars($host["hostname"])), $host["id"]); + form_selectable_cell(round(($host["cur_time"]), 2), $host["id"]); + form_selectable_cell(round(($host["avg_time"]), 2), $host["id"]); + form_selectable_cell(round($host["availability"], 2), $host["id"]); +diff -Nur cacti-0.8.7e.base/host_templates.php cacti-0.8.7e.patched/host_templates.php +--- cacti-0.8.7e.base/host_templates.php 2011-01-24 15:18:35.089370745 -0500 ++++ cacti-0.8.7e.patched/host_templates.php 2011-02-01 13:52:03.648869205 -0500 +@@ -252,7 +252,7 @@ + $_GET["id"] = 0; + } + +- html_start_box("Host Templates $header_label", "100%", $colors["header"], "3", "center", ""); ++ html_start_box("Host Templates " . htmlspecialchars($header_label), "100%", $colors["header"], "3", "center", ""); + + draw_edit_form(array( + "config" => array(), +@@ -279,7 +279,7 @@ + ?> +
    +- ) ++ ) + + Delete +@@ -329,7 +329,7 @@ + ?> +
    +- ) ++ ) + + Delete +@@ -421,7 +421,7 @@ + Search:  + +- "> ++ "> + +   +@@ -487,7 +487,7 @@ + if (sizeof($template_list) > 0) { + foreach ($template_list as $template) { + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $template["id"]);$i++; +- form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $template["name"]) : $template["name"]) . "", $template["id"]); ++ form_selectable_cell("" . (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($template["name"])) : htmlspecialchars($template["name"])) . "", $template["id"]); + form_checkbox_cell($template["name"], $template["id"]); + form_end_row(); + } +diff -Nur cacti-0.8.7e.base/include/top_graph_header.php cacti-0.8.7e.patched/include/top_graph_header.php +--- cacti-0.8.7e.base/include/top_graph_header.php 2011-02-01 13:59:35.920869376 -0500 ++++ cacti-0.8.7e.patched/include/top_graph_header.php 2011-02-01 13:52:03.561370824 -0500 +@@ -27,6 +27,8 @@ + + /* ================= input validation ================= */ + input_validate_input_number(get_request_var_request("local_graph_id")); ++input_validate_input_number(get_request_var_request("graph_start")); ++input_validate_input_number(get_request_var_request("graph_end")); + /* ==================================================== */ + + if (read_config_option("auth_method") != 0) { +@@ -128,15 +130,15 @@ + + /* override: graph start time (unix time) */ + if (!empty($_GET["graph_start"])) { +- $graph_data_array["graph_start"] = $_GET["graph_start"]; ++ $graph_data_array["graph_start"] = get_request_var_request("graph_start"); + } + + /* override: graph end time (unix time) */ + if (!empty($_GET["graph_end"])) { +- $graph_data_array["graph_end"] = $_GET["graph_end"]; ++ $graph_data_array["graph_end"] = get_request_var_request("graph_end"); + } + +- print trim(rrdtool_function_graph($_GET["local_graph_id"], $_GET["rra_id"], $graph_data_array)); ++ print trim(@rrdtool_function_graph(get_request_var_request("local_graph_id"), get_request_var_request("rra_id"), $graph_data_array)); + ?> +
    \n" . $field_array["friendly_name"] . "
    \n"; ++ print "
    \n" . htmlspecialchars($field_array["friendly_name"]) . "
    \n"; + + if (isset($field_array["sub_checkbox"])) { + form_checkbox($field_array["sub_checkbox"]["name"], $field_array["sub_checkbox"]["value"], +@@ -432,7 +432,7 @@ + $on_change = " onChange='$on_change' "; + } + +- print ""; + + if (!empty($form_none_entry)) { + print "\n"; +diff -Nur cacti-0.8.7e.base/lib/html_form_template.php cacti-0.8.7e.patched/lib/html_form_template.php +--- cacti-0.8.7e.base/lib/html_form_template.php 2011-01-24 15:18:35.141370916 -0500 ++++ cacti-0.8.7e.patched/lib/html_form_template.php 2011-02-01 13:52:03.569371102 -0500 +@@ -307,79 +307,79 @@ + } + + if (sizeof($values_array) > 0) { +- foreach ($values_array as $rrd) { +- reset($struct_data_source_item); +- $form_array = array(); +- +- /* if the user specifies a title, we only want to draw that. if not, we should create our +- own title for each data source item */ +- if ($draw_title_for_each_item == true) { +- $draw_any_items = false; +- } ++ foreach ($values_array as $rrd) { ++ reset($struct_data_source_item); ++ $form_array = array(); + +- if (empty($rrd["local_data_id"])) { /* this is a template */ +- $data_template_rrd = $rrd; +- }else{ /* this is not a template */ +- $data_template_rrd = db_fetch_row("select * from data_template_rrd where id=" . $rrd["local_data_template_rrd_id"]); +- } ++ /* if the user specifies a title, we only want to draw that. if not, we should create our ++ own title for each data source item */ ++ if ($draw_title_for_each_item == true) { ++ $draw_any_items = false; ++ } + +- while (list($field_name, $field_array) = each($struct_data_source_item)) { +- /* find our field name */ +- $form_field_name = str_replace("|field|", $field_name, $field_name_format); +- $form_field_name = str_replace("|id|", $rrd["id"], $form_field_name); ++ if (empty($rrd["local_data_id"])) { /* this is a template */ ++ $data_template_rrd = $rrd; ++ }else{ /* this is not a template */ ++ $data_template_rrd = db_fetch_row("select * from data_template_rrd where id=" . $rrd["local_data_template_rrd_id"]); ++ } + +- $form_array += array($form_field_name => $struct_data_source_item[$field_name]); ++ while (list($field_name, $field_array) = each($struct_data_source_item)) { ++ /* find our field name */ ++ $form_field_name = str_replace("|field|", $field_name, $field_name_format); ++ $form_field_name = str_replace("|id|", $rrd["id"], $form_field_name); + +- /* modifications to the default form array */ +- $form_array[$form_field_name]["value"] = (isset($rrd[$field_name]) ? $rrd[$field_name] : ""); +- $form_array[$form_field_name]["form_id"] = (isset($rrd["id"]) ? $rrd["id"] : "0"); +- unset($form_array[$form_field_name]["default"]); ++ $form_array += array($form_field_name => $struct_data_source_item[$field_name]); + +- /* append the data source item name so the user will recognize it */ +- if ($draw_title_for_each_item == false) { +- $form_array[$form_field_name]["friendly_name"] .= " [" . $rrd["data_source_name"] . "]"; +- } ++ /* modifications to the default form array */ ++ $form_array[$form_field_name]["value"] = (isset($rrd[$field_name]) ? $rrd[$field_name] : ""); ++ $form_array[$form_field_name]["form_id"] = (isset($rrd["id"]) ? $rrd["id"] : "0"); ++ unset($form_array[$form_field_name]["default"]); + +- if ($data_template_rrd{"t_" . $field_name} != "on") { +- if ($include_hidden_fields == true) { +- $form_array[$form_field_name]["method"] = "hidden"; +- }else{ +- unset($form_array[$form_field_name]); +- } +- }elseif ((!empty($snmp_query_graph_id)) && (sizeof(db_fetch_assoc("select id from snmp_query_graph_rrd_sv where snmp_query_graph_id=$snmp_query_graph_id and data_template_id=$data_template_id and field_name='$field_name'")) > 0)) { +- if ($include_hidden_fields == true) { +- $form_array[$form_field_name]["method"] = "hidden"; +- }else{ +- unset($form_array[$form_field_name]); +- } +- }else{ +- if (($draw_any_items == false) && ($draw_title_for_each_item == false) && ($header_title != "")) { +- print "
    $header_title
    $header_title [" . $rrd["data_source_name"] . "]
    $header_title
    $header_title [" . $rrd["data_source_name"] . "]
    $header_title
    " . $field["name"] . ""; ++ /* find our field name */ ++ $form_field_name = str_replace("|id|", $field["id"], $field_name_format); ++ ++ if ((!empty($host_id)) && (eregi('^' . VALID_HOST_FIELDS . '$', $field["type_code"])) && (empty($can_template))) { /* no host fields */ ++ if ($include_hidden_fields == true) { ++ form_hidden_box($form_field_name, $old_value, ""); ++ } ++ }elseif ((!empty($snmp_query_id)) && (eregi('^(index_type|index_value|output_type)$', $field["type_code"]))) { /* no data query fields */ ++ if ($include_hidden_fields == true) { ++ form_hidden_box($form_field_name, $old_value, ""); ++ } ++ }elseif (empty($can_template)) { /* no templated fields */ ++ if ($include_hidden_fields == true) { ++ form_hidden_box($form_field_name, $old_value, ""); ++ } ++ }else{ ++ if (($draw_any_items == false) && ($header_title != "")) { ++ print "
    $header_title
    " . $field["name"] . ""; + +- draw_custom_data_row($form_field_name, $field["id"], $data["id"], $old_value); ++ draw_custom_data_row($form_field_name, $field["id"], $data["id"], $old_value); + +- print "
    +- Graph Template: " . $graph["graph_template_name"] . " ++ Graph Template: " . htmlspecialchars($graph["graph_template_name"]) . " +
    Data Query: " . $graph["data_query_name"] . "
    Data Query: " . htmlspecialchars($graph["data_query_name"]) . "
    +@@ -142,8 +142,8 @@ + + + + + + + + + + + + +-
    +-
    ;"><?php print $graph["title_cache"];?>
    +- " . $graph["title_cache"] . "

    " : "");?> ++
    ;"><?php print htmlspecialchars($graph["title_cache"]);?>
    ++ " . htmlspecialchars($graph["title_cache"]) . "

    " : "");?> +
    + Zoom Graph
    +@@ -266,8 +266,8 @@ + + + + \n"; ++ print "\n"; + print ""; + } + }elseif ($leaf["host_id"] > 0) { + if ($visible) { +- print "\n"; ++ print "\n"; + print ""; + } + } +@@ -781,9 +781,9 @@ + $data_query_index = $host_group_data_array[2]; + } + +- if (!empty($tree_name)) { $title .= $title_delimeter . "Tree: $tree_name"; $title_delimeter = "-> "; } +- if (!empty($leaf_name)) { $title .= $title_delimeter . "Leaf: $leaf_name"; $title_delimeter = "-> "; } +- if (!empty($host_name)) { $title .= $title_delimeter . "Host: $host_name"; $title_delimeter = "-> "; } ++ if (!empty($tree_name)) { $title .= $title_delimeter . "Tree:" . htmlspecialchars($tree_name); $title_delimeter = "-> "; } ++ if (!empty($leaf_name)) { $title .= $title_delimeter . "Leaf:" . htmlspecialchars($leaf_name); $title_delimeter = "-> "; } ++ if (!empty($host_name)) { $title .= $title_delimeter . "Host:" . htmlspecialchars($host_name); $title_delimeter = "-> "; } + if (!empty($host_group_data_name)) { $title .= $title_delimeter . " $host_group_data_name"; $title_delimeter = "-> "; } + if (isset($_REQUEST["tree_id"])) { + $nodeid = "tree_" . get_request_var_request("tree_id"); +@@ -1049,7 +1049,7 @@ +  Search:  + + + \n"; ++ print "\n"; + + /* if we are at the end of a row, start a new one */ + if ($graph_counter % read_graph_config_option("num_columns") == 0) { + print "\n"; + } + }else{ +- print "\n"; +- ++ print "\n"; + /* if we are at the end of a row, start a new one */ + if ($graph_counter % read_graph_config_option("num_columns") == 0) { + print "\n"; +@@ -1400,10 +1399,10 @@ + } + }else{ + if (read_graph_config_option("timespan_sel") == "on") { +- print ""; ++ print ""; + print "\n"; + }else{ +- print ""; ++ print ""; + print "\n"; + } + } +diff -Nur cacti-0.8.7e.base/lib/html_utility.php cacti-0.8.7e.patched/lib/html_utility.php +--- cacti-0.8.7e.base/lib/html_utility.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/lib/html_utility.php 2011-02-01 13:52:03.652870944 -0500 +@@ -337,161 +337,4 @@ + return $url_page_select; + } + +-/* clean_html_output - Remove all known cross site script (xss) attack vectors from user input +- @arg $data - User input to process +- @returns - Cleaned user input +-*/ +-function clean_html_output($data) { +- /* remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed +- this prevents some character re-spacing such as +- note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs */ +- $data = preg_replace('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/', '', $data); +- +- /* straight replacements, the user should never need these since they're normal characters +- this prevents like */ +- $search = "abcdefghijklmnopqrstuvwxyz"; +- $search .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; +- $search .= "1234567890!@#$%^&*()"; +- $search .= "~`\";:?+/={}[]-_|\'\\"; +- for ($i = 0; $i < strlen($search); $i++) { +- /* ;? matches the ;, which is optional +- 0{0,7} matches any padded zeros, which are optional and go up to 8 chars */ +- /* @ @ search for the hex values */ +- $data = preg_replace('/(&#[xX]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $data); +- /* @ @ 0{0,7} matches '0' zero to seven times */ +- $data = preg_replace('/(�{0,8}'.ord($search[$i]).';?)/', $search[$i], $data); +- } +- +- /* defined keywords to process for removal */ +- $keywords = Array( +- "javascript", +- "vbscript", +- "expression", +- "applet", +- "meta", +- "xml", +- "blink", +- "link", +- "style", +- "script", +- "embed", +- "object", +- "iframe", +- "frame", +- "frameset", +- "ilayer", +- "layer", +- "bgsound", +- "title", +- "base", +- "onabort", +- "onactivate", +- "onafterprint", +- "onafterupdate", +- "onbeforeactivate", +- "onbeforecopy", +- "onbeforecut", +- "onbeforedeactivate", +- "onbeforeeditfocus", +- "onbeforepaste", +- "onbeforeprint", +- "onbeforeunload", +- "onbeforeupdate", +- "onblur", +- "onbounce", +- "oncellchange", +- "onchange", +- "onclick", +- "oncontextmenu", +- "oncontrolselect", +- "oncopy", +- "oncut", +- "ondataavailable", +- "ondatasetchanged", +- "ondatasetcomplete", +- "ondblclick", +- "ondeactivate", +- "ondrag", +- "ondragend", +- "ondragenter", +- "ondragleave", +- "ondragover", +- "ondragstart", +- "ondrop", +- "onerror", +- "onerrorupdate", +- "onfilterchange", +- "onfinish", +- "onfocus", +- "onfocusin", +- "onfocusout", +- "onhelp", +- "onkeydown", +- "onkeypress", +- "onkeyup", +- "onlayoutcomplete", +- "onload", +- "onlosecapture", +- "onmousedown", +- "onmouseenter", +- "onmouseleave", +- "onmousemove", +- "onmouseout", +- "onmouseover", +- "onmouseup", +- "onmousewheel", +- "onmove", +- "onmoveend", +- "onmovestart", +- "onpaste", +- "onpropertychange", +- "onreadystatechange", +- "onreset", +- "onresize", +- "onresizeend", +- "onresizestart", +- "onrowenter", +- "onrowexit", +- "onrowsdelete", +- "onrowsinserted", +- "onscroll", +- "onselect", +- "onselectionchange", +- "onselectstart", +- "onstart", +- "onstop", +- "onsubmit", +- "onunload" +- ); +- +- $found = true; +- while ($found == true) { +- $data_before = $data; +- for ($i = 0; $i < sizeof($keywords); $i++) { +- $pattern = '/'; +- for ($j = 0; $j < strlen($keywords[$i]); $j++) { +- if ($j > 0) { +- $pattern .= '('; +- $pattern .= '(&#[xX]0{0,8}([9ab]);)'; +- $pattern .= '|'; +- $pattern .= '|(�{0,8}([9|10|13]);)'; +- $pattern .= ')*'; +- } +- $pattern .= $keywords[$i][$j]; +- } +- $pattern .= '/i'; +- /* add in <> to nerf the tag */ +- $replacement = substr($keywords[$i], 0, 2).''.substr($keywords[$i], 2); +- $data = preg_replace($pattern, $replacement, $data); +- /* filter out the hex tags */ +- if ($data_before == $data) { +- /* no replacements were made, so exit the loop */ +- $found = false; +- } +- } +- } +- return $data; +-} +- +- + ?> +diff -Nur cacti-0.8.7e.base/lib/rrd.php cacti-0.8.7e.patched/lib/rrd.php +--- cacti-0.8.7e.base/lib/rrd.php 2011-02-01 13:59:36.100869484 -0500 ++++ cacti-0.8.7e.patched/lib/rrd.php 2011-02-01 13:52:03.577370944 -0500 +@@ -1390,7 +1390,7 @@ + + /* either print out the source or pass the source onto rrdtool to get us a nice PNG */ + if (isset($graph_data_array["print_source"])) { +- print "
    " . read_config_option("path_rrdtool") . " graph $graph_opts$graph_defs$txt_graph_items
    "; ++ print "
    " . htmlspecialchars(read_config_option("path_rrdtool") . " graph " . $graph_opts . $graph_defs . $txt_graph_items) . "
    "; + }else{ + if (isset($graph_data_array["export"])) { + rrdtool_execute("graph $graph_opts$graph_defs$txt_graph_items", false, RRDTOOL_OUTPUT_NULL, $rrd_struc); +diff -Nur cacti-0.8.7e.base/rra.php cacti-0.8.7e.patched/rra.php +--- cacti-0.8.7e.base/rra.php 2011-01-24 15:18:35.665371241 -0500 ++++ cacti-0.8.7e.patched/rra.php 2011-02-01 13:52:03.577370944 -0500 +@@ -109,7 +109,7 @@ + + if ((read_config_option("deletion_verification") == "on") && (!isset($_GET["confirm"]))) { + include_once("./include/top_header.php"); +- form_confirm("Are You Sure?", "Are you sure you want to delete the round robin archive '" . db_fetch_cell("select name from rra where id=" . $_GET["id"]) . "'?", "rra.php", "rra.php?action=remove&id=" . $_GET["id"]); ++ form_confirm("Are You Sure?", "Are you sure you want to delete the round robin archive '" . htmlspecialchars(db_fetch_cell("select name from rra where id=" . $_GET["id"])) . "'?", htmlspecialchars("rra.php"), htmlspecialchars("rra.php?action=remove&id=" . $_GET["id"])); + exit; + } + +@@ -128,7 +128,7 @@ + + if (!empty($_GET["id"])) { + $rra = db_fetch_row("select * from rra where id=" . $_GET["id"]); +- $header_label = "[edit: " . $rra["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($rra["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -187,7 +187,7 @@ + form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; + ?> +
    + + + + + + + + +
    +- <?php print $graph["title_cache"];?> +- " . $graph["title_cache"] . "

    " : "");?> ++
    ;"><?php print htmlspecialchars($graph["title_cache"]);?>
    ++ " . htmlspecialchars($graph["title_cache"]) . "

    " : "");?> +
    + Zoom Graph
    +@@ -487,27 +487,27 @@ + function html_create_list($form_data, $column_display, $column_id, $form_previous_value) { + if (empty($column_display)) { + foreach (array_keys($form_data) as $id) { +- print '\n"; ++ print ">" . title_trim(null_out_substitutions(htmlspecialchars($form_data[$id])), 75) . "\n"; + } + }else{ + if (sizeof($form_data) > 0) { + foreach ($form_data as $row) { +- print "\n"; ++ print ">" . title_trim(htmlspecialchars($row[$column_display]), 75) . "\n"; + }else{ +- print ">" . title_trim(null_out_substitutions($row[$column_display]), 75) . "\n"; ++ print ">" . title_trim(null_out_substitutions(htmlspecialchars($row[$column_display])), 75) . "\n"; + } + } + } +diff -Nur cacti-0.8.7e.base/lib/html_tree.php cacti-0.8.7e.patched/lib/html_tree.php +--- cacti-0.8.7e.base/lib/html_tree.php 2011-01-24 15:18:35.197381438 -0500 ++++ cacti-0.8.7e.patched/lib/html_tree.php 2011-02-01 13:52:03.648869205 -0500 +@@ -363,12 +363,12 @@ + }elseif ($leaf["title"] != "") { + $icon = get_icon($leaf["graph_tree_id"], $leaf["order_key"]); + if ($visible) { +- print "
    $transparent_indent " . $leaf["title"] . " (Add)$transparent_indent " . htmlspecialchars($leaf["title"]) . " (Add)Heading$transparent_indentHost: " . $leaf["hostname"] . " (Edit host)$transparent_indentHost: " . htmlspecialchars($leaf["hostname"]) . " (Edit host)Host +- ++ + +  Graphs per Page:  +@@ -1254,7 +1254,7 @@ + + + + +
    +- Showing All Graphs" . (strlen(get_request_var_request("filter")) ? " [ Filter '" . clean_html_output(get_request_var_request("filter")) . "' Applied ]" : "") . " ++ Showing All Graphs" . (strlen(get_request_var_request("filter")) ? " [ Filter '" . htmlspecialchars(get_request_var_request("filter")) . "' Applied ]" : "") . " +
    +@@ -1380,19 +1380,18 @@ + /* print out the actual graph html */ + if (read_graph_config_option("thumbnail_section_tree_1") == "on") { + if (read_graph_config_option("timespan_sel") == "on") { +- print "
    $graph_title" . htmlspecialchars($graph_title) . "
    $graph_title" . htmlspecialchars($graph_title) . "
    $graph_title" . htmlspecialchars($graph_title) . "
    $graph_title" . htmlspecialchars($graph_title) . "
    +- "> ++ "> + + +diff -Nur cacti-0.8.7e.base/templates_import.php cacti-0.8.7e.patched/templates_import.php +--- cacti-0.8.7e.base/templates_import.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/templates_import.php 2011-02-01 13:52:03.652870944 -0500 +@@ -108,7 +108,7 @@ + $type_text = "[new]"; + } + +- print "$result_text " . clean_html_output($vals["title"]) . " $type_text
    \n"; ++ print "$result_text " . htmlspecialchars($vals["title"]) . " $type_text
    \n"; + + $dep_text = ""; $there_are_dep_errors = false; + if ((isset($vals["dep"])) && (sizeof($vals["dep"]) > 0)) { +diff -Nur cacti-0.8.7e.base/tree.php cacti-0.8.7e.patched/tree.php +--- cacti-0.8.7e.base/tree.php 2011-01-24 15:18:35.525371086 -0500 ++++ cacti-0.8.7e.patched/tree.php 2011-02-01 13:52:03.581370873 -0500 +@@ -409,7 +409,7 @@ + + if (!empty($_GET["id"])) { + $tree = db_fetch_row("select * from graph_tree where id=" . $_GET["id"]); +- $header_label = "[edit: " . $tree["name"] . "]"; ++ $header_label = "[edit: " . htmlspecialchars($tree["name"]) . "]"; + }else{ + $header_label = "[new]"; + } +@@ -464,7 +464,7 @@ + form_alternate_row_color($colors["alternate"],$colors["light"],$i); $i++; + ?> +
    +- "> ++ "> + + ">Delete +diff -Nur cacti-0.8.7e.base/user_admin.php cacti-0.8.7e.patched/user_admin.php +--- cacti-0.8.7e.base/user_admin.php 2011-01-24 15:18:35.693371997 -0500 ++++ cacti-0.8.7e.patched/user_admin.php 2011-02-01 13:52:03.652870944 -0500 +@@ -1008,7 +1008,7 @@ + Search:  + +- "> ++ "> + +   +@@ -1104,9 +1104,9 @@ + + form_alternate_row_color($colors["alternate"], $colors["light"], $i, 'line' . $user["id"]); $i++; + form_selectable_cell("" . +- (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $user["username"]) : $user["username"]) ++ (strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($user["username"])) : htmlspecialchars($user["username"])) + , $user["id"]); +- form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", $user["full_name"]) : $user["full_name"]), $user["id"]); ++ form_selectable_cell((strlen(get_request_var_request("filter")) ? eregi_replace("(" . preg_quote(get_request_var_request("filter")) . ")", "\\1", htmlspecialchars($user["full_name"])) : htmlspecialchars($user["full_name"])), $user["id"]); + form_selectable_cell($enabled, $user["id"]); + form_selectable_cell($auth_realms[$user["realm"]], $user["id"]); + if ($user["policy_graphs"] == "1") { +diff -Nur cacti-0.8.7e.base/utilities.php cacti-0.8.7e.patched/utilities.php +--- cacti-0.8.7e.base/utilities.php 2011-02-01 13:59:36.104870667 -0500 ++++ cacti-0.8.7e.patched/utilities.php 2011-02-01 13:52:03.585371035 -0500 +@@ -604,7 +604,7 @@ +  Search:  + +- "> ++ "> + +   +@@ -911,7 +911,7 @@ + Search:  + +- "> ++ "> +
    +@@ -1188,7 +1188,7 @@ +  Search:  +
    +- "> ++ "> + +   +@@ -1426,7 +1426,7 @@ +  Search:  + +- "> ++ "> + +   --- cacti-0.8.7e.orig/debian/patches/CVE-2010-1644.patch +++ cacti-0.8.7e/debian/patches/CVE-2010-1644.patch @@ -0,0 +1,30 @@ +# Descripton: Fix cross-site scripting (XSS) vulnerabilities (CVE-2010-1644) +# Author: Brian Thomason (derived from upstream svn diff) +# Origin: upstream, http://svn.cacti.net/viewvc?view=rev&revision=5901 + +diff -Nur cacti-0.8.7e.base/data_sources.php cacti-0.8.7e.patched/data_sources.php +--- cacti-0.8.7e.base/data_sources.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/data_sources.php 2011-01-14 13:01:36.752879129 -0500 +@@ -672,7 +672,7 @@ + global $colors, $struct_data_source, $struct_data_source_item, $data_source_types; + + /* ================= input validation ================= */ +- input_validate_input_number(get_request_var("id")); ++ input_validate_input_number(get_request_var("host_id")); + /* ==================================================== */ + + $use_data_template = true; +diff -Nur cacti-0.8.7e.base/host.php cacti-0.8.7e.patched/host.php +--- cacti-0.8.7e.base/host.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/host.php 2011-01-14 13:06:15.129382131 -0500 +@@ -146,8 +146,8 @@ + if ($_POST["snmp_version"] == 3 && ($_POST["snmp_password"] != $_POST["snmp_password_confirm"])) { + raise_message(4); + }else{ +- $host_id = api_device_save($_POST["id"], $_POST["host_template_id"], $_POST["description"], +- trim($_POST["hostname"]), $_POST["snmp_community"], $_POST["snmp_version"], ++ $host_id = api_device_save($_POST["id"], $_POST["host_template_id"], htmlentities($_POST["description"]), ++ htmlentities(trim($_POST["hostname"])), $_POST["snmp_community"], $_POST["snmp_version"], + $_POST["snmp_username"], $_POST["snmp_password"], + $_POST["snmp_port"], $_POST["snmp_timeout"], + (isset($_POST["disabled"]) ? $_POST["disabled"] : ""), --- cacti-0.8.7e.orig/debian/patches/06_config_settings.php_cactid_path.patch +++ cacti-0.8.7e/debian/patches/06_config_settings.php_cactid_path.patch @@ -0,0 +1,47 @@ +--- cacti.orig/include/global_settings.php ++++ cacti/include/global_settings.php +@@ -94,9 +94,9 @@ $settings = array( + ), + "path_cactilog" => array( + "friendly_name" => "Cacti Log File Path", +- "description" => "The path to your Cacti log file (if blank, defaults to /log/cacti.log)", ++ "description" => "The path to your Cacti log file (if blank, defaults to /var/log/cacti/cacti.log)", + "method" => "filepath", +- "default" => $config["base_path"] . "/log/cacti.log", ++ "default" => "/var/log/cacti/cacti.log", + "max_length" => "255" + ), + "pollerpaths_header" => array( +@@ -105,8 +105,9 @@ $settings = array( + ), + "path_spine" => array( + "friendly_name" => "Spine Poller File Path", +- "description" => "The path to Spine binary.", ++ "description" => "The path to Spine binary (if blank, defaults to /usr/sbin/spine).", + "method" => "filepath", ++ "default" => "/usr/sbin/spine", + "max_length" => "255" + ), + "extendedpaths_header" => array( +--- cacti.orig/include/global.php ++++ cacti/include/global.php +@@ -88,7 +88,7 @@ $config["php_snmp_support"] = function_e + $config["base_path"] = strtr(ereg_replace("(.*)[\\\/]include", "\\1", dirname(__FILE__)), "\\", "/"); + $config["library_path"] = ereg_replace("(.*[\\\/])include", "\\1lib", dirname(__FILE__)); + $config["include_path"] = dirname(__FILE__); +-$config["rra_path"] = $config["base_path"] . '/rra'; ++$config["rra_path"] = '/var/lib/cacti/rra'; + + /* colors */ + $colors["dark_outline"] = "454E53"; +--- cacti.orig/install/index.php ++++ cacti/install/index.php +@@ -264,7 +264,7 @@ $input["path_cactilog"]["description"] = + if (config_value_exists("path_cactilog")) { + $input["path_cactilog"]["default"] = read_config_option("path_cactilog"); + } else { +- $input["path_cactilog"]["default"] = $config["base_path"] . "/log/cacti.log"; ++ $input["path_cactilog"]["default"] = "/var/log/cacti/cacti.log"; + } + + /* SNMP Version */ --- cacti-0.8.7e.orig/debian/patches/CVE-2011-4824.patch +++ cacti-0.8.7e/debian/patches/CVE-2011-4824.patch @@ -0,0 +1,56 @@ +Description: Fixes SQL injection vulnerability in auth_login.php that allows + remote attackers to execute arbitrary SQL commands via the login_username + parameter. +Origin: http://svn.cacti.net/viewvc/cacti/branches/0.8.7/auth_login.php?r1=6807&r2=6806&pathrev=6807 +Bug-Debian: http://bugs.debian.org/652371 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/906773 + +Index: cacti-0.8.7e/auth_login.php +=================================================================== +--- cacti-0.8.7e.orig/auth_login.php 2011-12-20 15:29:36.599817897 +0700 ++++ cacti-0.8.7e/auth_login.php 2011-12-20 15:31:41.828438869 +0700 +@@ -76,7 +76,7 @@ + $user_auth = true; + $realm = 2; + /* Locate user in database */ +- $user = db_fetch_row("SELECT * FROM user_auth WHERE username = '" . $username . "' AND realm = 2"); ++ $user = db_fetch_row("SELECT * FROM user_auth WHERE username = " . $cnn_id->qstr($username) . " AND realm = 2"); + break; + + case "3": +@@ -110,7 +110,7 @@ + $realm = 1; + /* Locate user in database */ + cacti_log("LOGIN: LDAP User '" . $username . "' Authenticated", false, "AUTH"); +- $user = db_fetch_row("SELECT * FROM user_auth WHERE username = '" . $username . "' AND realm = 1"); ++ $user = db_fetch_row("SELECT * FROM user_auth WHERE username = " . $cnn_id->qstr($username) . " AND realm = 1"); + }else{ + /* error */ + cacti_log("LOGIN: LDAP Error: " . $ldap_auth_response["error_text"], false, "AUTH"); +@@ -127,7 +127,7 @@ + /* Builtin Auth */ + if ((!$user_auth) && (!$ldap_error)) { + /* if auth has not occured process for builtin - AKA Ldap fall through */ +- $user = db_fetch_row("SELECT * FROM user_auth WHERE username = '" . $username . "' AND password = '" . md5(get_request_var_post("login_password")) . "' AND realm = 0"); ++ $user = db_fetch_row("SELECT * FROM user_auth WHERE username = " . $cnn_id->qstr($username) . " AND password = '" . md5(get_request_var_post("login_password")) . "' AND realm = 0"); + } + } + /* end of switch */ +@@ -140,7 +140,7 @@ + /* template user found */ + user_copy(read_config_option("user_template"), $username, 0, $realm); + /* requery newly created user */ +- $user = db_fetch_row("SELECT * FROM user_auth WHERE username = '" . $username . "' AND realm = " . $realm); ++ $user = db_fetch_row("SELECT * FROM user_auth WHERE username = " . $cnn_id->qstr($username) . " AND realm = " . $realm); + }else{ + /* error */ + cacti_log("LOGIN: Template user '" . read_config_option("user_template") . "' does not exist.", false, "AUTH"); +@@ -168,7 +168,7 @@ + /* Process the user */ + if (sizeof($user) > 0) { + cacti_log("LOGIN: User '" . $user["username"] . "' Authenticated", false, "AUTH"); +- db_execute("INSERT INTO user_log (username,user_id,result,ip,time) VALUES ('" . $username ."'," . $user["id"] . ",1,'" . $_SERVER["REMOTE_ADDR"] . "',NOW())"); ++ db_execute("INSERT INTO user_log (username,user_id,result,ip,time) VALUES (" . $cnn_id->qstr($username) ."," . $user["id"] . ",1,'" . $_SERVER["REMOTE_ADDR"] . "',NOW())"); + /* is user enabled */ + $user_enabled = $user["enabled"]; + if ($user_enabled != "on") { --- cacti-0.8.7e.orig/debian/patches/cli-include-path.patch +++ cacti-0.8.7e/debian/patches/cli-include-path.patch @@ -0,0 +1,176 @@ +--- cacti.orig/cli/add_data_query.php ++++ cacti/cli/add_data_query.php +@@ -31,7 +31,7 @@ if (!isset($_SERVER["argv"][0]) || isset + /* We are not talking to the browser */ + $no_http_headers = true; + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/api_automation_tools.php"); + include_once($config["base_path"]."/lib/data_query.php"); + +--- cacti.orig/cli/add_device.php ++++ cacti/cli/add_device.php +@@ -31,7 +31,7 @@ if (!isset($_SERVER["argv"][0]) || isset + /* We are not talking to the browser */ + $no_http_headers = true; + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/api_automation_tools.php"); + include_once($config["base_path"]."/lib/utility.php"); + include_once($config["base_path"]."/lib/api_data_source.php"); +--- cacti.orig/cli/add_graphs.php ++++ cacti/cli/add_graphs.php +@@ -30,7 +30,7 @@ if (!isset($_SERVER["argv"][0]) || isset + + $no_http_headers = true; + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/api_automation_tools.php"); + include_once($config["base_path"]."/lib/data_query.php"); + include_once($config["base_path"]."/lib/utility.php"); +--- cacti.orig/cli/add_graph_template.php ++++ cacti/cli/add_graph_template.php +@@ -31,7 +31,7 @@ if (!isset($_SERVER["argv"][0]) || isset + /* We are not talking to the browser */ + $no_http_headers = true; + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/api_automation_tools.php"); + + /* process calling arguments */ +--- cacti.orig/cli/add_perms.php ++++ cacti/cli/add_perms.php +@@ -30,7 +30,7 @@ if (!isset($_SERVER["argv"][0]) || isset + + $no_http_headers = true; + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/api_automation_tools.php"); + + /* process calling arguments */ +--- cacti.orig/cli/add_tree.php ++++ cacti/cli/add_tree.php +@@ -30,7 +30,7 @@ if (!isset($_SERVER["argv"][0]) || isset + + $no_http_headers = true; + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/api_automation_tools.php"); + include_once($config["base_path"].'/lib/tree.php'); + +--- cacti.orig/cli/copy_user.php ++++ cacti/cli/copy_user.php +@@ -36,7 +36,7 @@ if (empty($_SERVER["argv"][2])) { + + $no_http_headers = true; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + include_once($config["base_path"] . "/lib/auth.php"); + + $template_user = $_SERVER["argv"][1]; +--- cacti.orig/cli/host_update_template.php ++++ cacti/cli/host_update_template.php +@@ -32,7 +32,7 @@ ini_set("memory_limit", "64M"); + + $no_http_headers = true; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + include_once($config["base_path"] . "/lib/snmp.php"); + include_once($config["base_path"] . "/lib/data_query.php"); + include_once($config["base_path"] . "/lib/api_automation_tools.php"); +--- cacti.orig/cli/poller_data_sources_reapply_names.php ++++ cacti/cli/poller_data_sources_reapply_names.php +@@ -32,7 +32,7 @@ ini_set("memory_limit", "64M"); + + $no_http_headers = true; + +-include (dirname(__FILE__) . "/../include/global.php"); ++include (dirname(__FILE__) . "/../site/include/global.php"); + include_once ($config["base_path"] . "/lib/api_data_source.php"); + + /* process calling arguments */ +--- cacti.orig/cli/poller_graphs_reapply_names.php ++++ cacti/cli/poller_graphs_reapply_names.php +@@ -32,7 +32,7 @@ ini_set("memory_limit", "64M"); + + $no_http_headers = true; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + include_once($config["base_path"] . "/lib/api_graph.php"); + + /* process calling arguments */ +--- cacti.orig/cli/poller_output_empty.php ++++ cacti/cli/poller_output_empty.php +@@ -31,7 +31,7 @@ if (!isset($_SERVER["argv"][0]) || isset + $no_http_headers = true; + + /* start initialization section */ +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + include_once($config["base_path"] . "/lib/poller.php"); + include_once($config["base_path"] . "/lib/data_query.php"); + include_once($config["base_path"] . "/lib/graph_export.php"); +--- cacti.orig/cli/poller_reindex_hosts.php ++++ cacti/cli/poller_reindex_hosts.php +@@ -32,7 +32,7 @@ ini_set("memory_limit", "64M"); + + $no_http_headers = true; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + include_once($config["base_path"] . "/lib/snmp.php"); + include_once($config["base_path"] . "/lib/data_query.php"); + +--- cacti.orig/cli/rebuild_poller_cache.php ++++ cacti/cli/rebuild_poller_cache.php +@@ -29,7 +29,7 @@ if (!isset($_SERVER["argv"][0]) || isset + + $no_http_headers = true; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + include_once($config["base_path"] . "/lib/utility.php"); + + /* process calling arguments */ +--- cacti.orig/cli/repair_database.php ++++ cacti/cli/repair_database.php +@@ -30,7 +30,7 @@ if (!isset($_SERVER["argv"][0]) || isset + + $no_http_headers = true; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + + /* process calling arguments */ + $parms = $_SERVER["argv"]; +--- cacti.orig/cli/structure_rra_paths.php ++++ cacti/cli/structure_rra_paths.php +@@ -30,7 +30,7 @@ if (!isset($_SERVER["argv"][0]) || isset + $no_http_headers = TRUE; + $proceed = FALSE; + +-include(dirname(__FILE__) . "/../include/global.php"); ++include(dirname(__FILE__) . "/../site/include/global.php"); + + /* process calling arguments */ + $parms = $_SERVER["argv"]; +--- cacti.orig/cli/upgrade_database.php ++++ cacti/cli/upgrade_database.php +@@ -30,7 +30,7 @@ if (!isset($_SERVER['argv'][0]) || isset + /* allow the upgrade script to run for as long as it needs to */ + ini_set('max_execution_time', '0'); + +-include(dirname(__FILE__)."/../include/global.php"); ++include(dirname(__FILE__)."/../site/include/global.php"); + include_once($config["base_path"]."/lib/data_query.php"); + include_once($config["base_path"]."/lib/utility.php"); + --- cacti-0.8.7e.orig/debian/patches/563955_undefined_index_local_data_id.patch +++ cacti-0.8.7e/debian/patches/563955_undefined_index_local_data_id.patch @@ -0,0 +1,36 @@ +Fix for "Undefined index: local_data_id in graphs_new.php" + +Resubmit this fix as a quilt patch instead of a direct patch (oops). + +Closes: #563955 +Thanks: Teodor MICU +diff --git a/graphs_new.php b/graphs_new.php +index 3965d3a..b0a56d5 100644 +--- a/graphs_new.php ++++ b/graphs_new.php +@@ -199,8 +199,10 @@ function host_new_graphs_save() { + debug_log_insert("new_graphs", "Created graph: " . get_graph_title($return_array["local_graph_id"])); + + /* lastly push host-specific information to our data sources */ +- foreach($return_array["local_data_id"] as $item) { +- push_out_host($_POST["host_id"], $item); ++ if (!empty($return_array["local_data_id"])) { ++ foreach($return_array["local_data_id"] as $item) { ++ push_out_host($_POST["host_id"], $item); ++ } + } + }elseif ($current_form_type == "sg") { + while (list($snmp_index, $true) = each($snmp_index_array)) { +@@ -211,8 +213,10 @@ function host_new_graphs_save() { + debug_log_insert("new_graphs", "Created graph: " . get_graph_title($return_array["local_graph_id"])); + + /* lastly push host-specific information to our data sources */ +- foreach($return_array["local_data_id"] as $item) { +- push_out_host($_POST["host_id"], $item); ++ if (!empty($return_array["local_data_id"])) { ++ foreach($return_array["local_data_id"] as $item) { ++ push_out_host($_POST["host_id"], $item); ++ } + } + } + } --- cacti-0.8.7e.orig/debian/patches/05_no-adodb.patch +++ cacti-0.8.7e/debian/patches/05_no-adodb.patch @@ -0,0 +1,13 @@ +Index: cacti/include/global.php +=================================================================== +--- cacti.orig/include/global.php 2008-02-13 23:30:52.000000000 +0100 ++++ cacti/include/global.php 2008-02-13 23:30:58.000000000 +0100 +@@ -180,7 +180,7 @@ + error_reporting(E_ALL); + + /* include base modules */ +-include($config["library_path"] . "/adodb/adodb.inc.php"); ++include("/usr/share/php/adodb/adodb.inc.php"); + include($config["library_path"] . "/database.php"); + include_once($config["library_path"] . "/functions.php"); + include_once($config["include_path"] . "/global_constants.php"); --- cacti-0.8.7e.orig/debian/patches/01_config.php.patch +++ cacti-0.8.7e/debian/patches/01_config.php.patch @@ -0,0 +1,24 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_config.php.dpatch by +## +## DP: modify the default config.php to include authentication info from +## DP: debian.php, which can be managed by debconf/ucf + +@DPATCH@ +Index: cacti-0.8.7~beta4/include/config.php +=================================================================== +--- cacti-0.8.7~beta4.orig/include/config.php 2007-10-09 20:01:12.000000000 +0200 ++++ cacti-0.8.7~beta4/include/config.php 2007-10-09 20:02:48.000000000 +0200 +@@ -24,11 +24,7 @@ + + /* make sure these values refect your actual database/host/user/password */ + $database_type = "mysql"; +-$database_default = "cacti"; +-$database_hostname = "localhost"; +-$database_username = "cactiuser"; +-$database_password = "cactiuser"; +-$database_port = "3306"; ++require('/etc/cacti/debian.php'); + + /* Default session name - Session name must contain alpha characters */ + #$cacti_session_name = "Cacti"; --- cacti-0.8.7e.orig/debian/patches/CVE-2010-1645.patch +++ cacti-0.8.7e/debian/patches/CVE-2010-1645.patch @@ -0,0 +1,244 @@ +# Descripton: Fix vuln which allows remote authenticated administrators to execute arbitrary commands (CVE-2010-1645) +# Author: Brian Thomason (derived from upstream svn diffs) +# Origin: upstream, http://svn.cacti.net/viewvc?view=rev&revision=5778 +# http://svn.cacti.net/viewvc?view=rev&revision=5782 +# http://svn.cacti.net/viewvc?view=rev&revision=5784 + +diff -Nur cacti-0.8.7e.base/lib/html_form.php cacti-0.8.7e.patched/lib/html_form.php +--- cacti-0.8.7e.base/lib/html_form.php 2011-01-14 12:54:49.012871255 -0500 ++++ cacti-0.8.7e.patched/lib/html_form.php 2011-01-14 12:31:33.348870656 -0500 +@@ -671,9 +671,8 @@ + $extra_data = ""; + } else { + if (read_config_option("rrdtool_version") == "rrd-1.3.x") { # rrdtool 1.3 uses fontconfig +- $font = '"' . $form_previous_value . '"'; + $out_array = array(); +- exec('fc-list ' . $font, $out_array); ++ exec('fc-list ' . escapeshellarg($form_previous_value), $out_array); + if (sizeof($out_array) == 0) { + $extra_data = "
    [" . "ERROR: FONT NOT FOUND" . "]
    "; + } else { +diff -Nur cacti-0.8.7e.base/lib/ping.php cacti-0.8.7e.patched/lib/ping.php +--- cacti-0.8.7e.base/lib/ping.php 2011-01-13 16:26:41.052881199 -0500 ++++ cacti-0.8.7e.patched/lib/ping.php 2011-01-14 12:36:28.661100068 -0500 +@@ -122,10 +122,12 @@ + $this->host["hostname"] = str_replace("tcp:", "", strtolower($this->host["hostname"])); + $this->host["hostname"] = str_replace("udp:", "", strtolower($this->host["hostname"])); + +- /* determine the host's ip address */ ++ /* determine the host's ip address ++ * this prevents from command injection as well*/ + if ($this->is_ipaddress($this->host["hostname"])) { + $host_ip = $this->host["hostname"]; + }else{ ++ /* again, as a side effect, prevention from command injection */ + $host_ip = gethostbyname($this->host["hostname"]); + + if (!$this->is_ipaddress($host_ip)) { +@@ -238,7 +240,11 @@ + /* we have to use the real ping, in cases where windows failed or while using UNIX/Linux */ + $pattern = bin2hex("cacti-monitoring-system"); // the actual test data + +- /* host timeout given in ms, recalculate to sec, but make it an integer */ ++ /* host timeout given in ms, recalculate to sec, but make it an integer ++ * we might consider to use escapeshellarh on hostname, ++ * but this field has already been verified. ++ * The other fields are numerical fields only and thus ++ * not vulnerable for command injection */ + if (substr_count(strtolower(PHP_OS), "sun")) { + $result = shell_exec("ping " . $this->host["hostname"]); + }else if (substr_count(strtolower(PHP_OS), "hpux")) { +diff -Nur cacti-0.8.7e.base/lib/rrd.php cacti-0.8.7e.patched/lib/rrd.php +--- cacti-0.8.7e.base/lib/rrd.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/lib/rrd.php 2011-01-14 12:52:10.220870873 -0500 +@@ -26,7 +26,7 @@ + define("MAX_FETCH_CACHE_SIZE", 5); + + function escape_command($command) { +- return ereg_replace("(\\\$|`)", "", $command); ++ return preg_replace("/(\\\$|`)/", "", $command); # current cacti code + } + + function rrd_init($output_to_term = TRUE) { +@@ -701,8 +701,8 @@ + break; + } + }else{ +- $scale = "--upper-limit=" . $graph["upper_limit"] . RRD_NL; +- $scale .= "--lower-limit=" . $graph["lower_limit"] . RRD_NL; ++ $scale = "--upper-limit=" . escapeshellarg($graph["upper_limit"]) . RRD_NL; ++ $scale .= "--lower-limit=" . escapeshellarg($graph["lower_limit"]) . RRD_NL; + } + + if ($graph["auto_scale_log"] == "on") { +@@ -721,14 +721,14 @@ + + if (!empty($graph["unit_value"])) { + if (read_config_option("rrdtool_version") != "rrd-1.0.x") { +- $unit_value = "--y-grid=" . $graph["unit_value"] . RRD_NL; ++ $unit_value = "--y-grid=" . escapeshellarg($graph["unit_value"]) . RRD_NL; + }else{ +- $unit_value = "--unit=" . $graph["unit_value"] . RRD_NL; ++ $unit_value = "--unit=" . escapeshellarg($graph["unit_value"]) . RRD_NL; + } + } + + if (ereg("^[0-9]+$", $graph["unit_exponent_value"])) { +- $unit_exponent_value = "--units-exponent=" . $graph["unit_exponent_value"] . RRD_NL; ++ $unit_exponent_value = "--units-exponent=" . escapeshellarg($graph["unit_exponent_value"]) . RRD_NL; + } + + /* +@@ -835,7 +835,7 @@ + "--imgformat=" . $image_types{$graph["image_format_id"]} . RRD_NL . + "--start=$graph_start" . RRD_NL . + "--end=$graph_end" . RRD_NL . +- "--title=\"" . str_replace("\"", "\\\"", $graph["title_cache"]) . "\"" . RRD_NL . ++ "--title=" . escapeshellarg($graph["title_cache"]) . RRD_NL . + "$rigid" . + "--base=" . $graph["base_value"] . RRD_NL . + "--height=$graph_height" . RRD_NL . +@@ -844,7 +844,7 @@ + "$unit_value" . + "$unit_exponent_value" . + "$graph_legend" . +- "--vertical-label=\"" . $graph["vertical_label"] . "\"" . RRD_NL; ++ "--vertical-label=" . escapeshellarg($graph["vertical_label"]) . RRD_NL; + + /* rrdtool 1.2.x does not provide smooth lines, let's force it */ + if (read_config_option("rrdtool_version") != "rrd-1.0.x") { +@@ -1966,8 +1966,8 @@ + + /* add host and graph information */ + $xport_array["meta"]["stacked_columns"]= $stacked_columns; +- $xport_array["meta"]["title_cache"] = $graph["title_cache"]; +- $xport_array["meta"]["vertical_label"] = $graph["vertical_label"]; ++ $xport_array["meta"]["title_cache"] = escapeshellarg($graph["title_cache"]); ++ $xport_array["meta"]["vertical_label"] = escapeshellarg($graph["vertical_label"]); + $xport_array["meta"]["local_graph_id"] = $local_graph_id; + $xport_array["meta"]["host_id"] = $graph["host_id"]; + +diff -Nur cacti-0.8.7e.base/lib/snmp.php cacti-0.8.7e.patched/lib/snmp.php +--- cacti-0.8.7e.base/lib/snmp.php 2011-01-13 16:26:40.988870525 -0500 ++++ cacti-0.8.7e.patched/lib/snmp.php 2011-01-14 12:45:11.409394948 -0500 +@@ -46,7 +46,12 @@ + } + + /* do not attempt to poll invalid combinations */ +- if (($version == 0) || (($community == "") && ($version != 3))) { ++ if (($version == 0) || (!is_numeric($version)) || ++ (!is_numeric($port)) || ++ (!is_numeric($retries)) || ++ (!is_numeric($timeout)) || ++ (($community == "") && ($version != 3)) ++ ) { + return "U"; + } + +@@ -111,9 +116,13 @@ + if (empty($snmp_auth)) { return; } + + if (read_config_option("snmp_version") == "ucd-snmp") { +- exec(read_config_option("path_snmpget") . " -O vt -v$version -t $timeout -r $retries $hostname:$port $snmp_auth $oid", $snmp_value); ++ /* escape the command to be executed and vulnerable parameters ++ * numeric parameters are not subject to command injection ++ * snmp_auth is treated seperately, see above */ ++ exec(escapeshellcmd(read_config_option("path_snmpget")) . " -O vt -v$version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port $snmp_auth " . escapeshellarg($oid), $snmp_value); + }else { +- exec(read_config_option("path_snmpget") . " -O fntev $snmp_auth -v $version -t $timeout -r $retries $hostname:$port $oid", $snmp_value); ++ cacti_log(escapeshellcmd(read_config_option("path_snmpget")) . " -O fntev " . $snmp_auth . " -v $version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port " . escapeshellarg($oid), false, "TEST"); ++ exec(escapeshellcmd(read_config_option("path_snmpget")) . " -O fntev " . $snmp_auth . " -v $version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port " . escapeshellarg($oid), $snmp_value); + } + } + +@@ -140,10 +149,15 @@ + } + + /* do not attempt to poll invalid combinations */ +- if (($version == 0) || (($community == "") && ($version != 3))) { ++ if (($version == 0) || (!is_numeric($version)) || ++ (!is_numeric($port)) || ++ (!is_numeric($retries)) || ++ (!is_numeric($timeout)) || ++ (($community == "") && ($version != 3)) ++ ) { + return "U"; + } +- ++ + if ((snmp_get_method($version) == SNMP_METHOD_PHP) && + (!strlen($context) || ($version != 3))) { + /* make sure snmp* is verbose so we can see what types of data +@@ -205,9 +219,12 @@ + if (empty($snmp_auth)) { return; } + + if (read_config_option("snmp_version") == "ucd-snmp") { +- exec(read_config_option("path_snmpgetnext") . " -O vt -v$version -t $timeout -r $retries $hostname:$port $snmp_auth $oid", $snmp_value); ++ /* escape the command to be executed and vulnerable parameters ++ * numeric parameters are not subject to command injection ++ * snmp_auth is treated seperately, see above */ ++ exec(escapeshellcmd(read_config_option("path_snmpgetnext")) . " -O vt -v$version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port $snmp_auth " . escapeshellarg($oid), $snmp_value); + }else { +- exec(read_config_option("path_snmpgetnext") . " -O fntev $snmp_auth -v $version -t $timeout -r $retries $hostname:$port $oid", $snmp_value); ++ exec(escapeshellcmd(read_config_option("path_snmpgetnext")) . " -O fntev $snmp_auth -v $version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port " . escapeshellarg($oid), $snmp_value); + } + } + +@@ -238,6 +255,17 @@ + if ($retries == "") $retries = 3; + } + ++ /* do not attempt to poll invalid combinations */ ++ if (($version == 0) || (!is_numeric($version)) || ++ (!is_numeric($max_oids)) || ++ (!is_numeric($port)) || ++ (!is_numeric($retries)) || ++ (!is_numeric($timeout)) || ++ (($community == "") && ($version != 3)) ++ ) { ++ return "U"; ++ } ++ + $path_snmpbulkwalk = read_config_option("path_snmpbulkwalk"); + + if ((snmp_get_method($version) == SNMP_METHOD_PHP) && +@@ -329,12 +357,15 @@ + } + + if (read_config_option("snmp_version") == "ucd-snmp") { +- $temp_array = exec_into_array(read_config_option("path_snmpwalk") . " -v$version -t $timeout -r $retries $hostname:$port $snmp_auth $oid"); ++ /* escape the command to be executed and vulnerable parameters ++ * numeric parameters are not subject to command injection ++ * snmp_auth is treated seperately, see above */ ++ $temp_array = exec_into_array(escapeshellcmd(read_config_option("path_snmpwalk")) . " -v$version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port $snmp_auth " . escapeshellarg($oid)); + }else { + if (file_exists($path_snmpbulkwalk) && ($version > 1) && ($max_oids > 1)) { +- $temp_array = exec_into_array($path_snmpbulkwalk . " -O Qn $snmp_auth -v $version -t $timeout -r $retries -Cr$max_oids $hostname:$port $oid"); ++ $temp_array = exec_into_array(escapeshellcmd($path_snmpbulkwalk) . " -O Qn $snmp_auth -v $version -t $timeout -r $retries -Cr$max_oids " . escapeshellarg($hostname) . ":$port " . escapeshellarg($oid)); + }else{ +- $temp_array = exec_into_array(read_config_option("path_snmpwalk") . " -O Qn $snmp_auth -v $version -t $timeout -r $retries $hostname:$port $oid"); ++ $temp_array = exec_into_array(escapeshellcmd(read_config_option("path_snmpwalk")) . " -O Qn $snmp_auth -v $version -t $timeout -r $retries " . escapeshellarg($hostname) . ":$port " . escapeshellarg($oid)); + } + } + +diff -Nur cacti-0.8.7e.base/utilities.php cacti-0.8.7e.patched/utilities.php +--- cacti-0.8.7e.base/utilities.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e.patched/utilities.php 2011-01-14 12:38:10.653370713 -0500 +@@ -246,7 +246,7 @@ + if ((file_exists(read_config_option("path_rrdtool"))) && ((function_exists('is_executable')) && (is_executable(read_config_option("path_rrdtool"))))) { + + $out_array = array(); +- exec(read_config_option("path_rrdtool"), $out_array); ++ exec(escapeshellcmd(read_config_option("path_rrdtool")), $out_array); + + if (sizeof($out_array) > 0) { + if (ereg("^RRDtool 1\.3", $out_array[0])) { +@@ -262,7 +262,7 @@ + /* Get SNMP cli version */ + $snmp_version = read_config_option("snmp_version"); + if ((file_exists(read_config_option("path_snmpget"))) && ((function_exists('is_executable')) && (is_executable(read_config_option("path_snmpget"))))) { +- $snmp_version = shell_exec(read_config_option("path_snmpget") . " -V 2>&1"); ++ $snmp_version = shell_exec(escapeshellcmd(read_config_option("path_snmpget")) . " -V 2>&1"); + } + + /* Check RRDTool issues */ --- cacti-0.8.7e.orig/debian/patches/CVE-2010-2092.patch +++ cacti-0.8.7e/debian/patches/CVE-2010-2092.patch @@ -0,0 +1,14 @@ +# Descripton: Fixes a SQL injection vulnerability in graph.php (CVE-2010-2092) +# Author: Brian Thomason (derived from Debian patch) + +--- a/graph.php.orig 2011-01-13 16:26:41.080871198 -0500 ++++ b/graph.php 2011-01-13 16:28:23.944868850 -0500 +@@ -33,7 +33,7 @@ + include_once("./include/top_graph_header.php"); + + /* ================= input validation ================= */ +-input_validate_input_regex(get_request_var_request("rra_id"), "^([0-9]+|all)$"); ++input_validate_input_regex(get_request_var("rra_id"), "^([0-9]+|all)$"); + input_validate_input_number(get_request_var("local_graph_id")); + input_validate_input_number(get_request_var("graph_end")); + input_validate_input_number(get_request_var("graph_start")); --- cacti-0.8.7e.orig/debian/patches/series +++ cacti-0.8.7e/debian/patches/series @@ -0,0 +1,17 @@ +01_config.php.patch +05_no-adodb.patch +06_config_settings.php_cactid_path.patch +official/cli_add_graph.patch +official/snmp_invalid_response.patch +official/template_duplication.patch +official/fix_icmp_on_windows_iis_servers.patch +official/cross_site_fix.patch +cli-include-path.patch +563955_undefined_index_local_data_id.patch +CVE-2010-1431.patch +CVE-2010-1644.patch +CVE-2010-1645.patch +CVE-2010-2092.patch +CVE-2010-2543.patch +CVE-2011-4824.patch +LP914746_regression_lucid_string_offset_in_data_query.patch --- cacti-0.8.7e.orig/debian/patches/CVE-2010-1431.patch +++ cacti-0.8.7e/debian/patches/CVE-2010-1431.patch @@ -0,0 +1,17 @@ +# Description: Fix SQL injection vulnerability in templates_export.php (CVE-2010-1431) +# Author: Brian Thomason (derived from upstream svn diff) +# Origin: upstream, http://www.cacti.net/downloads/patches/0.8.7e/sql_injection_template_export.patch + +--- a/templates_export.php.orig 2011-01-13 16:41:07.784869534 -0500 ++++ b/templates_export.php 2011-01-13 16:41:51.200880468 -0500 +@@ -49,6 +49,10 @@ + function form_save() { + global $export_types; + ++ /* ================= input validation ================= */ ++ input_validate_input_number(get_request_var_post("export_item_id")); ++ /* ==================================================== */ ++ + if (isset($_POST["save_component_export"])) { + $xml_data = get_item_xml($_POST["export_type"], $_POST["export_item_id"], (((isset($_POST["include_deps"]) ? $_POST["include_deps"] : "") == "") ? false : true)); + --- cacti-0.8.7e.orig/debian/patches/LP914746_regression_lucid_string_offset_in_data_query.patch +++ cacti-0.8.7e/debian/patches/LP914746_regression_lucid_string_offset_in_data_query.patch @@ -0,0 +1,35 @@ +Description: Fix to repair regression of patch CVE-2010-1645.patch + "Cannot use string offset as an array in + /usr/share/cacti/site/lib/data_query.php" +Author: Paul Gevers +Forwarded: not-needed +Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/cacti/+bug/914746 +Origin, upstream: http://svn.cacti.net/viewvc?view=rev&revision=5826 +Origin, upstream: http://svn.cacti.net/viewvc?view=rev&revision=6942 + +Index: cacti/lib/data_query.php +=================================================================== +--- cacti.orig/lib/data_query.php 2012-07-07 13:20:50.409681942 +0200 ++++ cacti/lib/data_query.php 2012-07-12 20:52:10.450575123 +0200 +@@ -174,7 +174,7 @@ + debug_log_insert("data_query", "Executing SNMP walk for list of indexes @ '" . $snmp_queries["oid_index"] . "'"); + + /* no data found; get out */ +- if (!$snmp_indexes) { ++ if (!sizeof($snmp_indexes)) { + debug_log_insert("data_query", "No SNMP data returned"); + return false; + } else { +Index: cacti/lib/snmp.php +=================================================================== +--- cacti.orig/lib/snmp.php 2012-07-12 20:54:31.711275597 +0200 ++++ cacti/lib/snmp.php 2012-07-12 20:54:58.387407851 +0200 +@@ -263,7 +263,7 @@ + (!is_numeric($timeout)) || + (($community == "") && ($version != 3)) + ) { +- return "U"; ++ return array(); + } + + $path_snmpbulkwalk = read_config_option("path_snmpbulkwalk"); --- cacti-0.8.7e.orig/debian/patches/official/snmp_invalid_response.patch +++ cacti-0.8.7e/debian/patches/official/snmp_invalid_response.patch @@ -0,0 +1,25 @@ +--- ../tags/0.8.7e/include/global_arrays.php 2009-06-28 12:34:31.000000000 -0400 ++++ 0.8.7/include/global_arrays.php 2009-08-18 20:04:44.000000000 -0400 +@@ -174,6 +174,10 @@ + "DES" => "DES (default)", + "AES128" => "AES"); + ++$banned_snmp_strings = array( ++ "End of MIB", ++ "No Such"); ++ + $logfile_options = array(1 => + "Logfile Only", + "Logfile and Syslog/Eventlog", +--- ../tags/0.8.7e/lib/snmp.php 2009-06-28 12:34:30.000000000 -0400 ++++ 0.8.7/lib/snmp.php 2009-08-18 20:04:44.000000000 -0400 +@@ -27,9 +27,6 @@ + define("SNMP_METHOD_PHP", 1); + define("SNMP_METHOD_BINARY", 2); + +-/* declare once, use many times */ +-$banned_snmp_strings = array("End of MIB", "No Such"); +- + /* we must use an apostrophe to escape community names under Unix in case the user uses + characters that the shell might interpret. the ucd-snmp binaries on Windows flip out when + you do this, but are perfectly happy with a quotation mark. */ --- cacti-0.8.7e.orig/debian/patches/official/fix_icmp_on_windows_iis_servers.patch +++ cacti-0.8.7e/debian/patches/official/fix_icmp_on_windows_iis_servers.patch @@ -0,0 +1,84 @@ +--- cacti-0.8.7e/lib/ping.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e-patched/lib/ping.php 2009-09-01 16:22:22.000000000 -0400 +@@ -156,10 +156,9 @@ + } + socket_set_block($this->socket); + ++ /* use traditional ping if we can't create a raw socket */ + if (!(@socket_connect($this->socket, $host_ip, NULL))) { +- $this->ping_response = "Cannot connect to host"; +- $this->ping_status = "down"; +- return false; ++ break; + } + + /* set socket receive timeout as appropriate */ +@@ -234,8 +233,9 @@ + break; + } + } +- }else{ +- /* we have to use the real ping */ ++ } ++ ++ /* we have to use the real ping, in cases where windows failed or while using UNIX/Linux */ + $pattern = bin2hex("cacti-monitoring-system"); // the actual test data + + /* host timeout given in ms, recalculate to sec, but make it an integer */ +@@ -253,10 +253,13 @@ + $result = shell_exec("ping -w " . ceil($this->timeout/1000) . " -c " . $this->retries . " " . $this->host["hostname"]); + }else if (substr_count(strtolower(PHP_OS), "aix")) { + $result = shell_exec("ping -i " . ceil($this->timeout/1000) . " -c " . $this->retries . " " . $this->host["hostname"]); ++ }else if (substr_count(strtolower(PHP_OS), "winnt")) { ++ $result = shell_exec("ping -w " . $this->timeout . " -n " . $this->retries . " " . $this->host["hostname"]); + }else{ + $result = shell_exec("ping -W " . ceil($this->timeout/1000) . " -c " . $this->retries . " -p " . $pattern . " " . $this->host["hostname"]); + } + ++ if (strtolower(PHP_OS) != "winnt") { + $position = strpos($result, "min/avg/max"); + + if ($position > 0) { +@@ -274,6 +277,24 @@ + + return false; + } ++ }else{ ++ $position = strpos($result, "Minimum"); ++ ++ if ($position > 0) { ++ $output = trim(substr($result, $position)); ++ $pieces = explode(",", $output); ++ $results = explode("=", $pieces[2]); ++ ++ $this->ping_status = trim(str_replace("ms", "", $results[1])); ++ $this->ping_response = "ICMP Ping Success (" . $this->ping_status . " ms)"; ++ ++ return true; ++ }else{ ++ $this->status = "down"; ++ $this->ping_response = "ICMP ping Timed out"; ++ ++ return false; ++ } + } + }else{ + $this->ping_status = "down"; +@@ -642,7 +663,7 @@ + /* snmp test */ + if (($avail_method == AVAIL_SNMP_OR_PING) && ($ping_result == true)) { + $snmp_result = true; +- $snmp_status = 0.000; ++ $this->snmp_status = 0.000; + }else if (($avail_method == AVAIL_SNMP_AND_PING) && ($ping_result == false)) { + $snmp_result = false; + }else if (($avail_method == AVAIL_SNMP) || ($avail_method == AVAIL_SNMP_AND_PING)) { +@@ -650,7 +671,7 @@ + /* snmp version 1/2 without community string assume SNMP test to be successful + due to backward compatibility issues */ + $snmp_result = true; +- $snmp_status = 0.000; ++ $this->snmp_status = 0.000; + }else{ + $snmp_result = $this->ping_snmp(); + } --- cacti-0.8.7e.orig/debian/patches/official/cross_site_fix.patch +++ cacti-0.8.7e/debian/patches/official/cross_site_fix.patch @@ -0,0 +1,175 @@ +--- cacti-0.8.7e/graph.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e-patched/graph.php 2009-11-21 23:10:16.000000000 -0500 +@@ -35,6 +35,8 @@ + /* ================= input validation ================= */ + input_validate_input_regex(get_request_var_request("rra_id"), "^([0-9]+|all)$"); + input_validate_input_number(get_request_var("local_graph_id")); ++input_validate_input_number(get_request_var("graph_end")); ++input_validate_input_number(get_request_var("graph_start")); + input_validate_input_regex(get_request_var_request("view_type"), "^([a-zA-Z0-9]+)$"); + /* ==================================================== */ + +--- cacti-0.8.7e/include/top_graph_header.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e-patched/include/top_graph_header.php 2009-11-21 23:15:27.000000000 -0500 +@@ -58,7 +58,7 @@ + if ($_SESSION["custom"]) { + print "\r\n"; + }else{ +- print "\r\n"; ++ print "\r\n"; + } + } + ?> +@@ -113,7 +113,7 @@ +
    +- " height="2" border="0">
    ++ " height="2" border="0">
    +
    + +@@ -144,7 +144,7 @@ + +
    ++ +
    + + +--- cacti-0.8.7e/lib/html_form.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e-patched/lib/html_form.php 2009-11-21 23:15:40.000000000 -0500 +@@ -235,13 +235,21 @@ + + if (sizeof($items) > 0) { + foreach ($items as $item) { +- print $item["name"] . "
    "; ++ print htmlspecialchars($item["name"],ENT_QUOTES) . "
    "; + } + } + + break; ++ case 'font': ++ form_font_box($field_name, $field_array["value"], ++ ((isset($field_array["default"])) ? $field_array["default"] : ""), ++ $field_array["max_length"], ++ ((isset($field_array["size"])) ? $field_array["size"] : "40"), "text", ++ ((isset($field_array["form_id"])) ? $field_array["form_id"] : "")); ++ ++ break; + default: +- print "" . $field_array["value"] . ""; ++ print "" . htmlspecialchars($field_array["value"],ENT_QUOTES) . ""; + + form_hidden_box($field_name, $field_array["value"], ""); + +@@ -384,7 +392,7 @@ + $form_previous_value = $form_default_value; + } + +- print "\n"; ++ print "\n"; + } + + /* form_dropdown - draws a standard html dropdown box +@@ -568,7 +576,7 @@ + } + } + +- print ">". $array_display[$id]; ++ print ">". htmlspecialchars($array_display[$id],ENT_QUOTES); + print "\n"; + } + +@@ -627,6 +635,65 @@ + print "\n"; + } + ++/* form_font_box - draws a standard html textbox and provides status of a fonts existence ++ @arg $form_name - the name of this form element ++ @arg $form_previous_value - the current value of this form element ++ @arg $form_default_value - the value of this form element to use if there is ++ no current value available ++ @arg $form_max_length - the maximum number of characters that can be entered ++ into this textbox ++ @arg $form_size - the size (width) of the textbox ++ @arg $type - the type of textbox, either 'text' or 'password' ++ @arg $current_id - used to determine if a current value for this form element ++ exists or not. a $current_id of '0' indicates that no current value exists, ++ a non-zero value indicates that a current value does exist */ ++function form_font_box($form_name, $form_previous_value, $form_default_value, $form_max_length, $form_size = 30, $type = "text", $current_id = 0) { ++ if (($form_previous_value == "") && (empty($current_id))) { ++ $form_previous_value = $form_default_value; ++ } ++ ++ print ""; ++ } else { ++ $extra_data = "
    [" . "OK: FONT FOUND" . "]
    "; ++ } ++ } elseif (read_config_option("rrdtool_version") == "rrd-1.0.x" || ++ read_config_option("rrdtool_version") == "rrd-1.2.x") { # rrdtool 1.0 and 1.2 use font files ++ if (is_file($form_previous_value)) { ++ $extra_data = "
    [" . "OK: FILE FOUND" . "]
    "; ++ }else if (is_dir($form_previous_value)) { ++ $extra_data = "
    [" . "ERROR: IS DIR" . "]
    "; ++ }else{ ++ $extra_data = "
    [" . "ERROR: FILE NOT FOUND" . "]
    "; ++ } ++ } # will be used for future versions of rrdtool ++ } ++ ++ print " id='$form_name' name='$form_name' size='$form_size'" . (!empty($form_max_length) ? " maxlength='$form_max_length'" : "") . " value='" . htmlspecialchars($form_previous_value, ENT_QUOTES) . "'>" . $extra_data; ++} ++ + /* form_confirm - draws a table presenting the user with some choice and allowing + them to either proceed (delete) or cancel + @arg $body_text - the text to prompt the user with on this form +--- cacti-0.8.7e/lib/timespan_settings.php 2009-06-28 12:07:11.000000000 -0400 ++++ cacti-0.8.7e-patched/lib/timespan_settings.php 2009-11-21 23:15:49.000000000 -0500 +@@ -125,9 +125,9 @@ + if (isset($_POST["date1"])) { + /* the dates have changed, therefore, I am now custom */ + if (($_SESSION["sess_current_date1"] != $_POST["date1"]) || ($_SESSION["sess_current_date2"] != $_POST["date2"])) { +- $timespan["current_value_date1"] = $_POST["date1"]; ++ $timespan["current_value_date1"] = sanitize_search_string($_POST["date1"]); + $timespan["begin_now"] =strtotime($timespan["current_value_date1"]); +- $timespan["current_value_date2"] = $_POST["date2"]; ++ $timespan["current_value_date2"] = sanitize_search_string($_POST["date2"]); + $timespan["end_now"]=strtotime($timespan["current_value_date2"]); + $_SESSION["sess_current_timespan"] = GT_CUSTOM; + $_SESSION["custom"] = 1; +@@ -135,8 +135,8 @@ + }else { + /* the default button wasn't pushed */ + if (!isset($_POST["button_clear_x"])) { +- $timespan["current_value_date1"] = $_POST["date1"]; +- $timespan["current_value_date2"] = $_POST["date2"]; ++ $timespan["current_value_date1"] = sanitize_search_string($_POST["date1"]); ++ $timespan["current_value_date2"] = sanitize_search_string($_POST["date2"]); + $timespan["begin_now"] = $_SESSION["sess_current_timespan_begin_now"]; + $timespan["end_now"] = $_SESSION["sess_current_timespan_end_now"]; + --- cacti-0.8.7e.orig/debian/patches/official/template_duplication.patch +++ cacti-0.8.7e/debian/patches/official/template_duplication.patch @@ -0,0 +1,234 @@ +diff -ruBbd 0.8.7e/cli/repair_templates.php 0.8.7/cli/repair_templates.php +--- 0.8.7e/cli/repair_templates.php 2009-08-18 22:03:22.000000000 -0400 ++++ 0.8.7/cli/repair_templates.php 2009-08-20 07:43:54.000000000 -0400 +@@ -0,0 +1,135 @@ ++This script is only meant to run at the command line."); ++} ++ ++$no_http_headers = true; ++ ++include(dirname(__FILE__) . "/../include/global.php"); ++include_once("../lib/utility.php"); ++include_once("../lib/template.php"); ++ ++/* process calling arguments */ ++$parms = $_SERVER["argv"]; ++array_shift($parms); ++ ++$execute = FALSE; ++ ++foreach($parms as $parameter) { ++ @list($arg, $value) = @explode("=", $parameter); ++ ++ switch ($arg) { ++ case "--execute": ++ $execute = TRUE; ++ break; ++ case "-h": ++ case "-v": ++ case "-V": ++ case "--version": ++ case "--help": ++ display_help(); ++ exit; ++ default: ++ print "ERROR: Invalid Parameter " . $parameter . "\n\n"; ++ display_help(); ++ exit; ++ } ++} ++ ++if ($execute) { ++ echo "NOTE: Repairing All Duplicated Templates\n"; ++} else { ++ echo "NOTE: Performing Check of Templates\n"; ++} ++ ++/* repair data templates first */ ++if ($execute) { ++ echo "NOTE: Repairing Data Templates\n"; ++} else { ++ echo "NOTE: Performing Check of Data Templates\n"; ++} ++ ++$damaged_template_ids = db_fetch_assoc("SELECT DISTINCT data_template_id FROM data_template_rrd WHERE hash='' AND local_data_id=0"); ++if (sizeof($damaged_template_ids)) { ++ foreach($damaged_template_ids as $id) { $template_name = db_fetch_cell("SELECT name FROM data_template WHERE id=" . $id["data_template_id"]); ++ echo "NOTE: Data Template '$template_name' is Damaged and can be repaired\n"; ++ } ++ ++ $damaged_templates = db_fetch_assoc("SELECT * FROM data_template_rrd WHERE hash='' AND local_data_id=0"); ++ if (sizeof($damaged_templates)) { ++ echo "NOTE: -- Damaged Data Templates Objects Found is '" . sizeof($damaged_templates) . "'\n"; ++ if ($execute) { ++ foreach($damaged_templates as $template) { ++ $hash = get_hash_data_template($template["local_data_template_rrd_id"], "data_template_item"); ++ db_execute("UPDATE data_template_rrd SET hash='$hash' WHERE id=" . $template["id"]); ++ } ++ } ++ } ++} else { ++ echo "NOTE: No Damaged Data Templates Found\n"; ++} ++ ++/* reset the array */ ++$damaged_templates = array(); ++ ++/* repair graph templates */ ++if ($execute) { ++ echo "NOTE: Repairing Graph Templates\n"; ++} else { ++ echo "NOTE: Performing Check of Graph Templates\n"; ++} ++ ++$damaged_template_ids = db_fetch_assoc("SELECT DISTINCT graph_template_id FROM graph_template_input WHERE hash=''"); ++if (sizeof($damaged_template_ids)) { ++ foreach($damaged_template_ids as $id) { ++ $template_name = db_fetch_cell("SELECT name FROM graph_templates WHERE id=" . $id["graph_template_id"]); ++ echo "NOTE: Graph Template '$template_name' is Damaged and can be repaired\n"; ++ } ++ ++ $damaged_templates = db_fetch_assoc("SELECT * FROM graph_template_input WHERE hash=''"); ++ if (sizeof($damaged_templates)) { ++ echo "NOTE: -- Damaged Graph Templates Objects Found is '" . sizeof($damaged_templates) . "'\n"; ++ if ($execute) { ++ foreach($damaged_templates as $template) { ++ $hash = get_hash_graph_template(0, "graph_template_input"); ++ db_execute("UPDATE graph_template_input SET hash='$hash' WHERE id=" . $template["id"]); ++ } ++ } ++ } ++} else { ++ echo "NOTE: No Damaged Graph Templates Found\n"; ++} ++ ++ ++/* display_help - displays the usage of the function */ ++function display_help () { ++ print "Cacti Database Template Repair Tool v1.0, Copyright 2004-2009 - The Cacti Group\n\n"; ++ print "usage: repair_templates.php --execute [--help]\n\n"; ++ print "--execute - Perform the repair\n"; ++ print "--help - display this help message\n"; ++} ++?> +diff -ruBbd 0.8.7e/docs/README 0.8.7/docs/README +--- 0.8.7e/docs/README 2009-08-18 21:57:30.000000000 -0400 ++++ 0.8.7/docs/README 2009-08-18 21:58:09.000000000 -0400 +@@ -90,6 +90,9 @@ + table + poller_reindex_hosts.php - Cause data query reindex on hosts + rebuild_poller_cache.php - Rebuilds the poller cache ++ repair_templates.php - Certain templates, when created using the "duplicate" ++ function in Cacti, do not import/export well. This utility repairs ++ those templates. + + + +diff -ruBbd 0.8.7e/lib/export.php 0.8.7/lib/export.php +--- 0.8.7e/lib/export.php 2009-08-18 21:56:47.000000000 -0400 ++++ 0.8.7/lib/export.php 2009-08-18 21:57:50.000000000 -0400 +@@ -811,7 +811,9 @@ + } + + function xml_character_encode($text) { +- ++ if (function_exists("htmlspecialchars")) { ++ return htmlspecialchars($text, ENT_QUOTES, "UTF-8"); ++ } else { + $text = str_replace("&", "&", $text); + $text = str_replace(">", ">", $text); + $text = str_replace("<", "<", $text); +@@ -819,6 +821,7 @@ + $text = str_replace("\'", "'", $text); + + return $text; ++ } + } + + ?> +diff -ruBbd 0.8.7e/lib/import.php 0.8.7/lib/import.php +--- 0.8.7e/lib/import.php 2009-08-18 21:56:59.000000000 -0400 ++++ 0.8.7/lib/import.php 2009-08-18 21:57:55.000000000 -0400 +@@ -36,10 +36,6 @@ + return $info_array; + } + +- if (isset($xml_array["name"])) { +- $xml_array["name"] = htmlspecialchars($xml_array["name"]); +- } +- + while (list($hash, $hash_array) = each($xml_array)) { + /* parse information from the hash */ + $parsed_hash = parse_xml_hash($hash); +@@ -115,7 +111,7 @@ + $_graph_template_id = db_fetch_cell("select id from graph_templates where hash='$hash'"); + $save["id"] = (empty($_graph_template_id) ? "0" : $_graph_template_id); + $save["hash"] = $hash; +- $save["name"] = htmlspecialchars($xml_array["name"]); ++ $save["name"] = $xml_array["name"]; + $graph_template_id = sql_save($save, "graph_templates"); + + $hash_cache["graph_template"][$hash] = $graph_template_id; +@@ -914,9 +910,13 @@ + } + + function xml_character_decode($text) { ++ if (function_exists("html_entity_decode")) { ++ return html_entity_decode($text, ENT_QUOTES, "UTF-8"); ++ } else { + $trans_tbl = get_html_translation_table(HTML_ENTITIES); + $trans_tbl = array_flip($trans_tbl); + return strtr($text, $trans_tbl); ++ } + } + + ?> +diff -ruBbd 0.8.7e/lib/utility.php 0.8.7/lib/utility.php +--- 0.8.7e/lib/utility.php 2009-08-18 21:57:08.000000000 -0400 ++++ 0.8.7/lib/utility.php 2009-08-18 21:58:00.000000000 -0400 +@@ -346,6 +346,7 @@ + $save["name"] = $graph_template_input["name"]; + $save["description"] = $graph_template_input["description"]; + $save["column_name"] = $graph_template_input["column_name"]; ++ $save["hash"] = get_hash_graph_template(0, "graph_template_input"); + + $graph_template_input_id = sql_save($save, "graph_template_input"); + +@@ -436,6 +437,11 @@ + $save["local_data_id"] = (isset($local_data_id) ? $local_data_id : 0); + $save["local_data_template_rrd_id"] = (isset($data_template_rrd["local_data_template_rrd_id"]) ? $data_template_rrd["local_data_template_rrd_id"] : 0); + $save["data_template_id"] = (!empty($_local_data_id) ? $data_template_rrd["data_template_id"] : $data_template_id); ++ if ($save["local_data_id"] == 0) { ++ $save["hash"] = get_hash_data_template($data_template_rrd["local_data_template_rrd_id"], "data_template_item"); ++ } else { ++ $save["hash"] = ''; ++ } + + while (list($field, $array) = each($struct_data_source_item)) { + $save{$field} = $data_template_rrd{$field}; --- cacti-0.8.7e.orig/debian/patches/official/cli_add_graph.patch +++ cacti-0.8.7e/debian/patches/official/cli_add_graph.patch @@ -0,0 +1,11 @@ +--- ../tags/0.8.7e/cli/add_graphs.php 2009-06-28 12:34:31.000000000 -0400 ++++ 0.8.7/cli/add_graphs.php 2009-08-18 20:04:44.000000000 -0400 +@@ -570,7 +570,7 @@ + echo " 3|Fields = Verify all Fields\n"; + echo "List Options:\n"; + echo " --list-hosts\n"; +- echo " --list-graph-templates [--host_template=[ID]]\n"; ++ echo " --list-graph-templates [--host-template-id=[ID]]\n"; + echo " --list-input-fields --graph-template-id=[ID]\n"; + echo " --list-snmp-queries\n"; + echo " --list-query-types --snmp-query-id [ID]\n"; --- cacti-0.8.7e.orig/debian/po/es.po +++ cacti-0.8.7e/debian/po/es.po @@ -0,0 +1,183 @@ +# cacti po-debconf translation to Spanish +# Copyright (C) 2005 Software in the Public Interest +# This file is distributed under the same license as the cacti package. +# +# Changes: +# - Initial translation +# César Gómez Martín +# +# 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/ +# 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: cacti\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-08-29 18:36+0100\n" +"Last-Translator: César Gómez Martín \n" +"Language-Team: Debian l10n spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Spanish\n" +"X-Poedit-Country: SPAIN\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Todos, Ninguno" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Tipo de servidor web" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "¿Qué tipo de servidor web quiere usar con cacti?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Seleccione «Ninguno» si quiere configurar su servidor web manualmente." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "" +#~ "¡Las instalaciones y actualizaciones de MySQL se deben hacer de forma " +#~ "manual!" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ "Por ahora el soporte para la actualización automática de la base de datos " +#~ "MySQL de Cacti se ha deshabilitado. Por favor, consulte en /usr/share/doc/" +#~ "cacti/README.Debian.gz los motivos y lo que necesita para instalar o " +#~ "actualizar Cacti." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Tenga en cuenta que todavía se le preguntará sobre la información " +#~ "relevante que se usará para generar los ficheros de configuración " +#~ "apropiados. " + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "" +#~ "Cambios de la estructura de la base de datos en la configuración de cacti." + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Está actualizando desde una versión previa a 0.8.x. Desafortunadamente su " +#~ "vieja base de datos no funcionará con la última versión de Cacti. Por " +#~ "favor, lea /usr/share/doc/cacti/README.Debian.gz para ver las distintas " +#~ "opciones de las que dispone." + +#~ msgid "MySQL server host name" +#~ msgstr "Nombre de máquina del servidor MySQL" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "" +#~ "Por favor, introduzca el nombre de la máquina en la que está la base de " +#~ "datos de Cacti." + +#~ msgid "Database name for cacti" +#~ msgstr "Nombre de la base de datos para cacti" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Por favor, introduzca el nombre de la base de datos de Cacti. Cacti " +#~ "almacenará y obtendrá datos de ella." + +#~ msgid "MySQL administrator username" +#~ msgstr "Nombre de usuario del administrador de MySQL" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Por favor, introduzca el nombre del administrador de MySQL (se necesita " +#~ "para la creación de la base de datos de Cacti)." + +#~ msgid "MySQL administrator password" +#~ msgstr "Contraseña del administrador de MySQL" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "" +#~ "Introduzca «none» si no hay ninguna contraseña para la administración de " +#~ "MySQL." + +#~ msgid "Cacti database username" +#~ msgstr "Nombre de usuario de la base de datos de Cacti" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Por favor, introduzca el nombre que se usará para conectar a la base de " +#~ "datos de Cacti." + +#~ msgid "Cacti user password" +#~ msgstr "Contraseña del usuario de Cacti" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Por favor, introduzca una contraseña para el usuario de la base de datos " +#~ "de Cacti (por omisión «cacti»)." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "¿Quiere purgar la base de datos cuando se purge el paquete?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Responda afirmativamente si quiere eliminar la base de datos y el usuario " +#~ "correspondiente cuando se purge el paquete." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Confirmación de la contraseña del administrador de MySQL" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Por favor, confirme la contraseña para el administrador de MySQL." + +#~ msgid "Error" +#~ msgstr "Error" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "" +#~ "La contraseña y su confirmación no coinciden. ¡Por favor, introdúzcala " +#~ "nuevamente!" --- cacti-0.8.7e.orig/debian/po/pt.po +++ cacti-0.8.7e/debian/po/pt.po @@ -0,0 +1,157 @@ +# Portuguese translation of cacti's debconf messages. +# 2005, Luís Ferreira +# +# 01-11-2005 - Luís Ferreira - Initial translation +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.6g-2\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-11-01 12:08+0100\n" +"Last-Translator: Luís Ferreira \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Todos, Nenhum" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Tipo de servidor web" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Que tipo de servidor web deve o cacti usar?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Selecione \"Nenhum\" se desejar configurar o seu servidor web á mão." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "" +#~ "As instalações e actualizações de MySQL devem ser feitas manualmente!" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ "Por enquanto o suporte para a actualização automática da base de dados " +#~ "MySQL do cacti foi desactivado. Por favor veja o que precisa de fazer " +#~ "para instalar ou actualizar o cacti em /usr/share/doc/cacti/README.Debian." +#~ "gz." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Note que ainda lhe vai ser pedida a informação relevante, que será usada " +#~ "para gerar ficheiros de configuração apropriados." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "A estrutura da base de dados foi alterada na configuração do cacti." + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Você está a actualizar de uma versão anterior a 0.8.x. Infelizmente a sua " +#~ "base de dados antiga não vai funcionar com a última versão do cacti. Veja " +#~ "quais as suas opções em /usr/share/doc/cacti/README.Debian.gz." + +#~ msgid "MySQL server host name" +#~ msgstr "Nome do servidor anfitrião do MySQL." + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "" +#~ "Por favor introduza o nome da máquina que está a hospedar a base de dados " +#~ "do cacti." + +#~ msgid "Database name for cacti" +#~ msgstr "Nome da base de dados para o cacti" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Por favor introduza o nome da base de dados do cacti. O cacti vai guardar " +#~ "e buscar dados daí." + +#~ msgid "MySQL administrator username" +#~ msgstr "Nome de utilizador do administrador de MySQL" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Por favor introduza o nome de utilizador do administrador de MySQL " +#~ "(necessário para a criação da base de dados do cacti)." + +#~ msgid "MySQL administrator password" +#~ msgstr "Palavra chave do administrador de MySQL." + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "" +#~ "Introduza \"none\" se não existir palavra chave para a administração de " +#~ "MySQL." + +#~ msgid "Cacti database username" +#~ msgstr "Utilizador da base de dados do cacti" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Por favor introduza o nome que será usado para ligar à base de dados do " +#~ "cacti." + +#~ msgid "Cacti user password" +#~ msgstr "Palavra chave do utilizador de Cacti" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Por favor introduza uma palavra chave para o utilizador da base de dados " +#~ "do Cacti (por omissão é \"cacti\")." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "" +#~ "Deseja remover a base de dados quando remover as configurações do pacote?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Aceite aqui se desejar perder a base de dados e o utilizador " +#~ "correspondente quando remover as configurações do pacote." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Confirmação da palavra chave do administrador de MySQL" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Por favor confirme a palavra chave do administrador de MySQL." + +#~ msgid "Error" +#~ msgstr "Erro" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "" +#~ "A palavra chave e a sua confirmação não coincidem. Por favor reintroduza " +#~ "a palavra chave." --- cacti-0.8.7e.orig/debian/po/templates.pot +++ cacti-0.8.7e/debian/po/templates.pot @@ -0,0 +1,41 @@ +# 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: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "" --- cacti-0.8.7e.orig/debian/po/ja.po +++ cacti-0.8.7e/debian/po/ja.po @@ -0,0 +1,40 @@ +# Copyright (C) 2008 Sean Finney +# as cacti Debian package's copyright holder. +# This file is distributed under the same license as the cacti package. +# Hideki Yamane (Debian-JP) , 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.7b-2\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2008-07-31 11:21+0200\n" +"Last-Translator: Hideki Yamane (Debian-JP) \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, すべて, どれでもない" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "ウェブサーバの種類" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "どのウェブサーバで cacti を使いますか?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "ウェブサーバを手動で設定したい場合は「どれでもない」を選んでください。" --- cacti-0.8.7e.orig/debian/po/eu.po +++ cacti-0.8.7e/debian/po/eu.po @@ -0,0 +1,42 @@ +# translation of templates.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 , 2009. +msgid "" +msgstr "" +"Project-Id-Version: templates\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2009-07-03 23:58+0200\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \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: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Denak, Bat ere ez" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Web-zerbitzari mota" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Zein web-zerbitzari mota erabili behar du cactik?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "\"Bat ere ez\" hautatu web zerbitzaria eskuz konfiguratu nahi baduzu." + --- cacti-0.8.7e.orig/debian/po/cs.po +++ cacti-0.8.7e/debian/po/cs.po @@ -0,0 +1,157 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.6f-1\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-07-06 16:30+0200\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Všechny, Žádný" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Typ webového serveru" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Jaký typ webového serveru použít pro cacti?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Pokud chcete nastavit webový server ručně, vyberte \"Žádný\"." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "Instalace a aktualizace serveru MySQL musí být provedeny ručně!" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ "Prozatím bude podpora pro automatické aktualizace MySQL databáze cacti " +#~ "zakázána. Důvody tohoto rozhodnutí a návod, jak instalovat či " +#~ "aktualizovat cacti, jsou uloženy v souboru /usr/share/doc/cacti/README." +#~ "Debian.gz." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Poznámka: budete dotázáni na podstatné informace, které se použijí pro " +#~ "vytvoření odpovídajících konfiguračních souborů." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "Změny databázové struktury v konfiguraci cacti" + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Aktualizujete z dřívější verze než 0.8.x. Bohužel, vaše současná databáze " +#~ "nebude pracovat s poslední verzí programu cacti. Vaše dostupné možnosti " +#~ "naleznete v souboru /usr/share/doc/cacti/README.Debian.gz." + +#~ msgid "MySQL server host name" +#~ msgstr "Jméno počítače s MySQL serverem" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "" +#~ "Zadejte prosím jméno počítače, na kterém bude umístěna databáze cacti." + +#~ msgid "Database name for cacti" +#~ msgstr "Jméno databáze programu cacti" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Zadejte prosím jméno databáze programu cacti. Cacti zde bude ukládat a " +#~ "poté načítat svá data." + +#~ msgid "MySQL administrator username" +#~ msgstr "Uživatelské jméno administrátora MySQL" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Zadejte prosím jméno administrátora databáze MySQL (nutné pro vytvoření " +#~ "databáze cacti)." + +#~ msgid "MySQL administrator password" +#~ msgstr "Heslo administrátora MySQL" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "Pokud heslo pro správu MySQL nepoužíváte, zadejte \"none\"." + +#~ msgid "Cacti database username" +#~ msgstr "Uživatelské jméno databáze Cacti" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Zadejte prosím jméno, které se použije pro připojení k databázi cacti." + +#~ msgid "Cacti user password" +#~ msgstr "Heslo uživatele Cacti" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Zadejte prosím heslo pro databázového uživatele Cacti (výchozí je \"cacti" +#~ "\")." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "Přejete si odstranit databázi při smazání balíčku?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Budete-li zde souhlasit, bude při odstranění balíčku smazána databáze a " +#~ "odpovídající uživatel." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Potvrzení hesla administrátora MySQL" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Zadejte prosím pro potvrzení heslo administrátora MySQL." + +#~ msgid "Error" +#~ msgstr "Chyba" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "Hesla nesouhlasí. Zadejte je prosím znovu!" --- cacti-0.8.7e.orig/debian/po/vi.po +++ cacti-0.8.7e/debian/po/vi.po @@ -0,0 +1,163 @@ +# Vietnamese translation for cacti. +# Copyright © 2005 Free Software Foundation, Inc. +# Clytie Siddall , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.6d-1\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-06-12 20:42+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Tất cả, Không có" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Loại trình phục vụ Mạng" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Trình cacti sẽ dùng trình phục vụ Mạng loại nào?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Hãy chọn «Không có» nếu bạn muốn tự cấu hình trình phục vụ Mạng." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "• Cần phải tự cài đặt và nâng cập MySQL. •" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ "Hiện thời, tính năng tự động nâng cấp cơ sở dữ liệu MySQL cacti bị tắt. " +#~ "Hãy xem lý do căn bản, và phương pháp cài đặt hay nâng cấp trình cacti, " +#~ "trong tập tin «/usr/share/doc/cacti/README.Debian.gz»." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Hãy ghi chú: trình này sẽ còn nhắc bạn nhập thông tin liên quan, mà sẽ " +#~ "được dùng để tạo ra những tập tin cấu hình thích hợp." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "Thay đổi cấu trúc cơ sở dữ liệu trong cấu hình cacti" + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Lúc này bạn nâng cấp từ một phiên bản trước 0.8.x. Tiếc là cơ sở dữ liệu " +#~ "cũ của bạn sẽ không hoạt động với phiên bản cacti mới nhất. Hãy xem tập " +#~ "tin «/usr/share/doc/cacti/README.Debian.gz» để tìm tùy chọn." + +#~ msgid "MySQL server host name" +#~ msgstr "Tên máy của máy phục vụ MySQL" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "Hãy nhập tên máy của máy hỗ trợ cơ sở dữ liệu cacti." + +#~ msgid "Database name for cacti" +#~ msgstr "Tên cơ sở dữ liệu cho cacti" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Hãy nhập tên cơ sở dữ liệu cacti. Trình cacti sẽ lưu dữ liệu vào đó, và " +#~ "gọi dữ liệu từ đó." + +#~ msgid "MySQL administrator username" +#~ msgstr "Tên người dùng của quản trị MySQL" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "Hãy nhập tên quản trị MySQL (cần thiết để tạo cơ sở dữ liệu cacti)." + +#~ msgid "MySQL administrator password" +#~ msgstr "Mật khẩu quản trị MySQL" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "" +#~ "Hãy nhập «none» (không có) nếu không dùng mật khẩu để quản lý MySQL." + +#~ msgid "Cacti database username" +#~ msgstr "Tên người dùng cơ sở dữ liệu cacti" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "Hãy nhập tên sẽ được dùng để kết nối đến cơ sở dữ liệu cacti." + +#~ msgid "Cacti user password" +#~ msgstr "Mật khẩu người dùng cacti" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Hãy nhập một mật khẩu cho người dùng cơ sở dữ liệu cacti (mặc định là " +#~ "«cacti»)." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "Bạn có muốn xóa bỏ cơ sở dữ liệu khi tẩy gói tin này không?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Hãy chấp nhận tùy chọn này, nếu bạn muốn xóa bỏ cơ sở dữ liệu và người " +#~ "dùng tương ứng, khi tẩy gói tin này." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Xác nhận mật khẩu quản trị MySQL" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Hãy xác nhận mật khẩu cho quản trị MySQL." + +#~ msgid "Error" +#~ msgstr "Lỗi" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "Hai mật khẩu không khớp được. Hãy nhập lại." + +#~ msgid "Store the MySQL admin password" +#~ msgstr "Lưu mật khẩu quản trị MySQL" + +#~ msgid "" +#~ "To update the cacti database automaticlly during a package upgrade the " +#~ "MySQL admin password must be safed in the debconf database. This is a " +#~ "security risk!!!" +#~ msgstr "" +#~ "Để tự động cập nhật cơ sở dữ liệu cacti trong khi nâng cấp gói tin, cần " +#~ "phải lưu mật khẩu quản trị MySQL vào cơ sở dữ liệu debconf. • Làm như thế " +#~ "rủi ro bảo mật. •" + +#~ msgid "" +#~ "If the password is not stored in the database it will asked everytime!" +#~ msgstr "" +#~ "Tuy nhiên, nếu mật khẩu ấy không được lưu trong cơ sở dữ liệu, trình cấu " +#~ "hình sẽ nhắc bạn nhập nó mỗi lúc cần thiết." --- cacti-0.8.7e.orig/debian/po/ru.po +++ cacti-0.8.7e/debian/po/ru.po @@ -0,0 +1,43 @@ +# 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 , 2009. +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.7d-1\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2009-06-30 21:10+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \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: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, все, ни одного" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Тип веб-сервера:" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Тип используемого cacti веб-сервера" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Выберите \"ни одного\", если хотите настроить веб-сервер вручную." + --- cacti-0.8.7e.orig/debian/po/POTFILES.in +++ cacti-0.8.7e/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] cacti.templates --- cacti-0.8.7e.orig/debian/po/nl.po +++ cacti-0.8.7e/debian/po/nl.po @@ -0,0 +1,229 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.4-2\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2004-09-09 11:57+0100\n" +"Last-Translator: Luk Claes \n" +"Language-Team: Debian l10n Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Allemaal, Geen" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Type webserver" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Welk soort webserver moet door cacti worden gebruikt?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Selecteer \"Geen\" als u uw webserver handmatig wilt configureren." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "Wijzigingen in de databankstructuur van de cacti-configuratie" + +#~ msgid "MySQL server host name" +#~ msgstr "De computernaam van de MySQL-server" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "Geef de naam van de machine die de cacti-databank aanbiedt." + +#~ msgid "Database name for cacti" +#~ msgstr "De naam van de cacti-databank" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Geef de naam van de cacti-databank. Cacti zal daar zijn data bewaren en " +#~ "ophalen." + +#~ msgid "MySQL administrator username" +#~ msgstr "De gebruikersnaam van de MySQL-beheerder" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Geef de gebruikersnaam van de MySQL-beheerder (nodig voor de aanmaak van " +#~ "de cacti-databank)" + +#~ msgid "MySQL administrator password" +#~ msgstr "Het wachtwoord van de MySQL-beheerder" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "Voer \"none\" in als er geen wachtwoord is voor het MySQL-beheer." + +#~ msgid "Cacti database username" +#~ msgstr "De gebruikersnaam van de cacti-databank" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Geef de gebruikersnaam die gebruikt wordt om verbinding te maken met de " +#~ "cacti-databank." + +#~ msgid "Cacti user password" +#~ msgstr "Wachtwoord van de cacti-gebruiker" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Geef het wachtwoord voor de cacti-databankgebruiker (standaard is dit " +#~ "\"cacti\")." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "Wilt u de databank wissen als het pakket wordt gewist (purged)?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Aanvaard dit als u de databank en de corresponderende gebruikersnaam wilt " +#~ "verwijderen bij het wissen (purge) van het pakket." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Bevestiging van het wachtwoord van de MySQL-beheerder" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Geef het wachtwoord van de MySQL-beheerder opnieuw in ter controle" + +#~ msgid "Error" +#~ msgstr "Fout" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "Het wachtwoord is niet hetzelfde. Geef het wachtwoord nog eens in!" + +#~ msgid "Store the MySQL admin password" +#~ msgstr "Bewaar het wachtwoord van de MySQL-beheerder" + +#~ msgid "" +#~ "To update the cacti database automaticlly during a package upgrade the " +#~ "MySQL admin password must be safed in the debconf database. This is a " +#~ "security risk!!!" +#~ msgstr "" +#~ "Om de cacti-databank automatisch bij te werken bij een pakketopwaardering " +#~ "moet het MySQL-adminwachtwoord bewaard worden in de debconf-databank. Dit " +#~ "is een veiligheidsrisico!!!" + +#~ msgid "" +#~ "If the password is not stored in the database it will asked everytime!" +#~ msgstr "" +#~ "Als het wachtwoord niet wordt bewaard in de databank zal het telkens " +#~ "opnieuw gevraagd worden!" + +#~ msgid "MySQL server not found" +#~ msgstr "De MySQL-server is niet gevonden" + +#~ msgid "" +#~ "You entered \"localhost\" as MySQL server but I can't find any server " +#~ "installed on localhost. Either install the mysql-server package or run " +#~ "\"dpkg-reconfigure cacti\" in order to change the MySQL server host." +#~ msgstr "" +#~ "U voerde \"localhost\" in als MySQL-server maar ik kan geen lokale server " +#~ "vinden. Ofwel installeer het mysql-server-pakket ofwel voer \"dpkg-" +#~ "reconfigure cacti\" uit om de MySQL-server te wijzigen." + +#~ msgid "No MySQL server on localhost" +#~ msgstr "Er is geen lokale (localhost) MySQL-server" + +#~ msgid "No MySQL server has been found on localhost." +#~ msgstr "Er is geen lokale (localhost) MySQL-server gevonden." + +#~ msgid "/var/cache/cacti/dumps" +#~ msgstr "/var/cache/cacti/dumps" + +#~ msgid "Where should the existing database be saved during an upgrade?" +#~ msgstr "" +#~ "Waar moet de bestaande databank worden bewaard tijdens een opwaardering?" + +#~ msgid "" +#~ "During a database upgrade, the existing database will first be copied to " +#~ "a separate directory location so that you are able to go back to the " +#~ "previous version of Cacti in case of upgrade problems." +#~ msgstr "" +#~ "Tijdens een databankopwaardering zal de bestaande databank eerst worden " +#~ "gekopieerd naar een afzonderlijke map zodat u kunt terugkeren naar de " +#~ "vorige versie van Cacti in geval van opwaarderingsproblemen." + +#~ msgid "" +#~ "You must specify the pathname of a directory which will have the capacity " +#~ "to receive this dump file. The dump will be created in that directory as " +#~ "a file called cacti-${DATE}.dump." +#~ msgstr "" +#~ "U moet het padnaam of een map aangeven die de capaciteit zal hebben om " +#~ "dit dump-bestand te ontvangen. De dump zal in deze map worden aangemaakt " +#~ "als een bestand met de naam cacti-${DATE}.dump." + +#~ msgid "Select the desired default poller." +#~ msgstr "Selecteer de gewenste standaard poller." + +#~ msgid "" +#~ "A poller is a program that collect all datas for the cacti database and " +#~ "graphics." +#~ msgstr "" +#~ "Een poller is een programma dat alle data voor de cacti-databank en " +#~ "grafieken verzamelt." + +#~ msgid "" +#~ "Only on poller can collect informations, but multiple poller packages are " +#~ "installed. Please select which poller should run by default." +#~ msgstr "" +#~ "Er kan maar n poller informatie verzamelen, maar er zijn meer poller-" +#~ "pakketten genstalleerd. Selecteer welke poller standaard moet draaien." + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. You must backup your current " +#~ "cacti database, and replace it with the new database structure. Please " +#~ "read the available documentation and change your database accordingly." +#~ msgstr "" +#~ "U ben aan het opwaarderen van een versie voor 0.8.X. U moet een " +#~ "veiligheidskopie nemen van uw huidige cacti-databank, en vervangen door " +#~ "de nieuwe databankstructuur. Kijk in de aanwezige documentatie en wijzig " +#~ "uw databank zonodig." + +#~ msgid "" +#~ "Automatically converting your setup is unfortunately impossible. You will " +#~ "have to do it yourself." +#~ msgstr "" +#~ "Uw configuratie automatisch converteren is helaas onmogelijk. U zult dit " +#~ "zelf moeten doen." + +#~ msgid "" +#~ "Cacti will probably be unable to use the existing database and restart " +#~ "collecting your systems." +#~ msgstr "" +#~ "Cacti zal waarschijnlijk de bestaande databank niet kunnen gebruiken en " +#~ "opnieuw starten met het verzamelen van uw systemen." --- cacti-0.8.7e.orig/debian/po/it.po +++ cacti-0.8.7e/debian/po/it.po @@ -0,0 +1,42 @@ +# Italian debconf translation of cacti. +# Copyright (C) 2002 Igor Genibel +# This file is distributed under the same license as the cacti package. +# +# Alessandro De Zorzi , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.7e\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2009-09-26 14:58+0100\n" +"Last-Translator: Alessandro De Zorzi \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Tutti, Nessuno" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Tipo di webserver" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Quale tipo di server web dovrebbe essere utilizzato da cacti?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Selezionare \"Nessuno\" se si desidera configurare il server web " +"manualmente." --- cacti-0.8.7e.orig/debian/po/de.po +++ cacti-0.8.7e/debian/po/de.po @@ -0,0 +1,45 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.6g\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-12-29 14:02+0100\n" +"Last-Translator: Mathias Klein \n" +"Language-Team: Deutsch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, alle, keiner" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Webserver" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Welche Art von Webserver soll von Cacti verwendet werden?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "" +"Wählen Sie »keiner«, wenn Sie den Webserver von Hand konfigurieren wollen." --- cacti-0.8.7e.orig/debian/po/sv.po +++ cacti-0.8.7e/debian/po/sv.po @@ -0,0 +1,160 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.8.6g-1\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-11-12 00:07+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: swe\n" +"X-Poedit-Country: swe\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Alla, Ingen" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Webbserver-typ" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Vilken typ av webbserver ska användas för cacti?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "Välj \"Ingen\" om du vill konfigurera din webbserver på egen hand." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "MySQL-installationer och uppgraderingar måste göras manuellt!" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ "För närvarande är stöd för automatisk uppgradering av cactis MySQL-" +#~ "databas avstängd. Vänligen se rationale och vad du behöver göra för att " +#~ "antingen installera eller uppgradera cacti i /usr/share/doc/cacti/README." +#~ "Debian.gz." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Notera att du kommer fortfarande att frågas efter relevant information " +#~ "som kommer att användas för att generera passande konfigurationsfiler." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "Ändringar i databasstrukturen i cacti-konfigurationen" + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Du uppgraderar från en version före 0.8.x. Tyvärr kommer din gamla " +#~ "databas inte att fungera med den senaste versionen av cacti. Vänligen se /" +#~ "usr/share/doc/cacti/README.Debian.gz för information vad du kan göra." + +#~ msgid "MySQL server host name" +#~ msgstr "Värdnamnet för MySQL-servern" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "Ange namnet på den maskin som är värd för cacti-databasen." + +#~ msgid "Database name for cacti" +#~ msgstr "Databasnamn för cacti" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Ange namnet för cacti-databasen. Cacti kommer att lagra och hämta data " +#~ "där." + +#~ msgid "MySQL administrator username" +#~ msgstr "MySQL-administratörens användarnamn" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Ange MySQL-administratörens namn (behövs för att skapa cacti-databasen)." + +#~ msgid "MySQL administrator password" +#~ msgstr "MySQL-administratörens lösenord" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "" +#~ "Ange \"none\" om det inte finns något lösenord för MySQL-administration." + +#~ msgid "Cacti database username" +#~ msgstr "Användarnamn för Cacti-databasen" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Vänligen ange namnet som ska användas för att ansluta till cacti-" +#~ "databasen." + +#~ msgid "Cacti user password" +#~ msgstr "Lösenord för Cacti-användaren" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Ange ett lösenord för databasanvändaren för Cacti (standard är \"cacti\")." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "Vill du rensa databasen när paketet rensas (avinstalleras)?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Acceptera här om du vill tömma databasen och dess respektive användare " +#~ "när paketet rensas." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Bekräfta MySQL-administratörens lösenord" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Vänligen bekräfta lösenordet för MySQL-administratören." + +#~ msgid "Error" +#~ msgstr "Fel" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "" +#~ "Lösenordet och dess bekräftelse stämde inte överens. Vänligen ange " +#~ "lösenordet igen!" --- cacti-0.8.7e.orig/debian/po/fr.po +++ cacti-0.8.7e/debian/po/fr.po @@ -0,0 +1,283 @@ +# translation of fr.po to French +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# Christian Perrier , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti 0.6.8a-13\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-03-07 08:06+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" +"Plural-Forms: Plural-Forms: nplurals=2; plural=n>1;\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Tous, Aucun" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Type de serveur web:" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Veuillez choisir le type de serveur web qu'utilisera Cacti." + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "" +"Choisissez Aucun si vous prfrez configurer vous-mme votre serveur web." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "" +#~ "Pas d'installations ou mises jour automatises pour les bases MySQL de " +#~ "Cacti" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ " l'heure actuelle, la gestion des mises jour automatises de la base " +#~ "de donnes MySQL de Cacti a t dsactive. Veuillez consulter les " +#~ "justifications de ce choix et les instructions d'installation ou de mise " +#~ " jour de Cacti dans le fichier /usr/share/doc/cacti/README.Debian.gz." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Veuillez noter que certaines informations vous seront malgr tout " +#~ "demandes parce qu'elles sont requises lors de la cration des fichiers " +#~ "de configuration." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "" +#~ "Changement de la structure de base de donnes dans la configuration de " +#~ "Cacti" + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Vous mettez actuellement Cacti niveau depuis une version antrieure " +#~ "0.8.x. Malheureusement, l'ancienne base de donnes ne fonctionnera pas " +#~ "avec la nouvelle version de Cacti. Veuillez consulter le fichier /usr/" +#~ "share/doc/cacti/README.Debian pour connatre les possibilits qui " +#~ "s'offrent vous." + +#~ msgid "MySQL server host name" +#~ msgstr "Serveur MySQL:" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "" +#~ "Veuillez indiquer le nom d'hte du serveur qui accueillera la base de " +#~ "donnes de Cacti." + +#~ msgid "Database name for cacti" +#~ msgstr "Nom de la base de donnes de Cacti:" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Veuillez indiquer le nom de la base de donnes o Cacti conservera ses " +#~ "informations." + +#~ msgid "MySQL administrator username" +#~ msgstr "Nom de l'administrateur de MySQL:" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Veuillez indiquer le nom de l'administrateur de MySQL. Il sera utilis " +#~ "pour la cration de la base de donnes de Cacti." + +#~ msgid "MySQL administrator password" +#~ msgstr "Mot de passe de l'administrateur de MySQL:" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "" +#~ "Indiquez none s'il n'y a pas de mot de passe pour l'administration de " +#~ "MySQL." + +#~ msgid "Cacti database username" +#~ msgstr "Utilisateur de la base de donnes de Cacti:" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Veuillez indiquer l'identifiant qui servira pour la connexion la base " +#~ "de donnes de Cacti." + +#~ msgid "Cacti user password" +#~ msgstr "Mot de passe de l'utilisateur Cacti:" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Veuillez donner un mot de passe pour l'utilisateur de la base de donnes " +#~ "de Cacti (la valeur par dfaut est cacti)." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "Faut-il supprimer la base de donnes la purge du paquet?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Choisissez cette option si vous souhaitez que la base de donnes et " +#~ "l'utilisateur associ soient supprims lorsque le paquet est entirement " +#~ "supprim (purge du paquet)." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Confirmation du mot de passe de l'administrateur de MySQL:" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Veuillez confirmer le mot de passe de l'administrateur de MySQL." + +#~ msgid "Error" +#~ msgstr "Erreur" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "" +#~ "Le mot de passe et sa confirmation sont diffrents. Veuillez indiquer " +#~ "nouveau le mot de passe." + +#~ msgid "Store the MySQL admin password" +#~ msgstr "Faut-il conserver le mot de passe de l'administrateur de MySQL?" + +#~ msgid "" +#~ "To update the cacti database automaticlly during a package upgrade the " +#~ "MySQL admin password must be safed in the debconf database. This is a " +#~ "security risk!!!" +#~ msgstr "" +#~ "Afin de permettre la mise jour automatique de la base de donnes de " +#~ "Cacti lors des mises niveau, le mot de passe de l'administrateur de " +#~ "MySQL doit tre conserv dans la base de donnes de debconf. Cela " +#~ "comporte un risque pour la scurit du systme." + +#~ msgid "" +#~ "If the password is not stored in the database it will asked everytime!" +#~ msgstr "" +#~ "Si le mot de passe n'est pas conserv dans la base de donnes, il vous " +#~ "sera demand chaque fois." + +#~ msgid "MySQL server not found" +#~ msgstr "Aucun serveur MySQL trouv" + +#~ msgid "" +#~ "You entered \"localhost\" as MySQL server but I can't find any server " +#~ "installed on localhost. Either install the mysql-server package or run " +#~ "\"dpkg-reconfigure cacti\" in order to change the MySQL server host." +#~ msgstr "" +#~ "Vous avez indiqu localhost pour le serveur de bases de donnes MySQL " +#~ "mais je n'ai pas trouv de serveur sur l'hte local. Vous pouvez " +#~ "installer le paquet mysql-server ou lancer dpkg-reconfigure cacti " +#~ "afin de modifier l'emplacement du serveur MySQL." + +#~ msgid "No MySQL server on localhost" +#~ msgstr "Pas de serveur MySQL sur l'hte local" + +#~ msgid "No MySQL server has been found on localhost." +#~ msgstr "Aucun serveur MySQL n'a t trouv sur l'hte local." + +#~ msgid "/var/cache/cacti/dumps" +#~ msgstr "/var/cache/cacti/dumps" + +#~ msgid "Where should the existing database be saved during an upgrade?" +#~ msgstr "" +#~ "Emplacement de sauvegarde de la base de donnes lors des mises jour:" + +#~ msgid "" +#~ "During a database upgrade, the existing database will first be copied to " +#~ "a separate directory location so that you are able to go back to the " +#~ "previous version of Cacti in case of upgrade problems." +#~ msgstr "" +#~ "Pendant les mises jour, la base de donnes existante sera pralablement " +#~ "copie dans un autre rpertoire afin de vous permettre de revenir la " +#~ "version prcdente de Cacti si des difficults de mise jour " +#~ "apparaissaient." + +#~ msgid "" +#~ "You must specify the pathname of a directory which will have the capacity " +#~ "to receive this dump file. The dump will be created in that directory as " +#~ "a file called cacti-${DATE}.dump." +#~ msgstr "" +#~ "Veuillez indiquer le rpertoire qui disposera de la place suffisante pour " +#~ "hberger le fichier d'export. Ce fichier (dump) sera cr dans ce " +#~ "rpertoire avec le nom cacti-${DATE}.dump." + +#~ msgid "Select the desired default poller." +#~ msgstr "Programme de rcupration (poller) par dfaut:" + +#~ msgid "" +#~ "A poller is a program that collect all datas for the cacti database and " +#~ "graphics." +#~ msgstr "" +#~ "Un programme de rcupration (poller) permet de rcuprer toutes les " +#~ "donnes destines la base de donnes de Cacti et aux graphiques." + +#~ msgid "" +#~ "Only on poller can collect informations, but multiple poller packages are " +#~ "installed. Please select which poller should run by default." +#~ msgstr "" +#~ "Un seul programme de rcupration peut rcuprer des informations, mais " +#~ "plusieurs tels programmes sont installs. Veuillez choisir celui qui sera " +#~ "utilis par dfaut." + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. You must backup your current " +#~ "cacti database, and replace it with the new database structure. Please " +#~ "read the available documentation and change your database accordingly." +#~ msgstr "" +#~ "Vous mettez niveau une version antrieure 0.8.x. Vous devez " +#~ "sauvegarder votre base de donnes actuelle puis la remplacer avec la " +#~ "nouvelle structure de base de donnes. Veuillez consulter la " +#~ "documentation disponible et modifier votre base de donnes." + +#~ msgid "" +#~ "Automatically converting your setup is unfortunately impossible. You will " +#~ "have to do it yourself." +#~ msgstr "" +#~ "Il est malheureusement impossible de convertir automatiquement votre " +#~ "configuration. Vous devrez le faire vous-mme." + +#~ msgid "" +#~ "Cacti will probably be unable to use the existing database and restart " +#~ "collecting your systems." +#~ msgstr "" +#~ "ll est galement possible que Cacti ne puisse pas utiliser la base de " +#~ "donnes actuelle et qu'il ne relance pas la collecte automatique de vos " +#~ "systmes." --- cacti-0.8.7e.orig/debian/po/pt_BR.po +++ cacti-0.8.7e/debian/po/pt_BR.po @@ -0,0 +1,269 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: cacti\n" +"Report-Msgid-Bugs-To: seanius@debian.org\n" +"POT-Creation-Date: 2007-10-09 20:13+0200\n" +"PO-Revision-Date: 2005-03-25 21:33-0300\n" +"Last-Translator: André Luís Lopes \n" +"Language-Team: Debian-BR Project\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../cacti.templates:1001 +msgid "Apache, Apache-SSL, Apache2, All, None" +msgstr "Apache, Apache-SSL, Apache2, Todos, Nenhum" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Webserver type" +msgstr "Tipo do servidor Web" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Which kind of web server should be used by cacti?" +msgstr "Que tipo de servidor Web deve ser utilizado pelo cacti ?" + +#. Type: select +#. Description +#: ../cacti.templates:1002 +msgid "Select \"None\" if you would like to configure your webserver by hand." +msgstr "" +"Selecione \"Nenhum\" caso você queira configurar seu servidor Web " +"manualmente." + +#~ msgid "MySQL installs and upgrades must be performed manually!" +#~ msgstr "A instalação e atualização do MySQL deve ser feita manualmente!" + +#~ msgid "" +#~ "For the time being, support for automatic upgrading of the cacti mysql " +#~ "database has been disabled. Please see the rationale and what you will " +#~ "need to do for either installing or upgrading cacti in /usr/share/doc/" +#~ "cacti/README.Debian.gz." +#~ msgstr "" +#~ "No momento o suporte para atualização automática da base de dados mysql " +#~ "do cacti está desabilitado. Por favor veja o motivo e o que você " +#~ "necessitará fazer para instalar ou atualizar o cacti em /usr/share/doc/" +#~ "cacti/README.Debian.gz." + +#~ msgid "" +#~ "Note that you will still be prompted for the relevant information, which " +#~ "will be used to generate the appropriate configuration files." +#~ msgstr "" +#~ "Note que você ainda será perguntado sobre informações relevantes, que " +#~ "serão usadas para gerar os arquivos de configuração corretamente." + +#~ msgid "Database structure changes in cacti configuration" +#~ msgstr "Mudanças na estrutura de base de dados na configuração do cacti" + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. Unfortunately, your old " +#~ "database will not work with the latest version of cacti. Please see /usr/" +#~ "share/doc/cacti/README.Debian.gz to see what your options are." +#~ msgstr "" +#~ "Você está atualizando a partir de uma versão pré 0.8.x. Infelizmente, sua " +#~ "base de dados antiga não funcionará com a última versão do cacti. Por " +#~ "favor veja /usr/share/doc/cacti/README.Debian.gz para ver quais são suas " +#~ "opções." + +#~ msgid "MySQL server host name" +#~ msgstr "Nome do host MySQL" + +#~ msgid "Please enter the name of the machine hosting the cacti database." +#~ msgstr "" +#~ "Por favor, informe o nome da máquina que hospeda o banco de dados do " +#~ "cacti." + +#~ msgid "Database name for cacti" +#~ msgstr "Nome do banco de dados para o cacti" + +#~ msgid "" +#~ "Please enter the cacti database name. Cacti will store and fetch data " +#~ "there." +#~ msgstr "" +#~ "Por favor, informe o nome da base de dados do cacti. O cacti irá gravar e " +#~ "ler os dados nessa base." + +#~ msgid "MySQL administrator username" +#~ msgstr "Nome do usuário administrador do MySQL" + +#~ msgid "" +#~ "Please enter the MySQL administrator name (needed for cacti database " +#~ "creation)." +#~ msgstr "" +#~ "Por favor, informe o nome do usuário administrador do MySQL (necessário " +#~ "para a criação da base de dados)." + +#~ msgid "MySQL administrator password" +#~ msgstr "Senha do administrador do MySQL" + +#~ msgid "Enter \"none\" if there is no password for MySQL administration." +#~ msgstr "" +#~ "Informe \"none\" caso não exista uma senha para administração do MySQL." + +#~ msgid "Cacti database username" +#~ msgstr "Nome do usuário da base de dados do cacti" + +#~ msgid "" +#~ "Please enter the name which will be used for connecting to the cacti " +#~ "database." +#~ msgstr "" +#~ "Por favor, informe o nome que será usado para conexão com a base de dados " +#~ "do cacti." + +#~ msgid "Cacti user password" +#~ msgstr "Senha do usuário cacti" + +#~ msgid "" +#~ "Please enter a password for the Cacti database user (default is \"cacti" +#~ "\")." +#~ msgstr "" +#~ "Por favor, informe uma senha para o usuário da base de dados do Cacti (a " +#~ "senha padrão é \"cacti\")." + +#~ msgid "Do you want to purge the database when purging the package?" +#~ msgstr "Você deseja remover a base de dados quando o pacote for removido ?" + +#~ msgid "" +#~ "Accept here if you want to drop the database and the corresponding user " +#~ "when purging the package." +#~ msgstr "" +#~ "Aceite esta opção caso você queira que a base de dados e o usuário " +#~ "correspondente sejam removidos quando o pacote for removido." + +#~ msgid "MySQL administrator password confirmation" +#~ msgstr "Confirmação da senha do administrador do MySQL" + +#~ msgid "Please confirm the password for the MySQL administrator." +#~ msgstr "Por favor, confirme a senha do administrador do MySQL." + +#~ msgid "Error" +#~ msgstr "Erro" + +#~ msgid "" +#~ "The password and its confirmation do not match. Please re-enter the " +#~ "password!" +#~ msgstr "As senhas não conferem. Por favor, informe a senha novamente !" + +#~ msgid "Store the MySQL admin password" +#~ msgstr "Gravar a senha do administrador do MySQL" + +#~ msgid "" +#~ "To update the cacti database automaticlly during a package upgrade the " +#~ "MySQL admin password must be safed in the debconf database. This is a " +#~ "security risk!!!" +#~ msgstr "" +#~ "Para atualizar a base de dados do cacti automaticamente durante a " +#~ "atualização do pacote, a senha do administrador do MySQL deve ser " +#~ "armazenada na base de dados do debconf. Isso é um risco de segurança !!!" + +#~ msgid "" +#~ "If the password is not stored in the database it will asked everytime!" +#~ msgstr "" +#~ "Caso a senha não seja armazenada na base de dados, a mesma será " +#~ "requisitada novamente a toda hora !" + +#~ msgid "MySQL server not found" +#~ msgstr "Servidor MySQL não encontrado" + +#~ msgid "" +#~ "You entered \"localhost\" as MySQL server but I can't find any server " +#~ "installed on localhost. Either install the mysql-server package or run " +#~ "\"dpkg-reconfigure cacti\" in order to change the MySQL server host." +#~ msgstr "" +#~ "Você informou \"localhost\" como servidor MySQL mas nenhum servidor foi " +#~ "encontrado instalado localmente. Instale o pacote mysql-server ou execute " +#~ "o comando \"dpkg-reconfigure cacti\" para modificar o host onde o MySQL " +#~ "se encontra." + +#~ msgid "No MySQL server on localhost" +#~ msgstr "Não existe um servidor MySQL na máquina local" + +#~ msgid "No MySQL server has been found on localhost." +#~ msgstr "Nenhum servidor MySQL foi encontrado na máquina local." + +#~ msgid "/var/cache/cacti/dumps" +#~ msgstr "/var/cache/cacti/dumps" + +#~ msgid "Where should the existing database be saved during an upgrade?" +#~ msgstr "" +#~ "Onde as base de dados existentes devem ser salvas durante uma " +#~ "atualização ?" + +#~ msgid "" +#~ "During a database upgrade, the existing database will first be copied to " +#~ "a separate directory location so that you are able to go back to the " +#~ "previous version of Cacti in case of upgrade problems." +#~ msgstr "" +#~ "Durante uma atualização de base de dados, a base de dados existente será " +#~ "primeiro copiada para um diretório separado de forma que você possa " +#~ "voltar a versão anterior do Cacti em caso de problemas durante a " +#~ "atualização." + +#~ msgid "" +#~ "You must specify the pathname of a directory which will have the capacity " +#~ "to receive this dump file. The dump will be created in that directory as " +#~ "a file called cacti-${DATE}.dump." +#~ msgstr "" +#~ "Você deve especificar o caminho do diretório que possui a capacidade de " +#~ "receber este arquivo de dump da base de dados. O dump será criado nesse " +#~ "diretório como um arquivo de nome cacti-${DATE}.dump." + +#~ msgid "Select the desired default poller." +#~ msgstr "Selecione o poller padrão desejado." + +#~ msgid "" +#~ "A poller is a program that collect all datas for the cacti database and " +#~ "graphics." +#~ msgstr "" +#~ "Um poller é um programa que coleta todos os dados para a base de dados do " +#~ "cacti e para os gráficos." + +#~ msgid "" +#~ "Only on poller can collect informations, but multiple poller packages are " +#~ "installed. Please select which poller should run by default." +#~ msgstr "" +#~ "Somente um poller pode coletar informações, mas diversos pacotes de " +#~ "pollers estão instalados. Por favor, selecione qual poller deverá ser " +#~ "executado por padrão." + +#~ msgid "" +#~ "You are upgrading from a pre 0.8.x version. You must backup your current " +#~ "cacti database, and replace it with the new database structure. Please " +#~ "read the available documentation and change your database accordingly." +#~ msgstr "" +#~ "Você está atualizando a partir de uma versão anterior à versão 0.8.x. " +#~ "Você deve fazer o backup de sua base de dados cacti atual e substituí-la " +#~ "pela nova estrutura de base de dados. Por favor, leia a documentação " +#~ "disponível e mude sua base de dados de acordo com a mesma." + +#~ msgid "" +#~ "Automatically converting your setup is unfortunately impossible. You will " +#~ "have to do it yourself." +#~ msgstr "" +#~ "Infelizmente, é impossível converter sua configuração automaticamente. " +#~ "Você deverá fazê-lo manualmente." + +#~ msgid "" +#~ "Cacti will probably be unable to use the existing database and restart " +#~ "collecting your systems." +#~ msgstr "" +#~ "O cacti não será capaz de utilizar a base de dados existente e reiniciar " +#~ "a coletagem de seus sistemas."