Hi Ricardo, Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> writes:
> Hi Guix, > > I have a server running GuixSD with Cuirass and it’s supposed to build a > bunch of user-provided manifests continuously. These manifests refer to > packages that are defined in a separate repository that is on > GUIX_PACKAGE_PATH, so really the Cuirass specification for them depends > on two repositories. Can we express this with specifications? Yes, the Cuirass manual shows an example that does exactly what you want: '((#:name . "foo-master") (#:load-path-inputs . ("guix")) (#:package-path-inputs . ("packages")) (#:proc-input . "conf") (#:proc-file . "drv-list.scm") (#:proc . cuirass-jobs) (#:proc-args (subset . "foo")) (#:inputs . (((#:name . "guix") (#:url . "git://git.savannah.gnu.org/guix.git") (#:load-path . ".") (#:branch . "master") (#:no-compile? . #t)) ((#:name . "conf") (#:url . "git://my-personal-conf.git") (#:load-path . ".") (#:branch . "master") (#:no-compile? . #t)) ((#:name . "packages") (#:url . "git://my-custom-packages.git") (#:load-path . ".") (#:branch . "master") (#:no-compile? . #t))))) > Previously I set up a cron job to update the second repository and > added it on the load-path through the Cuirass service configuration. That cron job is not needed anymore. Also, that load-path isn't global any longer: it's per specification (see #:package-path-inputs). > Since a recent update to Cuirass and the service “load-path” is no > longer a valid field, so it seems I can no longer do this. Do you have > any recommendations on how to accomplish my goal? Indeed, that recent update you are talking about adds multiple inputs to a Cuirass specification. Its goal is to handle your use case in a better way: the GUIX_PACKAGE_PATH (named "packages" in the above example) is a new input, and a new evaluation will be triggered when a new commit arrives in that input. Its name doesn't matter, but #:package-path-inputs needs to point to its name. > Another problem is that Cuirass crashes on startup. The Cuirass log > shows me this: > > --8<---------------cut here---------------start------------->8--- > 2018-08-09T16:54:05 running Fibers on 4 kernel threads > Uncaught exception in fiber ##f: > In ice-9/eval.scm: > 619:8 1 (_ #(#(#<directory (fibers) 127b500> #<<scheduler> ?> ?))) > In unknown file: > 0 (_ #<procedure 3de7aa0 at ice-9/eval.scm:330:13 ()> #<?> ?) > ERROR: In procedure for-each: Wrong type argument: #f > --8<---------------cut here---------------end--------------->8--- > > The Cuirass process remains, but appears to be stuck. This is because your specification list is invalid. I just noticed the Guix manual about Cuirass is out of date. Please, have a look at the Cuirass manual instead. Clément