Commit graph

1900 commits

Author SHA1 Message Date
Harald Hope 27a897623c added openindiana support 2018-09-11 00:14:33 -07:00
Harald Hope 344251b940 added Net::FTP to recommends tester 2018-09-10 20:57:43 -07:00
Harald Hope 8a61811e82 fine tuned upgraded cpu arch detections 2018-09-10 19:30:33 -07:00
Harald Hope 7db2ab4dcf added in more random structure protection for Lx cache 2018-09-10 16:26:05 -07:00
Harald Hope d2b452218c found even more cache variant syntaxes! 2018-09-10 16:09:40 -07:00
Harald Hope eb6294f0b0 optimized cpu cache logic 2018-09-10 16:05:48 -07:00
Harald Hope c842901804 added in fallback for getting L1,3 cache data. 2018-09-10 15:56:26 -07:00
Harald Hope cf1f213ae9 found variant for socket designation for L cache 2018-09-10 15:42:18 -07:00
Harald Hope 9046b7873d New version, new man page. Bug fix, enhancements, fixes.
Bugs:
1. Big bug found on certain systems, they use non system memory memory arrays, inxi
failed to anticipate that situation, and would exit with error when run as root for
-m when it hit those array types. These arrays did not have modules listed, so the
module array was undefined, which caused the failure. Thanks Manjaro anonymous
debugger dataset 'loki' for finding this failure.
This is literally the first dataset I've seen that had this issue, but who knows
how many other system boards will show something like that as well.

Fixes:
1. Related to bug 1, do not show the max module size item if not system memory
and size is less than 10 MiB. Assuming there that it's one of these odd boards.

Enhancements:
1. For bug 1, extended Memory: report to include array type if not system memory.
That instance had Video Memory, Flash Memory, and Cache Memory arrays along with
the regular System Memory array. Now shows: use: Video Memory for example if not
System Memory to make it clear what is going on.
2. Added basic Parrot system base, but for some inexplicable reason, Parrot changed
the /etc/debian_version file to show 'stable' instead of the release number. Why?
Who knows, it would be so much easier if people making these derived distros would
be consistent and not change things for no good reason.
3. Added a few more pattern matches to existing vendors for disks. As usual, thanks
linuxlite/linux hardware database for the endless lists of disk data.
4. Added internal dmidecode debugger switches, that makes it much easier to inject
test dmidecode data from text files using debugger switches internally.
5. Added -Cxx item, which will run if root and -C are used, now grabs L1 and L3
cache data from dmidecode and shows it. I didn't realize that data was there, not
sure how I'd missed it all these years, I guess pinxi really is much easier to work
on! This only runs if user has dmidecode permissions from root or sudo.
2018-09-10 15:13:52 -07:00
Harald Hope 7f18dd4a35 help menu, forgot, it's alphabetical for output control options,
moved -a/--admin to top of menu.
2018-09-07 17:24:55 -07:00
Harald Hope 5baa63a61d switched debugger to use -a instead of --admin, shorter 2018-09-07 17:10:53 -07:00
Harald Hope e08d828056 pre tag last fix, added -a to trigger --admin, that makes it easier
for forum output, like: inxi -Fxxxaz
2018-09-07 17:03:27 -07:00
Harald Hope e78e37a1e1 New version, man page. Fixes, enhancements, changes.
Thanks:
1. AntiX forums, for testing -C --admin, suggestions, always helpful.

Bugs:
1. Added switch to set @ps_gui, I forgot case where info block was only thing
that used ps_gui (Nitrux kde nomad latte case). This led to no info: data if
other ps_gui switches not activated. Now each block that can use it activates it.

Fixes:
1. To clarify issue #161 added help/man explanation on how to get colors in cases
where you want to preserve colors for piped or redirected output. Thanks fugo.
2. LMDE 3.0 released, slightly different system base handling, so refactored to
add Debian version, see enhancement 2. Tested on some old vm instances, improved
old system Debian system base id, but it's empirical, distro by distro, there is
no rule I can use to automatically do it, sadly.
3. 'Motherboard' sensors field name added, a few small tweaks to sensors. This
was in response to issue #159, which also raised a problem I was not really
aware of, user generated sensor config files, that can have totally random
field names. Longer term solution, start getting data from sys to pad out
lm-sensors data, or to handle cases where no lm-sensors installed.
4. Fixed kwin_11 and kwin_wayland compositor print names, I'd left out the _,
which made it look strange, like there were two compositors or something.
5. Fixed latte-dock ID, I thought the program name when running was latte, not
latte-dock. inxi checks for both now. Thanks Nitrux for exposing that in vm test.
6. Sensors: added in a small filter to motherboard temp, avoid values that are
too high, like SYSTIN: 118 C, filters out to only use < 90 C. Very unlikely a
mobo would be more than 90C unless it's a mistake or about to melt. This may
correct anoymous debugger dataset report from rakasunka.

Enhancements:
1. Added --admin to -v 8 and to --debugger 2x
2. Expanded system base to use Debian version tool, like the ubuntu one, that
lets me match version number to codename. The ubuntu one matches code names to
release dates. Added Neptune, PureOS, Sparky, Tails, to new Debian system base
handler.
3. Big enhancement: --admin -C now shows a nice report on cpu vulnerabilities,
and has a good error message if no data found. Report shows:
Vulnerabilities: Type: [e.g. meltdown] status/mitigation: text explanation.
Note: 'status' is for when no mitigation, either not applicable,  or is vulnerable.
'mitigation' is when it's handled, and how. Thanks issue #160 Vascom from Fedora
for that request.
4. The never-ending saga of disk vendor IDs continues. More obscure vendors,
more matches to existing vendors. Thanks linuxlite/linux hardware database

