diff --git a/nix-dist/do-it.nix b/nix-dist/do-it.nix index 9288fd17f23..81f04169bc9 100644 --- a/nix-dist/do-it.nix +++ b/nix-dist/do-it.nix @@ -1,6 +1,6 @@ let { system = "i686-linux"; - pkgs = (import ../pkgs/system/all-packages.nix) {system = system}; + pkgs = (import ../pkgs/system/all-packages.nix) {system = system;}; stdenv = pkgs.stdenv_; sourcedist = (import ./nix-source-dist.nix) { diff --git a/pkgs/applications/version-management/subversion/builder.sh b/pkgs/applications/version-management/subversion/builder.sh index 72848c79532..1a4e4033d22 100755 --- a/pkgs/applications/version-management/subversion/builder.sh +++ b/pkgs/applications/version-management/subversion/builder.sh @@ -1,6 +1,6 @@ #! /bin/sh -buildinputs="$openssl $db4 $httpd $swig $expat" +buildinputs="$openssl $db4 $httpd $swig $python $expat" . $stdenv/setup || exit 1 if test $localServer; then diff --git a/pkgs/applications/version-management/subversion/default.nix b/pkgs/applications/version-management/subversion/default.nix index 76a46511b27..ff03c9514e8 100644 --- a/pkgs/applications/version-management/subversion/default.nix +++ b/pkgs/applications/version-management/subversion/default.nix @@ -10,7 +10,7 @@ assert !isNull expat; assert localServer -> !isNull db4; assert httpServer -> !isNull httpd && httpd.expat == expat; assert sslSupport -> !isNull openssl && (httpServer -> httpd.openssl == openssl); -assert swigBindings -> !isNull swig; +assert swigBindings -> !isNull swig && swig.pythonSupport; derivation { name = "subversion-0.32.1"; @@ -33,4 +33,5 @@ derivation { expat = expat; db4 = if localServer then db4 else null; swig = if swigBindings then swig else null; + python = if swigBindings then swig.python else null; } diff --git a/pkgs/development/interpreters/python/builder.sh b/pkgs/development/interpreters/python/builder.sh new file mode 100755 index 00000000000..73a8bdc3864 --- /dev/null +++ b/pkgs/development/interpreters/python/builder.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +buildinputs="" +. $stdenv/setup || exit 1 + +tar xvfj $src || exit 1 +cd Python-* || exit 1 +./configure --prefix=$out || exit 1 +make || exit 1 +make install || exit 1 diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix new file mode 100644 index 00000000000..85118d132a4 --- /dev/null +++ b/pkgs/development/interpreters/python/default.nix @@ -0,0 +1,10 @@ +{stdenv, fetchurl}: derivation { + name = "python-2.3.3"; + system = stdenv.system; + builder = ./builder.sh; + src = fetchurl { + url = http://www.python.org/ftp/python/2.3.3/Python-2.3.3.tar.bz2; + md5 = "70ada9f65742ab2c77a96bcd6dffd9b1"; + }; + stdenv = stdenv; +} diff --git a/pkgs/development/perl-modules/BerkeleyDB/builder.sh b/pkgs/development/perl-modules/BerkeleyDB/builder.sh new file mode 100755 index 00000000000..ebe916c738e --- /dev/null +++ b/pkgs/development/perl-modules/BerkeleyDB/builder.sh @@ -0,0 +1,14 @@ +#! /bin/sh + +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 diff --git a/pkgs/development/perl-modules/BerkeleyDB/default.nix b/pkgs/development/perl-modules/BerkeleyDB/default.nix new file mode 100644 index 00000000000..9205e829bed --- /dev/null +++ b/pkgs/development/perl-modules/BerkeleyDB/default.nix @@ -0,0 +1,16 @@ +{stdenv, fetchurl, perl, db4}: + +assert !isNull perl && !isNull db4; + +derivation { + name = "perl-BerkeleyDB-0.23"; + system = stdenv.system; + builder = ./builder.sh; + src = fetchurl { + url = http://archive.cs.uu.nl/mirror/CPAN/authors/id/P/PM/PMQS/BerkeleyDB-0.23.tar.gz; + md5 = "d97b85ea5b61bde7de4a998c91ef29c7"; + }; + stdenv = stdenv; + perl = perl; + db4 = db4; +} diff --git a/pkgs/development/tools/misc/swig/builder.sh b/pkgs/development/tools/misc/swig/builder.sh new file mode 100755 index 00000000000..25a5040e45d --- /dev/null +++ b/pkgs/development/tools/misc/swig/builder.sh @@ -0,0 +1,10 @@ +#! /bin/sh + +buildinputs="$perl $python" +. $stdenv/setup || exit 1 + +tar xvfz $src || exit 1 +cd SWIG-* || exit 1 +./configure --prefix=$out || exit 1 +make || exit 1 +make install || exit 1 diff --git a/pkgs/development/tools/misc/swig/default.nix b/pkgs/development/tools/misc/swig/default.nix new file mode 100644 index 00000000000..de5048afba1 --- /dev/null +++ b/pkgs/development/tools/misc/swig/default.nix @@ -0,0 +1,23 @@ +{ perlSupport, pythonSupport +, stdenv, fetchurl, perl ? null, python ? null}: + +assert perlSupport -> !isNull perl; +assert pythonSupport -> !isNull python; + +derivation { + name = "swig-1.3.19"; + system = stdenv.system; + + builder = ./builder.sh; + src = fetchurl { + url = http://heanet.dl.sourceforge.net/sourceforge/swig/swig-1.3.19.tar.gz; + md5 = "a733455544426b31868dd87fc162e750"; + }; + + perlSupport = perlSupport; + pythonSupport = pythonSupport; + + stdenv = stdenv; + perl = if perlSupport then perl else null; + python = if pythonSupport then python else null; +} \ No newline at end of file diff --git a/pkgs/stdenv/nix-linux/default.nix b/pkgs/stdenv/nix-linux/default.nix index b4a1d357aad..b0898826b5d 100644 --- a/pkgs/stdenv/nix-linux/default.nix +++ b/pkgs/stdenv/nix-linux/default.nix @@ -3,7 +3,7 @@ system = bootStdenv.system; prehook = ./prehook.sh; posthook = ./posthook.sh; - initialPath = (import ../nix/path.nix) {pkgs = pkgs}; + initialPath = (import ../nix/path.nix) {pkgs = pkgs;}; param1 = pkgs.bash; param2 = pkgs.gcc; param3 = pkgs.binutils; diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix index 31de45bb431..71eec996f28 100644 --- a/pkgs/system/all-packages-generic.nix +++ b/pkgs/system/all-packages-generic.nix @@ -147,6 +147,15 @@ stdenv = stdenv; }; + swig = (import ../development/tools/misc/swig) { + fetchurl = fetchurl; + stdenv = stdenv; + perlSupport = true; + pythonSupport = true; + perl = perl; + python = python; + }; + gnumake = (import ../development/tools/build-managers/gnumake) { fetchurl = fetchurl; stdenv = stdenv; @@ -175,6 +184,11 @@ stdenv = stdenv; }; + python = (import ../development/interpreters/python) { + fetchurl = fetchurl; + stdenv = stdenv; + }; + pcre = (import ../development/libraries/pcre) { fetchurl = fetchurl; stdenv = stdenv; @@ -413,6 +427,13 @@ stdenv = stdenv; }; + perlBerkeleyDB = (import ../development/perl-modules/BerkeleyDB) { + fetchurl = fetchurl; + stdenv = stdenv; + perl = perl; + db4 = db4; + }; + ### SERVERS @@ -477,6 +498,7 @@ httpd = apacheHttpd; db4 = db4; expat = expat; + swig = swig; }; pan = (import ../applications/networking/newsreaders/pan) { diff --git a/pkgs/system/all-packages.nix b/pkgs/system/all-packages.nix index de4b3977d83..367ac195034 100644 --- a/pkgs/system/all-packages.nix +++ b/pkgs/system/all-packages.nix @@ -16,15 +16,15 @@ # i.e., the stuff in /bin, /usr/bin, etc. This environment should # be used with care, since many Nix packages will not build properly # with it (e.g., because they require GNU Make). - stdenvNative = (import ../stdenv/native) {system = system}; - stdenvNativePkgs = allPackages {system = system; stdenv = stdenvNative}; + stdenvNative = (import ../stdenv/native) {system = system;}; + stdenvNativePkgs = allPackages {system = system; stdenv = stdenvNative;}; # The Nix build environment. stdenvNix = (import ../stdenv/nix) { bootStdenv = stdenvNative; pkgs = stdenvNativePkgs; }; - stdenvNixPkgs = allPackages {system = system; stdenv = stdenvNix}; + stdenvNixPkgs = allPackages {system = system; stdenv = stdenvNix;}; # The Linux build environment consists of the Nix build environment # built against the GNU C Library. @@ -33,14 +33,14 @@ system = system; glibc = stdenvLinuxGlibc; }; - stdenvLinuxBootPkgs = allPackages {system = system; stdenv = stdenvLinuxBoot}; + stdenvLinuxBootPkgs = allPackages {system = system; stdenv = stdenvLinuxBoot;}; stdenvLinux = (import ../stdenv/nix-linux) { bootStdenv = stdenvLinuxBoot; pkgs = stdenvLinuxBootPkgs; glibc = stdenvLinuxGlibc; }; - stdenvLinuxPkgs = allPackages {system = system; stdenv = stdenvLinux}; + stdenvLinuxPkgs = allPackages {system = system; stdenv = stdenvLinux;}; # Select the right instantiation. body = diff --git a/pkgs/system/i686-linux.nix b/pkgs/system/i686-linux.nix index c35e5a27ed0..4ff2a8cda12 100644 --- a/pkgs/system/i686-linux.nix +++ b/pkgs/system/i686-linux.nix @@ -1 +1 @@ -(import ./all-packages.nix) {system = "i686-linux"} +(import ./all-packages.nix) {system = "i686-linux";}