Package: cacti
Version: 1.1.31+ds1-1
Severity: normal
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch

Dear Maintainer,


In Ubuntu, the attached patch was applied to achieve the following:

  * debian/patches/php72_count_bc_changes.patch: PHP7.2 has deprecated
    count() of non-Countable objects.
  * debian/patches/update-cactisql.patch: Update cacti.sql for
    readstring to community change.

Note that even with this change, the DEP8 tests fail on Ubuntu 18.04,
with:

Unexpected output in /var/log/cacti/cacti.log:
02/02/2018 16:40:07 - AUTOM8 ERROR: The Network ID: 1 is disabled. You must use 
the 'force' option to force it's execution.

Which I think might be because we need to pass force to some URL or
check a network enabled box in the script?


Thanks for considering the patch.

*** /tmp/tmp6E1xYI/cacti_1.1.31+ds1-1ubuntu1.debdiff
diff -Nru cacti-1.1.31+ds1/debian/patches/php72_count_bc_changes.patch 
cacti-1.1.31+ds1/debian/patches/php72_count_bc_changes.patch
--- cacti-1.1.31+ds1/debian/patches/php72_count_bc_changes.patch        
1969-12-31 16:00:00.000000000 -0800
+++ cacti-1.1.31+ds1/debian/patches/php72_count_bc_changes.patch        
2018-02-02 08:21:41.000000000 -0800
@@ -0,0 +1,106 @@
+Description: PHP7.2 has deprecated count() of non-Countable objects
+Author: Nishanth Aravamudan <nish.aravamu...@canonical.com>
+Origin: upstream, 
https://github.com/Cacti/cacti/commit/202163bf7c8541f1b2827bdd62c584cc4d25124a.patch
+Bug: https://github.com/Cacti/cacti/issues/1040
+Last-Update: 2018-02-02
+
+--- cacti-1.1.31+ds1.orig/graphs_new.php
++++ cacti-1.1.31+ds1/graphs_new.php
+@@ -757,7 +757,7 @@ function graphs() {
+                               $num_input_fields = 0;
+                               $num_visible_fields = 0;
+ 
+-                              if ($xml_array != false) {
++                              if (sizeof($xml_array)) {
+                                       /* loop through once so we can find out 
how many input fields there are */
+                                       foreach ($xml_array['fields'] as 
$field_name => $field_array) {
+                                               if ($field_array['direction'] 
== 'input' || $field_array['direction'] == 'input-output') {
+--- cacti-1.1.31+ds1.orig/lib/api_automation.php
++++ cacti-1.1.31+ds1/lib/api_automation.php
+@@ -760,7 +760,7 @@ function display_new_graphs($rule, $url)
+        * for a dropdown selection
+        */
+       $xml_array = get_data_query_array($rule['snmp_query_id']);
+-      if ($xml_array != false) {
++      if (sizeof($xml_array)) {
+               /* loop through once so we can find out how many input fields 
there are */
+               foreach ($xml_array['fields'] as $field_name => $field_array) {
+                       if ($field_array['direction'] == 'input' || 
$field_array['direction'] == 'input-output') {
+@@ -1898,7 +1898,7 @@ function global_item_edit($rule_id, $rul
+               $xml_array = 
get_data_query_array($automation_rule['snmp_query_id']);
+               $fields = array();
+ 
+-              if (sizeof($xml_array['fields'])) {
++              if (sizeof($xml_array) && sizeof($xml_array['fields'])) {
+                       foreach($xml_array['fields'] as $key => $value) {
+                               # ... work on all input fields
+                               if (isset($value['direction']) && 
($value['direction'] == 'input' || $value['direction'] == 'input-output')) {
+--- cacti-1.1.31+ds1.orig/lib/data_query.php
++++ cacti-1.1.31+ds1/lib/data_query.php
+@@ -27,7 +27,7 @@ function run_data_query($host_id, $snmp_
+ 
+       /* required for upgrading old versions of cacti */
+       if (!db_column_exists('host', 'poller_id')) {
+-              return;
++              return false;
+       }
+ 
+       /* don't run/rerun the query if the host is down, or disabled */
+@@ -205,7 +205,7 @@ function get_data_query_array($snmp_quer
+ 
+               if (!file_exists($xml_file_path)) {
+                       query_debug_timer_offset('data_query', "Could not find 
data query XML file at '$xml_file_path'");
+-                      return false;
++                      return array();
+               }
+ 
+               query_debug_timer_offset('data_query', "Found data query XML 
file at '$xml_file_path'");
+@@ -1227,7 +1227,7 @@ function get_formatted_data_query_indexe
+       /* in case no unique index is available, fallback to first field in XML 
*/
+       if ($sort_cache['sort_field'] == ''){
+               $snmp_queries = get_data_query_array($data_query_id);
+-              if (isset($snmp_queries['index_order'])){
++              if (sizeof($snmp_queries) && 
isset($snmp_queries['index_order'])){
+                       $i = explode(':', $snmp_queries['index_order']);
+                       if (sizeof($i) > 0){
+                               $sort_cache['sort_field'] = array_shift($i);
+@@ -1385,7 +1385,7 @@ function update_data_query_sort_cache($h
+       }
+ 
+       /* substitute variables */
+-      if (isset($raw_xml['index_title_format'])) {
++      if (sizeof($raw_xml) && isset($raw_xml['index_title_format'])) {
+               $title_format = str_replace('|chosen_order_field|', 
"|query_$sort_field|", $raw_xml['index_title_format']);
+       } else {
+               $title_format = "|query_$sort_field|";
+--- cacti-1.1.31+ds1.orig/lib/functions.php
++++ cacti-1.1.31+ds1/lib/functions.php
+@@ -1691,7 +1691,7 @@ function get_graph_group($graph_template
+ 
+       /* a parent must NOT be the following graph item types */
+       if (preg_match('/(GPRINT|VRULE|HRULE|COMMENT)/', 
$graph_item_types[$graph_item['graph_type_id']])) {
+-              return;
++              return array();
+       }
+ 
+       $graph_item_children_array = array();
+--- cacti-1.1.31+ds1.orig/lib/utility.php
++++ cacti-1.1.31+ds1/lib/utility.php
+@@ -297,7 +297,7 @@ function update_poller_cache($data_sourc
+                                       $host_fields = $data_template_fields;
+                               }
+ 
+-                              if (sizeof($outputs)) {
++                              if (sizeof($outputs) && sizeof($snmp_queries)) {
+                                       foreach ($outputs as $output) {
+                                               if 
(isset($snmp_queries['fields'][$output['snmp_field_name']]['oid'])) {
+                                                       $oid = 
$snmp_queries['fields'][$output['snmp_field_name']]['oid'] . '.' . 
$data_source['snmp_index'];
+@@ -357,7 +357,7 @@ function update_poller_cache($data_sourc
+                                       $host_fields = $data_template_fields;
+                               }
+ 
+-                              if (sizeof($outputs)) {
++                              if (sizeof($outputs) && 
sizeof($script_queries)) {
+                                       foreach ($outputs as $output) {
+                                               if 
(isset($script_queries['fields'][$output['snmp_field_name']]['query_name'])) {
+                                                       $identifier = 
$script_queries['fields'][$output['snmp_field_name']]['query_name'];
diff -Nru cacti-1.1.31+ds1/debian/patches/series 
cacti-1.1.31+ds1/debian/patches/series
--- cacti-1.1.31+ds1/debian/patches/series      2018-01-05 11:28:12.000000000 
-0800
+++ cacti-1.1.31+ds1/debian/patches/series      2018-02-02 08:20:22.000000000 
-0800
@@ -2,3 +2,5 @@
 enable-system-jqueryui-by-putting-cacti-changes-in-main.css.patch
 updating-main.css-for-jquery-1.12.patch
 remove-global-mysql-command.patch
+update-cactisql.patch
+php72_count_bc_changes.patch
diff -Nru cacti-1.1.31+ds1/debian/patches/update-cactisql.patch 
cacti-1.1.31+ds1/debian/patches/update-cactisql.patch
--- cacti-1.1.31+ds1/debian/patches/update-cactisql.patch       1969-12-31 
16:00:00.000000000 -0800
+++ cacti-1.1.31+ds1/debian/patches/update-cactisql.patch       2018-01-31 
15:29:06.000000000 -0800
@@ -0,0 +1,17 @@
+Description: Update cacti.sql for readstring to community change
+Author: Nishanth Aravamudan <nish.aravamu...@canonical.com>
+Origin: upstream, 
https://github.com/Cacti/cacti/commit/5ba702f8d302413a581155ec8fe6636ff2674b19
+Forwarded: no
+Last-Update: 2018-01-31
+
+--- a/cacti.sql
++++ b/cacti.sql
+@@ -368,7 +368,7 @@
+   `snmp_id` int(10) unsigned NOT NULL DEFAULT '0',
+   `sequence` int(10) unsigned NOT NULL DEFAULT '0',
+   `snmp_version` varchar(100) NOT NULL DEFAULT '',
+-  `snmp_readstring` varchar(100) NOT NULL,
++  `snmp_community` varchar(100) NOT NULL,
+   `snmp_port` int(10) NOT NULL DEFAULT '161',
+   `snmp_timeout` int(10) unsigned NOT NULL DEFAULT '500',
+   `snmp_retries` tinyint(11) unsigned NOT NULL DEFAULT '3',


-- System Information:
Debian Release: buster/sid
  APT prefers bionic
  APT policy: (500, 'bionic')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.13.0-25-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

-- 
Nishanth Aravamudan
Ubuntu Server
Canonical Ltd

Reply via email to