Changes:
1. Reordered usb output, I don't know why I had Hubs and Devices use different
ordering and different -x switch priorities, that was silly, and made it hard to
read.
Now shows:
Device/Hub: bus-id-port-id[.port-id]:device-id info: [product info]
type/ports: [devices/hubs] usb: [type, speed]
-x adds drivers for devices, and usb: speed is now default for devices, same as
Hubs. Why I had those different is beyond me.
The USB ordering is now more sensible, the various components of each
matching whether hub or device.

Unfixable or Won't Fix:
1. Unable to detect Nomad desktop. As far as I can tell, Nomad is only a theme
applied to KDE Plasma, there is no program by that name detectable, only a
reference in ps aux to a theme called nomad.
2. Nitrux system base ID will not work until they correct their /etc/os-release file.
3. Tails live cd for some inexplicable reason uses non standard /etc/os-release
field names, which forces me to either do a custom detection just for them, or for
them to fix this bug. I opted for ignoring it, if I let each distro break standard
formats then try to work around it, the distro ID will grow to be a 1000 lines long
easily. Will file distro bug reports when I find these from now on.

Samples:

This shows the corrected, cleaned up, consistent usb output:

inxi -y80 --usb
USB:
  Hub: 1-0:1 info: Full speed (or root) Hub ports: 14 usb: 2.0
  Hub: 1-3:2 info: Atmel 4-Port Hub ports: 4 usb: 1.1
  Device-1: 1-3.2:4 info: C-Media Audio Adapter (Planet UP-100 Genius G-Talk)
  type: Audio,HID usb: 1.1
  Device-2: 1-4:3 info: Wacom Graphire 2 4x5 type: Mouse usb: 1.1
  Device-3: 1-10:5 info: Tangtop HID Keyboard type: Keyboard,Mouse usb: 1.1
  Device-4: 1-13:7 info: Canon CanoScan LiDE 110 type: <vendor specific>
  usb: 2.0
  Device-5: 1-14:8 info: Apple Ethernet Adapter [A1277] type: Network usb: 2.0
  Hub: 2-0:1 info: Full speed (or root) Hub ports: 8 usb: 3.1
  Hub: 3-0:1 info: Full speed (or root) Hub ports: 2 usb: 2.0
  Hub: 4-0:1 info: Full speed (or root) Hub ports: 2 usb: 3.1
  Hub: 5-0:1 info: Full speed (or root) Hub ports: 4 usb: 2.0
  Hub: 6-0:1 info: Full speed (or root) Hub ports: 4 usb: 3.0

inxi -y80 --usb -xxxz
USB:
  Hub: 1-0:1 info: Full speed (or root) Hub ports: 14 usb: 2.0
  chip ID: 1d6b:0002
  Hub: 1-3:2 info: Atmel 4-Port Hub ports: 4 usb: 1.1 chip ID: 03eb:0902
  Device-1: 1-3.2:4 info: C-Media Audio Adapter (Planet UP-100 Genius G-Talk)
  type: Audio,HID driver: cm109,snd-usb-audio interfaces: 4 usb: 1.1
  chip ID: 0d8c:000e
  Device-2: 1-4:3 info: Wacom Graphire 2 4x5 type: Mouse driver: usbhid,wacom
  interfaces: 1 usb: 1.1 chip ID: 056a:0011
  Device-3: 1-10:5 info: Tangtop HID Keyboard type: Keyboard,Mouse
  driver: hid-generic,usbhid interfaces: 2 usb: 1.1 chip ID: 0d3d:0001
  Device-4: 1-13:7 info: Canon CanoScan LiDE 110 type: <vendor specific>
  driver: N/A interfaces: 1 usb: 2.0 chip ID: 04a9:1909
  Device-5: 1-14:8 info: Apple Ethernet Adapter [A1277] type: Network
  driver: asix interfaces: 1 usb: 2.0 chip ID: 05ac:1402 serial: <filter>
  Hub: 2-0:1 info: Full speed (or root) Hub ports: 8 usb: 3.1
  chip ID: 1d6b:0003
  Hub: 3-0:1 info: Full speed (or root) Hub ports: 2 usb: 2.0
  chip ID: 1d6b:0002
  Hub: 4-0:1 info: Full speed (or root) Hub ports: 2 usb: 3.1
  chip ID: 1d6b:0003
  Hub: 5-0:1 info: Full speed (or root) Hub ports: 4 usb: 2.0
  chip ID: 1d6b:0002
  Hub: 6-0:1 info: Full speed (or root) Hub ports: 4 usb: 3.0
  chip ID: 1d6b:0003
2018-09-07 13:58:55 -07:00
Harald Hope 59e988c9e2 man edits 2018-08-28 16:26:41 -07:00
Harald Hope ae238fb24b small man page bug fix 2018-08-28 16:20:09 -07:00
Harald Hope 51024eeef4 added to changelog 2018-08-28 15:31:41 -07:00
Harald Hope b0392e23ff New version, man page. Bug fixes, enhancements.
Bugs:
1. A long standing bug was finally identified and fixed. -n/-i would fail to match
a Device to the right IF in cases where they had the same chip / vendor IDs. Added
busID for non Soc type devices to fix that. I hope. This fix has been tested on a
machine that had this bug, and it is now corrected. Thanks skynet for the dataset.
2. deepin-wm was failing to get listed correctly with new fixes, this is corrected.

