mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-24 06:31:02 +00:00
* Perl nixification fixes. Oh, the humanity.
svn path=/nixpkgs/trunk/; revision=813
This commit is contained in:
parent
1999676d30
commit
f82050134e
|
@ -1,9 +1,10 @@
|
||||||
#! /bin/sh
|
#! /bin/sh -e
|
||||||
|
|
||||||
. $stdenv/setup || exit 1
|
buildinputs="$patch"
|
||||||
|
. $stdenv/setup
|
||||||
|
|
||||||
tar xvfz $src || exit 1
|
tar xvfz $src
|
||||||
cd perl-* || exit 1
|
cd perl-*
|
||||||
|
|
||||||
# Perl's Configure messes with PATH. We can't have that, so we patch it.
|
# Perl's Configure messes with PATH. We can't have that, so we patch it.
|
||||||
# Yeah, this is an ugly hack.
|
# Yeah, this is an ugly hack.
|
||||||
|
@ -14,13 +15,14 @@ cat Configure | \
|
||||||
grep -v '^glibpth=' | \
|
grep -v '^glibpth=' | \
|
||||||
grep -v '^loclibpth=' | \
|
grep -v '^loclibpth=' | \
|
||||||
grep -v '^locincpth=' | \
|
grep -v '^locincpth=' | \
|
||||||
cat > Configure.tmp || exit 1
|
cat > Configure.tmp
|
||||||
mv Configure.tmp Configure || exit 1
|
mv Configure.tmp Configure
|
||||||
chmod +x Configure || exit 1
|
chmod +x Configure
|
||||||
|
|
||||||
|
patch -p1 < $srcPatch
|
||||||
|
|
||||||
./Configure -de -Dcc=gcc -Dprefix=$out -Uinstallusrbinperl \
|
./Configure -de -Dcc=gcc -Dprefix=$out -Uinstallusrbinperl \
|
||||||
-Dlocincpth="$NIX_LIBC_INCLUDES" \
|
-Dlocincpth="$NIX_LIBC_INCLUDES" \
|
||||||
-Dloclibpth="$NIX_LIBC_LIBS" \
|
-Dloclibpth="$NIX_LIBC_LIBS"
|
||||||
|| exit 1
|
make
|
||||||
make || exit 1
|
make install
|
||||||
make install || exit 1
|
|
||||||
|
|
|
@ -1,10 +1,23 @@
|
||||||
{stdenv, fetchurl}: derivation {
|
{stdenv, fetchurl, patch}:
|
||||||
name = "perl-5.8.0";
|
|
||||||
|
derivation {
|
||||||
|
name = "perl-5.8.3";
|
||||||
system = stdenv.system;
|
system = stdenv.system;
|
||||||
|
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = ftp://ftp.cs.uu.nl/mirror/CPAN/src/5.0/perl-5.8.1.tar.gz;
|
url = ftp://ftp.cs.uu.nl/mirror/CPAN/src/5.0/perl-5.8.3.tar.gz;
|
||||||
md5 = "87cf132f1fbf23e780f0b218046438a6";
|
md5 = "6d2b389f8c6424b7af303f417947714f";
|
||||||
};
|
};
|
||||||
stdenv = stdenv;
|
|
||||||
|
# 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.)
|
||||||
|
|
||||||
|
srcPatch = ./patch;
|
||||||
|
|
||||||
|
inherit stdenv patch;
|
||||||
}
|
}
|
||||||
|
|
42
pkgs/development/interpreters/perl/patch
Normal file
42
pkgs/development/interpreters/perl/patch
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
diff -rc perl-5.8.3-orig/ext/Errno/Errno_pm.PL perl-5.8.3/ext/Errno/Errno_pm.PL
|
||||||
|
*** perl-5.8.3-orig/ext/Errno/Errno_pm.PL 2003-08-04 09:37:13.000000000 +0200
|
||||||
|
--- perl-5.8.3/ext/Errno/Errno_pm.PL 2004-02-20 16:59:05.000000000 +0100
|
||||||
|
***************
|
||||||
|
*** 105,111 ****
|
||||||
|
# Watch out for cross compiling for EPOC (usually done on linux)
|
||||||
|
$file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
|
||||||
|
} elsif ($^O eq 'linux' &&
|
||||||
|
! $Config{gccversion} ne '' # might be using, say, Intel's icc
|
||||||
|
) {
|
||||||
|
# Some Linuxes have weird errno.hs which generate
|
||||||
|
# no #file or #line directives
|
||||||
|
--- 105,111 ----
|
||||||
|
# Watch out for cross compiling for EPOC (usually done on linux)
|
||||||
|
$file{'/usr/local/epocemx/epocsdk/include/libc/sys/errno.h'} = 1;
|
||||||
|
} elsif ($^O eq 'linux' &&
|
||||||
|
! $Config{gccversion} eq '' # might be using, say, Intel's icc
|
||||||
|
) {
|
||||||
|
# Some Linuxes have weird errno.hs which generate
|
||||||
|
# no #file or #line directives
|
||||||
|
Only in perl-5.8.3/ext/Errno: Errno_pm.PL~
|
||||||
|
diff -rc perl-5.8.3-orig/lib/Cwd.pm perl-5.8.3/lib/Cwd.pm
|
||||||
|
*** perl-5.8.3-orig/lib/Cwd.pm 2003-12-20 00:05:30.000000000 +0100
|
||||||
|
--- perl-5.8.3/lib/Cwd.pm 2004-02-20 16:58:16.000000000 +0100
|
||||||
|
***************
|
||||||
|
*** 201,207 ****
|
||||||
|
|
||||||
|
# The 'natural and safe form' for UNIX (pwd may be setuid root)
|
||||||
|
sub _backtick_pwd {
|
||||||
|
! local @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)};
|
||||||
|
my $cwd = `$pwd_cmd`;
|
||||||
|
# Belt-and-suspenders in case someone said "undef $/".
|
||||||
|
local $/ = "\n";
|
||||||
|
--- 201,207 ----
|
||||||
|
|
||||||
|
# The 'natural and safe form' for UNIX (pwd may be setuid root)
|
||||||
|
sub _backtick_pwd {
|
||||||
|
! local @ENV{qw(IFS CDPATH ENV BASH_ENV)};
|
||||||
|
my $cwd = `$pwd_cmd`;
|
||||||
|
# Belt-and-suspenders in case someone said "undef $/".
|
||||||
|
local $/ = "\n";
|
||||||
|
Only in perl-5.8.3/lib: Cwd.pm~
|
|
@ -232,6 +232,7 @@
|
||||||
|
|
||||||
perl = (import ../development/interpreters/perl) {
|
perl = (import ../development/interpreters/perl) {
|
||||||
inherit fetchurl stdenv;
|
inherit fetchurl stdenv;
|
||||||
|
patch = gnupatch;
|
||||||
};
|
};
|
||||||
|
|
||||||
python = (import ../development/interpreters/python) {
|
python = (import ../development/interpreters/python) {
|
||||||
|
|
Loading…
Reference in a new issue