mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-14 04:17:40 +00:00
* 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:
parent
f1ae49c01b
commit
ba6f269bf5
@ -10,6 +10,13 @@ myBuilder() {
|
||||
}
|
||||
|
||||
|
||||
genericBuild
|
||||
postInstall=postInstall
|
||||
postInstall() {
|
||||
sqlDir="$out/share/mythtv/sql"
|
||||
ensureDir $sqlDir
|
||||
cp -p ./database/mc.sql $sqlDir/
|
||||
cp -p ./setup/setup $out/bin/mythsetup
|
||||
}
|
||||
|
||||
exit 1
|
||||
|
||||
genericBuild
|
||||
|
@ -1,5 +1,7 @@
|
||||
{stdenv, fetchurl, which, qt3, x11, libXinerama, libXv, libXxf86vm, lame}:
|
||||
|
||||
assert qt3.mysqlSupport;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "mythtv-0.16";
|
||||
|
||||
|
@ -7,15 +7,14 @@ preConfigure() {
|
||||
# Patch some of the configure files a bit to get of global paths.
|
||||
# (Buildings using stuff in those paths will fail anyway, but it
|
||||
# will cause ./configure misdetections).
|
||||
for i in config.tests/*/*.test mkspecs/*/qmake.conf; do
|
||||
for i in config.tests/unix/checkavail config.tests/*/*.test mkspecs/*/qmake.conf; do
|
||||
echo "patching $i..."
|
||||
sed < $i > $i.tmp \
|
||||
-e 's^ /lib^ /FOO^g' \
|
||||
-e 's^/usr^/FOO^g'
|
||||
if test -x $i; then chmod +x $i.tmp; fi
|
||||
mv $i.tmp $i
|
||||
done
|
||||
|
||||
chmod +x config.tests/*/*.test
|
||||
}
|
||||
|
||||
|
||||
@ -36,6 +35,12 @@ if test -n "$xftSupport"; then
|
||||
$configureFlags"
|
||||
fi
|
||||
|
||||
if test -n "$mysqlSupport"; then
|
||||
configureFlags="-qt-sql-mysql -L$mysql/lib/mysql -I$mysql/include/mysql $configureFlags";
|
||||
else
|
||||
configureFlags="-no-thread $configureFlags";
|
||||
fi
|
||||
|
||||
if test -n "$xrenderSupport"; then
|
||||
configureFlags="-xrender -L$libXrender/lib -I$libXrender/include $configureFlags"
|
||||
fi
|
||||
|
@ -1,12 +1,14 @@
|
||||
{ xftSupport ? true
|
||||
, xrenderSupport ? true
|
||||
, threadSupport ? true
|
||||
, stdenv, fetchurl, x11, libXft ? null, libXrender ? null
|
||||
, mysqlSupport ? true
|
||||
, stdenv, fetchurl, x11, libXft ? null, libXrender ? null, mysql ? null
|
||||
, zlib, libjpeg, libpng, which
|
||||
}:
|
||||
|
||||
assert xftSupport -> libXft != null;
|
||||
assert xrenderSupport -> xftSupport && libXft != null;
|
||||
assert mysqlSupport -> mysql != null;
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "qt-3.3.3";
|
||||
@ -20,5 +22,6 @@ stdenv.mkDerivation {
|
||||
buildInputs = [x11 libXft libXrender zlib libjpeg libpng which];
|
||||
|
||||
inherit threadSupport xftSupport libXft xrenderSupport libXrender;
|
||||
inherit mysqlSupport mysql;
|
||||
inherit (libXft) freetype fontconfig;
|
||||
}
|
||||
|
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];
|
||||
})
|
@ -156,6 +156,12 @@ rec {
|
||||
inherit fetchurl stdenv x11;
|
||||
};
|
||||
|
||||
xmltv = import ../tools/misc/xmltv {
|
||||
inherit fetchurl perl perlTermReadKey perlXMLTwig perlXMLWriter
|
||||
perlDateManip perlHTMLTree perlHTMLParser perlHTMLTagset
|
||||
perlURI perlLWP;
|
||||
};
|
||||
|
||||
openssh = (import ../tools/networking/openssh) {
|
||||
inherit fetchurl stdenv zlib openssl;
|
||||
};
|
||||
@ -605,7 +611,7 @@ rec {
|
||||
};
|
||||
|
||||
qt3 = import ../development/libraries/qt-3 {
|
||||
inherit fetchurl stdenv x11 zlib libjpeg libpng which;
|
||||
inherit fetchurl stdenv x11 zlib libjpeg libpng which mysql;
|
||||
inherit (xlibs) libXft libXrender;
|
||||
};
|
||||
|
||||
@ -698,6 +704,80 @@ rec {
|
||||
inherit fetchurl stdenv perl expat;
|
||||
};
|
||||
|
||||
perlXMLTwig = import ../development/perl-modules/generic perl {
|
||||
name = "XML-Twig-3.15";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/M/MI/MIROD/XML-Twig-3.15.tar.gz;
|
||||
md5 = "b26886b8bd19761fff37b23e4964b499";
|
||||
};
|
||||
propagatedBuildInputs = [perlXMLParser];
|
||||
};
|
||||
|
||||
perlXMLWriter = import ../development/perl-modules/generic perl {
|
||||
name = "XML-Writer-0.520";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/J/JO/JOSEPHW/XML-Writer-0.520.tar.gz;
|
||||
md5 = "0a194acc70c906c0be32f4b2b7a9f689";
|
||||
};
|
||||
};
|
||||
|
||||
perlTermReadKey = import ../development/perl-modules/generic perl {
|
||||
name = "TermReadKey-2.30";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/J/JS/JSTOWE/TermReadKey-2.30.tar.gz;
|
||||
md5 = "f0ef2cea8acfbcc58d865c05b0c7e1ff";
|
||||
};
|
||||
};
|
||||
|
||||
perlDateManip = import ../development/perl-modules/generic perl {
|
||||
name = "DateManip-5.42a";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/S/SB/SBECK/DateManip-5.42a.tar.gz;
|
||||
md5 = "648386bbf46d021ae283811f75b07bdf";
|
||||
};
|
||||
};
|
||||
|
||||
perlHTMLTree = import ../development/perl-modules/generic perl {
|
||||
name = "HTML-Tree-3.18";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/S/SB/SBURKE/HTML-Tree-3.18.tar.gz;
|
||||
md5 = "6a9e4e565648c9772e7d8ec6d4392497";
|
||||
};
|
||||
};
|
||||
|
||||
perlHTMLParser = import ../development/perl-modules/generic perl {
|
||||
name = "HTML-Parser-3.45";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.45.tar.gz;
|
||||
md5 = "c2ac1379ac5848dd32e24347cd679391";
|
||||
};
|
||||
};
|
||||
|
||||
perlHTMLTagset = import ../development/perl-modules/generic perl {
|
||||
name = "HTML-Tagset-3.04";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/S/SB/SBURKE/HTML-Tagset-3.04.tar.gz;
|
||||
md5 = "b82e0f08c1ececefe98b891f30dd56a6";
|
||||
};
|
||||
};
|
||||
|
||||
perlURI = import ../development/perl-modules/generic perl {
|
||||
name = "URI-1.35";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/URI-1.35.tar.gz;
|
||||
md5 = "1a933b1114c41a25587ee59ba8376f7c";
|
||||
};
|
||||
};
|
||||
|
||||
perlLWP = import ../development/perl-modules/generic perl {
|
||||
name = "libwww-perl-5.803";
|
||||
src = fetchurl {
|
||||
url = http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/libwww-perl-5.803.tar.gz;
|
||||
md5 = "3345d5f15a4f42350847254141725c8f";
|
||||
};
|
||||
propagatedBuildInputs = [perlURI perlHTMLParser];
|
||||
};
|
||||
|
||||
wxPython = (import ../development/python-modules/wxPython-2.5) {
|
||||
inherit fetchurl stdenv pkgconfig wxGTK python;
|
||||
};
|
||||
|
17
pkgs/tools/misc/xmltv/default.nix
Normal file
17
pkgs/tools/misc/xmltv/default.nix
Normal file
@ -0,0 +1,17 @@
|
||||
{ fetchurl, perl, perlTermReadKey, perlXMLTwig, perlXMLWriter
|
||||
, perlDateManip, perlHTMLTree, perlHTMLParser, perlHTMLTagset
|
||||
, perlURI, perlLWP
|
||||
}:
|
||||
|
||||
import ../../../development/perl-modules/generic perl {
|
||||
name = "xmltv-0.5.37";
|
||||
src = fetchurl {
|
||||
url = http://heanet.dl.sourceforge.net/sourceforge/xmltv/xmltv-0.5.37.tar.bz2;
|
||||
md5 = "40b7675cc1b7632065ebbd1e0ecf860f";
|
||||
};
|
||||
makeMakerFlags = "-components tv_grab_nl";
|
||||
buildInputs = [
|
||||
perlTermReadKey perlXMLTwig perlXMLWriter perlDateManip
|
||||
perlHTMLTree perlHTMLParser perlHTMLTagset perlURI perlLWP
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue
Block a user