* 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:
Eelco Dolstra 2005-01-22 00:19:27 +00:00
parent f1ae49c01b
commit ba6f269bf5
8 changed files with 174 additions and 7 deletions

View File

@ -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

View File

@ -1,5 +1,7 @@
{stdenv, fetchurl, which, qt3, x11, libXinerama, libXv, libXxf86vm, lame}:
assert qt3.mysqlSupport;
stdenv.mkDerivation {
name = "mythtv-0.16";

View File

@ -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

View File

@ -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;
}

View 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

View File

@ -0,0 +1,8 @@
perl:
attrs:
perl.stdenv.mkDerivation (attrs // {
builder = ./builder.sh;
buildInputs = [(if attrs ? buildInputs then attrs.buildInputs else []) perl];
})

View File

@ -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;
};

View 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
];
}