Bug 48682 - При использовании утилиты, уведомление: Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284
Summary: При использовании утилиты, уведомление: Use of uninitialized value $platform ...
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: inxi (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: ruslandh
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-04 22:00 MSK by Олег Щавелев
Modified: 2023-12-05 22:36 MSK (History)
4 users (show)

See Also:


Attachments
Вывод inxi --dbg 4 -g (15.52 KB, text/x-log)
2023-12-04 22:06 MSK, ruslandh
no flags Details
Список обновления (9.18 KB, text/plain)
2023-12-04 23:06 MSK, ruslandh
no flags Details
Патч проверюющий инициализацию переменной (1.34 KB, patch)
2023-12-05 19:38 MSK, ruslandh
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Олег Щавелев 2023-12-04 22:00:55 MSK
Стенды с ошибкой:
=================
* ALT Regular Sisyphus x86_64
* Kernel: 6.5.13-un-def-alt1 
* GNOME 45.0 
* AMD Ryzen 7 4800HS with Radeon Graphics (16) @ 4.300GHz 
* AMD ATI 04:00.0 Renoir 
* 1: 1920x1080~144Hz 2: 1280x720~60Hz

Версия программы:
=================
inxi-3.3.31.2-alt1.noarch

Шаги, приводящие к ошибке:
=================
В терминале ввести inxi -G от непривилегированного пользователя или пользователя root.

Результат:
==========
При выводе результата команды присутствуют следующие уведомления:
[oleg@alt-gnome ~]$ inxi -G
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16262.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284.

Ожидаемый результат:
====================
Отсутствуют уведомления следующего типа: Use of uninitialized value $platform in hash element...
Comment 1 ruslandh 2023-12-04 22:06:50 MSK
Created attachment 15148 [details]
Вывод inxi --dbg 4 -g

Подтверждяю, но если не считать мусор, то результат выдаётся верно

inxi -G
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16262.
....
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16262.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16264.
Graphics:
  Device-1: AMD Raphael driver: amdgpu v: kernel
  Device-2: Microdia Camera driver: snd-usb-audio,uvcvideo type: USB
  Display: x11 server: X.Org v: 1.21.1.9 with: Xwayland v: 23.2.2 driver: X:
    loaded: amdgpu unloaded: fbdev,modesetting,vesa dri: radeonsi gpu: amdgpu
    resolution: 1920x1200~60Hz
  API: EGL v: 1.5 drivers: kms_swrast,radeonsi,swrast
    platforms: x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 23.3.0 renderer: AMD
    Radeon Graphics (radeonsi raphael_mendocino LLVM 17.0.3 DRM 3.54
    6.5.13-un-def-alt1)
  API: Vulkan v: 1.3.268 drivers: amd surfaces: xcb,xlib
Comment 2 ruslandh 2023-12-04 22:09:20 MSK
Другие опции отрабатываются inxi без проблем,
Comment 3 ruslandh 2023-12-04 22:15:59 MSK
С картой nvidia тоже самое:

$ inxi -G
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16262.
....
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16284.
Use of uninitialized value $platform in hash element at /usr/bin/inxi line 16262.
Graphics:
  Device-1: NVIDIA GF119 [GeForce GT 610] driver: nvidia v: 390.157
  Display: x11 server: X.Org v: 1.21.1.9 with: Xwayland v: 23.2.2 driver: X:
    loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa gpu: nvidia
    resolution: 1920x1080~60Hz
  API: EGL v: 1.5 drivers: kms_swrast,swrast platforms: gbm
  API: OpenGL v: 4.5 compat-v: 4.6.0 vendor: nvidia mesa v: 390.157
    renderer: GeForce GT 610/PCIe/SSE2
  API: Vulkan v: 1.3.268 drivers: llvmpipe surfaces: xcb,xli

$ uname -r
6.1.64-std-def-alt1
Comment 4 ruslandh 2023-12-04 22:16:50 MSK
$ rpm -qa | grep inxi
inxi-3.3.31.2-alt1.noarch
Comment 5 ruslandh 2023-12-04 23:06:37 MSK
Created attachment 15149 [details]
Список обновления

Проверил, похоже проблема не в inxi , прикладываю список пакетов, после обновления которых возникла ошибка. 
Можно увидеть, что inxi в нём нет ;-(
Comment 6 Andrew Vasilyev 2023-12-04 23:09:41 MSK
glixinfo там есть? (пакет mesa-info)
Скорее всего, проблема в нём (нет в выводе строки platform).
Comment 7 ruslandh 2023-12-04 23:10:18 MSK
Но проблема похоже здесь -именно здесь определяется платформа системы:

"
sub set {
    eval $start if $b_log;
    set_commands();
    my ($action,$program,$message,@data);
    foreach my $test (keys %commands){
        ($action,$program) = ('use','');
        $message = main::message('tool-present');
        if ($commands{$test}->[1] && (
            ($commands{$test}->[1] eq 'linux' && $os ne 'linux') ||
            ($commands{$test}->[1] eq 'bsd' && $os eq 'linux'))){
            $action = 'platform';
        }
        elsif ($program = main::check_program($test)){
            # > 0 means error in shell
            # my $cmd = "$program $commands{$test} >/dev/null";
            # print "$cmd\n";
            $pci_tool = $test if $test =~ /pci/;
            # this test is not ideal because other errors can make program fail, but
            # we can't test for root since could be say, wheel permissions needed
            if ($commands{$test}->[0] eq 'exec-sys'){
                $action = 'permissions' if system("$program $commands{$test}->[2] >/dev/null 2>&1");
            }
            elsif ($commands{$test}->[0] eq 'exec-string'){
                @data = main::grabber("$program $commands{$test}->[2] 2>&1");
                # dmidecode errors are so specific it gets its own section
                # also sets custom dmidecode error messages
                if ($test eq 'dmidecode'){
                    $action = set_dmidecode(\@data) if scalar @data < 15;
                }
                elsif (grep { $_ =~ /$commands{$test}->[3]/i } @data){
                    $action = 'permissions';
                }
            }
        }
......
"
Comment 8 ruslandh 2023-12-04 23:12:19 MSK
(Ответ для Andrew Vasilyev на комментарий #6)
> glixinfo там есть? (пакет mesa-info)
> Скорее всего, проблема в нём (нет в выводе строки platform).

Нет, но есть libGLX-mesa-23.3.0-alt1
Comment 9 ruslandh 2023-12-05 19:38:26 MSK
Created attachment 15160 [details]
Патч проверюющий инициализацию переменной

Просто проверяет перед проверкой есть-ли у переменной $platform какое-либо значение.

В принципе ничего не ломает.
Если надо, могу приложить и полученный новый файл  inxi
Comment 10 Repository Robot 2023-12-05 22:36:21 MSK
inxi-3.3.31.2-alt1.1 -> sisyphus:

 Tue Dec 05 2023 Hihin Ruslan <ruslandh@altlinux.ru> 3.3.31.2-alt1.1
 - Add inxi-3.3.31.2-platform.patch (ALT bug #48682)