The main reason to release this earlier than I had hoped was because of the /sys
permission change for serial/uuid file data. The earlier we can get this fix out,
the better for end users, otherwise they will think they have no serial data when
they really do.
FIXES:
1. this bug just came to my attention, apparently the (I assume) kernel people
decided for us that we don't need to see our serial numbers in /sys unless we are
root. This is an unfortunate but sadly predictable event. To work around this
recent change (somewhere between 4.14 and 4.15 as far as I can tell), inxi -M and
-B now check for root read-only and show <root required> if the file exists but
is not user readable. I wish, I really wish, that people could stop changing stuff
for no good reason, but that's out of my control, all I can do is adjust inxi to
this reality. But shame on whoever decided that was a good idea.
This is not technically an inxi bug, but rather a regression, since it's caused
by a change in /sys permissions, but users would see it as a bug so I consider
this an important fix.
Note that the new /sys/class/dmi/id permissions result in various possible things:
1. serial/uuid file is empty but exists and is not readable by user
2. serial/uuid file is not empty and exists and is not readable by user
3. serial/uuid file does not exist
4. serial/uuid file exists, is not empty, and is readable by root
Does this change make your life better? It doesn't make mine better, it makes
it worse. Consider filing a bug report against whoever allowed this regression
is my suggestion.
BUGS:
1. A weather bug could result in odd or wrong data showing in weather output, this
was due to a mistake in how the weather data was assembled internally. This error
could lead to large datastore files, and odd output that is not all correct.
2. More of an enhancement, but due to the way 'v' is used in version numbers,
the program_version tool in some cases could have sliced out a 'v' in the wrong
place in the version string, and also could have sliced out legitimate v values.
This v issue also appeared in bios version, so now the new rule for program_version
and certain other version results is to trim off starting v if and only if it is
followed by a number.
FEATURES:
1. Added in OpenBSD support for showing machine data without having to use dmidecode.
This is a combination of systcl -a and dmesg.boot data, not very good quality data
sources, but it is available as user, and it does work. Note that BIOS systems
are the only ones tested, I don't know what the syntax for UEFI is for the field
names and strings. Coming soon is Battery and Sensors data, from the same sources.
Sadly as far as I know, OpenBSD is the only BSD that has such nice, usable (well,
ok, dmesg.boot data is low quality strings, not really machine safe) data. I
have no new datasets from the other BSDs so I don't know if they have decided to
copy/emulate this method.
2. By request, and this was listed in issue #134, item no. 1, added in weather
switchable metric/imperial output. Also added an option, --weather-unit and
configuration item: WEATHER_UNIT with possible values: cf|fc|c|f. The 2nd of
two in cf/fc goes in () in the output. Note that windspeed is m/s or km/h as metric,
inxi shows m/s as default for metric and (km/h as secondary). Also fixed -w
observation date to use local time formatting. That does not work in -W so it shows
the default value.
3. Updated man to show new WEATHER_UNIT config option, and new --weather-unit
option. Also fixed some other small man glitches that I had missed.
This is a big one.
NEW FEATURES:
1. By Request: Disk vendor is now generally going to be shown. Since this uses
empirical data to grab the vendor name, from the model string, it will not always
find anything. When it fails to find vendor data, no vendor: item will show.
Note that some MMC devices will probably not show vendor data, but that's due to
there being no data that reveals that.
2. Extended -sx volts to also show voltage from lm-sensors if present. Many
systems show no voltage data with lm-sensors, but now if any is found, it
will show, same as impi.
3. Moved to lsblk as primary source for partition/unmounted filesystem, uuid, and
label data.
Falls back to previous methods if lsblk does not return data. Some lsblk do not
show complete data unless super user as well.
4. Refactored code to be more logical and clear.
5. Added for OpenBSD -r: /etc/installurl file.
BUG FIXES:
1. CRITICAL: /sys/block/xxx/device/model is in some cases truncating the disk
model name to 16 characters. This is not an inxi bug, it's a bug with /sys itself.
To fix this, inxi now uses for GNU/Linux /dev/disk/by-id data which does not
ever do this truncation. It's also faster I believe to read that directory
once, filter the results, then use the data for vendor/model/serial.
this was also part of the disk vendor data feature.
2. Openbsd networking fix. Was not showing IF data, now it does.
3. Fixed bug with unmounted where sometimes md0 type partitions would show
even though they are in a raid array.
4. Fixed disk rev, now it searches for 3 different files in /sys to get that data.
5. Fixed bug with very old systems, with sudo 1.6 or older, for some reason that
error did not get redirected to /dev/null, so now only using sudo -n after explicit
version test, only if 1.7 or newer.
6. Fixed a few null results in fringe cases for graphics. Resolution now shows
NA for Hz if no hz data found. This was only present on a fringe user case
which is unlikely to ever impact normal X installations.
7. Fixed BSD L2 cache, was showing MiB instead of KiB, wrong math.
Bugs fixed:
1. CPU: MT/HT was wrong for old xeon, made mt detection more robust and hopefully
more reliable, removed all explicit b_xeon based tests.
2. fixed /dev/mapper glitch, that make /dev/mapper links fail to get id'ed.
3. openbsd: fixed memory handler; fixed cpu flags, fixed partitions handling.
4. freebsd: fixed similar partition bugs, these were caused by the darwin patch.
5. man page: fixed top synopis syntax, thanks ESR.
6. partitions fs: fixed possible failures with lsblk fs. lsblk: added debuggers
so we can track down this failure in the future.
7. added sshfs filter for disk used output, note, there is a possible syntax for
remote fs that isn't handled: AAA:BBB that is, no :/, only the :. This makes
explicit detection of still unknown remote fs very difficult since : is a legal
nix filename character.
1. Added to -s for ipmi, with -x: voltage 12v,5v,3.3v,vbat; for -xx, dimm/soc p1/p2
voltages
2. enhanced wm: feature, needed more filters and protection against redundant data
3. basic apple osx fixes to keep it from crashing, but I'm not spending any more
time on apple junk unless someone pays me for my time, I can't stand the product or
company, it's the total antitheses of freedom or free software, or even openness.
4. openbsd/bsd fixes: openbsd was failing to get cpu flags due to a small oversight
5. -C now shows bits: for the true bits of cpu, not the kernel bits. This is not
a reliable measurement but should be right about 95+ percent of the time, and
basically all of the time for GNU/Linux on Intel/AMD, most of the time for ARM.
When it doesn't know it does not guess, and shows N/A.
6. bsd fix for usb, was running numeric action on string value
7. fixed stderr tool for program_version, now it's hard-coded in program_values
which removes an unneded regex search for every program version test.
8. Mate detection, switched to using mate-sesssion instead of mate-about, the
latter is not getting updated and has the wrong version number on it.
bad array looping error.
2. for issue #143, added user PATH to static list of paths, this works around distros
that have chosen to abandon the FSH standard, sigh... This adds to number of paths that
have to be checked, but there was no clean way to handle it otherwise.
3. For MATE, added new version source, mate-session, because mate-about was reporting
a non-matching version number for current MATE.
Two enhancements/bug fixes:
1. inxi did not have support for network block devices /dev/nbd0 type syntax in
disks.
2. this caused a slight failure in lsblk output, so I switched to using lsblk -P
to force paired key values, which are then put into an array of hashes.
These both appeared on an ARM server system, but surprisingly, there were no ARM
specific issues at all on that system.
Both issues/enhancements tested and working fine.
Rolls up a few changes from the latest features:
1. For -Dxxx, if root, will use fdisk to try to find partition table scheme (mbr/gpt)
2. For Display: <protocol> server: will try to use loginctl if out of X and using
--display flag to force display data and not root.
This completes more or less the very last minute features added pre 3.0.0 version.
I wanted to get these in because the features were not super useful since they only
worked on a few systems, particulary the scheme:
New features:
1. for a very few systems that have wmctrl installed, will shows -xxx wm if present
Enhancements:
1. made xorg display server and protocols show more consistently with other layout:
Display: x11 server: X.org 1.9.12 drivers: loaded: ...
if no display protocol found:
Display: server: X.org 1.9.12 drivers: loaded: ...
This brings the -G in line with the other lines, of not putting different data types
inside of parentheses as much as possible. -I still has two of these, but so far it's
not clear how to otherwise show SSH or su/sudo/login in their respective spaces.
Debugger data collector also has something I should have added ages ago, gz filename
now includes the basic 2 digit inxi version number, like 3.0 at end, so I can readily
determine the debugger inxi version, and thus avoid having to root through lots of
versions to find new stuff.
These are all largely cosmetic improvements, or debugger adjustments, except for -Sxxx
now offering wm: if present.
Also changed Desktop: name... (toolkit data) to: Desktop: name... tk: toolkit data
to be more consistent, while not adding great length to the output.
These two changes should also help export to json/xml since that puts unique key/values
back into key value pairs, not merging two together.
inxi 3.0 is now ready for prime time. No substantial issues have been found over
the past week. All outstanding issues and bugs have been corrected. The man page
and help page have been edited fairly heavily to improve usability and readablity.
All work and development and support for inxi 2.3.56 is ended. No issues for
2.3.56 will be accepted since there is no way to support that version, it
being in a different set of languages (Gawk/Bash) than inxi 2.9/3.0 (Perl 5).
So the sooner you move your distro package pool to new inxi, the sooner your
users can get support for any issues with current inxi.
Beta and 2.9 prerelease testing is completed, and has resulted in a much
better inxi than I could have hoped for.
There are so many new features and enhancements in the new inxi that it's hard
to list them all. See previous commits for a more in depth record.
1. New options: --slots (PCI Slots); --usb
2. Exports to json/xml with --output options
3. Every line has been enhanced, with tighter output control, better key / value
pairings, more accurate values.
4. Line wrapping is now fully dynamic, which means inxi works down to 80 columns
and should basically never wrap (except for very long repo lines, but that's not
really fixable).
5. More controls, more user configuration options (see man page).
6. So many small new features that it's hard to list them all. Shows SSH in -I
if SSH. Shows sudo/su/login in -I if relevant and detectable. Shows disk partioning
scheme in some cases (more coming). Removes color codes if piped or redirected to
file.
7. All sizes are now shown in standardized KiB/MiB/GiB/TiB/PiB format, to avoid
ambiguity about whether M or MB or MiB is meant. All internal size math is done
using KiB, which further avoids confusion and error. Note that many disk makers
like using MB or GB instead of MiB or GiB because it makes their disks seem
'bigger'.
8. Sensors -s now supports IPMI sensors, in tandem with lm-sensors.
Anyway, the changelog will show better all the new features etc, I can't remember
them all.
All current issues and glitches have been fixed, any remaining are simply new issues,
just as they would be in old inxi.
Note that in the second and third weeks of beta testing a significant number of bugs
that are in inxi 2.3.56 were fixed. 2.3.56 has been moth-balled into the inxi-legacy
branch as binxi, to avoid mixing it up with inxi. The development branch is now
permanently inxi-perl, aka, pinxi, since that worked so well for beta and pre-3.0
2.9 testing and development.
This ends the pinxi/inxi development stage. All future development will proceed
using the inxi-perl branch, and will be the same in terms of new features as pre
inxi 2.9 was, they will be added, enhanced, as seems appropriate.
Remember, inxi is a rolling release program, like Arch Linux, Gentoo, Debian
Testing/Sid, and has no frozen release points, so this is simply the beginning of the
3.0 line of Perl inxi.
Thanks to everyone who contributed time, energy, effort, ideas, testing, debugging,
patience - inxi would not work without you.