and a small bug for blank files there.
Second, made the --output error message more clear for bad file structure now lists
the 3 requirements: must be full path, must be writeable directory, and must have
a file in it.
Third, another subtle thing, after a lot of research, am trying the MiB GiB format
because it's technically more accurate and less ambiguous than GB, which is used
either to refer to 1000 bite blocks OR to 1024 blocks, depending on the platform etc.
So rather than hope people get it, trying that slightly more wordy format, and maybe
if people wonder what it is.
It's here! Perl inxi, first official release. So many changes, really too many
to list.
But here's a few:
1. of course, full rewrite to Perl 5.x. Supports as old as 5.008, as new as current.
2. Better line length nandlers. Fully dynamic, robust, shrinks and expands to fit
either taste or viewport.
3. Long options for all options now, plus of course the short options everyone
is used to.
4. New options: --usb; --slots (pci slot report); --sleep (change cpu sleep time);
and many more. Check --help or man page for details.
5. Vastly improved --recommends, now does per distro package recommends, and shows
only Linux data to Linux systems, and BSD data to BSD systems.
6. Hugely improved debugger as well.
7. Far more accurate output, most output is now in key/value pairs, because:
8. inxi now exports to json and xml! See --output/--output-file for info.
9. Enhancedd repo output, added deb822 type, solus
10. Radically enhanced network data, now shows all IP / IF devices connected to
each nic, not just one, both IP v4 and v6.
11. USB audio and network device actual drivers
12. better handling of compiler data.
13. Basic ARM machine data now, if present to inxi
14. Graphics: per card driver info alongside the original xorg drivers.
15. Better integration of partitions, RAID, unmounted partitions, and HDD data.
16. Better sensors handling of free video driver sensor data, well, not better,
it's now there, along with fan speeds for gpus.
17. RAID is enhanced, and now can show > 1 RAID type on a system, and the RAID
is improved.
18. Much improved disk/partition/memory sizing, inxi now always works internally
with KB units, and changes them on output to the appropriate units.
19. Fully redone man page for all the new options and the long options.
And so much more. Anyway, here it is, the first release.
2018-03-19 release. I'm putting the last issue requests on the last forums,
so assuming no real further bugs found, expect Perl inxi 2.9.01 to hit around
Monday or Tuesday. If any bugs are found, of course, those will be fixed before
release of the new Perl inxi.
Basically, if you want to see if you can find bugs, this is the time to do it, not
AFTER release. I've posted on many forums, and have given the various distros a
chance to help squash the bugs their users might see, some have been fantastic
(AntiX, you were the best by far), others, not so much. Their loss in the latter
case since the purpose of beta testing is to find bugs before, not after, release.
If you want to see the differences in recommends, and dependencies, grab pinxi
development branch here:
wget -O pinxi https://github.com/smxi/inxi/raw/inxi-perl/pinxi
or:
git clone https://github.com/smxi/inxi --branch inxi-perl --single-branch
and run: pinxi --recommends
The main thing I'd strongly urge all maintainers to add, for long term stability
and speed and reliability, is dig, which can be used if present to get very fast,
reliable, WAN IP information.
All of the other recommends are pretty much the same, for graphics, xdpyinfo,
xrandr, and glxinfo. For networking, ip or ifconfig, along with dig. For all usb
related identification, lsusb, unfortunately, I wish I could get rid of that tool,
it's very slow, but I can't. The --recommends output shows the complete set.
Obviously, Bash and Gawk are no longer recommends, nor are the tools like grep,
sed, tr, wc, etc, all those are done with Perl, so any shell plus Perl 5.08 or
newer Perl 5.x is all that's really required, beyond normal system reporting
tools like lspci etc.
For json/xml export, two Perl modules are needed, again, see --recommends
Making sure tarball etc is up to date, so it can be stored in 'tarball's branch.
MAINTAINERS:
Pinxi 2.9.00-xxx-p (inxi-perl branch) is nearing completion of its beta test cycle,
and, barring any new issues or bugs (TEST IT NOW AND REPORT ISSUES NOW!), I expect
to release pinxi 2.9.00 as inxi 2.9.01 shortly after I complete the advanced
RAID feature, which should be this week.
If no real issues appear during the following week after the inxi 2.9.0 release, it
will be moved to inxi 3.0.0, as the first stable Perl inxi release.
There will be a new branch, inxi-legacy, that will have the Gawk->Bash inxi 2.3..56
files for historical purposes only. No further work will be done on inxi 2.3 from
now on.
cpu output issues. Now inxi handles > 8 cores in terms of output filters,
descriptions, correctly noting that it's multithreaded.
Because AMD has entered the Multithreading game, I've changed the trade term:
HT - HyperThreading to MT - MultiThreading to support both Intel and AMD variants.
Updated CPU output filters to also account for these very large core counts.
I believe this commit now adds full support for the new Ryzen series, but I'll have
to see when it comes to other variants that may appear. I've tried to future proof
the MT tests, but I won't know of those are fully functional and accurate until
inxi sees the real data.
Because I don't want to break existing cpu logic, I just added in a rizen switch,
which will just use cpu_core_count value, then trigger HT output.
This fix may or may not work, but the issue poster vanished and has not followed up.
For now I'm keeping this a Ryzen specific adjustment, but it may be safe to extend
it further, that is, if siblings > 1 && siblings = 2 * cores then it's HT.
issue a forum poster raised, which is the fact that despite the fact that GNU/Linux
has had reasonably ok zfs support for years now, inxi only tested for zfs on bsd
systems.
This has been corrected. Due to the complexity of handling software raid, inxi
will now test first for ZFS data, if none is found, it will then test for
/proc/mdstat.
In a perfect world I'd like to have full dynamic Raid support, but I'm missing
all the key ingredients required to add that:
1. systems to test on
2. software raid, I don't use it
3. data collection for non mdraid and zfs software raid, including the values
possible to gather from all non software raid.
Basically, the only way I'd extend -R raid option is if I get direct ssh access to
a machine that uses the alternate software raid type, otherwise it would take
forever to figure out the options.
Since the number of people who might be actually running zfs and mdraid and
using inxi probably numbers in the 10 globally, I figured this solution was a fine
way to handle adding zfs without messing up mdraid, which is more common on linux.
It also does not break BSDs, since bsds as far as I know don't use mdraid, and don't
have /proc/mdraid in the first place.
Also redid the man page to add -! 41, -! 42, -! 43, -! 44 options, which bypass
curl, fetch, wget, and all of them, respectively. Plus making the lines less wide.
That should make those people who actually use 80 column wide vi as an editor
happy, lol.
easier and more predictable to find. Better section headers, all ordering alpha
by subsections.
Fixed some small debugger gatherer oversights as well.
Note that I made the debugger stuff more portable, so I could use it in another
program.
Note that this is the last choice because it's slow, the order has been revised:
1. curl
2. wget
3. fetch
4. Perl 5 HTTP::Tiny
5. OpenBSD ftp
wget has been downgraded due to the recent 1.19-2 bug with wget -O that did
not get resolved quickly, and which should never have been released since
that's a basic wget action, which means they aren't testing gnu wget the way
they should be.
All inxi downloaders can now use this option. However, in my tests it's signicantly
slower to use HTTP::Tiny than curl or wget, so inxi will test for the downloaders
in that order. While -i uses dig as it's primary IP tool, if dig is not installed,
the IP will follow the same downloader priority. -U and -w/-W use downloaders.
Because HTTP::Tiny is optional, and is merely used if wget/curl/fetch are not
installed, I would not consider Perl to be a real dependency yet, just an option, so
I guess for packager maintainers, Perl should be added as a recommends, or a
dependency if you want to fully support the debugger options (Core Modules).
While I'm still not sure which Perl modules I'm going to be using, I'm sticking
for now to Core Modules, the standard, with some experimental exceptions that
would only be used if the user had them present.
Long term the goal is to get rid of as many dependencies as possible, replacing
them were possible with Perl tools, but this is going to take forever, if it
ever happens, so don't hold your breath.
In the future, I expect more and more components that were gawk to be rewritten
to Perl (Core Modules), slowly, however, very slowly.
Updated --recommends to indicate the downloader options more clearly as well.
Added new options for bypassing curl (-! 41), fetch (-! 42) wget (-! 43), or
curl, fetch, and wget (-! 44) to disable all of them. This is in case one of
those is broken or you want to test Perl downloader, mostly.
Also cleaned up debugger output and made debugger portable to other scripts.
ARM data collection in /sys.
Using 'tree' now instead of ls if it is installed for debugger /sys tree listing.
Added to recommends. Updated bluetooth recommends to note it's dev only. That
should fix issue #127
branches, simplified the options. This corresponds to updates on github where
I'm finally bringing the alternate location self updater back into operational
state after a long dormant period.
Also, and this may be of interest to some maintainers, please note, there is
a new branch: master-plain which does NOT have the gz files inxi.1.gz and
inxi.tar.gz
If you want to avoid the big clones, you can use that branch with this command:
git clone https://github.com/smxi/inxi --branch master-plain --single-branch
And that should only track the basic 3 files: inxi inxi.1 and inxi.changelog
This fixes issue #94
explicitly setting Passive => 1 (true) for some systems and firewall
configurations.
This corrects a failure to upload issue I experienced for a test remote
system that had a different firewall configuration than the dev system has.