Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cacti for openSUSE:Factory checked in at 2026-08-05 17:49:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cacti (Old) and /work/SRC/openSUSE:Factory/.cacti.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cacti" Wed Aug 5 17:49:26 2026 rev:60 rq:1369586 version:1.2.31+git14.396480d3 Changes: -------- --- /work/SRC/openSUSE:Factory/cacti/cacti.changes 2026-07-09 22:22:35.712712969 +0200 +++ /work/SRC/openSUSE:Factory/.cacti.new.16738/cacti.changes 2026-08-05 17:50:20.213926262 +0200 @@ -1,0 +2,30 @@ +Tue Jul 28 20:27:15 UTC 2026 - Joel Baltazor <[email protected]> + +- Update to version 1.2.31+git14.396480d3: + * fix: memoize db_get_table_column_types to cut redundant SHOW COLUMNS (1.2.x backport) (#7382) + * fix: #7245 raise execution time limit for bulk graph creation (#7378) + * FEAT:Allow admin to pass csv of hosts and changes for bulk edits (#7387) + * feature: Allow users to hide Graph Templates sub-branch on Site Trees (#7365) + * fix: Align update with the develop branch (#7361) + * fix: #7359 Undefined variables with legacy plugins (#7360) + * fix: explain missing special type for host fields (#7321) + * fix: allow configured external script root in script server (#7320) + * Fix aggregate totalling legend showing untotalled values (#7267) +- Refined changes from olh <[email protected]> +- cacti >= 1.2.31 requires PHP > =8.1 + +------------------------------------------------------------------- +Wed Jul 22 22:22:22 UTC 2026 - [email protected] + +- Remove recompression and compressed archive, the cpio is enough +- Remove stale suse_version blocks, drop non-SUSE blocks +- Remove stale cron files cacti.cron +- Remove stale service handling from post install +- Remove stale cacti-httpd.conf +- Remove stale doc subpackage +- Adjust requires to apache2 and mariadb +- Adjust wording in description +- Provide guidance for fresh deployment via cacti.txt +- Simplify file list + +------------------------------------------------------------------- Old: ---- cacti-1.2.31+git5.48d9fdd3.obscpio cacti-1.2.31+git5.48d9fdd3.tar.gz cacti-httpd.conf cacti.cron New: ---- cacti-1.2.31+git14.396480d3.obscpio cacti.txt ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cacti.spec ++++++ --- /var/tmp/diff_new_pack.IYtdI7/_old 2026-08-05 17:50:21.633976087 +0200 +++ /var/tmp/diff_new_pack.IYtdI7/_new 2026-08-05 17:50:21.633976087 +0200 @@ -1,7 +1,7 @@ # # spec file for package cacti # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # Copyright (c) 2024 Andreas Stieger <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -17,22 +17,11 @@ # -%{!?make_build: %define make_build make %{?_smp_mflags}} -#%if 0%{?suse_version} <= 1210 -#%define cacti_dir %{_datadir}/cacti -#%else -#%define cacti_dir %{apache_datadir}/cacti -#%endif %define datadir /srv/www %define cacti_dir %{datadir}/cacti -%if 0%{?suse_version} >= 01230 -%bcond_without systemd -%else -%bcond_with systemd -%endif Name: cacti -Version: 1.2.31+git5.48d9fdd3 +Version: 1.2.31+git14.396480d3 %global base_version %(echo %{version} | sed 's/+[^+]*//') %global next_base_version %(echo %{base_version} | awk -F. -v OFS=. '{$NF++; print}') Release: 0 @@ -40,20 +29,22 @@ License: GPL-2.0-or-later Group: System/Monitoring URL: https://www.cacti.net/ -Source0: https://www.cacti.net/downloads/%{name}-%{version}.tar.gz -Source1: %{name}.cron -Source2: %{name}-httpd.conf +Source0: %{name}-%{version}.tar +Source1: %{name}.txt Source3: %{name}.logrotate Source4: %{name}-httpd.conf.default -#Source5: %{name}-cron.service -#Source6: %{name}-cron.timer Source10: cacti-rpmlintrc # PATCH-FIX-UPSTREAM cacti-config.patch Patch0: %{name}-config-dist.patch Patch1: cactid_service.patch BuildRequires: apache-rpm-macros -Requires: httpd +BuildRequires: apache2-devel +BuildRequires: fdupes +BuildRequires: systemd-rpm-macros +Requires: apache2 Requires: logrotate +Requires: mariadb +Requires: mod_php_any >= 8.1 Requires: net-snmp Requires: php-ctype Requires: php-gd @@ -62,85 +53,54 @@ Requires: php-json Requires: php-ldap Requires: php-mbstring +Requires: php-mysql >= 8.1 Requires: php-openssl Requires: php-posix -Requires: php-snmp >= 7.0 +Requires: php-snmp >= 8.1 +Requires: php-sockets >= 8.1 Requires: php-zlib Requires: rrdtool Recommends: php-gettext Recommends: php-pcntl -Recommends: mysql-tools +Recommends: mariadb-tools Conflicts: cacti-spine < %{base_version} Conflicts: cacti-spine >= %{next_base_version} Provides: cacti-system = %{base_version}-%{release} Obsoletes: cacti-PA < %{base_version}-%{release} Provides: cacti-PA = %{base_version}-%{release} BuildArch: noarch -%if 0%{?suse_version} -BuildRequires: apache2-devel -%else -BuildRequires: httpd-devel -%endif -%if 0%{?suse_version} -BuildRequires: fdupes -Requires: mod_php_any >= 7.0 -Requires: php-sockets >= 7.0 -%if %{with systemd} -BuildRequires: pkgconfig(systemd) %{?systemd_requires} -%else -BuildRequires: cron -Requires: cron -%endif -%endif -%if 0%{?fedora_version} -Requires: php-mysqlnd >= 7.0 -%else -Requires: php-mysql >= 7.0 -%endif %description Cacti is a complete front-end to RRDtool: it stores all necessary information for creating graphs and populates them with data from a MySQL database. The front-end is completely PHP driven. Along with -being ableto maintain graphs, data sources, and round robin archives -ina database, Cacti also handles data gathering. There exists an SNMP +being able to maintain graphs, data sources, and round robin archives +in a database, Cacti also handles data gathering. There exists an SNMP support for those accustomed to creating traffic graphs with MRTG as well. -%package doc -Summary: Documentation for Cacti -Group: System/Monitoring -Requires: %{name} = %{base_version} - -%description doc -Cacti is a complete front-end to RRDtool: it stores all necessary -information for creating graphs and populates them with data from a -MySQL database. The front-end is completely PHP driven. Along with -being ableto maintain graphs, data sources, and round robin archives -ina database, Cacti also handles data gathering. There exists an SNMP -support for those accustomed to creating traffic graphs with MRTG as -well. - -This package contains the HTML documentation for Cacti. - %prep %autosetup -p1 +%build +cat %{SOURCE1} > quickstart.txt # rename patched config file mv include/config.php.dist include/config.php #delete some files -find . -type f -name "*\.orig" -exec rm {} \; +find . -type f -name "*\.orig" -delete find . -type f -name .gitignore -delete find . -type f -name .gitattributes -delete find . -type f -name .htaccess -delete +find locales -type f -name "*.sh" -delete # fix env interpreter lines -sed -i 's|%{_bindir}/env perl|%{_bindir}/perl|g' scripts/*.pl +sed -i 's|%{_bindir}/env perl|%{_bindir}/perl|g' $(find * -name "*.pl") sed -i 's|%{_bindir}/env php|%{_bindir}/php|g' include/vendor/cldr-to-gettext-plural-rules/bin/export-plural-rules +sed -i 's|%{_bindir}/env bash|%{_bindir}/bash|g' $(find * -name "*.sh") +sed -i 's|/usr/local/spine/bin/spine|%{_bindir}/spine|' install/functions.php -%build #nothing to build %install @@ -169,62 +129,57 @@ install -m 0755 cli/* %{buildroot}%{cacti_dir}/cli install -m 0644 *.sql %{buildroot}%{cacti_dir} -%if %{with systemd} sed -i \ -e "s;__CACTIDIR__;%{cacti_dir};g" \ -e "s;__APACHEUSER__;%{apache_user};g" \ -e "s;__APACHEGROUP__;%{apache_group};g" \ service/cactid.service install -Dm644 service/cactid.service %{buildroot}%{_unitdir}/cactid.service -%else -# cron task -install -d -m 0755 %{buildroot}%{_sysconfdir}/cron.d -sed -e "s;__CACTIDIR__;%{cacti_dir};g" -e "s;__APACHEUSER__;%{apache_user};g" \ - %{SOURCE1} > %{buildroot}%{_sysconfdir}/cron.d/%{name} -%endif # apache2 config -%if 0%{?suse_version} -%if 0%{?suse_version} > 1210 install -d -m 0755 %{buildroot}%{apache_sysconfdir}/conf.d sed -e "s;__CACTIDIR__;%{cacti_dir};g" %{SOURCE4} > %{buildroot}%{apache_sysconfdir}/conf.d/%{name}.conf install -d -m 0755 %{buildroot}%{apache_sysconfdir}/vhosts.d/conf.d sed -e "s;__CACTIDIR__;%{cacti_dir};g" -e "s;<IfDefine CACTI>;<IfDefine CACTIVHOST>;g" \ %{SOURCE4} > %{buildroot}%{apache_sysconfdir}/vhosts.d/conf.d/%{name}.conf -%endif -%if 0%{?suse_version} <= 1210 -install -d -m 0755 %{buildroot}%{apache_sysconfdir}/conf.d -sed -e "s;__CACTIDIR__;%{cacti_dir};g" %{SOURCE2} > %{buildroot}%{apache_sysconfdir}/conf.d/%{name}.conf -%endif -%else -install -d -m 0755 %{buildroot}%{apache_sysconfdir}/../conf.d -sed -e "s;__CACTIDIR__;%{cacti_dir};g" %{SOURCE2} > %{buildroot}%{apache_sysconfdir}/../conf.d/%{name}.conf -%endif # logrotate config mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/ sed -e "s;__APACHEUSER__;%{apache_user};g" -e "s;__APACHEGROUP__;%{apache_group};g" \ %{SOURCE3} > %{buildroot}%{_sysconfdir}/logrotate.d/%{name} +ln -sfr %{buildroot}%{_localstatedir}/log/%{name} %{buildroot}%{cacti_dir}/log + # Set the correct permissions for pl and sh files #find %%{buildroot}%%{cacti_dir} -type f -name "*.sh" -o -name "*.pl" -exec chmod ugo+x {} \; -# compute files list without config file -find %{buildroot}%{cacti_dir} -type d | sed -e 's|'%{buildroot}'|%dir |' >> %{name}.list -find %{buildroot}%{cacti_dir} -type f ! -name config.php | sed -e 's|'%{buildroot}'||' >> %{name}.list -ln -sf %{_localstatedir}/log/%{name} %{buildroot}%{cacti_dir}/log +# Make a list of directories, files, and permissions to set. any remaining are owned by root:root +( +find %{buildroot}%{cacti_dir} -type d|sed -e ' +s|%{buildroot}%{cacti_dir}/cache/boost|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/cache/boost| +s|%{buildroot}%{cacti_dir}/cache/mibcache|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/cache/mibcache| +s|%{buildroot}%{cacti_dir}/cache/realtime|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/cache/realtime| +s|%{buildroot}%{cacti_dir}/cache/spikekill|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/cache/spikekill| +s|%{buildroot}%{cacti_dir}/include/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/include/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer| +s|%{buildroot}%{cacti_dir}/resource/snmp_queries|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/resource/snmp_queries| +s|%{buildroot}%{cacti_dir}/resource/script_server|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/resource/script_server| +s|%{buildroot}%{cacti_dir}/resource/script_queries|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/resource/script_queries| +s|%{buildroot}%{cacti_dir}/rra|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/rra| +s|%{buildroot}%{cacti_dir}/scripts|%%dir %%attr(00755,%{apache_user},%{apache_group}) %{cacti_dir}/scripts| +s|%{buildroot}|%%dir %%attr(-,root,root) | +' +find %{buildroot}%{cacti_dir} -type f|sed -e ' +s|%{buildroot}%{cacti_dir}/include/config.php|| +s|%{buildroot}%{cacti_dir}/include/vendor/csrf/csrf-secret.php|| +s|%{buildroot}%{cacti_dir}/scripts/\(.*\)\.pl|%%attr(0755,root,root) %{cacti_dir}/scripts/\1.pl| +s|%{buildroot}%{cacti_dir}/scripts/\(.*\)\.sh|%%attr(0755,root,root) %{cacti_dir}/scripts/\1.sh| +s|%{buildroot}|%%attr(-,root,root) | +' +)|sort -u|tee %{name}.list -%if 0%{?suse_version} %fdupes %{buildroot} -%endif -%if %{with systemd} %post %service_add_post cactid.service -#attempt to remove old way & exit with 0 status if fails -systemctl --quiet stop %{name}-cron.timer || : -systemctl --quiet disable %{name}-cron.timer || : -systemctl --quiet stop %{name}-cron.service || : -systemctl --quiet disable %{name}-cron.service || : %pre %service_add_pre cactid.service @@ -239,49 +194,23 @@ %postun %service_del_postun cactid.service -%endif %files -f %{name}.list %dir %{datadir} %dir %{cacti_dir} %license LICENSE %doc README.md +%doc quickstart.txt %attr(-,%{apache_user},%{apache_group}) %dir %{_localstatedir}/lib/%{name} %attr(-,%{apache_user},%{apache_group}) %dir %{_localstatedir}/log/%{name} -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/rra +%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/include/vendor/csrf/csrf-secret.php %attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/log - -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/resource/snmp_queries -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/resource/script_server -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/resource/script_queries -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/scripts -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/cache/boost -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/cache/mibcache -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/cache/realtime -%attr(-,%{apache_user},%{apache_group}) %{cacti_dir}/cache/spikekill - +%{cacti_dir}/log %config(noreplace) %{cacti_dir}/include/config.php -%if %{with systemd} -#%{_unitdir}/%{name}-cron.service -#%{_unitdir}/%{name}-cron.timer %{_unitdir}/cactid.service -%else -%config(noreplace) %{_sysconfdir}/cron.d/%{name} -%endif %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%if 0%{?suse_version} -%if 0%{?suse_version} <= 1210 -%dir %{apache_sysconfdir}/conf.d -%config(noreplace) %{apache_sysconfdir}/conf.d/%{name}.conf -%endif -%if 0%{?suse_version} > 1210 %dir %{apache_sysconfdir}/conf.d %config(noreplace) %{apache_sysconfdir}/conf.d/%{name}.conf %dir %{apache_sysconfdir}/vhosts.d/conf.d %config(noreplace) %{apache_sysconfdir}/vhosts.d/conf.d/%{name}.conf -%endif -%else -%dir %{apache_sysconfdir}/../conf.d -%config(noreplace) %{apache_sysconfdir}/../conf.d/%{name}.conf -%endif ++++++ _service ++++++ --- /var/tmp/diff_new_pack.IYtdI7/_old 2026-08-05 17:50:21.673977491 +0200 +++ /var/tmp/diff_new_pack.IYtdI7/_new 2026-08-05 17:50:21.681977772 +0200 @@ -18,10 +18,6 @@ </service> <service mode="buildtime" name="tar" /> - <service mode="buildtime" name="recompress"> - <param name="file">*.tar</param> - <param name="compression">gz</param> - </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.IYtdI7/_old 2026-08-05 17:50:21.709978755 +0200 +++ /var/tmp/diff_new_pack.IYtdI7/_new 2026-08-05 17:50:21.713978895 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/Cacti/cacti.git</param> - <param name="changesrevision">48d9fdd3ea7a6b310b0814d23baaf6a09c0798d1</param></service></servicedata> + <param name="changesrevision">396480d3fc2027c68ffe872bf5e3356cf34eefd6</param></service></servicedata> (No newline at EOF) ++++++ cacti-1.2.31+git5.48d9fdd3.obscpio -> cacti-1.2.31+git14.396480d3.obscpio ++++++ ++++ 2051 lines of diff (skipped) ++++++ cacti.obsinfo ++++++ --- /var/tmp/diff_new_pack.IYtdI7/_old 2026-08-05 17:50:27.738190268 +0200 +++ /var/tmp/diff_new_pack.IYtdI7/_new 2026-08-05 17:50:27.746190549 +0200 @@ -1,5 +1,5 @@ name: cacti -version: 1.2.31+git5.48d9fdd3 -mtime: 1783342020 -commit: 48d9fdd3ea7a6b310b0814d23baaf6a09c0798d1 +version: 1.2.31+git14.396480d3 +mtime: 1784942578 +commit: 396480d3fc2027c68ffe872bf5e3356cf34eefd6 ++++++ cacti.txt ++++++ Deploy cacti on a fresh SUSE host * Disable SELinux Edit /etc/default/grub and change selinux=1 to selinux=0 (or set selinux=0 at the end) # grub2-mkconfig -o /boot/grub2/grub.cfg OR grub2-mkconfig -o /boot/efi/EFI/opensuse/grub.cfg # systemctl reboot # Alternately set SELINUX=permissive in /etc/selinux/config & reboot * Install cacti-spine to use it instead of cmd.php poller # zypper in cacti-spine * For updated recommendations see https://docs.cacti.net/Requirements.md * Prepare MariaDB Edit /etc/my.cnf [mysqld] innodb_doublewrite = OFF #could cause data loss in power failure, is faster. use with caution. collation_server = utf8mb4_unicode_520_ci character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci max_connection = 100 #total_connections = total_processes * (total_threads + script_servers + 1) Set a database password in the first invocation of 'mariadb', prepare a cacti database. # systemctl enable --now mariadb.socket # mariadb -u root -p < /usr/share/doc/packages/cacti/create-cacti-db.sql # mariadb -u root -p > CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ; > CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'MAKE-A-PASSWORD-HERE'; > GRANT ALL ON cacti.* TO 'cactiuser'@'localhost'; > GRANT SELECT ON mysql.time_zone_name TO 'cactiuser'@'localhost'; > FLUSH PRIVILEGES; > EXIT; # mariadb -u root cacti < /srv/www/cacti/cacti.sql # mariadb-tzinfo-to-sql /usr/share/zoneinfo/ | mysql -u root -p mysql * Prepare PHP # NOTE: memory_limit recommendations: # Small (<500 Cacti Datasources) 400M-512M # Medium (1000+ Data Sources) 1024M # Enterprise 2048M to 4096M # memory_limit = Total Data Sources X 32KB Edit /etc/php8/apache2/php.ini memory_limit = 512M max_execution_time = 66 # Set to 60-300 seconds Edit /etc/php8/cli/php.ini memory_limit = 512M * Prepare Apache HTTP Server Edit /etc/apache2/conf.d/cacti.conf and /etc/apache2/vhosts.d/conf.d/cacti.conf Change all 'Require all denied' to 'Require all granted', unless you access this cacti instance from localhost. Enable cacti and start apache2 # a2enflag CACTI # systemctl enable --now apache2 * Prepare cacti Edit /srv/www/cacti/include/config.php, review the database_* settings at the beginning of the file. The provided defaults will likely work - set password from 'Prepare MariaDB' step If using cacti-spine also rename /etc/spine.conf.dist to /etc/spine.conf and update database password. Enable and start cacti # systemctl enable --now cactid * Configure cacti Open http://FQDN/cacti Log in as admin/admin. Change admin password. Log in as admin with new password. Follow installation instructions. Review output in Pre-installation Checks, fix any reported errors, reload check with reload button. Install at minimum the Generic_SNMP_Device template. (for more templates see https://forums.cacti.net/viewforum.php?f=12 ) Proceed and finish installation. Suggested changes: - Make graph templates larger: Configuration/Settings/General: Graph Template Defaults like 300x900 - If using Spine for poller: Configuration/Settings/Poller:: Poller Type spine, instead of cmd.php ++++++ cactid_service.patch ++++++ --- /var/tmp/diff_new_pack.IYtdI7/_old 2026-08-05 17:50:27.822193216 +0200 +++ /var/tmp/diff_new_pack.IYtdI7/_new 2026-08-05 17:50:27.842193918 +0200 @@ -1,6 +1,6 @@ --- cacti-1.2.28/service/cactid.service.org 2024-10-06 17:38:13.000000000 -0500 +++ cacti-1.2.28/service/cactid.service 2024-10-09 14:37:35.163614889 -0500 -@@ -25,10 +25,10 @@ After=network.target +@@ -25,10 +25,9 @@ After=network.target [Service] Type=forking @@ -10,7 +10,6 @@ -ExecStart=/var/www/html/cacti/cactid.php +User=__APACHEUSER__ +Group=__APACHEGROUP__ -+#EnvironmentFile=/etc/sysconfig/cactid +ExecStart=__CACTIDIR__/cactid.php Restart=always RestartSec=5s
