Subject: bug#37931: Cannot guix refresh -ru util-linux to get updated lsblk

From: Marius Bakke <[email-masked]>
Date: Mon, 28 Oct 2019 23:29:16 +0100

Hi Bengt,

Bengt Richter <[email-masked]> writes:

> Hi Guix,
>
> IpPulled and updated to guix describe:
> ---------------------
> Generation 19	Oct 24 2019 22:37:20	(current)
>   guix 6caa739
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 6caa7392d8e51f5ef26e9efaa867ca5f9e1cac91
> ---------------------
>
> but lsblk -f still looks like this:
> ---------------------
> NAME        FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
> sda                                          
> ├─sda1                                       
> ├─sda2                                       
> ├─sda3                                       
> ├─sda4                                       
> ├─sda5                                       
> ├─sda6                                       
> └─sda7                                       
> sdb                                          
> └─sdb1                                       
> nvme0n1                                      
> ├─nvme0n1p1                      510M    50% /boot
> ├─nvme0n1p2                                  
> ├─nvme0n1p3                                  [SWAP]
> └─nvme0n1p4                     12.6G    71% /
> ---------------------
> where it should look like: (got this using foreign /usr/bin/lsblk -f)
> ---------------------
> NAME        FSTYPE LABEL           UUID                                 FSAVAIL FSUSE% MOUNTPOINT
> sda                                                                                    
> ├─sda1      vfat   Phanto1EFI      98AB-229C                                           
> ├─sda2      ext4                   d8ce4206-fc92-4248-8164-3fe5397c28fb                
> ├─sda3      swap                   59e8ffd8-a2df-4021-ba59-c8dda6215f83                
> ├─sda4      ext4   Phanto4ArchGx   617f2280-d34a-4dea-ac50-a1222dd18c26                
> ├─sda5      ext4   Phanto5ArchGxOn 71e61e41-81d0-48ac-b50f-a00668723c32                
> ├─sda6      ext4   Phanto6Arch     e5760f87-71bc-4318-92f1-d108e5c9e332                
> └─sda7      ext4   Phanto7GuixSD   a60eac5f-2306-49c5-8c87-7cab28ff6d37                
> sdb                                                                                    
> └─sdb1      ext4   Cruz1GxArchivA  18fb1d34-47b0-4d62-baea-43681ec2e5a4                
> nvme0n1                                                                                
> ├─nvme0n1p1 vfat   PhantoV1EFI     6E3C-D410                               510M    50% /boot
> ├─nvme0n1p2 ext4   PhantoNv2Empty  76bc8f68-126c-4a6c-8b77-afc89bd2726a                
> ├─nvme0n1p3 swap                   24151091-f47a-46e2-a6cb-e5219eddae7c                [SWAP]
> └─nvme0n1p4 ext4   PhantoNv4ArchGx 12eec2bf-bc81-48a8-b444-26913c078302   12.6G    71% /
> ---------------------

The `lsblk` program requires root privileges in order to detect file
systems and UUIDs.  I'm guessing your distribution makes it setuid root?

To do the same on Guix System, see the "Setuid programs" section of the
manual.  You would need something along these lines in your config:

 (operating-system
  [...]
  (setuid-programs (cons #~(string-append #$util-linux "/bin/lsblk"))
                         %setuid-programs))

Does that work for you?

> So I tried:
>
> [17:59 ~/bs]$ guix refresh -r util-linux
> guix/build-system/gnu.scm:143:8: findutils would be upgraded from 4.6.0 to 4.7.0
> gnu/packages/commencement.scm:2183:2: binutils would be upgraded from 2.32 to 2.33.1
> gnu/packages/commencement.scm:2244:2: gcc would be upgraded from 7.4.0 to 9.2.0
> gnu/packages/commencement.scm:2142:2: glibc would be upgraded from 2.29 to 2.30
> [18:01 ~/bs]$ guix refresh -ru util-linux
> guix/build-system/gnu.scm:143:8: error: cannot download for this method: #<procedure 7f277de49100 at gnu/packages/bootstrap.scm:155:4 (url hash-algo hash #:opti
> onal name #:key system)>

'guix refresh -u' only works in combination with the './pre-inst-env'
script, because it tries to modify your Guix directly.

In any case util-linux is already the latest version.