Subject: using guix to install packages from inside a container that runs on foreign distro breaks guix and the foreign distro

From: david larsson <[email-masked]>
Date: Fri, 01 Jan 2021 18:02:01 +0100

Hi!

using guix to install packages from inside a container that runs on 
foreign distro breaks guix and the foreign distro, see below:

Steps to reproduce:

The below system was instantiated witg guix system container 
this_file.scm --network

upon starting it with sudo /gnu/store/asdfasdfasdf-run-container

and connecting to it with

sudo guix container exec 8625 /run/current-system/profile/bin/bash 
--login
[sudo] password for david:
root@MinimalSSH /#
root@MinimalSSH /#
root@MinimalSSH /# guix package -i hello
guix package: warning: Consider running 'guix pull' followed by
'guix package -u' to get up-to-date packages and security updates.

The following package will be installed:
    hello 2.10

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 
100.0%
13.0 MB will be downloaded
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 
100.0%
downloading from 
https://ci.guix.gnu.org/nar/lzip/z7a6sbvqzb5zapwpznmjkq2rsxil6i67-glibc-utf8-locales-2.31 
...
  glibc-utf8-locales-2.31  376KiB      1.0MiB/s 00:00 
[##################] 100.0%

downloading from 
https://ci.guix.gnu.org/nar/lzip/mmhimfwmmidf09jw1plw3aw1g1zn2nkh-bash-static-5.0.16 
...
  bash-static-5.0.16  625KiB           1.5MiB/s 00:00 
[##################] 100.0%

downloading from 
https://ci.guix.gnu.org/nar/lzip/q0s3bi0by383cqzl9zz1wf74p6pdl3fc-libx11-1.6.A-doc 
...
  libx11-1.6.A-doc  1.2MiB             1.6MiB/s 00:01 
[##################] 100.0%

error: executing 
`/gnu/store/qyjhy4bkz51jyspi63llfznsnz7vibzy-guix-1.1.0-30.875c01f/bin/guix 
substitute': No such file or directory
guix package: error: unexpected EOF reading a line
root@MinimalSSH /#
root@MinimalSSH /# exit
logout
guix container: error: exec failed with status 1
david@l560:~/VirtualHome/src$ guix package -i hello
bash: /usr/local/bin/guix: 
/gnu/store/b7rixb64yp00znz0d5rwd5zzklwzlzmv-guile-wrapper/bin/guile: bad 
interpreter: No such file or directory
david@l560:~/VirtualHome/src$
-----------------------

As you can see, guix is now broken on both the host and guest system.

-----------------------

;; guix system container /path/to/this/file.scm --network
;; don't forget --network
(use-modules (gnu) (gnu system nss) (gnu packages))
(use-service-modules networking ssh desktop spice cuirass 
virtualization)
(use-package-modules screen ssh gnome certs bash)

(define %cuirass-specs
   #~(
      ;; spec two
      list
      '((#:name . "my-pkgs")
        (#:load-path-inputs . ("guix"))
        (#:package-path-inputs . ("my-guix-packages"))
        (#:proc-input . "guix")
        (#:proc-file . "build-aux/cuirass/gnu-system.scm")
        (#:proc . cuirass-jobs)
        (#:proc-args .
         ((subset . "manifests")
          (systems . ("x86_64-linux"))
          (manifests . (("config" . "manifests/user1.scm")))
          ))
        (#:inputs . (
                     ((#:name . "guix")
                      (#:url . "git://git.savannah.gnu.org/guix.git")
                      (#:load-path . ".")
                      (#:branch . "master")
                      (#:no-compile? . #t))
                     ((#:name . "my-guix-packages")
                      ;;(#:url . "file:///home/cuirass/my-guix-packages")
                      (#:url . 
"https://github.com/methuselah-0/my-guix-packages.git")
                      (#:load-path . "packages")
                      (#:branch . "master")
                      (#:no-compile? . #t))
                     ((#:name . "config")
                      ;;(#:url . 
"file:///home/cuirass/my-guixsd-config.sh")
                      (#:url . 
"https://github.com/methuselah-0/my-guixsd-config.sh.git")
                      (#:load-path . ".")
                      (#:branch . "master")
                      (#:no-compile? . #t))
                     ))
        (#:build-outputs . ()))))

(operating-system
  (host-name "MinimalCuirass")
  (timezone "Europe/Stockholm")
  (bootloader (bootloader-configuration
               (bootloader grub-bootloader)))
  (file-systems
   (cons (file-system
          (device (file-system-label "fsroot"))
          (mount-point "/")
          (type "btrfs"))
         %base-file-systems))
  (services (append (list
                     (service openssh-service-type
                              (openssh-configuration
                               (port-number 2222)
                               (permit-root-login 'without-password)
                               (authorized-keys
                                `(("root" ,(local-file 
"/home/david/.ssh/id_rsa.pub"))))))
                     ;; 
https://lists.gnu.org/archive/html/help-guix/2019-06/msg00116.html
                     (service cuirass-service-type
                              (cuirass-configuration
                               (interval 60) ;; 10 hours
                               (fallback? #f) ;; default is #f
                               (host "0.0.0.0")
                               (port 8082)
                               (use-substitutes? #t)
                               (specifications %cuirass-specs))))
                    %base-services)))

-------------------

Best regards,
David Larsson