GNU bug report logs -
#30706
'guix system reconfigure' can fail to load new system services
Previous Next
Full log
View this message in rfc822 format
Andreas Enge <andreas <at> enge.fr> skribis:
> guix system: loading new services: user-homes term-auto nginx...
> shepherd: Evaluating user expression (register-services (primitive-load "/gnu/st?") ?).
> guix system: error: exception caught while executing 'eval' on service 'root':
> find-long-options: unbound variable
The problem we have here is that the agetty service expects
‘find-long-options’ from linux-boot.scm, and it expects it at the top
level.
So what happens above is that we evaluate in PID 1 code like:
(make <service>
;; …
#:start (let ((tty … (find-long-options …) …))
…))
If you run this on an “old” GuixSD, ‘find-long-options’ is undefined.
Thus the whole (register-services …) expression fails to evaluate, and
we end up with some of the services missing.
Conclusions:
1. ‘guix system reconfigure’ should probably register services one by
one so that if one of the service expressions is erroneous, we
don’t bork everything. See ‘upgrade-shepherd-services’.
2. IWBN to delay execution of this whole default-tty thing to the
#:start method. Ideas, Danny?
In general we should do as little as possible at the top level in the
Shepherd config file.
Ludo’.
This bug report was last modified 7 years and 95 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.