summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/ats2/default.nix4
-rw-r--r--pkgs/development/compilers/dmd/default.nix6
-rw-r--r--pkgs/development/compilers/ghcjs/default.nix17
-rw-r--r--pkgs/development/compilers/icedtea/currency-date-range.patch14
-rw-r--r--pkgs/development/compilers/icedtea/default.nix1
-rw-r--r--pkgs/development/compilers/icedtea/sources.nix18
-rw-r--r--pkgs/development/compilers/openjdk/default.nix1
-rw-r--r--pkgs/development/compilers/openjdk/linux-4.0.patch12
-rw-r--r--pkgs/development/compilers/openjdk/openjdk8.nix28
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk7-linux.nix6
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk7psu-linux.nix6
-rw-r--r--pkgs/development/compilers/oraclejdk/jdk8-linux.nix8
-rw-r--r--pkgs/development/compilers/rdmd/default.nix11
-rw-r--r--pkgs/development/compilers/rustc/1.0.0-alpha.nix17
-rw-r--r--pkgs/development/compilers/rustc/1.0.0-alpha2.nix16
-rw-r--r--pkgs/development/compilers/rustc/1.0.0-beta.nix16
-rw-r--r--pkgs/development/compilers/rustc/head.nix18
-rw-r--r--pkgs/development/compilers/rustc/makeRustcDerivation.nix4
-rw-r--r--pkgs/development/compilers/rustc/patches/beta.patch (renamed from pkgs/development/compilers/rustc/patches/alpha2.patch)24
-rw-r--r--pkgs/development/compilers/rustc/patches/hardcode_paths.alpha.patch28
-rw-r--r--pkgs/development/compilers/rustc/patches/head.patch12
-rw-r--r--pkgs/development/compilers/rustc/patches/local_stage0.alpha.patch16
-rw-r--r--pkgs/development/compilers/squeak/default.nix46
23 files changed, 147 insertions, 182 deletions
diff --git a/pkgs/development/compilers/ats2/default.nix b/pkgs/development/compilers/ats2/default.nix
index 43ac75271be..304d5c284ae 100644
--- a/pkgs/development/compilers/ats2/default.nix
+++ b/pkgs/development/compilers/ats2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "ats2-${version}";
-  version = "0.1.9";
+  version = "0.1.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
-    sha256 = "0zcki97zj9r1dvlfriwfckp9b9z7iavw09q21v6i5ld90hw9588q";
+    sha256 = "1dy2f7lxfwcmrk753midr75cy8xs6pqnmqmj9xj0ch479q4pkpsv";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index c48d74249e1..068b29d47ce 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, unzip, curl }:
 
 stdenv.mkDerivation {
-  name = "dmd-2.066.1";
+  name = "dmd-2.067.0";
 
   src = fetchurl {
-    url = http://downloads.dlang.org/releases/2014/dmd.2.066.1.zip;
-    sha256 = "1qifwgrl6h232zsnvcx3kmb5d0fsy7j9zv17r3b4vln7x5rvzc66";
+    url = http://downloads.dlang.org/releases/2015/dmd.2.067.0.zip;
+    sha256 = "0b1b65694846ef3430de1de341c8cf353151a1a39656e6a1065fe56bc90fb60b";
   };
 
   buildInputs = [ unzip curl ];
diff --git a/pkgs/development/compilers/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix
index d04bd842bf6..8206bb19e4f 100644
--- a/pkgs/development/compilers/ghcjs/default.nix
+++ b/pkgs/development/compilers/ghcjs/default.nix
@@ -39,11 +39,14 @@
 }:
 let
   version = "0.1.0";
