Subject: bug#75833: Shepherd does not (correctly) depend on guile-fibers

From: Tomas Volf <[email-masked]>
Date: Sat, 25 Jan 2025 19:13:27 +0100

--8<---------------cut here---------------start------------->8---
$ guix shell guile shepherd -- guile -c '(use-modules (shepherd service timer))'
Backtrace:
In ice-9/boot-9.scm:
  3564:26 19 (_)
In unknown file:
          18 (primitive-load-path "shepherd/service/timer" #<procedu…>)
In ice-9/boot-9.scm:
  3923:23 17 (_)
   3411:4 16 (define-module* _ #:filename _ #:pure _ #:version _ # _ …)
  2595:24 15 (call-with-deferred-observers _)
  3424:24 14 (_)
   222:17 13 (map1 (((shepherd service)) ((shepherd support)) ((…)) …))
  3327:17 12 (resolve-interface (shepherd service) #:select _ #:hide …)
In ice-9/threads.scm:
    390:8 11 (_ _)
In ice-9/boot-9.scm:
  3253:13 10 (_)
In ice-9/threads.scm:
    390:8  9 (_ _)
In ice-9/boot-9.scm:
  3544:20  8 (_)
   2836:4  7 (save-module-excursion _)
  3564:26  6 (_)
In unknown file:
           5 (primitive-load-path "shepherd/service" #<procedure 7fa…>)
In ice-9/boot-9.scm:
  3923:23  4 (_)
   3411:4  3 (define-module* _ #:filename _ #:pure _ #:version _ # _ …)
  3424:24  2 (_)
   222:17  1 (map1 (((fibers) #:hide (sleep)) ((fibers channels)) # …))
   3330:6  0 (resolve-interface (fibers) #:select _ #:hide _ #:prefix …)

ice-9/boot-9.scm:3330:6: In procedure resolve-interface:
no code for module (fibers)
--8<---------------cut here---------------end--------------->8---

Adding guile-fibers to the list of packages for guix shell is enough to
get rid of the error, so I assume dependencies are not configured
correctly for the shepherd package.

Interesting is however that the dependency is listed in guix search:

--8<---------------cut here---------------start------------->8---
$ guix search shepherd | head -n 20 | grep dependencies
dependencies: [email-masked] [email-masked] [email-masked] [email-masked]
--8<---------------cut here---------------end--------------->8---

So, something is wrong, but not fully sure what.

Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.