unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#19630: error message when referencing non-existing output not helpful
@ 2015-01-19 11:51 Ricardo Wurmus
  2015-01-24 22:01 ` Ludovic Courtès
  0 siblings, 1 reply; 2+ messages in thread
From: Ricardo Wurmus @ 2015-01-19 11:51 UTC (permalink / raw)
  To: 19630

When a package recipe specifies as input a non-existing output of a
package, the build process fails with a rather unhelpful late error
message.

The following is the output of building a package that depends on the
"bin" output of libtool, which has since been removed.

~~~~~
[rwurmus@workstation:~/code/guix] (599) $ ./pre-inst-env guix build ijs
Backtrace:
In ice-9/boot-9.scm:
 157: 18 [catch #t #<catch-closure 10e4d60> ...]
In unknown file:
   ?: 17 [apply-smob/1 #<catch-closure 10e4d60>]
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 1100940 at ice-9/boot-9.scm:4045:3 ()>]
4050: 13 [#<procedure 1100940 at ice-9/boot-9.scm:4045:3 ()>]
1724: 12 [%start-stack load-stack ...]
1729: 11 [#<procedure 1118ea0 ()>]
In unknown file:
   ?: 10 [primitive-load "/home/rwurmus/code/guix/scripts/guix"]
In guix/ui.scm:
 787: 9 [run-guix-command build "ijs"]
In ice-9/boot-9.scm:
 157: 8 [catch srfi-34 #<procedure 1872840 at guix/ui.scm:218:2 ()> ...]
 157: 7 [catch system-error ...]
In guix/scripts/build.scm:
 436: 6 [#<procedure 1872860 at guix/scripts/build.scm:422:2 ()>]
In guix/ui.scm:
 307: 5 [show-what-to-build #<build-daemon 256.14 17d7200> (#) #:dry-run? ...]
In guix/derivations.scm:
 226: 4 [substitution-oracle #<build-daemon 256.14 17d7200> (#)]
In guix/store.scm:
 705: 3 [substitutable-paths # #]
In srfi/srfi-1.scm:
 619: 2 [for-each #<procedure 383ed80 at guix/serialization.scm:118:12 (t-3793)> #]
In guix/serialization.scm:
  85: 1 [write-string #f #<input-output: socket 10>]
In unknown file:
   ?: 0 [string->utf8 #f]

ERROR: In procedure string->utf8:
ERROR: In procedure string->utf8: Wrong type argument in position 1 (expecting string): #f
~~~~~

The error message is triggered by an unexpected #f in a long list of
paths.  It would be more helpful if an earlier error was produced that
indicates that the cause is a non-existing package output.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#19630: error message when referencing non-existing output not helpful
  2015-01-19 11:51 bug#19630: error message when referencing non-existing output not helpful Ricardo Wurmus
@ 2015-01-24 22:01 ` Ludovic Courtès
  0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2015-01-24 22:01 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: 19630-done

Commit f304c9c fixes that.  Now the result is something like this:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build abiword -n
guix build: error: reference to invalid output 'binfds' of derivation '/gnu/store/7lxd5yri8s4vkailk1jg5bxiqrshblj1-glib-2.42.1.drv'
--8<---------------cut here---------------end--------------->8---

It doesn’t say the context in which that invalid reference occurred, but
it’s already much better.

Note that at the lowest level it’s possible to create a derivation that
refers to a non-existent output of some other derivation.  The problem
will go unnoticed until the ‘build-derivations’ RPC is called.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-24 22:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-19 11:51 bug#19630: error message when referencing non-existing output not helpful Ricardo Wurmus
2015-01-24 22:01 ` Ludovic Courtès

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