From 54730161c298f8b7f4a3604232d63dd98dbb3324 Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Wed, 3 Dec 2025 19:46:21 -0500 Subject: New upstream version 3.3.40-1. --- inxi | 37 ++++++++++++++---------- inxi.1 | 16 +++++++---- inxi.changelog | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 122 insertions(+), 19 deletions(-) diff --git a/inxi b/inxi index d76681b..6ca35d0 100755 --- a/inxi +++ b/inxi @@ -49,8 +49,8 @@ use POSIX qw(ceil uname strftime ttyname); ## INXI INFO ## my $self_name='inxi'; -my $self_version='3.3.39'; -my $self_date='2025-08-29'; +my $self_version='3.3.40'; +my $self_date='2025-11-25'; my $self_patch='00'; ## END INXI INFO ## @@ -5164,14 +5164,22 @@ sub get { my ($opt,$arg) = @_; if ($arg =~ /^(json|screen|xml)$/){ $output_type = $arg; + if ($arg eq 'screen'){ + $output_file = 'print'; + } } else { main::error_handler('bad-arg', $opt, $arg); }}, 'output-file|export-file:s' => sub { my ($opt,$arg) = @_; - if ($arg =~ /^(json|screen|xml)$/){ - $output_type = $arg; + if ($arg){ + if ($arg eq 'print' || main::check_output_path($arg)){ + $output_file = $arg; + } + else { + main::error_handler('output-file-bad', $opt, $arg); + } } else { main::error_handler('bad-arg', $opt, $arg); @@ -5253,7 +5261,7 @@ sub check_modifiers { main::error_handler('arg-modifier', '--limit', '-i'); } if ($output_type && $output_type ne 'screen' && !$output_file){ - main::error_handler('arg-modifier', '--output', '--output-file [filename]'); + main::error_handler('arg-modifier', '--output', '--output-file [file path+name]'); } if ($use{'partition-sort'} && !$show{'partition'} && !$show{'partition-full'}){ main::error_handler('arg-modifier', '--partition-sort', '-p, -P'); @@ -5666,9 +5674,9 @@ sub show_options { ['1', '', '--max-wrap,--wrap-max', "[70-xxx] Set maximum width where $self_name autowraps line starters. Current: $size{'max-wrap'}"], ['1', '', '--output', "[json|screen|xml] Change data output type. Requires - --output-file if not screen."], + --output-file. 'screen' restores default output."], ['1', '', '--output-file', "[Full filepath|print] Output file to be used for - --output."], + --output when types json/xml, or print to stdout."], ['1', '', '--separator, --sep', "[key:value separator character]. Change separator character(s) for key: value pairs."], ['1', '-y', '--width', "[empty|-1|1|60-xxx] Output line width max. Overrides @@ -12135,7 +12143,7 @@ sub cp_cpu_arch { $process = 'TSMC n4 (4nm)'; # desktop, granite ridge, confirm 2024 $year = '2024+';} # seen: 90,A0,C0 - elsif ($model =~ /^(9|[A-G]).$/){ + elsif ($model =~ /^([89]|[A-G]).$/){ $arch = 'Zen 6'; $note = '6'; $process = 'TSMC n2/n3 (2,3nm)'; @@ -12735,11 +12743,13 @@ sub cp_cpu_arch { } elsif ($model =~ /^(6)$/){ $arch = 'Netburst Presler'; # 6:2,4,5:presler + # not positive ID'ed, known stepping 5 45nm, but cpuworld lists as 65nm $process = 'Intel 65nm'; - $year = '2006';} + $year = '2006'; + $note = $check;} else { $arch = 'Netburst'; - $process = 'Intel 90-180nm'; + $process = 'Intel 65-180nm'; $year = '2000-06';} } # this is not going to e accurate, WhiskyL or Kaby L can ID as Skylake @@ -20460,13 +20470,11 @@ sub machine_output { } $j++; # start new row } - if ($data->{'firmware'}){ - $firmware = $data->{'firmware'}; - } $mobo_vendor = ($data->{'board_vendor'}) ? main::clean($data->{'board_vendor'}) : 'N/A'; $mobo_model = ($data->{'board_name'}) ? $data->{'board_name'}: 'N/A'; $mobo_version = ($data->{'board_version'})? $data->{'board_version'} : ''; $mobo_serial = main::filter($data->{'board_serial'}); + $firmware = ($data->{'firmware'}) ? $data->{'firmware'} : 'N/A'; $bios_vendor = ($data->{'bios_vendor'}) ? main::clean($data->{'bios_vendor'}) : 'N/A'; if ($data->{'bios_version'}){ $bios_version = $data->{'bios_version'}; @@ -20501,7 +20509,8 @@ sub machine_output { if ($extra > 1 && $data->{'board_mfg_date'}){ $rows->[$j]{main::key($num++,0,3,'mfg-date')} = $data->{'board_mfg_date'}; } - $rows->[$j]{main::key($num++,1,1,$firmware)} = $bios_vendor; + $rows->[$j]{main::key($num++,1,1,'Firmware')} = $firmware; + $rows->[$j]{main::key($num++,0,2,'vendor')} = $bios_vendor; $rows->[$j]{main::key($num++,0,2,'v')} = $bios_version; if ($bios_rev){ $rows->[$j]{main::key($num++,0,2,'rev')} = $bios_rev; diff --git a/inxi.1 b/inxi.1 index e759e6e..dc75d5b 100644 --- a/inxi.1 +++ b/inxi.1 @@ -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 "2025\-08\-29" "inxi 3.3.39" "inxi manual" +.TH INXI 1 "2025\-11\-25" "inxi 3.3.40" "inxi manual" .SH NAME inxi \- Command line system information tool for console and IRC @@ -1199,6 +1199,11 @@ Setting a specific color type removes the global color selection. .br See \fB\-\-output\fR. +.TP +.B \-\-export\-file [full path to output fil]\fR +.br +See \fB\-\-output\-file\fR. + .TP .B \-\-indent [11\-xx]\fR Change primary wide indent width. Generally useless. Only applied if output @@ -1225,7 +1230,8 @@ internal default value (110) and user configuration value \fBMAX_WRAP\fR. .TP .B \-\-output\fR, \fB \-\-export [json|screen|xml]\fR -Change data output type. Requires \-\-output\-file if not \fBscreen\fR. +Change data output type. Requires \fB\-\-output\-file\fR. \fBscreen\fR is the +inxi default mode, and is useful only to override a configuration file value. See this page \fIhttps://smxi.org/docs/inxi-json-xml-output.htm\fR BEFORE you post an issue about not understanding, or being unable to use, the output @@ -1236,9 +1242,9 @@ then this feature is not meant for you. .TP .B \-\-output\-file, \fB \-\-export\-file [full path to output file|print]\fR -The given directory path must exist. The directory path given must exist, -The \fBprint\fR options prints to stdout. -Required for non\-screen \fB\-\-output\fR formats (json|xml). +This is the file to write the output to. The given directory path must exist. + +To print the data type results to stdout, use \fBprint\fR. .TP .B \-\-separator\fR, \fB\-\-sep [character(s)]\fR diff --git a/inxi.changelog b/inxi.changelog index 23fea32..01f8e24 100644 --- a/inxi.changelog +++ b/inxi.changelog @@ -1,3 +1,91 @@ +================================================================================ +Version: 3.3.40 +Patch: 00 +Date: 2025-11-25 +-------------------------------------------------------------------------------- +RELEASE NOTES: +-------------------------------------------------------------------------------- + +This is a quick release to get the bug fix out. + +-------------------------------------------------------------------------------- +SPECIAL THANKS: + +1. Codeberg user wonky issue #347 for reporting the break of --output-file +option in 3.3.39. + +-------------------------------------------------------------------------------- +KNOWN ISSUES: + +1a. CPU: cpu_arch: impossible to determine with available data what pentium 4 +model 6, stepping 5 really is. + +1b. CPU: dmi table reports wrong socket for Intel pentium 4 cpu, but no way to +correct that, oh well. + +-------------------------------------------------------------------------------- +BUGS: + +1. OPTIONS: Accidentally copied the --output handler to the --output-file +handler, which breaks --output-file completely of course. Since this completely +breaks functionality of --output this is an urgent bug fix. + +-------------------------------------------------------------------------------- +FIXES: + +1. MACHINE: Corrected use of a value for field name with BIOS/UEFI etc. +Now correctly shows: + Firmware: BIOS + vendor: American Megatrends LLC. + v: F62d + date: 10/13/2021 + +This has been wrong for a long time, the rule for inxi is that field names are +not values, but that rule was violated in this case. Thanks mrmazda for noticing +that. + +1. OPTIONS: Going along with Bug 1, there was a missing default for setting +$output_file to 'print' automatically when type 'screen' was used. But that +basically just completely restores default inxi output behaviors. + +-------------------------------------------------------------------------------- +UPDATES: + +1a. CPU: cpu_arch: new data, AMD family BF model 80 is Zen 6, that was not +assigned so would fall back to default Zen 5. + +1b. CPU: cpu_arch: old data, thanks mrmazda, Pentium 4, family 15, model 6, +stepping 5 is 45nm, and thus 2008 generation, not 65nm and 2006. However Intel +very typically used the same model/stepping for 65nm, so no way to know. I +didn't realize their absurd use of family/model/stepping reached back this far. + +Added comments to indicate this, but since we can't know which is which, can't +really change anything. + +-------------------------------------------------------------------------------- +ENHANCEMENTS: + +None. + +-------------------------------------------------------------------------------- +CHANGES: + +None. + +-------------------------------------------------------------------------------- +DOCUMENTATION: + +1. OPTIONS/MAN: --output-file/--output: cleaned up docs, made it more clear what +the screen and print options actually do. + +-------------------------------------------------------------------------------- +CODE: + +Nothing worth mentioning beyond the bad copy paste bug fix for bug 1.. + +-------------------------------------------------------------------------------- +-- Harald Hope - Tue, 25 Nov 2025 11:54:13 -0700 + ================================================================================ Version: 3.3.39 Patch: 00 -- cgit v1.2.3