Mark H Weaver writes: > Hi Christopher, > > mail@cbaines.net (Christopher Baines) writes: > >> cbaines pushed a commit to branch master >> in repository guix. >> >> commit 258a6d944ed891fa92fa87a16731e5dfe0bac477 >> Author: Christopher Baines >> Date: Fri Jul 13 20:39:46 2018 +0100 >> >> services: Add Gitolite. >> >> * gnu/services/version-control.scm (, >> ): New record types. >> (gitolite-accounts, gitolite-activation): New procedures. >> (gitolite-service-type): New variables. >> * gnu/tests/version-control.scm (%gitolite-test-admin-keypair, %gitolite-os, >> %test-gitolite): New variables. >> (run-gitolite-test): New procedure. >> * doc/guix.texi (Version Control): Document the gitolite service. > > This commit has a flaw which broke evaluations on Hydra, so I reverted > it for now. > >> +(define-gexp-compiler (gitolite-rc-file-compiler >> + (file ) system target) >> + (match file >> + (($ umask git-config-keys roles enable) >> + (apply text-file* "gitolite.rc" >> + `("%RC = (\n" >> + " UMASK => " ,(format #f "~4,'0o" umask) ",\n" > > The problem is here, in the call to 'format'. Guile has two variants of > the 'format' procedure: a very simple one which is always available > (also known as 'simple-format'), and a much more complex and featureful > variant in (ice-9 format). In the code above, you are assuming that > (ice-9 format) has been loaded, but you have not arranged for that to > happen. During the Hydra evaluation, this led to the following error: > > --8<---------------cut here---------------start------------->8--- > 0 (simple-format #f "~4,'0o" 63) > > ERROR: In procedure simple-format: > In procedure simple-format: FORMAT: Unsupported format option ~4 - use (ice-9 format) instead > --8<---------------cut here---------------end--------------->8--- Thanks for looking at this Mark, do you know where I can find out what Hydra is doing when it encounters this error? I tried looking around the web interface, but the latest evaluation I could find was from 2017 apparently. > I guess that the fix will involve 'with-imported-modules'. > Could you take a look? Sure. The confusing thing to me here is that this code works when using the service, including the system test (at least when I run it locally). Also, as far as I understand, even though the code is within a gexp-compiler, it doesn't even involve the store, as the call to format happens before the g-expression is generated. It sounds to me like adding #:use-modules (ice-9 format) to (gnu services version-control) would fix this, but I'll wait until I can reproduce the failure before re-adding the service. Thanks, Chris