-  libDir = "share/ghcjs/${pkgs.stdenv.system}-${version}-${ghc.version}/ghcjs";
+  ghcArch = if pkgs.stdenv.system == "i686-linux"
+    then "i386-linux"
+    else pkgs.stdenv.system;
+  libDir = "share/ghcjs/${ghcArch}-${version}-${ghc.version}/ghcjs";
   ghcjsBoot = fetchgit {
     url = git://github.com/ghcjs/ghcjs-boot.git;
-    rev = "8cd6144870470258fb037b3e04a0a2a98c2b6551"; # 7.10 branch
-    sha256 = "16cbncx179n5khf8hkj9r221wf73rc8isffk8rv3n9psshv1jiji";
+    rev = "ab8765edcb507b8b810e3c324fd5bd5af2b69d8f"; # 7.10 branch
+    sha256 = "63b69a1d131cf3c7088e0f28d14750c81361dcc276fa113ad80dcccf73df5343";
     fetchSubmodules = true;
   };
   shims = fetchgit {
@@ -56,8 +59,8 @@ in mkDerivation (rec {
   inherit version;
   src = fetchgit {
     url = git://github.com/ghcjs/ghcjs.git;
-    rev = "35a59743c4027f26a227635cb24a6246bd851f8d"; # master branch
-    sha256 = "107sh36ji3psdl3py84vxgqbywjyzglj3p0akzpvcmbarxwfr1mw";
+    rev = "64c3768186d73d8c185b42d4d14dfb943919ee56"; # master branch
+    sha256 = "1w7rwcqzihg6h2j0khar7kjn8vdjg9ngjk6bndpiqcgf3kwfmvhf";
   };
   isLibrary = true;
   isExecutable = true;
@@ -122,7 +125,5 @@ in mkDerivation (rec {
   description = "GHCJS is a Haskell to JavaScript compiler that uses the GHC API";
   license = stdenv.lib.licenses.bsd3;
   platforms = ghc.meta.platforms;
-  maintainers = with stdenv.lib.maintainers; [
-    jwiegley cstrahan
-  ];
+  maintainers = with stdenv.lib.maintainers; [ jwiegley cstrahan ];
 })
diff --git a/pkgs/development/compilers/icedtea/currency-date-range.patch b/pkgs/development/compilers/icedtea/currency-date-range.patch
deleted file mode 100644
index b7a2486b12c..00000000000
--- a/pkgs/development/compilers/icedtea/currency-date-range.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -Naur openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
---- openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java
-+++ openjdk/jdk/make/tools/src/build/tools/generatecurrencydata/GenerateCurrencyData.java	2014-12-30 10:15:50.327905933 -0430
-@@ -281,8 +281,8 @@
-             checkCurrencyCode(newCurrency);
-             String timeString = currencyInfo.substring(4, length - 4);
-             long time = format.parse(timeString).getTime();
--            if (Math.abs(time - System.currentTimeMillis()) > ((long) 10) * 365 * 24 * 60 * 60 * 1000) {
--                throw new RuntimeException("time is more than 10 years from present: " + time);
-+            if (Math.abs(time - System.currentTimeMillis()) > ((long) 20) * 365 * 24 * 60 * 60 * 1000) {
-+                throw new RuntimeException("time is more than 20 years from present: " + time);
-             }
-             specialCaseCutOverTimes[specialCaseCount] = time;
-             specialCaseOldCurrencies[specialCaseCount] = oldCurrency;
diff --git a/pkgs/development/compilers/icedtea/default.nix b/pkgs/development/compilers/icedtea/default.nix
index 87f42c9aa31..5e008821d95 100644
--- a/pkgs/development/compilers/icedtea/default.nix
+++ b/pkgs/development/compilers/icedtea/default.nix
@@ -78,7 +78,6 @@ let
 
       patch -p0 < ${./cppflags-include-fix.patch}
       patch -p0 < ${./fix-java-home.patch}
-      patch -p0 < ${./currency-date-range.patch}
     '';
 
     NIX_NO_SELF_RPATH = true;
diff --git a/pkgs/development/compilers/icedtea/sources.nix b/pkgs/development/compilers/icedtea/sources.nix
index 12cd498042c..80d96b4660a 100644
--- a/pkgs/development/compilers/icedtea/sources.nix
+++ b/pkgs/development/compilers/icedtea/sources.nix
@@ -1,47 +1,47 @@
 # This file is autogenerated from update.py in the same directory.
 {
   icedtea7 = rec {
-    version = "2.5.4";
+    version = "2.5.5";
 
     url = "http://icedtea.wildebeest.org/download/source/icedtea-${version}.tar.xz";
-    sha256 = "1npz2p11i4xy4732rxs8wv209iap0m3m24w3vkh9kj0p4k2gal0v";
+    sha256 = "1irxk2ndwsfk4c1zbzb5h3rpwv2bc9bhfjvz6p4dws5476vsxrq9";
 
     common_url = "http://icedtea.classpath.org/download/drops/icedtea7/${version}";
 
     bundles = {
       openjdk = rec {
         url = "${common_url}/openjdk.tar.bz2";
-        sha256 = "88c92a3cab37446352086876771733229b1602d4f79ef68629a151180652e1f1";
+        sha256 = "5301baacfb6b4ee28a3469b8429a0017898615532f727bb50d94777682c5fd0d";
       };
 
       corba = rec {
         url = "${common_url}/corba.tar.bz2";
-        sha256 = "7411fe2df795981124ae2e4da0ddb7d98db0a94c9399a12876be03e7177eaa0b";
+        sha256 = "f0576599b474f56e58068071242cedbbf2f181b58c9010b614c9096be764ac51";
       };
 
       jaxp = rec {
         url = "${common_url}/jaxp.tar.bz2";
-        sha256 = "84623e50b69710d12209fc761a49953c78f1a664ff54e022a77e35e25489f2f3";
+        sha256 = "293218d595763f7e02a91ea88860e5314e42330cbc21b73dc5de32e7e26fd256";
       };
 
       jaxws = rec {
         url = "${common_url}/jaxws.tar.bz2";
-        sha256 = "4bd38a8121d85c422b425177ce648afdee9da18812c91c5b74939c58db33ab4b";
+        sha256 = "76d6d0670ede806b01d39e07c644e423a50984f1cf0ec560afa23f0fedf575be";
       };
 
       jdk = rec {
         url = "${common_url}/jdk.tar.bz2";
-        sha256 = "e99b65baf66d8818e3c8fd31d71fbad4ad0ceb0b7fa4c2e0607eca3a40f2ba09";
+        sha256 = "c1bc0d25457ccf40fcaeb5311052f6d2fbab8ef316b0381995835827711da483";
       };
 
       langtools = rec {
         url = "${common_url}/langtools.tar.bz2";
-        sha256 = "4fd76cbdf18174128863514b4d3997cb623368697bf4f5af6d079dbbcd7b378a";
+        sha256 = "71b269ea930da36d751c6183816ef53a65c0587b7cf0195f87759b4c02c3b660";
       };
 
       hotspot = rec {
         url = "${common_url}/hotspot.tar.bz2";
-        sha256 = "4825f8543aa0c065530b05b0a95915a44eea153bbb696d2ffc4b50a398813e34";
+        sha256 = "d724a9749f51a3c66351ad8a27bc4570640720eace33cd03f1a52e2e45731dfb";
       };
     };
   };
diff --git a/pkgs/development/compilers/openjdk/default.nix b/pkgs/development/compilers/openjdk/default.nix
index 8ba2b3a379f..ec095bb4efa 100644
--- a/pkgs/development/compilers/openjdk/default.nix
+++ b/pkgs/development/compilers/openjdk/default.nix
@@ -65,6 +65,7 @@ let
       ./paxctl.patch
       ./read-truststore-from-env.patch
       ./currency-date-range.patch
+      ./linux-4.0.patch
     ];
 
     NIX_NO_SELF_RPATH = true;
diff --git a/pkgs/development/compilers/openjdk/linux-4.0.patch b/pkgs/development/compilers/openjdk/linux-4.0.patch
new file mode 100644
index 00000000000..c3d7cf8b6ca
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/linux-4.0.patch
@@ -0,0 +1,12 @@
+diff -Naur openjdk-7u65-b32/hotspot/make/linux/Makefile openjdk-7u65-b32-patch/hotspot/make/linux/Makefile
+--- openjdk-7u65-b32/hotspot/make/linux/Makefile	2014-07-17 03:08:38.000000000 -0700
++++ openjdk-7u65-b32-patch/hotspot/make/linux/Makefile	2015-04-21 05:33:12.170190385 -0700
+@@ -231,7 +231,7 @@
+ # Solaris 2.5.1, 2.6).
+ # Disable this check by setting DISABLE_HOTSPOT_OS_VERSION_CHECK=ok.
+ 
+-SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3%
++SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
+ OS_VERSION := $(shell uname -r)
+ EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION))
+ 
diff --git a/pkgs/development/compilers/openjdk/openjdk8.nix b/pkgs/development/compilers/openjdk/openjdk8.nix
index d7bcabd0a78..44e93474163 100644
--- a/pkgs/development/compilers/openjdk/openjdk8.nix
+++ b/pkgs/development/compilers/openjdk/openjdk8.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype, alsaLib, openjdk, cacert, perl } :
+{ stdenv, fetchurl, cpio, file, which, unzip, zip, xorg, cups, freetype, alsaLib, openjdk, cacert, perl, liberation_ttf, fontconfig } :
 let
   update = "40";
   build = "25";
@@ -39,12 +39,12 @@ let
           };
   openjdk8 = stdenv.mkDerivation {
   name = "openjdk-8u${update}b${build}";
-  srcs = [jdk8 langtools hotspot corba jdk jaxws jaxp nashorn];
+  srcs = [ jdk8 langtools hotspot corba jdk jaxws jaxp nashorn ];
   outputs = [ "out" "jre" ];
   buildInputs = [ cpio file which unzip zip
                   xorg.libX11 xorg.libXt xorg.libXext xorg.libXrender xorg.libXtst
                   xorg.libXi xorg.libXinerama xorg.libXcursor xorg.lndir
-                  cups freetype alsaLib openjdk perl ];
+                  cups freetype alsaLib openjdk perl liberation_ttf fontconfig ];
   setSourceRoot = ''
     sourceRoot="jdk8u${update}-jdk8u${update}-b${build}";
   '';
