From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Cl=C3=A9ment?= Lassieur Subject: Re: Cuirass fibers crash // using with GUIX_PACKAGE_PATH Date: Thu, 09 Aug 2018 19:33:33 +0200 Message-ID: <87h8k3phqq.fsf@lassieur.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:44717) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fnooi-00077u-Mx for help-guix@gnu.org; Thu, 09 Aug 2018 13:33:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fnoof-0007Cs-Hq for help-guix@gnu.org; Thu, 09 Aug 2018 13:33:44 -0400 Received: from mail.lassieur.org ([83.152.10.219]:59946) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fnoof-0007CN-9Y for help-guix@gnu.org; Thu, 09 Aug 2018 13:33:41 -0400 In-reply-to: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Ricardo Wurmus Cc: help-guix@gnu.org Hi Ricardo, Ricardo Wurmus writes: > Hi Guix, > > I have a server running GuixSD with Cuirass and it=E2=80=99s 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 =E2=80=9Cload-path=E2=80= =9D 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 (_ #(#(# #< ?> ?))) > In unknown file: > 0 (_ # # ?) > 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=C3=A9ment