* Sync with the trunk.

svn path=/nixpkgs/branches/stdenv-updates/; revision=14557
This commit is contained in:
Eelco Dolstra
2009-03-16 12:45:27 +00:00
339 changed files with 4943 additions and 2370 deletions

View File

@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
};
fullMaude = fetchurl {
url = "http://maude.cs.uiuc.edu/download/current/FM2.4/full-maude24.maude";
sha256 = "0fwpnp5a8vw7q3iczwlra9074is95a1087ikx0a0idy8p4drnl61";
sha256 = "9e4ebdc717dc968d0b6c1179f360e60b3a39ea8cecc1a7fa49f2105bbddc48c4";
};
docs = fetchurl {
url = "http://mirror.switch.ch/mirror/gentoo/distfiles/maude-2.3.0-extras.tar.bz2";

View File

@@ -4,177 +4,174 @@ args: with args;
let inherit (args.composableDerivation) composableDerivation edf wwf; in
composableDerivation {
initial = fixed : {
composableDerivation {} ( fixed : {
name = "php_configurable-${version}";
name = "php_configurable-${version}";
buildInputs = ["flex" "bison" "pkgconfig"];
buildInputs = ["flex" "bison" "pkgconfig"];
flags = {
flags = {
# much left to do here...
# SAPI modules:
apxs2 = {
configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
buildInputs = [apacheHttpd];
};
# Extensions
curl = {
configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"];
buildInputs = [curl];
};
zlib = {
configureFlags = ["--with-zlib=${args.zlib}"];
buildInputs = [zlib];
};
libxml2 = {
configureFlags = ["--with-libxml-dir=${libxml2}"];
buildInputs = [ libxml2 ];
};
postgresql = {
configureFlags = ["--with-pgsql=${postgresql}"];
buildInputs = [ postgresql ];
};
mysql = {
configureFlags = ["--with-mysql=${mysql}"];
buildInputs = [ mysql ];
};
mysqli = {
configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"];
buildInputs = [ mysql];
};
mysqli_embedded = {
configureFlags = ["--enable-embedded-mysqli"];
depends = "mysqli";
assertion = fixed.mysqliSupport;
};
pdo_mysql = {
configureFlags = ["--with-pdo-mysql=${mysql}"];
buildInputs = [ mysql ];
};
bcmath = {
configureFlags = ["--enable-bcmath"];
};
gd = {
configureFlags = ["--with-gd=${args.gd}"];
buildInputs = [gd];
};
sockets = {
configureFlags = ["--enable-sockets"];
};
openssl = {
configureFlags = ["--with-openssl=${args.openssl}"];
buildInputs = ["openssl"];
};
mbstring = {
configureFlags = ["--enable-mbstring"];
};
/*
Building xdebug withing php to be able to add the parameters to the ini file.. Ther should be a better way
meta = {
description = "debugging support for PHP";
homepage = http://xdebug.org;
license = "based on the PHP license - as is";
};
*/
xdebug = {
buildInputs = [ automake autoconf ];
xdebug_src = args.fetchurl {
name = "xdebug-2.0.2.tar.gz";
url = "http://xdebug.org/link.php?url=xdebug202";
sha256 = "1h0bxvf8krr203fmk1k7izrrr81gz537xmd3pqh4vslwdlbhrvic";
};
};
# SAPI modules:
apxs2 = {
configureFlags = ["--with-apxs2=${apacheHttpd}/bin/apxs"];
buildInputs = [apacheHttpd];
};
cfg = {
mysqlSupport = true;
mysqliSupport = true;
pdo_mysqlSupport = true;
libxml2Support = true;
apxs2Support = true;
bcmathSupport = true;
socketsSupport = true;
curlSupport = true;
gettextSupport = true;
postgresqlSupport = true;
zlibSupport = true;
opnesslSupport = true;
xdebugSupport = true;
mbstringSupport = true;
gdSupport = true;
# Extensions
curl = {
configureFlags = ["--with-curl=${args.curl}" "--with-curlwrappers"];
buildInputs = [curl];
};
zlib = {
configureFlags = ["--with-zlib=${args.zlib}"];
buildInputs = [zlib];
};
libxml2 = {
configureFlags = ["--with-libxml-dir=${libxml2}"];
buildInputs = [ libxml2 ];
};
postgresql = {
configureFlags = ["--with-pgsql=${postgresql}"];
buildInputs = [ postgresql ];
};
mysql = {
configureFlags = ["--with-mysql=${mysql}"];
buildInputs = [ mysql ];
};
mysqli = {
configureFlags = ["--with-mysqli=${mysql}/bin/mysql_config"];
buildInputs = [ mysql];
};
mysqli_embedded = {
configureFlags = ["--enable-embedded-mysqli"];
depends = "mysqli";
assertion = fixed.mysqliSupport;
};
pdo_mysql = {
configureFlags = ["--with-pdo-mysql=${mysql}"];
buildInputs = [ mysql ];
};
bcmath = {
configureFlags = ["--enable-bcmath"];
};
gd = {
configureFlags = ["--with-gd=${args.gd}"];
buildInputs = [gd];
};
sockets = {
configureFlags = ["--enable-sockets"];
};
openssl = {
configureFlags = ["--with-openssl=${args.openssl}"];
buildInputs = ["openssl"];
};
mbstring = {
configureFlags = ["--enable-mbstring"];
};
/*
Building xdebug withing php to be able to add the parameters to the ini file.. Ther should be a better way
meta = {
description = "debugging support for PHP";
homepage = http://xdebug.org;
license = "based on the PHP license - as is";
};
*/
xdebug = {
buildInputs = [ automake autoconf ];
xdebug_src = args.fetchurl {
name = "xdebug-2.0.2.tar.gz";
url = "http://xdebug.org/link.php?url=xdebug202";
sha256 = "1h0bxvf8krr203fmk1k7izrrr81gz537xmd3pqh4vslwdlbhrvic";
};
};
};
configurePhase = ''
iniFile=$out/etc/$name.ini
[[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags
echo configurePhase end
'';
installPhase = ''
unset installPhase; installPhase;
cp php.ini-recommended $iniFile
# Now Let's build xdebug if flag has been given
# TODO I think there are better paths than the given below
if [ -n $flag_set_xdebug ]; then
PATH=$PATH:$out/bin
tar xfz $xdebug_src;
cd xdebug*
phpize
./configure --prefix=$out
make
ensureDir $out/lib; cp modules/xdebug.so $out/lib
cat >> $out/etc/php.ini << EOF
zend_extension="$out/lib/xdebug.so"
zend_extension_ts="$out/lib/xdebug.so"
zend_extension_debug="$out/lib/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.remote_mode=req
max_execution_time = 300
date.timezone = UTC
EOF
fi
'';
src = args.fetchurl {
url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
md5 = "7380ffecebd95c6edb317ef861229ebd";
name = "php-${version}.tar.bz2";
};
meta = {
description = "The PHP language runtime engine";
homepage = http://www.php.net/;
license = "PHP-3";
};
patches = [./fix.patch];
cfg = {
mysqlSupport = true;
mysqliSupport = true;
pdo_mysqlSupport = true;
libxml2Support = true;
apxs2Support = true;
bcmathSupport = true;
socketsSupport = true;
curlSupport = true;
gettextSupport = true;
postgresqlSupport = true;
zlibSupport = true;
opnesslSupport = true;
xdebugSupport = true;
mbstringSupport = true;
gdSupport = true;
};
}
configurePhase = ''
iniFile=$out/etc/$name.ini
[[ -z "$libxml2" ]] || export PATH=$PATH:$libxml2/bin
./configure --with-config-file-scan-dir=/etc --with-config-file-path=$out/etc --prefix=$out $configureFlags
echo configurePhase end
'';
installPhase = ''
unset installPhase; installPhase;
cp php.ini-recommended $iniFile
# Now Let's build xdebug if flag has been given
# TODO I think there are better paths than the given below
if [ -n $flag_set_xdebug ]; then
PATH=$PATH:$out/bin
tar xfz $xdebug_src;
cd xdebug*
phpize
./configure --prefix=$out
make
ensureDir $out/lib; cp modules/xdebug.so $out/lib
cat >> $out/etc/php.ini << EOF
zend_extension="$out/lib/xdebug.so"
zend_extension_ts="$out/lib/xdebug.so"
zend_extension_debug="$out/lib/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.profiler_enable=0
xdebug.profiler_output_dir="/tmp/xdebug"
xdebug.remote_mode=req
max_execution_time = 300
date.timezone = UTC
EOF
fi
'';
src = args.fetchurl {
url = "http://nl.php.net/get/php-${version}.tar.bz2/from/this/mirror";
md5 = "7380ffecebd95c6edb317ef861229ebd";
name = "php-${version}.tar.bz2";
};
meta = {
description = "The PHP language runtime engine";
homepage = http://www.php.net/;
license = "PHP-3";
};
patches = [./fix.patch];
})

View File

@@ -33,7 +33,7 @@ in
# python wiht all features enabled.
# if you really need a stripped version we should add __overides
# so that you can replace it the way it's done in all-packages.nix
pythonFull = t.pythonMinimal.passthru.fun {
pythonFull = t.pythonMinimal.merge {
name = "python-${t.version}-full";
cfg = {
zlibSupport = true;
@@ -79,48 +79,46 @@ in
# lib to verify it works
# You can define { python25 { debugCmd = "DISPLAY=:0.0 pathtoxterm"; }
# in your config for easier debugging..
pythonLibStub = composableDerivation {
initial = {
propagatedBuildInputs = [ t.pythonFull ]; # see [1]
postPhases = ["postAll"]; # using new name so that you dno't override this phase by accident
prePhases = ["defineValidatingEval"];
# ensure phases are run or a non zero exit status is caused (if there are any syntax errors such as eval "while")
defineValidatingEval = ''
eval(){
e="$(type eval | { read; while read line; do echo $line; done })"
unset eval;
local evalSucc="failure"
eval "evalSucc=ok;""$1"
eval "$e"
[ $evalSucc = "failure" ] && { echo "eval failed, snippet:"; echo "$1"; return 1; }
}
'';
postAll = ''
ensureDir $out/nix-support
echo "export NIX_PYTHON_SITES=\"$out:\$NIX_PYTHON_SITES\"" >> $out/nix-support/setup-hook
# run check
if [ -n "$pyCheck" ]; then
( . $out/nix-support/setup-hook
mkdir $TMP/new-test; cd $TMP/new-test
echo PYTHONPATH=$PYTHONPATH
echo NIX_PYTHON_SITES=$NIX_PYTHON_SITES
script="$(echo -e "import sys\nprint sys.path\npyCheck\nprint \"check ok\"")"
script="''${script/pyCheck/$pyCheck}"
echo "check script is"; echo "$script"
echo "$script" | python || { ${ getConfig [t.versionAttr "debugCmd"] ":"} ; echo "pycheck failed"; exit 1; }
)
fi'';
passthru = {
libPython = t.version; # used to find all python libraries fitting this version (-> see name all below)
};
mergeAttrBy = {
pyCheck = x : y : "${x}\n${y}";
};
};
pythonLibStub = composableDerivation {} {
propagatedBuildInputs = [ t.pythonFull ]; # see [1]
postPhases = ["postAll"]; # using new name so that you dno't override this phase by accident
prePhases = ["defineValidatingEval"];
# ensure phases are run or a non zero exit status is caused (if there are any syntax errors such as eval "while")
defineValidatingEval = ''
eval(){
e="$(type eval | { read; while read line; do echo $line; done })"
unset eval;
local evalSucc="failure"
eval "evalSucc=ok;""$1"
eval "$e"
[ $evalSucc = "failure" ] && { echo "eval failed, snippet:"; echo "$1"; return 1; }
}
'';
postAll = ''
ensureDir $out/nix-support
echo "export NIX_PYTHON_SITES=\"$out:\$NIX_PYTHON_SITES\"" >> $out/nix-support/setup-hook
# run check
if [ -n "$pyCheck" ]; then
( . $out/nix-support/setup-hook
mkdir $TMP/new-test; cd $TMP/new-test
echo PYTHONPATH=$PYTHONPATH
echo NIX_PYTHON_SITES=$NIX_PYTHON_SITES
script="$(echo -e "import sys\nprint sys.path\npyCheck\nprint \"check ok\"")"
script="''${script/pyCheck/$pyCheck}"
echo "check script is"; echo "$script"
echo "$script" | python || { ${ getConfig [t.versionAttr "debugCmd"] ":"} ; echo "pycheck failed"; exit 1; }
)
fi'';
passthru = {
libPython = t.version; # used to find all python libraries fitting this version (-> see name all below)
};
mergeAttrBy = {
pyCheck = x : y : "${x}\n${y}";
};
};
# same as pythonLibStub, but runs default python setup.py actions
pythonLibSetup = t.pythonLibStub.passthru.fun {
pythonLibSetup = t.pythonLibStub.merge {
buildPhase = ''python setup.py $setupFlags build'';
installPhase = ''python setup.py $setupFlags install --prefix=$out'';
mergeAttrBy = {
@@ -130,8 +128,8 @@ in
### python libraries:
wxPythonBaseFun = (t.pythonLibSetup.passthru.funMerge (a :
let inherit (a.fixed) wxGTK version; in
wxPythonBaseFun = (t.pythonLibSetup.merge (a :
let inherit (a.fixed.passthru) wxGTK; inherit (a.fixed) version; in
{
buildInputs = [p.pkgconfig wxGTK (wxGTK.gtk)];
setupFlags=["WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=0 BUILD_OGL=0 UNICODE=1"];
@@ -144,7 +142,7 @@ in
license="wxWinLL-3";
};
}
)).passthru.fun;
)).merge;
wxPython26 = t.wxPythonBaseFun {
version = "2.6.3.3";
@@ -166,7 +164,7 @@ in
#};
# couldn't download source
#foursuite = pythonLibSetup.passthru.fun {
#foursuite = pythonLibSetup.merge {
# version = "1.0.2";
# name = "4suite-${version}";
# src = fetchurl {
@@ -175,7 +173,7 @@ in
# };
#};
#bsddb3 = t.pythonLibSetup.passthru.fun {
#bsddb3 = t.pythonLibSetup.merge {
# version = "1.0.2";
# name = "bsddb3-4.5.0";
# setupFlags = ["--berkeley-db=${p.db4}"];
@@ -197,8 +195,8 @@ in
# patching pygtk to another */gtk2.0 directory to sys.path for each NIX_PYTHON_SITES.
# If you install dozens of python packages this might be bloat.
# So I think the overhead of installing these packages into the same store path should be prefered.
pygtkBaseFun = (t.pythonLibStub.passthru.funMerge (a :
let inherit (a.fixed) glib gtk; in lib.mergeAttrsByFuncDefaults [
pygtkBaseFun = (t.pythonLibStub.merge (a :
let inherit (a.fixed.passthru) glib gtk; in lib.mergeAttrsByFuncDefaults [
{
unpackPhase = "true";
configurePhase = "true";
@@ -312,9 +310,9 @@ in
# '';
#};
pygtk212 = t.pygtkBaseFun.passthru.funMerge (a : {
pygtk212 = t.pygtkBaseFun.merge (a : {
version = "2.12.1";
name = "pygobject-${a.fixed.pygobjectVersion}-and-pygtk-${a.fixed.version}";
name = "pygobject-${a.fixed.passthru.pygobjectVersion}-and-pygtk-${a.fixed.version}";
pygtkSrc = fetchurl {
url = http://ftp.acc.umu.se/pub/GNOME/sources/pygtk/2.12/pygtk-2.12.1.tar.bz2;
sha256 = "0gg13xgr7y9sppw8bdys042928nc66czn74g60333c4my95ys021";
@@ -326,7 +324,7 @@ in
'';
});
pycairo = t.pythonLibStub.passthru.fun {
pycairo = t.pythonLibStub.merge {
name = "pycairo-1.8.0";
buildInputs = [ p.pkgconfig p.cairo p.x11 ];
src = fetchurl {
@@ -336,7 +334,7 @@ in
pyCheck = "import cairo";
};
gstPython = t.pythonLibStub.passthru.fun {
gstPython = t.pythonLibStub.merge {
name = "gst-python-0.10.13";
src = fetchurl {
url = http://gstreamer.freedesktop.org/src/gst-python/gst-python-0.10.13.tar.gz;
@@ -377,7 +375,7 @@ in
};
};
pygoocanvas = t.pythonLibStub.passthru.fun {
pygoocanvas = t.pythonLibStub.merge {
src = p.fetchurl {
url = http://download.berlios.de/pygoocanvas/pygoocanvas-0.10.0.tar.gz;
sha256 = "0pxznzdscbhvn8102vrqy3r1g6ss4sgs8wwy6y4c5g26rrp7l55d";
@@ -393,7 +391,7 @@ in
};
};
# zope = t.pythonLibStub.passthru.fun rec {
# zope = t.pythonLibStub.merge rec {
#[> version = "3.3.1";
# version = "svn";
# name = "zope-${version}";
@@ -409,7 +407,7 @@ in
# pyCheck = "";
# };
setuptools = t.pythonLibSetup.passthru.fun {
setuptools = t.pythonLibSetup.merge {
name = "setuptools-0.6c9";
postUnpack = ''
ensureDir $out/lib/python2.5/site-packages
@@ -429,7 +427,7 @@ in
};
};
zopeInterface = t.pythonLibSetup.passthru.fun rec {
zopeInterface = t.pythonLibSetup.merge rec {
version = "3.3.0";
name = "zope.interface-${version}";
buildInputs = [ t.setuptools ];
@@ -440,7 +438,7 @@ in
pyCheck = "from zope.interface import Interface, Attribute";
};
dbusPython = t.pythonLibStub.passthru.fun rec {
dbusPython = t.pythonLibStub.merge rec {
version = "0.83.0";
name = "dbus-python-0.83.0";
buildInputs = [ p.pkgconfig ];
@@ -457,7 +455,7 @@ in
};
};
pythonXlib = t.pythonLibSetup.passthru.fun {
pythonXlib = t.pythonLibSetup.merge {
name = "python-xlib-0.14";
src = fetchurl {
url = http://puzzle.dl.sourceforge.net/sourceforge/python-xlib/python-xlib-0.14.tar.gz;
@@ -470,26 +468,52 @@ in
};
};
### python applications
mechanize = t.pythonLibSetup.merge {
name = "mechanize-0.1.11";
buildInputs = [ t.setuptools ];
src = fetchurl {
url = http://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.1.11.tar.gz;
sha256 = "1h62mwy4iz09jqz17nrb9j8y0djd500zdfqwrz9xmdwqzqwixkj2";
};
meta = {
description = "Stateful programmatic web browsing in Python, after Andy Lester's Perl module WWW::Mechanize";
homepage = http://wwwsearch.sourceforge.net/mechanize/;
license = ["BSD" "ZPL 2.1"];
};
pyCheck = "from mechanize import Browser";
};
pythonExStub = composableDerivation {
initial = {
buildInputs = [p.makeWrapper];
postPhases = ["wrapExecutables"];
propagatedBuildInputs = [ t.pythonFull ]; # see [1]
# adding $out to NIX_PYTHON_SITES because some of those executables seem to come with extra libs
wrapExecutables = ''
for prog in $out/bin/*; do
wrapProgram "$prog" \
--set NIX_PYTHON_SITES "$NIX_PYTHON_SITES:$out" \
--set PYTHONPATH "\$PYTHONPATH:$out"
done
'';
pexpect = t.pythonLibSetup.merge {
name = "pexpect-2.3";
src = fetchurl {
url = mirror://sourceforge/pexpect/pexpect-2.3.tar.gz;
sha256 = "0x8bfjjqygriry1iyygm5048ykl5qpbpzqfp6i8dhkslm3ryf5fk";
};
meta = {
description = "tcl expect as python library";
homepage = http://www.noah.org/wiki/Pexpect;
license = "MIT";
};
};
pitivi = t.pythonExStub.passthru.fun {
### python applications
pythonExStub = composableDerivation {} {
buildInputs = [p.makeWrapper];
postPhases = ["wrapExecutables"];
propagatedBuildInputs = [ t.pythonFull ]; # see [1]
# adding $out to NIX_PYTHON_SITES because some of those executables seem to come with extra libs
wrapExecutables = ''
for prog in $out/bin/*; do
wrapProgram "$prog" \
--set NIX_PYTHON_SITES "$NIX_PYTHON_SITES:$out" \
--set PYTHONPATH "\$PYTHONPATH:$out"
done
'';
};
pitivi = t.pythonExStub.merge {
name = "pitivi-0.11.2";
src = fetchurl {
url = http://ftp.gnome.org/pub/GNOME/sources/pitivi/0.11/pitivi-0.11.2.tar.bz2;
@@ -509,7 +533,7 @@ in
'';
};
istanbul = t.pythonExStub.passthru.fun {
istanbul = t.pythonExStub.merge {
name = "istanbul-0.2.2";
buildInputs = [ t.pygtk212 t.gstPython /*t.gnomePython (contained in gtk) t.gnomePythonExtras */ t.pythonXlib
p.perl p.perlXMLParser p.gettext];

View File

@@ -2,11 +2,11 @@ args: with args;
let inherit (lib) optional prepareDerivationArgs concatStringsSep fix; in
composableDerivation {
f = args: let attr = lib.prepareDerivationArgs args; in stdenv.mkDerivation ( attr // {
mkDerivation = attr : stdenv.mkDerivation ( attr // {
C_INCLUDE_PATH = concatStringsSep ":" (map (p: "${p}/include") attr.buildInputs);
LIBRARY_PATH = concatStringsSep ":" (map (p: "${p}/lib") attr.buildInputs);
});
initial = {
} {
postPhases = ["runCheck"];
@@ -65,5 +65,4 @@ composableDerivation {
rm -rf $out/lib/python2.5/test
";
};
}
}