I believe that I have identified the problematic difference in my
operating system config between my working and non-working hosts. After
applying the following patch to my operating system config (good and bad
versions attatched), I was able to successfully reconfigure with guix
8ec0ca8faff62f19426f22aeb1bd59a8950ca05a (I was able to reproduce the
failure with that commit on another VM):
--- bad.scm 2021-03-15 22:36:36.000000001 -0400
+++ good.scm 2021-03-15 22:37:01.000000001 -0400
@@ -79,8 +79,6 @@
(guix-service-type config =>
(guix-configuration
(inherit config)
- (extra-options
- '("--disable-deduplication"))
(authorized-keys
(cons
(local-file
"/home/jackhill/alperton-guix-key.pub")
I am forced to conclude that running the guix-daemon with deduplication
disabled causes this build failure. Spooky!
Best,
Jack
;; This is an operating system configuration for a VM image.
;; Modify it as you see fit and instantiate the changes by running:
;;
;; guix system reconfigure /etc/config.scm
;;
(use-modules (gnu) (guix))
(use-service-modules networking ssh)
(use-package-modules bootloaders certs linux
package-management)
(define vm-image-motd (plain-file "motd" "
\x1b[1;37mThis is the GNU system. Welcome!\x1b[0m
This instance of Guix is a template for virtualized environments.
You can reconfigure the whole system by adjusting /etc/config.scm
and running:
guix system reconfigure /etc/config.scm
Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation.
\x1b[1;33mConsider setting a password for the 'root' and 'guest' \
accounts.\x1b[0m
"))
(operating-system
(host-name "kalessin")
(timezone "America/New_York")
(locale "en_US.utf8")
(initrd-modules (cons "virtio_scsi" %base-initrd-modules))
;; Label for the GRUB boot menu.
(label (string-append "GNU Guix " (package-version guix)))
(firmware '())
;; Below we assume /dev/vda is the VM's hard disk.
;; Adjust as needed.
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(target "/dev/vda")
(terminal-outputs '(console))))
(file-systems (cons (file-system
(mount-point "/")
(device (file-system-label "kalessin-btrfs"))
(type "btrfs")
(options "compress=zstd"))
%base-file-systems))
(users (cons* (user-account
(name "jackhill")
(comment "Jack Hill")
(group "users")
(supplementary-groups '("wheel" "netdev")))
%base-user-accounts))
;; Our /etc/sudoers file. Since 'guest' initially has an empty password,
;; allow for password-less sudo.
(sudoers-file (plain-file "sudoers" "\
root ALL=(ALL) ALL
%wheel ALL=NOPASSWD: ALL\n"))
(packages (append (list btrfs-progs nss-certs)
%base-packages))
(services
(append (list (service openssh-service-type
(openssh-configuration
(password-authentication? #f)
(authorized-keys
`(("jackhill" ,(local-file "/id_ed25519.pub")
,(local-file
"/home/jackhill/tamago.ssh-key")
,(local-file
"/home/jackhill/id_ed25519.pub"))))))
;; Use the DHCP client service rather than NetworkManager.
(service dhcp-client-service-type))
(modify-services %base-services
(guix-service-type config =>
(guix-configuration
(inherit config)
(extra-options
'("--disable-deduplication"))
(authorized-keys
(cons
(local-file
"/home/jackhill/alperton-guix-key.pub")
%default-authorized-guix-keys))))))))
;; This is an operating system configuration for a VM image.
;; Modify it as you see fit and instantiate the changes by running:
;;
;; guix system reconfigure /etc/config.scm
;;
(use-modules (gnu) (guix))
(use-service-modules networking ssh)
(use-package-modules bootloaders certs linux
package-management)
(define vm-image-motd (plain-file "motd" "
\x1b[1;37mThis is the GNU system. Welcome!\x1b[0m
This instance of Guix is a template for virtualized environments.
You can reconfigure the whole system by adjusting /etc/config.scm
and running:
guix system reconfigure /etc/config.scm
Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation.
\x1b[1;33mConsider setting a password for the 'root' and 'guest' \
accounts.\x1b[0m
"))
(operating-system
(host-name "kalessin")
(timezone "America/New_York")
(locale "en_US.utf8")
(initrd-modules (cons "virtio_scsi" %base-initrd-modules))
;; Label for the GRUB boot menu.
(label (string-append "GNU Guix " (package-version guix)))
(firmware '())
;; Below we assume /dev/vda is the VM's hard disk.
;; Adjust as needed.
(bootloader (bootloader-configuration
(bootloader grub-bootloader)
(target "/dev/vda")
(terminal-outputs '(console))))
(file-systems (cons (file-system
(mount-point "/")
(device (file-system-label "kalessin-btrfs"))
(type "btrfs")
(options "compress=zstd"))
%base-file-systems))
(users (cons* (user-account
(name "jackhill")
(comment "Jack Hill")
(group "users")
(supplementary-groups '("wheel" "netdev")))
%base-user-accounts))
;; Our /etc/sudoers file. Since 'guest' initially has an empty password,
;; allow for password-less sudo.
(sudoers-file (plain-file "sudoers" "\
root ALL=(ALL) ALL
%wheel ALL=NOPASSWD: ALL\n"))
(packages (append (list btrfs-progs nss-certs)
%base-packages))
(services
(append (list (service openssh-service-type
(openssh-configuration
(password-authentication? #f)
(authorized-keys
`(("jackhill" ,(local-file "/id_ed25519.pub")
,(local-file
"/home/jackhill/tamago.ssh-key")
,(local-file
"/home/jackhill/id_ed25519.pub"))))))
;; Use the DHCP client service rather than NetworkManager.
(service dhcp-client-service-type))
(modify-services %base-services
(guix-service-type config =>
(guix-configuration
(inherit config)
(authorized-keys
(cons
(local-file
"/home/jackhill/alperton-guix-key.pub")
%default-authorized-guix-keys))))))))