@@ -77,18 +77,19 @@ let
     "--with-build-number=b${build}"
     "--with-milestone=fcs"
   ];
+  NIX_LDFLAGS= "-lfontconfig";
   buildFlags = "DEBUG_BINARIES=true all";
   installPhase = ''
     mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk
 
-    cp -av build/*/images/j2sdk-image/* $out/lib/openjdk
+    cp -av build"/"*/images/j2sdk-image"/"* $out/lib/openjdk
 
     # Move some stuff to top-level.
     mv $out/lib/openjdk/include $out/include
     mv $out/lib/openjdk/man $out/share/man
 
     # jni.h expects jni_md.h to be in the header search path.
-    ln -s $out/include/linux/*_md.h $out/include/
+    ln -s $out/include/linux"/"*_md.h $out/include/
 
     # Remove some broken manpages.
     rm -rf $out/share/man/ja*
@@ -96,16 +97,18 @@ let
     # Remove crap from the installation.
     rm -rf $out/lib/openjdk/demo $out/lib/openjdk/sample
 
-    # Move the JRE to a separate output.
+    # Move the JRE to a separate output and setup fallback fonts
     mv $out/lib/openjdk/jre $jre/lib/openjdk/
     mkdir $out/lib/openjdk/jre
+    mkdir -p $jre/lib/openjdk/jre/lib/fonts/fallback
+    lndir ${liberation_ttf}/share/fonts/truetype $jre/lib/openjdk/jre/lib/fonts/fallback
     lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre
 
     rm -rf $out/lib/openjdk/jre/bina
     ln -s $out/lib/openjdk/bin $out/lib/openjdk/jre/bin
 
     # Set PaX markings
-    exes=$(file $out/lib/openjdk/bin/* $jre/lib/openjdk/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+    exes=$(file $out/lib/openjdk/bin"/"* $jre/lib/openjdk/jre/bin"/"* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
     echo "to mark: *$exes*"
     for file in $exes; do
       echo "marking *$file*"
@@ -128,15 +131,16 @@ let
 
     ln -s $out/lib/openjdk/bin $out/bin
     ln -s $jre/lib/openjdk/jre/bin $jre/bin
+
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://openjdk.java.net/;
-    license = stdenv.lib.licenses.gpl2;
+    license = licenses.gpl2;
     description = "The open-source Java Development Kit";
-    maintainers = [ stdenv.lib.maintainers.cocreature ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ edwtjo ];
+    platforms = platforms.linux;
   };
-  
+
   passthru.home = "${openjdk8}/lib/openjdk";
 }; in openjdk8
diff --git a/pkgs/development/compilers/oraclejdk/jdk7-linux.nix b/pkgs/development/compilers/oraclejdk/jdk7-linux.nix
index eb40cff689a..730b3b569c6 100644
--- a/pkgs/development/compilers/oraclejdk/jdk7-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk7-linux.nix
@@ -1,9 +1,9 @@
 import ./jdk-linux-base.nix {
   productVersion = "7";
-  patchVersion = "75";
+  patchVersion = "79";
   downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
-  sha256_i686 = "173ppi5d90hllqgys90wlv596bpj2iw8gsbsr6pk7xvd4l1wdhrw";
-  sha256_x86_64 = "040n50nglr6rcli2pz5rd503c2qqdqqbqynp6hzc4kakkchmj2a6";
+  sha256_i686 = "1hv9bmj08y8gavhhkip5w5dg96b1dy4sc2cidpjcbwpb2mzh5lhs";
+  sha256_x86_64 = "140xl5kfdrlmh8wh2x3j23x53dbil8qxsvc7gf3138mz4805vmr9";
   jceName = "UnlimitedJCEPolicyJDK7.zip";
   jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
   sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
diff --git a/pkgs/development/compilers/oraclejdk/jdk7psu-linux.nix b/pkgs/development/compilers/oraclejdk/jdk7psu-linux.nix
index 929ff59717d..311f07e8e45 100644
--- a/pkgs/development/compilers/oraclejdk/jdk7psu-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk7psu-linux.nix
@@ -1,9 +1,9 @@
 import ./jdk-linux-base.nix {
   productVersion = "7";
-  patchVersion = "76";
+  patchVersion = "80";
   downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
-  sha256_i686 = "0558p5garc4b5g7h11dkzn161kpk84az5ad1q5hhsblbx02aqff3";
-  sha256_x86_64 = "130ckrv846amyfzbnnd6skljkznc457yky7d6ajaw5ndsbzg93yf";
+  sha256_i686 = "1fjpm8pa74c4vgv93lnky6pd3igln56yxdn4kbhgcg12lwc17vcx";
+  sha256_x86_64 = "08wn62sammvsvlqac0n8grrikl0ykh9ikqdy823i2mcnccqsgnds";
   jceName = "UnlimitedJCEPolicyJDK7.zip";
   jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
   sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
diff --git a/pkgs/development/compilers/oraclejdk/jdk8-linux.nix b/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
index ea1c01ec5e5..014ed0db7c2 100644
--- a/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
+++ b/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
@@ -1,10 +1,10 @@
 import ./jdk-linux-base.nix {
   productVersion = "8";
-  patchVersion = "40";
+  patchVersion = "45";
   downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
-  sha256_i686 = "1bfabnmbar0kfx3i37wnxh97j7whkib8m6wqxrb1d9zf6k13bw50";
-  sha256_x86_64 = "0nfm4xqd57s8dmkgd0jsrhys8dhfw0fx5d57mq70ramq9dl2jq66";
+  sha256_i686 = "1y1zymydd1azv14r0hh12zjr8k64wa8wfdbz8sn1css84aqwl87d";
+  sha256_x86_64 = "0v9ilahx03isxdzh4ryv1bqmmzppckickz22hvgzs785769cm67j";
   jceName = "jce_policy-8.zip";
   jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
-  sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59";
+  sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
 }
diff --git a/pkgs/development/compilers/rdmd/default.nix b/pkgs/development/compilers/rdmd/default.nix
index f70b8f448b4..38473897698 100644
--- a/pkgs/development/compilers/rdmd/default.nix
+++ b/pkgs/development/compilers/rdmd/default.nix
@@ -1,14 +1,13 @@
-{stdenv, lib, fetchgit, dmd}:
+{stdenv, lib, fetchurl, dmd}:
 
 stdenv.mkDerivation {
-  name = "rdmd-20141113";
+  name = "rdmd-2.067.0";
 
   buildInputs = [ dmd ];
 
-  src = fetchgit {
-    url = git://github.com/D-Programming-Language/tools.git;
-    rev = "f496c68ee4e776597bd7382aa47f05da698a69e";
-    sha256 = "0vbhmz8nbh8ayml4vad0239kfg982vqfyqqrjv6wrlnjah97n5ms";
+  src = fetchurl {
+    url = "https://github.com/D-Programming-Language/tools/archive/v2.067.0.tar.gz";
+    sha256 = "2702ecda0427c675084d9b688449bc8c8392fd73e30257d79e2488640d5a9982";
   };
 
   buildPhase = ''
diff --git a/pkgs/development/compilers/rustc/1.0.0-alpha.nix b/pkgs/development/compilers/rustc/1.0.0-alpha.nix
deleted file mode 100644
index 7a2e485c9c6..00000000000
--- a/pkgs/development/compilers/rustc/1.0.0-alpha.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, callPackage }:
-callPackage ./makeRustcDerivation.nix {
-  shortVersion = "1.0.0-alpha";
-  isRelease = true;
-  srcSha = "0p62gx3s087n09d2v3l9iyfx5cmsa1x91n4ysixcb7w3drr8a8is";
-  snapshotHashLinux686 = "d8b73fc9aa3ad72ce1408a41e35d78dba10eb4d4";
-  snapshotHashLinux64 = "697880d3640e981bbbf23284363e8e9a158b588d";
-  snapshotHashDarwin686 = "a73b1fc03e8cac747aab0aa186292bb4332a7a98";
-  snapshotHashDarwin64 = "e4ae2670ea4ba5c2e5b4245409c9cab45c9eeb5b";
-  snapshotDate = "2015-01-07";
-  snapshotRev = "9e4e524";
-  patches = [
-    ./patches/hardcode_paths.alpha.patch
-    ./patches/local_stage0.alpha.patch
-    ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
-}
-
diff --git a/pkgs/development/compilers/rustc/1.0.0-alpha2.nix b/pkgs/development/compilers/rustc/1.0.0-alpha2.nix
deleted file mode 100644
index 94bdd995592..00000000000
--- a/pkgs/development/compilers/rustc/1.0.0-alpha2.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ stdenv, callPackage }:
-callPackage ./makeRustcDerivation.nix {
-  shortVersion = "1.0.0-alpha.2";
-  isRelease = true;
-  srcSha = "1j2n34w0hdz7jrl100c9q9hl80l8nsc3xwnzizv9sh4gx52vjcd9";
-  snapshotHashLinux686 = "191ed5ec4f17e32d36abeade55a1c6085e51245c";
-  snapshotHashLinux64 = "acec86045632f4f3f085c072ba696f889906dffe";
-  snapshotHashDarwin686 = "9d9e622584bfa318f32bcb5b9ce6a365febff595";
-  snapshotHashDarwin64 = "e96c1e9860b186507cc75c186d1b96d44df12292";
-  snapshotDate = "2015-02-17";
-  snapshotRev = "f1bb6c2";
-  patches = [
-    ./patches/alpha2.patch
-    ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
-}
-
diff --git a/pkgs/development/compilers/rustc/1.0.0-beta.nix b/pkgs/development/compilers/rustc/1.0.0-beta.nix
new file mode 100644
index 00000000000..93359fba9f7
--- /dev/null
+++ b/pkgs/development/compilers/rustc/1.0.0-beta.nix
@@ -0,0 +1,16 @@
+{ stdenv, callPackage }:
+callPackage ./makeRustcDerivation.nix {
+  shortVersion = "1.0.0-beta.2";
+  isRelease = true;
+  srcSha = "0wcpp6fg7cc75bj5b6dcz5dhgps6xw09n75qiapmd12qxjzj17wn";
+  snapshotHashLinux686 = "1ef82402ed16f5a6d2f87a9a62eaa83170e249ec";
+  snapshotHashLinux64 = "ef2154372e97a3cb687897d027fd51c8f2c5f349";
+  snapshotHashDarwin686 = "0310b1a970f2da7e61770fd14dbbbdca3b518234";
+  snapshotHashDarwin64 = "5f35d9c920b8083a7420ef8cf5b00d5ef3085dfa";
+  snapshotDate = "2015-03-27";
+  snapshotRev = "5520801";
+  patches = [
+    ./patches/beta.patch
+    ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
+  configureFlags = [ "--release-channel=beta" ];
+}
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix
index 2d450388669..99012ba6d94 100644
--- a/pkgs/development/compilers/rustc/head.nix
+++ b/pkgs/development/compilers/rustc/head.nix
@@ -2,15 +2,15 @@
 callPackage ./makeRustcDerivation.nix {
   shortVersion = "1.0.0-dev";
   isRelease = false;
-  # src rev for master on 2015/03/09
-  srcRev = "91bdf23f504f79ed59617cde3dfebd3d5e39a476";
-  srcSha = "1s1v1q630d88idz331n4m0c3ninzipmvfzmkvdaqqm28wsn69xx7";
-  snapshotHashLinux686 = "50a47ef247610fb089d2c4f24e4b641eb0ba4afb";
-  snapshotHashLinux64 = "ccb20709b3c984f960ddde996451be8ce2268d7c";
-  snapshotHashDarwin686 = "ad263bdeadcf9bf1889426e0c1391a7cf277364e";
-  snapshotHashDarwin64 = "01c8275828042264206b7acd8e86dc719a2f27aa";
-  snapshotDate = "2015-03-07";
-  snapshotRev = "270a677";
+  # src rev for master on 2015/04/13
+  srcRev = "0cf99c3e06e84d20d68da649c888d63c72f33971";
+  srcSha = "0brnzsbxmidjnmvi36sz582k3kw6wk813y2y837zpmyxg9fjah0l";
+  snapshotHashLinux686 = "1ef82402ed16f5a6d2f87a9a62eaa83170e249ec";
+  snapshotHashLinux64 = "ef2154372e97a3cb687897d027fd51c8f2c5f349";
+  snapshotHashDarwin686 = "0310b1a970f2da7e61770fd14dbbbdca3b518234";
+  snapshotHashDarwin64 = "5f35d9c920b8083a7420ef8cf5b00d5ef3085dfa";
+  snapshotDate = "2015-03-27";
+  snapshotRev = "5520801";
   patches = [
     ./patches/head.patch
   ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
diff --git a/pkgs/development/compilers/rustc/makeRustcDerivation.nix b/pkgs/development/compilers/rustc/makeRustcDerivation.nix
index 913e65de59a..ae3981f1add 100644
--- a/pkgs/development/compilers/rustc/makeRustcDerivation.nix
+++ b/pkgs/development/compilers/rustc/makeRustcDerivation.nix
@@ -6,6 +6,7 @@
 , snapshotHashLinux686, snapshotHashLinux64
 , snapshotHashDarwin686, snapshotHashDarwin64
 , snapshotDate, snapshotRev
+, configureFlags ? []
 
 , patches
 }:
@@ -113,7 +114,8 @@ stdenv.mkDerivation {
     '' else "");
   };
 
-  configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ]
+  configureFlags = configureFlags
+                ++ [ "--enable-local-rust" "--local-rust-root=$snapshot" ]
                 ++ stdenv.lib.optional (stdenv.cc ? clang) "--enable-clang";
 
   inherit patches;
diff --git a/pkgs/development/compilers/rustc/patches/alpha2.patch b/pkgs/development/compilers/rustc/patches/beta.patch
index 8165a42cf85..cffc773dd3e 100644
--- a/pkgs/development/compilers/rustc/patches/alpha2.patch
+++ b/pkgs/development/compilers/rustc/patches/beta.patch
@@ -1,5 +1,5 @@
 diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh
-index b506aff..b4b346b 100755
+index ca59b1c..65ee7bf 100755
 --- a/src/etc/local_stage0.sh
 +++ b/src/etc/local_stage0.sh
 @@ -50,11 +50,6 @@ if [ -z $TARG_DIR ]; then
@@ -15,11 +15,11 @@ index b506aff..b4b346b 100755
  # do not fail if one of the above fails, as all we need is a working rustc!
  exit 0
 diff --git a/src/librustc_back/archive.rs b/src/librustc_back/archive.rs
-index c45ee25..0f91672 100644
+index ed44bf8..2b84627 100644
 --- a/src/librustc_back/archive.rs
 +++ b/src/librustc_back/archive.rs
-@@ -54,7 +54,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option<String>,
-           paths: &[&Path]) -> ProcessOutput {
+@@ -57,7 +57,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option<String>,
+           paths: &[&Path]) -> Output {
      let ar = match *maybe_ar_prog {
          Some(ref ar) => &ar[..],
 -        None => "ar"
@@ -28,10 +28,10 @@ index c45ee25..0f91672 100644
      let mut cmd = Command::new(ar);
  
 diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs
-index ef849bb..e090b99 100644
+index 3087a8e..578448f 100644
 --- a/src/librustc_trans/back/link.rs
 +++ b/src/librustc_trans/back/link.rs
-@@ -350,8 +350,8 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri
+@@ -352,7 +352,7 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri
  
  pub fn get_cc_prog(sess: &Session) -> String {
      match sess.opts.cg.linker {
@@ -41,15 +41,3 @@ index ef849bb..e090b99 100644
 +        None => "@ccPath@".to_string(),
      }
  }
- 
-diff --git a/src/test/run-pass/issue-20797.rs b/src/test/run-pass/issue-20797.rs
-index 049e08d..30b9d2a 100644
---- a/src/test/run-pass/issue-20797.rs
-+++ b/src/test/run-pass/issue-20797.rs
-@@ -90,5 +90,5 @@ impl<S: Strategy> Iterator for Subpaths<S> {
- }
- 
- fn main() {
--  let mut walker: Subpaths<Recursive> = Subpaths::walk(&Path::new("/home")).unwrap();
-+  let mut walker: Subpaths<Recursive> = Subpaths::walk(&Path::new("/tmp")).unwrap();
- }
diff --git a/pkgs/development/compilers/rustc/patches/hardcode_paths.alpha.patch b/pkgs/development/compilers/rustc/patches/hardcode_paths.alpha.patch
deleted file mode 100644
index 2a9cb09dcbd..00000000000
--- a/pkgs/development/compilers/rustc/patches/hardcode_paths.alpha.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/src/librustc_back/archive.rs b/src/librustc_back/archive.rs
-index 7ea192b..cd5d01b 100644
---- a/src/librustc_back/archive.rs
-+++ b/src/librustc_back/archive.rs
-@@ -54,7 +54,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option<String>,
-           paths: &[&Path]) -> ProcessOutput {
-     let ar = match *maybe_ar_prog {
-         Some(ref ar) => &ar[],
--        None => "ar"
-+        None => "@arPath@"
-     };
-     let mut cmd = Command::new(ar);
- 
-diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs
-index dacf620..815ce60 100644
---- a/src/librustc_trans/back/link.rs
-+++ b/src/librustc_trans/back/link.rs
-@@ -348,8 +348,8 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri
- 
- pub fn get_cc_prog(sess: &Session) -> String {
-     match sess.opts.cg.linker {
--        Some(ref linker) => return linker.to_string(),
--        None => sess.target.target.options.linker.clone(),
-+        Some(ref linker) => linker.to_string(),
-+        None => "@ccPath@".to_string(),
-     }
- }
- 
diff --git a/pkgs/development/compilers/rustc/patches/head.patch b/pkgs/development/compilers/rustc/patches/head.patch
index f82f85fb162..3cbf8717cd1 100644
--- a/pkgs/development/compilers/rustc/patches/head.patch
+++ b/pkgs/development/compilers/rustc/patches/head.patch
@@ -41,15 +41,3 @@ index 3087a8e..578448f 100644
 +        None => "@ccPath@".to_string(),
      }
  }
- 
-diff --git a/src/test/run-pass/issue-20797.rs b/src/test/run-pass/issue-20797.rs
-index 049e08d..30b9d2a 100644
---- a/src/test/run-pass/issue-20797.rs
-+++ b/src/test/run-pass/issue-20797.rs
-@@ -90,5 +90,5 @@ impl<S: Strategy> Iterator for Subpaths<S> {
- }
- 
- fn main() {
--  let mut walker: Subpaths<Recursive> = Subpaths::walk(&Path::new("/home")).unwrap();
-+  let mut walker: Subpaths<Recursive> = Subpaths::walk(&Path::new("/tmp")).unwrap();
- }
diff --git a/pkgs/development/compilers/rustc/patches/local_stage0.alpha.patch b/pkgs/development/compilers/rustc/patches/local_stage0.alpha.patch
deleted file mode 100644
index 2f38d7c1757..00000000000
--- a/pkgs/development/compilers/rustc/patches/local_stage0.alpha.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh
-index e78f231..6b6773b 100755
---- a/src/etc/local_stage0.sh
-+++ b/src/etc/local_stage0.sh
-@@ -53,11 +53,6 @@
- fi
- 
- cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/
--cp ${PREFIX}/${LIB_DIR}/${RUSTLIBDIR}/${TARG_DIR}/${LIB_DIR}/* ${TARG_DIR}/stage0/${LIB_DIR}/
--cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}extra*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
--cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
--cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
--cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
- 
- # do not fail if one of the above fails, as all we need is a working rustc!
- exit 0
diff --git a/pkgs/development/compilers/squeak/default.nix b/pkgs/development/compilers/squeak/default.nix
new file mode 100644
index 00000000000..4a6408d66d1
--- /dev/null
+++ b/pkgs/development/compilers/squeak/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, cmake, coreutils, dbus, freetype, glib, gnused
+, libpthreadstubs, pango, pkgconfig, pulseaudio, which }:
+
+let version = "4.10.2.2614"; in
+stdenv.mkDerivation rec {
+  name = "squeak-${version}";
+
+  src = fetchurl {
+    sha256 = "0bpwbnpy2sb4gylchfx50sha70z36bwgdxraym4vrr93l8pd3dix";
+    url = "http://squeakvm.org/unix/release/Squeak-${version}-src.tar.gz";
+  };
+
+  meta = with stdenv.lib; {
+    inherit version;
+    description = "Smalltalk programming language and environment";
+    longDescription = ''
+      Squeak is a full-featured implementation of the Smalltalk programming
+      language and environment based on (and largely compatible with) the
+      original Smalltalk-80 system. Squeak has very powerful 2- and 3-D
+      graphics, sound, video, MIDI, animation and other multimedia
+      capabilities. It also includes a customisable framework for creating
+      dynamic HTTP servers and interactively extensible Web sites.
+    '';
+    homepage = http://squeakvm.org/;
+    downloadPage = http://squeakvm.org/unix/index.html;
+    license = with licenses; [ asl20 mit ];
+    platforms = with platforms; linux;
+    maintainers = with maintainers; [ nckx ];
+  };
+
+  buildInputs = [ cmake coreutils dbus freetype glib gnused libpthreadstubs
+    pango pkgconfig pulseaudio which ];
+
+  postPatch = ''
+    for i in squeak.in squeak.sh.in; do
+      substituteInPlace unix/cmake/$i --replace "PATH=" \
+        "PATH=${coreutils}/bin:${gnused}/bin:${which}/bin #"
+    done
+  '';
+
+  configurePhase = ''
+    unix/cmake/configure --prefix=$out --enable-mpg-{mmx,pthreads}
+  '';
+
+  enableParallelBuilding = true;
+}