Subject: bug#26987: closed (Re: bug#26987: [PATCH 2/2] build: pull: Fix compilation list construction.)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 25 May 2017 12:34:02 +0000

Your bug report

#26987: guix pull without guile-ssh.

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
26987: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26987
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#26987: [PATCH 2/2] build: pull: Fix compilation list construction.
From: [email-masked] (Ludovic Courtès)
To: Mathieu Othacehe <[email-masked]>
Cc: [email-masked]
Date: Thu, 25 May 2017 14:33:04 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Mathieu Othacehe <[email-masked]> 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’.

Subject: guix pull without guile-ssh.
From: Mathieu Othacehe <[email-masked]>
To: [email-masked]
Date: Thu, 18 May 2017 21:53:34 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

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