Fixes:
1. mate version was depending on two tools, mate-about and mate-session, which
somewhat randomly vary in which has the actual highest version number. Fix was to
run both in MATE for version, and run those through a new version compare tool.
Thanks mint/gm10 for reporting that bug.
2. -Gxx compositors: added some missing ones that were being checked for in-
correctly.
3. For distro id, fixed a glitch in the parser for files, now correctly removes
empty () with or without spaces in it.
4. Got rid of ' SOC?' part of no data for ram or slots, that also triggers in non
SOC cases, so best to not guess if I can't get it right.

Enhancements:
1. More disk vendor ID matches, also, somehow missed QEMU as vendor, thanks to
linux hardware database (linuxlite) for great samples of vendor/product strings.
2. Added a bunch of compositors, found a new source that listed a lot inxi did not
have already.
3. Added version v: for some compositors in -Gxxx.
4. New program_data() tool provides an easier to use simple program version/print
name generator, including extra level tests, to get rid of some code that repeats.
5. Found some useful QEMU virtual machines for ARM, MIPS, PPC, and SPARC, so
made initial debugging for each type, so basic working error free support is well
on its way for all 4 architectures, which was unexpected. More fine tunings to
all of them to avoid bugs, and to catch more devices, as well.
Note that QEMU images are hard to make, and they were not complete in terms of
what you would see on physical hardware, so I don't know what features will work
or not work, there may be further variants in audio/network/graphics IDs that
remain unhandled, new datasets always welcome for such platforms!
6. Found yet another desktop! Added Manokwari support, which is at this point
a reworking of gnome, but it was identifiable, minus a version number.
7. Added deepin and blankon to system base supported list, these hide their debian
roots, so I had to use the manual method to provide system base.
2018-08-28 15:23:19 -07:00
Harald Hope cd5f450e63 changelog edit 2018-08-17 16:20:38 -07:00
Harald Hope 55c46f091a edit changelog 2018-08-17 16:15:34 -07:00
Harald Hope c41e3d0021 bug fix in changelog 2018-08-17 16:13:15 -07:00
Harald Hope b2571e54af changelog fix 2018-08-17 16:00:27 -07:00
Harald Hope c69f9d701b New version, man page. Big set of changes. Full USB refactor, plus added features.
Bugs:
1. A result of the issue #156 USB refactor, I discovered that the --usb sort order,
which was based on Bus+DeviceID, in fact is wrong, pure and simple. This was exposed
by using a second USB hub on a bus, the Device IDs are not really related in any
clearly logical way to the actual position on the bus. The solution was to fully
refactor the entire USB logic and then use generated alpha sorters based on the full
bus-port[.port] ID. Device ID is now printed last in the ID string, like so: 1-4:1.
Note that Device IDs start at 1 for each bus, regardless of how many hubs you have
attached to that port.
2. Certain situations triggered a bug in Optical devices, I'd forgotten to change
$_ to $key in two places. Since that part didn't normally get triggered, I'd never
noticed that bug before. Thanks TinyCore for exposing that glitch!

Fixes:
1. On legacy systems, fluxbox --version does not work, -v does. Corrected.
2. for --usb, network devices should now show the correct 'type: Network'.
For some weird reason, the people who made the usb types didn't seem to consider
many key devices, scanners, wifi/ethernet adapters, and those are almost always
"Vendor defined class".
3. A really big fix, for instances where system is using only Busybox, like
TinyCore, or booting into any system running busybox for whatever reason, now
avoids the various errors when using busybox ps, which only for example outputs
3, not 11, default columns for ps aux, and which does not support ps -j, which
is used in the start/shell client information. This gets rid of a huge spray
of errors, and actually allows for pretty complete output from systems that only
have busybox tools installed. This should cover everything from TinyCore to MIPS
to ARM systems that run minimalist Linux. Note that this fix goes along with the
/sys based USB parser, since such systems may have USB, but are unlikely to have
lsusb installed, but do have /sys USB data.
4. In some cases, strings /sbin/init would trigger a false version result, fixed
that logic so now it rarely will do that.

Enhancements:
1. Added Mosksha desktop, that's a Bodhi fork of Enlightenment E17; added qtile
window manager (no version info).
2. Added Bodhi detection; Salix + base slackware; kde neon system base;
3. Added support for slaptget repos, basic, it may not be perfecct.
4. More disk vendors, and matches for existing vendors.
5. Full rewrite of USB data, in --usb, -A, and -N, along with core usb data engines.
This makes lsusb optional, though recommended (because it has a better vendor/
product ID to string internal database) than /sys data. This was in response
to a second set of issues in #156 by gm10, USB drivers.
Depending on the system, using only /sys data, while slightly less informative,
is between 20 and 2000 milliseconds faster, so if you want speed, either use the
new --usb-sys option, or the configuration file USB_SYS=[true|false] option.
 1. switched to cleaner more efficient data structures
 2. added ports count to hub report, linux and bsd.
 3. added [--usb|-A|-N] -xxx serial for Device items, if present.
 4. added --usb -xx drivers, per interface, can be 1 or more drivers.
 5. fully refactored -A and -N usb device logic, far cleaner and simple now,
 much easier to work with, no more hacks to find things and match them.
 6. USB type: now comes from /sys, and is in general going to be more accurate
 than the lsusb -v based method, which was always an ugly and incomplete hack.
 As with drivers, it also now lists all the interface types found per device, not
 just the first one as with the previous method. Note that HID means the more
 verbose: Human Interface Device, but I shortened it. Now that the type: data is
 created by inxi reading the class/subclass/protocal IDs, and then figuring out
 what to do itself, I can have quite a bit more flexibility in terms of how type
 is generated.
 7. added --usb -xxx interfaces: [count] for devices, which lists the device
 interface count. This can be useful to determine if say, a usb/keyboard adapter
 is a 2 interface device. Note that Audio devices generally have many interfaces,
 since they do more than 1 thing (audio output, microphone input, etc.).
 8. Support for user configuration file item: USB_SYS=[true|false]. This is useful
 if you want to see only the /sys version of the data, or if you want the significant
 speed boost not using lsusb offers, particularly on older systems with a complex
 USB setup, many buses, many devices, etc.
 New option --usb-tool overrides USB_SYS value, and forces lsusb use.
 9. New options: --usb-sys - forces all usb items to use /sys data, and skip lsusb.
 Note that you still have to use the feature options, like --usb, -A, or -N. This
 can lead to a significant improvement in execution time for inxi.
 10. Rather than the previous bus:device ID string, to go along with the internal
 sorting strings used, inxi now shows the real Bus / port /port ids, like:
 1-3.2.1:3 - Bus-Port[.port]:device id.
