Hi, On 05/06/2010 05:13 PM, Ludovic Courtès wrote:
>> 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. Unfortunately it's not obvious what the "right" compile-time value of _CS_PATH should be. On NixOS, it could be "/var/run/current-system/sw/bin/", but I'd rather not put a NixOS-specific path like that in our Glibc, and it wouldn't appear in the chroot anyway. -- Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/
