diff --git a/pkgs/applications/misc/googleearth/default.nix b/pkgs/applications/misc/googleearth/default.nix index e903a384f10..085fa9fed2a 100644 --- a/pkgs/applications/misc/googleearth/default.nix +++ b/pkgs/applications/misc/googleearth/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation { sha256 = "1sxs1nwb2zh2j8dbwm65r04byn66yn79kpzhilhswly6r8d7yivg"; }; - buildInputs = [ + buildNativeInputs = [ glibc glib stdenv.gcc.gcc @@ -51,7 +51,7 @@ stdenv.mkDerivation { chmod +x $out/bin/googleearth fullPath= - for i in $buildInputs; do + for i in $buildNativeInputs; do fullPath=$fullPath:$i/lib done diff --git a/pkgs/applications/virtualization/qemu/0.12.2.nix b/pkgs/applications/virtualization/qemu/0.12.2.nix deleted file mode 100644 index d47f3d1a8a0..00000000000 --- a/pkgs/applications/virtualization/qemu/0.12.2.nix +++ /dev/null @@ -1,18 +0,0 @@ -{stdenv, fetchurl, SDL, zlib, which}: - -stdenv.mkDerivation { - name = "qemu-0.12.2"; - - src = fetchurl { - url = http://download.savannah.gnu.org/releases/qemu/qemu-0.12.2.tar.gz; - sha256 = "0hv8fs8z14miryqm81vhlwwp4gmffw11lka7945rxn6vqzpc5kmc"; - }; - - patchFlags = "-p2"; - - buildInputs = [SDL zlib which]; - - meta = { - description = "QEmu processor emulator"; - }; -} diff --git a/pkgs/applications/virtualization/qemu/0.12.3.nix b/pkgs/applications/virtualization/qemu/0.12.3.nix new file mode 100644 index 00000000000..a16a4d58729 --- /dev/null +++ b/pkgs/applications/virtualization/qemu/0.12.3.nix @@ -0,0 +1,18 @@ +{stdenv, fetchurl, SDL, zlib, which}: + +stdenv.mkDerivation rec { + name = "qemu-0.12.3"; + + src = fetchurl { + url = "http://download.savannah.gnu.org/releases/qemu/${name}.tar.gz"; + sha256 = "0jyyz9vm8qrjb6nzfgdwmj9y990fnk2bl9ja0sr1i555n27nzqiw"; + }; + + patchFlags = "-p2"; + + buildInputs = [SDL zlib which]; + + meta = { + description = "QEmu processor emulator"; + }; +} diff --git a/pkgs/development/libraries/haskell/csv/default.nix b/pkgs/development/libraries/haskell/csv/default.nix new file mode 100644 index 00000000000..56eefcc43a9 --- /dev/null +++ b/pkgs/development/libraries/haskell/csv/default.nix @@ -0,0 +1,12 @@ +{cabal, parsec}: + +cabal.mkDerivation (self : { + pname = "csv"; + version = "0.1.1"; + sha256 = "046e989f4bb76c9b15c33c3ec63f57a689317de8170449c9cf9e152393b7f1a0"; + propagatedBuildInputs = [parsec]; + meta = { + description = "CSV loader and dumper"; + }; +}) + diff --git a/pkgs/development/libraries/haskell/uulib/default.nix b/pkgs/development/libraries/haskell/uulib/default.nix index b715b0ca743..2514da38ad7 100644 --- a/pkgs/development/libraries/haskell/uulib/default.nix +++ b/pkgs/development/libraries/haskell/uulib/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self : { pname = "uulib"; - version = "0.9.10"; - sha256 = "1df7336ed76c278323c2e25ab53ec1afc9eba6a7c918c826e9f783e84479e08f"; + version = "0.9.11"; + sha256 = "f364ec14f249c9fc28ab341050c7e1cc1bde865fb787e4456c07c1df450815c8"; meta = { description = "Haskell Utecht Tools Library"; }; diff --git a/pkgs/development/libraries/libusb/default.nix b/pkgs/development/libraries/libusb/default.nix index 3db75ccfda4..64ef4ed66b6 100644 --- a/pkgs/development/libraries/libusb/default.nix +++ b/pkgs/development/libraries/libusb/default.nix @@ -2,6 +2,13 @@ stdenv.mkDerivation { name = "libusb-0.1.12"; + + # On non-linux, we get warnings compiling, and we don't want the + # build to break. + patchPhase = '' + sed -i s/-Werror// Makefile.in + ''; + src = fetchurl { url = mirror://sourceforge/libusb/libusb-0.1.12.tar.gz; md5 = "caf182cbc7565dac0fd72155919672e6"; diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index e9d75b78ebf..4d0e0cd8afb 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -1,5 +1,11 @@ { stdenv, fetchurl, perl }: +let + opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ] + (throw "openssl needs its platform name cross building" null) + stdenv.cross; +in + stdenv.mkDerivation rec { name = "openssl-0.9.8l"; @@ -10,12 +16,24 @@ stdenv.mkDerivation rec { patches = [ ./darwin-arch.patch ]; - buildInputs = [ perl ]; + buildNativeInputs = [ perl ]; configureScript = "./config"; configureFlags = "shared"; + crossAttrs = { + configurePhase = '' + export cross=$crossSystem- + ./Configure --prefix=$out ${opensslCrossSystem} shared + ''; + buildPhase = '' + make CC=$crossConfig-gcc \ + AR="$crossConfig-ar r" \ + RANLIB=$crossConfig-ranlib + ''; + }; + meta = { homepage = http://www.openssl.org/; description = "A cryptographic library that implements the SSL and TLS protocols"; diff --git a/pkgs/development/tools/analysis/radare/default.nix b/pkgs/development/tools/analysis/radare/default.nix index dfbe1e542f9..d549bd8fb19 100644 --- a/pkgs/development/tools/analysis/radare/default.nix +++ b/pkgs/development/tools/analysis/radare/default.nix @@ -11,13 +11,12 @@ assert pythonBindings -> python != null; let optional = stdenv.lib.optional; in -stdenv.mkDerivation -{ - name = "radare-1.4.2"; +stdenv.mkDerivation rec { + name = "radare-1.5"; src = fetchurl { - url = http://radare.org/get/radare-1.4.2.tar.gz; - sha256 = "09pai3k4x3kzq7zjfd8425jjb16fpximrhp5wyy6pwgdc82q30sd"; + url = "http://radare.org/get/${name}.tar.gz"; + sha256 = "1r0c9cc7z9likma8zicp2pbv2y85vjjmnk0k45wdhbvhgqh6il1h"; }; @@ -32,6 +31,6 @@ stdenv.mkDerivation homepage = http://radare.org/; license = "GPLv2+"; maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + platforms = with stdenv.lib.platforms; all; }; } diff --git a/pkgs/development/tools/haskell/uuagc/default.nix b/pkgs/development/tools/haskell/uuagc/default.nix index d4c3de9026e..248216bf673 100644 --- a/pkgs/development/tools/haskell/uuagc/default.nix +++ b/pkgs/development/tools/haskell/uuagc/default.nix @@ -2,9 +2,9 @@ cabal.mkDerivation (self : { pname = "uuagc"; - version = "0.9.10"; + version = "0.9.14"; name = self.fname; - sha256 = "cdbe78b6138a67bbc612f0f667f70ba483ebbdaa4d0c87c5508cfb5e68a49dcb"; + sha256 = "076250219874b03fc04473a71f6fc6e1c2324f3a65e98a6f7afcaa42de4dea0c"; extraBuildInputs = [uulib]; meta = { description = "Attribute Grammar System of Universiteit Utrecht"; diff --git a/pkgs/lib/customisation.nix b/pkgs/lib/customisation.nix index 3b1bed3fc30..d5c9e99727e 100644 --- a/pkgs/lib/customisation.nix +++ b/pkgs/lib/customisation.nix @@ -31,7 +31,7 @@ rec { overrideDerivation = drv: f: let # Filter out special attributes. - attrs = removeAttrs drv ["meta" "passthru" "outPath" "drvPath" "hostDrv" "buildDrv"]; + attrs = removeAttrs drv ["meta" "passthru" "outPath" "drvPath" "hostDrv" "buildDrv" "type"]; newDrv = derivation (attrs // (f drv)); in newDrv // { meta = if drv ? meta then drv.meta else {}; diff --git a/pkgs/misc/tex/texlive/default.nix b/pkgs/misc/tex/texlive/default.nix index 50a6e7ab088..7a14ba90887 100644 --- a/pkgs/misc/tex/texlive/default.nix +++ b/pkgs/misc/tex/texlive/default.nix @@ -46,19 +46,26 @@ rec { doPostInstall = fullDepEntry('' mv $out/bin $out/libexec ensureDir $out/bin - for i in $out/libexec/*/*; do + for i in "$out/libexec/"*"/"*; do echo -ne "#! /bin/sh\\n$i \"\$@\"" >$out/bin/$(basename $i) chmod a+x $out/bin/$(basename $i) done [ -d $out/texmf-config ] || ln -s $out/texmf $out/texmf-config - ln -s $out/*texmf* $out/share/ + ln -s "$out/"*texmf* "$out/share/" sed -e 's/.*pyhyph.*/=&/' -i $out/texmf-config/tex/generic/config/language.dat PATH=$PATH:$out/bin mktexlsr $out/texmf* HOME=. PATH=$PATH:$out/bin updmap-sys --syncwithtrees - + + # Prebuild the format files, as it used to be done with TeXLive 2007. + # Note the funny argument parser of `mktexfmt', which wants something + # ending in `.fmt' as its first argument. + ensureDir "$out/texmf-var/web2c" + PATH="$PATH:$out/bin" mktexfmt does-not-matter.fmt \ + --fmtdir="$out/texmf-var/web2c" --all + PATH=$PATH:$out/bin mktexlsr $out/texmf* '') ["minInit" "defEnsureDir" "doUnpack" "doMakeInstall"]; diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 5979b038283..15811713324 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -114,7 +114,10 @@ stdenv.mkDerivation { kernelConfig = kernelConfigFun configCross; - buildInputs = lib.optional (cp.uboot != null) (ubootChooser cp.uboot); + # The substitution of crossAttrs happens *after* the stdenv cross adapter sets + # the parameters for the usual stdenv. Thus, we need to specify + # the ".hostDrv" in the buildInputs here. + buildInputs = lib.optional (cp.uboot != null) (ubootChooser cp.uboot).hostDrv; }; meta = { diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix index 295282fea72..54e14b19726 100644 --- a/pkgs/os-specific/linux/nvidia-x11/default.nix +++ b/pkgs/os-specific/linux/nvidia-x11/default.nix @@ -2,7 +2,7 @@ let - versionNumber = "195.36.08"; + versionNumber = "190.53"; in @@ -15,12 +15,12 @@ stdenv.mkDerivation { if stdenv.system == "i686-linux" then fetchurl { url = "http://us.download.nvidia.com/XFree86/Linux-x86/${versionNumber}/NVIDIA-Linux-x86-${versionNumber}-pkg0.run"; - sha256 = "0kwkms1lj7h0gaz6x3m44575mfb1zbif0xlm55xffym2n4338lds"; + sha256 = "0ypm4ld8zvir5c6nc1a7x4wxkb0fdx13lf8a2fzi3fmvhpa8bag9"; } else if stdenv.system == "x86_64-linux" then fetchurl { url = "http://us.download.nvidia.com/XFree86/Linux-x86_64/${versionNumber}/NVIDIA-Linux-x86_64-${versionNumber}-pkg0.run"; - sha256 = "14yxypv4fq4ldpin51110bs5a4062mfr7gvr1vikhsa1b2vq502f"; + sha256 = "0mm841563wy373hg5az42dncmvkzk8y7yxlij7axw4q1pjbihi80"; } else throw "nvidia-x11 does not support platform ${stdenv.system}"; diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix index 9bcb5a28e16..a5f97503366 100644 --- a/pkgs/os-specific/linux/qemu-kvm/default.nix +++ b/pkgs/os-specific/linux/qemu-kvm/default.nix @@ -3,11 +3,11 @@ assert stdenv.isLinux; stdenv.mkDerivation rec { - name = "qemu-kvm-0.12.2"; + name = "qemu-kvm-0.12.3"; src = fetchurl { url = "mirror://sourceforge/kvm/${name}.tar.gz"; - sha256 = "0nmg9dp3h040dkxq5vv4i7ip76v98rnhzqwy4pd88zznawc2k9l2"; + sha256 = "1cn20jsmf27h23ynm804bz41i2fmmbg02gbnfknz6cwbjg4cvk3p"; }; patches = [ ./unix-domain.patch ./smb-tmpdir.patch ]; diff --git a/pkgs/servers/http/apache-httpd/default.nix b/pkgs/servers/http/apache-httpd/default.nix index deca99bb788..c44a90a1663 100644 --- a/pkgs/servers/http/apache-httpd/default.nix +++ b/pkgs/servers/http/apache-httpd/default.nix @@ -6,12 +6,12 @@ assert sslSupport -> openssl != null; stdenv.mkDerivation rec { - version = "2.2.14"; + version = "2.2.15"; name = "apache-httpd-${version}"; src = fetchurl { url = "mirror://apache/httpd/httpd-${version}.tar.bz2"; - md5 = "a5226203aaf97e5b941c41a71c112704"; + sha1 = "5f0e973839ed2e38a4d03adba109ef5ce3381bc2"; }; #inherit sslSupport; diff --git a/pkgs/tools/compression/lrzip/default.nix b/pkgs/tools/compression/lrzip/default.nix index 338bc16d85d..0faa3e22c5c 100644 --- a/pkgs/tools/compression/lrzip/default.nix +++ b/pkgs/tools/compression/lrzip/default.nix @@ -1,11 +1,11 @@ {stdenv, fetchurl, zlib, lzo, bzip2, nasm}: -stdenv.mkDerivation { - name = "lrzip-0.23"; +stdenv.mkDerivation rec { + name = "lrzip-0.44"; src = fetchurl { - url = http://ck.kolivas.org/apps/lrzip/lrzip-0.23.tar.bz2; - sha256 = "52514a46228266230760fe8f7da9dd669b4c82160e9c238f029cd535d0988065"; + url = "http://ck.kolivas.org/apps/lrzip/${name}.tar.bz2"; + sha256 = "1ncr6igs8v6yxp60sgb9h4ra8wb7jzbxiyj4a9m4nrxyw8fwm2iv"; }; NIX_CFLAGS_COMPILE = "-isystem ${zlib}/include"; diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix index 1cd9b43309f..0cfd6adef86 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -34,6 +34,16 @@ stdenv.mkDerivation rec { # other LDFLAGS, because it doesn't use libtool for linking in the tests. makeFlags = if linkStatic then "LDFLAGS=-all-static" else ""; + crossAttrs = { + # We should refer to the cross built openssl + # For the 'urandom', maybe it should be a cross-system option + configureFlags = '' + ${if sslSupport then "--with-ssl=${openssl.hostDrv}" else "--without-ssl"} + ${if linkStatic then "--enable-static --disable-shared" else ""} + --with-random /dev/urandom + ''; + }; + passthru = { inherit sslSupport openssl; }; diff --git a/pkgs/tools/networking/p2p/bit-tornado/default.nix b/pkgs/tools/networking/p2p/bit-tornado/default.nix index d8b5d2bb015..19752082b0e 100644 --- a/pkgs/tools/networking/p2p/bit-tornado/default.nix +++ b/pkgs/tools/networking/p2p/bit-tornado/default.nix @@ -13,8 +13,11 @@ stdenv.mkDerivation { installPhase = "python setup.py install --prefix=$out ;"+ " echo 'export PYTHONPATH=$PYTHONPATH:'$out'/lib/python2.4/site-packages:"+ wxPython26+"/lib/python2.4/site-packages:"+ + wxPython26+"/lib/python2.6/site-packages:"+ "'$out'/lib/python2.5/site-packages:"+ + "'$out'/lib/python2.6/site-packages:"+ wxPython26+"/lib/python2.4/site-packages/wx-2.6-gtk2-unicode:"+ + wxPython26+"/lib/python2.6/site-packages/wx-2.6-gtk2-unicode:"+ wxPython26+"/lib/python2.5/site-packages/wx-2.6-gtk2-unicode; "+ "python `which btdownloadgui.py` --ipv6_enabled 1 --ipv6_binds_v4 0 \"$@\";' >"+ "$out/bin/bittornado ; chmod a+rx $out/bin/bittornado;"; diff --git a/pkgs/tools/package-management/nix/unstable.nix b/pkgs/tools/package-management/nix/unstable.nix index f3c8ab1b34c..8687a4af884 100644 --- a/pkgs/tools/package-management/nix/unstable.nix +++ b/pkgs/tools/package-management/nix/unstable.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "844e5878d55a68ae2aac657718a1960dcfc943f6738ebdfb2bc93e8c462d0ad7"; }; - buildInputs = [perl curl openssl]; + buildNativeInputs = [perl]; + buildInputs = [curl openssl]; configureFlags = '' --with-store-dir=${storeDir} --localstatedir=${stateDir} diff --git a/pkgs/tools/system/tm/default.nix b/pkgs/tools/system/tm/default.nix index 2e0c2611cd2..a5e413690d0 100644 --- a/pkgs/tools/system/tm/default.nix +++ b/pkgs/tools/system/tm/default.nix @@ -18,7 +18,7 @@ stdenv.mkDerivation { description = "terminal mixer - multiplexer for the i/o of terminal applications"; license="GPLv2"; maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + platforms = with stdenv.lib.platforms; all; }; } diff --git a/pkgs/tools/system/ts/default.nix b/pkgs/tools/system/ts/default.nix index 80e99774c0c..80778a3546a 100644 --- a/pkgs/tools/system/ts/default.nix +++ b/pkgs/tools/system/ts/default.nix @@ -16,6 +16,6 @@ stdenv.mkDerivation { description = "task spooler - batch queue"; license="GPLv2"; maintainers = with stdenv.lib.maintainers; [viric]; - platforms = with stdenv.lib.platforms; linux; + platforms = with stdenv.lib.platforms; all; }; } diff --git a/pkgs/tools/text/enscript/default.nix b/pkgs/tools/text/enscript/default.nix index 33c82ec52d8..d0dd566c9e3 100644 --- a/pkgs/tools/text/enscript/default.nix +++ b/pkgs/tools/text/enscript/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchurl, gettext }: stdenv.mkDerivation rec { - name = "enscript-1.6.5"; + name = "enscript-1.6.5.1"; src = fetchurl { url = "mirror://gnu/enscript/${name}.tar.gz"; - sha256 = "1sq4ng7z34qhx6cavnzndgkjpjr9lbvpxgd5a3ajgif3n57fjki2"; + sha256 = "12zmd3iibpdwpgk10pwd71111dfh31x37xy6cllb1g243in3bgsp"; }; buildInputs = [ gettext ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a53b45a59b8..9098162664a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -183,8 +183,8 @@ let defaultStdenv = allStdenvs.stdenv // { inherit platform; }; - stdenvCross = makeStdenvCross defaultStdenv crossSystem (binutilsCross crossSystem) - (gccCrossStageFinal crossSystem); + stdenvCross = makeStdenvCross defaultStdenv crossSystem binutilsCross + gccCrossStageFinal; stdenv = if bootStdenv != null then bootStdenv else @@ -1949,45 +1949,47 @@ let profiledCompiler = true; })); - gcc43_realCross = cross : makeOverridable (import ../development/compilers/gcc-4.3) { - inherit stdenv fetchurl texinfo gmp mpfr noSysDirs cross; - binutilsCross = binutilsCross cross; - libcCross = libcCross cross; + gcc43_realCross = makeOverridable (import ../development/compilers/gcc-4.3) { + inherit stdenv fetchurl texinfo gmp mpfr noSysDirs; + binutilsCross = binutilsCross; + libcCross = libcCross; profiledCompiler = false; enableMultilib = true; crossStageStatic = false; + cross = assert crossSystem != null; crossSystem; }; - gcc44_realCross = cross : makeOverridable (import ../development/compilers/gcc-4.4) { - inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs cross + gcc44_realCross = makeOverridable (import ../development/compilers/gcc-4.4) { + inherit stdenv fetchurl texinfo gmp mpfr ppl cloogppl noSysDirs gettext which; - binutilsCross = binutilsCross cross; - libcCross = libcCross cross; + binutilsCross = binutilsCross; + libcCross = libcCross; profiledCompiler = false; enableMultilib = false; # cross-building for ultrasparc in 4.4.3 will require disabling shared due to a gcc bug. # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41818 enableShared = if (crossSystem.arch == "sparc64") then false else true; crossStageStatic = false; + cross = assert crossSystem != null; crossSystem; }; - gccCrossStageStatic = cross: wrapGCCCross { - gcc = forceBuildDrv ((gcc44_realCross cross).override { + gccCrossStageStatic = wrapGCCCross { + gcc = forceBuildDrv (gcc44_realCross.override { crossStageStatic = true; langCC = false; libcCross = null; enableShared = true; }); libc = null; - binutils = binutilsCross cross; - inherit cross; + binutils = binutilsCross; + cross = assert crossSystem != null; crossSystem; }; - gccCrossStageFinal = cross: wrapGCCCross { - gcc = forceBuildDrv (gcc44_realCross cross); - libc = libcCross cross; - binutils = binutilsCross cross; - inherit cross; + gccCrossStageFinal = wrapGCCCross { + gcc = forceBuildDrv gcc44_realCross; + libc = libcCross; + binutils = binutilsCross; + cross = assert crossSystem != null; crossSystem; }; gcc43_multi = lowPrio (wrapGCCWith (import ../build-support/gcc-wrapper) glibc_multi (gcc43.gcc.override { @@ -2853,9 +2855,10 @@ let inherit fetchurl stdenv noSysDirs; }); - binutilsCross = cross : forceBuildDrv (import ../development/tools/misc/binutils { - inherit stdenv fetchurl cross; + binutilsCross = forceBuildDrv (import ../development/tools/misc/binutils { + inherit stdenv fetchurl; noSysDirs = true; + cross = assert crossSystem != null; crossSystem; }); bison = bison23; @@ -3713,10 +3716,10 @@ let installLocales = getPkgConfig "glibc" "locales" false; }; - glibc29Cross = cross: forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) { + glibc29Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.9) { inherit stdenv fetchurl; - gccCross = gccCrossStageStatic cross; - kernelHeaders = linuxHeadersCross cross; + gccCross = gccCrossStageStatic; + kernelHeaders = linuxHeadersCross; installLocales = getPkgConfig "glibc" "locales" false; }); @@ -3726,16 +3729,16 @@ let installLocales = getPkgConfig "glibc" "locales" false; }; - glibc211Cross = cross : forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11) { + glibc211Cross = forceBuildDrv (makeOverridable (import ../development/libraries/glibc-2.11) { inherit stdenv fetchurl; - gccCross = gccCrossStageStatic cross; - kernelHeaders = linuxHeadersCross cross; + gccCross = gccCrossStageStatic; + kernelHeaders = linuxHeadersCross; installLocales = getPkgConfig "glibc" "locales" false; }); # We can choose: - libcCross = cross: glibc211Cross cross; - # libcCross = cross: uclibcCross cross; + libcCross = glibc211Cross; + # libcCross = uclibcCross; eglibc = import ../development/libraries/eglibc { inherit fetchsvn stdenv; @@ -5869,8 +5872,9 @@ let linuxHeaders = linuxHeaders_2_6_28; - linuxHeadersCross = cross : forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix { - inherit stdenv fetchurl cross perl; + linuxHeadersCross = forceBuildDrv (import ../os-specific/linux/kernel-headers/2.6.32.nix { + inherit stdenv fetchurl perl; + cross = assert crossSystem != null; crossSystem; }); linuxHeaders_2_6_18 = import ../os-specific/linux/kernel-headers/2.6.18.5.nix { @@ -7919,7 +7923,7 @@ let inherit fetchurl stdenv pkgconfig imagemagick boost python; }; - qemu = import ../applications/virtualization/qemu/0.12.2.nix { + qemu = import ../applications/virtualization/qemu/0.12.3.nix { inherit stdenv fetchurl SDL zlib which; }; @@ -8706,7 +8710,7 @@ let }; - kde4 = kde44; + kde4 = kde43; kde43 = makeOverridable (import ../desktops/kde-4.3) (pkgs // { openexr = openexr_1_6_1; @@ -9032,11 +9036,11 @@ let }; # The SQLite branch. - nixSqlite = makeOverridable (import ../tools/package-management/nix/sqlite.nix) { + nixSqlite = lowPrio (makeOverridable (import ../tools/package-management/nix/sqlite.nix) { inherit fetchurl stdenv perl curl bzip2 openssl aterm sqlite; storeDir = getPkgConfig "nix" "storeDir" "/nix/store"; stateDir = getPkgConfig "nix" "stateDir" "/nix/var"; - }; + }); nixCustomFun = src: preConfigure: enableScripts: configureFlags: import ../tools/package-management/nix/custom.nix { diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index a9bb0ce27a5..399ae41b8bb 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -81,6 +81,10 @@ rec { json = json_036; }; + csv = import ../development/libraries/haskell/csv { + inherit cabal parsec; + }; + dataenc = import ../development/libraries/haskell/dataenc { inherit cabal; }; diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix new file mode 100644 index 00000000000..12293f5ba9c --- /dev/null +++ b/pkgs/top-level/release-cross.nix @@ -0,0 +1,110 @@ +with (import ./release-lib.nix); + +( + +/* Test some cross builds to the Sheevaplug */ +let + crossSystem = { + config = "armv5tel-unknown-linux-gnueabi"; + bigEndian = false; + arch = "arm"; + float = "soft"; + withTLS = true; + platform = pkgs.platforms.sheevaplug; + openssl.system = "linux-generic32"; + }; + nativePlatforms = linux; +in { + crossSheevaplugLinux = mapTestOnCross crossSystem (rec { + bison = nativePlatforms; + tightvnc = nativePlatforms; + #openoffice = nativePlatforms; + wxGTK = nativePlatforms; + #firefox = nativePlatforms; + xorg = { + #xorgserver = nativePlatforms; + }; + nixUnstable = linux; + linuxPackages_2_6_32.kernel = linux; + linuxPackages_2_6_33.kernel = linux; + gdbCross = nativePlatforms; + gcc44_real.gcc = linux; + }); +}) // ( + +/* Test some cross builds to the mipsel */ +let + crossSystem = { + config = "mipsel-unknown-linux"; + bigEndian = false; + arch = "mips"; + float = "soft"; + withTLS = true; + platform = { + name = "malta"; + kernelBaseConfig = "malta_defconfig"; + kernelHeadersBaseConfig = "malta_defconfig"; + uboot = null; + kernelArch = "mips"; + kernelAutoModules = false; + kernelTarget = "vmlinux.bin"; + }; + openssl.system = "linux-generic32"; + }; + nativePlatforms = linux; +in { + crossMipselLinux = mapTestOnCross crossSystem (rec { + bison = nativePlatforms; + tightvnc = nativePlatforms; + #openoffice = nativePlatforms; + wxGTK = nativePlatforms; + #firefox = nativePlatforms; + xorg = { + #xorgserver = nativePlatforms; + }; + nixUnstable = linux; + linuxPackages_2_6_32.kernel = linux; + linuxPackages_2_6_33.kernel = linux; + gdbCross = nativePlatforms; + gcc44_real.gcc = linux; + }); +}) // ( + +/* Test some cross builds to the ultrasparc */ +let + crossSystem = { + config = "sparc64-unknown-linux"; + bigEndian = true; + arch = "sparc64"; + float = "hard"; + withTLS = true; + cpu = "ultrasparc"; + platform = { + name = "ultrasparc"; + kernelHeadersBaseConfig = "sparc64_defconfig"; + kernelBaseConfig = "sparc64_defconfig"; + kernelArch = "sparc"; + kernelAutoModules = false; + kernelTarget = "zImage"; + uboot = null; + }; + openssl.system = "linux64-sparcv9"; + }; + nativePlatforms = linux; +in { + crossUltraSparcLinux = mapTestOnCross crossSystem (rec { + bison = nativePlatforms; + tightvnc = nativePlatforms; + #openoffice = nativePlatforms; + wxGTK = nativePlatforms; + #firefox = nativePlatforms; + xorg = { + #xorgserver = nativePlatforms; + }; + nixUnstable = linux; + linuxPackages_2_6_32.kernel = linux; + linuxPackages_2_6_33.kernel = linux; + gdbCross = nativePlatforms; + gcc44_real.gcc = linux; + }); +}) diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix new file mode 100644 index 00000000000..b65296b5ea2 --- /dev/null +++ b/pkgs/top-level/release-lib.nix @@ -0,0 +1,103 @@ +rec { + allPackages = import ./all-packages.nix; + + pkgs = allPackages {}; + + /* The working or failing letters for cross builds will be sent only to + the following maintainers, as most package maintainers will not be + interested in the result of cross building a package. */ + crossMaintainers = with pkgs.lib.maintainers; [ viric ]; + + /* Set the Hydra scheduling priority for a job. The default + priority (100) should be used for most jobs. A different + priority should only be used for a few particularly interesting + jobs (in terms of giving feedback to developers), such as stdenv. + */ + prio = level: job: toJob job // { schedulingPriority = level; }; + + toJob = x: if builtins.isAttrs x then x else + { type = "job"; systems = x; schedulingPriority = 10; }; + + /* Perform a job on the given set of platforms. The function `f' is + called by Hydra for each platform, and should return some job + to build on that platform. `f' is passed the Nixpkgs collection + for the platform in question. */ + testOn = systems: f: {system ? builtins.currentSystem}: + if pkgs.lib.elem system systems then f (allPackages {inherit system;}) else {}; + + /* Similar to the testOn function, but with an additional 'crossSystem' + * parameter for allPackages, defining the target platform for cross builds */ + testOnCross = crossSystem: systems: f: {system ? builtins.currentSystem}: + if pkgs.lib.elem system systems then f (allPackages {inherit system + crossSystem;}) else {}; + + /* Map an attribute of the form `foo = [platforms...]' to `testOn + [platforms...] (pkgs: pkgs.foo)'. */ + mapTestOn = pkgs.lib.mapAttrsRecursiveCond + (as: !(as ? type && as.type == "job")) + (path: value: + let + job = toJob value; + getPkg = pkgs: + pkgs.lib.addMetaAttrs { schedulingPriority = toString job.schedulingPriority; } + (pkgs.lib.getAttrFromPath path pkgs); + in testOn job.systems getPkg); + + + /* Similar to the testOn function, but with an additional 'crossSystem' + * parameter for allPackages, defining the target platform for cross builds, + * and triggering the build of the host derivation (cross built - hostDrv). */ + mapTestOnCross = crossSystem: pkgs.lib.mapAttrsRecursiveCond + (as: !(as ? type && as.type == "job")) + (path: value: + let + job = toJob value; + getPkg = pkgs: setCrossMaintainers + (pkgs.lib.addMetaAttrs { schedulingPriority = toString job.schedulingPriority; } + (pkgs.lib.getAttrFromPath (path ++ ["hostDrv"]) pkgs)); + in testOnCross crossSystem job.systems getPkg); + + setCrossMaintainers = pkg: pkg // { meta.maintainers = crossMaintainers; }; + + /* Find all packages that have a meta.platforms field listing the + supported platforms. */ + packagesWithMetaPlatform = attrSet: + if builtins ? tryEval then + let pairs = pkgs.lib.concatMap + (x: + let pair = builtins.tryEval + (let + attrVal = (builtins.getAttr x attrSet); + in + {val=(processPackage attrVal); + attrVal = attrVal; + attrValIsAttrs = builtins.isAttrs attrVal; + }); + success = (builtins.tryEval pair.value.attrVal).success; + in + if success && pair.value.attrValIsAttrs && + pair.value.val != [] then + [{name= x; value=pair.value.val;}] else []) + (builtins.attrNames attrSet); + in + builtins.listToAttrs pairs + else {}; + + # May fail as much as it wishes, we will catch the error. + processPackage = attrSet: + if attrSet ? recurseForDerivations && attrSet.recurseForDerivations then + packagesWithMetaPlatform attrSet + else + if attrSet ? meta && attrSet.meta ? platforms + then attrSet.meta.platforms + else []; + + /* Common platform groups on which to test packages. */ + inherit (pkgs.lib.platforms) linux darwin cygwin allBut all mesaPlatforms; + + /* Platform groups for specific kinds of applications. */ + x11Supported = linux; + gtkSupported = linux; + ghcSupported = linux ++ ["i686-darwin"] ; + +} diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index 99bcfb6ab2e..7c5623a8991 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -1,107 +1,6 @@ -let +with (import ./release-lib.nix); - allPackages = import ./all-packages.nix; - - pkgs = allPackages {}; - - /* The working or failing letters for cross builds will be sent only to - the following maintainers, as most package maintainers will not be - interested in the result of cross building a package. */ - crossMaintainers = with pkgs.lib.maintainers; [ viric ]; - - /* Set the Hydra scheduling priority for a job. The default - priority (100) should be used for most jobs. A different - priority should only be used for a few particularly interesting - jobs (in terms of giving feedback to developers), such as stdenv. - */ - prio = level: job: toJob job // { schedulingPriority = level; }; - - toJob = x: if builtins.isAttrs x then x else - { type = "job"; systems = x; schedulingPriority = 5; }; - - /* Perform a job on the given set of platforms. The function `f' is - called by Hydra for each platform, and should return some job - to build on that platform. `f' is passed the Nixpkgs collection - for the platform in question. */ - testOn = systems: f: {system ? builtins.currentSystem}: - if pkgs.lib.elem system systems then f (allPackages {inherit system;}) else {}; - - /* Similar to the testOn function, but with an additional 'crossSystem' - * parameter for allPackages, defining the target platform for cross builds */ - testOnCross = crossSystem: systems: f: {system ? builtins.currentSystem}: - if pkgs.lib.elem system systems then f (allPackages {inherit system - crossSystem;}) else {}; - - /* Map an attribute of the form `foo = [platforms...]' to `testOn - [platforms...] (pkgs: pkgs.foo)'. */ - mapTestOn = pkgs.lib.mapAttrsRecursiveCond - (as: !(as ? type && as.type == "job")) - (path: value: - let - job = toJob value; - getPkg = pkgs: - pkgs.lib.addMetaAttrs { schedulingPriority = toString job.schedulingPriority; } - (pkgs.lib.getAttrFromPath path pkgs); - in testOn job.systems getPkg); - - - /* Similar to the testOn function, but with an additional 'crossSystem' - * parameter for allPackages, defining the target platform for cross builds, - * and triggering the build of the host derivation (cross built - hostDrv). */ - mapTestOnCross = crossSystem: pkgs.lib.mapAttrsRecursiveCond - (as: !(as ? type && as.type == "job")) - (path: value: - let - job = toJob value; - getPkg = pkgs: setCrossMaintainers - (pkgs.lib.addMetaAttrs { schedulingPriority = toString job.schedulingPriority; } - (pkgs.lib.getAttrFromPath (path ++ ["hostDrv"]) pkgs)); - in testOnCross crossSystem job.systems getPkg); - - setCrossMaintainers = pkg: pkg // { meta.maintainers = crossMaintainers; }; - - /* Find all packages that have a meta.platforms field listing the - supported platforms. */ - packagesWithMetaPlatform = attrSet: - if builtins ? tryEval then - let pairs = pkgs.lib.concatMap - (x: - let pair = builtins.tryEval - (let - attrVal = (builtins.getAttr x attrSet); - in - {val=(processPackage attrVal); - attrVal = attrVal; - attrValIsAttrs = builtins.isAttrs attrVal; - }); - success = (builtins.tryEval pair.value.attrVal).success; - in - if success && pair.value.attrValIsAttrs && - pair.value.val != [] then - [{name= x; value=pair.value.val;}] else []) - (builtins.attrNames attrSet); - in - builtins.listToAttrs pairs - else {}; - - # May fail as much as it wishes, we will catch the error. - processPackage = attrSet: - if attrSet ? recurseForDerivations && attrSet.recurseForDerivations then - packagesWithMetaPlatform attrSet - else - if attrSet ? meta && attrSet.meta ? platforms - then attrSet.meta.platforms - else []; - - /* Common platform groups on which to test packages. */ - inherit (pkgs.lib.platforms) linux darwin cygwin allBut all mesaPlatforms; - - /* Platform groups for specific kinds of applications. */ - x11Supported = linux; - gtkSupported = linux; - ghcSupported = linux ++ ["i686-darwin"] ; - -in { +{ tarball = import ./make-tarball.nix; @@ -699,105 +598,5 @@ in { xset = linux; }; -} )) // ( +} )) -/* Test some cross builds to the Sheevaplug */ -let - crossSystem = { - config = "armv5tel-unknown-linux-gnueabi"; - bigEndian = false; - arch = "arm"; - float = "soft"; - withTLS = true; - platform = pkgs.platforms.sheevaplug; - }; - nativePlatforms = linux; -in { - crossSheevaplugLinux = mapTestOnCross crossSystem (rec { - bison = nativePlatforms; - tightvnc = nativePlatforms; - #openoffice = nativePlatforms; - wxGTK = nativePlatforms; - #firefox = nativePlatforms; - xorg = { - #xorgserver = nativePlatforms; - }; - linuxPackages_2_6_32.kernel = linux; - linuxPackages_2_6_33.kernel = linux; - gdbCross = nativePlatforms; - gcc44_real.gcc = linux; - }); -}) // ( - -/* Test some cross builds to the mipsel */ -let - crossSystem = { - config = "mipsel-unknown-linux"; - bigEndian = false; - arch = "mips"; - float = "soft"; - withTLS = true; - platform = { - name = "malta"; - kernelBaseConfig = "malta_defconfig"; - kernelHeadersBaseConfig = "malta_defconfig"; - uboot = null; - kernelArch = "mips"; - kernelAutoModules = false; - kernelTarget = "vmlinux.bin"; - }; - }; - nativePlatforms = linux; -in { - crossMipselLinux = mapTestOnCross crossSystem (rec { - bison = nativePlatforms; - tightvnc = nativePlatforms; - #openoffice = nativePlatforms; - wxGTK = nativePlatforms; - #firefox = nativePlatforms; - xorg = { - #xorgserver = nativePlatforms; - }; - linuxPackages_2_6_32.kernel = linux; - linuxPackages_2_6_33.kernel = linux; - gdbCross = nativePlatforms; - gcc44_real.gcc = linux; - }); -}) // ( - -/* Test some cross builds to the ultrasparc */ -let - crossSystem = { - config = "sparc64-unknown-linux"; - bigEndian = true; - arch = "sparc64"; - float = "hard"; - withTLS = true; - cpu = "ultrasparc"; - platform = { - name = "ultrasparc"; - kernelHeadersBaseConfig = "sparc64_defconfig"; - kernelBaseConfig = "sparc64_defconfig"; - kernelArch = "sparc"; - kernelAutoModules = false; - kernelTarget = "zImage"; - uboot = null; - }; - }; - nativePlatforms = linux; -in { - crossUltraSparcLinux = mapTestOnCross crossSystem (rec { - bison = nativePlatforms; - tightvnc = nativePlatforms; - #openoffice = nativePlatforms; - wxGTK = nativePlatforms; - #firefox = nativePlatforms; - xorg = { - #xorgserver = nativePlatforms; - }; - linuxPackages_2_6_32.kernel = linux; - linuxPackages_2_6_33.kernel = linux; - gdbCross = nativePlatforms; - gcc44_real.gcc = linux; - }); -})