Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package inxi for openSUSE:Factory checked in at 2024-06-20 16:47:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/inxi (Old) and /work/SRC/openSUSE:Factory/.inxi.new.18349 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "inxi" Thu Jun 20 16:47:33 2024 rev:31 rq:1181770 version:3.3.35 Changes: -------- --- /work/SRC/openSUSE:Factory/inxi/inxi.changes 2024-04-16 20:07:48.405189511 +0200 +++ /work/SRC/openSUSE:Factory/.inxi.new.18349/inxi.changes 2024-06-20 16:47:56.487195131 +0200 @@ -1,0 +2,7 @@ +Wed Jun 19 02:11:30 UTC 2024 - malcolmle...@opensuse.org + +- Update to version 3.3.35: + * Added more Wayland wm/de updates: wm, tools, lockers, etc. + * Readme edit. + +------------------------------------------------------------------- Old: ---- inxi-3.3.34-1.obscpio New: ---- inxi-3.3.35-1.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ inxi.spec ++++++ --- /var/tmp/diff_new_pack.6ISOJ3/_old 2024-06-20 16:47:58.719273637 +0200 +++ /var/tmp/diff_new_pack.6ISOJ3/_new 2024-06-20 16:47:58.731274059 +0200 @@ -17,9 +17,9 @@ # -%define _version 3.3.34-1 +%define _version 3.3.35-1 Name: inxi -Version: 3.3.34 +Version: 3.3.35 Release: 0 Summary: A system information script License: GPL-3.0-or-later ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.6ISOJ3/_old 2024-06-20 16:47:59.047285174 +0200 +++ /var/tmp/diff_new_pack.6ISOJ3/_new 2024-06-20 16:47:59.083286440 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://codeberg.org/smxi/inxi.git</param> - <param name="changesrevision">c23f35b885563af2ba4bc831f89eab2bfff9a949</param></service></servicedata> + <param name="changesrevision">d11fce80412dbfd0613dabba1840b645bb8b2f94</param></service></servicedata> (No newline at EOF) ++++++ inxi-3.3.34-1.obscpio -> inxi-3.3.35-1.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inxi-3.3.34-1/README.txt new/inxi-3.3.35-1/README.txt --- old/inxi-3.3.34-1/README.txt 2024-04-14 04:49:33.000000000 +0200 +++ new/inxi-3.3.35-1/README.txt 2024-06-18 23:00:07.000000000 +0200 @@ -10,7 +10,7 @@ Make sure to update to the current inxi from the master branch before filing any issue reports. Bugs from earlier versions cannot usually be solved in the new -version since too much changes intnernally release to release. +version since too much changes internally release to release. -------------------------------------------------------------------------------- CODEBERG SOURCE REPO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inxi-3.3.34-1/inxi new/inxi-3.3.35-1/inxi --- old/inxi-3.3.34-1/inxi 2024-04-14 04:49:33.000000000 +0200 +++ new/inxi-3.3.35-1/inxi 2024-06-18 23:00:07.000000000 +0200 @@ -49,8 +49,8 @@ ## INXI INFO ## my $self_name='inxi'; -my $self_version='3.3.34'; -my $self_date='2024-04-13'; +my $self_version='3.3.35'; +my $self_date='2024-06-18'; my $self_patch='00'; ## END INXI INFO ## @@ -566,9 +566,9 @@ # Extra path variable to make execute failures less likely, merged below my (@path); # NOTE: recent Xorg's show error if you try /usr/bin/Xorg -version but work - # if you use the /usr/lib/xorg-server/Xorg path. + # if you use the /usr/lib/xorg-server/Xorg path. Some distros fail to add TDE my @test = qw(/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin - /usr/X11R6/bin); + /usr/X11R6/bin /opt/trinity/bin); foreach (@test){ push(@paths,$_) if -d $_; } @@ -1995,11 +1995,13 @@ ['kded5','--version'], ['kded6','--version'], ['kded7','--version'], + ['kdesktop','--version'],# TDE ['kf-config','--version'], ['kf4-config','--version'], ['kf5-config','--version'], ['kf6-config','--version'], ['kf7-config','--version'], + ['kwin_wayland','--version'], ['kwin_x11','--version'], # ['locate','/Xorg'], # for Xorg.wrap problem ['loginctl','--no-pager list-sessions'], @@ -2016,6 +2018,7 @@ ['swaymsg','-t get_tree'], ['swaymsg','-t get_workspaces -p'], ['swaymsg','-t get_workspaces -r'], + ['twin','--version'], # TDE ['vainfo',''], ['vdpauinfo',''], ['vulkaninfo',''], @@ -5480,8 +5483,8 @@ mounted ${partition_string}s."], ['1', '-r', '--repos', "Distro repository data. Supported repo types: APK, APT, CARDS, EOPKG, NETPKG, NIX, PACMAN, PACMAN-G2, PISI, PKG (BSDs), PORTAGE, - PORTS (BSDs), SBOPKG, SBOUI, SCRATCHPKG, SLACKPKG, SLAPT_GET, SLPKG, TCE, - TAZPKG, URPMQ, XBPS, YUM/ZYPP."], + PORTS (BSDs), SBOPKG, SBOUI, SCRATCHPKG, SLACKPKG, SLAPT_GET, SLPKG, + T2-EMERGE, TCE, TAZPKG, URPM, XBPS, YUM/ZYPP."], ['1', '-R', '--raid', "RAID data. Shows RAID devices, states, levels, array sizes, and components. md-raid: If device is resyncing, also shows resync progress line."], @@ -5876,8 +5879,8 @@ ['1', '', '--no-sudo', "Skip internal program use of sudo features (not related to starting $self_name with sudo)."], ['1', '', '--rpm', "Force use of disabled package manager counts for packages - feature with -rx/-Ix. RPM disabled by default due to slow to massive rpm - package query times."], + feature with -rx/-Ix. RPM disabled by default due to unacceptably slow rpm + package count query times."], ['1', '', '--sensors-default', "Removes configuration item SENSORS_USE and SENSORS_EXCLUDE. Same as default behavior."], ['1', '', '--sensors-exclude', "[sensor[s] name, comma separated] Exclude @@ -6381,16 +6384,17 @@ return $item; } +# This is used only in distro name strings. +# arg: 0: name string to clean by reference sub clean_characters { - my ($data) = @_; # newline, pipe, brackets, + sign, with space, then clear doubled # spaces and then strip out trailing/leading spaces. - # etc/issue often has junk stuff like (\l) \n \l - return if !$data; - $data =~ s/[:\47]|\\[a-z]|\n|,|\"|\*|\||\+|\[\s\]|n\/a|\s\s+/ /g; - $data =~ s/\(\s*\)//; - $data =~ s/^\s+|\s+$//g; - return $data; + # etc/issue often has junk stuff like (\l) \n \l. Removed + because can be + # part of distro name, like Slackware 15.0+ + return if !${$_[0]}; # should not be needed since tests for not empty on use + ${$_[0]} =~ s/[:\47]|\\[a-z]|\n|,|\"|\*|\||\[\s\]|n\/a|\s\s+/ /g; + ${$_[0]} =~ s/\(\s*\)//; + ${$_[0]} =~ s/^\s+|\s+$//g; } sub clean_disk { @@ -6701,6 +6705,7 @@ 'pci-card-data-root' => 'PCI device data requires root.', 'pci-slot-data' => 'No PCI Slot data found.', 'pm-disabled' => "see --$id", + 'pm-no-repos' => "[$id list repo query]", 'ps-data-null' => 'No process data available.', 'raid-data' => 'No RAID data found.', 'ram-data' => "No RAM data found using $id.", @@ -9522,6 +9527,9 @@ # print "p0:\n"; } } + elsif ($cpu->{'model_name'} =~ /loongson|godson/i){ + $cpu->{'type'} = 'loongson'; + } elsif ($risc{'mips'} || $cpu->{'model_name'} =~ /mips/i){ $cpu->{'type'} = 'mips'; } @@ -9546,6 +9554,10 @@ if ($temp =~ /^\d+$/){ $cpu->{'stepping'} = uc(sprintf("%x",$temp)); } + # loongson, hex: 0x11 + elsif ($temp =~ /^0x[0-9a-f]{1,2}$/){ + $cpu->{'stepping'} = $temp; + } } # PPC revision is a string, but elbrus revision is hex elsif (defined $block->{'revision'}){ @@ -10171,6 +10183,9 @@ # $ci = "$fake_data_dir/cpu/elbrus/4xE8C-7.txt"; # $ci = "$fake_data_dir/cpu/elbrus/4xE2CDSP-4.txt"; # $ci = "$fake_data_dir/cpu/elbrus/cpuinfo.e8c2.txt"; + ## Loongson + # $cpu_type = 'elbrus'; # uncomment to test loongson + $ci = "$fake_data_dir/cpu/loongson/3A5000M-4-core-4.19.0.txt"; ## CPU CPUINFO/SYS PAIRS DATA FILES ## # $ci = "$fake_data_dir/cpu/sys-ci-pairs/android-pocom3-fake-cpuinfo.txt"; @@ -10195,8 +10210,8 @@ # $sys = "$fake_data_dir/cpu/sys-ci-pairs/amd-threadripper-1x12-5945wx-sys-1.txt"; # $ci = "$fake_data_dir/cpu/sys-ci-pairs/intel-i7-1165G7-4-core-no-smt-cpuinfo.txt"; # $sys = "$fake_data_dir/cpu/sys-ci-pairs/intel-i7-1165G7-4-core-no-smt-sys.txt"; - $ci = "$fake_data_dir/cpu/sys-ci-pairs/elbrus-e16c-1-cpuinfo.txt"; - $sys = "$fake_data_dir/cpu/sys-ci-pairs/elbrus-e16c-1-sys.txt"; + # $ci = "$fake_data_dir/cpu/sys-ci-pairs/elbrus-e16c-1-cpuinfo.txt"; + # $sys = "$fake_data_dir/cpu/sys-ci-pairs/elbrus-e16c-1-sys.txt"; $fake_data{'cpuinfo'} = $ci; $fake_data{'sys'} = $sys; } @@ -10706,6 +10721,8 @@ ); my $topology = {}; cp_cpu_topology($counts,$topology); + # print "$cpu->{'type'}\n"; + # print Data::Dumper::Dumper $cpu; my $arch = cp_cpu_arch( $cpu->{'type'}, $cpu->{'family'}, @@ -10713,6 +10730,7 @@ $cpu->{'stepping'}, $cpu->{'model_name'}, ); + # print Data::Dumper::Dumper $arch; # arm cpuinfo case only; confirm on bsds, not sure all get family/ids if ($arch->[0] && !$cpu->{'arch'}){ ($cpu->{'arch'},$cpu->{'arch-note'},$cpu->{'process'},$cpu->{'gen'}, @@ -11221,7 +11239,7 @@ # we can get various random strings for rev/stepping, particularly for arm,ppc # but we want stepping to be integer for math comparisons, so convert, or set # to 0 so it won't break anything. - if (defined $stepping && $stepping =~ /^[A-F0-9]{1,3}$/i){ + if (defined $stepping && $stepping =~ /^(0x)?[A-F0-9]{1,3}$/i){ $stepping = hex($stepping); } else { @@ -11229,6 +11247,7 @@ } $family ||= ''; $model = '' if !defined $model; # model can be 0 + $name = '' if !defined $name; my ($arch,$gen,$note,$process,$year); my $check = main::message('note-check'); # See: docs/inxi-cpu.txt @@ -12109,6 +12128,68 @@ } } } + # Note: their cpu family value is either missing for early, or generic + # No model: [id]/family: [id]. Just cpu family: [string], model name: [string] + elsif ($type eq 'loongson'){ + # can't safely match model 1, but nobody will run inxi on that + # Not certain when SMIC took over from STM, which is a swiss firm. + if ($name =~ /\b2[BCE]\b/){ + $arch = 'Godson'; + $process = 'STM 180nm'; + $year = '2003-2006';} + elsif ($name =~ /\b1[ABCD]\b/){ + $arch = 'Loongson-1'; + $process = 'STM 130nm'; + $year = '2010-2014';} + elsif ($name =~ /\b1C101/){ + $arch = 'Loongson-1'; + $process = 'STM 130nm'; + $year = '2018';} + elsif ($name =~ /\b2F\b/){ + $arch = 'Loongson-2'; + $process = 'STM 90nm'; + $year = '2007';} + elsif ($name =~ /\b2[GIH]\b/){ + $arch = 'Loongson-2'; + $process = 'STM 65nm'; + $year = '2012-2013';} + elsif ($name =~ /\b2K(1000)?\b/){ + $arch = 'Loongson-2'; + $process = 'STM 40nm'; + $year = '2017';} + elsif ($name =~ /3A1000/){ + $arch = 'Godson-3/Loongson-3'; + $process = 'SMIC 65nm'; + $year = '2009';} + elsif ($name =~ /3B1000/){ + $arch = 'Godson-3/Loongson-3'; + $process = 'SMIC 65nm'; + $year = '2010';} + elsif ($name =~ /3B1500/){ + $arch = 'Godson-3/Loongson-3'; + $process = 'SMIC 32nm'; + $year = '2012';} + elsif ($name =~ /3A1500-I|3[AB]2000/){ + $arch = 'Godson-3/Loongson-3'; + $process = 'SMIC 40nm'; + $year = '2015';} + elsif ($name =~ /3[AB]3000/){ + $arch = 'Godson-3/Loongson-3'; + $process = 'SMIC 28nm'; + $year = '2016';} + elsif ($name =~ /3[AB]4000/){ + $arch = 'Godson-3/Loongson-3'; + $process = 'SMIC 28nm'; + $year = '2019';} + elsif ($name =~ /3[A-C]5000/){ + $arch = 'Loongson-3/LoongArch'; + $process = 'SMIC 12-14nm'; + $year = '2021+';} + elsif ($name =~ /3[A-C]6000/){ + $arch = 'Loongson-3/LoongArch'; + $process = 'SMIC 12-14nm'; + $year = '2023+';} + } eval $end if $b_log; return [$arch,$note,$process,$gen,$year]; } @@ -12492,11 +12573,11 @@ } ## CPU UTILITIES ## -# only elbrus ID is actually used live +# args: 0: vendor_id,like GenuineIntel, AuthenticAMD sub cpu_vendor { eval $start if $b_log; - my ($string) = @_; - my ($vendor) = (''); + my $string = $_[0]; + my $vendor = ''; $string = lc($string); if ($string =~ /intel/){ $vendor = "intel"; @@ -14768,7 +14849,7 @@ package GraphicItem; my ($b_primary,$b_wayland_data,%graphics,%mesa_drivers, $monitor_ids,$monitor_map); -my ($gpu_amd,$gpu_intel,$gpu_nv); +my ($gpu_amd,$gpu_intel,$gpu_loongson,$gpu_nv); sub get { eval $start if $b_log; @@ -14782,7 +14863,7 @@ } else { device_output($rows); - ($gpu_amd,$gpu_intel,$gpu_nv) = (); + ($gpu_amd,$gpu_intel,$gpu_loongson,$gpu_nv) = (); if (!@$rows){ my $key = 'Message'; my $message = ''; @@ -14856,9 +14937,10 @@ $rows->[$j]{main::key($num++,0,3,'alternate')} = $row->[10] if $row->[10]; } if ($extra > 0 && $row->[5] && $row->[6] && - $row->[5] =~ /^(1002|10de|12d2|8086)$/){ + $row->[5] =~ /^(0014|1002|10de|12d2|8086)$/){ # legacy: 1180 0df7 0029 current: 13bc 1c8d 24b1 regex: H100, RTX 4000 # ($row->[5],$row->[6],$row->[4]) = ('12de','0029',''); + # ($row->[5],$row->[6],$row->[4]) = ('0014','7a25',''); # loongson my ($gpu_data,$b_nv) = gpu_data($row->[5],$row->[6],$row->[4]); if (!$bsd_type && $b_nv && $b_admin){ if ($gpu_data->{'legacy'}){ @@ -15889,6 +15971,7 @@ # $file = "$fake_data_dir/graphics/glxinfo/glxinfo-intel-atom-dell_studio-bm.txt"; # $file = "$fake_data_dir/graphics/glxinfo/glxinfo-asus_1025c-atom-bm.txt"; # $file = "$fake_data_dir/graphics/glxinfo/glxinfo-2011-nvidia-glx1.4.txt"; + # $file = "$fake_data_dir/graphics/glxinfo/glxinfo-amd-dz-mesa-git.txt"; $gl_data= main::reader($file,'','ref'); } } @@ -15905,7 +15988,7 @@ # $file = "$fake_data_dir/graphics/egl-es/eglinfo-intel-atom-dell_studio-bm.txt"; # $file = "$fake_data_dir/graphics/egl-es/eglinfo-asus_1025c-atom-bm.txt"; # $file = "$fake_data_dir/graphics/egl-es/eglinfo-x11-amd-raphael-1.txt"; - $file = "$fake_data_dir/graphics/egl-es/eglinfo-x11-vm-version-odd.txt"; + # $file = "$fake_data_dir/graphics/egl-es/eglinfo-x11-vm-version-odd.txt"; $gl_data = main::reader($file,'','ref'); } } @@ -16129,15 +16212,18 @@ if ($working[1]){ # first grab the actual gl version # non free drivers like nvidia may only show their driver version info + # $working[1] = '4.5 (Compatibility Profile) Mesa 22.3.6'; if ($working[1] =~ /^(\S+)(\s|$)/){ push(@{$gl->{'glx'}{'opengl'}{'versions'}}, $1); } - # handle legacy format: 1.2 (1.5 Mesa 6.5.1) as well as more current: + # handle legacy format: 1.2 (1.5 Mesa 6.5.1) + # as well as more current: # 4.5 (Compatibility Profile) Mesa 22.3.6 # Note: legacy: fglrx starting adding compat strings but they don't # change this result: # 4.5 Compatibility Profile Context Mesa 15.3.6 - if ($working[1] =~ /(Mesa|NVIDIA)\s(\S+?)\)?$/i){ + # 4.6 (Core Profile) Mesa 24.2.0-devel (git-92f0620dae) + if ($working[1] =~ /(Mesa|NVIDIA)\s(\S+?)\)?(\s.*)?$/i){ if ($1 && $2 && !$gl->{'glx'}{'opengl'}{'driver'}){ $gl->{'glx'}{'opengl'}{'driver'}{'vendor'} = lc($1); $gl->{'glx'}{'opengl'}{'driver'}{'version'} = $2; @@ -16158,6 +16244,7 @@ if ($b_opengl){ if ($working[0] =~ /^OpenGL (compatibility|core) profile version( string)?$/){ $value = lc($1); + # $working[1] = '4.6 (Core Profile) Mesa 24.2.0-devel (git-92f0620dae)'; # note: no need to apply empty message here since we don't have the data # anyway if ($working[1]){ @@ -16167,7 +16254,9 @@ } # fglrx started appearing with this extra string, does not appear # to communicate anything of value - if ($working[1] =~ /\s+(Mesa|NVIDIA)\s+(\S+)$/){ + # 4.6 (Core Profile) Mesa 24.2.0-devel + # 4.6 (Core Profile) Mesa 24.2.0-devel (git-92f0620dae) + if ($working[1] =~ /\s+(Mesa|NVIDIA)\s+(\S+)(\s.*)?$/){ if ($1 && $2 && !$gl->{'glx'}{'opengl'}{$value}{'vendor'}){ $gl->{'glx'}{'opengl'}{$value}{'driver'}{'vendor'} = lc($1); $gl->{'glx'}{'opengl'}{$value}{'driver'}{'version'} = $2; @@ -18073,51 +18162,44 @@ 'process' => 'Intel 10nm', 'years' => '2019-21', }, - {'arch' => 'Gen-12.1', - 'ids' => '4905|4907|4908|4c80|4c8a|4c8b|4c8c|4c90|4c9a|9a40|9a49|9a59|9a60|' . - '9a68|9a70|9a78|9ac0|9ac9|9ad9|9af8', + {'arch' => 'Gen-12.1', + 'ids' => '4905|4907|4908|4909|4c8a|4c8b|4c90|4c9a|9a40|9a49|9a59|9a60|9a68|' . + '9a70|9a78|9ac0|9ac9|9ad9|9af8', 'code' => '', 'process' => 'Intel 10nm', 'years' => '2020-21', }, {'arch' => 'Gen-12.2', - 'ids' => '4626|4628|462a|4636|4638|463a|4682|4688|468a|468b|4690|4692|4693|' . - '46a3|46a6|46a8|46aa|46b0|46b1|46b3|46b6|46b8|46ba|46c1|46c3|46d0|46d1|46d2|' . - '46d3|46d4', + 'ids' => '4626|4628|462a|4636|4638|463a|4680|4682|4688|468a|468b|4690|4692|' . + '4693|46a0|46a1|46a2|46a3|46a6|46a8|46aa|46b0|46b1|46b2|46b3|46b6|46b8|46ba|' . + '46c0|46c1|46c2|46c3|46d0|46d1|46d2|46d3|46d4', 'code' => '', 'process' => 'Intel 10nm', 'years' => '2021-22+', }, {'arch' => 'Gen-12.5', - 'ids' => '0bd0|0bd5|0bd6|0bd7|0bd9|0bda|0bdb', + 'ids' => '0bd5|0bda', 'code' => '', 'process' => 'Intel 10nm', 'years' => '2021-23+', }, - # Jupiter Sound cancelled? {'arch' => 'Gen-12.7', 'ids' => '4f80|4f81|4f82|4f83|4f84|4f85|4f86|4f87|4f88|5690|5691|5692|5693|' . - '5694|5695|5696|5697|5698|56a0|56a1|56a3|56a4|56a5|56a6|56a7|56a8|56a9|56b0|' . - '56b1|56b2|56b3|56ba|56bb|56bc|56bd|56be|56bf', + '5694|5696|5697|5698|56a0|56a1|56a2|56a3|56a4|56a5|56a6|56a7|56a8|56a9|56b0|' . + '56b1|56b2|56b3|56ba|56bb|56bc|56bd|56be|56bf|56c0|56c1', 'code' => 'Alchemist', 'process' => 'TSMC n6 (7nm)', 'years' => '2022+', }, - {'arch' => 'Gen-12.7', - 'ids' => '56c0|56c1', - 'code' => '', - 'process' => 'TSMC n6 (7nm)', - 'years' => '2022+', - }, {'arch' => 'Gen-13', - 'ids' => 'a70d|a720|a721|a74d|a780|a781|a782|a783|a788|a789|a78a|a78b|a7a0|' . - 'a7a1|a7a8|a7a9|a7aa|a7ab|a7ac|a7ad', + 'ids' => 'a70d|a719|a720|a721|a74d|a780|a781|a782|a783|a788|a789|a78a|a78b|' . + 'a7a0|a7a1|a7a8|a7a9|a7aa|a7ab|a7ac|a7ad', 'code' => '', 'process' => 'Intel 7 (10nm)', 'years' => '2022+', }, {'arch' => 'Gen-13', - 'ids' => '7d40|7d45|7d55|7d60|7dd5', + 'ids' => '7d40|7d41|7d45|7d51|7d55|7d60|7d67|7dd1|7dd5', 'code' => '', 'process' => 'Intel 4 (7nm+)', 'years' => '2023+', @@ -18134,6 +18216,18 @@ 'process' => 'TSMC 3nm?', 'years' => '2025+', }, + + ]; +} + +sub set_loongson_data { + $gpu_loongson = [ + {'arch' => '?', + 'ids' => '7a25', + 'code' => '', + 'process' => '12-14nm (STM)', + 'years' => '2023+', + }, ]; } @@ -18412,8 +18506,8 @@ '2414|2420|2438|2460|2482|2484|2486|2487|2488|2489|248a|249c|249d|24a0|24b0|' . '24b1|24b6|24b7|24b8|24b9|24ba|24bb|24c7|24c9|24dc|24dd|24e0|24fa|2503|2504|' . '2507|2508|2520|2521|2523|2531|2544|2560|2563|2571|2582|2584|25a0|25a2|25a5|' . - '25ab|25ac|25b6|25b8|25b9|25ba|25bb|25bc|25bd|25e0|25e2|25e5|25ec|25f9|25fa|' . - '25fb|2838', + '25ab|25ac|25b0|25b2|25b6|25b8|25b9|25ba|25bb|25bc|25bd|25e0|25e2|25e5|25ec|' . + '25f9|25fa|25fb|2838', 'code' => 'GAxxx', 'kernel' => '', 'legacy' => 0, @@ -18437,9 +18531,10 @@ 'years' => '2022+', }, {'arch' => 'Lovelace', - 'ids' => '2684|2685|26b1|26b2|26b3|26b5|26b9|26ba|2702|2704|2705|2709|2717|' . - '2730|2757|2770|2782|2783|2786|2788|27a0|27b0|27b1|27b2|27b6|27b8|27ba|27bb|' . - '27e0|27fb|2803|2805|2808|2820|2860|2882|28a0|28a1|28b9|28ba|28bb|28e0|28e1', + 'ids' => '2684|2685|2689|26b1|26b2|26b3|26b5|26b9|26ba|2702|2704|2705|2709|' . + '2717|2730|2757|2770|2782|2783|2786|2788|27a0|27b0|27b1|27b2|27b6|27b8|27ba|' . + '27bb|27e0|27fb|2803|2805|2808|2820|2860|2882|28a0|28a1|28b0|28b9|28ba|28bb|' . + '28e0|28e1', 'code' => 'AD1xx', 'kernel' => '', 'legacy' => 0, @@ -18465,6 +18560,10 @@ set_intel_data() if !$gpu_intel; $gpu = $gpu_intel; } + elsif ($v_id eq '0014'){ + set_loongson_data() if !$gpu_loongson; + $gpu = $gpu_loongson; + } else { set_nv_data() if !$gpu_nv; $gpu = $gpu_nv; @@ -25160,7 +25259,7 @@ sub get_repos_linux { eval $start if $b_log; my $rows = $_[0]; - my (@content,$data,@data2,@data3,@files,$repo,@repos); + my (@content,$data,@data2,@data3,@files,$pm_query,$repo,@repos); my ($key,$path); my $apk = '/etc/apk/repositories'; my $apt = '/etc/apt/sources.list'; @@ -25185,6 +25284,7 @@ my $slackpkg_plus = '/etc/slackpkg/slackpkgplus.conf'; my $slapt_get = '/etc/slapt-get/'; my $slpkg = '/etc/slpkg/repositories.toml'; + my $t2_src = '/usr/src/t2-src'; my $tazpkg = '/etc/slitaz/tazpkg.conf'; my $tazpkg_mirror = '/var/lib/tazpkg/mirror'; my $tce_app = '/usr/bin/tce'; @@ -25358,6 +25458,7 @@ } ## sbopkg, sboui, slackpkg, slackpkg+, slapt_get, slpkg: Slackware + derived # $slpkg = "$fake_data_dir/repo/slackware/slpkg-2.toml"; + # $slpkg = "$fake_data_dir/repo/slackware/slpkg-new-format-1.toml"; # $sbopkg = "$fake_data_dir/repo/slackware/sbopkg-2.conf"; # $sboui_backend = "$fake_data_dir/repo/slackware/sboui-backend-1.conf"; if (-f $slackpkg || -f $slackpkg_plus || -d $slapt_get || -f $slpkg || @@ -25477,38 +25578,58 @@ @content = (); } if (-f $slpkg){ - my ($active,$name,$repo); - my $holder = ''; - @data2 = main::reader($slpkg); - # We can't rely on the presence of empty lines as block separator. - push(@data2,'-eof-') if @data2; + my ($b_legacy,$b_new,$name,%repos); + @data2 = main::reader($slpkg,'strip'); # print Data::Dumper::Dumper \@data2; # old: "https://download.salixos.org/x86_64/slackware-15.0/" - # new: ["https://slac...nl/people/alien/sbrepos/", "15.0/", "x86_64/"] + # old, new syntax: ["https://slac...nl/people/alien/sbrepos/", "15.0/", "x86_64/"] + # newest: each block starts with name, eg: [DEFAULT], [ALIEN] foreach (@data2){ - next if /^\s*([#\[]|$)/; $_ = lc($_); - if (/^\s*(\S+?)_(repo(|_name|_mirror))\s*=\s*[\['"]{0,2}(.*?)[\]'"]{0,2}\s*$/ || - $_ eq '-eof-'){ - my ($key,$value) = ($2,$4); - if (($1 && $holder ne $1) || $_ eq '-eof-'){ - $holder = $1; - if ($name && $repo){ - if (!$active || $active =~ /^(true|1|yes)$/i){ - push(@content,"$name ~ $repo"); - } - ($active,$name,$repo) = (); - } - } - if ($key){ - if ($key eq 'repo'){ - $active = $value;} - elsif ($key eq 'repo_name'){ - $name = $value;} - elsif ($key eq 'repo_mirror'){ - # map new form to a real url - $value =~ s/['"],\s*['"]//g; - $repo = $value;} + # first legacy line should be [REPO...] + if (!$b_legacy && !$b_new && /\[repositories\]/){ + $b_legacy = 1; + next; + } + # otherwise [...] is repo name + if (!$b_legacy && /^\[(\S+)\]/){ + $name = $1; + $b_new = 1; + next; + } + my ($key,$value) = split(/\s*=\s*/,$_); + next if !$key || !defined $value; + $value =~ s/^\[?["']|["']\]?$//g; + if ($b_legacy){ + next if $key !~ /^(\S+?)_(repo(|_name|_mirror))$/; + $name = $1; + $key = $2; + if ($key eq 'repo'){ + $repos{$name}->{'active'} = $value;} + elsif ($key eq 'repo_mirror'){ + # map new form to a real url + $value =~ s/['"],\s*['"]//g; + $repos{$name}->{'repo'} = $value;} + } + elsif ($b_new){ + if ($key eq 'repo' && $name eq 'default'){ + $repos{'default'} = $value; + $name = ''; + next;} + elsif ($key eq 'enable'){ + $repos{$name}{'active'} = $value;} + elsif ($key eq 'mirror'){ + $repos{$name}{'repo'} = $value;} + } + } + # print Data::Dumper::Dumper \%repos; + if (%repos){ + foreach my $item (sort keys %repos){ + next if ref $repos{$item} ne 'HASH'; + if (!$repos{$item}->{'active'} || + $repos{$item}->{'active'} =~ /^(true|1|yes)$/i){ + my $default = ($repos{'default'} && $item eq $repos{'default'}) ? ' (default)' : ''; + push(@content,$item . $default . ' ~ ' . $repos{$item}->{'repo'}); } } } @@ -25734,6 +25855,30 @@ push(@$rows,@$data); } } + ## T2 Emerge + if (-d $t2_src){ + if ($path = main::check_program('svn')){ + @data2 = main::grabber("$path info $t2_src 2>/dev/null","\n",'strip'); + main::writer("$debugger_dir/system-repo-data-t2-svn.txt",\@data2) if $debugger_dir; + if (@data2){ + $repo = main::awk(\@data2,'URL:',2); + push(@content,$repo) if $repo; + } + } + if (!@content){ + $key = repo_data('missing','t2-emerge'); + } + else { + clean_url(\@content); + $key = repo_data('active','t2-emerge'); + $pm_query = ''; + } + push(@$rows, + {main::key($num++,1,1,$key) => $t2_src}, + [@content], + ); + (@content,$pm_query,$repo) = (); + } ## xbps: Void if (-d $xbps_dir_1 || -d $xbps_dir_2){ @files = main::globber("$xbps_dir_1*.conf"); @@ -25750,6 +25895,8 @@ if ($path = main::check_program('urpmq')){ @data2 = main::grabber("$path --list-media active --list-url 2>/dev/null","\n",'strip'); main::writer("$debugger_dir/system-repo-data-urpmq.txt",\@data2) if $debugger_dir; + # my $file = "$ENV{HOME}/bin/scripts/inxi/data/repo/urpmq/system-mrmazda-1.txt"; + # @data2 = main::reader($file,'strip'); # Now we need to create the structure: repo info: repo path. We do that by # looping through the lines of the output and then putting it back into the # <data>:<url> format print repos expects to see. Note this structure in the @@ -25765,30 +25912,37 @@ $_ =~ s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g; $_ =~ s/\e\[([0-9];)?[0-9]+m//g; # urpmq output is the same each line, repo name space repo url, can be: - # rsync://, ftp://, file://, http:// OR repo is locally mounted on FS in some cases - if (/(.+)\s([\S]+:\/\/.+)/){ + # rsync://, ftp://, file://, http:// OR repo is locally mounted on /var FS in some cases + if (/(.+)\s(\S+:\/\/.+|\/var\/\S+)/){ # pack the repo url - push(@content, $1); - clean_url(\@content); - # get the repo - $repo = $2; - push(@$rows, - {main::key($num++,1,1,'urpm repo') => $repo}, - [@content], - ); - @content = (); + push(@content, $1 . ' ~ ' . $2); } } + if (!@content){ + $key = repo_data('missing','urpm'); + $pm_query = main::message('pm-no-repos','urpmq'); + } + else { + clean_url(\@content); + $key = repo_data('active','urpm'); + $pm_query = ''; + } + push(@$rows, + {main::key($num++,1,1,$key) => $pm_query}, + [@content], + ); + @content = (); } # pisi: Pardus, Solus if ((-d $pisi_dir && ($path = main::check_program('pisi'))) || - (-d $eopkg_dir && ($path = main::check_program('eopkg')))){ - #$path = 'eopkg'; + (-d $eopkg_dir && ($path = main::check_program('eopkg')))){ + # $path = 'eopkg'; my $which = ($path =~ /pisi$/) ? 'pisi': 'eopkg'; - my $cmd = ($which eq 'pisi') ? "$path list-repo": "$path lr"; + my $cmd = ($which eq 'pisi') ? "$path list-repo" : "$path lr"; # my $file = "$ENV{HOME}/bin/scripts/inxi/data/repo/solus/eopkg-2.txt"; # @data2 = main::reader($file,'strip'); @data2 = main::grabber("$cmd 2>/dev/null","\n",'strip'); + push(@data2,'END') if @data2; main::writer("$debugger_dir/system-repo-data-$which.txt",\@data2) if $debugger_dir; # Now we need to create the structure: repo info: repo path # We do that by looping through the lines of the output and then putting it @@ -25804,36 +25958,34 @@ foreach (@data2){ next if /^\s*$/; # need to dump leading/trailing spaces and clear out color codes for irc output - $_ =~ s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g; - $_ =~ s/\e\[([0-9];)?[0-9]+m//g; - if (/^\/|:\/\//){ - push(@content, $_) if $repo; - } - # Local [inactive] Unstable [active] - elsif (/^(.*)\s\[([\S]+)\]/){ - $repo = $1; - $repo = ($2 =~ /^activ/i) ? $repo : ''; - } - if ($repo && @content){ - clean_url(\@content); - $key = repo_data('active',$which); - push(@$rows, - {main::key($num++,1,1,$key) => $repo}, - [@content], - ); - $repo = ''; - @content = (); + if ($_ ne 'END'){ + $_ =~ s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g; + $_ =~ s/\e\[([0-9];)?[0-9]+m//g; + if (/^\/|:\/\// && $repo){ + push(@content, $repo . ' ~ ' . $_); + $repo = ''; + } + # Local [inactive] Unstable [active] + elsif (/^(.*)\s\[([\S]+)\]/){ + $repo = $1; + $repo = ($2 =~ /^activ/) ? $repo : ''; + } } } - # last one if present - if ($repo && @content){ + if (!@content){ + $key = repo_data('missing',$which); + $pm_query = main::message('pm-no-repos',$which); + } + else { clean_url(\@content); $key = repo_data('active',$which); - push(@$rows, - {main::key($num++,1,1,$key) => $repo}, - [@content], - ); + $pm_query = ''; } + push(@$rows, + {main::key($num++,1,1,$key) => $pm_query}, + [@content], + ); + (@content,$repo) = (); } ## nix: General pm for Linux/Unix if (-f $nix && ($path = main::check_program('nix-channel'))){ @@ -26010,7 +26162,7 @@ 'cards-missing' => 'No active CARDS collections in', 'dnf-active' => 'Active dnf repos in', 'dnf-missing' => 'No active dnf repos in', - 'eopkg-active' => 'Active eopkg repo', + 'eopkg-active' => 'Active eopkg repos', 'eopkg-missing' => 'No active eopkg repos found', 'files-missing' => 'No repo files found in', 'freebsd-active' => 'FreeBSD update server', @@ -26034,7 +26186,7 @@ 'pacman-missing' => 'No active pacman repos in', 'pacman-g2-active' => 'Active pacman-g2 repo servers in', 'pacman-g2-missing' => 'No active pacman-g2 repos in', - 'pisi-active' => 'Active pisi repo', + 'pisi-active' => 'Active pisi repos', 'pisi-missing' => 'No active pisi repos found', 'portage-active' => 'Enabled portage sources in', 'portage-missing' => 'No enabled portage sources in', @@ -26055,10 +26207,14 @@ 'slaptget-missing' => 'No active slapt-get repos in', 'slpkg-active' => 'Active slpkg repos in', 'slpkg-missing' => 'No active slpkg repos in', + 't2-emerge-active' => 'Active T2 Emerge URL in', + 't2-emerge-missing' => 'No active T2 Emerge URLs in', 'tazpkg-active' => 'tazpkg mirrors in', 'tazpkg-missing' => 'No tazpkg mirrors in', 'tce-active' => 'tce mirrors in', 'tce-missing' => 'No tce mirrors in', + 'urpm-active' => 'Active urpm repos', + 'urpm-missing' => 'No active urpm repos found', 'xbps-active' => 'Active xbps repos in', 'xbps-missing' => 'No active xbps repos in', 'yum-active' => 'Active yum repos in', @@ -26077,6 +26233,7 @@ return $repo_keys{$type . '-' . $status}; } +# Args: 0: repo file; 1: pm type; 2: repo line search, 3: split; 4: count sub repo_builder { eval $start if $b_log; my ($file,$type,$search,$split,$count) = @_; @@ -29643,7 +29800,9 @@ if ($desktop_session eq 'trinity' || $xdg_desktop eq 'trinity' || (!$desktop_session && !$xdg_desktop && @{$ps_data{'de-ps-detect'}} && (grep {/^tde/} @{$ps_data{'de-ps-detect'}}))){ - if ($program = main::check_program('kdesktop')){ + # 14.2 moved kdesktop to location not in PATH in some distros, so either of these will fail + if (($program = main::check_program('kdesktop')) || + ($program = main::check_program('twin'))){ ($desktop->[0],$desktop->[1],$v_data) = ProgramData::full('kdesktop-trinity',$program,0,'raw'); } if ($extra > 1 && $v_data && @$v_data){ @@ -31440,8 +31599,9 @@ udm wdm x3dm xdm xdmctl xenodm); } # greetd frontends: agreety dlm gtkgreet qtgreet tuigreet wlgreet + # slick, elephant greeters for lightdm so aren't really lm else { - @dms = qw(elogind greetd seatd tbsm); + @dms = qw(elogind greetd qtgreet seatd tbsm); } # print Data::Dumper::Dumper \@glob; # used to test for .pid/lock type file or directory, now just see if the @@ -31614,6 +31774,7 @@ siduction-version sidux-version slax-version slint-version slitaz-release solusos-release turbolinux-release zenwalk-version); my $derived_str = join('|', @derived); + # if t2 ever adds a standard distro file name, add here. Ideally it adds os-release my @primary = qw(altlinux-release arch-release gentoo-release redhat-release slackware-version SuSE-release); my $primary_str = join('|', @primary); @@ -31637,20 +31798,29 @@ $etc_issue = main::reader($issue,'strip',0) if -r $issue; # debian issue can end with weird escapes like \n \l # antergos: Antergos Linux \r (\l) - $etc_issue = main::clean_characters($etc_issue) if $etc_issue; + main::clean_characters(\$etc_issue) if $etc_issue; # Note: always exceptions, so wild card after release/version: # /etc/lsb-release-crunchbang # Wait to handle since crunchbang file is one of the few in the world that # uses this method - @{$distro->{'files'}} = main::globber('/etc/{*[-_]{[rR]elease,[vV]ersion}*,issue}'); - push(@{$distro->{'files'}}, '/etc/bodhibuilder.conf') if -r '/etc/bodhibuilder.conf'; # legacy + @{$distro->{'files'}} = main::globber('/etc/{*[-_]{[rR]elease,[vV]ersion}*,VERSION,issue}'); @osr = main::reader($os_release) if -r $os_release; + # a few with custom distro file locations + if (-r '/etc/bodhibuilder.conf'){ + push(@{$distro->{'files'}}, '/etc/bodhibuilder.conf'); # legacy + } if (-f '/etc/bodhi/info'){ $lsb_release = '/etc/bodhi/info'; $distro->{'file'} = $lsb_release; $distro->{'issue-skip'} = 1; push(@{$distro->{'files'}}, $lsb_release); } + # their issue is full of ascii art, and they use irregular distro file name + elsif (-d '/usr/src/t2-src' && -s '/etc/VERSION'){ + $distro->{'file'} = '/etc/VERSION'; + push(@{$distro->{'files'}}, $distro->{'file'}); + $distro->{'issue-skip'} = 1; + } $distro->{'issue'} = $issue if -f $issue; $distro->{'lsb'} = $lsb_release if -f $lsb_release; if (!$distro->{'issue-skip'} && $etc_issue){ @@ -31696,7 +31866,8 @@ # Special case, to force manjaro/antergos which also have arch-release # manjaro should use lsb, which has the full info, arch uses os release # antergos should use /etc/issue. We've already checked os-release above - if ($distro->{'id'} eq 'antergos' || (grep {/antergos|chakra|manjaro/} @{$distro->{'files'}})){ + if ($distro->{'id'} eq 'antergos' || + (grep {/antergos|chakra|manjaro/} @{$distro->{'files'}})){ @{$distro->{'files'}} = grep {!/arch-release/} @{$distro->{'files'}}; } my $dist_files_str = join('|', @{$distro->{'files'}}); @@ -31727,7 +31898,7 @@ if (-r '/etc/antiX'){ @working = main::reader('/etc/antiX'); $distro->{'name'} = main::awk(\@working,'antix.*\.iso') if @working; - $distro->{'name'} = main::clean_characters($distro->{'name'}) if $distro->{'name'}; + main::clean_characters(\$distro->{'name'}) if $distro->{'name'}; push(@{$distro->{'method'}},'file: /etc/antiX'); } # This handles case where only one release/version file was found, and it's lsb-release. @@ -31773,9 +31944,7 @@ } push(@{$distro->{'method'}},'default: distro file'); } - if ($distro->{'name'}){ - $distro->{'name'} = main::clean_characters($distro->{'name'}); - } + main::clean_characters(\$distro->{'name'}) if $distro->{'name'}; } # Otherwise try the default debian/ubuntu/distro /etc/issue file elsif ($distro->{'issue'}){ @@ -31803,8 +31972,14 @@ push(@{$distro->{'method'}},'issue-id; from program version'); } else { - $distro->{'name'} = $etc_issue; - push(@{$distro->{'method'}},'issue: source'); + # make sure it has letters in name! + if (($lc_issue =~ tr/[a-z]/[a-z]/) > 3){ + $distro->{'name'} = $etc_issue; + push(@{$distro->{'method'}},'issue: source'); + } + else { + push(@{$distro->{'method'}},'issue: invalid distro value'); + } # This handles an arch bug where /etc/arch-release is empty and /etc/issue # is corrupted only older arch installs that have not been updated should # have this fallback required, new ones use os-release @@ -32063,7 +32238,7 @@ foreach my $key (keys %base_version){ if (-r $base_version{$key} && $distro->{'name'} =~ /($key)/i){ $distro->{'base'} = main::reader($base_version{$key},'strip',0); - $distro->{'base'} = main::clean_characters($distro->{'base'}) if $distro->{'base'}; + main::clean_characters(\$distro->{'base'}) if $distro->{'base'}; push(@{$distro->{'base-method'}},"base_version: file: $key"); last; } @@ -34060,6 +34235,7 @@ ['guix-sys','guix','p','package -p "/run/current-system/profile" -I',1,0,''], ['guix-usr','guix','p','package -I',1,0,''], ['kiss','kiss','p','list',1,0,''], + ['mine','mine','p','-q',1,0,'','',['gasgui','gastone']], ['mport','mport','p','list',1,0,''], # netpkg puts packages in same place as slackpkg, only way to tell apart ['netpkg','netpkg','d','/var/lib/pkgtools/packages/*',1,5,'\\/', @@ -34089,14 +34265,11 @@ ['sbopkg','sboui','slackpkg','slapt-get','slpkg','swaret']], # rpm way too slow without nodigest/sig!! confirms packages exist # but even with, MASSIVELY slow in some cases, > 20, 30 seconds!!!! - # find another way to get rpm package counts or don't show this feature for rpm!! - ['rpm','rpm','force','-qa --nodigest --nosignature',1,0,'', - 'main::check_program(\'apt-get\') && main::check_program(\'dpkg\')', + # Find another way to get rpm package counts to get rid of --rpm requirement! + ['rpm','rpm','force','-qa --nodigest --nosignature',1,0,'','skip_pm($pm)', ['dnf','packagekit','up2date','urpmi','yast','yum','zypper']], - # uncommon case where apt-get frontend for rpm, w/o dpkg, like AltLinux did - ['rpm-apt','rpm','p','-qa',1,0,'', - 'main::check_program(\'apt-get\') && !main::check_program(\'dpkg\')', - ['apt-get','rpm']], + # uncommon case where apt-get frontend for rpm, w/o dpkg, eg AltLinux + ['rpm-apt','rpm','p','-qa',1,0,'','skip_pm($pm)',['apt-get','rpm']], # scratch is a programming language too, with software called scratch ['scratch','pkgbuild','d','/var/lib/scratchpkg/index/*/.pkginfo',1,5,'\\/', '-d \'/var/lib/scratchpkg\''], @@ -34106,8 +34279,6 @@ # ['spkg','spkg','p','--installed',1,0,''], ['tazpkg','tazpkg','p','list',1,0,'','',['tazpkgbox','tazpanel']], ['tce','tce-status','p','-i',1,0,'','',['apps','tce-load']], - # note: I believe mageia uses rpm internally but confirm - # ['urpmi','urpmq','p','??',1,0,''], ['xbps','xbps-query','p','-l',1,1,''], # ['xxx-brew','brew','p','--cellar',0,0,''], # verify how this works ['zzz-flatpak','flatpak','p','list',0,0,''], @@ -34116,9 +34287,11 @@ my ($program); foreach my $pm (@pkg_managers){ if ($program = main::check_program($pm->[1])){ + print "0: test: $pm->[0]: $pm->[1]\n" if $dbg[67]; next if $pm->[7] && !eval $pm->[7]; - my ($disabled,$libs,@list,$pmts); - if ($pm->[2] eq 'p' || ($pm->[2] eq 'force' && check_run($pm))){ + print "1: use: $pm->[0]: $pm->[1]\n" if $dbg[67]; + my ($disabled,$libs,@list,$pm_tools); + if ($pm->[2] eq 'p' || ($pm->[2] eq 'force' && use_pm($pm))){ chomp(@list = qx($program $pm->[3] 2>/dev/null)) if $pm->[3]; } elsif ($pm->[2] eq 'd'){ @@ -34154,14 +34327,14 @@ } } if (@tools){ - main::make_list_value(\@tools,\$pmts,',','sort'); + main::make_list_value(\@tools,\$pm_tools,',','sort'); } } $pms{$pm->[0]} = { 'disabled' => $disabled, 'pkgs' => $count, 'libs' => $libs, - 'tools' => $pmts, + 'tools' => $pm_tools, }; $pms{'total'} += $count if defined $count; # print Data::Dumper::Dumper \%pms; @@ -34184,20 +34357,51 @@ } } -sub check_run { +# skip is if false, so skip conditions must be false, non skip true. +# args: 0: $pm ref, used directly +sub skip_pm { + my $b_use; + # print Data::Dumper::Dumper $_[0]; + if (${_[0]}->[1] eq 'rpm'){ + # use only if not urpmi and not rpm-apt, this covers most cases, and use_pm + # fine tunes the coverage. + if (${_[0]}->[0] eq 'rpm'){ + if (!(main::check_program('apt-get') && !main::check_program('dpkg'))){ + $b_use = 1; + } + } + # this covers corner case of alt linux, that has apt-get but not dpkg + elsif (${_[0]}->[0] eq 'rpm-apt'){ + if (main::check_program('apt-get') && !main::check_program('dpkg')){ + $b_use = 1; + } + } + } + return $b_use; +} + +# args: 0: $pm ref, use directly +sub use_pm { if ($force{'pkg'}){ + print " use_pm: --rpm force\n" if $dbg[67]; return 1; } elsif (${_[0]}->[1] eq 'rpm'){ # testing for core wrappers for rpm, these should not be present in non - # redhat/suse based systems. mageia has urpmi, dnf, yum + # mageia/redhat/suse based systems. mageia has urpmi, dnf, yum foreach my $tool (('dnf','up2date','urpmi','yum','zypper')){ - return 0 if main::check_program($tool); + if (main::check_program($tool)){ + print " use_pm: $tool match\n" if $dbg[67]; + return 0; + } } - # Note: test fails: apt-rpm (pclinuxos,alt linux), unknown how to detect + # Note: test fails: apt-rpm (pclinuxos,alt linux), but apt-rpm should pass # Add pm test if known to have rpm available. foreach my $tool (('dpkg','pacman','pkgtool','tce-load')){ - return 1 if main::check_program($tool); + if (main::check_program($tool)){ + print " use_pm: $tool match\n" if $dbg[67]; + return 1; + } } } } @@ -35301,7 +35505,7 @@ 'kded2' => ['^KDE( Development Platform)?:',2,'--version','KDE',0,0,0,'\sDevelopment Platform',''], 'kded3' => ['^KDE( Development Platform)?:',2,'--version','KDE',0,0,0,'\sDevelopment Platform',''], 'kded4' => ['^KDE( Development Platform)?:',2,'--version','KDE Plasma',0,0,0,'\sDevelopment Platform',''], - 'kdesktop-trinity' => ['^TDE:',2,'--version','TDE (Trinity)',0,0,0], + 'kdesktop-trinity' => ['^TDE:',2,'--version','TDE (Trinity)',0,0,0], # kdesktop/twin 'kiwmi' => ['^kwimi',0,'0','kiwmi',0,1,0,'',''], # unverified 'ksmcon' => ['^ksmcon',0,'0','ksmcon',0,1,0,'',''],# no version 'kwin' => ['^kwin',0,'0','kwin',0,1,0,'',''],# no version, same as kde @@ -35324,6 +35528,7 @@ 'lxqt-session' => ['^lxqt-session',2,'--version','LXQt',0,1,0,'',''], 'lxqt-variant' => ['^lxqt-panel',0,'0','LXQt-Variant',0,1,0,'',''], 'lxsession' => ['^lxsession',0,'0','lxsession',0,1,0,'',''], + 'magmawm' => ['^magma',0,'0','MagmaWM',0,1,0,'',''], # unverified 'mahogany' => ['^mahogany',0,'0','Mahogany',0,1,0,'',''], # unverified, from stumpwm 'manokwari' => ['^manokwari',0,'0','Manokwari',0,1,0,'',''], 'marina' => ['^marina',0,'0','Marina',0,1,0,'',''], # unverified @@ -35333,6 +35538,7 @@ 'mate-about' => ['^MATE[[:space:]]DESKTOP',-1,'--version','MATE',0,1,0,'',''], # note, mate-session when launched with full path returns full path in version string 'mate-session' => ['mate-session',-1,'--version','MATE',0,1,0,'',''], + 'maxx' => ['^maxx',0,'0','MaXX',0,1,0,'',''], # unverified, 5Dwm recreation 'maynard' => ['^maynard',0,'0','maynard',0,1,0,'',''], # unverified 'maze' => ['^maze',0,'0','Maze',0,1,0,'',''], # unverified 'mcompositor' => ['^mcompositor',0,'0','MCompositor',0,1,0,'',''], # unverified @@ -35354,6 +35560,8 @@ 'mwm' => ['^mwm',0,'0','MWM',0,1,0,'',''],# no version 'nawm' => ['^nawm',0,'0','nawm',0,1,0,'',''],# unverified 'newm' => ['^newm',0,'0','newm',0,1,0,'',''], # unverified + 'newm-atha' => ['^newm',0,'0','new-atha',0,1,0,'',''], # unverified + 'niri' => ['^niri',0,'0','niri',0,1,0,'',''], # unverified 'notion' => ['^.',1,'--version','Notion',0,1,0,'',''], 'nscde' => ['^(fvwm|nscde)',2,'--version','NsCDE',0,1,0,'',''], 'nucleus' => ['^nucleus',0,'0','Nucleus',0,1,0,'',''], # unverified @@ -35367,6 +35575,7 @@ 'perceptia' => ['^perceptia',0,'0','perceptia',0,1,0,'',''], 'phoc' => ['^phoc',0,'0','phoc',0,1,0,'',''], # unverified 'picom' => ['^\S',1,'--version','Picom',0,1,0,'^v',''], + 'pinnacle' => ['^pinnacle',0,'0','Pinnacle',0,1,0,'',''], # unverified 'plasmashell' => ['^plasmashell',2,'--version','KDE Plasma',0,1,0,'',''], 'polonium' => ['^polonium',0,'0','polonium',0,1,0,'',''], # unverified 'pywm' => ['^pywm',0,'0','pywm',0,1,0,'',''], # unverified @@ -35389,9 +35598,9 @@ # out of stump, 2 --version, but in tries to start new wm instance endless hang 'stumpwm' => ['^SBCL',0,'--version','StumpWM',0,1,0,'',''], # hangs when run in wm 'subtle' => ['^subtle',2,'--version','subtle',0,1,0,'',''], - 'surfaceflinger' => ['surfaceflinger^',0,'0','SurfaceFlinger',0,1,0,'',''], # Android, unverified + 'surfaceflinger' => ['surfaceflinger^',0,'0','SurfaceFlinger',0,1,0,'',''], # unverified, Android 'sway' => ['^sway',3,'-v','Sway',0,1,0,'',''], - 'swayfx' => ['^swayfx',0,'0','SwayFX',0,1,0,'',''], # probably same as sway, unverified + 'swayfx' => ['^swayfx',0,'0','SwayFX',0,1,0,'',''], # unverified, probably same as sway 'swayfx' => ['^sway',3,'-v','SwayFX',0,1,0,'',''], # not sure if safe 'swc' => ['^swc',0,'0','swc',0,1,0,'',''], # unverified 'swvkc' => ['^swvkc',0,'0','swvkc',0,1,0,'',''], # unverified @@ -35402,7 +35611,7 @@ 'tinywm' => ['^tinywm',0,'0','TinyWM',0,1,0,'',''], # no version 'trinkster' => ['^trinkster',0,'0','Trinkster',0,1,0,'',''], # unverified 'tvtwm' => ['^tvtwm',0,'0','tvtwm',0,1,0,'',''], # unverified - 'twin' => ['^Twin:',2,'--version','Twin',0,0,0,'',''], + 'twin' => ['^Twin:',2,'--version','Twin',0,0,0,'',''], 'twm' => ['^twm',0,'0','TWM',0,1,0,'',''], # no version 'ukui' => ['^ukui-session',2,'--version','UKUI',0,1,0,'',''], 'ukwm' => ['^ukwm',2,'--version','ukwm',0,1,0,'',''], @@ -35415,7 +35624,7 @@ 'vimway' => ['^vimway',0,'0','vimway',0,1,0,'',''], # unverified 'vivarium' => ['^vivarium',0,'0','Vivarium',0,1,0,'',''], # unverified 'vtwm' => ['^vtwm',0,'0','vtwm',0,1,0,'',''], # no version - 'w9wm' => ['^w9wm',3,'-version','w9wm',0,1,0,'',''], # fork of 9wm, unverified + 'w9wm' => ['^w9wm',3,'-version','w9wm',0,1,0,'',''], # unverified, fork of 9wm 'wavy' => ['^wavy',0,'0','wavy',0,1,0,'',''], # unverified 'waybox' => ['^way',0,'0','waybox',0,1,0,'',''], # unverified 'waycooler' => ['^way',3,'--version','way-cooler',0,1,0,'',''], @@ -35440,7 +35649,7 @@ 'wmx' => ['^wmx',0,'0','wmx',0,1,0,'',''], # no version 'wxrc' => ['^wx',0,'0','',0,1,0,'WXRC',''], # unverified 'wxrd' => ['^wx',0,'0','',0,1,0,'WXRD',''], # unverified - 'x9wm' => ['^x9wm',3,'-version','x9wm',0,1,0,'',''], # fork of 9wm, unverified + 'x9wm' => ['^x9wm',3,'-version','x9wm',0,1,0,'',''], # unverified, fork of 9wm 'xcompmgr' => ['^xcompmgr',0,'0','xcompmgr',0,1,0,'',''], # no version 'xfce-panel' => ['^xfce-panel',2,'--version','Xfce',0,1,0,'',''], 'xfce4-panel' => ['^xfce4-panel',2,'--version','Xfce',0,1,0,'',''], @@ -35471,6 +35680,7 @@ 'cdm' => ['^cdm',0,'0','CDM',0,1,0,'',''], # might be xlogin, unknown output for -V 'clogin' => ['^clogin',0,'-V','clogin',0,1,0,'',''], # unverified, cysco router + 'elephant-greeter' => ['^elephant',0,'0','elephant-greeter',0,1,0,'',''], # unverified, lightdm greeter 'elogind' => ['^elogind',0,'0','elogind',0,1,0,'',''], # no version 'emptty' => ['^emptty',0,'0','EMPTTY',0,1,0,'',''], # unverified 'entranced' => ['^entrance',0,'0','Entrance',0,1,0,'',''], @@ -35487,12 +35697,14 @@ 'lxdm' => ['^lxdm',0,'0','LXDM',0,1,0,'',''], 'ly' => ['^ly',3,'--version','Ly',0,1,0,'',''], 'mdm' => ['^mdm',0,'0','MDM',0,1,0,'',''], - 'mlogind' => ['^mlogind',3,'-v','mlogind',0,1,0,'',''], # guess, unverified, BSD SLiM fork + 'mlogind' => ['^mlogind',3,'-v','mlogind',0,1,0,'',''], # unverified, guess. BSD SLiM fork 'nodm' => ['^nodm',0,'0','nodm',0,1,0,'',''], 'pcdm' => ['^pcdm',0,'0','PCDM',0,1,0,'',''], 'qingy' => ['^qingy',0,'0','qingy',0,1,0,'',''], # unverified + 'qtgreet' => ['^qtgreet',0,'0','qtgreet',0,1,0,'',''], # unverified 'seatd' => ['^seatd',3,'-v','seatd',0,1,0,'',''], 'sddm' => ['^sddm',0,'0','SDDM',0,1,0,'',''], + 'slick-greeter' => ['^slick',0,'0','slick-greeter',0,1,0,'',''], # unverified, , lightdm greeter 'slim' => ['slim version',3,'-v','SLiM',0,1,0,'',''], 'slimski' => ['slimski version',3,'-v','slimski',0,1,0,'',''], # slim fork 'tbsm' => ['^tbsm',0,'0','tbsm',0,1,0,'',''], # unverified @@ -35508,7 +35720,6 @@ ## See ShellData::shell_test() for unhandled but known shells 'ash' => ['',3,'pkg','ash',1,0,0,'',''], # special; dash precursor 'bash' => ['^GNU[[:space:]]bash',4,'--version','Bash',1,1,0,'',''], - 'busybox' => ['^busybox',0,'0','BusyBox',1,0,0,'',''], # unverified, hush/ash likely 'cicada' => ['^\s*version',2,'cmd','cicada',1,1,0,'',''], # special 'csh' => ['^tcsh',2,'--version','csh',1,1,0,'',''], # mapped to tcsh often 'dash' => ['',3,'pkg','DASH',1,0,0,'',''], # no version, pkg query @@ -35540,7 +35751,9 @@ 'pulseaudio' => ['^pulseaudio',2,'--version','PulseAudio',0,1,0,'',''], 'roaraudio' => ['^roaraudio',0,'0','RoarAudio',0,1,0,'',''], # no version/unknown? ## Tools: Compilers ## - 'clang' => ['clang',3,'--version','clang',1,1,0,'',''], + # T2 SED clang version 18.1 + # clang version 18.1 + 'clang' => ['clang',2,'--version','clang',1,1,0,'^.*clang',''], # gcc (Debian 6.3.0-18) 6.3.0 20170516 # gcc (GCC) 4.2.2 20070831 prerelease [FreeBSD] 'gcc' => ['^gcc',2,'--version','GCC',1,0,0,'\([^\)]*\)',''], @@ -35833,7 +36046,7 @@ dawn dtwm dusk dwm echinus evilwm flwm flwm_topside fvwm.*-crystal\S* fvwm1 fvwm2 fvwm3 fvwm95 fvwm hackedbox herbstluftwm i3 instantwm ion3 jbwm jwm larswm leftwm lwm - matchbox-window-manager mcwm mini miwm mlvwm monsterwm musca mvwm mwm + matchbox-window-manager maxx mcwm mini miwm mlvwm monsterwm musca mvwm mwm nawm notion openbox nscde pekwm penrose qvwm ratpoison sapphire sawfish scrotwm snapwm spectrwm stumpwm subtle tinywm tvtwm twm uwm vtwm windowlab [wW]indo[mM]aker w9wm wingo wm2 wmfs wmfs2 wmii2 wmii @@ -35865,8 +36078,9 @@ cage cagebreak cardboard chameleonwm clayland comfc dwl dwc epd-wm fireplace feathers fenestra glass gamescope greenfield grefson hikari hopalong [Hh]yprland inaban japokwm kiwmi labwc laikawm lipstick liri - mahogany marina maze maynard motorcar newm nucleus - orbital orbment perceptia phoc polonium pywm qtile river rootston rustland + magmawm mahogany marina maze maynard motorcar newm(-atha)? niri nucleus + orbital orbment perceptia phoc pinnacle polonium pywm + qtile river rootston rustland simulavr skylight smithay sommelier sway swayfx swc swvkc tabby taiwins tinybox tinywl trinkster velox vimway vivarium wavy waybox way-?cooler wayfire wayhouse waymonad westeros westford @@ -35878,15 +36092,17 @@ albert alltray awesomebar awn bar barpanel bbdock bbpager bemenu bipolarbar bmpanel bmpanel2 budgie-panel cairo-dock dde-dock deskmenu dmenu(-wayland)? dockbarx docker docky dzen dzen2 - fbpanel fspanel fuzzel glx-dock gnome-panel hpanel + fbpanel fspanel fuzzel gmenu glx-dock gnome-panel hpanel hybridbar i3bar i3-status(-rs|-rust)? icewmtray jgmenu kdocker kicker krunner ksmoothdock - latte lavalauncher latte-dock lemonbar ltpanel luastatus lxpanel lxqt-panel + latte latte-dock lavalauncher lemonbar ltpanel luastatus + lxpanel lxqt-panel matchbox-panel mate-panel mauncher mopag nwg-(bar|dock|launchers|panel) - openbox-menu ourico perlpanel plank polybar pypanel razor(qt)?-panel rofi rootbar + onagre openbox-menu ourico perlpanel plank polybar pypanel + razor(qt)?-panel rofi rootbar sfwbar simplepanel sirula some_sorta_bar stalonetray swaybar - taffybar taskbar tint2 tofi trayer ukui-panel vala-panel - wapanel waybar wbar wharf wingpanel witray wldash wmdocker wmsystemtray wofi - xfce[45]?-panel xmobar yambar yabar yofi))); + taffybar taskbar tint2 tofi trayer ukui-panel ulauncher vala-panel + wapanel waybar wbar wharf wingpanel witray wldash wmdocker wmenu + wmsystemtray wofi xfce[45]?-panel xmobar yambar yabar yofi))); # Generate tools: power manager daemons, then screensavers/lockers. # Note that many lockers may not be services @{$ps_data{'tools-test'}}=qw(away boinc-screensaver budgie-screensaver @@ -35894,7 +36110,7 @@ hyprlock i3lock kscreenlocker light-locker lockscreen lxlock mate-screensaver nwg-lock physlock rss-glx slock swayidle swaylock ukui-screensaver unicode-screensaver - xautolock xfce4-screensaver xlock xlockmore xscreensaver + waylock xautolock xfce4-screensaver xlock xlockmore xscreensaver xscreensaver-systemd xsecurelock xss-lock xtrlock); process_items(\@{$ps_data{'tools-active'}},join('|',@{$ps_data{'tools-test'}})); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inxi-3.3.34-1/inxi.1 new/inxi-3.3.35-1/inxi.1 --- old/inxi-3.3.34-1/inxi.1 2024-04-14 04:49:33.000000000 +0200 +++ new/inxi-3.3.35-1/inxi.1 2024-06-18 23:00:07.000000000 +0200 @@ -15,7 +15,7 @@ .\" with this program; if not, write to the Free Software Foundation, Inc., .\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. .\" -.TH INXI 1 "2024\-04-13"inxi" "inxi manual" +.TH INXI 1 "2024\-06-18"inxi" "inxi manual" .SH NAME inxi \- Command line system information script for console and IRC @@ -737,6 +737,8 @@ \fBCARDS\fR (NuTyX + derived versions) +\fBEMERGE\fR (T2 SDE, svn target URL) + \fBEOPKG\fR (Solus) \fBNETPKG\fR (Zenwalk/Slackware) @@ -771,7 +773,7 @@ \fBTAZPKG\fR (Slitaz) -\fBURPMI\fR (Mandriva, Mageia + derived versions) +\fBURPM\fR (Mandriva, Mageia + derived versions) \fBXBPS\fR (Void) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/inxi-3.3.34-1/inxi.changelog new/inxi-3.3.35-1/inxi.changelog --- old/inxi-3.3.34-1/inxi.changelog 2024-04-14 04:49:33.000000000 +0200 +++ new/inxi-3.3.35-1/inxi.changelog 2024-06-18 23:00:07.000000000 +0200 @@ -1,4 +1,261 @@ ================================================================================ +Version: 3.3.35 +Patch: 00 +Date: 2024-06-18 +-------------------------------------------------------------------------------- +RELEASE NOTES: +-------------------------------------------------------------------------------- + +Added more Wayland wm/de updates: wm, tools, lockers, etc. This list will grow +slowly over time, I'm sure. A new but very old distro, T2 SDE added, for distro +ID, mine package manager. + +Adding support for something as uncommon as T2 has a primary value that such +systems, particularly very old ones, tend to expose certain corner case data +alternate syntaxes (clang --version, /etc/issue), which then makes inxi overall +more robust. + +For example, because T2 used /etc/issue to show an ascii login, the actual first +line was just two literal lines, so the distro name appeared as two lines. This +was because there was an assumption that the first line of /etc/issue would +always be the distro name. Added filters to not use issue value if it does not +contain at least 3 characters. + +Also added in premilinary Loongson CPU/GPU support, but for GPU, have only 1 +product ID to match, and no other meaningful data. CPU may work, but needs real +hardware based testing to confirm. Obviously I can't do it, so if any Loongson +users want to test and report, feel free. Or not, up to you. Framework for full +support it there now. + +-------------------------------------------------------------------------------- +SPECIAL THANKS: + +1. mrmazda, as is often the case, for tracking and spotting issues with graphics +and desktop data. He also noticed the weird output for urpm repos, which is now +corrected, as well as finding some errors with rpm package counts, which led to +a small refactor of the rpm logic in PackageData. + +2. GRAPHICS: gl_data(): gfxstrand on issue #303 for figuring out what was +breaking OpenGL Mesa driver version detection. (was extra (git-..commit-ID) at +end of version string). + +3. DistroData: codeberg user r1w1s1 in issue #304 for pointing out that the '+' +part of the distro name can be meaningful, as in Slackware 15.0+, where the + +means it's Slackware current. + +-------------------------------------------------------------------------------- +KNOWN ISSUES: + +1. GRAPHICS: GPU device IDs: Intel device ID sources are not being reliable, and +some IDs vanished from the raw data files. This is too hard to work around, so +leaving as is. In a sense, Intel is just getting too hard to support, though +I'll keep trying. But it's not cute anymore. + +This applies to Intel CPU Ids too, for some reason, Intel just can't seem to +manage to create a new CPU family ID, and so are actually running out of their +256 Family 6 model IDs (2^8, or 16x16 hex). This is bizarrre to see such a huge +corporation fail to do something so utterly trivial, and suggests that there may +still be internal engineering issues lingering despite the recent attemps to +resolve them. + +2. PACKAGES: RPM remains unacceptably slow to get a simple package count query, +even with --nodigest / --nosignature, on one fedora 39 took 7 seconds, and in +mageia/fedora takes 0.35-0.80 seconds without those flags, which is easily 10x +slower than most package managers. There is nothing I can do to fix this that I +am aware of. If anyone knows of other options I can pass rpm to get it to list +the packages in a sane timeframe, let me know. + +During previous testing, nodigest/signature did speed it up, but that seems to +have regressed now again in one fedora test case, but does work in most others. +For now, --rpm flag will be required to see rpm package counts for core rpm +distros, otherwise people will blame inxi for being slow. + +-------------------------------------------------------------------------------- +BUGS: + +1. Nothing to speak of beyond some fixes. + +-------------------------------------------------------------------------------- +FIXES: + +1a. REPOS: For slpkg, adapted to new syntax for each repo. Retained support for +older syntaxes. + +1b. REPOS: Fixed output for urpm, pisi, and eopkg. These all had the same error, +which was creating a new full repo type line per repo listed by these software +tools. Now shows as expected: + +[repo name] ~ [repo location] + +2. main::set_path: added hack to put back in /opt/trinity/bin if distro forgot +to add it to PATH. + +3a. SYSTEM: DesktopData: Added fallback test for twin for Trinity version +detections. This goes along with path fix for this extreme corner case (so far +mageia only one who didn't add trinity location to PATH). + +3b. SYSTEM: DistroData: Added filter in case line 1 of /etc/issue doesn't +contain any valid characters. That's for T2 failure. + +3c. SYSTEM: DistroData: main::clean_characters(): removed filter for '+' because +that can be a meaningful part of the name, as in r1w1s1's codeberg issue #304, +where the + indicates it's Slackware 15.0 Current, aka: Slackware 15.0+. + +4. GRAPHICS: gl_data(): Issue #303 exposed a possible syntax that inxi had not +seen or handled before, the OpenGL core profile version string ending with a git +commit ID in parens: +OpenGL core profile version: 4.6 (Core Profile) Mesa 24.2.0-devel (git-f0620dae) +as opposed to handled and expected: +OpenGL core profile version: 4.6 (Core Profile) Mesa 24.2.0-devel + +This just required adding another 0 or 1 occurance test for that ending git +commit string. Really for anything tacked on to the end of the string after the +mesa / nvidia driver version value. + +5. PACKAGES: Added support for Mageia's urpmi package counts, using rpm. That's +either not worked, or broke recently, I don't know which. + +Note that rpm -qa is unacceptably slow (even using --nodigest --nosignature), so +requires use of --rpm flag for primarily rpm distros. Otherwise they will think +it's inxi that is slow. + +Just to document it, mageia also says they may move to dnf in the future. But +that should not matter with the redone logic. +https://wiki.mageia.org/en/Ways_to_install_programs#.deb_packages + +6. INFO: compilers: made clang version detection more robust. + +-------------------------------------------------------------------------------- +ENHANCEMENTS: + +1. SYSTEM: DesktopData: Added the following items: + +* menus/launchers: wayland gmenu, onagre, ulauncher, wmenu. + +* greeters: slick-greeter/elephant-greeter lightdm, but those are not the same +as greetd/seatd type greeters so not using, but leaving in comments. + +* bars: hybridbar. + +* x11 wm: MaXX. + +* wayland compositors: MagmaWM, newm [already abandoned], newm-atha [fork of +newm], niri, Pinnacle. + +2. INFO: PowerData: Added waylock + +3a. GRAPHICS: new AMD, Intel, Nvidia GPU IDs. + +4a. GRAPHICS: loongson GPU arch data. Note this data is extremely incomplete, +but at least it's got the framework to support Loongson GPUs now. Hard to find +this data in any reliable format beyond process nodes for each CPU, and since +most GPUs are iGPUs, in theory those should be the same. Maybe some Chinese +users will decide to provide this info. + +Also see CODE 4b for the tools for this item. + +5. PACKAGES: added package manager type mine. That's used in T2, maybe others. +Also added tools gastone, gasgui. + +6. REPOS: added basic T2 svn repo URL handler. Not robust, but that's fine. + +7. CPU: added Loongon CPU arch support, that should work reasonably well out of +the box since also found sample set of cpuinfo files. + +Also see CODE 4d for the tool for this item. + +-------------------------------------------------------------------------------- +CHANGES: + +1. REPOS: See FIX 4. Output was silly for repo reports, that's always been +broken, now correctly shows expected (for urpm, eopkg, pisi): + +Active urpm repos: + 1: [repo-name] ~ [repo location] + 2: [repo-name] ~ [repo location] + +lines per package manager tool, instead of one full repo line per repo in the +output: + +Active urpm repo: Stable + 1: [repo location] +Active urpm repo: Testing + 1: [repo location] + +2: MAIN::clean_characters(): removed filter for '+' because that can be part of +the distro name, like Slackware 15.0+ (current, that is). Hopefully this won't +create any issues for other name strings, but it should be ok. + +-------------------------------------------------------------------------------- +DOCUMENTATION: + +1a. DOCS: inxi-desktop-wm.txt, updated for new wm, bars, LM, launcher/menus. + +1b. DOCS: inxi-power.txt: added waylock to lockers sectsion. + +1c. DOCS: inxi-repo-package-manager.txt: updated for 3 syntaxes of slpkg, with +samples. Also updated for mageia urpm, which has special package list rpm +requirements. + +1d. DOCS: inxi-cpu.txt: added more links and sources for Loongson. + +1e. DOCS: inxi-distros.txt: refactored a bit, added top distro names to section +lists, added T2 instructions. + +-------------------------------------------------------------------------------- +CODE: + +1a. MAIN: ProgramData: + +* Had redundant busybox hash key data array, first one was replaced by explicit +busybox ash version logic in shell, and running one is for init data. + +I don't actually know what Perl does when you give it a second case of same key +name for a hash. Probably worth finding out. But it worked in testing. + +* Cleaned up, made consistent ', # unverified' program data key array comments +to make them easier to find/ Ideally one day we'll get people to help figure out +these unverified program version data items. Now to find a way to motivate +them... + +1b. MAIN: PackageData: Added --dbg 67 to make rpm packages handling debuggable. +Also refactored a bit, again to make rpm stuff debuggable. + +1c. MAIN: clean_characters: refactored, now uses references, not copies, and +removed '+' from filter. This can be meaningful part of distro name. + +2. REPOS: refactored completely slpkg to handle 3 possible config file syntax, +including the 2024-04-19 update which changes it completely. + +It's tempting to apply this to all multi-line repo syntax handlers, though the +cost is losing the order the repos appear in the file, since the data now goes +into a hash, which Perl does not have ordering, so it has to be sorted on +constructing of repo line arrays. + +3. DEBUGGER: Added kdesktop, kwin_wayland, twin --version data, might be useful. +kwin_wayland was an oversight, already had kwin_x11 so just never added wl. + +4a: TOOLS: made top comment header syntax consistent, added some GPL to ones +where I'd forgotten to do that. Updated copyright years. Also made empty line +use consistent in all the tool files. + +4b. TOOLS: gpu_raw.pl: Got rid of manually updated list of nv numeric keys, and +now extract it it automatically, so updates by itself when I add a new nv driver +series. Should have made it that way from start, but better late than never. +Always trying to chip away at anything manual I have to update for these +matching tables, makes maintaining the features easier. + +4c. TOOLS: gpu_raw.pl, gpu_ids.pl: added premilimary support for Loongson GPUs. +Very little data, but did at least get some device IDs for Loongson, but not +very reliable or accurate. This will need updates in future. Anyone Chinese +users want to help? + +4d. TOOLS: cpu_arch.pl: added Loongon support, first new CPU arch in a while! + +-------------------------------------------------------------------------------- +-- Harald Hope - Tue, 18 June 2024 13:16:38 -0700 + +================================================================================ Version: 3.3.34 Patch: 00 Date: 2024-04-13 @@ -10,7 +267,7 @@ larger, features. Most pressing in terms of numbers affected was the failure to detect in display, non console, for Wayland without Xwayland running. But updates will impact a fairly wide range of systems, though mostly are corner -case issues, but inxi is all about handling corner cases to make the handliing +case issues, but inxi is all about handling corner cases to make the handling of core stuff more robust and less prone to failure or error. -------------------------------------------------------------------------------- @@ -65,7 +322,7 @@ Thanks Codebergy issue poster thatso in issue #299 for pointing this out. 2. NETWORK: services: was missing nfsd because it's a kernel process, that's -corrected. Showed as: [nfsd] +corrected. Shows as: [nfsd], so its brackets have to be stripped off first. 3. MAIN: primary DISPLAY test fails to check for WAYLAND_DISPLAY and other desktop session environmental variables only present if X/Wayland are running @@ -111,12 +368,19 @@ in kernel yet but may be. Also added in various filter lists just in case. Search for'nouveau' to find occurances. -4. CPU: Added more AMD, Intel CPU Ids. The Intel stuff is getting really +4a. CPU: Added more AMD, Intel CPU Ids. The Intel stuff is getting really difficult to track, they refuse to adopt sane family updates, keeping it always -at 6, and thus cram more and more into finite 2 hexadecimal numbers, leaving -marketing terms in place of actual die process engineering. There's only so much -I can do to work around this, so if you find errors, do the research, and submit -corrections, keeping in mind these things are super fuzzy. +at 6, and thus cram more and more into finite 2 hexadecimal model numbers, +leaving marketing terms in place of actual die process engineering. There's only +so much I can do to work around this, so if you find errors, do the research, +and submit corrections, keeping in mind these things are super fuzzy. + +4b. CPU: Added premilinary support for Loongson CPUs. Using regex to detect +arch/process info, but not positive how it will handle MIPS tests. No way to +fully test without running inxi on an actual Loongson system due to the early +MIPS/ARM type tests inxi runs. We'll see. So far only testing with fake cpuinfo +files. But it's a start. Any actual Loongson user should test and supply +datasets if gpu/cpu info is off. 5. DRIVES: More disk vendors, the endless list. Unhandled list grows slowly, maybe one day someone will step in and figure out what more of them are, @@ -154,6 +418,11 @@ ZFS Array data. The regex was simply too convoluted to work reliably, so it failed under certain cases, FreeBSD Linear ZFS mode for example. +3. CPU: Added data/cpu/loongson cpuinfo data files; added loongson support to +tools/cpu_arch.pl. We'll see if it works, won't know for a while since needs +a hardware run loongson test, this is just theoretical, but fixes should be +minor in case it doesn't work. + -------------------------------------------------------------------------------- -- Harald Hope - Sat, 13 March 2024 19:00:08 -0800 ++++++ inxi.obsinfo ++++++ --- /var/tmp/diff_new_pack.6ISOJ3/_old 2024-06-20 16:48:00.183325130 +0200 +++ /var/tmp/diff_new_pack.6ISOJ3/_new 2024-06-20 16:48:00.223326537 +0200 @@ -1,5 +1,5 @@ name: inxi -version: 3.3.34-1 -mtime: 1713062973 -commit: c23f35b885563af2ba4bc831f89eab2bfff9a949 +version: 3.3.35-1 +mtime: 1718744407 +commit: d11fce80412dbfd0613dabba1840b645bb8b2f94