6. Added support for Xvesa display server. Thanks for exposing that one, TinyCore!
7. Added tce package manager to repos. That's the tinycore package manager.

Changes:
1. big one, after 10 plus years, the venerable 'Card-x:' for -A,-N, and -G has been
replaced by the more neutral 'Device-x:'.  This was a suggestion by gm10 from Mint
in issue #156
This makes sense because for a long time, most of these devices are not cards, they
are SOC, motherboard builtin, USB devices, etc, so the one thing they all are are
some form of a device, and the one thing that they are all not is a Card. Along with
the recent change from HDD: to Local Storage in Disks: this brings inxi terminology
out of the ancient times and into the present. Thanks for the nudge gm10.

Removed:
See inxi-perl/docs/inxi-fragments.txt for removed blocks.
1. Entire parser for lsusb -v, now it all runs either usbdevs or lsusb, and if Linux
and not lsusb, it will use /sys exclusively, otherwise it uses /sys data to complete
the lsusb vendor/product strings.
2. Two functions that were used by -A and -N to match usb devices and get their /sys data,
that became redundant since it all now goes through the /sys parser already, so those
features can get the data pre-parsed from the @usb arrays.

Output Examples:

Sort by DeviceID failures in 3.0.20 using Device ID:

inxi --usb
USB:
  Hub: 1:1 usb: 2.0 type: Full speed (or root) hub
  Device-1: Wacom Graphire 2 4x5 bus ID: 1:2 type: Mouse
  Device-2: Tangtop HID Keyboard bus ID: 1:3 type: Keyboard
  Device-3: Verbatim bus ID: 1:11 type: Mass Storage
  Device-4: Apple Ethernet Adapter [A1277] bus ID: 1:13
  type: Vendor Specific Class
  Hub: 1:85 usb: 1.1 type: Atmel 4-Port Hub
  Device-5: C-Media Audio Adapter (Planet UP-100 Genius G-Talk) bus ID: 1:86
  type: Audio
  Device-6: Canon CanoScan LiDE 110 bus ID: 1:112
  type: Vendor Specific Protocol
  Device-7: ALi M5621 High-Speed IDE Controller bus ID: 1:113
  type: Mass Storage
  Hub: 2:1 usb: 3.1 type: Full speed (or root) hub
  Hub: 3:1 usb: 2.0 type: Full speed (or root) hub
  Hub: 4:1 usb: 3.1 type: Full speed (or root) hub
  Hub: 5:1 usb: 2.0 type: Full speed (or root) hub
  Hub: 6:1 usb: 3.0 type: Full speed (or root) hub

Corrected: sort by BusID in 3.0.21:

inxi --usb
USB:
  Hub: 1-0:1 usb: 2.0 type: Full speed (or root) Hub ports: 14
  Hub: 1-3:85 usb: 1.1 type: Atmel 4-Port Hub ports: 4
  Device-1: C-Media Audio Adapter (Planet UP-100 Genius G-Talk)
  type: Audio,HID bus ID: 1-3.2:86
  Device-2: ALi M5621 High-Speed IDE Controller type: Mass Storage
  bus ID: 1-3.4:113
  Device-3: Wacom Graphire 2 4x5 type: Mouse bus ID: 1-4:2
  Device-4: Verbatim type: Mass Storage bus ID: 1-7:11
  Device-5: Tangtop HID Keyboard type: Keyboard,Mouse bus ID: 1-10:3
  Device-6: Canon CanoScan LiDE 110 type: <vendor specific> bus ID: 1-13:112
  Device-7: Apple Ethernet Adapter [A1277] type: Network bus ID: 1-14:13
  Hub: 2-0:1 usb: 3.1 type: Full speed (or root) Hub ports: 8
  Hub: 3-0:1 usb: 2.0 type: Full speed (or root) Hub ports: 2
  Hub: 4-0:1 usb: 3.1 type: Full speed (or root) Hub ports: 2
  Hub: 5-0:1 usb: 2.0 type: Full speed (or root) Hub ports: 4
  Hub: 6-0:1 usb: 3.0 type: Full speed (or root) Hub ports: 4
