[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#30706: Nginx service fails
From: |
Ludovic Courtès |
Subject: |
bug#30706: Nginx service fails |
Date: |
Mon, 05 Mar 2018 11:09:34 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Andreas Enge <address@hidden> 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’.