* Set PERL5LIB automatically in the Perl setup hook.

* Remove explicit setting of PERL5LIB.
* Use the generic Perl builder for the BerkeleyDB and XML::Parser
  modules.
* Prefix all names of Perl modules with `perl-' (in the generic Perl
  builder).

svn path=/nixpkgs/trunk/; revision=2365
This commit is contained in:
Eelco Dolstra
2005-03-10 12:49:37 +00:00
parent 93e16516a7
commit 8a282aa46c
33 changed files with 91 additions and 138 deletions

View File

@@ -9,4 +9,10 @@ configureScript=./Configure
configureFlags="-de -Dcc=gcc -Dprefix=$out -Uinstallusrbinperl $extraflags"
dontAddPrefix=1
postInstall() {
ensureDir "$out/nix-support"
cp $setupHook $out/nix-support/setup-hook
}
postInstall=postInstall
genericBuild

View File

@@ -1,12 +1,12 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "perl-5.8.5";
name = "perl-5.8.6";
builder = ./builder.sh;
src = fetchurl {
url = ftp://ftp.cs.uu.nl/mirror/CPAN/src/5.0/perl-5.8.5.tar.gz;
md5 = "49baa8d7d29b4a9713c06edeb81e6b1b";
url = ftp://ftp.cpan.org/pub/CPAN/src/5.0/perl-5.8.6.tar.bz2;
md5 = "3d030b6ff2a433840edb1a407d18dc0a";
};
# This patch does the following:
@@ -16,4 +16,6 @@ stdenv.mkDerivation {
# 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.)
patches = [./no-sys-dirs.patch];
setupHook = ./setup-hook.sh;
}

View File

@@ -1,6 +1,6 @@
diff -rc perl-orig/Configure perl-5.8.5/Configure
*** perl-orig/Configure 2004-05-12 13:00:41.000000000 +0200
--- perl-5.8.5/Configure 2004-10-04 12:38:29.000000000 +0200
diff -rc perl-orig/Configure perl-5.8.6/Configure
*** perl-orig/Configure 2004-09-10 08:25:52.000000000 +0200
--- perl-5.8.6/Configure 2005-03-10 12:53:28.000000000 +0100
***************
*** 86,100 ****
fi
@@ -11,7 +11,7 @@ diff -rc perl-orig/Configure perl-5.8.5/Configure
! paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
! paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
! paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
! paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
! paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
! paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
! paths="$paths /sbin /usr/sbin /usr/libexec"
! paths="$paths /system/gnu_library/bin"
@@ -97,7 +97,7 @@ diff -rc perl-orig/Configure perl-5.8.5/Configure
case "$xxx" in
--- 2252,2257 ----
***************
*** 7908,7920 ****
*** 7910,7922 ****
echo " "
case "$sysman" in
'')
@@ -111,7 +111,7 @@ diff -rc perl-orig/Configure perl-5.8.5/Configure
;;
esac
if $test -d "$sysman"; then
--- 7892,7899 ----
--- 7894,7901 ----
echo " "
case "$sysman" in
'')
@@ -121,7 +121,7 @@ diff -rc perl-orig/Configure perl-5.8.5/Configure
esac
if $test -d "$sysman"; then
***************
*** 17947,17955 ****
*** 17949,17957 ****
case "$full_ar" in
'') full_ar=$ar ;;
esac
@@ -131,7 +131,7 @@ diff -rc perl-orig/Configure perl-5.8.5/Configure
: see what type gids are declared as in the kernel
echo " "
--- 17926,17935 ----
--- 17928,17937 ----
case "$full_ar" in
'') full_ar=$ar ;;
esac
@@ -142,9 +142,9 @@ diff -rc perl-orig/Configure perl-5.8.5/Configure
: see what type gids are declared as in the kernel
echo " "
diff -rc perl-orig/ext/Errno/Errno_pm.PL perl-5.8.5/ext/Errno/Errno_pm.PL
*** perl-orig/ext/Errno/Errno_pm.PL 2004-03-31 00:01:25.000000000 +0200
--- perl-5.8.5/ext/Errno/Errno_pm.PL 2004-10-04 10:53:59.000000000 +0200
diff -rc perl-orig/ext/Errno/Errno_pm.PL perl-5.8.6/ext/Errno/Errno_pm.PL
*** perl-orig/ext/Errno/Errno_pm.PL 2004-11-01 15:31:59.000000000 +0100
--- perl-5.8.6/ext/Errno/Errno_pm.PL 2005-03-10 12:52:31.000000000 +0100
***************
*** 105,111 ****
# Watch out for cross compiling for EPOC (usually done on linux)
@@ -162,9 +162,9 @@ diff -rc perl-orig/ext/Errno/Errno_pm.PL perl-5.8.5/ext/Errno/Errno_pm.PL
) {
# Some Linuxes have weird errno.hs which generate
# no #file or #line directives
diff -rc perl-orig/lib/Cwd.pm perl-5.8.5/lib/Cwd.pm
*** perl-orig/lib/Cwd.pm 2004-07-15 18:49:22.000000000 +0200
--- perl-5.8.5/lib/Cwd.pm 2004-10-04 10:53:59.000000000 +0200
diff -rc perl-orig/lib/Cwd.pm perl-5.8.6/lib/Cwd.pm
*** perl-orig/lib/Cwd.pm 2004-11-01 16:42:41.000000000 +0100
--- perl-5.8.6/lib/Cwd.pm 2005-03-10 12:52:31.000000000 +0100
***************
*** 292,298 ****

View File

@@ -0,0 +1,7 @@
addPerlLibPath () {
if test -d $1/lib/site_perl; then
export PERL5LIB="${PERL5LIB}${PERL5LIB:+:}$1/lib/site_perl"
fi
}
envHooks=(${envHooks[@]} addPerlLibPath)

View File

@@ -4,6 +4,5 @@
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig perl gtk glib libgnomeui scrollkeeper libjpeg];
PERL5LIB = perlXMLParser ~ "/lib/site_perl"; # !!!
buildInputs = [pkgconfig perl perlXMLParser gtk glib libgnomeui scrollkeeper libjpeg];
}

View File

@@ -8,6 +8,4 @@ stdenv.mkDerivation {
# TODO: maybe this package as dependency on gnome-themes?
configureFlags = "--disable-hicolor-check";
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
}

View File

@@ -5,7 +5,4 @@ assert pkgconfig != null && perl != null;
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig perl perlXMLParser];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
}

View File

@@ -6,9 +6,8 @@
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [
pkgconfig perl gtk glib ORBit2 libgnome libgnomeui
pkgconfig perl perlXMLParser gtk glib ORBit2 libgnome libgnomeui
gnomedesktop libglade libwnck libjpeg libpng scrollkeeper
libXmu
];
PERL5LIB = perlXMLParser ~ "/lib/site_perl"; # !!!
}

View File

@@ -11,6 +11,5 @@ stdenv.mkDerivation {
pkgconfig perl glib libxml2 gconf libbonobo
gnomemimedata popt bzip2 perlXMLParser
];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
patches = [./no-kerberos.patch];
}

View File

@@ -3,26 +3,14 @@
# TODO build complains about missing libsoup and soup. Optional dependency?
assert
null != pkgconfig
&& null != perl
&& null != perlXMLParser
&& null != pkgconfig
&& null != atk
&& null != gail
&& null != gtk
;
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [
perl perlXMLParser pkgconfig libjpeg
atk gail gtk
libglade libgnomeprint libgnomeprintui libgnomeui
gnomeicontheme
];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
perl perlXMLParser pkgconfig libjpeg
atk gail gtk
libglade libgnomeprint libgnomeprintui libgnomeui
gnomeicontheme
];
}

View File

@@ -10,5 +10,4 @@ stdenv.mkDerivation {
libbonobo gconf libgnomeprintui libgnomecanvas
];
propagatedBuildInputs = [gtk libxml2 libgnomeprint];
PERL5LIB = perlXMLParser ~ "/lib/site_perl"; # !!!
}

View File

@@ -3,5 +3,4 @@
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig perl perlXMLParser];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
}

View File

@@ -6,7 +6,6 @@ assert pkgconfig != null && perl != null && ORBit2 != null
# todo 2.8.1 doesn;t work
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig perl libxml2 yacc flex];
buildInputs = [pkgconfig perl perlXMLParser libxml2 yacc flex];
propagatedBuildInputs = [ORBit2 popt];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
}

View File

@@ -4,13 +4,11 @@
assert pkgconfig != null && perl != null && libxml2 != null
&& libglade != null && libgnome != null && libgnomecanvas != null;
# todo 2.8.1 doesn;t work
# TODO 2.8.1 doesn't work
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig perl libglade gettext];
buildInputs = [pkgconfig perl perlXMLParser libglade gettext];
propagatedBuildInputs = [libxml2 libgnome libgnomecanvas];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
LDFLAGS="-lglib-2.0";
LDFLAGS="-lglib-2.0"; # !!! why?
}

View File

@@ -14,6 +14,4 @@ stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig perl perlXMLParser popt zlib];
propagatedBuildInputs = [glib gnomevfs libbonobo gconf];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
}

View File

@@ -4,11 +4,9 @@ stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [
perl perlXMLParser pkgconfig popt libxml2
glib pango
];
perl perlXMLParser pkgconfig popt libxml2
glib pango
];
propagatedBuildInputs = [libxml2 libart];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
}

View File

@@ -4,9 +4,7 @@ stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [
perl perlXMLParser pkgconfig
gtk libgnomeprint libgnomecanvas gnomeicontheme
];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
perl perlXMLParser pkgconfig
gtk libgnomeprint libgnomecanvas gnomeicontheme
];
}

View File

@@ -10,9 +10,7 @@ stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [
perl perlXMLParser pkgconfig gtk libxml2 gail
];
PERL5LIB = perlXMLParser ~ "/lib/site_perl";
perl perlXMLParser pkgconfig gtk libxml2 gail
];
}

View File

@@ -3,5 +3,4 @@
stdenv.mkDerivation {
inherit (input) name src;
buildInputs = [pkgconfig gtk];
# PERL5LIB = perlXMLParser ~ "/lib/site_perl"; # !!!
}

View File

@@ -5,8 +5,7 @@
stdenv.mkDerivation {
inherit (input) name src;
patches = [./xmlcatalog.patch];
buildInputs = [pkgconfig perl libxml2 libxslt];
PERL5LIB = perlXMLParser ~ "/lib/site_perl"; # !!!
buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
inherit docbook_xml_dtd_42;
builder = ./builder.sh;
}

View File

@@ -1,12 +0,0 @@
buildinputs="$perl $db4"
. $stdenv/setup || exit 1
tar xvfz $src || exit 1
cd BerkeleyDB-* || exit 1
echo "LIB = $db4/lib" > config.in
echo "INCLUDE = $db4/include" >> config.in
perl Makefile.PL || exit 1
make || exit 1
make install SITEPREFIX=$out PERLPREFIX=$out || exit 1

View File

@@ -1,14 +1,12 @@
{stdenv, fetchurl, perl, db4}:
{fetchurl, perl, db4}:
assert perl != null && db4 != null;
stdenv.mkDerivation {
name = "perl-BerkeleyDB-0.25";
builder = ./builder.sh;
import ../generic perl {
name = "BerkeleyDB-0.26";
src = fetchurl {
url = ftp://ftp.cs.uu.nl/mirror/CPAN/authors/id/P/PM/PMQS/BerkeleyDB-0.25.tar.gz;
md5 = "fcef06232d1ccd6c2a9cd114e388ea3d";
url = ftp://ftp.cs.uu.nl/mirror/CPAN/authors/id/P/PM/PMQS/BerkeleyDB-0.26.tar.gz;
md5 = "6e9882f4e4bac48b24079d082af30e6c";
};
perl = perl;
db4 = db4;
perlPreHook = ./hook.sh;
buildInputs = [db4];
# inherit db4;
}

View File

@@ -0,0 +1,7 @@
oldPreConfigure=$preConfigure
preConfigure=myPreConfigure
myPreConfigure() {
echo "LIB = $db4/lib" > config.in
echo "INCLUDE = $db4/include" >> config.in
$oldPreConfigure
}

View File

@@ -1,10 +0,0 @@
buildinputs="$perl $expat"
. $stdenv/setup || exit 1
tar xvfz $src || exit 1
cd XML-Parser-* || exit 1
perl Makefile.PL EXPATLIBPATH=$expat/lib EXPATINCPATH=$expat/include \
SITEPREFIX=$out PERLPREFIX=$out || exit 1
make || exit 1
make install || exit 1

View File

@@ -1,14 +1,11 @@
{stdenv, fetchurl, perl, expat}:
{fetchurl, perl, expat}:
assert perl != null && expat != null;
stdenv.mkDerivation {
name = "perl-XML-Parser-2.34";
builder = ./builder.sh;
import ../generic perl {
name = "XML-Parser-2.34";
src = fetchurl {
url = http://catamaran.labs.cs.uu.nl/dist/tarballs/XML-Parser-2.34.tar.gz;
md5 = "84d9e0001fe01c14867256c3fe115899";
};
perl = perl;
expat = expat;
perlPreHook = ./hook.sh;
inherit expat;
}

View File

@@ -0,0 +1 @@
makeMakerFlags="EXPATLIBPATH=$expat/lib EXPATINCPATH=$expat/include"

View File

@@ -1,19 +1,7 @@
addInputsHook=addInputsHook
addInputsHook() {
# Should be in a Perl setup hook.
envHooks=(${envHooks[@]} addPerlLibs)
}
addPerlLibs() {
PERL5LIB="$PERL5LIB${PERL5LIB:+:}$1/lib/site_perl"
}
. $stdenv/setup
PERL5LIB="$PERL5LIB${PERL5LIB:+:}$out/lib/site_perl"
export PERL5LIB
oldIFS=$IFS
IFS=:
perlFlags=
@@ -21,7 +9,7 @@ for i in $PERL5LIB; do
perlFlags="$perlFlags -I$i"
done
IFS=$oldIFS
echo "$perlFlags"
echo "Perl flags: $perlFlags"
preConfigure=preConfigure
preConfigure() {
@@ -42,4 +30,12 @@ preConfigure() {
perl Makefile.PL PREFIX=$out $makeMakerFlags
}
if test -n "$perlPreHook"; then
. $perlPreHook
fi
genericBuild
if test -n "$perlPostHook"; then
. $perlPostHook
fi

View File

@@ -3,6 +3,7 @@ perl:
attrs:
perl.stdenv.mkDerivation (attrs // {
name = "perl-" + attrs.name;
builder = ./builder.sh;
buildInputs = [(if attrs ? buildInputs then attrs.buildInputs else []) perl];
})