Andreas Enge 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 ;; … #: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’.