Hi, Eric Blake <[email protected]> writes:
> On 05/05/2010 04:30 PM, James Youngman wrote: >>>>>> FAIL: l1, unexpected failure, child process exited abnormally, >>>>>> /tmp/nix-build-iqdrm25mpg40iivc59hjmdjjay1rfifp-findutils-4.5.10-git.drv-0/findutils-4.5.10-git/xargs/testsuite/../xargs: >>>>>> /bin/echo: No such file or directory >>>>> >>>>> This is due to the fact that there’s no /bin/echo in the build >>>>> environment (actually /bin on NixOS contains only /bin/sh). > > That's a bug in Hydra's environment. POSIX requires that all the > standard utilities, including echo, be available for use by exec on the > path listed by 'command -p getconf PATH'. Indeed, “getconf PATH” returns “/bin:/usr/bin” on NixOS, which is clearly wrong (and consequently, “command -p getconf PATH” says “command not found”.) I guess we should patch glibc to make it DTRT. Glibc hardwires ‘_CS_PATH’ in sysdeps/unix/confstr.h. POSIX loosely defines ‘_CS_PATH’ as “the value for the PATH environment variable that finds all standard utilities.” [0] Unless “standard utilities” is formally defined somewhere, we could interpret it as “the path to Coreutils” and define it accordingly. Thoughts? [0] http://www.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html > Even if it is also available as a shell builtin, that does not > alleviate the requirement to also have it available on $PATH. echo(1) *is* available in $PATH in the build environment, just like all of Coreutils. What would you think of ‘--with-echo’? Thanks, Ludo’.
