[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 'linux-libre-headers': No such file or directory
From: |
Ludovic Courtès |
Subject: |
Re: 'linux-libre-headers': No such file or directory |
Date: |
Tue, 25 Jun 2013 14:10:00 +0200 |
User-agent: |
Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux) |
Nikita Karetnikov <address@hidden> skribis:
> Can anyone reproduce the following?
No (on x86_64).
> INSTALL include/asm-generic (34 files)
> Can't exec "/bin/sh": No such file or directory at scripts/headers_install.pl
> line 48.
The line in question is:
system $unifdef . " $tmpfile > $installdir/$file";
It could be that:
1. Perl’s ‘system’ function uses /bin/sh;
2. Perl’s ‘system’ uses libc’s ‘system’, which uses /bin/sh.
In both cases, all architectures would be affected.
To test these hypotheses, I tried this:
echo 'system("ls > foo");' | \
strace -f -e execve
/nix/store/lmpna53jc7mf9i4xjy9i45x6c8qznw94-perl-5.16.1/bin/perl
This shows that Perl invokes the shell produced by
(@ (gnu packages base) bash-final):
[pid 30223]
execve("/nix/store/zch43a56qdchdw0xm3lwpr8ydg8ksx25-bash-4.2/bin/sh", ["sh",
"-c", "ls > foo"], [/* 72 vars */]) = 0
Process 30224 attached
[pid 30224] execve("/home/ludo/.guix-profile/bin/ls", ["ls"], [/* 70 vars
*/]) = 0
So I’m really clueless.
In the build log of linux-libre-headers, you should see something like:
patch-shebang: ./scripts/headers_install.pl: changing `/usr/bin/perl' to
`/nix/store/9nbvnlhr0glvwrg7bllz965g24snmgmn-perl-5.16.1/bin/perl'
Is it the case?
Any idea what changed in your setup lately (you used to build things
fine, IIUC)?
If you have Nix around, you can also try ‘nix-store --verify’ to check
if the store has been tampered with (which could easily happen if you
run everything as root).
HTH,
Ludo’.