Ran into this issue last week.  If you:

- Configure some offload build machines in your operating-system
 configuration.
- Reconfigure your system.
- Remove all offload build machines.
- Reconfigure your system again.

...then various guix operations will still try to connect to offload machines, even if you reboot the affected client.

This is caused by a bug in the `guix-activation' procedure:

  ;; ... and /etc/guix/machines.scm.
  #$(if (null? (guix-configuration-build-machines config))
        #~#f
        (guix-machines-files-installation
         #~(list #$@(guix-configuration-build-machines
          config))))

If there are no build machines defined in the configuration, no
operation is performed (#f is returned), which leaves the previous
generation’s /etc/guix/machines.scm in place.

The same issue appears to affect channels:

  ;; ... and /etc/guix/channels.scm...
  #$(and channels (install-channels-file channels))

I’d be happy to take a stab at fixing this, but I’m not certain what
direction to go, or how much to refactor to get there. Should the
channels/machines files be removed (ignoring errors if they don’t
exist)? Should empty files be installed? Should that happen inline in `guix-activation', or in another procedure? Should the filenames be extracted to %variables to avoid duplicating between the two places
they’ll be used?

If someone would like to provide answered, I would contribute a patch.

Thanks,

— Ian

Reply via email to