2018-08-17 15:58:44 -07:00
Harald Hope aab72b75c9 cleanup 2018-07-31 00:08:30 -07:00
Harald Hope 489b3d0cef fixed legacy fluxbox version 2018-07-31 00:00:40 -07:00
Harald Hope d395fff871 cleanup 2018-07-30 21:09:03 -07:00
Harald Hope bdab3965b7 cleanup 2018-07-30 21:05:09 -07:00
Harald Hope a88ae7122c cleanup 2018-07-30 21:01:16 -07:00
Harald Hope 8b2259e455 New version, new man. ARM enhancements and updates, -S data ongoing enhancements.
Fixes:
1. Added support for new ARM SOC types, including chromebook ARM. Note that so far I
have been unable to find a way to detect MMC networking, at least in a meaningful
way. I know where the data is, but I can't figure out how to reasonably integrate it
into the main ARM soc/device generator logic because it's fundamentally different
from most platform or devicetree data.
2. Added alternate battery tests, this should cover a wide range of alternate
battery IDs, while still preserving the distinction between system power batteries,
and device batteries. The detection is now far more dynamic, and can handle
unknown syntax for battery ID, while not losing the ability to correctly identify
device batteries (like mice, keyboards, etc).
3. Trying a somewhat unreliable hack to get cpu variant for arm devices where the
current method fails. this may be removed if it causes false ID in the future.
4. Excluded all /driver/ paths from ARM SOC @pci generation, those give read errors
even as root.
5. Fixed a few defective wm version detections.

Enhancements:
The -S line continues to see many improvements.
1. Greatly expanded the set of info: items, now it covers all the toolbars,
panels, and docks that I could find, plus a few things like icewmtray, where the
wm has a built in panel. While there are probably more bar/panel/dock tools out
there, and more will get added if or when they are encountered, now info: shows
far more variants than ever before, and covers the range of options simpler wm
users have for bars, trays, and panels. If I missed one that is detectable, by
all means show how to detect it!
2. Fine tuned and added a few more window managers, and added version for some that
were not showing versions.
3. Added 3 more dm version handlers, slim, gdm, gdm3, and refactored that code to
use the same program_values/program_version logic that the other tools use.
4. A few more obscure and usb stick vendor IDs added.
2018-07-30 18:19:52 -07:00
Harald Hope ca54311ede readme typo 2018-07-23 20:53:28 -07:00
Harald Hope 3cfa00fde7 a few more man/help fixes 2018-07-23 13:47:56 -07:00
Harald Hope b7692190c2 fixed man glitch 2018-07-23 13:40:49 -07:00
Harald Hope c048ce4903 New version, new man. Fixes, glitches, and stitches!
Fixed some subtle and not subtle issues that I've noticed recently.

Bugs:
1. The color scheme selector failed to remove the global value when a non global
setting was used. This led to global values never getting removed, even though
the text output said it would be, which is confusing, obviously, and always
overriding the color selected. Thanks CentOS for helping find that one.

Fixes:
1. Fixed possible corrupted user inxi.conf values. Now skips null values, and
fully validates as integer integer values.
2. Fixed fvwm-crystal detections, integrated it into new refactored desktop logic.
3. For systems without glxinfo or running inxi out of gui/desktop, Xorg was in many
cases failing to show version, which made it not show anything for server: except
N/A. This is caused by a relatively recent change in behaviors in xorg, where you
have to run it directly from it's true path, which is something like /usr/lib/xorg
or /usr/lib/server-xorg at which point the error:
/usr/lib/xorg-server/Xorg.wrap: Only console users are allowed to run the X server
Figuring this out was tricky, and who the heck knows why Xorg -version would even
return such a silly error in the first place, but there you have it. Next time
you wonder why inxi is so long, this is why, endless churn in basic and complex
things! The fix is injecting the optional xorg paths into @paths right before,
and removing them right after, which avoids adding clutter to the @paths.
4. A ZFS fix, I'd noticed this one a while back, but after looking at the zfs
Ubuntu tutorial page, I realized that this is the norm now, which is building zfs
with /dev/sda (no partitions). This lead to failing to detect the zfs components,
and reporting a bunch of partitions as unmounted which were part of that /dev/sdb
type component array. By allowing /dev/sd[a-z] I fixed both errors at the same time,
but I don't know if this syntax extends to say, nvme zfs as well. Note that when
you build zfs arrays with say, /dev/sdb /dev/sdc you'll see two partitions per
disk, /dev/sdx1 which is the main data, and /dev/sdx2, which is a tiny 8mB partition,
no idea what it's for.
5. Fixed missing konversation and hexchat version numbers in -I, finally found
what was going on there. Note that hexchat --version used to pop up a gui, but
I guess he finally fixed that, I am hoping.
6. Fixed some gentoo repo detections, but also found more variants. Not sure what
exactly is going on with repos there, will wait for gentoo user issue reports to
really lock those down.
7. BSD fixes, turns out FreeBSD uses that same map ... syntax in df -kT as OSX...
Also made sure to load sysctl data for -S row, I'd forgotten about the compiler
test there which needs that data.
8. Fixed herbstluftwm version detection, turns out it's another one of those that
passes the entire path to the version program, so it shows: /sbin/herbsuftwm 0.22.0
which broke the regex, easy fix.
9. Completed refactoring of DesktopData, now it's all data array driven for most
wm, desktops, etc, which makes adding/removing one very easy. All core data is now
in program_values to allow for automated detections.

Enhancements:
1. With fix 1, added check_int and check_number utilities, these validate that inxi
internal numeric or integer values actually are what they are supposed to be. This
uses a neat Perl trick that makse the checks super fast and super accurate. Moved
all internal int/numeric test regex to use these.
2. Added file based version number detection, that was done for Deepin, which uses
/etc/deepin-version for its version number, but it can be used for anything.
3. Added Deepin and deepin window managers, Lumina, added bspwm wm, fixed muffin
detections. Note that lumina has a weird behavior where when run outside of pinxi,
it outputs to stdout, but inside of pinxi, to stderr, who the heck knows how that
happens!
4. Added zorin to supported base: distros.
5. Even more disk vendors added! The list of no-name off brand chinese ssd vendors
appears to be endless! Added some more specific ids to capture unique strings
that can be linked to a vendor.
6. Added /usr/home to default -P paths, that's used instead of /home in the real
world, so why not show it?
7. Because qt detection is possible, I've extended qt toolkit detection, but it's
also not super accurate, but it's far better than gtk tk was, so I'm leaving
that in. I also extended it to more wm/desktops since more are using qt now.
Note: budgie 11 is going to be qt, but there's no way to distinguish between 11 and
gtk 10 without doing a bunch of hacks so I'm leaving that alone.
8. Found a possible distro id source, added /etc/calamares detections to debugger,
I'll see if that shows some consistent patterns before I implement a last fallback
test for distro IDs. It may work.

