Subject: “guix build -S” fails when“source” is #f
From: Ricardo Wurmus <[email-masked]>
To: [email-masked]
Date: Sun, 28 Feb 2016 11:58:34 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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”.

Guix should print a nice error message informing the user that the
requested package does not have any sources.

~~ Ricardo