Subject: lsblk not up to date in util-linux

From: Bengt Richter <[email-masked]>
Date: Fri, 30 Aug 2019 02:42:52 -0700

Very annoying, since I made a little script called ls-mounts
to show info about currently mounted devices.
It should make output like this:

MOUNTPOINT KNAME     LABEL            PARTLABEL          SIZE FSAVAIL FSUSE% UUID
/boot      nvme0n1p1 PhantoV1EFI      PhantoNv1EFI         1G  510.4M    50% 6E3C-D410
[SWAP]     nvme0n1p3                  PhantoNv3Swap       32G                24151091-f47a-46e2-a6cb-e5219eddae7c
/          nvme0n1p4 PhantoNv4ArchGx  PhantoNv4ArchGx   54.2G    7.1G    82% 12eec2bf-bc81-48a8-b444-26913c078302

but guix defines lsblk as you see below, so the output is not the above, but

lsblk: unknown column: fsavail,fsuse%,uuid

If I force /usr/bin like
----
#!/usr/bin/bash
# ~/bin/ls-mounts -- like boot-context mounts part, with uuid and partlabel added
/usr/bin/lsblk -o mountpoint,kname,label,partlabel,size,fsavail,fsuse%,uuid|egrep '^(/|M|\[)'
----
then I get the desired output above. The difference is apparently
util-linux 2.32.1 vs the newer 2.34, where the newer one understands
more field names for -o ...

If I take the /usr/bin/ and use just lsblk -o  ..., I get the guix profile
version even with the hash-bang remaining #!/usr/bin/bash, which is as it
should be according to the $PATH.

$ which -a lsblk
/home/bokr/.guix-profile/bin/lsblk
/usr/bin/lsblk
$ which -a lsblk|xargs readlink -f
/gnu/store/8k4pnixpz73kxvxbjqajgbprjjmmgpxy-util-linux-2.32.1/bin/lsblk
/usr/bin/lsblk
$ which -a lsblk|xargs readlink -f|xargs file
/gnu/store/8k4pnixpz73kxvxbjqajgbprjjmmgpxy-util-linux-2.32.1/bin/lsblk:
    ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked,
    interpreter /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/ld-linux-x86-64.so.2,
    for GNU/Linux 2.6.32, not stripped
/usr/bin/lsblk:
    ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked,
    interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4028ee9653d75f37372a56e4f53215d75c75f564,
    for GNU/Linux 3.2.0, stripped
$ which -a lsblk|xargs readlink -f|while read line;do echo -ne "$line:\n   ";$line --version;done
/gnu/store/8k4pnixpz73kxvxbjqajgbprjjmmgpxy-util-linux-2.32.1/bin/lsblk:
   lsblk from util-linux 2.32.1
/usr/bin/lsblk:
   lsblk from util-linux 2.34
$
Hope somebody can update it.
I think I found the updated version at
https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.34/util-linux-2.34.tar.xz

But I have worse problems -- weston-launch now core dumps, after guix install of
latest wayland and weston ;-/ But that's not for this post.

Regards,
Bengt Richter