Removed:
1. Giving up on fake/slow/inaccurate GTK toolkit detections, removed the entire
codeblock and stored in docs/inxi-fragments.txt, but I'm not going to do package
manager type version tests anymore, if we can't get the data directly from a program
or file, it's not going to happen, plus the gtk installed on the system means nothing
in relation to the gtk version used to build the desktop.
2018-07-23 13:32:15 -07:00
Harald Hope 94b1315b91 New version, new man. Fixes, a few changes, enhancements.
Fixes:
1. Removed /dev/zram type data from swap partitions, since that's ram, it's
not a partition, obviously.
2. More alternate IPMI syntax found, that's clearly going to take a while to have
most syntaxes handled.
3. Small lm-sensors adjustment, fringe cases might scramble up hwmon and gpu
temps, this is now handled.

Enhancements:
1. Added disk vendors, udinfo.
2. Exciting! New Architecture: MIPS! First datasets, confirmed working. This led to
more abstracting of the previously ARM specific logic to be for SOC in general.
3. Related to 2, added in fallback busybox cases for partition data without fs.
4. Added window managers, xmonad, ratpoison, 9dm, gala (for Pantheon), notion,
windowlab
5. Added Pantheon desktop detection. Note, unable to find a way to get version
number.
6. IMPI sensors: added in psu fans, dimm temp.
7. New -Cxxx option: cpu boost (aka turbo), state enabled / disabled, only shows
if system has that option.

Changes:
1. Made toolkit for -S be -xx instead of -x, only Trinity/KDE and XFCE have that
data.
2018-07-16 17:43:43 -07:00
Harald Hope 19ad57b60c changelog edit 2018-07-12 16:02:26 -07:00
Harald Hope 5e2fcae883 reordered help menu to be more clear 2018-07-12 15:57:04 -07:00
Harald Hope 86814a06c8 changelog edits 2018-07-12 15:47:03 -07:00
Harald Hope faead0eb54 man edit, forgot to note apt rpm support 2018-07-12 15:34:23 -07:00
Harald Hope 2ef66f3feb help menu fixes and edits 2018-07-12 15:28:13 -07:00
Harald Hope aad0f48aef A few minor edits and corrections in man and inxi 2018-07-12 15:13:05 -07:00
Harald Hope 75b50f9204 New version, new man. Changes, bug fixes, enhancements! Don't delay!
Bugs:
1. A real bug, the detection for true path of /dev/root had a mistake in it and
would only have worked in half the cases. This was an easy fix, but a significant
but since it also would lead to the actual root / partition showing in Unmounted.
2. Related to the item Fixes-2, if two USB networking devices  were attached,
the second one's bus and chip ID would go on the wrong line of data if -n or -i
option were used. Since that would be the line belonging to the one above,
that obviously was weird and wrong.
3. NEW: latest kernel can show hwmon data in sensors, for example from wifi chip.
This broke CPU temp detection and showed way too high cpu temp, so this fix is
fairly important since new kernels may have this new sensors hwmon syntax.
4. Sensors: IPMI alternate syntax found, also case with no data in expected columns,
just N/A, so now the ipmi sensor logic skips all lines with non numeric values in
the values column. This is what it should have done all along, it was trusting
that values would always exist for the field names it looks for.

Fixes:
1. ARM networking fix. ARM devices like rasberry pi that use usb bus for networking
showed the no data message even though usb networking was right below it. This is
corrected, and now that only shows if both main and usb networking failed for ARM.
2. Big repo fix: while testing distro and Trinity live cds, I discovered that apt is
sometimes used with rpms, which made PCLinuxOS and ALT-Linux Repos item show the
apt files but no data since the pattern was looking for start with deb. Added rpm
to pattern, so all distros that use apt running rpms should now 'just work'.
3. Fixed more distro id things, PCLinuxOS should now show its full distro string.
4. Debugger: Filtered out more blocks of /proc, that data is bloated and messy, found
another case where it collected a vast amount of junk system data from zfs in that
case, just blocked the entire range. I had no idea /proc had so much junk data in it!
5. As noted above, IPMI, yet another alternate syntax for field names. My hope that
IPMI software and sensors will be more logical and consistent than lm-sensors output
is proving to be merely wishful thinking, I think now out of 3 datasets I've gotten,
I've seen 3 variants for syntax, not to mention the ipmi-tool vs ipmi-sensors
differences. So IPMI will be like all sensors stuff, a work in progress, to
be updated with every newly discovered alternate syntax and data set.

