New version, new man. Big bug fix, new features.

Bugs:
1. Finally tracked down and solved the Xorg drivers bug which was caused by
Xorg checking its list of defaults 2 times, not 1, which resulted in failed
status on second try since it was already loaded. Secondary bug was found that
resulted in failing to show the failed, and only showing unloaded, which was also
wrong. This finally fixes issue #134 item 5. Thanks Mint users for the help on
that one.
2. Small bug in Openbox version detection, typo.
3. fixed a small glitch in the dm: detection that on systems where /var/run
exists but is not linked to /run, the dm would fail to get detected.

Fixes:
1. Xfce when defaulting to no version found goes to 4, this is a bad idea, it's
better to not show any version, since xfcie could one day be 5.
2. Fixed Blackbox fallback detection, there  were cases where Blackpox not found
in xprop -root, now it falls back to ps aux detection.
3. For wm: tested all known variants, added support for things like Mutter (Marco)
syntax. Note that bunsenlab uses XDG_CURRENT_DESKTOP=XFCE to work around some
glitches, but it's actually Openbox. If run as root, it will show openbox correctly,
otherwise -Sxxx will show wm: openbox, but that's due to bunsenlabs choices there.
4. Rewrote a lot of DistroData to handle more dynamic testing of values, it's sad
that at almost 2020 we are still stumbling around trying to find a consistent way
to identify distros, and derived distros.
5. Added more debugger data collectors in the logging, some data was not
being tracked well during log process which made debugging harder.

Enhancements:
1. New feature, -Gxx now shows for Xorg drivers alternate: which are drivers that
Xorg auto checks but which are not installed. Those were ignored in the past. This
can be useful to see for example that there are other driver install options
available. Thanks gm10 for that suggestion.
2. Tested and added the following explicit handlers for Distros: and base: in
some cases:
grml, peppermint, kali, siduction, aptosid, arco, manjaro, chakra, antergos,
bunsenlabs, and a few others. These are a pain to add and test, basically I have
to boot a live cd of each one, then test the files and ID methods, but the ID
methods must also be as dynamic as possible because you never know when a distro
is going to change how they use os-release vs issue vs lsb-release vs <name>-release.
I would have tested a few more but their livecds failed to properly run on vbox.
3. Added a few more disk vendor IDs.
4. Added some more programs to debugger data collector for future feature vdpau, but
that needs more data because we don't really know the variants for example for
dual card systems.
5. Man page: changed extra options to use only one option name per list of options
for that feature, each separe item is started as a new paragraph with -
This makes it a bit more consistent and maybe slightly easier to read the man.
Added -Gxx item, updated -Sx item.
This commit is contained in:
Harald Hope 2018-07-03 14:36:15 -07:00
parent 2f074e935b
commit f81aeda4e5
3 changed files with 277 additions and 147 deletions

253
inxi
View file

