--- Begin Message ---
Subject: |
guix pull without guile-ssh. |
Date: |
Thu, 18 May 2017 21:53:34 +0200 |
User-agent: |
mu4e 0.9.18; emacs 25.2.1 |
Hi,
If Guile-SSH is not detected, depends-on-guile-ssh? will be called here:
--8<---------------cut here---------------start------------->8---
(guix build pull)
(let* ((files (remove (if (false-if-exception
(resolve-interface '(ssh session)))
(const #f)
depends-on-guile-ssh?)
(all-scheme-files out)))
--8<---------------cut here---------------end--------------->8---
Thus, source-module-closure is called with a file. However,
source-module-closure is expecting a module list like '((guix ...)).
This result in the following error while running guix pull:
--8<---------------cut here---------------start------------->8---
In ./guix/modules.scm:
118:4 0 (module-closure _ #:select? _ #:dependencies _)
./guix/modules.scm:118:4: In procedure module-closure:
./guix/modules.scm:118:4: Throw to key `match-error' with args `("match" "no
matching pattern"
"/gnu/store/0slxknjvjwhp31qryv42419vqwjrjifb-guix-latest/guix.scm")'.
builder for `/gnu/store/lq6ga13k75ljrdnqam9jm1q92cv4g0pm-guix-latest.drv'
failed with exit code 1
--8<---------------cut here---------------end--------------->8---
I'm not sure how to fix it.
Thanks,
Mathieu
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#26987: [PATCH 2/2] build: pull: Fix compilation list construction. |
Date: |
Thu, 25 May 2017 14:33:04 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Mathieu Othacehe <address@hidden> skribis:
>> I'm having a hard time tring to understand ,trace output.
>
> I get why, it's because guile-ssh is not in my %load-path. So loading
> "ssh/session.scm" fails in "source-module-dependencies".
>
> It's a bit of a vicious circle here : if resolve-interface '(ssh
> session) fails, depends-on-guile-ssh? will fail too.
>
> I'm note sure we can depend on source-module-closure to do the job here.
I believe this is fixed by commit
20ed093977cc80ba1729c38e05ae7955a38069a6, which follows a modification
to the ‘source-module-closure’ so that callers can catch
missing-dependency errors.
Please let me know what you think!
After that, you should be able to reinstate the (guix git) commit,
provided build-aux/build-self.scm does:
(define guile-git
(package-for-current-guile "guile-git"
"guile2.2-git"
"guile2.0-git"))
and passes that down to ‘build-guix’.
Thanks,
Ludo’.
--- End Message ---