From 7d4117137fb8f1e59738497c9eb620b429087ced Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Mon, 15 Jun 2020 19:30:12 -0400 Subject: New upstream version 3.1.03-1. --- inxi.changelog | 321 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) (limited to 'inxi.changelog') diff --git a/inxi.changelog b/inxi.changelog index 08e19f2..6ff8e0b 100644 --- a/inxi.changelog +++ b/inxi.changelog @@ -1,3 +1,324 @@ +===================================================================================== +Version: 3.1.03 +Patch: 00 +Date: 2020-06-12 +----------------------------------- +Changes: +----------------------------------- + +Big internal refactor!! Fully adjustable indentation logic, built in, native! + +NOTE: none of these changes have any impact on normal inxi -y -1, -y, or -y xx +operation, everything will remain exactly the same, this only changes and +makes robust -y 1 single key: value pair per line output. + +3.1.03 finishes the -y1 introduced in 3.1.02, but makes it a core part of the inxi +logic for line printing, not a tacked on afterthought. + +Because the first draft of this in 3.1.02 was really a hack tacked onto the existing +logic, which was not very flexible or robust, and required way too much literal test +logic in the black box print_data() subroutine, which is supposed to be a 'dumb' +logic, that just does what you give it automatically, I added in key changes that +hard code the indentations per key, like so: + +Now: 34#0#3#key-name +Before: 34#key-name + +Note that anyone using the json or XML output option may need to redo their code +a bit to handle these extra 2 values that preface the actual key names. + +Fixes: +1. In order to make this work, changed a few small things internally, a few +key names were slightly altered to make them more clear. + +Changes: +1. Redo of all internal full key strings, added two new # separated items: + xx#x#y#key-name: + * xx remains the main 0 padded 2 digit sorter per row/block. + * x is a new 0/1 boolean, that shows if the value is a container or not. As + currently implemented probably not hugely useful since it won't say when + the following items it is a container of ends. + Note that the following y value will always be 1 for the item contained by + the container, so you can check that way if you want. the next item can + also be a container, but it would have either the same indentation level + as the previous container or be different. + Thus, if a key is a container, it can contain either non containers, or + other containers, but that primary container does not end until the indent + value equals or is less than the indent value of the first container. + If you are a programmer you should be able to figure this out. + * y is the indentation level, 0-xx is supported, but in practical terms, only + 4 levels are used. For single line output, these set the indentation for that + key. + * key-name remains the key string ID name. + +2. For -y 1 -G will show drivers then indented one more level unloaded, FAILED, +and alternate: to make it clear those are a subset of drivers. driver: itself +will contain the actual driver. In cases where no driver is loaded, a note +will show indented after driver: + +3. For -y 1, driver v: versions will be indented 1, and driver will be a container +that contains that version key: value pair. + +Samples: +----------------------------------- +inxi -Razy1 +RAID: + Device-1: g23-home + type: zfs + status: ONLINE + size: 2.69 TiB + free: 1.26 TiB + allocated: 1.43 TiB + Array-1: mirror + status: ONLINE + size: 1.82 TiB + free: 602.00 GiB + Components: + online: sdb sdc + Array-2: mirror + status: ONLINE + size: 888.00 GiB + free: 688.00 GiB + Components: + online: sdd sde + +----------------------------------- +sudo inxi -dazy1 +Drives: + Local Storage: + total: 1.98 TiB + used: 1.43 TiB (72.2%) + ID-1: /dev/sda + vendor: Intel + model: SSDSC2BW180A4 + family: 53x and Pro 1500/2500 Series SSDs + size: 167.68 GiB + block size: + physical: 512 B + logical: 512 B + sata: 3.0 + speed: 6.0 Gb/s + serial: + rev: DC32 + temp: 37 C + scheme: MBR + SMART: yes + state: enabled + health: PASSED + on: 291d 17h + cycles: 1346 + read: 431.94 GiB + written: 666.16 GiB + Optical-1: /dev/sr0 + vendor: HL-DT-ST + model: DVDRAM GH20LS10 + rev: FL00 + dev-links: cdrom,cdrw,dvd,dvdrw + Features: + speed: 48 + multisession: yes + audio: yes + dvd: yes + rw: cd-r,cd-rw,dvd-r,dvd-ram + state: running + +----------------------------------- +inxi -Aazy1 +Audio: + Device-1: NVIDIA High Definition Audio + vendor: Gigabyte + driver: snd_hda_intel + v: kernel + bus ID: 09:00.1 + chip ID: 10de:0be3 + Device-2: AMD Family 17h HD Audio + vendor: Gigabyte + driver: snd_hda_intel + v: kernel + bus ID: 0b:00.3 + chip ID: 1022:1457 + Device-3: N/A + type: USB + driver: hid-generic,snd-usb-audio,usbhid + bus ID: 5-1.3.4:5 + chip ID: 21b4:0083 + serial: + Sound Server: ALSA + v: k5.4.0-11.2-liquorix-amd64 + +----------------------------------- +-- Harald Hope - Fri, 12 Jun 2020 19:02:08 -0700 + +===================================================================================== +Version: 3.1.02 +Patch: 00 +Date: 2020-06-12 +----------------------------------- +Changes: +----------------------------------- + +Big change, cleanup, small bug fixes. Hot, grab it now!! + +The new -y 1 feature exposed several small and larger glitches with how sets +of data were constructed in inxi output. See Changes: for list of changes made +to improve or fix these glitches. + +These errors and minor output inconsistencies became very obvious when I was +doing heavy testing of -y 1, so I decided to just fix all of them at the same +time, plus it was very hard to make the -y 1 indenter work as expected when the +key values were not being treated consistently. + +Note that this completes the set of all possible -y results: + +Full -y Options: +1. -y [no integer given] :: set width to a default of 80. this is what you usually +want for forum posts, or for online issue reports, because it won't wrap and be +hard to read. Help us help your users and others!! Teach them to use for example +-Fxzy or -bay for their bug reports. Just add y to whatever collection of arguments +you generally ask for in support forums or issue reports. Highly recommended, +easy to type, and joins cleanly with other letters. + +2. -y -1 :: removes line width limits, this can lead to very long lines in some +cases, and removes all auto-wrapping of line widths. + +3. -y 1 :: Switch to stacked key: value pairs, with primary data blocks separated +by a blank line. Think dmidecode type output, or other command line sys info tools. +By request, a forum support guy noted it was hard for newbies to understand the +-G values, particularly -Ga when in lines, so this is another way to request +data. WARNING: for lots of data, this gets really long!!! But if you are curious +how inxi actually constructs its data internally, this sort of shows it. + +4. -y 80-xx :: set width to 80 or greater. Note you can also set these in +your configurations if you want using the various options supported. + +----------------------------------- + +Bugs: +1. Once again, no real bugs found beyond a few trivial things I can't remember. + +Fixes: +1. When out of X, dm: showed after Console: and often said dm: N/A particularly +on headless servers, which was silly. Now DM: only shows after Console: if +a DM: was actually found. If regular Desktop output, either in X, or via +--display out of X, no changes. + +2. There was a pointless sudo test when sudo values are set initially, they +were still running even if --no-sudo was used. Now they don't run in that case. + +Enhancements: +1. The biggie, now inxi can output in a similar indented way as something like +dmidecode if you use the -y 1 option. This feature was originally by request, +though the initial request actually just wanted to see it stacked simply, +but that was almost impossible to read for any output reasonably long, so +I made the indentations very dynamic and deep, they go up to 4 levels in, +which is roughly how deep in the inxi sub Categories go. This output format +makes it very easy to see how inxi 'thinks' about its data, how it views +sets, subsets, subsubsets, and subsubsubsets of data. + +Note that each data block, as with dmidecode data, is separated by a blank +line. You know what this means!!! Yes, that's right!!! You can parse inxi +output with awk!!, same way legacy bash+gawk inxi used to parse its data!! +Or if your brain just does not like lines of data, you can make it appear in +indented single key: value pairs. + +Here you can see for example that 1 Xorg Display has 1 or more Screens, +and each Screen has one or more Monitors. Note that this -Ga data first +appeared in inxi 3.1.00. + +Sample [with bug in OpenGL output!, and showing -Ga newer values as well +for dual monitor setup, with one Xorg Screen]: + +inxi -aGy1 +Graphics: + Device-1: NVIDIA GT218 [GeForce 210] + vendor: Gigabyte + driver: nouveau + v: kernel + bus ID: 09:00.0 + chip ID: 10de:0a65 + Display: x11 + server: X.Org 1.20.8 + driver: nouveau + unloaded: fbdev,modesetting,vesa + display ID: :0.0 + screens: 1 + Screen-1: 0 + s-res: 2560x1024 + s-dpi: 96 + s-size: 677x271mm (26.7x10.7") + s-diag: 729mm (28.7") + Monitor-1: DVI-I-0 + res: 1280x1024 + hz: 60 + dpi: 96 + size: 338x270mm (13.3x10.6") + diag: 433mm (17") + Monitor-2: VGA-0 + res: 1280x1024 + hz: 60 + dpi: 86 + size: 376x301mm (14.8x11.9") + diag: 482mm (19") + OpenGL: + renderer: N/A + v: N/A + direct render: N/A + +2. Refactored and cleaned up print_data(), got rid of some early testing code, +dumped some unnecessary tests, simplified old tests, and optimized the new +indentation logic reasonably well. Hopefully the print_data() will not be +quite as much of a black box now as it was. + +3. Even more drive vendors and ID matches!!! The list never ends!! An endless +series of new vendors and IDs of existing vendors sprout up, then float away. +And inxi follows them to the best of its ability. Thanks again to Linux-Lite +hardware database, which help make this ever expanding list possible, since +their users appear to use every disk known to humankind. + +Changes: +1. When out of Display, and Console: shows, -S will not show dm: if no +display manager is detected, and if it is detected, it shows DM: since it's +not part of the Console: set of data. If out of X and --display is used to +get Xorg data out of X, it will show Desktop: set of data as normal, at least +it will show the stuff it can find. This resolves the issue where dm: appeared +to be a member of the set of Console: data, instead of either its own thing, +DM:, or a member of the set of Desktop: data. + +2. For RAID Devices with sub Array-x: values, Array-x: is capitalized, it used +to be array-x: That was silly. + +3. In USB, now Device-x: resets inside each Hub: so that the Device-x: are +numbered starting at 1 within each Hub:. This makes the counter behavior act +the same as it does in for example RAM Array-x: / Device-y:, where each Array-x: +resets Device-y: count to 1. This changes the old default of having Device-x: +not reset, to let you see the total number of devices plugged in or attached +no matter which hub they were plugged into, but the output actually gets +sort of confusing in single key: value pair mode per line. + +4. The key: value syntax for weather was changed completely, now it works +like the rest of the features, with Report:... [Forecast:...] Locale:... +and Source:. Locale makes the source of the times and other date related +features, and the location if shown or available, much more obvious. Before +it was never clear if Current Time referred to your local or the remote +time, now it's clearly from the Locale: you specified with -W, or +the default -w local info. Also made Report 1 line if unwrapped, Forecast 1 +line if not wrapped, and Locale: 1 line if not wrapped, which makes the output +easier to read. + +NOTE: automated weather queries are NOT allowed, if you do it, you will be +banned!! inxi is NOT a desktop weather app!! Don't confuse it with one!! +Weather is just a small service to users who might for example want to check +the weather on a remote system, or something like that, and is not intended +to be used on a routine basis. + +5. Cleaned up and re-ordered the --version output. It had some pretty old +contexts in the language, which were removed or cleaned up and brought up to +date. If you're wondering, I roughly use rsync and nano --version as guides +for what to show or not show there. + +----------------------------------- +-- Harald Hope - Thu, 11 Jun 2020 23:53:30 -0700 + ===================================================================================== Version: 3.1.01 Patch: 00 -- cgit v1.2.3