aboutsummaryrefslogtreecommitdiffstats
path: root/inxi.changelog
diff options
context:
space:
mode:
Diffstat (limited to 'inxi.changelog')
-rw-r--r--inxi.changelog486
1 files changed, 486 insertions, 0 deletions
diff --git a/inxi.changelog b/inxi.changelog
index c189752..321ecaf 100644
--- a/inxi.changelog
+++ b/inxi.changelog
@@ -1,4 +1,490 @@
================================================================================
+Version: 3.3.27
+Patch: 00
+Date: 2023-05-07
+--------------------------------------------------------------------------------
+RELEASE NOTES:
+--------------------------------------------------------------------------------
+
+Completion of the audio fixes and improvements of 3.3.26. Added less common
+sound servers like EsounD and aRts, and made state reports more accurate for
+ALSA.
+
+Major USB code and data upgrades/refactors. The USB changes prepare inxi for USB
+4, and adds lanes and Si/IEC speeds to the report. It is important to determine
+what USB mode you are running in with 3.x and 4. These changes conform more
+closely to how the USB consortium wants USB speeds refered to.
+
+With more robust USB data, this data now appears in a similar form as pcie: data
+for Devices, -A, -E, -G, -N, and for -D drives, as usb: plus rev, speed, lanes,
+mode, with the -xx/-a options, like pcie. This has been a long standing
+oversight and weakness of inxi USB and Device data, but now the two are fully
+integrated, including for drives, which was quite tricky to get working.
+
+Added netpkg and Zenwalk support to packages and repos. Also added repos support
+for sbopkg and slpkg, and updated package tools for Slackware.
+
+And more distros added to system base feature, and a few more for main ID.
+
+Improved --recommends report quite a bit, now it's more granular for missing
+packages and package manager reports, and also fixed a long standing missing
+current shell + version issue. Added the final package manager type, pkgtool
+(Slackware), that will be supported, which makes for 4, which is enough. Note
+that other package managers can be added following the documentation
+instructions for packagers, but this is enough for out of the box pm handling.
+
+Fixed a long standing oddity with how free / /proc/meminfo report MemTotal vs
+the actual physical RAM. I believe this issue also showed with GPU assigned RAM,
+but now for all but short form, shows Memory/RAM: available: ... used: ...
+
+--------------------------------------------------------------------------------
+SPECIAL THANKS:
+
+1. To the Slackware people at linuxquestions.org forums, who helped, again, on
+this audio feature, even finding current or not too old systems that use some of
+the new / old audio servers (EsoundD) running in the wild, which I never
+expected to see. And also for exposing some weak spots in the USB advanced
+logic, and helping with the sbopkg and slpkg repo logic and tools reports.
+
+2. To the Manjaro forum users, for providing cases that show where inxi can be
+improved. The audio server/api issue, the current USB 3/4 upgrade, were
+initiated by threads pointing to things that could be improved in inxi. So I
+guess the real thanks are for using inxi enough to trigger cases that show where
+it's weak or can be better. Note that this requires that I follow roughly their
+forums, however I only look at threads that seem like they might be of general
+interest, or which suggest a possible weak spot in inxi, and I don't follow them
+consistently. More reliable is to file github issues, since I will always see
+those.
+
+--------------------------------------------------------------------------------
+KNOWN ISSUES:
+
+1. DesktopData: at one point, BunsenLabs Debian OpenBox had XDG_CURRENT_DESKTOP
+set to XFCE, which it isn't, but inxi can't work around such hacks, plus I don't
+even know if Bunsen is around anymore anyway.
+
+2. DesktopData: CODE 1 reminds us that the time to depend on x tools like xprop
+for anything re desktop/wm detections is fast drawing to a close, true Wayland
+will not have xprop, unless it's running on xwayland, which is not something
+that should be relied on. Maybe recheck Moksha/Enlightenment which depend on
+xprop for version detection.
+
+The list of xprop detected wm/desktops in get_env_xprop_misc_data() is almost
+all X only wm/desktops, so those should be safe unless one of them decides to
+work on a wayland comositor.
+
+3. BSD: ongoing weaknesses in BSD data sources make maintaining feature parity
+impossible, but I am trying to get the BSD data as clean and consistent as
+possible. I wish this were not the case, but the fact is, /sys is expanding and
+creating excellent and reliable data sources with every major Linux kernel
+update, and so far nothing comparable has appeared in the BSDs. This is just
+reality, it's not a condemnation, but something like the /proc then /sys file
+systems are an excellent idea, well worth emulating.
+
+4. For the RAM available/total clarification, there's a slight issue because
+free/meminfo show MemAvailable as Free for use RAM, but dmesg shows available
+meaning what was available to the system during boot, minus the reserved
+percentage. Since we needed one term, available to System offers the closest
+in terms of technical precision without being too verbose. Technically available
+in this context means: total physical minus 'kernel code' minus 'reserved'.
+
+--------------------------------------------------------------------------------
+BUGS:
+
+1. CheckRecommends: See Fix 6b, more or less a bug, but really just a fix.
+
+2. AUDIO: for USB devices, put extra data into row 0, no matter which row the
+USB device is. This led to the extra data for USB being assigned to the wrong
+row. Sigh.
+
+3. OptionsHandler: When show{'ram'} was set, for bsd, set use{'bsd-raid'}, which
+makes both show raid and ram fail for BSD. Oops. User mode RAM data only seen in
+OpenBSD so far. This made loading $dboot{'ram'} fail, and any raid as well,
+sigh, unless -m was also tripped.
+
+--------------------------------------------------------------------------------
+FIXES:
+
+1. DistroData: typo for Arch base: was ctios, was supposed to be ctlos.
+
+2a. DesktopData: found case where xprop -root not present (Void Linux), so xfce
+test failed. Split to new function dedicated to xfce detection that doesn't use
+xprop data. Also, XFCE is working on their Wayland version, which would in
+theory not even have xprop by default.
+
+Also, the base version number test for xfce depended on xprop, but
+xprop doesn't even have that xfce version data anymore, so just checking if
+xfce(4|5|)-panel exist and assigning primary version based on that test.
+
+2b. DesktopData: Also see See CODE 1a,1b for further xprop and test fixes that
+could have led to false positive or negative test conditions for the items that
+used xprop tests. These tests are all xprop agnostic now, if it's there, they
+will use it, if not, do the best they can.
+
+3. PackageData: fixed legacy dpkg-query, old version did not support -f shortcut
+for --showformat. This made dpkg package listing fail.
+
+4a. GRAPHICS: Added legacy XFree86.0.log to X log path detection, that was an
+oversight. Also added legacy module syntax _drv.o (not _drv.so). This gets X
+driver data now for very old systems.
+
+4b. GRAPHICS: fixed corner case where no x driver data, running as root, was not
+supposed to show 'note: X driver n/a' message, that was a holdover from before
+driver output was cleaned up and driver: N/A shows when no drivers at all found.
+Just forgot to remove it when doing recent updates in the driver section, maybe?
+
+5. REPOS/PackageData: For netpkg Zenwalk Slackware systems, showed only slackpkg
+repo data, empty, and showed the Slackware pm, not netpkg for pm. See
+Enhancements 5, 6.
+
+6. REPOS: removed slapt_get file /etc/slapt-get/pubring.kbx, that's not a repo
+file. Thanks chrisreturn for pointing that out.
+
+7a. CheckRecommends: See also CODE 6. Fixed case where > 1 package manager is
+detected on system, now lists them one by one for detected, and shows package
+install options as well. Before only picked first detected, which could lead
+to wrong results for Missing Package lists.
+
+7b. CheckRecommends: Fixed glitch, forgot to update the current shell/version
+when ShellData was refactored, this led to no current shell + version showing
+up in recommends core tools report.
+
+8. RAM: fixed speed_mapper string match to allow for older syntaxes. This is as
+far as known OpenBSD only, from dboot data. Matches then converts PC2700 to
+PC-2700 which then allows for mapping.
+
+9. RAM/PROCESSES/INFO/SHORT: Finally tracked down a long time oddity, where for
+example:
+ RAM: total: 31.28 GiB
+does not match 32 GiB physical installed. This is because that is the total
+available after kernel and system reserved RAM is deducted, and in some cases,
+GPU allocated RAM. There are also corner cases where the listed amount can be
+less due to physical RAM damage, but that's uncommon.
+
+Added explanation of why it's different, and what available is referring to in
+man -m/--memory.
+
+Changed -m, -tm to show:
+
+System RAM: available: 31.28 GiB used 26.23 GiB (83.9%)
+
+and -I to show:
+
+Memory: available: 31.28 GiB used 26.23 GiB (83.9%)
+
+You can get the 'reserved' and 'kernel code' data from dmesg, but since Debian
+made that root/sudo tool, can't count on being able to parse that out of dmesg,
+plus you can never count no dmesg anyway since it can get overwritten by kernel
+oops or wonky device etc. inxi doesn't use dmesg data for Linux for this reason.
+
+... [ 0.000000] Memory: 32784756K/33435864K available (10252K kernel code,
+1243K rwdata, 3324K rodata, 1584K init, 2280K bss, 651108K reserved, 0K
+cma-reserved)
+
+Also removed Raspberry Pi video RAM added back in to total now that it's clear
+it's what is available. This may also make systems with GPU using system RAM
+more correct.
+
+9. SENSORS: sensors /sys tried to create concatenated string with $unit $value
+but these are not necessarily defined, that needed to be protected with defined
+tests.
+
+--------------------------------------------------------------------------------
+ENHANCEMENTS:
+
+1a. AUDIO: JACK: added helper nsmd (new session manager), and its recommended
+gui agordejo. That's the drop in replacement for non-session-manager, the dev of
+which apparently lost interest in that project. But the ID method will work fine
+for for either, since both ran as nsmd.
+
+1b. AUDIO: PULSE: added pulseaudio-alsa plugin support for helpers. This is like
+pipewire-alsa plugin, just alsa config file. Only seen in Arch Linux so far, but
+if others use similar paths for the glob pattern, they will also work fine.
+
+Also added pulseaudio-esound-compat plugin, which is easier to detect with
+/usr/bin/esdcompat.
+
+Also added paman, pulseaudio manager.
+
+1c. AUDIO: ESOUND,ARTS: added legacy esd (EsounD aka: Enlightened Sound Daemon)
+and aRts sound server support, with basic help/tools. These are quite old, but
+are still occasionally seen in the wild on newer systems, surprisingly enough.
+
+1d. AUDIO: ALSA: added alsactl to alsa tools. Missed that one, it's an /sbin
+type utility.
+
+1e. AUDIO: ALSA: First try at ALSA compiled in but inactive report, previously
+depended on active only state of the API. Now uses compiled in SND_ kernel
+switch using the /boot/config-[kernel] file, which is a big expensive parse but
+only will activate on Linux kernels with no /proc/asound present. This fallback
+fails if kernel config file not present: /boot/config-$(uname -r).
+
+1f. AUDIO: OSS: added tool ossctl.
+
+1g. AUDIO: NAS: added helper: audiooss which is an OSS compat layer.
+
+2a. DistroData: added Arch base distros: ArchEX, Bridge Linux, Condres OS,
+Feliz, LiriOS, Magpie, Namib, Porteus, RevengeOS, SalientOS, VeltOS.
+
+None of these are verified. Some don't exist anymore.
+Source: https://www.slant.co/topics/7603/~arch-linux-based-distributions
+
+2b. DistroData: added ubuntu lunar 23-4 release id.
+
+2c. DistroData: added porteux, added porteux, zenwalk to slackware systembase
+
+3. DesktopData/GRAPHICS: added Smithay Wayland compositor. Not verified.
+
+4a. UsbData/UsbItem: added USB lanes (-Jxx) and mode (-Ja), to add more useful
+data about USB revision and mode names the USB group has created. Otherwise it's
+too difficult to try to explain it. Note that -Jxx lanes follows other inxi
+items that show PCIe lanes as an -xx item to try to keep it consistent.
+
+This also consolidates the bsd and linux data sources, see CODE 5.
+
+Note modes and lanes are Linux only because the revision number, lanes, and
+speed used to determine mode are only natively available in Linux as actual
+internal data values. If this changes BSD support will be added in the future.
+
+The BSD rev and speed data is synthesized completely by inxi using some string
+values, and thus is not reliable, which means that pretending inxi can get this
+granular with data that is not coming directly from the system itself is
+probably not a good idea.
+
+Following wikipedia mode names: https://en.wikipedia.org/wiki/USB4
+
+These are the known possible combinations:
+rev: 1.0 mode: 1.0 lanes: 1 speed: 1.5 Mbps
+rev: 1.1 mode: 1.0 lanes: 1 speed: 1.5 Mbps
+rev: 1.1 mode: 1.1 lanes: 1 speed: 12 Mbps
+rev: 2.0 mode: 1.0 lanes: 1 speed: 1.5 Mbps
+rev: 2.0 mode: 1.1 lanes: 1 speed: 12 Mbps
+rev: 2.0 mode: 2.0 lanes: 1 speed: 480 Mbps
+rev: 2.1 mode: 2.0 lanes: 1 speed: 480 Mbps
+rev: 3.0 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps
+rev: 3.0 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps
+rev: 3.1 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps
+rev: 3.1 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps
+rev: 3.1 mode: 3.2 gen-2x2 lanes: 2 speed: 20 Gbps [seen this case]
+rev: 3.2 mode: 3.2 gen-1x1 lanes: 1 speed: 5 Gbps [wrong rev: seen this case]
+rev: 3.2 mode: 3.2 gen-1x2 lanes: 2 speed: 10 Gbps [wrong rev: possible case]
+rev: 3.2 mode: 3.2 gen-2x1 lanes: 1 speed: 10 Gbps
+rev: 3.2 mode: 3.2 gen-2x2 lanes: 2 speed: 20 Gbps
+rev: 3.2 mode: 4-v1 gen-3x2 lanes: 2 speed: 40 Gbps [not seen, but possible]
+rev: 4 mode: 4-v1 gen-2x1 lanes; 1 speed: 10 Gbps
+rev: 4 mode: 4-v1 gen-2x2 lanes: 2 speed: 20 Gbps
+rev: 4 mode: 4-v1 gen-3x1 lanes: 1 speed: 20 Gbps
+rev: 4 mode: 4-v2 gen-3x2 lanes: 2 speed: 40 Gbps
+rev: 4 mode: 4-v2 gen-4x1 lanes: 1 speed: 40 Gbps
+rev: 4 mode: 4-v2 gen-4x2 lanes: 2 speed: 80 Gbps
+rev: 4 mode: 4-v2 gen-4x3-asymmetric lanes: 3 up, 1 down speed:120 Gbps
+
+I believe 120Gbps takes the 2 lanes of tx/rx and converts 2 rx lanes to tx so
+the entire lane is dedicated to transmit. and the third lane is dedicated to rx.
+
+Includes error message for unknown usb 3/4 rev/speed match combos. These can be
+bad hardware self reporting or unknown other issues.
+
+4b. USB: Added Si/IEC speeds (base 2, base 10). -Ja triggers extra IEC, base 2
+Bytes (xxx [MG]iB/s). -Jx triggers basic standard Si xxx [MG]b/s base 10 bits.
+
+5a. PackageData: added netpkg as package tool. This stores data in same location
+as slackpkg, but assume if exists directory /var/netpkg, then the system is
+using netpkg as pm, not slackpkg.
+
+5b. PackageData: added Slackware sbopkg, sboui as tools for pkgtool and netpkg.
+
+6a. REPOS: added netpkg (Zenwalk Slackware based pm) repo report.
+
+6b. REPOS: added sbopkg basic repo report. This handles both value syntax types,
+as well as the ability of /root config file to overwrite /etc config repo.
+
+6c. REPOS: added slpkg repo report. This handles their old and newer syntax.
+
+7a. CheckRecommends: For Slackware users, added pkgtool missing package name,
+also will use netpkg so hopefully Zenwalk uses same package names.
+
+7b. CheckRecommends: Added radeon to kernel modules checks.
+
+8. AUDIO/BLUETOOTH/DRIVES/GRAPHICS/NETWORK: For USB, -[ADEGN]xx adds rev, speed,
+lanes. -[ADEGN]a adds mode.
+
+9. RAM: Updated RAM PC DDR in speed_mapper(), which is as far as I know only
+used by OpenBSD, which allows for MT/s speeds as non-root user, which is nice.
+That list hadn't been updated in a long time, so filled out DDR 1-5 PCx-yyyy
+ids.
+
+--------------------------------------------------------------------------------
+CHANGES:
+
+1a. USB: For -Jxy1, speed is now a child of rev: parent. This goes along with
+mode: and lanes: being children of rev:. This follows how USB consortium wants
+to refer to USB revisions now: by speed, lanes, and modes, the latter being the
+technical term, the speed being the marketing term.
+
+1b. USB: If no speed data found, show N/A. This should almost never happen
+except for very old Linux and rarely with BSD.
+
+1c. USB: Device type is lower cased except for abbreviations (type-C, HID). This
+makes it more consistent as a value.
+
+1d. USB: Show basic Si speed with -Jx, and adds new IEC speed with -Ja.
+
+2. CheckRecommends: See ENHANCEMENT, CODE 6. Now showing row by row package
+managers and missing packages, by package manager(s).
+
+3. DRIVES: Changed long standing redundant use of 'type':
+type: USB ... type: HDD
+to:
+type: USB ... tech: HDD
+'tech:' means the technology used, HDD, SDD, and if we can ever figure out how
+to detect it, Hybrid Hard Drive (HHD),
+
+4. AUDIO/BLUETOOTH/DRIVES/GRAPHIC/NETWORK: moved 'type: USB' pair to after
+driver for -A/-E/-G/-N, which allows it to be the parent of the new USB data
+block. Negative is it moves it a bit further back in the line.
+
+For Drives, it moves it from after /dev.. maj-min to after block-size, However,
+with -D/-Dx, it's last in the line, which is nice. This is the only way I could
+find to make it more consistent across all possible USB device/drive type
+reports.
+
+5. INFO/RAM/PROCESSES: Changed -I:
+
+Memory: [total] used:
+to:
+Memory: available: [total] used:
+
+Changed -tm/-m to be consistent:
+
+Memory: RAM: total: .. used..
+to:
+Memory: System RAM: available: ... used:..
+
+This corrects a long standing inaccuracy where MemTotal is not actually the full
+system RAM, but is the RAM minus reserved stuff for system and kernel, and GPU
+memory in some cases.
+
+--------------------------------------------------------------------------------
+DOCUMENTATION:
+
+1a. DOCS: docs/inxi-audio.txt: ongoing updates, adding more information, more
+on helpers, detection methods, etc.
+
+1b. DOCS: New: docs/inxi-usb.txt: USB info, update, added more, a work in
+progress.
+
+1c. DOCS: docs/inxi-custom-recommends.txt: name in inxi comment did not match,
+and updated to new comment cleaned up syntax in example. Fixed inxi comment file
+name.
+
+1d. DOCS: New: docs/inxi-unit-handling.txt: To document how inxi handles
+size/speed data internally, and ideally, to help integrate all those methods
+into one big tool one day, not spread across many area.
+
+1e. DOCS: New: docs/inxi-repo-package-manager.txt: To start to document arcana
+and methods and commands and outputs for package managers. Since this is a late
+start, will take time to complete, but better late than never.
+
+2a. MAN/OPTIONS: updated for USB -Jx, -Jxx, -Ja, adding lanes, mode, iec speed
+items.
+
+2b. MAN/OPTIONS: fixed error which had USB speed as -Jxxx instead of -Jxx. Also
+then changed speed to be -Jx.
+
+2c. MAN/OPTIONS: updated for repos for SBOPKG, SBOUI, SLPKG, and added
+SLAPT_GET, I'd forgotten that one.
+
+2d. MAN/OPTIONS: updated for -xx[ADEGN] USB rev, speed, lanes; for -a[ADEGN]
+updated for USB mode.
+
+2e. MAN/OPTIONS: updated for memory available/used changed.
+
+3. MAN: fixed some inconsistent use of short/long form display in extra data
+options.
+
+--------------------------------------------------------------------------------
+CODE:
+
+1a. DesktopData: New function for xfce only detections, turns out xprop is not
+necessarily installed, Void Linux for example had failed ID. Old version
+required xprop to do the tests, which was not robust and failed in this case.
+Function: get_env_xfce_data(). Also made xprop data optional for all the
+xxx_xprop_data desktop tests, not just some of them. This will forward proof
+the desktops
+
+1b. DesktopData: Fixed bad parens in test cases, was not correctly organized.
+if (a || b || (c || d) && e)
+was supposed to be:
+if (a || b || ((c || d) && e))
+Odd how those types of glitches creep in, one fix is also to just make the lines
+break more reasonably so the conditions are easier to parse visually.
+
+2a. DEBUGGER: Added /etc/X11/XF86Config-4 xorg conf file to debugger.
+
+2b. DEBUGGER: audio_data(): added audio server versions to cover all known ones.
+
+3. MemoryData: changed all $memory to array references, got rid of split :
+separators, which were clearly legacy items leftover from bash/gawk days. Also
+changed MemoryData::get('splits') to get('full') to reflect this change.
+
+This change should be transparent though it may introduce corner case undefined
+value situation but that should not happen since array values are defined first.
+
+4. UsbData: Refactor of usb speed, rev, added lanes, mode. Refactored most of
+the bsd/linux rev/speed logic, merged some of bsd speed/rev into the new
+version_data() function, which loads all the data based on what is calling it.
+This helps consolidate the logic across usb data sources.
+
+5a. GLOBAL: made functions/methods use same comment syntax for args:
+ args: 0:...; 1:...
+always starting with 0, to match array index. Same syntax for return array index
+values. In some cases simply note a variable is passed by ref:
+ args: $value passed by reference.
+
+5b. GLOBAL: made all sub/functions/methods follow the same spacing syntax. This
+seems to be a good compromise for space/readability. Note that adding in these
+new lines added about 400 lines to the total length, plus the line breaks that
+were already there. Yes, inxi has a lot of sub routines! aka functions and
+sometimes aka methods.
+
+[empty line]
+[comments]
+sub [name] {
+
+Packages/classes now also all follow the same spacing rules:
+
+[empty line]
+[comments]
+# Package Name
+{
+package [name];
+[empty line]
+[comments]
+sub [name] {
+...
+}
+}
+
+Internally, subs generally do not use any empty lines unless it makes sense to
+do so for some specific reason.
+
+5c: GLOBAL: made start of sub comments be upper case, I have a bad habit of
+typing comments in lower case, easier to read if it's reads like a normal
+sentence.
+
+6. CheckRecommends: refactored entire items logic, set global hash for test
+items. Made support > 1 detected package manager.
+
+7. REPOS: cleaned up comments for package manager/repo blocks.
+
+8. SENSORS: sensors_sys failed to reset to undefined $unit and $value, and also
+failed to test if they were defined before using them in concatenation.
+
+--------------------------------------------------------------------------------
+-- Harald Hope - Sun, 7 May 2023 14:00:00 -0700
+
+================================================================================
Version: 3.3.26
Patch: 00
Date: 2023-03-28