* Qt: add optional support for MySQL.
* MythTV: the setup program works :-). * Added XmlTV. This requires a huge number of Perl modules, so... * Added a generic builder for Perl modules. I'm lazy so the modules are defined directly in all-packages-generic.nix. The generic builder also patches Perl scripts to include a hard-coded Perl module search path (i.e., similar to an RPATH in ELF executables). svn path=/nixpkgs/trunk/; revision=2083
This commit is contained in:
45
pkgs/development/perl-modules/generic/builder.sh
Normal file
45
pkgs/development/perl-modules/generic/builder.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
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=
|
||||
for i in $PERL5LIB; do
|
||||
perlFlags="$perlFlags -I$i"
|
||||
done
|
||||
IFS=$oldIFS
|
||||
echo "$perlFlags"
|
||||
|
||||
preConfigure=preConfigure
|
||||
preConfigure() {
|
||||
|
||||
find . | while read fn; do
|
||||
if test -f "$fn"; then
|
||||
first=$(dd if="$fn" count=2 bs=1 2> /dev/null)
|
||||
if test "$first" = "#!"; then
|
||||
echo "patching $fn..."
|
||||
sed < "$fn" > "$fn".tmp \
|
||||
-e "s|^#\!\(.*/perl.*\)$|#\! \1$perlFlags|"
|
||||
if test -x "$fn"; then chmod +x "$fn".tmp; fi
|
||||
mv "$fn".tmp "$fn"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
perl Makefile.PL PREFIX=$out $makeMakerFlags
|
||||
}
|
||||
|
||||
genericBuild
|
||||
8
pkgs/development/perl-modules/generic/default.nix
Normal file
8
pkgs/development/perl-modules/generic/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
perl:
|
||||
|
||||
attrs:
|
||||
|
||||
perl.stdenv.mkDerivation (attrs // {
|
||||
builder = ./builder.sh;
|
||||
buildInputs = [(if attrs ? buildInputs then attrs.buildInputs else []) perl];
|
||||
})
|
||||
Reference in New Issue
Block a user