@ -31,8 +31,8 @@ use POSIX qw(uname strftime ttyname);
## INXI INFO ## ## INXI INFO ##
my $self_name='inxi'; my $self_name='inxi';
my $self_version='3.0.14'; my $self_version='3.0.15';
my $self_date='2018-06-27'; my $self_date='2018-07-03';
my $self_patch='00'; my $self_patch='00';
## END INXI INFO ## ## END INXI INFO ##
@ -1489,8 +1489,9 @@ sub display_data {
'gdmsession' => $ENV{'GDMSESSION'}, 'gdmsession' => $ENV{'GDMSESSION'},
'gnome-desktop-session-id' => $ENV{'GNOME_DESKTOP_SESSION_ID'}, 'gnome-desktop-session-id' => $ENV{'GNOME_DESKTOP_SESSION_ID'},
'kde3-full-session' => $ENV{'KDE_FULL_SESSION'}, 'kde3-full-session' => $ENV{'KDE_FULL_SESSION'},
'xdg-current-desktop' => $ENV{'XDG_CURRENT_DESKTOP'},
'kde-gte-4-session-version' => $ENV{'KDE_SESSION_VERSION'}, 'kde-gte-4-session-version' => $ENV{'KDE_SESSION_VERSION'},
'vdpau-driver' => $ENV{'VDPAU_DRIVER'},
'xdg-current-desktop' => $ENV{'XDG_CURRENT_DESKTOP'},
'xdg-session-desktop' => $ENV{'XDG_SESSION_DESKTOP'}, 'xdg-session-desktop' => $ENV{'XDG_SESSION_DESKTOP'},
# wayland data collectors: # wayland data collectors:
'xdg-session-type' => $ENV{'XDG_SESSION_TYPE'}, 'xdg-session-type' => $ENV{'XDG_SESSION_TYPE'},
@ -1528,6 +1529,8 @@ sub display_data {
['nvidia-smi','-q'], ['nvidia-smi','-q'],
['nvidia-smi','-q -x'], ['nvidia-smi','-q -x'],
['plasmashell','--version'], ['plasmashell','--version'],
['vainfo',''],
['vdpauinfo',''],
['weston-info',''], ['weston-info',''],
['wmctrl','-m'], ['wmctrl','-m'],
['weston','--version'], ['weston','--version'],
@ -3100,7 +3103,7 @@ sub program_values {
'mate-about' => ['^MATE[[:space:]]DESKTOP',-1,'--version','MATE',0,1,0], '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 # note, mate-session when launched with full path returns full path in version string
'mate-session' => ['mate-session',-1,'--version','MATE',0,1,0], 'mate-session' => ['mate-session',-1,'--version','MATE',0,1,0],
'openbox' => ['^openboxt',2,'--version','Openbox',0,1,0], 'openbox' => ['^openbox',2,'--version','Openbox',0,1,0],
'pekwm' => ['^pekwm',3,'--version','pekwm',0,1,0], 'pekwm' => ['^pekwm',3,'--version','pekwm',0,1,0],
'plasmashell' => ['^plasmashell',2,'--version','KDE Plasma',0,1,0], 'plasmashell' => ['^plasmashell',2,'--version','KDE Plasma',0,1,0],
'qtdiag' => ['^qt',2,'--version','Qt',0,1,0], 'qtdiag' => ['^qt',2,'--version','Qt',0,1,0],
@ -4239,7 +4242,9 @@ sub show_options {
['2', '-C', '', "Minimum CPU speed, if available." ], ['2', '-C', '', "Minimum CPU speed, if available." ],
['2', '-D', '', "Disk transfer speed; NVMe lanes; Disk serial number." ], ['2', '-D', '', "Disk transfer speed; NVMe lanes; Disk serial number." ],
['2', '-G', '', "Chip vendor:product ID for each video card; OpenGL ['2', '-G', '', "Chip vendor:product ID for each video card; OpenGL
compatibility version, if free drivers and available; compositor (experimental)." ], compatibility version, if free drivers and available; compositor (experimental);
alternate Xorg drivers (if available). Alternate means driver is on automatic
driver check list of Xorg for the card vendor, but is not installed on system." ],
['2', '-I', '', "Other detected installed gcc versions (if present). System ['2', '-I', '', "Other detected installed gcc versions (if present). System
default runlevel. Adds parent program (or tty) for shell info if not in default runlevel. Adds parent program (or tty) for shell info if not in
IRC. Adds Init version number, RC (if found)." ], IRC. Adds Init version number, RC (if found)." ],
@ -8108,7 +8113,7 @@ sub device_vendor {
['(^ST[^T]|[S]?SEAGATE|^X[AFP])','[S]?SEAGATE','Seagate',''], # real, SSEAGATE Backup+; XP1600HE30002 ['(^ST[^T]|[S]?SEAGATE|^X[AFP])','[S]?SEAGATE','Seagate',''], # real, SSEAGATE Backup+; XP1600HE30002
['^(WD|Western Digital|My Passport|00LPCX|Elements)','(^WDC|Western Digital)','Western Digital',''], ['^(WD|Western Digital|My Passport|00LPCX|Elements)','(^WDC|Western Digital)','Western Digital',''],
## Then better known ones ## ## Then better known ones ##
['^(A-DATA|ADATA)','^(A-DATA|ADATA)','A-Data',''], ['^(A-DATA|ADATA|AXN)','^(A-DATA|ADATA)','A-Data',''],
['^ADTRON','^(ADTRON)','Adtron',''], ['^ADTRON','^(ADTRON)','Adtron',''],
['^ASUS','^ASUS','ASUS',''], ['^ASUS','^ASUS','ASUS',''],
['^ATP','^ATP[\s\-]','ATP',''], ['^ATP','^ATP[\s\-]','ATP',''],
@ -8538,7 +8543,6 @@ sub display_data(){
} }
} }
} }
} }
} }
} }
@ -8605,6 +8609,9 @@ sub display_data(){
if ($drivers[1]){ if ($drivers[1]){
$row[0]{main::key($num++,'unloaded')} = $drivers[1]; $row[0]{main::key($num++,'unloaded')} = $drivers[1];
} }
if ($extra > 1 && $drivers[3]){
$row[0]{main::key($num++,'alternate')} = $drivers[3];
}
if ($graphics{'compositor'}){ if ($graphics{'compositor'}){
$row[0]{main::key($num++,'compositor')} = $graphics{'compositor'}; $row[0]{main::key($num++,'compositor')} = $graphics{'compositor'};
} }
@ -8763,11 +8770,15 @@ sub tty_data(){
sub x_drivers { sub x_drivers {
eval $start if $b_log; eval $start if $b_log;
my ($driver,@driver_data,,%drivers); my ($driver,@driver_data,,%drivers);
my ($failed,$loaded,$sep,$unloaded) = ('','','',''); my ($alternate,$failed,$loaded,$sep,$unloaded) = ('','','','','');
if (my $log = main::system_files('xorg-log')){ if (my $log = main::system_files('xorg-log')){
# $log = "$ENV{HOME}/bin/scripts/inxi/data/xorg-logs/Xorg.0-voyager-serena.log";
# $log = "$ENV{HOME}/bin/scripts/inxi/data/xorg-logs/loading-unload-failed-all41-mint.txt";
# $log = "$ENV{HOME}/bin/scripts/inxi/data/xorg-logs/loading-unload-failed-phd21-mint.txt";
# $log = "$ENV{HOME}/bin/scripts/inxi/data/xorg-logs/Xorg.0-gm10.log";
my @xorg = main::reader($log); my @xorg = main::reader($log);
# list is from sgfxi plus non-free drivers # list is from sgfxi plus non-free drivers, plus ARM drivers
my $list = 'amdgpu|apm|ark|ati|chips|cirrus|cyrix|fbdev|fglrx|glint|'; my $list = 'amdgpu|apm|ark|armsoc|ati|chips|cirrus|cyrix|fbdev|fbturbo|fglrx|glint|';
$list .= 'i128|i740|i810|iftv|imstt|intel|ivtv|mach64|mesa|mga|modesetting|'; $list .= 'i128|i740|i810|iftv|imstt|intel|ivtv|mach64|mesa|mga|modesetting|';
$list .= 'neomagic|newport|nouveau|nsc|nvidia|nv|openchrome|radeonhd|radeon|'; $list .= 'neomagic|newport|nouveau|nsc|nvidia|nv|openchrome|radeonhd|radeon|';
$list .= 'rendition|s3virge|s3|savage|siliconmotion|sisimedia|sisusb|sis|tdfx|'; $list .= 'rendition|s3virge|s3|savage|siliconmotion|sisimedia|sisusb|sis|tdfx|';
@ -8777,29 +8788,48 @@ sub x_drivers {
#@xorg = grep {/Failed|Unload|Loading/} @xorg; #@xorg = grep {/Failed|Unload|Loading/} @xorg;
foreach (@xorg){ foreach (@xorg){
next if !/Failed|Unload|Loading/; next if !/Failed|Unload|Loading/;
# print "$_\n";
# note that in file names, driver is always lower case # note that in file names, driver is always lower case
if (/\sLoading.*($list)_drv.so$/i ) { if (/\sLoading.*($list)_drv.so$/i ) {
$driver=lc($1); $driver=lc($1);
# we get all the actually loaded drivers first, we will use this to compare the # we get all the actually loaded drivers first, we will use this to compare the
# failed/unloaded, which have not always actually been truly loaded # failed/unloaded, which have not always actually been truly loaded
$drivers{$driver}="loaded"; $drivers{$driver}='loaded';
} }
# openbsd uses UnloadModule: # openbsd uses UnloadModule:
elsif (/(Unloading\s|UnloadModule).*($list)(_drv.so)?$/i ) { elsif (/(Unloading\s|UnloadModule).*\"?($list)(_drv.so)?\"?$/i ) {
$driver=lc($2); $driver=lc($2);
# we get all the actually loaded drivers first, we will use this to compare the # we get all the actually loaded drivers first, we will use this to compare the
# failed/unloaded, which have not always actually been truly loaded # failed/unloaded, which have not always actually been truly loaded
$drivers{$driver}="unloaded" ; if (exists $drivers{$driver} && $drivers{$driver} ne 'alternate'){
$drivers{$driver}='unloaded';
}
} }
# verify that the driver actually started the desktop, even with false failed messages # verify that the driver actually started the desktop, even with false failed messages
# which can occur. This is the driver that is actually driving the display # which can occur. This is the driver that is actually driving the display.
elsif (/Failed.*($list)\"?(_drv.so)?$/i ) { # note that xorg will often load several modules, like modesetting,fbdev,nouveau
$driver=lc($1); # NOTE:
# we need to make sure that the driver has already been truly loaded, not just #(II) UnloadModule: "nouveau"
# discussed, also set driver to lower case because sometimes it will show as #(II) Unloading nouveau
#(II) Failed to load module "nouveau" (already loaded, 0)
#(II) LoadModule: "modesetting"
elsif (/Failed.*($list)\"?.*$/i ) {
# Set driver to lower case because sometimes it will show as
# RADEON or NVIDIA in the actual x start # RADEON or NVIDIA in the actual x start
if (exists $drivers{$driver}){ $driver=lc($1);
$drivers{$driver}="failed"; # we need to make sure that the driver has already been truly loaded,
# not just discussed
if (exists $drivers{$driver} && $drivers{$driver} ne 'alternate'){
if ( $_ !~ /\(already loaded/){
$drivers{$driver}='failed';
}
# reset the previous line's 'unloaded' to 'loaded' as well
else {
$drivers{$driver}='loaded';
}
}
elsif ($_ =~ /module does not exist/){
$drivers{$driver}='alternate';
} }
} }
} }
@ -8817,9 +8847,13 @@ sub x_drivers {
$sep = ($failed) ? ',' : ''; $sep = ($failed) ? ',' : '';
$failed .= $sep . $_; $failed .= $sep . $_;
} }
elsif ($drivers{$_} eq 'alternate') {
$sep = ($alternate) ? ',' : '';
$alternate .= $sep . $_;
}
} }
$loaded ||= 'none'; $loaded ||= 'none';
@driver_data = ($loaded,$unloaded,$failed); @driver_data = ($loaded,$unloaded,$failed,$alternate);
} }
eval $end if $b_log; eval $end if $b_log;
return @driver_data; return @driver_data;
@ -15076,7 +15110,7 @@ sub get_xprop_de_data {
$desktop[1] = '' if $desktop[1] !~ /[0-9]\./; $desktop[1] = '' if $desktop[1] !~ /[0-9]\./;
} }
$desktop[0] ||= 'Xfce'; $desktop[0] ||= 'Xfce';
$desktop[1] ||= 4; $desktop[1] ||= ''; # xfce isn't going to be 4 forever
if ($extra > 0){ if ($extra > 0){
@data = main::program_values('xfdesktop-toolkit'); @data = main::program_values('xfdesktop-toolkit');
#$desktop[3] = main::program_version('xfdesktop',$data[0],$data[1],$data[2],$data[5],$data[6]); #$desktop[3] = main::program_version('xfdesktop',$data[0],$data[1],$data[2],$data[5],$data[6]);
@ -15157,6 +15191,11 @@ sub get_xprop_de_data {
$desktop[0] = $data[3]; $desktop[0] = $data[3];
$desktop[1] = main::program_version('herbstluftwm',$data[0],$data[1],$data[2],$data[5],$data[6]); $desktop[1] = main::program_version('herbstluftwm',$data[0],$data[1],$data[2],$data[5],$data[6]);
} }
elsif (main::check_program('openbox') && main::awk(\@xprop,'openbox_pid' )){
@data = main::program_values('openbox');
$desktop[0] = $data[3];
$desktop[1] = main::program_version('openbox',$data[0],$data[1],$data[2],$data[5],$data[6]);
}
# need to check starts line because it's so short # need to check starts line because it's so short
eval $end if $b_log; eval $end if $b_log;
} }
@ -15183,6 +15222,11 @@ sub get_ps_de_data {
$desktop[0] = $data[3]; $desktop[0] = $data[3];
$desktop[1] = main::program_version('awesome',$data[0],$data[1],$data[2],$data[5],$data[6]); $desktop[1] = main::program_version('awesome',$data[0],$data[1],$data[2],$data[5],$data[6]);
} }
elsif (main::check_program('blackbox') && main::awk(\@ps_cmd,'blackbox' )){
@data = main::program_values('blackbox');
$desktop[0] = $data[3];
$desktop[1] = main::program_version('blackbox',$data[0],$data[1],$data[2],$data[5],$data[6]);
}
# not in debian apt # not in debian apt
elsif (main::check_program('scrotwm') && main::awk(\@ps_cmd,'scrotwm' )){ elsif (main::check_program('scrotwm') && main::awk(\@ps_cmd,'scrotwm' )){
@data = main::program_values('scrotwm'); @data = main::program_values('scrotwm');
@ -15238,11 +15282,23 @@ sub get_wm {
if ( my $program = main::check_program('wmctrl') ){ if ( my $program = main::check_program('wmctrl') ){
my $cmd = "$program -m 2>/dev/null"; my $cmd = "$program -m 2>/dev/null";
my @data = main::grabber($cmd,'','strip'); my @data = main::grabber($cmd,'','strip');
main::log_data('dump','@data',\@data) if $b_log;
$desktop[5] = main::awk(\@data,'^Name',2,'\s*:\s*'); $desktop[5] = main::awk(\@data,'^Name',2,'\s*:\s*');
if ($desktop[5]){ if ($desktop[5]){
# IceWM 1.3.8 (Linux 3.2.0-4-amd64/i686) # variants: gnome shell;
$desktop[5] =~ s/[0-9]+\.[0-9][\S]+|[\[\(].*[\)\]]//g; # IceWM 1.3.8 (Linux 3.2.0-4-amd64/i686) ; Metacity (Marco) ; Xfwm4
$desktop[5] =~ s/\d+\.\d\S+|[\[\(].*\d+\.\d.*[\)\]]//g;
$desktop[5] = main::trimmer($desktop[5]); $desktop[5] = main::trimmer($desktop[5]);
# my $temp = (split /\s+/, $desktop[5])[0];
# if ($temp){
# $temp = lc($temp);
# @data = main::program_values($temp);
# # print Data::Dumper::Dumper \@data;
# if (@data){
# my $version = main::program_version($temp,$data[0],$data[1],$data[2],$data[5],$data[6]);
# $desktop[5] .= ' ' . $version if $version;
# }
# }
} }
} }
eval $end if $b_log; eval $end if $b_log;
@ -15360,8 +15416,8 @@ sub get_display_manager {
# extension in Arch note: to avoid positives with directories, test for -f # extension in Arch note: to avoid positives with directories, test for -f
# explicitly, not -e # explicitly, not -e
my @dms = qw(entranced.pid gdm.pid gdm3.pid kdm.pid ldm.pid my @dms = qw(entranced.pid gdm.pid gdm3.pid kdm.pid ldm.pid
lightdm.pid lxdm.pid mdm.pid nodm.pid pcdm.pid lightdm.pid lxdm.pid mdm.pid nodm.pid pcdm.pid sddm.pid slim.lock
sddm.pid slim.lock tint2.pid wdm.pid xdm.pid xenodm.pid); tint2.pid wdm.pid xdm.pid xenodm.pid);
# this is the only one I know of so far that has --version # this is the only one I know of so far that has --version
# lightdm outputs to stderr, so it has to be redirected # lightdm outputs to stderr, so it has to be redirected
my @dms_version = qw(lightdm); my @dms_version = qw(lightdm);
@ -15369,7 +15425,7 @@ sub get_display_manager {
# in most linux, /var/run is a sym link to /run, so no need to check it twice # in most linux, /var/run is a sym link to /run, so no need to check it twice
if ( -d "/var/run" ){ if ( -d "/var/run" ){
my $rdlink = readlink('/var/run'); my $rdlink = readlink('/var/run');
$b_vrun = 1 if $rdlink && $rdlink ne '/run'; $b_vrun = 1 if !$rdlink || ($rdlink && $rdlink ne '/run');
$b_vrunrc = 1 if -d "/var/run/rc.d"; $b_vrunrc = 1 if -d "/var/run/rc.d";
} }
foreach my $id (@dms){ foreach my $id (@dms){
@ -15446,8 +15502,8 @@ sub get_bsd_os {
sub get_linux_distro { sub get_linux_distro {
eval $start if $b_log; eval $start if $b_log;
my ($distro,$distro_file,$system_base) = ('','',''); my ($distro,$distro_id,$distro_file,$system_base) = ('','','','');
my ($b_antergos,$b_armbian,$b_mint,$b_osr,$b_raspbian,@working); my ($b_issue,$b_osr,$b_use_issue,@working);
my @derived = qw(antix-version aptosid-version kanotix-version knoppix-version my @derived = qw(antix-version aptosid-version kanotix-version knoppix-version
mandrake-release manjaro-release mx-version pardus-release porteus-version sabayon-release mandrake-release manjaro-release mx-version pardus-release porteus-version sabayon-release
siduction-version sidux-version slitaz-release solusos-release turbolinux-release siduction-version sidux-version slitaz-release solusos-release turbolinux-release
@ -15456,7 +15512,6 @@ sub get_linux_distro {
my @primary = qw(arch-release gentoo-release redhat-release slackware-version my @primary = qw(arch-release gentoo-release redhat-release slackware-version
SuSE-release); SuSE-release);
my $primary_s = join "|", @primary; my $primary_s = join "|", @primary;
my $base_default_s = 'antix-version|mx-version';
my $exclude_s = 'debian_version|devuan_version|ubuntu_version'; my $exclude_s = 'debian_version|devuan_version|ubuntu_version';
my $lsb_good_s = 'mandrake-release|mandriva-release|mandrakelinux-release|manjaro-release'; my $lsb_good_s = 'mandrake-release|mandriva-release|mandrakelinux-release|manjaro-release';
my $os_release_good_s = 'arch-release|rpi-issue|SuSE-release'; my $os_release_good_s = 'arch-release|rpi-issue|SuSE-release';
@ -15468,7 +15523,7 @@ sub get_linux_distro {
my $lsb_release = '/etc/lsb-release'; my $lsb_release = '/etc/lsb-release';
my $b_lsb = 1 if -f $lsb_release; my $b_lsb = 1 if -f $lsb_release;
my ($etc_issue,$issue) = ('','/etc/issue'); my ($etc_issue,$issue) = ('','/etc/issue');
my $b_issue = 1 if -f $issue; $b_issue = 1 if -f $issue;
# note: OpenSuse Tumbleweed 2018-05 has made /etc/issue created by sym link to /run/issue # note: OpenSuse Tumbleweed 2018-05 has made /etc/issue created by sym link to /run/issue
# and then made that resulting file 700 permissions, which is obviously a mistake # and then made that resulting file 700 permissions, which is obviously a mistake
$etc_issue = (main::reader($issue))[0] if -r $issue; $etc_issue = (main::reader($issue))[0] if -r $issue;
@ -15478,51 +15533,65 @@ sub get_linux_distro {
# antergos: Antergos Linux \r (\l) # antergos: Antergos Linux \r (\l)
if ($etc_issue){ if ($etc_issue){
$etc_issue = main::clean_characters($etc_issue); $etc_issue = main::clean_characters($etc_issue);
$b_antergos = 1 if $etc_issue =~ /antergos/i; if ($etc_issue =~ /antergos/i){
if ($etc_issue =~ /raspbian/i){ $distro_id = 'antergos';
$b_raspbian = 1; $b_use_issue = 1;
$os_release_good_s .= '|debian_version'; }
if (lc($etc_issue) =~ /(raspbian|peppermint)/){
$distro_id = $1;
$distro_file = $os_release if @osr;
}
elsif (lc($etc_issue) =~ /(grml)/){
$distro_id = $1;
$b_use_issue = 1;
} }
} }
# Note that antergos changed this around # 2018-05, and now lists
# antergos in os-release, sigh... We want these distros to use os-release
# if it contains their names. Last check below
if ( @osr && (grep {/manjaro|antergos|chakra/i} @osr ) ){
$distro_file = $os_release;
#$system_base = 'Arch Linux';
}
$distro_id = 'armbian' if grep {/armbian/} @distro_files;
main::log_data('dump','@distro_files',\@distro_files) if $b_log; main::log_data('dump','@distro_files',\@distro_files) if $b_log;
if ( scalar @distro_files == 1 ){ main::log_data('data',"distro_file-1: $distro_file") if $b_log;
$distro_file = $distro_files[0]; if (!$distro_file){
} if (scalar @distro_files == 1){
elsif (scalar @distro_files > 1) { $distro_file = $distro_files[0];
# special case, to force manjaro/antergos which also have arch-release }
# manjaro should use lsb, which has the full info, arch uses os release elsif (scalar @distro_files > 1) {
# antergos should use /etc/issue. Note that antergos changed this around # special case, to force manjaro/antergos which also have arch-release
# 2018-05, and now lists antergos in os-release, sigh... We want these # manjaro should use lsb, which has the full info, arch uses os release
# distros to use os-release if it contains their names, so leave arch-release # antergos should use /etc/issue. We've already checked os-release above
if ($b_antergos || grep {/manjaro|chakra/} @distro_files){ if ($distro_id eq 'antergos' || (grep {/antergos|chakra|manjaro/} @distro_files )){
if ( @osr && !(grep {/manjaro|antergos|chakra/i} @osr ) ){
@distro_files = grep {!/arch-release/} @distro_files; @distro_files = grep {!/arch-release/} @distro_files;
#$system_base = 'Arch Linux';
} }
# $system_base = 'Arch Linux'; my $distro_files_s = join "|", @distro_files;
} @working = (@derived,@primary);
$b_armbian = 1 if grep {/armbian/} @distro_files; foreach my $file (@working){
my $distro_files_s = join "|", @distro_files; if ( "/etc/$file" =~ /($distro_files_s)$/){
@working = (@derived,@primary); # Now lets see if the distro file is in the known-good working-lsb-list
foreach my $file (@working){ # if so, use lsb-release, if not, then just use the found file
if ( "/etc/$file" =~ /($distro_files_s)$/){ # this is for only those distro's with self named release/version files
# Now lets see if the distro file is in the known-good working-lsb-list # because Mint does not use such, it must be done as below
# if so, use lsb-release, if not, then just use the found file if ($b_lsb && $file =~ /$lsb_good_s/){
# this is for only those distro's with self named release/version files $distro_file = $lsb_release;
# because Mint does not use such, it must be done as below }
if ($b_lsb && $file =~ /$lsb_good_s/){ elsif (@osr && $file =~ /($os_release_good_s)$/){
$distro_file = $lsb_release; $distro_file = $os_release;
}
else {
$distro_file = "/etc/$file";
}
last;
} }
elsif (@osr && $file =~ /($os_release_good_s)$/){
$distro_file = $os_release;
}
else {
$distro_file = "/etc/$file";
}
last;
} }
} }
} }
main::log_data('data',"distro_file: $distro_file") if $b_log; main::log_data('data',"distro_file-2: $distro_file") if $b_log;
# first test for the legacy antiX distro id file # first test for the legacy antiX distro id file
if ( -f '/etc/antiX'){ if ( -f '/etc/antiX'){
@working = main::reader('/etc/antiX'); @working = main::reader('/etc/antiX');
@ -15560,14 +15629,17 @@ sub get_linux_distro {
} }
# otherwise try the default debian/ubuntu /etc/issue file # otherwise try the default debian/ubuntu /etc/issue file
elsif ($b_issue){ elsif ($b_issue){
$b_mint = ( $etc_issue && $etc_issue =~ /mint|lmde/i ) ? 1 : 0; if ( !$distro_id && $etc_issue && lc($etc_issue) =~ /(mint|lmde)/ ){
$distro_id = $1;
$b_use_issue = 1;
}
# os-release/lsb gives more manageable and accurate output than issue, # os-release/lsb gives more manageable and accurate output than issue,
# but mint should use issue for now. Antergos uses arch os-release, but issue shows them # but mint should use issue for now. Antergos uses arch os-release, but issue shows them
if (@osr && !$b_mint && !$b_antergos){ if (!$b_use_issue && @osr){
$distro = get_os_release(); $distro = get_os_release();
$b_osr = 1; $b_osr = 1;
} }
elsif ($b_lsb && !$b_mint && !$b_antergos){ elsif (!$b_use_issue && $b_lsb){
$distro = get_lsb_release(); $distro = get_lsb_release();
} }
elsif ($etc_issue) { elsif ($etc_issue) {
@ -15600,7 +15672,6 @@ sub get_linux_distro {
elsif ($b_lsb){ elsif ($b_lsb){
$distro = get_lsb_release(); $distro = get_lsb_release();
} }
} }
# now some final null tries # now some final null tries
if (!$distro ){ if (!$distro ){
@ -15613,21 +15684,38 @@ sub get_linux_distro {
} }
} }
if ($extra > 0){ if ($extra > 0){
my $base_default = 'antix-version|mx-version';
my $base_issue = 'bunsen';
my $base_manual = 'kali';
my $base_osr = 'aptosid|grml|siduction';
if (@osr){ if (@osr){
my ($b_base_default); my ($base_type) = ('');
if ($etc_issue && (grep {/($base_issue)/i} @osr)){
$system_base = $etc_issue;
}
elsif ($etc_issue && lc($etc_issue) =~ /($base_manual)/){
my $id = $1;
my %manual = (
'kali' => 'Debian testing',
);
$system_base = $manual{$id};
}
# more tests added here for other ubuntu derived distros # more tests added here for other ubuntu derived distros
if ( @distro_files && (grep {/\/etc\/($base_default_s)/} @distro_files) ){ elsif ( @distro_files && (grep {/($base_default)/} @distro_files) ){
$b_base_default = 1; $base_type = 'default';
} }
if ($b_base_default ){ elsif ($distro_id && $distro_id =~ /(mint)/){
$system_base = get_os_release('default'); $base_type = 'ubuntu';
} }
elsif ($b_mint){ elsif (@distro_files && (grep {/($base_osr)/} @distro_files) && !(grep {/($base_osr)/i} @osr)){
$system_base = get_os_release('ubuntu'); $system_base = get_os_release();
}
if (!$system_base && $base_type){
$system_base = get_os_release($base_type);
} }
} }
} }
$distro =~ s/Debian/Armbian/ if ($distro && $b_armbian); $distro =~ s/Debian/Armbian/ if ($distro && $distro_id eq 'armbian');
## finally, if all else has failed, give up ## finally, if all else has failed, give up
$distro ||= 'unknown'; $distro ||= 'unknown';
@distro_data = ($distro,$system_base); @distro_data = ($distro,$system_base);
@ -15707,7 +15795,10 @@ sub get_os_release {
# for mint system base # for mint system base
if ($base_type ){ if ($base_type ){
if ($working[0] eq 'ID_LIKE' && $working[1]){ if ($working[0] eq 'ID_LIKE' && $working[1]){
$working[1] =~ s/ubuntu\sdebian/ubuntu/ if $base_type eq 'ubuntu'; if ($base_type eq 'ubuntu'){
$working[1] =~ s/ubuntu\sdebian/ubuntu/;
$working[1] = 'ubuntu' if $working[1] eq 'debian';
}
$base_name = ucfirst($working[1]); $base_name = ucfirst($working[1]);
} }
elsif ($base_type eq 'ubuntu' && $working[0] eq 'UBUNTU_CODENAME' && $working[1]){ elsif ($base_type eq 'ubuntu' && $working[0] eq 'UBUNTU_CODENAME' && $working[1]){
@ -15749,7 +15840,7 @@ sub get_os_release {
elsif ($base_type eq 'default' && ($pretty_name || ($name && $version_name) ) ){ elsif ($base_type eq 'default' && ($pretty_name || ($name && $version_name) ) ){
$distro = ($name && $version_name) ? "$name $version_name" : $pretty_name; $distro = ($name && $version_name) ? "$name $version_name" : $pretty_name;
} }
# maybe lmde, if that exists? # LMDE has only limited data in os-release, no _LIKE values
elsif ( $base_type eq 'ubuntu' && $lc_name =~ /^(debian|ubuntu)/ && ($pretty_name || ($name && $version_name))){ elsif ( $base_type eq 'ubuntu' && $lc_name =~ /^(debian|ubuntu)/ && ($pretty_name || ($name && $version_name))){
$distro = ($name && $version_name) ? "$name $version_name": $pretty_name; $distro = ($name && $version_name) ? "$name $version_name": $pretty_name;
} }

110
inxi.1
View file

@ -1,4 +1,4 @@
.TH INXI 1 "2018\-06\-23" inxi "inxi manual" .TH INXI 1 "2018\-07\-03" inxi "inxi manual"
.SH NAME .SH NAME
inxi \- Command line system information script for console and IRC inxi \- Command line system information script for console and IRC
.SH SYNOPSIS .SH SYNOPSIS
@ -478,24 +478,20 @@ extra data level.
.B \-x \-A\fR .B \-x \-A\fR
\- Adds version/port(s)/driver version (if available) for each Audio \- Adds version/port(s)/driver version (if available) for each Audio
device. device.
.TP
.B \-x \-A\fR
\- Adds PCI Bus ID/USB ID number of each Audio device. \- Adds PCI Bus ID/USB ID number of each Audio device.
.TP .TP
.B \-x \-B\fR .B \-x \-B\fR
\- Adds vendor/model, battery status (if battery present). \- Adds vendor/model, battery status (if battery present).
.TP
.B \-x \-B\fR
\- Adds attached battery powered peripherals (\fBDevice\-[number]:\fR) if \- Adds attached battery powered peripherals (\fBDevice\-[number]:\fR) if
detected (keyboard, mouse, etc.). detected (keyboard, mouse, etc.).
.TP .TP
.B \-x \-C\fR .B \-x \-C\fR
\- Adds bogomips on CPU (if available) \- Adds bogomips on CPU (if available)
.TP
.B \-x \-C\fR
\- Adds CPU Flags (short list). \- Adds CPU Flags (short list).
.TP
.B \-x \-C\fR
\- Adds CPU microarchitecture + revision (e.g. Sandy Bridge, K8, ARMv8, P6, \- Adds CPU microarchitecture + revision (e.g. Sandy Bridge, K8, ARMv8, P6,
etc.). Only shows data if detected. Newer microarchitectures will have etc.). Only shows data if detected. Newer microarchitectures will have
to be added as they appear, and require the CPU family ID and model ID. to be added as they appear, and require the CPU family ID and model ID.
@ -514,11 +510,9 @@ or if you have added to \fB/etc/sudoers\fR (sudo v. 1.7 or newer):
.TP .TP
.B \-x \-G\fR .B \-x \-G\fR
\- Adds direct rendering status. \- Adds direct rendering status.
.TP
.B \-x \-G\fR
\- Adds (for single GPU, nvidia driver) screen number that GPU is running on. \- Adds (for single GPU, nvidia driver) screen number that GPU is running on.
.TP
.B \-x \-G\fR
\- Adds PCI Bus ID/USB ID number of each Graphics card. \- Adds PCI Bus ID/USB ID number of each Graphics card.
.TP .TP
.B \-x \-i\fR .B \-x \-i\fR
@ -549,29 +543,24 @@ values, as with global temporary, and global temporary deprecated.
.B \-x \-I\fR .B \-x \-I\fR
\- Adds current init system (and init rc in some cases, like OpenRC). \- Adds current init system (and init rc in some cases, like OpenRC).
With \fB\-xx\fR, shows init/rc version number, if available. With \fB\-xx\fR, shows init/rc version number, if available.
.TP
.B \-x \-I\fR
\- Adds default system gcc. With \fB\-xx\fR, also show other installed gcc \- Adds default system gcc. With \fB\-xx\fR, also show other installed gcc
versions. versions.
.TP
.B \-x \-I\fR
\- Adds current runlevel (not available with all init systems). \- Adds current runlevel (not available with all init systems).
.TP
.B \-x \-I\fR
\- If in shell (i.e. not in IRC client), adds shell version number, if available. \- If in shell (i.e. not in IRC client), adds shell version number, if available.
.TP .TP
.B \-x \-m\fR .B \-x \-m\fR
\- If present, adds maximum memory module/device size in the Array line. \- If present, adds maximum memory module/device size in the Array line.
Only some systems will have this data available. Shows estimate if it can Only some systems will have this data available. Shows estimate if it can
generate one. generate one.
.TP
.B \-x \-m\fR
\- Adds device type in the Device line. \- Adds device type in the Device line.
.TP .TP
.B \-x \-N\fR .B \-x \-N\fR
\- Adds version/port(s)/driver version (if available) for each Network card; \- Adds version/port(s)/driver version (if available) for each Network card;
.TP
.B \-x \-N\fR
\- Adds PCI Bus ID/USB ID number of each Network card. \- Adds PCI Bus ID/USB ID number of each Network card.
.TP .TP
.B \-x \-R\fR .B \-x \-R\fR
@ -585,11 +574,9 @@ bitmap (if present). Resync line, shows blocks synced/total blocks.
.TP .TP
.B \-x \-S\fR .B \-x \-S\fR
\- Adds desktop toolkit (\fBtk\fR), if available (GNOME/Xfce/KDE only). \- Adds desktop toolkit (\fBtk\fR), if available (GNOME/Xfce/KDE only).
.TP
.B \-x \-S\fR \- Adds Kernel gcc version.
\- Kernel gcc version.
.TP
.B \-x \-S\fR
\- Adds to \fBDistro:\fR \fBbase:\fR if detected. System base will only be seen on \- Adds to \fBDistro:\fR \fBbase:\fR if detected. System base will only be seen on
a subset of distributions. The distro must be both derived from a parent distro (e.g. Mint from a subset of distributions. The distro must be both derived from a parent distro (e.g. Mint from
Ubuntu), and explicitly added to the supported distributions for this feature. Due to Ubuntu), and explicitly added to the supported distributions for this feature. Due to
@ -605,8 +592,7 @@ methods are found for each distribution system base detection.
.TP .TP
.B \-x \-w\fR,\fB \-W\fR .B \-x \-w\fR,\fB \-W\fR
\- Adds humidity and barometric pressure. \- Adds humidity and barometric pressure.
.TP
.B \-x \-w\fR,\fB \-W\fR
\- Adds wind speed and direction. \- Adds wind speed and direction.
.TP .TP
.B \-xx \-A\fR .B \-xx \-A\fR
@ -618,8 +604,7 @@ data (if available) as the voltage now / minimum design voltage.
.TP .TP
.B \-xx \-D\fR .B \-xx \-D\fR
\- Adds disk serial number. \- Adds disk serial number.
.TP
.B \-xx \-D\fR
\- Adds disk speed (if available). This is the theoretical top speed of the \- Adds disk speed (if available). This is the theoretical top speed of the
device as reported. This speed may be restricted by system board limits, eg. device as reported. This speed may be restricted by system board limits, eg.
a SATA 3 drive on a SATA 2 board may report SATA 2 speeds, but this is not a SATA 3 drive on a SATA 2 board may report SATA 2 speeds, but this is not
@ -639,40 +624,43 @@ For a PCIe 3 NVMe drive, with speed of \fB8 GT/s\fR and \fB4\fR lanes
.TP .TP
.B \-xx \-G\fR .B \-xx \-G\fR
\- Adds vendor:product ID of each Graphics card. \- Adds vendor:product ID of each Graphics card.
.TP
.B \-xx \-G\fR
\- Adds compositor, if found (experimental). \- Adds compositor, if found (experimental).
.TP
.B \-xx \-G\fR
\- For free drivers, adds OpenGL compatibility version number if available. \- For free drivers, adds OpenGL compatibility version number if available.
For nonfree drivers, the core version and compatibility versions are usually For nonfree drivers, the core version and compatibility versions are usually
the same. Example: the same. Example:
\fBv: 3.3 Mesa 11.2.0 compat\-v: 3.0\fR \fBv: 3.3 Mesa 11.2.0 compat\-v: 3.0\fR
\- If available, shows \fBalternate:\fR Xorg drivers. This means a driver on
the default list of drivers Xorg automatically checks for the card, but which
is not installed. For example, if you have \fBnouveau\fR driver, \fBnvidia\fR would
show as alternate if it was not installed. Note that \fBalternate:\fR does NOT mean you
should have it, it's just one of the drivers Xorg checks to see if is present
and loaded when checking the card. This can let you know there are other driver options.
Note that if you have explicitly set the driver in \fBxorg.conf\fR, Xorg will not
create this automatic check driver list.
.TP .TP
.B \-xx \-I\fR .B \-xx \-I\fR
\- Adds init type version number (and rc if present). \- Adds init type version number (and rc if present).
.TP
.B \-xx \-I\fR
\- Adds other detected installed gcc versions (if present). \- Adds other detected installed gcc versions (if present).
.TP
.B \-xx \-I\fR
\- Adds system default runlevel, if detected. Supports Systemd/Upstart/SysVinit \- Adds system default runlevel, if detected. Supports Systemd/Upstart/SysVinit
type defaults. type defaults.
.TP
.B \-xx \-I\fR
\- Adds parent program (or tty) that started shell, if not IRC client. \- Adds parent program (or tty) that started shell, if not IRC client.
.TP .TP
.B \-xx \-m\fR .B \-xx \-m\fR
\- Adds memory device Manufacturer. \- Adds memory device Manufacturer.
.TP
.B \-xx \-m\fR
\- Adds memory device Part Number (\fBpart\-no:\fR). Useful for ordering new or \- Adds memory device Part Number (\fBpart\-no:\fR). Useful for ordering new or
replacement memory sticks etc. Part numbers are unique, particularly replacement memory sticks etc. Part numbers are unique, particularly
if you use the word \fBmemory\fR in the search as well. With \fB\-xxx\fR, if you use the word \fBmemory\fR in the search as well. With \fB\-xxx\fR,
also shows serial number. also shows serial number.
.TP
.B \-xx \-m\fR
\- Adds single/double bank memory, if data is found. Note, this may not be 100% right \- Adds single/double bank memory, if data is found. Note, this may not be 100% right
all of the time since it depends on the order that data is found in \fBdmidecode\fR all of the time since it depends on the order that data is found in \fBdmidecode\fR
output for \fBtype 6\fR and \fBtype 17\fR. output for \fBtype 6\fR and \fBtype 17\fR.
@ -713,18 +701,15 @@ be a problem with the Linux kernel obtaining the cycle count, so this almost
always shows \fB0\fR. There's nothing that can be done about this glitch, the always shows \fB0\fR. There's nothing that can be done about this glitch, the
data is simply not available as of 2018\-04\-03), location (only available from data is simply not available as of 2018\-04\-03), location (only available from
\fBdmidecode\fR derived output). \fBdmidecode\fR derived output).
.TP
.B \-xxx \-B\fR
\- Adds attached device \fBrechargeable: [yes|no]\fR information. \- Adds attached device \fBrechargeable: [yes|no]\fR information.
.TP .TP
.B \-xxx \-D\fR .B \-xxx \-D\fR
\- Adds disk firmware revision number (if available). \- Adds disk firmware revision number (if available).
.TP
.B \-xxx \-D\fR
\- Adds disk partition scheme (in most cases), e.g. \fBscheme: GPT\fR. Currently not \- Adds disk partition scheme (in most cases), e.g. \fBscheme: GPT\fR. Currently not
able to detect all schemes, but handles the most common, e.g. \fBGPT\fR or \fBMBR\fR. able to detect all schemes, but handles the most common, e.g. \fBGPT\fR or \fBMBR\fR.
.TP
.B \-xxx \-D\fR
\- Adds disk rotation speed (in some but not all cases), e.g. \fBrotation: 7200 rpm\fR. \- Adds disk rotation speed (in some but not all cases), e.g. \fBrotation: 7200 rpm\fR.
Only appears if detected (SSD drives do not have rotation speeds, for example). If none Only appears if detected (SSD drives do not have rotation speeds, for example). If none
found, nothing shows. Not all disks report this speed, so even if they are spinnning, found, nothing shows. Not all disks report this speed, so even if they are spinnning,
@ -732,8 +717,7 @@ no data will show.
.TP .TP
.B \-xxx \-I\fR .B \-xxx \-I\fR
\- For \fBShell:\fR adds \fB(su|sudo|login)\fR to shell name if present. \- For \fBShell:\fR adds \fB(su|sudo|login)\fR to shell name if present.
.TP
.B \-xxx \-I\fR
\- For \fBrunning in:\fR adds \fB(SSH)\fR to parent, if present. SSH detection \- For \fBrunning in:\fR adds \fB(SSH)\fR to parent, if present. SSH detection
uses the \fBwho am i\fR test. uses the \fBwho am i\fR test.
.TP .TP
@ -742,15 +726,12 @@ uses the \fBwho am i\fR test.
\fBbus width: 64 bit (total: 72 bits)\fR. Note that total / data widths are mixed up \fBbus width: 64 bit (total: 72 bits)\fR. Note that total / data widths are mixed up
sometimes in dmidecode output, so inxi will take the larger value as the total if sometimes in dmidecode output, so inxi will take the larger value as the total if
present. If no total width data is found, then inxi will not show that item. present. If no total width data is found, then inxi will not show that item.
.TP
.B \-xxx \-m\fR
\- Adds device Type Detail, e.g. \fBdetail: DDR3 (Synchronous)\fR. \- Adds device Type Detail, e.g. \fBdetail: DDR3 (Synchronous)\fR.
.TP
.B \-xxx \-m\fR
\- If present, adds memory module voltage. Only some systems will have this \- If present, adds memory module voltage. Only some systems will have this
data available. data available.
.TP
.B \-xxx \-m\fR
\- Adds device serial number. \- Adds device serial number.
.TP .TP
.B \-xxx \-R\fR .B \-xxx \-R\fR
@ -764,8 +745,7 @@ data available.
\- Adds, if run in X, shell/panel type (\fBinfo\fR), if present. \- Adds, if run in X, shell/panel type (\fBinfo\fR), if present.
If none, shows nothing. Supports some current desktop extras like gnome\-panel, If none, shows nothing. Supports some current desktop extras like gnome\-panel,
lxde\-panel, and others. Added mainly for Mint support. lxde\-panel, and others. Added mainly for Mint support.
.TP
.B \-xxx \-S\fR
\- Adds, if run in X, window manager type (\fBwm\fR), if available. \- Adds, if run in X, window manager type (\fBwm\fR), if available.
Not all window managers are supported. Some desktops support using more than one Not all window managers are supported. Some desktops support using more than one
window manager, so this can be useful to see what windom manager is actually running. window manager, so this can be useful to see what windom manager is actually running.
@ -783,11 +763,9 @@ The \fB\-\-admin\fR option only has to be used once, and will trigger the follow
.B \-\-admin \-C\fR .B \-\-admin \-C\fR
\- Adds CPU family, model\-id, and stepping (replaces \fBrev\fR of \fB\-Cx\fR). \- Adds CPU family, model\-id, and stepping (replaces \fBrev\fR of \fB\-Cx\fR).
Format is \fBhexadecimal (decimal)\fR if greater than 9, otherwise \fBhexadecimal\fR. Format is \fBhexadecimal (decimal)\fR if greater than 9, otherwise \fBhexadecimal\fR.
.TP
.B \-\-admin \-C\fR
\- Adds CPU microcode. Format is \fBhexadecimal\fR. \- Adds CPU microcode. Format is \fBhexadecimal\fR.
.TP
.B \-\-admin \-C\fR
\- Adds CPU Errata (bugs) as known by your current kernel. \- Adds CPU Errata (bugs) as known by your current kernel.
.SH ADVANCED OPTIONS .SH ADVANCED OPTIONS

View file

@ -1,3 +1,64 @@
=====================================================================================
Version: 3.0.15
Patch Version: 00
Script Date: 2018-07-03
-----------------------------------
Changes:
-----------------------------------
New version, new man. Big bug fix, new features.
Bugs:
1. Finally tracked down and solved the Xorg drivers bug which was caused by
Xorg checking its list of defaults 2 times, not 1, which resulted in failed
status on second try since it was already loaded. Secondary bug was found that
resulted in failing to show the failed, and only showing unloaded, which was also
wrong. This finally fixes issue #134 item 5. Thanks Mint users for the help on
that one.
2. Small bug in Openbox version detection, typo.
3. fixed a small glitch in the dm: detection that on systems where /var/run
exists but is not linked to /run, the dm would fail to get detected.
Fixes:
1. Xfce when defaulting to no version found goes to 4, this is a bad idea, it's
better to not show any version, since xfcie could one day be 5.
2. Fixed Blackbox fallback detection, there were cases where Blackpox not found
in xprop -root, now it falls back to ps aux detection.
3. For wm: tested all known variants, added support for things like Mutter (Marco)
syntax. Note that bunsenlab uses XDG_CURRENT_DESKTOP=XFCE to work around some
glitches, but it's actually Openbox. If run as root, it will show openbox correctly,
otherwise -Sxxx will show wm: openbox, but that's due to bunsenlabs choices there.
4. Rewrote a lot of DistroData to handle more dynamic testing of values, it's sad
that at almost 2020 we are still stumbling around trying to find a consistent way
to identify distros, and derived distros.
5. Added more debugger data collectors in the logging, some data was not
being tracked well during log process which made debugging harder.
Enhancements:
1. New feature, -Gxx now shows for Xorg drivers alternate: which are drivers that
Xorg auto checks but which are not installed. Those were ignored in the past. This
can be useful to see for example that there are other driver install options
available. Thanks gm10 for that suggestion.
2. Tested and added the following explicit handlers for Distros: and base: in
some cases:
grml, peppermint, kali, siduction, aptosid, arco, manjaro, chakra, antergos,
bunsenlabs, and a few others. These are a pain to add and test, basically I have
to boot a live cd of each one, then test the files and ID methods, but the ID
methods must also be as dynamic as possible because you never know when a distro
is going to change how they use os-release vs issue vs lsb-release vs <name>-release.
I would have tested a few more but their livecds failed to properly run on vbox.
3. Added a few more disk vendor IDs.
4. Added some more programs to debugger data collector for future feature vdpau, but
that needs more data because we don't really know the variants for example for
dual card systems.
5. Man page: changed extra options to use only one option name per list of options
for that feature, each separe item is started as a new paragraph with -
This makes it a bit more consistent and maybe slightly easier to read the man.
Added -Gxx item, updated -Sx item.
-----------------------------------
-- Harald Hope - Tue, 03 Jul 2018 14:13:32 -0700
===================================================================================== =====================================================================================
Version: 3.0.14 Version: 3.0.14
Patch Version: 00 Patch Version: 00