Subject: Re: bug#22836: “guix build -S” fails when “source” is #f

From: [email-masked] (Ludovic Courtès)
Date: Tue, 27 Sep 2016 11:47:42 +0200

Ricardo Wurmus <[email-masked]> skribis:

> I just did this:
>
>     guix build -S xfce
>
> This resulted in this error message:
>
> ~~~~~~~~~~~~~~~~~~~~~~~
> Backtrace:
> In ice-9/boot-9.scm:
>  157: 18 [catch #t #<catch-closure 19a6780> ...]
> In unknown file:
>    ?: 17 [apply-smob/1 #<catch-closure 19a6780>]
> In ice-9/boot-9.scm:
>   63: 16 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
>  432: 15 [eval # #]
> In ice-9/boot-9.scm:
> 2401: 14 [save-module-excursion #<procedure 19c4940 at ice-9/boot-9.scm:4045:3 ()>]
> 4050: 13 [#<procedure 19c4940 at ice-9/boot-9.scm:4045:3 ()>]
> 1724: 12 [%start-stack load-stack ...]
> 1729: 11 [#<procedure 19dbea0 ()>]
> In unknown file:
>    ?: 10 [primitive-load "/home/rekado/dev/guix/scripts/guix"]
> In guix/ui.scm:
> 1177: 9 [run-guix-command build "-S" "xfce"]
> In ice-9/boot-9.scm:
>  157: 8 [catch srfi-34 #<procedure 205a080 at guix/ui.scm:413:2 ()> ...]
>  157: 7 [catch system-error ...]
> In guix/scripts/build.scm:
>  638: 6 [#<procedure 205a120 at guix/scripts/build.scm:634:2 ()>]
>  591: 5 [options->derivations #<build-daemon 256.15 280efc0> (# # # # ...)]
> In srfi/srfi-1.scm:
>  646: 4 [append-map #<procedure 280ebc0 at guix/scripts/build.scm:591:16 (expr)> #]
>  578: 3 [map #<procedure 280ebc0 at guix/scripts/build.scm:591:16 (expr)> (#)]
> In guix/scripts/build.scm:
>  598: 2 [#<procedure 280ebc0 at guix/scripts/build.scm:591:16 (expr)> #]
> In guix/store.scm:
> 1017: 1 [#<procedure 206fbe0 at guix/store.scm:1016:26 (store . args)> # #f]
> In guix/packages.scm:
> 1073: 0 [origin->derivation #f "x86_64-linux"]
>
> guix/packages.scm:1073:2: In procedure origin->derivation:
> guix/packages.scm:1073:2: Throw to key `match-error' with args `("match" "no matching pattern" #f)'.
> ~~~~~~~~~~~~~~~~~~~~~~~
>
> That’s expected, because the “xfce” package is a meta-package and thus
> does not have any sources of its own.  The “source” field is “#f”.

Fixed in 8a54c0ec694ad6e22b155d167552b8fd0914e82d.

I made it a warning so that one can still use things like:

  guix build -S `guix package -A | cut -f1`

Thanks!

Ludo’.