Enhancements:
1. Disk vendors, added some, improved pattern detections for others. This feature
is getting better all the time. Thanks linuxlite hw db, easy to scan for missing
vendors in their inxi data.
2. Added more wm, budgie-wm, mwm, variants of kwin and Trinity's Twin, several others,
more refactoring of core wm/desktop code.
3. Added gpu ram and reworked memory logic for rasberry pi, which is the only SBC
I am aware of that uses that tool. Now reports the actual total, and also gpu: for
ram data, so you can tell that the gpu is using part of the total. Again, this comes
from issue #153. Also added that info to man page for -I part.
4. Added more ARM and PCI cleaners for neater and more concise ARM/PCI output.
5. Added Trinity support to Desktop section, this had at least two different detection
methods, but since the first just shows KDE original data, only the second one proved
to be Trinity specific. Happily, the full data is available, toolkit, desktop version,
and wm (Twin).
6. New -G,-A,-R -xxx feature: vendor:. Note that vendor data is very bloated and
messy so it's trimmed down substantially, using a series of filters and rules, and
thus it can contain the following: the actual vendor, like Dell, nothing, the
motherboard vendor/product for board based PCI items, or a complete vendor/product
string if it's unique. I couldn't think of a clean field name that meant:
vendor OR vendor + basic product info OR motherboard + board version OR full
product name, including vendor, so in the end, I just used vendor: but it's not
quite the right term, but nothing else seemed to work better. Testers responded
very enthusiastically about this feature so I guess the vendor: name is ok.

Changes:
1. Biggest change: Drives: HDD: total: the HDD: is now changed to: Local Storage:
This was part of issue #153 and is a good suggestion because HDD generally was used
to refer to hard disks, spinning, but with nvme, m.2, ssd, etc, that term is a bit
dated. 'Local' is because inxi does not include detected remote storage in the totals.
2. The recent --wm option which forced ps as data source for window manager detection
has been reversed, now --wm forces wmctrl and ps aux is preferred. Still falls back
to wm ctrl in case the ps test is null, this is better because I have to add the wm
data manually for each one, whereas wmctrl has an unknown set and probably variable
set of wm. Note that I reversed this because I saw several cases where wmctrl was
wrong, and reported a generic source wm instead of the real one. Since most uses are
not going to even be aware of the wm: feature as enhanced with --wm switch, this
should have no impact on users in general. Since the detected wm name needs to be
know to get assigned to wm: and wm version data, I think it will work better to
have the known variants match with the wm data values, then just fallback to
unknown ones that can get fille in over time as we find wm that people actually
use and that you can get version info on and detect.

Removed:
1. Got rid of tests for GTK compiled with version for many desktops, that test
was always wrong because it did not have any necessary relation to the actual
gtk version the desktop was built out of, and it also almost always returned no
data. Since this is an expensive and slow test, and is always going to be wrong
or empty anyway, I've removed it. My tests showed it taking about 300ms or so
to generate no data, heh.
That's the tk: feature in -S. Note I also found that gnome-shell takes
an absurdly long time to give --version info, the slowest of all such things, 300ms
again, just to show version? Someone should fix that, there's no possible reason
why it should take 300 milliseconds to give a simple version string. Note that
this returns tk: to only returning real data, which in this case means only xfce,
kde, and trinity, which are the only desktops that actually report their toolkit
data. I'll probably remove that code in the future unless I can think of some real
use for gtk version elsewhere, but it's just junk data which doesn't even work.

In the future, I will not try to emulate or guess at desktop toolkits, either they
show the data in a direct form like XFCE or Trinity or KDE do, or I won't waste
resources and execution time making bad guesses using inefficient code and logic.
QT desktops like LXQt I'm leaving in because I believe those will tend to track
more closely the QT version on the system, and the tests for QT version aren't
huge ugly hacks the way they are for GTK, so they aren't as slow or intrusive, but
those may also get removed since they almost never work either. But they are also
slowing down the -Sx process so maybe they should be removed as well, I'll think
about it. Since they only are used on LXQt and razer-qt, it probably isn't a big
deal overall.
2018-07-12 14:35:09 -07:00
Harald Hope 8f509b3dac New version, new man. Several bug fixes, enhancements, options.
Bugs:
1. In some cases, -S Desktop showed xfce when it wasn't xfce. This should be largely
corrected now.
2. Big bug: using lxqt-about for lxqt --version, now opens a dialog box, gui,
so removed that, and now checking lxqt-session for version info instead.

Fixes:
1. Now calling hitachi hgst drives vendor: HGST (Hitachi) to differentiate between
regular Hitachi and HGST hitachi. Added a few more disk vendors.
2. Distro base and core: added linuxlite, elementary. Some distros use:
/etc/upstream-release/lsb-release so testing for that and os-release now too.
3. Extended qt detections, may catch a few stray ones now in non kde qt
desktops.
4. Complete refactor of desktop, desktop info, wm, and -G compositor, now much
easier to extend each feature and add detections, move order around, etc.
Also moved wm to -Sxx now that I use fallback ps aux tests, which were themselves
also totally refactored and optimized. Fixed WindowMaker id, which is made more
annoying because they are the only upper/lower case program name, but in at least
debian, the actual program name is wmaker internally.
Also tightened in particular gnome-shell, which was failing to show due to too
restrictive filtering of desktop/vm repeats. Most wm do not contain the desktop
name in the string, gnome-shell does, only one I'm aware of.
5. Removed N/A from wmctrl output, which just means null, which is what we want.
6. Removed gnome-shell from info: since it will now appear in wm: if found. Added
a few -panel items to info:

