diff options
Diffstat (limited to 'inxi.changelog')
| -rw-r--r-- | inxi.changelog | 486 |
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 |
