2009-10-19 11:17:10 +02:00
|
|
|
{ stdenv, fetchurl
|
|
|
|
, impureLibcPath ? null
|
|
|
|
}:
|
2004-02-20 17:25:34 +01:00
|
|
|
|
2004-03-29 19:23:01 +02:00
|
|
|
stdenv.mkDerivation {
|
2008-02-22 16:18:22 +01:00
|
|
|
name = "perl-5.8.8";
|
2004-02-20 17:25:34 +01:00
|
|
|
|
2009-10-19 11:17:10 +02:00
|
|
|
builder =
|
|
|
|
''
|
|
|
|
source $stdenv/setup
|
|
|
|
|
|
|
|
if test "$NIX_ENFORCE_PURITY" = "1"; then
|
|
|
|
GLIBC=${if impureLibcPath == null then "$(cat $NIX_GCC/nix-support/orig-libc)" else impureLibcPath}
|
|
|
|
extraflags="-Dlocincpth=$GLIBC/include -Dloclibpth=$GLIBC/lib"
|
|
|
|
fi
|
|
|
|
|
|
|
|
configureScript=./Configure
|
|
|
|
configureFlags="-de -Dcc=gcc -Dprefix=$out -Uinstallusrbinperl $extraflags"
|
|
|
|
dontAddPrefix=1
|
|
|
|
|
|
|
|
preBuild() {
|
|
|
|
# Make Cwd work on NixOS (where we don't have a /bin/pwd).
|
|
|
|
substituteInPlace lib/Cwd.pm --replace "'/bin/pwd'" "'$(type -tP pwd)'"
|
|
|
|
}
|
|
|
|
|
|
|
|
postInstall() {
|
|
|
|
ensureDir "$out/nix-support"
|
|
|
|
cp $setupHook $out/nix-support/setup-hook
|
|
|
|
}
|
|
|
|
|
|
|
|
genericBuild
|
|
|
|
|
|
|
|
'';
|
|
|
|
|
2003-11-05 13:17:48 +01:00
|
|
|
src = fetchurl {
|
2008-02-22 16:18:22 +01:00
|
|
|
url = mirror://cpan/src/perl-5.8.8.tar.bz2;
|
|
|
|
sha256 = "1j8vzc6lva49mwdxkzhvm78dkxyprqs4n4057amqvsh4kh6i92l1";
|
2004-02-20 17:25:34 +01:00
|
|
|
};
|
|
|
|
|
2007-11-15 17:15:15 +01:00
|
|
|
patches = [
|
|
|
|
# This patch does the following:
|
|
|
|
# 1) Do use the PATH environment variable to find the `pwd' command.
|
|
|
|
# By default, Perl will only look for it in /lib and /usr/lib.
|
|
|
|
# !!! what are the security implications of this?
|
|
|
|
# 2) Force the use of <errno.h>, not /usr/include/errno.h, on Linux
|
|
|
|
# systems. (This actually appears to be due to a bug in Perl.)
|
|
|
|
./no-sys-dirs.patch
|
|
|
|
|
|
|
|
# Patch to make Perl 5.8.8 build with GCC 4.2. Taken from
|
|
|
|
# http://www.nntp.perl.org/group/perl.perl5.porters/2006/11/msg117738.html
|
2008-02-22 16:18:22 +01:00
|
|
|
./gcc-4.2.patch
|
2009-09-14 15:31:26 +02:00
|
|
|
|
|
|
|
# Fix for "SysV.xs:7:25: error: asm/page.h: No such file or
|
|
|
|
# directory" on recent kernel headers. From
|
|
|
|
# http://bugs.gentoo.org/show_bug.cgi?id=168312.
|
|
|
|
(fetchurl {
|
|
|
|
url = http://bugs.gentoo.org/attachment.cgi?id=111427;
|
|
|
|
sha256 = "017pj0nbqb7kwj3cs727c2l2d8c45l9cwxf71slgb807kn3ppgmn";
|
|
|
|
})
|
2007-11-15 17:15:15 +01:00
|
|
|
];
|
2005-03-10 13:49:37 +01:00
|
|
|
|
|
|
|
setupHook = ./setup-hook.sh;
|
2003-11-05 13:17:48 +01:00
|
|
|
}
|