[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: coreutils: Can't exec "/bin/sh": No such file or directory at ./man/
From: |
Ludovic Courtès |
Subject: |
Re: coreutils: Can't exec "/bin/sh": No such file or directory at ./man/help2man |
Date: |
Sat, 22 Jun 2013 22:22:57 +0200 |
User-agent: |
Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux) |
Nikita Karetnikov <address@hidden> skribis:
> # ./pre-inst-env guix build -K --no-substitutes coreutils
What’s the output path for that? (See "out" in
/nix/store/jyj752q3jjxj0xjgm7wh2xwhkckndab7-coreutils-8.21.drv, for
instance.)
Which Guix commit is it, and which platform?
> [...]
>
> Can't exec "/bin/sh": No such file or directory at ./man/help2man line 229.
> help2man: can't get '--help' info from man/chroot.td/chroot
> make[2]: *** [man/chroot.1] Error 2
The line in question is:
join '', map { s/ +$//; expand $_ } `$ARGV[0] $_ 2>/dev/null`
It could be that Perl’s backquote thing uses /bin/sh, but then we’d have
noticed it elsewhere too (on Hydra, on my laptop, etc.)
Is the daemon doing chroot builds and build users?
> Binary file man/chroot.td/chroot matches
>
> # strings chroot | grep /bin/sh
> /bin/sh
> If no command is given, run '${SHELL} -i' (default: '/bin/sh -i').
>
> Can this be fixed with 'substitute*'?
Yes, but that’s a different issue. Actually, I would leave it as is,
because chroot honors $SHELL:
/* No command. Run an interactive shell. */
char *shell = getenv ("SHELL");
if (shell == NULL)
shell = bad_cast ("/bin/sh");
And also because in the GNU System there’ll be /bin/sh as a symlink to
the “current” Bash (as done on NixOS).
WDYT?
Thanks,
Ludo’.