From: Mark H Weaver <mhw@netris.org>
To: Christopher Baines <mail@cbaines.net>
Cc: guix-devel@gnu.org
Subject: Re: 02/02: services: Add Gitolite.
Date: Sun, 30 Sep 2018 15:25:08 -0400 [thread overview]
Message-ID: <87h8i6bxez.fsf@netris.org> (raw)
In-Reply-To: <87d0sv7001.fsf@cbaines.net> (Christopher Baines's message of "Sun, 30 Sep 2018 11:28:14 +0100")
Hi Christopher,
Christopher Baines <mail@cbaines.net> writes:
> Mark H Weaver <mhw@netris.org> writes:
>
>> mail@cbaines.net (Christopher Baines) writes:
>>
>>> cbaines pushed a commit to branch master
>>> in repository guix.
>>>
>>> commit 258a6d944ed891fa92fa87a16731e5dfe0bac477
>>> Author: Christopher Baines <mail@cbaines.net>
>>> Date: Fri Jul 13 20:39:46 2018 +0100
>>>
>>> services: Add Gitolite.
>>>
>>> * gnu/services/version-control.scm (<gitolite-configuration>,
>>> <gitolite-rc-file>): 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 <gitolite-rc-file>) system target)
>>> + (match file
>>> + (($ <gitolite-rc-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.
Hydra's web interface is the wrong place to look for information on
this problem.
I guess the error happens when Hydra tries to create a derivation for
the system test '%test-gitolite'.
The relevant code that Hydra runs to generate an evaluation is in
build-aux/hydra/gnu-system.scm. Specifically, 'system-test-jobs', which
calls (all-system-tests) from gnu/tests.scm, which looks for public
variables bound to 'system-test' records. That includes
'%test-gitolite'.
>> 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.
I'm not yet sufficiently familiar with gexp compilation to know where
the call to 'format' is ultimately being executed, and I don't have time
right now to investigate further, so I hoping that Ludovic can chime in
here with a definitive answer on how to fix this properly.
Mark
next prev parent reply other threads:[~2018-09-30 19:25 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180928200104.10056.60968@vcs0.savannah.gnu.org>
[not found] ` <20180928200105.E0B4F20476@vcs0.savannah.gnu.org>
2018-09-30 1:45 ` 02/02: services: Add Gitolite Mark H Weaver
2018-09-30 10:28 ` Christopher Baines
2018-09-30 19:25 ` Mark H Weaver [this message]
2018-09-30 20:17 ` Ludovic Courtès
2018-10-02 7:20 ` Christopher Baines
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h8i6bxez.fsf@netris.org \
--to=mhw@netris.org \
--cc=guix-devel@gnu.org \
--cc=mail@cbaines.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).