Bug#1041489: ocsinventory-reports: version inconsistency between GUI and perl libraries

Krzysztof Jastrzębski hawkjast at gmail.com
Wed Jul 19 17:27:10 BST 2023


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/



More information about the pkg-perl-maintainers mailing list