bug-guix
[Top][All Lists]
Advanced

[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’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]