Enhancements:
1. Showing type: network bridge for -N when it's type 0680, which is an odd pci
type, generally it's a network bridge, but I figured it's best to show that
explicitly to avoid confusion. This extends the 'type:' from just USB.
2. Added more window managers to wm, matchbox, flwm, fvwm2 (used to just use fvwm,
this was wrong, it's its own thing), a few others.
3. Added a few more compositors to -Gxx. kwin_x11 should be the most noticeable,
but added some more obscure ones too. This feature requires more work.
4. Extended ARM syntax to support a new one, path to /sys/device... has an extra
/soc/ in it, that is now handled, all are tested for. Confirmed working. Note that
ARM has to be confirmed fixed on a device by device basis, since there are key
syntax differences in the paths, but it will get easier the more variants that are
discovered. Added another trimmer to cut off \x00|01|02|03 special non printing
characters which show as weird jibbberish in output, for model/serial number.
5. Refactored wm, info, desktop, compositor, now all use @ps_gui, which is all that
is tested against, not the entire ps_cmd array. This drops the possible tests down
massively since the only things in ps_gui will be the actual stuff found that matches
all the patterns required for that system, not all ps items. Added marco, muffin
fixes. Was showing wm: Metacity (Marco) that is not correct, now shows marco, which
then allows to get version too.
5. -Sxxx now shows wm: version as well, which can be of use now and then.
6. --wm added to trip force using of ps data for wm, this can be useful because
I don't know all variants of wmctrl output, so that makes it easier to test.
7. Added finally support for --debug 3, which now shows timers, functions, and args
printed to screen.
8. Added qmake --version to fallback qt detection.
2018-07-08 16:30:15 -07:00
Harald Hope 5f6ae6472b more changelog typos 2018-07-03 15:45:25 -07:00
Harald Hope 4c223fe952 fixed changelog typos 2018-07-03 15:43:39 -07:00
Harald Hope f81aeda4e5 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.
2018-07-03 14:36:15 -07:00
smxi 2f074e935b
Merge pull request #154 from Vascom/patch-2
Small fix to use syntax
2018-06-28 11:56:05 -07:00
Vasiliy Glazov 5443c243fa
Small fix to use syntax
Need change "use the ..." text at begin of line for compatibility with Fedora packaging automatic dependencies tool.
2018-06-28 11:29:10 +03:00
Harald Hope ef5dbf1c3d New version. Tiny bug fix, Ubuntu based distros only.
The 3.0.13 system base feature had a small bug in the logic that was supposed to
get the version id from codename, the bug made it never work. This is only relevant
for Ubuntu based distros, so if you are on some other base like Debian or Arch, you
can ignore this one, 3.0.13 will work fine.

No other changes, this was mainly for Mint, and other Ubuntu derived distros in
the future.
2018-06-27 16:53:06 -07:00
Harald Hope 2d1585cdc1 a few bug fixes for distro base: detections 2018-06-23 12:30:48 -07:00
Harald Hope 2830c98935 New version, man page. New features and fixes!
Bugs:
1. -I line, sometimes running in showed sudo. This is hopefully now corrected.

Fixes:
1. CPU architectures, small reordering based on hopefully more reliable data
source, but these are hard to find conclusively.
2. -S Distro id: switched ordering of prefered os-release sources, PRETTY_NAME
is not being used consistently, too many distros leave out the distro id found
in VERSION, so now it uses NAME + VERSION if both are there, then PRETTY_NAME
as a fallback. That reverses how it was, but it will provide better results for
most distros. Distros that did this properly to begin with should see no change.
3. Now that inxi is basically debugged and working, I've removed the output of
'inxi' from the -t lines. It remains for the pinxi branch however so you can
see how many resources pinxi uses to run.
4. ipmi sensors data are proving to be as random as lm-sensors. Added another
alternate syntax for sensors.
5. CPU: found an alternate syntax, again, for IPMI and sensors data, added
support, I hope, for that.

Enhancements:
1. Added /proc debugger tool to debugger. Due to oddities with how the /proc file
system is created, it will only run as user, not root, unless the --proc flag is
used. More programs added to debugger commands.
2. More disk vendor strings added, fine tuning of vendor detections. There is a
tendency in NVMe disk names to put the vendor name in the middle of the string.
That is now handled for a few key vendors.
3. Added basic ARM SOC and server support. This will require more work in the future
because the syntax used varies significantly device to device, but the featuers
are now in place to add that support. Most SBC ARM devices should now at least show
the model and details data in machine data, and some will show -G -A -N data as
well.
4. ARM CPU: added first attempt to show the cpu variant as well as the more
generic ARM data. This shows 1 or more variants, some ARM devices have two different
cpu cores running at different speeds. Odroid for example.
5. Added system 'base:' data for -Sx, that modifies Distro: in supported cases.
Currently only Mint and MX/AntiX supported because each specific distro must be
handled explicitly using empirical file based data tests. I decided against showing
this for rolling release, since really everyone knows that Antergos is made from
Arch Linux, so showing that does not provide much useful information, whereas
showing the Ubuntu version Mint was made from does.

Note that several derived distros are changing how they use os-release, so the
tools had to be revised to be more dynamic, which is a pain, and makes it even
more empirical and less predictable to print what should be trivially easy to
gather distro and derived source data.

If your distro is not in this list and you want the base data to be present, please
supply a --debug 22 dataset so I can check all the files required to make the
detection work. If your distro has changed methods, please note which methods
were used in the past, and which are used now.
6. Added Armbian distro detection, that's tricky. Added Rasbpian detections.
Added improved Antergos, Arco, and maybe Chakra, Arch detections.
7. Big one: Hardware RAID basic support added. Note that each vendor, and
unfortunatley, often each product line, has its own raid status and drive
reporting tools, which makes adding the actual drive/raid/status report part
very time consuming to add. I may only support this if a certain software maker's
raid tools are installed because they are much simpler to parse, but for now,
it only shows the presence of the raid device itself, not disks, raid status, etc.
2018-06-23 11:32:18 -07:00
Harald Hope 43c0517c75 readme update 2018-06-09 17:10:20 -07:00