Package: ocsinventory-reports
Version: 2.8.1+dfsg1+~2.11.1-1
Severity: important

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
ii  ocsinventory-reports              2.8.1+dfsg1+~2.11.1-1
ii  ocsinventory-server               2.8.1+dfsg1+~2.11.1-1

grep GUI_VER /usr/share/ocsinventory-reports/var.php
define('GUI_VER', '7069');
define('GUI_VER_SHOW', '2.11.1');

But perl libraries left in 2.8.1:
grep "Ocsinventory::VERSION" /usr/share/perl5/Apache/Ocsinventory.pm
$Apache::Ocsinventory::VERSION = '2.8.1';

In upstream sources (https://github.com/OCSInventory-NG/OCSInventory-ocsreports/releases/download/2.11.1/OCSNG_UNIX_SERVER-2.11.1.tar.gz) this libraries are the same versions as GUI: grep "Ocsinventory::VERSION" /tmp/OCSNG_UNIX_SERVER-2.11.1/Apache/Ocsinventory.pm
$Apache::Ocsinventory::VERSION = '2.11.1';

After upgrade from bullseye to bookworm, ocsinventory-reports upgrades database:
Existing database updated
Current version:7039=>Expected version:7069

This causes many errors during updates by agents and during inventory with:
/ocsreports/index.php?function=admin_dico; function=soft_cat; and probably more.

For example CATEGORY field was migrated in 7045:
grep -a1 "DROP CATEGORY" /usr/share/ocsinventory-reports/files/update/7045.sql
-- DROP CATEGORY column from software_name
ALTER TABLE `software_name` DROP COLUMN `CATEGORY

But old (2.8.1) function uses it:
grep software_name /usr/share/perl5/Apache/Ocsinventory/Server/Inventory/Software.pm
  _insert_software_name
sub _insert_software_name {
    $sql = "SELECT ID, CATEGORY FROM software_name WHERE NAME = ?";
            $sql = "INSERT INTO software_name (NAME) VALUES(?)";
            $sql = "INSERT INTO software_name (NAME,CATEGORY) VALUES(?,?)";
        $sql = "SELECT ID FROM software_name WHERE NAME = ?";
my $sqlUpdate = "UPDATE software_name SET CATEGORY = ? WHERE ID = ?"; $arrayValue{NAME_ID} = _insert_software_name($name, $software->{CATEGORY});

Upstream sources are completely rewritten:
grep software_name /tmp/OCSNG_UNIX_SERVER-2.11.1/Apache/Ocsinventory/Server/Inventory/Software.pm $arrayValue{NAME_ID} = _get_info_software($name, "software_name", "NAME");

This makes the 2.8.1+dfsg1+~2.11.1-1 package useless and I am not sure if after the activity of the agents the database was not disintegrated and does not need to be restored from the backup.

--
Pozdrawiam Krzysztof Jastrzębski <><
krzysztof[at]jastrzebscy[dot]pl http://www.jastrzebscy.pl/

Reply via email to