--- Begin Message ---
Subject: |
lsblk not up to date in util-linux |
Date: |
Fri, 30 Aug 2019 02:42:52 -0700 |
User-agent: |
Mutt/1.12.1 (2019-06-15) |
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
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#37233: lsblk not up to date in util-linux |
Date: |
Fri, 30 Aug 2019 16:03:12 +0200 |
Bengt,
Sorry you had to debug that!
Bengt Richter 写道:
…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 ...
[…]
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
Guix's util-linux package was already updated to 2.34 in June
(commit ac3842ef on core-updates), and it will be available when
core-updates is merged into master. That should be very soon now.
I'm closing this bug for that reason.
Updates of core Guix packages like these take a while to trickle
down to users because ‘everything’ depends on them, and when
they change ‘everything’ needs to be rebuilt, so we need to
‘batch’ these changes somehow to avoid rebuilding the world ever
two days. Search for ‘staging’ and ‘core-updates’ in the
manual. Unfortunately, core-updates in particular always takes
longer to fix up and merge than expected.
Until that happens, you can define and install your own updated
util-linux.
(define-public util-linux/latest
(package
(inherit util-linux)
(name "util-linux")
(version "2.34")
(source …))) ; updated URL
This is similar to what we already do for security updates in
Guix.
Kind regards,
T G-R
signature.asc
Description: PGP signature
--- End Message ---