about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/audio/a2jmidid/default.nix4
-rw-r--r--pkgs/applications/audio/ardour/default.nix4
-rw-r--r--pkgs/applications/audio/bristol/default.nix4
-rw-r--r--pkgs/applications/audio/calf/default.nix4
-rw-r--r--pkgs/applications/audio/distrho/default.nix4
-rw-r--r--pkgs/applications/audio/drumkv1/default.nix4
-rw-r--r--pkgs/applications/audio/espeak/default.nix14
-rw-r--r--pkgs/applications/audio/espeak/edit.nix52
-rw-r--r--pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch15
-rw-r--r--pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch27
-rw-r--r--pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch26
-rw-r--r--pkgs/applications/audio/fluidsynth/default.nix4
-rw-r--r--pkgs/applications/audio/guitarix/default.nix4
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix4
-rw-r--r--pkgs/applications/audio/ingen/default.nix4
-rw-r--r--pkgs/applications/audio/jack-capture/default.nix4
-rw-r--r--pkgs/applications/audio/jack-oscrolloscope/default.nix4
-rw-r--r--pkgs/applications/audio/jack-rack/default.nix4
-rw-r--r--pkgs/applications/audio/jackmeter/default.nix4
-rw-r--r--pkgs/applications/audio/jalv/default.nix4
-rw-r--r--pkgs/applications/audio/lash/default.nix4
-rw-r--r--pkgs/applications/audio/linuxsampler/default.nix4
-rw-r--r--pkgs/applications/audio/lmms/default.nix4
-rw-r--r--pkgs/applications/audio/mhwaveedit/default.nix4
-rw-r--r--pkgs/applications/audio/milkytracker/default.nix4
-rw-r--r--pkgs/applications/audio/moc/default.nix10
-rwxr-xr-xpkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--pkgs/applications/audio/petrifoo/default.nix4
-rw-r--r--pkgs/applications/audio/projectm/default.nix4
-rw-r--r--pkgs/applications/audio/puredata/default.nix4
-rw-r--r--pkgs/applications/audio/qjackctl/default.nix8
-rw-r--r--pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--pkgs/applications/audio/rakarrack/default.nix4
-rw-r--r--pkgs/applications/audio/samplv1/default.nix4
-rw-r--r--pkgs/applications/audio/seq24/default.nix4
-rw-r--r--pkgs/applications/audio/setbfree/default.nix4
-rw-r--r--pkgs/applications/audio/sonic-visualiser/default.nix4
-rw-r--r--pkgs/applications/audio/synthv1/default.nix4
-rwxr-xr-xpkgs/applications/audio/vimpc/default.nix34
-rw-r--r--pkgs/applications/audio/vmpk/default.nix4
-rw-r--r--pkgs/applications/audio/xsynth-dssi/default.nix4
-rw-r--r--pkgs/applications/audio/yoshimi/default.nix4
-rw-r--r--pkgs/applications/audio/zynaddsubfx/default.nix4
-rw-r--r--pkgs/applications/editors/emacs-23/builder.sh34
-rw-r--r--pkgs/applications/editors/emacs-23/default.nix72
-rw-r--r--pkgs/applications/editors/emacs-modes/bbdb/3.nix25
-rw-r--r--pkgs/applications/editors/zed/default.nix75
-rw-r--r--pkgs/applications/inferno/default.nix2
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/hello/ex-2/default.nix3
-rw-r--r--pkgs/applications/misc/makeself/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/firefox/3.6.nix155
-rw-r--r--pkgs/applications/networking/browsers/firefox/default.nix212
-rw-r--r--pkgs/applications/networking/browsers/firefox/disable-reporter.patch20
-rw-r--r--pkgs/applications/networking/browsers/firefox/gcc-4.6.patch13
-rw-r--r--pkgs/applications/networking/browsers/firefox/xpidl.patch11
-rw-r--r--pkgs/applications/networking/browsers/firefox/xulrunner-1.9.2_beta4-mips-bus-error.patch26
-rw-r--r--pkgs/applications/networking/browsers/firefox/xulrunner-chromium-mips.patch207
-rw-r--r--pkgs/applications/networking/browsers/firefox/xulrunner-mips-n32.patch764
-rw-r--r--pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix5
-rw-r--r--pkgs/applications/networking/mumble/default.nix6
-rw-r--r--pkgs/applications/networking/spideroak/default.nix62
-rw-r--r--pkgs/applications/science/biology/arb/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/github-backup/default.nix4
-rw-r--r--pkgs/applications/video/kdenlive/default.nix30
-rw-r--r--pkgs/applications/video/mplayer/default.nix6
-rw-r--r--pkgs/applications/video/mplayer2/default.nix6
-rw-r--r--pkgs/applications/video/mpv/default.nix6
-rw-r--r--pkgs/applications/video/shotcut/CuteLogger.patch13
-rw-r--r--pkgs/applications/video/shotcut/default.nix41
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix4
-rw-r--r--pkgs/applications/video/vlc/default.nix4
74 files changed, 551 insertions, 1596 deletions
diff --git a/pkgs/applications/audio/a2jmidid/default.nix b/pkgs/applications/audio/a2jmidid/default.nix
index c5e35d8867c8..38192311ccfa 100644
--- a/pkgs/applications/audio/a2jmidid/default.nix
+++ b/pkgs/applications/audio/a2jmidid/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, dbus, jackaudio, pkgconfig, python }:
+{ stdenv, fetchurl, alsaLib, dbus, jack2, pkgconfig, python }:
 
 stdenv.mkDerivation rec {
   name = "a2jmidid-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0pzm0qk5ilqhwz74pydg1jwrds27vm47185dakdrxidb5bv3b5ia";
   };
 
-  buildInputs = [ alsaLib dbus jackaudio pkgconfig python ];
+  buildInputs = [ alsaLib dbus jack2 pkgconfig python ];
 
   configurePhase = "python waf configure --prefix=$out";
 
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 88bc7399c65e..afc2e49fc8af 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchgit, alsaLib, aubio, boost, cairomm, curl, fftw
-, fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jackaudio
+, fftwSinglePrec, flac, glibc, glibmm, gtk, gtkmm, jack2
 , libgnomecanvas, libgnomecanvasmm, liblo, libmad, libogg, librdf
 , librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile
 , libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper, pango
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = 
     [ alsaLib aubio boost cairomm curl fftw fftwSinglePrec flac glibc
-      glibmm gtk gtkmm jackaudio libgnomecanvas libgnomecanvasmm liblo
+      glibmm gtk gtkmm jack2 libgnomecanvas libgnomecanvasmm liblo
       libmad libogg librdf librdf_raptor librdf_rasqal libsamplerate
       libsigcxx libsndfile libusb libuuid libxml2 libxslt lilv lv2
       makeWrapper pango perl pkgconfig python serd sord sratom suil
diff --git a/pkgs/applications/audio/bristol/default.nix b/pkgs/applications/audio/bristol/default.nix
index 5eb4f0c4e9f1..b27ac0586025 100644
--- a/pkgs/applications/audio/bristol/default.nix
+++ b/pkgs/applications/audio/bristol/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, jackaudio, pkgconfig, pulseaudio, xlibs }:
+{ stdenv, fetchurl, alsaLib, jack2, pkgconfig, pulseaudio, xlibs }:
 
 stdenv.mkDerivation  rec {
   name = "bristol-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [
-    alsaLib jackaudio pkgconfig pulseaudio xlibs.libX11 xlibs.libXext
+    alsaLib jack2 pkgconfig pulseaudio xlibs.libX11 xlibs.libXext
     xlibs.xproto
   ];
 
diff --git a/pkgs/applications/audio/calf/default.nix b/pkgs/applications/audio/calf/default.nix
index 6ed4b7cce98b..efab9202025d 100644
--- a/pkgs/applications/audio/calf/default.nix
+++ b/pkgs/applications/audio/calf/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cairo, expat, fftwSinglePrec, fluidsynth, glib
-, gtk, jackaudio, ladspaH , libglade, lv2, pkgconfig }:
+, gtk, jack2, ladspaH , libglade, lv2, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "calf-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ 
-    cairo expat fftwSinglePrec fluidsynth glib gtk jackaudio ladspaH
+    cairo expat fftwSinglePrec fluidsynth glib gtk jack2 ladspaH
     libglade lv2 pkgconfig
   ];
 
diff --git a/pkgs/applications/audio/distrho/default.nix b/pkgs/applications/audio/distrho/default.nix
index 809a02e1c7a5..aa3a76c3af13 100644
--- a/pkgs/applications/audio/distrho/default.nix
+++ b/pkgs/applications/audio/distrho/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, alsaLib, fftwSinglePrec, freetype, jackaudio
+{ stdenv, fetchgit, alsaLib, fftwSinglePrec, freetype, jack2
 , libxslt, lv2, pkgconfig, premake3, xlibs }:
 
 let
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    alsaLib fftwSinglePrec freetype jackaudio pkgconfig premake3
+    alsaLib fftwSinglePrec freetype jack2 pkgconfig premake3
     xlibs.libX11 xlibs.libXcomposite xlibs.libXcursor xlibs.libXext
     xlibs.libXinerama xlibs.libXrender
   ];
diff --git a/pkgs/applications/audio/drumkv1/default.nix b/pkgs/applications/audio/drumkv1/default.nix
index ab8027e23711..34950d1a343d 100644
--- a/pkgs/applications/audio/drumkv1/default.nix
+++ b/pkgs/applications/audio/drumkv1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jackaudio, libsndfile, lv2, qt4 }:
+{ stdenv, fetchurl, jack2, libsndfile, lv2, qt4 }:
 
 stdenv.mkDerivation rec {
   name = "drumkv1-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "18rvfgblynlmklk25azmppibn1bdjid97hipa323gnzmxgq0rfjq";
   };
 
-  buildInputs = [ jackaudio libsndfile lv2 qt4 ];
+  buildInputs = [ jack2 libsndfile lv2 qt4 ];
 
   meta = with stdenv.lib; {
     description = "An old-school drum-kit sampler synthesizer with stereo fx";
diff --git a/pkgs/applications/audio/espeak/default.nix b/pkgs/applications/audio/espeak/default.nix
index e1cf5fee1cc7..d47d82497ab6 100644
--- a/pkgs/applications/audio/espeak/default.nix
+++ b/pkgs/applications/audio/espeak/default.nix
@@ -1,10 +1,11 @@
-{stdenv, fetchurl, unzip, portaudio }:
+{ stdenv, fetchurl, unzip, portaudio }:
+
+stdenv.mkDerivation rec {
+  name = "espeak-1.48.04";
 
-stdenv.mkDerivation {
-  name = "espeak-1.46.02";
   src = fetchurl {
-    url = mirror://sourceforge/espeak/espeak-1.46.02-source.zip;
-    sha256 = "1fjlv5fm0gzvr5wzy1dp4nspw04k0bqv3jymha2p2qfjbfifp2zg";
+    url = "mirror://sourceforge/espeak/${name}-source.zip";
+    sha256 = "0n86gwh9pw0jqqpdz7mxggllfr8k0r7pc67ayy7w5z6z79kig6mz";
   };
 
   buildInputs = [ unzip portaudio ];
@@ -21,9 +22,10 @@ stdenv.mkDerivation {
     makeFlags="PREFIX=$out DATADIR=$out/share/espeak-data"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Compact open source software speech synthesizer";
     homepage = http://espeak.sourceforge.net/;
     license = "GPLv3+";
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/espeak/edit.nix b/pkgs/applications/audio/espeak/edit.nix
index 6627c6eb0e52..0e59a42614fd 100644
--- a/pkgs/applications/audio/espeak/edit.nix
+++ b/pkgs/applications/audio/espeak/edit.nix
@@ -1,31 +1,57 @@
-{stdenv, fetchurl, unzip, portaudio, wxGTK}:
+{ stdenv, fetchurl, pkgconfig, unzip, portaudio, wxGTK, sox }:
+
+stdenv.mkDerivation rec {
+  name = "espeakedit-1.48.03";
 
-stdenv.mkDerivation {
-  name = "espeakedit-1.46.02";
   src = fetchurl {
-    url = mirror://sourceforge/espeak/espeakedit-1.46.02.zip;
-    sha256 = "1cc5r89sn8zz7b8wj4grx9xb7aqyi0ybj0li9hpy7hd67r56kqkl";
+    url = "mirror://sourceforge/espeak/${name}.zip";
+    sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
   };
 
-  buildInputs = [ unzip portaudio wxGTK ];
+  buildInputs = [ pkgconfig unzip portaudio wxGTK ];
+
+  # TODO:
+  # Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought
+  # it should use $espeak/share/espeak-data. Have to contact upstream to get
+  # this fixed.
+  #
+  # Workaround:
+  #  cp -r $(nix-build -A espeak)/share/espeak-data ~
+  #  chmod +w ~/espeak-data
+
+  patches = [
+    ./espeakedit-fix-makefile.patch
+    ./espeakedit-configurable-sox-path.patch
+    ./espeakedit-configurable-path-espeak-data.patch
+  ];
 
-  patchPhase = if portaudio.api_version == 19 then ''
+  postPatch = ''
+    # Disable -Wall flag because it's noisy
+    sed -i "s/-Wall//g" src/Makefile
+
+    # Fixup paths (file names from above espeak-configurable* patches)
+    for file in src/compiledata.cpp src/readclause.cpp src/speech.h; do
+        sed -e "s|@sox@|${sox}/bin/sox|" \
+            -e "s|@prefix@|$out|" \
+            -i "$file"
+    done
+  '' + stdenv.lib.optionalString (portaudio.api_version == 19) ''
     cp src/portaudio19.h src/portaudio.h
-  '' else "";
+  '';
 
   buildPhase = ''
-    cd src
-    gcc -o espeakedit *.cpp `wx-config --cxxflags --libs`
+    make -C src
   '';
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp espeakedit $out/bin
+    mkdir -p "$out/bin"
+    cp src/espeakedit "$out/bin"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Phoneme editor for espeak";
     homepage = http://espeak.sourceforge.net/;
     license = "GPLv3+";
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch b/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch
new file mode 100644
index 000000000000..e5c761a11b35
--- /dev/null
+++ b/pkgs/applications/audio/espeak/espeakedit-configurable-path-espeak-data.patch
@@ -0,0 +1,15 @@
+Don't hardcode /usr, use @prefix@.
+
+Author: Bjørn Forsman
+diff -uNr espeakedit-1.48.03.orig/src/speech.h espeakedit-1.48.03/src/speech.h
+--- espeakedit-1.48.03.orig/src/speech.h	2014-03-04 17:48:12.000000000 +0100
++++ espeakedit-1.48.03/src/speech.h	2014-07-22 18:21:40.860790719 +0200
+@@ -58,7 +58,7 @@
+ 
+ // will look for espeak_data directory here, and also in user's home directory
+ #ifndef PATH_ESPEAK_DATA
+-   #define PATH_ESPEAK_DATA  "/usr/share/espeak-data"
++   #define PATH_ESPEAK_DATA  "@prefix@/share/espeak-data"
+ #endif
+ 
+ typedef unsigned short USHORT;
diff --git a/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch b/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch
new file mode 100644
index 000000000000..1c5dfc21941a
--- /dev/null
+++ b/pkgs/applications/audio/espeak/espeakedit-configurable-sox-path.patch
@@ -0,0 +1,27 @@
+Make the path to 'sox' configurable by marking it '@sox@' (easy to match with sed).
+
+Author: Bjørn Forsman
+diff -uNr espeakedit-1.48.03.orig/src/compiledata.cpp espeakedit-1.48.03/src/compiledata.cpp
+--- espeakedit-1.48.03.orig/src/compiledata.cpp	2014-03-04 17:48:11.000000000 +0100
++++ espeakedit-1.48.03/src/compiledata.cpp	2014-07-22 16:38:50.261388452 +0200
+@@ -1884,7 +1884,7 @@
+             fname2 = msg;
+         }
+ 
+-        sprintf(command,"sox \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp);
++        sprintf(command,"@sox@ \"%s%s.wav\" -r %d -c1 -t wav %s\n",path_source,fname2,samplerate_native, fname_temp);
+         if(system(command) != 0)
+         {
+             failed = 1;
+diff -uNr espeakedit-1.48.03.orig/src/readclause.cpp espeakedit-1.48.03/src/readclause.cpp
+--- espeakedit-1.48.03.orig/src/readclause.cpp	2014-03-04 17:48:11.000000000 +0100
++++ espeakedit-1.48.03/src/readclause.cpp	2014-07-22 16:38:37.190440504 +0200
+@@ -892,7 +892,7 @@
+ 			if((fd_temp = mkstemp(fname_temp)) >= 0)
+ 			{
+ 				close(fd_temp);
+-				sprintf(command,"sox \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
++				sprintf(command,"@sox@ \"%s\" -r %d -c1 -t wav %s\n", fname, samplerate, fname_temp);
+ 				if(system(command) == 0)
+ 				{
+ 					fname = fname_temp;
diff --git a/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch b/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch
new file mode 100644
index 000000000000..9f8a65d2b0ca
--- /dev/null
+++ b/pkgs/applications/audio/espeak/espeakedit-fix-makefile.patch
@@ -0,0 +1,26 @@
+Fix broken Makefile:
+
+* fix syntax error (missing '\' to continue line):
+    Makefile:19: *** recipe commences before first target.  Stop.
+* Get portaudio library flags from pkg-config (to get -Lpath/to/portaudio/lib etc.)
+
+Author: Bjørn Forsman
+diff -uNr espeakedit-1.48.03.orig/src/Makefile espeakedit-1.48.03/src/Makefile
+--- espeakedit-1.48.03.orig/src/Makefile	2013-03-13 15:52:02.000000000 +0100
++++ espeakedit-1.48.03/src/Makefile	2014-07-22 15:34:17.524114822 +0200
+@@ -12,12 +12,11 @@
+ 
+ WX_LIBS = -pthread   `wx-config --libs`
+ 
+-LIBS=-lstdc++ -lportaudio
++LIBS=-lstdc++ `pkg-config --libs portaudio-2.0`
+ #LIBS=-lstdc++ /usr/lib/x86_64-linux-gnu/libportaudio.so.2
+ 
+-CPPFLAGS =  -Wall -g -fexceptions `wx-config --cflags`
+-	-I/usr/include/wx-2.8 \
+-	-DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES
++CPPFLAGS =  -Wall -g -fexceptions `wx-config --cflags` \
++	-DGTK_NO_CHECK_CASTS -D__WXGTK__ -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES \
+ 	-D_LARGEFILE_SOURCE=1 -DNO_GCC_PRAGMA -D_ESPEAKEDIT
+ 
+ CXXFLAGS = -O2  -Wall -fexceptions `wx-config --cflags` \
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index 89e95f62cd5f..8cba482194e5 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, glib, jackaudio, libsndfile, pkgconfig
+{ stdenv, fetchurl, alsaLib, glib, jack2, libsndfile, pkgconfig
 , pulseaudio }:
 
 stdenv.mkDerivation  rec {
@@ -21,7 +21,7 @@ stdenv.mkDerivation  rec {
     "-framework CoreAudio";
 
   buildInputs = [ glib libsndfile pkgconfig ]
-    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib pulseaudio jackaudio ];
+    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ alsaLib pulseaudio jack2 ];
 
   meta = with stdenv.lib; {
     description = "Real-time software synthesizer based on the SoundFont 2 specifications";
diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix
index 44b0e9ef0d79..777c0ddb2e35 100644
--- a/pkgs/applications/audio/guitarix/default.nix
+++ b/pkgs/applications/audio/guitarix/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, avahi, boost, fftw, gettext, glib, glibmm, gtk
-, gtkmm, intltool, jackaudio, ladspaH, librdf, libsndfile, lv2 
+, gtkmm, intltool, jack2, ladspaH, librdf, libsndfile, lv2
 , pkgconfig, python }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    avahi boost fftw gettext glib glibmm gtk gtkmm intltool jackaudio
+    avahi boost fftw gettext glib glibmm gtk gtkmm intltool jack2
     ladspaH librdf libsndfile lv2 pkgconfig python
   ];
 
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index 74ff2a3407c4..10f15f5882cb 100644
--- a/pkgs/applications/audio/hydrogen/default.nix
+++ b/pkgs/applications/audio/hydrogen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, boost, glib, jackaudio, ladspaPlugins
+{ stdenv, fetchurl, alsaLib, boost, glib, jack2, ladspaPlugins
 , libarchive, liblrdf , libsndfile, pkgconfig, qt4, scons, subversion }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ 
-    alsaLib boost glib jackaudio ladspaPlugins libarchive liblrdf
+    alsaLib boost glib jack2 ladspaPlugins libarchive liblrdf
     libsndfile pkgconfig qt4 scons subversion
   ];
 
diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix
index 73138cc269d0..ac46ff6140c1 100644
--- a/pkgs/applications/audio/ingen/default.nix
+++ b/pkgs/applications/audio/ingen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchsvn, boost, ganv, glibmm, gtk, gtkmm, jackaudio, lilv
+{ stdenv, fetchsvn, boost, ganv, glibmm, gtk, gtkmm, jack2, lilv
 , lv2, pkgconfig, python, raul, serd, sord, sratom, suil
 }:
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [
-    boost ganv glibmm gtk gtkmm jackaudio lilv lv2 pkgconfig python
+    boost ganv glibmm gtk gtkmm jack2 lilv lv2 pkgconfig python
     raul serd sord sratom suil
   ];
 
diff --git a/pkgs/applications/audio/jack-capture/default.nix b/pkgs/applications/audio/jack-capture/default.nix
index 3b8f0f652a8b..2e6f6b0dd828 100644
--- a/pkgs/applications/audio/jack-capture/default.nix
+++ b/pkgs/applications/audio/jack-capture/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jackaudio, libsndfile, pkgconfig }:
+{ stdenv, fetchurl, jack2, libsndfile, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "jack_capture-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0sk7b92my1v1g7rhkpl1c608rb0rdb28m9zqfll95kflxajd16zv";
   };
 
-  buildInputs = [ jackaudio libsndfile pkgconfig ];
+  buildInputs = [ jack2 libsndfile pkgconfig ];
 
   buildPhase = "PREFIX=$out make jack_capture";
 
diff --git a/pkgs/applications/audio/jack-oscrolloscope/default.nix b/pkgs/applications/audio/jack-oscrolloscope/default.nix
index dbceb0a336c5..7b4d12a5b877 100644
--- a/pkgs/applications/audio/jack-oscrolloscope/default.nix
+++ b/pkgs/applications/audio/jack-oscrolloscope/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, jackaudio, mesa, pkgconfig }:
+{ stdenv, fetchurl, SDL, jack2, mesa, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "jack_oscrolloscope-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1pl55in0sj7h5r06n1v91im7d18pplvhbjhjm1fdl39zwnyxiash";
   };
 
-  buildInputs = [ SDL jackaudio mesa pkgconfig ];
+  buildInputs = [ SDL jack2 mesa pkgconfig ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/audio/jack-rack/default.nix b/pkgs/applications/audio/jack-rack/default.nix
index 1d1128e663d3..8ac47c570dfb 100644
--- a/pkgs/applications/audio/jack-rack/default.nix
+++ b/pkgs/applications/audio/jack-rack/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, pkgconfig, jackaudio, ladspaH, gtk, alsaLib, libxml2, librdf }:
+{ stdenv, fetchurl, pkgconfig, jack2, ladspaH, gtk, alsaLib, libxml2, librdf }:
 stdenv.mkDerivation rec {
   name = "jack-rack-1.4.7";
   src = fetchurl {
     url = "mirror://sourceforge/jack-rack/${name}.tar.bz2";
     sha256 = "1lmibx9gicagcpcisacj6qhq6i08lkl5x8szysjqvbgpxl9qg045";
   };
-  buildInputs = [ pkgconfig jackaudio ladspaH gtk alsaLib libxml2 librdf ];
+  buildInputs = [ pkgconfig jack2 ladspaH gtk alsaLib libxml2 librdf ];
 
   meta = {
     description = ''An effects "rack" for the JACK low latency audio API'';
diff --git a/pkgs/applications/audio/jackmeter/default.nix b/pkgs/applications/audio/jackmeter/default.nix
index 98fcb8943af6..8557bc31c445 100644
--- a/pkgs/applications/audio/jackmeter/default.nix
+++ b/pkgs/applications/audio/jackmeter/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jackaudio, pkgconfig }:
+{ stdenv, fetchurl, jack2, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "jackmeter-0.4";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "1cnvgx3jv0yvxlqy0l9k285zgvazmh5k8m4l7lxckjfm5bn6hm1r";
   };
 
-  buildInputs = [ jackaudio pkgconfig ];
+  buildInputs = [ jack2 pkgconfig ];
 
   meta = { 
     description = "Console jack loudness meter";
diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix
index 2baf69cef4fd..70ef5bdec5cb 100644
--- a/pkgs/applications/audio/jalv/default.nix
+++ b/pkgs/applications/audio/jalv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk, jackaudio, lilv, lv2, pkgconfig, python
+{ stdenv, fetchurl, gtk, jack2, lilv, lv2, pkgconfig, python
 , serd, sord , sratom, suil }:
 
 stdenv.mkDerivation  rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [
-    gtk jackaudio lilv lv2 pkgconfig python serd sord sratom suil
+    gtk jack2 lilv lv2 pkgconfig python serd sord sratom suil
   ];
 
   configurePhase = "python waf configure --prefix=$out";
diff --git a/pkgs/applications/audio/lash/default.nix b/pkgs/applications/audio/lash/default.nix
index ad52e7b2d85c..e42babf13ef8 100644
--- a/pkgs/applications/audio/lash/default.nix
+++ b/pkgs/applications/audio/lash/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, gtk, jackaudio, libuuid, libxml2
+{ stdenv, fetchurl, alsaLib, gtk, jack2, libuuid, libxml2
 , makeWrapper, pkgconfig, readline }:
 
 assert libuuid != null;
@@ -15,7 +15,7 @@ stdenv.mkDerivation  rec {
   # http://permalink.gmane.org/gmane.linux.redhat.fedora.extras.cvs/822346
   patches = [ ./socket.patch ./gcc-47.patch ];
 
-  buildInputs = [ alsaLib gtk jackaudio libuuid libxml2 makeWrapper
+  buildInputs = [ alsaLib gtk jack2 libuuid libxml2 makeWrapper
     pkgconfig readline ];
 
   postInstall = ''
diff --git a/pkgs/applications/audio/linuxsampler/default.nix b/pkgs/applications/audio/linuxsampler/default.nix
index 1408a1775ee5..2c4b26543ebb 100644
--- a/pkgs/applications/audio/linuxsampler/default.nix
+++ b/pkgs/applications/audio/linuxsampler/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchsvn, alsaLib, asio, autoconf, automake, bison
-, jackaudio, libgig, libsndfile, libtool, lv2, pkgconfig }:
+, jack2, libgig, libsndfile, libtool, lv2, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "linuxsampler-svn-${version}";
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [ 
-   alsaLib asio autoconf automake bison jackaudio libgig libsndfile
+   alsaLib asio autoconf automake bison jack2 libgig libsndfile
    libtool lv2 pkgconfig
   ];
 
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index 46d5017c4fe1..dd0649811bbb 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, jackaudio, libogg
+{ stdenv, fetchurl, SDL, alsaLib, cmake, fftwSinglePrec, jack2, libogg
 , libsamplerate, libsndfile, pkgconfig, pulseaudio, qt4, freetype
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [
-    SDL alsaLib cmake fftwSinglePrec jackaudio libogg libsamplerate
+    SDL alsaLib cmake fftwSinglePrec jack2 libogg libsamplerate
     libsndfile pkgconfig pulseaudio qt4
   ];
 
diff --git a/pkgs/applications/audio/mhwaveedit/default.nix b/pkgs/applications/audio/mhwaveedit/default.nix
index a8287b10a298..a1e81be3cb37 100644
--- a/pkgs/applications/audio/mhwaveedit/default.nix
+++ b/pkgs/applications/audio/mhwaveedit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL , alsaLib, gtk, jackaudio, ladspaH
+{ stdenv, fetchurl, SDL , alsaLib, gtk, jack2, ladspaH
 , ladspaPlugins, libsamplerate, libsndfile, pkgconfig, pulseaudio }:
 
 stdenv.mkDerivation  rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs =
-   [ SDL alsaLib gtk jackaudio ladspaH libsamplerate libsndfile
+   [ SDL alsaLib gtk jack2 ladspaH libsamplerate libsndfile
      pkgconfig pulseaudio
    ];
 
diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix
index 965c941113c3..eadbaabcf560 100644
--- a/pkgs/applications/audio/milkytracker/default.nix
+++ b/pkgs/applications/audio/milkytracker/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, SDL, alsaLib, autoconf, automake, jackaudio, perl
+{ stdenv, fetchurl, SDL, alsaLib, autoconf, automake, jack2, perl
 , zlib, zziplib
 }:
 
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     export CPATH=${zlib}/lib
   '';
 
-  buildInputs = [ SDL alsaLib autoconf automake jackaudio perl zlib zziplib ];
+  buildInputs = [ SDL alsaLib autoconf automake jack2 perl zlib zziplib ];
 
   meta = {
     description = "Music tracker application, similar to Fasttracker II.";
diff --git a/pkgs/applications/audio/moc/default.nix b/pkgs/applications/audio/moc/default.nix
index c5a33796ca52..e5264f5c3d2f 100644
--- a/pkgs/applications/audio/moc/default.nix
+++ b/pkgs/applications/audio/moc/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg, libvorbis, mpc, libsndfile, jackaudio, db, libmodplug, timidity, libid3tag, libtool }:
+{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg
+, libvorbis, mpc, libsndfile, jack2, db, libmodplug, timidity, libid3tag
+, libtool
+}:
 
 stdenv.mkDerivation rec {
   name = "moc-${version}";
@@ -11,7 +14,10 @@ stdenv.mkDerivation rec {
 
   configurePhase = "./configure prefix=$out";
 
-  buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis mpc libsndfile jackaudio db libmodplug timidity libid3tag libtool ];
+  buildInputs = [
+    ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis
+    mpc libsndfile jack2 db libmodplug timidity libid3tag libtool
+  ];
 
   meta = {
     description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.";
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index 937a030f3e53..94fa50a88836 100755
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, glib, ncurses, mpd_clientlib, libintlOrEmpty }:
 
 stdenv.mkDerivation rec {
-  version = "0.22";
+  version = "0.23";
   name = "ncmpc-${version}";
 
   src = fetchurl {
     url = "http://www.musicpd.org/download/ncmpc/0/ncmpc-${version}.tar.xz";
-    sha256 = "a8d65f12653d9ce8bc4493aa1c5de09359c25bf3a22498d2ae797e7d41422211";
+    sha256 = "d7b30cefaf5c74a5d8ab18ab8275e0102ae12e8ee6d6f8144f8e4cc9a97b5de4";
   };
 
   buildInputs = [ pkgconfig glib ncurses mpd_clientlib ]
diff --git a/pkgs/applications/audio/petrifoo/default.nix b/pkgs/applications/audio/petrifoo/default.nix
index 2e53a22bff3b..152ee442761e 100644
--- a/pkgs/applications/audio/petrifoo/default.nix
+++ b/pkgs/applications/audio/petrifoo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, alsaLib, cmake, gtk, jackaudio, libgnomecanvas
+{ stdenv, fetchgit, alsaLib, cmake, gtk, jack2, libgnomecanvas
 , libpthreadstubs, libsamplerate, libsndfile, libtool, libxml2
 , pkgconfig }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs =
-   [ alsaLib cmake  gtk jackaudio libgnomecanvas libpthreadstubs
+   [ alsaLib cmake  gtk jack2 libgnomecanvas libpthreadstubs
      libsamplerate libsndfile libtool libxml2 pkgconfig
    ];
 
diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix
index 2dd251ddd5bd..508b6743cc39 100644
--- a/pkgs/applications/audio/projectm/default.nix
+++ b/pkgs/applications/audio/projectm/default.nix
@@ -2,7 +2,7 @@
 , glew, ftgl, ttf_bitstream_vera
 , withQt ? true, qt4
 , withLibvisual ? false, libvisual, SDL
-, withJack ? false, jackaudio
+, withJack ? false, jack2
 , withPulseAudio ? true, pulseaudio
 }:
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     [ glew ftgl ]
     ++ optional withQt qt4
     ++ optionals withLibvisual [ libvisual SDL ]
-    ++ optional withJack jackaudio
+    ++ optional withJack jack2
     ++ optional withPulseAudio pulseaudio
     ;
 }
diff --git a/pkgs/applications/audio/puredata/default.nix b/pkgs/applications/audio/puredata/default.nix
index d0394b72eddc..9abca0cb0141 100644
--- a/pkgs/applications/audio/puredata/default.nix
+++ b/pkgs/applications/audio/puredata/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, autoreconfHook, gettext, makeWrapper
-, alsaLib, jackaudio, tk
+, alsaLib, jack2, tk
 }:
 
 stdenv.mkDerivation  rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ autoreconfHook gettext makeWrapper ];
 
-  buildInputs = [ alsaLib jackaudio ];
+  buildInputs = [ alsaLib jack2 ];
 
   configureFlags = ''
     --enable-alsa
diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix
index dcb2a1b48e60..ba875255d4a0 100644
--- a/pkgs/applications/audio/qjackctl/default.nix
+++ b/pkgs/applications/audio/qjackctl/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, qt4, alsaLib, jackaudio, dbus }:
+{ stdenv, fetchurl, qt4, alsaLib, jack2, dbus }:
 
 stdenv.mkDerivation rec {
-  version = "0.3.10";
+  version = "0.3.11";
   name = "qjackctl-${version}";
 
   # some dependencies such as killall have to be installed additionally
 
   src = fetchurl {
     url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
-    sha256 = "0ch14y3p0x5ss28cpnqcxp42zb2w07d3l1n2sbrkgiz58iy97paw";
+    sha256 = "1wjzrgx3n2asyxk6cnfcm34msaw84qvsqy08bd4qnghrgpl96hwl";
   };
 
-  buildInputs = [ qt4 alsaLib jackaudio dbus ];
+  buildInputs = [ qt4 alsaLib jack2 dbus ];
 
   configureFlags = "--enable-jack-version";
 
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index 05e6da223dad..a5d0e7e621e2 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, fluidsynth, jackaudio, qt4 }:
+{ stdenv, fetchurl, alsaLib, fluidsynth, jack2, qt4 }:
 
 stdenv.mkDerivation  rec {
   name = "qsynth-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation  rec {
     sha256 = "0wmq61cq93x2l00xwr871373mj3dwamz1dg6v62x7s8m1612ndrw";
   };
 
-  buildInputs = [ alsaLib fluidsynth jackaudio qt4 ];
+  buildInputs = [ alsaLib fluidsynth jack2 qt4 ];
 
   meta = with stdenv.lib; {
     description = "Fluidsynth GUI";
diff --git a/pkgs/applications/audio/qtractor/default.nix b/pkgs/applications/audio/qtractor/default.nix
index a15cf2550407..e589adc0e417 100644
--- a/pkgs/applications/audio/qtractor/default.nix
+++ b/pkgs/applications/audio/qtractor/default.nix
@@ -1,4 +1,4 @@
-{ alsaLib, autoconf, automake, dssi, fetchurl, gtk, jackaudio
+{ alsaLib, autoconf, automake, dssi, fetchurl, gtk, jack2
 , ladspaH, ladspaPlugins, liblo, libmad, libsamplerate, libsndfile
 , libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs =
-    [ alsaLib autoconf automake dssi gtk jackaudio ladspaH
+    [ alsaLib autoconf automake dssi gtk jack2 ladspaH
       ladspaPlugins liblo libmad libsamplerate libsndfile libtool
       libvorbis pkgconfig qt4 rubberband
     ];
diff --git a/pkgs/applications/audio/rakarrack/default.nix b/pkgs/applications/audio/rakarrack/default.nix
index ba84fe5eaec2..257a9967a5b0 100644
--- a/pkgs/applications/audio/rakarrack/default.nix
+++ b/pkgs/applications/audio/rakarrack/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, alsaUtils, fltk, jackaudio, libXft,
+{ stdenv, fetchurl, alsaLib, alsaUtils, fltk, jack2, libXft,
 libXpm, libjpeg, libpng, libsamplerate, libsndfile, zlib }:
 
 stdenv.mkDerivation  rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
 
   patches = [ ./fltk-path.patch ];
 
-  buildInputs = [ alsaLib alsaUtils fltk jackaudio libXft libXpm libjpeg
+  buildInputs = [ alsaLib alsaUtils fltk jack2 libXft libXpm libjpeg
     libpng libsamplerate libsndfile zlib ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/samplv1/default.nix b/pkgs/applications/audio/samplv1/default.nix
index c201536ed347..7d8d5fc04abc 100644
--- a/pkgs/applications/audio/samplv1/default.nix
+++ b/pkgs/applications/audio/samplv1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jackaudio, libsndfile, lv2, qt4 }:
+{ stdenv, fetchurl, jack2, libsndfile, lv2, qt4 }:
 
 stdenv.mkDerivation rec {
   name = "samplv1-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1vr6jbqnsgdq3v2h1ndp4pirnil3119dqwlq0k0kdscmcskvb9j4";
   };
 
-  buildInputs = [ jackaudio libsndfile lv2 qt4 ];
+  buildInputs = [ jack2 libsndfile lv2 qt4 ];
 
   meta = with stdenv.lib; {
     description = "An old-school all-digital polyphonic sampler synthesizer with stereo fx";
diff --git a/pkgs/applications/audio/seq24/default.nix b/pkgs/applications/audio/seq24/default.nix
index 9f168f54eafd..10376e02f433 100644
--- a/pkgs/applications/audio/seq24/default.nix
+++ b/pkgs/applications/audio/seq24/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, gtkmm, jackaudio, pkgconfig }:
+{ stdenv, fetchurl, alsaLib, gtkmm, jack2, pkgconfig }:
 
 stdenv.mkDerivation  rec {
   name = "seq24-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation  rec {
     sha256 = "07n80zj95i80vjmsflnlbqx5vv90qmp5f6a0zap8d30849l4y258";
   };
 
-  buildInputs = [ alsaLib gtkmm jackaudio pkgconfig ];
+  buildInputs = [ alsaLib gtkmm jack2 pkgconfig ];
 
   meta = with stdenv.lib; {
     description = "minimal loop based midi sequencer";
diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix
index 0d5b69297538..5119c384cf6a 100644
--- a/pkgs/applications/audio/setbfree/default.nix
+++ b/pkgs/applications/audio/setbfree/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, freetype, ftgl, jackaudio, libX11, lv2
+{ stdenv, fetchurl, alsaLib, freetype, ftgl, jack2, libX11, lv2
 , mesa, pkgconfig, ttf_bitstream_vera
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation  rec {
   '';
 
   buildInputs = [
-    alsaLib freetype ftgl jackaudio libX11 lv2 mesa pkgconfig
+    alsaLib freetype ftgl jack2 libX11 lv2 mesa pkgconfig
     ttf_bitstream_vera
   ];
 
diff --git a/pkgs/applications/audio/sonic-visualiser/default.nix b/pkgs/applications/audio/sonic-visualiser/default.nix
index 7704397e6d0a..42c390620427 100644
--- a/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -1,6 +1,6 @@
 # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
 
-{ stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo
+{ stdenv, fetchurl, alsaLib, bzip2, fftw, jack2, libX11, liblo
 , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
 , libsndfile, pkgconfig, pulseaudio, qt5, redland
 , rubberband, serd, sord, vampSDK
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
       sord
       pkgconfig
       # optional
-      jackaudio
+      jack2
       # portaudio
       pulseaudio
       libmad
diff --git a/pkgs/applications/audio/synthv1/default.nix b/pkgs/applications/audio/synthv1/default.nix
index d1c2230cf16d..08c13243804b 100644
--- a/pkgs/applications/audio/synthv1/default.nix
+++ b/pkgs/applications/audio/synthv1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt4, jackaudio, lv2 }:
+{ stdenv, fetchurl, qt4, jack2, lv2 }:
 
 stdenv.mkDerivation rec {
   name = "synthv1-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1r4fszbzwd0yfcch0mcsmh7781zw1317hiljn85w79721fs2m8hc";
   };
 
-  buildInputs = [ qt4 jackaudio lv2 ];
+  buildInputs = [ qt4 jack2 lv2 ];
 
   meta = with stdenv.lib; {
     description = "An old-school 4-oscillator subtractive polyphonic synthesizer with stereo fx";
diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix
new file mode 100755
index 000000000000..3e365cae8e94
--- /dev/null
+++ b/pkgs/applications/audio/vimpc/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, autoconf, automake, mpd_clientlib, ncurses, pcre, pkgconfig, taglib }:
+
+stdenv.mkDerivation rec {
+  version = "0.09.0";
+  name = "vimpc-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/boysetsfrog/vimpc/archive/v${version}.tar.gz";
+    sha256 = "13eb229a5e9eee491765ee89f7fe6a38140a41a01434b117da3869d725c15706";
+  };
+
+  buildInputs = [ autoconf
+                  automake
+                  mpd_clientlib
+                  ncurses
+                  pcre
+                  pkgconfig
+                  taglib
+                ];
+
+  preConfigure = "./autogen.sh";
+
+  postInstall = ''
+    mkdir -p $out/etc
+    cp doc/vimpcrc.example $out/etc
+  '';
+
+  meta = {
+    description = "A vi/vim inspired client for the Music Player Daemon (mpd).";
+    homepage = https://github.com/boysetsfrog/vimpc;
+    license = "GPL3";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/vmpk/default.nix b/pkgs/applications/audio/vmpk/default.nix
index 7fffa77b5a39..9a75fa5f3831 100644
--- a/pkgs/applications/audio/vmpk/default.nix
+++ b/pkgs/applications/audio/vmpk/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, cmake, pkgconfig
-, qt4, jackaudio
+, qt4, jack2
 }:
 
 let
@@ -22,5 +22,5 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  buildInputs = [ qt4 jackaudio ];
+  buildInputs = [ qt4 jack2 ];
 }
diff --git a/pkgs/applications/audio/xsynth-dssi/default.nix b/pkgs/applications/audio/xsynth-dssi/default.nix
index 0cfbfb4c9bd1..85e7235400b2 100644
--- a/pkgs/applications/audio/xsynth-dssi/default.nix
+++ b/pkgs/applications/audio/xsynth-dssi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk, jackaudio,
+{ stdenv, fetchurl, alsaLib, autoconf, automake, dssi, gtk, jack2,
 ladspaH, ladspaPlugins, liblo, pkgconfig }:
 
 stdenv.mkDerivation  rec {
@@ -10,7 +10,7 @@ stdenv.mkDerivation  rec {
     sha256 = "00nwv2pqjbmxqdc6xdm0cljq6z05lv4y6bibmhz1kih9lm0lklnk";
   };
 
-  buildInputs = [ alsaLib autoconf automake dssi gtk jackaudio ladspaH
+  buildInputs = [ alsaLib autoconf automake dssi gtk jack2 ladspaH
     ladspaPlugins liblo pkgconfig ];
 
   installPhase = ''
diff --git a/pkgs/applications/audio/yoshimi/default.nix b/pkgs/applications/audio/yoshimi/default.nix
index df0b98cdd9e4..497ab3ac78d6 100644
--- a/pkgs/applications/audio/yoshimi/default.nix
+++ b/pkgs/applications/audio/yoshimi/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, alsaLib, boost, cairo, cmake, fftwSinglePrec, fltk
-, jackaudio, libsndfile, mesa, minixml, pkgconfig, zlib
+, jack2, libsndfile, mesa, minixml, pkgconfig, zlib
 }:
 
 assert stdenv ? glibc;
@@ -14,7 +14,7 @@ stdenv.mkDerivation  rec {
   };
 
   buildInputs = [
-    alsaLib boost cairo fftwSinglePrec fltk jackaudio libsndfile mesa
+    alsaLib boost cairo fftwSinglePrec fltk jack2 libsndfile mesa
     minixml zlib
   ];
 
diff --git a/pkgs/applications/audio/zynaddsubfx/default.nix b/pkgs/applications/audio/zynaddsubfx/default.nix
index cd30b5b30847..a5aa7d5c8d95 100644
--- a/pkgs/applications/audio/zynaddsubfx/default.nix
+++ b/pkgs/applications/audio/zynaddsubfx/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, cmake, jackaudio, fftw, fltk13, minixml
+{ stdenv, fetchurl, alsaLib, cmake, jack2, fftw, fltk13, minixml
 , pkgconfig, zlib
 }:
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation  rec {
     sha256 = "0kgmwyh4rhyqdfrdzhbzjjk2hzggkp9c4aac6sy3xv6cc1b5jjxq";
   };
 
-  buildInputs = [ alsaLib jackaudio fftw fltk13 minixml zlib ];
+  buildInputs = [ alsaLib jack2 fftw fltk13 minixml zlib ];
   nativeBuildInputs = [ cmake pkgconfig ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/emacs-23/builder.sh b/pkgs/applications/editors/emacs-23/builder.sh
deleted file mode 100644
index d04e7a4fdd3f..000000000000
--- a/pkgs/applications/editors/emacs-23/builder.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-source $stdenv/setup
-
-# This hook is supposed to be run on Linux. It patches the proper locations of
-# the crt{1,i,n}.o files into the build to ensure that Emacs is linked with
-# *our* versions, not the ones found in the system, as it would do by default.
-# On other platforms, this appears to be unnecessary.
-preConfigure() {
-    case "${system}" in
-	x86_64-linux)	glibclibdir=lib64 ;;
-	i686-linux)	glibclibdir=lib ;;
-        *)              return;
-    esac
-
-    libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
-    echo "libc: $libc"
-
-    for i in src/s/*.h src/m/*.h; do
-        substituteInPlace $i \
-            --replace /usr/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \
-            --replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \
-            --replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o \
-            --replace /usr/lib/crt1.o $libc/${glibclibdir}/crt1.o \
-            --replace /usr/lib/crti.o $libc/${glibclibdir}/crti.o \
-            --replace /usr/lib/crtn.o $libc/${glibclibdir}/crtn.o
-    done
-
-    for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
-        substituteInPlace $i --replace /bin/pwd pwd
-    done
-}
-
-preBuild="make bootstrap"
-
-genericBuild
diff --git a/pkgs/applications/editors/emacs-23/default.nix b/pkgs/applications/editors/emacs-23/default.nix
deleted file mode 100644
index ab5c8e49e7f1..000000000000
--- a/pkgs/applications/editors/emacs-23/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv, fetchurl, ncurses, x11, libXaw, libXpm, Xaw3d
-, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif
-, libtiff, librsvg, texinfo, gconf
-}:
-
-assert (gtk != null) -> (pkgconfig != null);
-assert (libXft != null) -> libpng != null;	# probably a bug
-assert stdenv.isDarwin -> libXaw != null;	# fails to link otherwise
-
-stdenv.mkDerivation rec {
-  name = "emacs-23.4";
-
-  builder = ./builder.sh;
-
-  src = fetchurl {
-    url = "mirror://gnu/emacs/${name}.tar.bz2";
-    sha256 = "1fc8x5p38qihg7l6z2b1hjc534lnjb8gqpwgywlwg5s3csg6ymr6";
-  };
-
-  buildInputs =
-    [ ncurses x11 texinfo libXaw Xaw3d libXpm libpng libjpeg libungif
-      libtiff librsvg libXft gconf
-    ]
-    ++ stdenv.lib.optionals (gtk != null) [ gtk pkgconfig ]
-    ++ stdenv.lib.optional stdenv.isLinux dbus;
-
-  configureFlags =
-    stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft"]
-
-    # On NixOS, help Emacs find `crt*.o'.
-    ++ stdenv.lib.optional (stdenv ? glibc)
-         [ "--with-crt-dir=${stdenv.glibc}/lib" ];
-
-  postInstall = ''
-    cat >$out/share/emacs/site-lisp/site-start.el <<EOF
-;; nixos specific load-path
-(when (getenv "NIX_PROFILES") (setq load-path
-                      (append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
-                                               (split-string (getenv "NIX_PROFILES"))))
-                       load-path)))
-EOF
-  '';
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Emacs 23.x, the extensible, customizable text editor";
-
-    longDescription = ''
-      GNU Emacs is an extensible, customizable text editor—and more.  At its
-      core is an interpreter for Emacs Lisp, a dialect of the Lisp
-      programming language with extensions to support text editing.
-
-      The features of GNU Emacs include: content-sensitive editing modes,
-      including syntax coloring, for a wide variety of file types including
-      plain text, source code, and HTML; complete built-in documentation,
-      including a tutorial for new users; full Unicode support for nearly all
-      human languages and their scripts; highly customizable, using Emacs
-      Lisp code or a graphical interface; a large number of extensions that
-      add other functionality, including a project planner, mail and news
-      reader, debugger interface, calendar, and more.  Many of these
-      extensions are distributed with GNU Emacs; others are available
-      separately.
-    '';
-
-    homepage = http://www.gnu.org/software/emacs/;
-    license = "GPLv3+";
-
-    maintainers = with stdenv.lib.maintainers; [ simons chaoflow ];
-    platforms = stdenv.lib.platforms.all;
-  };
-}
diff --git a/pkgs/applications/editors/emacs-modes/bbdb/3.nix b/pkgs/applications/editors/emacs-modes/bbdb/3.nix
new file mode 100644
index 000000000000..556bf83fab72
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/bbdb/3.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, emacs }:
+
+stdenv.mkDerivation rec {
+  name = "bbdb-3.1.2";
+
+  src = fetchurl {
+    url = "http://download.savannah.gnu.org/releases/bbdb/${name}.tar.gz";
+    sha256 = "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05";
+  };
+
+  buildInputs = [ emacs ];
+
+  # Hack to disable documentation as there is no way to tell bbdb to
+  # NOT build pdfs. I really don't want to pull in TexLive here...
+  preConfigure = ''
+   substituteInPlace ./Makefile.in \
+     --replace "SUBDIRS = lisp doc tex" "SUBDIRS = lisp"
+  '';
+
+  meta = {
+    homepage = "http://savannah.nongnu.org/projects/bbdb/";
+    description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs, version 3";
+    license = "GPL";
+  };
+}
diff --git a/pkgs/applications/editors/zed/default.nix b/pkgs/applications/editors/zed/default.nix
new file mode 100644
index 000000000000..61abec29b47d
--- /dev/null
+++ b/pkgs/applications/editors/zed/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, buildEnv, fetchurl, xlibs, glib, gtk2, atk, pango, gdk_pixbuf,
+  cairo, freetype, fontconfig, nss, nspr, gnome, alsaLib, expat, dbus, udev,
+  makeWrapper, writeScript, gnused }:
+
+let
+
+  rpath_env = buildEnv {
+    name = "rpath_env";
+    paths = [ xlibs.libX11 xlibs.libXrender glib xlibs.libXtst gtk2 atk pango
+      gdk_pixbuf cairo freetype fontconfig xlibs.libXi xlibs.libXcomposite
+      nss nspr gnome.GConf xlibs.libXext xlibs.libXfixes alsaLib
+      xlibs.libXdamage expat dbus stdenv.gcc ];
+    pathsToLink = [ "/lib" "/lib64" ];
+  };
+
+  name = "zed-${version}";
+  version = "0.12.0";
+
+  zed = stdenv.mkDerivation rec {
+    inherit name version;
+
+    src = if stdenv.system == "i686-linux" then fetchurl {
+      url = "http://download.zedapp.org/zed-linux32-v${version}.tar.gz";
+      sha256 = "04cygfhaynlpl8jrf2r55qk5zz1ipad8l9m8q81lfly2q0h9fbxi";
+    } else fetchurl {
+      url = "http://download.zedapp.org/zed-linux64-v${version}.tar.gz";
+      sha256 = "0ng2v07fyglpbyl4pwm2bn5rbldw51kliw8rakbpcdia891hi6z1";
+    };
+
+    buildInputs = [ makeWrapper ];
+
+    installPhase = ''
+      mkdir -p $out/zed
+      cp ./* $out/zed
+    '';
+
+    postFixup = ''
+      patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/zed/zed-bin
+      patchelf --set-rpath "${rpath_env}/lib:${rpath_env}/lib64" $out/zed/zed-bin
+
+      mkdir -p $out/lib
+      ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0
+
+      wrapProgram $out/zed/zed-bin \
+        --prefix LD_LIBRARY_PATH : $out/lib
+    '';
+  };
+  zed_installer = writeScript "zed-installer.sh" ''
+    mkdir -p ~/.zed
+    cp -rv ${zed}/zed/* ~/.zed
+
+    ${gnused}/bin/sed -ri 's/DIR\=\$\(dirname\ \$0\)/DIR\=\~\/\.zed/' ~/.zed/zed
+
+    mkdir -p ~/bin
+    ln -sv ~/.zed/zed ~/bin/zed
+  '';
+
+in stdenv.mkDerivation rec {
+  inherit name version;
+
+  src = zed;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s ${zed_installer} $out/bin/zed-installer
+  '';
+
+  meta = {
+    description = "Zed is a fully offline-capable, open source, keyboard-focused, text and code editor for power users";
+    license = stdenv.lib.licenses.mit;
+    homepage = http://zedapp.org/;
+    maintainers = [ stdenv.lib.maintainers.matejc ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/inferno/default.nix b/pkgs/applications/inferno/default.nix
index 6a1a3be27dd5..c5a40fcbf5b3 100644
--- a/pkgs/applications/inferno/default.nix
+++ b/pkgs/applications/inferno/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
     description = "A compact distributed operating system for building cross-platform distributed systems";
     homepage = "http://inferno-os.org/";
     license = stdenv.lib.licenses.gpl2;
-    maintainer = [ "Chris Double <chris.double@double.co.nz>" ];
+    maintainers = [ "Chris Double <chris.double@double.co.nz>" ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 7e4fffa98bfc..a31fcfeab0f4 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -2,7 +2,7 @@
 , ilmbase, libXi, libjpeg, libpng, libsamplerate, libsndfile
 , libtiff, mesa, openal, opencolorio, openexr, openimageio, openjpeg, python
 , zlib, fftw
-, jackaudioSupport ? false, jackaudio
+, jackaudioSupport ? false, jack2
 }:
 
 with lib;
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     [ SDL boost cmake ffmpeg gettext glew ilmbase libXi
       libjpeg libpng libsamplerate libsndfile libtiff mesa openal
       opencolorio openexr openimageio /* openjpeg */ python zlib fftw
-    ] ++ optional jackaudioSupport jackaudio;
+    ] ++ optional jackaudioSupport jack2;
 
   postUnpack =
     ''
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 95f28d9058a0..764145e39d65 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-1.45.0";
+  name = "calibre-1.46.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/calibre/${name}.tar.xz";
-    sha256 = "0g9fzpkjvi0h7h5azk3v425l8gxd8zidcz3nrzlg26hgvbkzpm20";
+    sha256 = "1mzw6cmnw1wk8jd2pkl6z7bgjhwn4j7lg0a33f07gk4xw94sbry2";
   };
 
   inherit python;
diff --git a/pkgs/applications/misc/hello/ex-2/default.nix b/pkgs/applications/misc/hello/ex-2/default.nix
index d3ade1ab8505..71c9777ff9b7 100644
--- a/pkgs/applications/misc/hello/ex-2/default.nix
+++ b/pkgs/applications/misc/hello/ex-2/default.nix
@@ -17,8 +17,7 @@ stdenv.mkDerivation rec {
       It is fully customizable.
     '';
     homepage = http://www.gnu.org/software/hello/manual/;
-    license = "GPLv3+";
-
+    license = stdenv.lib.licenses.gpl3Plus;
     maintainers = [ stdenv.lib.maintainers.ludo ];
     platforms = stdenv.lib.platforms.all;
   };
diff --git a/pkgs/applications/misc/makeself/default.nix b/pkgs/applications/misc/makeself/default.nix
index e433b83cdeb5..3ba0faef9682 100644
--- a/pkgs/applications/misc/makeself/default.nix
+++ b/pkgs/applications/misc/makeself/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     homepage = http://megastep.org/makeself;
     description = "Utility to create self-extracting packages";
     license = licenses.gpl2;
-    maintainer = maintainers.wmertens;
+    maintainers = [ maintainers.wmertens ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox/3.6.nix b/pkgs/applications/networking/browsers/firefox/3.6.nix
deleted file mode 100644
index c430bb7089a8..000000000000
--- a/pkgs/applications/networking/browsers/firefox/3.6.nix
+++ /dev/null
@@ -1,155 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
-, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
-, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
-
-, # If you want the resulting program to call itself "Firefox" instead
-  # of "Shiretoko" or whatever, enable this option.  However, those
-  # binaries may not be distributed without permission from the
-  # Mozilla Foundation, see
-  # http://www.mozilla.org/foundation/trademarks/.
-  enableOfficialBranding ? false
-}:
-
-rec {
-
-  firefoxVersion = "3.6.27";
-  
-  xulVersion = "1.9.2.27"; # this attribute is used by other packages
-
-  
-  src = fetchurl {
-    url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
-    sha1 = "dd472a10e4ef5b017f00074d0325be13e832d610";
-  };
-
-
-  commonConfigureFlags =
-    [ "--enable-optimize"
-      "--disable-debug"
-      "--enable-strip"
-      "--with-system-jpeg"
-      "--with-system-zlib"
-      "--with-system-bz2"
-      "--with-system-nspr"
-      "--with-system-nss"
-      # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
-      "--enable-system-cairo"
-      #"--enable-system-sqlite" # <-- this seems to be discouraged
-      "--disable-crashreporter"
-      "--disable-tests"
-      "--disable-necko-wifi" # maybe we want to enable this at some point
-    ];
-
-  xulrunner = stdenv.mkDerivation {
-    name = "xulrunner-${xulVersion}";
-    
-    inherit src;
-
-    patches = [
-      # Loongson2f related patches:
-      ./xulrunner-chromium-mips.patch
-      ./xulrunner-mips-n32.patch
-      ./xulrunner-1.9.2_beta4-mips-bus-error.patch
-
-      # Fix building on GCC 4.6.
-      ./gcc-4.6.patch
-    ];
-
-    buildInputs =
-      [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
-        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
-        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr nss libnotify xlibs.pixman
-      ];
-
-    preConfigure = if stdenv.isMips then ''
-      export ac_cv_thread_keyword=no
-    '' else "";
-
-    configureFlags =
-      [ "--enable-application=xulrunner"
-        "--disable-javaxpcom"
-      ] ++ commonConfigureFlags;
-
-    # !!! Temporary hack.
-    preBuild = ''
-     export NIX_ENFORCE_PURITY=
-    '';
-
-    installFlags = "SKIP_GRE_REGISTRATION=1";
-
-    postInstall = ''
-      # Fix some references to /bin paths in the Xulrunner shell script.
-      substituteInPlace $out/bin/xulrunner \
-          --replace /bin/pwd "$(type -tP pwd)" \
-          --replace /bin/ls "$(type -tP ls)"
-
-      # Fix run-mozilla.sh search
-      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
-      echo libDir: $libDir
-      test -n "$libDir"
-      cd $out/bin
-      mv xulrunner ../lib/$libDir/
-
-      for i in $out/lib/$libDir/*; do 
-          file $i;
-          if file $i | grep executable &>/dev/null; then 
-              ln -s $i $out/bin
-          fi;
-      done;
-      rm -f $out/bin/run-mozilla.sh
-    ''; # */
-
-    enableParallelBuilding = true;
-
-    meta = {
-      description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.org/firefox/;
-    };
-
-    passthru = { inherit gtk; version = xulVersion; };
-  };
-
-
-  firefox = stdenv.mkDerivation rec {
-    name = "firefox-${firefoxVersion}";
-
-    inherit src;
-
-    buildInputs =
-      [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
-        xlibs.pixman
-      ];
-
-    propagatedBuildInputs = [xulrunner];
-
-    configureFlags =
-      [ "--enable-application=browser"
-        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
-      ]
-      ++ commonConfigureFlags
-      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
-
-    postInstall = ''
-      libDir=$(cd $out/lib && ls -d firefox-[0-9]*)
-      test -n "$libDir"
-
-      ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $out/lib/$libDir/xulrunner
-
-      # Register extensions etc. !!! is this needed anymore?
-      echo "running firefox -register..."
-      $out/bin/firefox -register
-    ''; # */
-
-    meta = {
-      description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.org/firefox/;
-    };
-
-    passthru = {
-      inherit gtk xulrunner nspr;
-      isFirefox3Like = true;
-    };
-  };
-}
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix
index 1e2c3e2cfb19..ad2ea75bd704 100644
--- a/pkgs/applications/networking/browsers/firefox/default.nix
+++ b/pkgs/applications/networking/browsers/firefox/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
-, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs
+{ lib, stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, zlib, dbus, dbus_glib, bzip2, xlibs
 , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify
 , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite
 , hunspell, libevent, libstartup_notification, libvpx
@@ -15,27 +15,38 @@
 
 assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
 
-rec {
-
-  firefoxVersion = "30.0";
-
-  xulVersion = "30.0"; # this attribute is used by other packages
+let version = "31.0"; in
 
+stdenv.mkDerivation rec {
+  name = "firefox-${version}";
 
   src = fetchurl {
-    url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
-    sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11";
+    url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
+    sha1 = "a6c3e25ee3aeb7da42db2aaeb50a385d63532beb";
   };
 
-  commonConfigureFlags =
-    [ "--with-system-jpeg"
+  buildInputs =
+    [ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2
+      python dbus dbus_glib pango freetype fontconfig xlibs.libXi
+      xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
+      alsaLib nspr nss libnotify xlibs.pixman yasm mesa
+      xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
+      xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
+      hunspell libevent libstartup_notification libvpx cairo
+      gstreamer gst_plugins_base icu
+    ];
+
+  configureFlags =
+    [ "--enable-application=browser"
+      "--disable-javaxpcom"
+      "--with-system-jpeg"
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
       "--with-system-nss"
       "--with-system-libevent"
       "--with-system-libvpx"
-      "--with-system-png"
+      # "--with-system-png" # needs APNG support
       # "--with-system-icu" # causes ‘ar: invalid option -- 'L'’ in Firefox 28.0
       "--enable-system-ffi"
       "--enable-system-hunspell"
@@ -52,160 +63,45 @@ rec {
       "--disable-installer"
       "--disable-updater"
       "--disable-pulseaudio"
-    ] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
-                        else [ "--disable-debug" "--enable-release"
-                               "--enable-optimize" "--enable-strip" ]);
-
-
-  xulrunner = stdenv.mkDerivation rec {
-    name = "xulrunner-${xulVersion}";
-
-    inherit src;
-
-    buildInputs =
-      [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2
-        python dbus dbus_glib pango freetype fontconfig xlibs.libXi
-        xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
-        alsaLib nspr nss libnotify xlibs.pixman yasm mesa
-        xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite
-        xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper
-        hunspell libevent libstartup_notification libvpx cairo
-        gstreamer gst_plugins_base icu
-      ];
-
-    configureFlags =
-      [ "--enable-application=xulrunner"
-        "--disable-javaxpcom"
-      ] ++ commonConfigureFlags;
-
-    #enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282
-
-    preConfigure =
-      ''
-        export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}"
-
-        mkdir ../objdir
-        cd ../objdir
-        configureScript=../mozilla-release/configure
-      ''; # */
-
-    #installFlags = "SKIP_GRE_REGISTRATION=1";
+    ]
+    ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"]
+                      else [ "--disable-debug" "--enable-release"
+                             "--enable-optimize" "--enable-strip" ])
+    ++ lib.optional enableOfficialBranding "--enable-official-branding";
+
+  enableParallelBuilding = true;
+
+  preConfigure =
+    ''
+      mkdir ../objdir
+      cd ../objdir
+      configureScript=../mozilla-release/configure
+    '';
 
-    preInstall = ''
-      # The following is needed for startup cache creation on grsecurity kernels
+  preInstall =
+    ''
+      # The following is needed for startup cache creation on grsecurity kernels.
       paxmark m ../objdir/dist/bin/xpcshell
     '';
 
-    postInstall = ''
-      # Fix run-mozilla.sh search
-      libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*)
-      echo libDir: $libDir
-      test -n "$libDir"
-      cd $out/bin
-      rm xulrunner
-
-      for i in $out/lib/$libDir/*; do
-          file $i;
-          if file $i | grep executable &>/dev/null; then
-              echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")";
-              chmod a+x "$out/bin/$(basename "$i")";
-          fi;
-      done
-      for i in $out/lib/$libDir/*.so; do
-          patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true
-      done
-
+  postInstall =
+    ''
       # For grsecurity kernels
-      paxmark m $out/lib/$libDir/{plugin-container,xulrunner}
-
-      for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do
-          wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir"
-      done
-
-      rm -f $out/bin/run-mozilla.sh
-    ''; # */
+      paxmark m $out/lib/*/{plugin-container,xulrunner}
 
-    meta = {
-      description = "Mozilla Firefox XUL runner";
-      homepage = http://www.mozilla.com/en-US/firefox/;
-    };
+      # Remove SDK cruft. FIXME: move to a separate output?
+      rm -rf $out/share/idl $out/include $out/lib/firefox-devel-*
+    '';
 
-    passthru = { inherit gtk; version = xulVersion; };
+  meta = {
+    description = "Mozilla Firefox - the browser, reloaded";
+    homepage = http://www.mozilla.com/en-US/firefox/;
+    maintainers = with lib.maintainers; [ eelco wizeman ];
+    platforms = lib.platforms.linux;
   };
 
-
-  firefox = stdenv.mkDerivation rec {
-    name = "firefox-${firefoxVersion}";
-
-    inherit src;
-
-    enableParallelBuilding = true;
-
-    buildInputs =
-      [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python
-        dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify
-        xlibs.pixman yasm mesa sqlite file unzip pysqlite
-        hunspell libevent libstartup_notification libvpx cairo
-        gstreamer gst_plugins_base icu
-      ];
-
-    patches = [
-      ./disable-reporter.patch # fixes "search box not working when built on xulrunner"
-      ./xpidl.patch
-    ];
-
-    propagatedBuildInputs = [xulrunner];
-
-    configureFlags =
-      [ "--enable-application=browser"
-        "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}"
-        "--enable-chrome-format=jar"
-      ]
-      ++ commonConfigureFlags
-      ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding";
-
-    makeFlags = [
-      "SYSTEM_LIBXUL=1"
-    ];
-
-    # Because preConfigure runs configure from a subdirectory.
-    configureScript = "../configure";
-
-    preConfigure =
-      ''
-        # Hack to work around make's idea of -lbz2 dependency
-        find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${
-          stdenv.lib.concatStringsSep ":"
-            (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc]))
-        }' ';'
-
-        # Building directly in the main source directory is not allowed.
-        mkdir obj_dir
-        cd obj_dir
-      '';
-
-    postInstall =
-      ''
-        ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner
-        cd "$out/lib/"firefox-*
-        rm firefox
-        echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox
-        chmod a+x firefox
-
-        # Put chrome.manifest etc. in the right place.
-        mv browser/* .
-        rmdir browser
-      ''; # */
-
-    meta = {
-      description = "Mozilla Firefox - the browser, reloaded";
-      homepage = http://www.mozilla.com/en-US/firefox/;
-      maintainers = with stdenv.lib.maintainers; [ eelco wizeman ];
-    };
-
-    passthru = {
-      inherit gtk xulrunner nspr;
-      isFirefox3Like = true;
-    };
+  passthru = {
+    inherit gtk nspr version;
+    isFirefox3Like = true;
   };
 }
diff --git a/pkgs/applications/networking/browsers/firefox/disable-reporter.patch b/pkgs/applications/networking/browsers/firefox/disable-reporter.patch
deleted file mode 100644
index 0a71a7210f2a..000000000000
--- a/pkgs/applications/networking/browsers/firefox/disable-reporter.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-# from:
-# - https://www.linuxquestions.org/questions/linux-from-scratch-13/blfs-xulrunner-firefox-21-0-and-search-4175462532/
-# - http://www.mail-archive.com/blfs-support@linuxfromscratch.org/msg17359.html
-
---- mozilla-release/browser/base/content/browser.js.orig	2013-05-11 16:19:21.000000000 -0300
-+++ mozilla-release/browser/base/content/browser.js	2013-06-07 00:39:16.114862388 -0300
-@@ -3559,10 +3559,12 @@
-    */
-   recordSearchInHealthReport: function (engine, source) {
- #ifdef MOZ_SERVICES_HEALTHREPORT
--    let reporter = Cc["@mozilla.org/datareporting/service;1"]
-+    /*let reporter = Cc["@mozilla.org/datareporting/service;1"]
-                      .getService()
-                      .wrappedJSObject
-                      .healthReporter;
-+    */
-+       return;
- 
-     // This can happen if the FHR component of the data reporting service is
-     // disabled. This is controlled by a pref that most will never use.
diff --git a/pkgs/applications/networking/browsers/firefox/gcc-4.6.patch b/pkgs/applications/networking/browsers/firefox/gcc-4.6.patch
deleted file mode 100644
index f5f685951ef4..000000000000
--- a/pkgs/applications/networking/browsers/firefox/gcc-4.6.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-https://346825.bugs.gentoo.org/attachment.cgi?id=270163
-
---- a/gfx/ots/src/os2.cc
-+++ b/gfx/ots/src/os2.cc
-@@ -2,6 +2,8 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- 
-+#include <cstddef>
-+
- #include "os2.h"
- 
- #include "head.h"
diff --git a/pkgs/applications/networking/browsers/firefox/xpidl.patch b/pkgs/applications/networking/browsers/firefox/xpidl.patch
deleted file mode 100644
index e6a6b4d82646..000000000000
--- a/pkgs/applications/networking/browsers/firefox/xpidl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mozilla-release/python/mozbuild/mozbuild/backend/recursivemake.py	2013-12-05 08:07:53.000000000 -0800
-+++ mozilla-release_1/python/mozbuild/mozbuild/backend/recursivemake.py	2013-12-12 23:38:39.697318563 -0800
-@@ -421,7 +421,7 @@
-     def _handle_idl_manager(self, manager):
-         build_files = self._purge_manifests['xpidl']
- 
--        for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done',
-+        for p in ('Makefile.in', 'Makefile', 'backend.mk', '.deps/.mkdir.done',
-             'xpt/.mkdir.done'):
-             build_files.add(p)
- 
diff --git a/pkgs/applications/networking/browsers/firefox/xulrunner-1.9.2_beta4-mips-bus-error.patch b/pkgs/applications/networking/browsers/firefox/xulrunner-1.9.2_beta4-mips-bus-error.patch
deleted file mode 100644
index 54799397f6f8..000000000000
--- a/pkgs/applications/networking/browsers/firefox/xulrunner-1.9.2_beta4-mips-bus-error.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-http://www.gentoo-cn.org/gitweb/?p=loongson.git;a=blob;f=net-libs/xulrunner/files/xulrunner-1.9.2_beta4-mips-bus-error.patch;h=2bf51d77054796ffaf4f4d903dd8560bf96b7844;hb=HEAD
-
---- ./xpcom/glue/nsTArray.h.orig	2009-04-26 01:21:58.000000000 +0800
-+++ ./xpcom/glue/nsTArray.h	2009-04-26 01:21:33.000000000 +0800
-@@ -168,6 +168,7 @@
- 
-     // The array's elements (prefixed with a Header).  This pointer is never
-     // null.  If the array is empty, then this will point to sEmptyHdr.
-+    void   *padding;
-     Header *mHdr;
- };
-
-diff --git a/layout/svg/base/src/nsSVGGlyphFrame.cpp b/layout/svg/base/src/nsSVGGlyphFrame.cpp
-index 6d452d0..3ce4193 100644
---- a/layout/svg/base/src/nsSVGGlyphFrame.cpp
-+++ b/layout/svg/base/src/nsSVGGlyphFrame.cpp
-@@ -169,8 +169,8 @@ private:
-   PRBool SetupForDirectTextRun(gfxContext *aContext, float aScale);
-   void SetupFor(gfxContext *aContext, float aScale);
- 
--  nsSVGGlyphFrame *mSource;
-   nsAutoTArray<CharacterPosition,80> mPositions;
-+  nsSVGGlyphFrame *mSource;
-   gfxMatrix mInitialMatrix;
-   // Textrun advance width from start to mCurrentChar, in appunits
-   gfxFloat mCurrentAdvance;
diff --git a/pkgs/applications/networking/browsers/firefox/xulrunner-chromium-mips.patch b/pkgs/applications/networking/browsers/firefox/xulrunner-chromium-mips.patch
deleted file mode 100644
index d309f5fb6e80..000000000000
--- a/pkgs/applications/networking/browsers/firefox/xulrunner-chromium-mips.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-http://gentoo-overlays.zugaina.org/loongson/portage/net-libs/xulrunner/files/xulrunner-chromium-mips.patch
-
-diff --git a/ipc/chromium/src/base/atomicops.h b/ipc/chromium/src/base/atomicops.h
-index 87df918..363bf63 100644
---- a/ipc/chromium/src/base/atomicops.h
-+++ b/ipc/chromium/src/base/atomicops.h
-@@ -132,6 +132,8 @@ Atomic64 Release_Load(volatile const Atomic64* ptr);
- #include "base/atomicops_internals_x86_gcc.h"
- #elif defined(COMPILER_GCC) && defined(ARCH_CPU_ARM_FAMILY)
- #include "base/atomicops_internals_arm_gcc.h"
-+#elif defined(COMPILER_GCC) && defined(ARCH_CPU_MIPS_FAMILY)
-+#include "base/atomicops_internals_mips_gcc.h"
- #else
- #error "Atomic operations are not supported on your platform"
- #endif
-diff --git a/ipc/chromium/src/base/atomicops_internals_mips_gcc.h b/ipc/chromium/src/base/atomicops_internals_mips_gcc.h
-new file mode 100644
-index 0000000..d1b87ee
---- /dev/null
-+++ b/ipc/chromium/src/base/atomicops_internals_mips_gcc.h
-@@ -0,0 +1,160 @@
-+// Copyright (c) 2010 Zhang, Le <r0bertz@gentoo.org>
-+// Use of this source code is governed by GPLv2.
-+
-+// This file is an internal atomic implementation, use base/atomicops.h instead.
-+
-+#ifndef BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
-+#define BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
-+
-+#define ATOMICOPS_COMPILER_BARRIER() __asm__ __volatile__("" : : : "memory")
-+
-+namespace base {
-+namespace subtle {
-+
-+// 32-bit low-level operations on any platform.
-+
-+inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
-+                                         Atomic32 old_value,
-+                                         Atomic32 new_value) {
-+  Atomic32 prev;
-+   __asm__ __volatile__(
-+                       " .set  push        \n"
-+                       " .set  noat        \n"
-+                       " .set  mips3       \n"
-+                       "1: ll  %0, %2      \n"
-+                       " bne %0, %z3, 2f   \n"
-+                       " .set  mips0       \n"
-+                       " move  $1, %z4     \n"
-+                       " .set  mips3       \n"
-+                       " sc  $1, %1        \n"
-+                       " beqz  $1, 3f      \n"
-+                       "2:                 \n"
-+                       " .subsection 2     \n"
-+                       "3: b 1b            \n"
-+                       " .previous         \n"
-+                       " .set  pop         \n"
-+                       : "=&r" (prev), "=R" (*ptr)       
-+                       : "R" (*ptr), "Jr" (old_value), "Jr" (new_value)     
-+                       : "memory");
-+  return prev;
-+}
-+
-+inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
-+                                         Atomic32 new_value) {
-+  unsigned int ret_value;
-+  unsigned long dummy;
-+
-+  __asm__ __volatile__("       .set    mips3                                   \n"
-+                       "1:     ll      %0, %3                  # xchg_u32      \n"
-+                       "       .set    mips0                                   \n"
-+                       "       move    %2, %z4                                 \n"
-+                       "       .set    mips3                                   \n"
-+                       "       sc      %2, %1                                  \n"
-+                       "       beqz    %2, 2f                                  \n"
-+                       "       .subsection 2                                   \n"
-+                       "2:     b       1b                                      \n"
-+                       "       .previous                                       \n"
-+                       "       .set    mips0                                   \n"
-+                       : "=&r" (ret_value), "=m" (*ptr), "=&r" (dummy)
-+                       : "R" (*ptr), "Jr" (new_value)
-+                       : "memory");
-+
-+  return ret_value;  // Now it's the previous value.
-+}
-+
-+inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
-+                                          Atomic32 increment) {
-+  Atomic32 temp, result;
-+    __asm__ __volatile__(
-+    " .set  mips3         \n"
-+    "1: ll  %1, %2    # atomic_add_return \n"
-+    " addu  %0, %1, %3        \n"
-+    " sc  %0, %2          \n"
-+    " beqz  %0, 2f          \n"
-+    " addu  %0, %1, %3        \n"
-+    " .subsection 2         \n"
-+    "2: b 1b          \n"
-+    " .previous         \n"
-+    " .set  mips0         \n"
-+    : "=&r" (result), "=&r" (temp), "=m" (*ptr)
-+    : "Ir" (increment), "m" (*ptr)
-+    : "memory");
-+  return result;
-+}
-+
-+inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
-+                                        Atomic32 increment) {
-+  Atomic32 temp, result;
-+    __asm__ __volatile__(
-+    " .set  mips3         \n"
-+    "1: ll  %1, %2    # atomic_add_return \n"
-+    " addu  %0, %1, %3        \n"
-+    " sc  %0, %2          \n"
-+    " beqz  %0, 2f          \n"
-+    " addu  %0, %1, %3        \n"
-+    " .subsection 2         \n"
-+    "2: b 1b          \n"
-+    " .previous         \n"
-+    " .set  mips0         \n"
-+    : "=&r" (result), "=&r" (temp), "=m" (*ptr)
-+    : "Ir" (increment), "m" (*ptr)
-+    : "memory");
-+  __asm__ __volatile__("sync" : : : "memory");
-+  return result;
-+}
-+
-+inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
-+                                       Atomic32 old_value,
-+                                       Atomic32 new_value) {
-+  Atomic32 x = NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+  __asm__ __volatile__("sync" : : : "memory");
-+  return x;
-+}
-+
-+inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
-+                                       Atomic32 old_value,
-+                                       Atomic32 new_value) {
-+  return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
-+}
-+
-+inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
-+  *ptr = value;
-+}
-+
-+inline void MemoryBarrier() {
-+  __asm__ __volatile__("sync" : : : "memory");
-+}
-+
-+inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
-+  *ptr = value;
-+  __asm__ __volatile__("sync" : : : "memory");
-+}
-+
-+inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
-+  ATOMICOPS_COMPILER_BARRIER();
-+  *ptr = value; // An x86 store acts as a release barrier.
-+  // See comments in Atomic64 version of Release_Store(), below.
-+}
-+
-+inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
-+  return *ptr;
-+}
-+
-+inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
-+  Atomic32 value = *ptr; // An x86 load acts as a acquire barrier.
-+  // See comments in Atomic64 version of Release_Store(), below.
-+  ATOMICOPS_COMPILER_BARRIER();
-+  return value;
-+}
-+
-+inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
-+  MemoryBarrier();
-+  return *ptr;
-+}
-+
-+} // namespace base::subtle
-+} // namespace base
-+
-+#undef ATOMICOPS_COMPILER_BARRIER
-+
-+#endif  // BASE_ATOMICOPS_INTERNALS_MIPS_GCC_H_
-diff --git a/ipc/chromium/src/base/debug_util_posix.cc b/ipc/chromium/src/base/debug_util_posix.cc
-index f7c58b4..50fb41d 100644
---- a/ipc/chromium/src/base/debug_util_posix.cc
-+++ b/ipc/chromium/src/base/debug_util_posix.cc
-@@ -108,7 +108,7 @@ bool DebugUtil::BeingDebugged() {
- 
- // static
- void DebugUtil::BreakDebugger() {
--#if !defined(ARCH_CPU_ARM_FAMILY)
-+#if !defined(ARCH_CPU_ARM_FAMILY) && !defined(ARCH_CPU_MIPS_FAMILY)
-   asm ("int3");
- #endif
- }
-diff --git a/ipc/chromium/src/build/build_config.h b/ipc/chromium/src/build/build_config.h
-index 36f83e7..128bbc7 100644
---- a/ipc/chromium/src/build/build_config.h
-+++ b/ipc/chromium/src/build/build_config.h
-@@ -57,6 +57,8 @@
- #define ARCH_CPU_ARMEL 1
- #define ARCH_CPU_32_BITS 1
- #define WCHAR_T_IS_UNSIGNED 1
-+#elif defined(__MIPSEL__)
-+#define ARCH_CPU_MIPS_FAMILY 1
- #else
- #error Please add support for your architecture in build/build_config.h
- #endif
diff --git a/pkgs/applications/networking/browsers/firefox/xulrunner-mips-n32.patch b/pkgs/applications/networking/browsers/firefox/xulrunner-mips-n32.patch
deleted file mode 100644
index 8be510352607..000000000000
--- a/pkgs/applications/networking/browsers/firefox/xulrunner-mips-n32.patch
+++ /dev/null
@@ -1,764 +0,0 @@
-http://gentoo-overlays.zugaina.org/loongson/portage/net-libs/xulrunner/files/xulrunner-mips-n32.patch
-
-From 1aa3577cf7e79b574bd2cff058ea00221194869b Mon Sep 17 00:00:00 2001
-From: Zhang Le <r0bertz@gentoo.org>
-Date: Thu, 12 Mar 2009 02:24:34 +0800
-Subject: [PATCH 2/2] xulrunner mips n32 ABI patch
-
-Signed-off-by: Zhang Le <r0bertz@gentoo.org>
----
- xpcom/reflect/xptcall/src/md/unix/Makefile.in      |    5 +
- .../xptcall/src/md/unix/xptcinvoke_asm_mips64.s    |  159 ++++++++++++++
- .../xptcall/src/md/unix/xptcinvoke_mips64.cpp      |  173 ++++++++++++++++
- .../xptcall/src/md/unix/xptcstubs_asm_mips64.s     |  149 +++++++++++++
- .../xptcall/src/md/unix/xptcstubs_mips64.cpp       |  218 ++++++++++++++++++++
- 5 files changed, 704 insertions(+), 0 deletions(-)
- create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s
- create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp
- create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s
- create mode 100644 xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp
-
-diff --git a/xpcom/reflect/xptcall/src/md/unix/Makefile.in b/xpcom/reflect/xptcall/src/md/unix/Makefile.in
-index 524174e..63586cf 100644
---- a/xpcom/reflect/xptcall/src/md/unix/Makefile.in
-+++ b/xpcom/reflect/xptcall/src/md/unix/Makefile.in
-@@ -274,8 +274,13 @@ endif
- 
- ifeq ($(OS_ARCH),Linux)
- ifneq (,$(findstring mips, $(OS_TEST)))
-+ifneq (,$(findstring mips64, $(OS_TEST)))
-+CPPSRCS		:= xptcinvoke_mips64.cpp xptcstubs_mips64.cpp
-+ASFILES		:= xptcinvoke_asm_mips64.s xptcstubs_asm_mips64.s
-+else
- CPPSRCS		:= xptcinvoke_mips.cpp xptcstubs_mips.cpp
- ASFILES		:= xptcinvoke_asm_mips.s xptcstubs_asm_mips.s
-+endif
- ASFLAGS		+= -I$(DIST)/include -x assembler-with-cpp
- endif
- endif
-diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s
-new file mode 100644
-index 0000000..f146ad8
---- /dev/null
-+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_asm_mips64.s
-@@ -0,0 +1,159 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Netscape Communications Corporation.
-+ * Portions created by the Initial Developer are Copyright (C) 1998
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *   ZHANG Le    <r0bertz@gentoo.org>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either of the GNU General Public License Version 2 or later (the "GPL"),
-+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+#include <sys/regdef.h>
-+#include <sys/asm.h>
-+
-+.text
-+.globl  invoke_count_words
-+.globl  invoke_copy_to_stack
-+
-+LOCALSZ=7		# a0, a1, a2, a3, s0, ra, gp
-+FRAMESZ=(((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
-+
-+RAOFF=FRAMESZ-(1*SZREG)
-+A0OFF=FRAMESZ-(2*SZREG)
-+A1OFF=FRAMESZ-(3*SZREG)
-+A2OFF=FRAMESZ-(4*SZREG)
-+A3OFF=FRAMESZ-(5*SZREG)
-+S0OFF=FRAMESZ-(6*SZREG)
-+GPOFF=FRAMESZ-(7*SZREG)
-+
-+#
-+# _NS_InvokeByIndex_P(that, methodIndex, paramCount, params)
-+#                      a0       a1          a2         a3
-+
-+NESTED(_NS_InvokeByIndex_P, FRAMESZ, ra)
-+	PTR_SUBU sp, FRAMESZ
-+	SETUP_GP64(GPOFF, _NS_InvokeByIndex_P)
-+
-+	REG_S	ra, RAOFF(sp)
-+	REG_S	a0, A0OFF(sp)
-+	REG_S	a1, A1OFF(sp)
-+	REG_S	a2, A2OFF(sp)
-+	REG_S	a3, A3OFF(sp)
-+	REG_S	s0, S0OFF(sp)
-+
-+	# invoke_count_words(paramCount, params)
-+	move    a0, a2
-+	move    a1, a3
-+	jal     invoke_count_words
-+
-+	# invoke_copy_to_stack(PRUint32* d, PRUint32 paramCount,
-+	#                      nsXPTCVariant* s, PRUint32 *reg)
-+
-+	REG_L   a1, A2OFF(sp)   # a1 - paramCount
-+	REG_L	a2, A3OFF(sp)	# a2 - params
-+
-+	# save sp before we copy the params to the stack
-+	move	t0, sp
-+
-+	# assume full size of 16 bytes per param to be safe
-+	sll	v0, 4		# 16 bytes * num params
-+	subu	sp, sp, v0	# make room
-+	move	a0, sp		# a0 - param stack address
-+
-+	# create temporary stack space to write int and fp regs
-+	subu    sp, 64          # 64 = 8 regs of 8 bytes
-+	move    a3, sp
-+
-+	# save the old sp and save the arg stack
-+	subu	sp, sp, 16
-+	REG_S	t0, 0(sp)
-+	REG_S	a0, 8(sp)
-+
-+	# copy the param into the stack areas
-+	jal	invoke_copy_to_stack
-+
-+	REG_L	t3, 8(sp)	# get previous a0
-+	REG_L	sp, 0(sp)	# get orig sp back
-+
-+	REG_L	a0, A0OFF(sp)	# a0 - that
-+	REG_L	a1, A1OFF(sp)	# a1 - methodIndex
-+
-+	# t1 = methodIndex * pow(2, PTRLOG)
-+	# (use shift instead of mult)
-+	sll	t1, a1, PTRLOG
-+
-+	# calculate the function we need to jump to,
-+	# which must then be saved in t9
-+	lw	t9, 0(a0)
-+	addu	t9, t9, t1
-+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
-+	lw	t9, (t9)
-+#else /* not G++ V3 ABI */
-+	lw	t9, 2*PTRSIZE(t9)
-+#endif /* G++ V3 ABI */
-+
-+	# get register save area from invoke_copy_to_stack
-+	subu	t1, t3, 64
-+
-+	# a1..a7 and f13..f19 should now be set to what
-+	# invoke_copy_to_stack told us. skip a0 and f12
-+	# because that's the "this" pointer
-+
-+	REG_L	a1,  0(t1)
-+	REG_L	a2,  8(t1)
-+	REG_L	a3, 16(t1)
-+	REG_L	a4, 24(t1)
-+	REG_L	a5, 32(t1)
-+	REG_L	a6, 40(t1)
-+	REG_L	a7, 48(t1)
-+
-+	l.d	$f13,  0(t1)
-+	l.d	$f14,  8(t1)
-+	l.d	$f15, 16(t1)
-+	l.d	$f16, 24(t1)
-+	l.d	$f17, 32(t1)
-+	l.d	$f18, 40(t1)
-+	l.d	$f19, 48(t1)
-+
-+	# save away our stack pointer and create
-+	# the stack pointer for the function
-+	move	s0, sp
-+	move	sp, t3
-+
-+	jalr	t9
-+
-+	move	sp, s0
-+
-+	RESTORE_GP64
-+	REG_L	ra, RAOFF(sp)
-+	REG_L	s0, S0OFF(sp)
-+	PTR_ADDU	sp, FRAMESZ
-+	j	ra
-+.end _NS_InvokeByIndex_P
-diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp
-new file mode 100644
-index 0000000..d1d1a7d
---- /dev/null
-+++ b/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_mips64.cpp
-@@ -0,0 +1,173 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Netscape Communications Corporation.
-+ * Portions created by the Initial Developer are Copyright (C) 1998
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *   ZHANG Le    <r0bertz@gentoo.org>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either of the GNU General Public License Version 2 or later (the "GPL"),
-+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+/* Platform specific code to invoke XPCOM methods on native objects */
-+
-+#include "xptcprivate.h"
-+
-+#if (_MIPS_SIM != _ABIN32)
-+#error "This code is for MIPS N32 only"
-+#endif
-+
-+extern "C" uint32
-+invoke_count_words(PRUint32 paramCount, nsXPTCVariant* s)
-+{
-+    return paramCount;
-+}
-+
-+extern "C" void
-+invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount,
-+                     nsXPTCVariant* s, PRUint64 *regs)
-+{
-+#define N_ARG_REGS       7       /* 8 regs minus 1 for "this" ptr */
-+
-+    for (PRUint32 i = 0; i < paramCount; i++, s++)
-+    {
-+        if (s->IsPtrData()) {
-+            if (i < N_ARG_REGS)
-+               regs[i] = (PRUint64)s->ptr;
-+            else
-+               *d++ = (PRUint64)s->ptr;
-+            continue;
-+        }
-+        switch (s->type) {
-+        //
-+        // signed types first
-+        //
-+        case nsXPTType::T_I8:
-+           if (i < N_ARG_REGS)
-+              ((PRInt64*)regs)[i] = s->val.i8;
-+           else
-+              *d++ = s->val.i8;
-+           break;
-+        case nsXPTType::T_I16:
-+           if (i < N_ARG_REGS)
-+              ((PRInt64*)regs)[i] = s->val.i16;
-+           else
-+              *d++ = s->val.i16;
-+           break;
-+        case nsXPTType::T_I32:
-+           if (i < N_ARG_REGS)
-+              ((PRInt64*)regs)[i] = s->val.i32;
-+           else
-+              *d++ = s->val.i32;
-+           break;
-+        case nsXPTType::T_I64:
-+           if (i < N_ARG_REGS)
-+              ((PRInt64*)regs)[i] = s->val.i64;
-+           else
-+              *d++ = s->val.i64;
-+           break;
-+        //
-+        // unsigned types next
-+        //
-+        case nsXPTType::T_U8:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.u8;
-+           else
-+              *d++ = s->val.u8;
-+           break;
-+        case nsXPTType::T_U16:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.u16;
-+           else
-+              *d++ = s->val.u16;
-+           break;
-+        case nsXPTType::T_U32:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.u32;
-+           else
-+              *d++ = s->val.u32;
-+           break;
-+        case nsXPTType::T_U64:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.u64;
-+           else
-+              *d++ = s->val.u64;
-+           break;
-+        case nsXPTType::T_FLOAT:
-+           if (i < N_ARG_REGS)
-+              *(float*)&regs[i] = s->val.f;
-+           else
-+              *(float*)d++ = s->val.f;
-+           break;
-+        case nsXPTType::T_DOUBLE:
-+           if (i < N_ARG_REGS)
-+              *(double*)&regs[i] = s->val.d;
-+           else
-+              *(double*)d++ = s->val.d;
-+           break;
-+        case nsXPTType::T_BOOL:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.b;
-+           else
-+              *d++ = s->val.b;
-+           break;
-+        case nsXPTType::T_CHAR:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.c;
-+           else
-+              *d++ = s->val.c;
-+           break;
-+        case nsXPTType::T_WCHAR:
-+           if (i < N_ARG_REGS)
-+              regs[i] = s->val.wc;
-+           else
-+              *d++ = s->val.wc;
-+           break;
-+        default:
-+           // all the others are plain pointer types
-+           if (i < N_ARG_REGS)
-+              regs[i] = (PRUint64)s->val.p;
-+           else
-+              *d++ = (PRUint64)s->val.p;
-+           break;
-+        }
-+    }
-+}
-+
-+extern "C" nsresult _NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
-+                                        PRUint32 paramCount,
-+                                        nsXPTCVariant* params);
-+
-+EXPORT_XPCOM_API(nsresult)
-+NS_InvokeByIndex_P(nsISupports* that, PRUint32 methodIndex,
-+                   PRUint32 paramCount, nsXPTCVariant* params)
-+{
-+    return _NS_InvokeByIndex_P(that, methodIndex, paramCount, params);
-+}
-diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s
-new file mode 100644
-index 0000000..dfee24b
---- /dev/null
-+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_asm_mips64.s
-@@ -0,0 +1,149 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Netscape Communications Corporation.
-+ * Portions created by the Initial Developer are Copyright (C) 1998
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *   ZHANG Le    <r0bertz@gentoo.org>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either of the GNU General Public License Version 2 or later (the "GPL"),
-+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+#include <sys/regdef.h>
-+#include <sys/asm.h>
-+
-+LOCALSZ=16
-+FRAMESZ=(((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
-+
-+A1OFF=FRAMESZ-(9*SZREG)
-+A2OFF=FRAMESZ-(8*SZREG)
-+A3OFF=FRAMESZ-(7*SZREG)
-+A4OFF=FRAMESZ-(6*SZREG)
-+A5OFF=FRAMESZ-(5*SZREG)
-+A6OFF=FRAMESZ-(4*SZREG)
-+A7OFF=FRAMESZ-(3*SZREG)
-+GPOFF=FRAMESZ-(2*SZREG)
-+RAOFF=FRAMESZ-(1*SZREG)
-+
-+F13OFF=FRAMESZ-(16*SZREG)
-+F14OFF=FRAMESZ-(15*SZREG)
-+F15OFF=FRAMESZ-(14*SZREG)
-+F16OFF=FRAMESZ-(13*SZREG)
-+F17OFF=FRAMESZ-(12*SZREG)
-+F18OFF=FRAMESZ-(11*SZREG)
-+F19OFF=FRAMESZ-(10*SZREG)
-+
-+#define SENTINEL_ENTRY(n)         /* defined in cpp file, not here */
-+
-+#if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
-+#define STUB_ENTRY(x)						\
-+	.if x < 10;						\
-+	MAKE_STUB(x, _ZN14nsXPTCStubBase5Stub ##x ##Ev);	\
-+	.elseif x < 100;					\
-+	MAKE_STUB(x, _ZN14nsXPTCStubBase6Stub ##x ##Ev);	\
-+	.elseif x < 1000;					\
-+	MAKE_STUB(x, _ZN14nsXPTCStubBase7Stub ##x ##Ev);	\
-+	.else;							\
-+	.err;							\
-+	.endif
-+#else /* not G++ V3 ABI */
-+#define STUB_ENTRY(x)						\
-+	MAKE_STUB(x, Stub ##x ##__14nsXPTCStubBase)
-+#endif /* G++ V3 ABI */
-+
-+#define MAKE_STUB(x, name)					\
-+	.globl	name;		\
-+	.type	name,@function;	\
-+	.aent	name,0;		\
-+name:;				\
-+	PTR_SUBU sp,FRAMESZ;					\
-+	SETUP_GP64(GPOFF, name);				\
-+	li	t0,x;						\
-+	b	sharedstub;					\
-+
-+#
-+# open a dummy frame for the function entries
-+#
-+	.text
-+	.align	2
-+	.type	dummy,@function
-+	.ent	dummy, 0
-+dummy:
-+	.frame	sp, FRAMESZ, ra
-+	.mask	0x90000FF0, RAOFF-FRAMESZ
-+	.fmask	0x000FF000, F19OFF-FRAMESZ
-+
-+#include "xptcstubsdef.inc"
-+
-+sharedstub:
-+
-+	REG_S	a1, A1OFF(sp)
-+	REG_S	a2, A2OFF(sp)
-+	REG_S	a3, A3OFF(sp)
-+	REG_S	a4, A4OFF(sp)
-+	REG_S	a5, A5OFF(sp)
-+	REG_S	a6, A6OFF(sp)
-+	REG_S	a7, A7OFF(sp)
-+	REG_S	ra, RAOFF(sp)
-+
-+	s.d	$f13, F13OFF(sp)
-+	s.d	$f14, F14OFF(sp)
-+	s.d	$f15, F15OFF(sp)
-+	s.d	$f16, F16OFF(sp)
-+	s.d	$f17, F17OFF(sp)
-+	s.d	$f18, F18OFF(sp)
-+	s.d	$f19, F19OFF(sp)
-+
-+	# t0 is methodIndex
-+	move	a1, t0
-+
-+	# a2 is stack address where extra function params
-+	# are stored that do not fit in registers
-+	move	a2, sp
-+	addi	a2, FRAMESZ
-+
-+	# a3 is stack address of a1..a7
-+	move	a3, sp
-+	addi	a3, A1OFF
-+
-+	# a4 is stack address of f13..f19
-+	move	a4, sp
-+	addi	a4, F13OFF
-+
-+	# PrepareAndDispatch(that, methodIndex, args, gprArgs, fpArgs)
-+	#                     a0       a1        a2     a3       a4
-+	#
-+	jal	PrepareAndDispatch
-+
-+	REG_L	ra, RAOFF(sp)
-+	RESTORE_GP64
-+
-+	PTR_ADDU sp, FRAMESZ
-+	j	ra
-+	END(dummy)
-diff --git a/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp
-new file mode 100644
-index 0000000..c404065
---- /dev/null
-+++ b/xpcom/reflect/xptcall/src/md/unix/xptcstubs_mips64.cpp
-@@ -0,0 +1,218 @@
-+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-+/* ***** BEGIN LICENSE BLOCK *****
-+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
-+ *
-+ * The contents of this file are subject to the Mozilla Public License Version
-+ * 1.1 (the "License"); you may not use this file except in compliance with
-+ * the License. You may obtain a copy of the License at
-+ * http://www.mozilla.org/MPL/
-+ *
-+ * Software distributed under the License is distributed on an "AS IS" basis,
-+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
-+ * for the specific language governing rights and limitations under the
-+ * License.
-+ *
-+ * The Original Code is mozilla.org code.
-+ *
-+ * The Initial Developer of the Original Code is
-+ * Netscape Communications Corporation.
-+ * Portions created by the Initial Developer are Copyright (C) 1999
-+ * the Initial Developer. All Rights Reserved.
-+ *
-+ * Contributor(s):
-+ *   ZHANG Le    <r0bertz@gentoo.org>
-+ *
-+ * Alternatively, the contents of this file may be used under the terms of
-+ * either of the GNU General Public License Version 2 or later (the "GPL"),
-+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
-+ * in which case the provisions of the GPL or the LGPL are applicable instead
-+ * of those above. If you wish to allow use of your version of this file only
-+ * under the terms of either the GPL or the LGPL, and not to allow others to
-+ * use your version of this file under the terms of the MPL, indicate your
-+ * decision by deleting the provisions above and replace them with the notice
-+ * and other provisions required by the GPL or the LGPL. If you do not delete
-+ * the provisions above, a recipient may use your version of this file under
-+ * the terms of any one of the MPL, the GPL or the LGPL.
-+ *
-+ * ***** END LICENSE BLOCK ***** */
-+
-+#include "xptcprivate.h"
-+#include "xptiprivate.h"
-+
-+#if (_MIPS_SIM != _ABIN32)
-+#error "This code is for MIPS N32 only"
-+#endif
-+
-+/*
-+ * This is for MIPS N32 ABI
-+ *
-+ * When we're called, the "gp" registers are stored in gprData and
-+ * the "fp" registers are stored in fprData.  There are 8 regs
-+ * available which coorespond to the first 7 parameters of the
-+ * function and the "this" pointer.  If there are additional parms,
-+ * they are stored on the stack at address "args".
-+ *
-+ */
-+extern "C" nsresult
-+PrepareAndDispatch(nsXPTCStubBase* self, PRUint32 methodIndex, PRUint64* args,
-+                   PRUint64 *gprData, double *fprData)
-+{
-+#define PARAM_BUFFER_COUNT		16
-+#define PARAM_GPR_COUNT			7
-+#define PARAM_FPR_COUNT			7
-+
-+    nsXPTCMiniVariant paramBuffer[PARAM_BUFFER_COUNT];
-+    nsXPTCMiniVariant* dispatchParams = NULL;
-+    const nsXPTMethodInfo* info;
-+    PRUint8 paramCount;
-+    PRUint8 i;
-+    nsresult result = NS_ERROR_FAILURE;
-+
-+    NS_ASSERTION(self,"no self");
-+
-+    self->mEntry->GetMethodInfo(PRUint16(methodIndex), &info);
-+    NS_ASSERTION(info,"no method info");
-+
-+    paramCount = info->GetParamCount();
-+
-+    // setup variant array pointer
-+    if(paramCount > PARAM_BUFFER_COUNT)
-+        dispatchParams = new nsXPTCMiniVariant[paramCount];
-+    else
-+        dispatchParams = paramBuffer;
-+    NS_ASSERTION(dispatchParams,"no place for params");
-+
-+    PRUint64* ap = args;
-+    PRUint32 iCount = 0;
-+    for(i = 0; i < paramCount; i++)
-+    {
-+        const nsXPTParamInfo& param = info->GetParam(i);
-+        const nsXPTType& type = param.GetType();
-+        nsXPTCMiniVariant* dp = &dispatchParams[i];
-+
-+        if(param.IsOut() || !type.IsArithmetic())
-+        {
-+            if (iCount < PARAM_GPR_COUNT)
-+            	dp->val.p = (void*)gprData[iCount++];
-+            else
-+            	dp->val.p = (void*)*ap++;
-+            continue;
-+        }
-+        // else
-+        switch(type)
-+        {
-+        case nsXPTType::T_I8:
-+           if (iCount < PARAM_GPR_COUNT)
-+              dp->val.i8  = (PRInt8)gprData[iCount++];
-+           else
-+              dp->val.i8  = (PRInt8)*ap++;
-+           break;
-+
-+        case nsXPTType::T_I16:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.i16  = (PRInt16)gprData[iCount++];
-+            else
-+               dp->val.i16  = (PRInt16)*ap++;
-+            break;
-+
-+        case nsXPTType::T_I32:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.i32  = (PRInt32)gprData[iCount++];
-+            else
-+               dp->val.i32  = (PRInt32)*ap++;
-+            break;
-+
-+        case nsXPTType::T_I64:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.i64  = (PRInt64)gprData[iCount++];
-+            else
-+               dp->val.i64  = (PRInt64)*ap++;
-+            break;
-+
-+        case nsXPTType::T_U8:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.u8  = (PRUint8)gprData[iCount++];
-+            else
-+               dp->val.u8  = (PRUint8)*ap++;
-+            break;
-+
-+        case nsXPTType::T_U16:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.u16  = (PRUint16)gprData[iCount++];
-+            else
-+                dp->val.u16  = (PRUint16)*ap++;
-+            break;
-+
-+        case nsXPTType::T_U32:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.u32  = (PRUint32)gprData[iCount++];
-+            else
-+               dp->val.u32  = (PRUint32)*ap++;
-+            break;
-+
-+        case nsXPTType::T_U64:
-+            if (iCount < PARAM_GPR_COUNT)
-+               dp->val.u64  = (PRUint64)gprData[iCount++];
-+            else
-+               dp->val.u64  = (PRUint64)*ap++;
-+            break;
-+
-+        case nsXPTType::T_FLOAT:
-+             if (iCount < PARAM_FPR_COUNT)
-+                dp->val.f  = (double)fprData[iCount++];
-+             else
-+                dp->val.f  = *((double*)ap++);
-+             break;
-+
-+        case nsXPTType::T_DOUBLE:
-+              if (iCount < PARAM_FPR_COUNT)
-+                 dp->val.d  = (double)fprData[iCount++];
-+              else
-+                 dp->val.d  = *((double*)ap++);
-+              break;
-+
-+        case nsXPTType::T_BOOL:
-+           if (iCount < PARAM_GPR_COUNT)
-+              dp->val.b  = (PRBool)gprData[iCount++];
-+           else
-+              dp->val.b  = (PRBool)*ap++;
-+           break;
-+
-+        case nsXPTType::T_CHAR:
-+           if (iCount < PARAM_GPR_COUNT)
-+              dp->val.c  = (char)gprData[iCount++];
-+           else
-+              dp->val.c  = (char)*ap++;
-+           break;
-+
-+        case nsXPTType::T_WCHAR:
-+           if (iCount < PARAM_GPR_COUNT)
-+              dp->val.wc  = (wchar_t)gprData[iCount++];
-+           else
-+              dp->val.wc  = (wchar_t)*ap++;
-+           break;
-+
-+        default:
-+            NS_ASSERTION(0, "bad type");
-+            break;
-+        }
-+    }
-+
-+    result = self->mOuter->CallMethod((PRUint16)methodIndex, info, dispatchParams);
-+
-+    if(dispatchParams != paramBuffer)
-+        delete [] dispatchParams;
-+
-+    return result;
-+}
-+
-+#define STUB_ENTRY(n)		/* defined in the assembly file */
-+
-+#define SENTINEL_ENTRY(n) \
-+nsresult nsXPTCStubBase::Sentinel##n() \
-+{ \
-+    NS_ASSERTION(0,"nsXPTCStubBase::Sentinel called"); \
-+    return NS_ERROR_NOT_IMPLEMENTED; \
-+}
-+
-+#include "xptcstubsdef.inc"
--- 
-1.6.2
-
diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
index 44f191e54f1d..05e3a8bf613a 100644
--- a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
+++ b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix
@@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "913fd39e70c564cb210c2544a88869f9d1a448184421f000b14b2bc5ba718b49";
   };
 
-  buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser.xulrunner gmtk ];
+  buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser gmtk ];
 
   # !!! fix this
   preBuild =
     ''
-      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser.xulrunner}/include/xulrunner-*) -I${browser.nspr}/include/nspr"
+      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser}/include/xulrunner-*) -I${browser.nspr}/include/nspr"
       echo $NIX_CFLAGS_COMPILE
     '';
 
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "A browser plugin that uses GNOME MPlayer to play media in a browser";
     homepage = http://kdekorte.googlepages.com/gecko-mediaplayer;
+    broken = true;
   };
 }
 
diff --git a/pkgs/applications/networking/mumble/default.nix b/pkgs/applications/networking/mumble/default.nix
index b2b2e37fd663..0f2a3d93cdbc 100644
--- a/pkgs/applications/networking/mumble/default.nix
+++ b/pkgs/applications/networking/mumble/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, qt4, boost, protobuf, libsndfile
 , speex, libopus, avahi, pkgconfig
 , jackSupport ? false
-, jackaudio ? null
+, jack2 ? null
 , speechdSupport ? false
 , speechd ? null
 }:
 
-assert jackSupport -> jackaudio != null;
+assert jackSupport -> jack2 != null;
 assert speechdSupport -> speechd != null;
 
 let
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ qt4 boost protobuf libsndfile speex
     libopus avahi pkgconfig ]
-    ++ (optional jackSupport jackaudio)
+    ++ (optional jackSupport jack2)
     ++ (optional speechdSupport speechd);
 
   installPhase = ''
diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
new file mode 100644
index 000000000000..403630e25e55
--- /dev/null
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, makeWrapper, glib
+, fontconfig, patchelf, libXext, libX11
+, freetype, libXrender
+}:
+
+let
+  arch = if stdenv.system == "x86_64-linux" then "x86_64"
+    else if stdenv.system == "i686-linux" then "i386"
+    else throw "Spideroak client for: ${stdenv.system} not supported!";
+
+  interpreter = if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2"
+    else if stdenv.system == "i686-linux" then "ld-linux.so.2"
+    else throw "Spideroak client for: ${stdenv.system} not supported!";
+
+  sha256 = if stdenv.system == "x86_64-linux" then "0ax5ij3fwq3q9agf7qkw2zg53fcd82llg734pq3swzpn3z1ajs38"
+    else if stdenv.system == "i686-linux" then "18hvgx8bvd2khnqfn434gd4mflv0w5y8kvim72rvya2kwxsyf3i1"
+    else throw "Spideroak client for: ${stdenv.system} not supported!";
+
+  ldpath = stdenv.lib.makeSearchPath "lib" [
+    glib fontconfig libXext libX11 freetype libXrender 
+  ];
+
+  version = "5.1.6";
+
+in stdenv.mkDerivation {
+  name = "spideroak-${version}";
+  
+  src = fetchurl {
+    name = "spideroak-${version}-${arch}";
+    url = "https://spideroak.com/getbuild?platform=slackware&arch=${arch}&version=${version}";
+    inherit sha256;
+  };
+
+  sourceRoot = ".";
+
+  unpackCmd = "tar -xzf $curSrc";
+
+  installPhase = ''
+    ensureDir "$out"
+    cp -r "./"* "$out"
+    ensureDir "$out/bin"
+    rm "$out/usr/bin/SpiderOak"
+
+    patchelf --set-interpreter ${stdenv.glibc}/lib/${interpreter} \
+      "$out/opt/SpiderOak/lib/SpiderOak"
+
+    RPATH=$out/opt/SpiderOak/lib:${ldpath}
+    makeWrapper $out/opt/SpiderOak/lib/SpiderOak $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \
+      --set QT_PLUGIN_PATH $out/opt/SpiderOak/lib/plugins/ \
+      --set SpiderOak_EXEC_SCRIPT $out/bin/spideroak
+  '';
+
+  buildInputs = [ patchelf makeWrapper ];
+
+  meta = {
+    homepage = "https://spideroak.com";
+    description = "Secure online backup and sychronization";
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with stdenv.lib.maintainers; [ amorsillo ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/applications/science/biology/arb/default.nix b/pkgs/applications/science/biology/arb/default.nix
index 279091f21bd2..2f622e94057b 100644
--- a/pkgs/applications/science/biology/arb/default.nix
+++ b/pkgs/applications/science/biology/arb/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation {
     pkgMaintainer = "http://BioLib.open-bio.org/";
     homepage    = http://www.arb-home.de/;
     priority    = "10";   # because it includes binaries of clustal etc.
+    broken = true;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix
index f9d43037f6a1..93ad94514018 100644
--- a/pkgs/applications/version-management/git-and-tools/github-backup/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/github-backup/default.nix
@@ -7,8 +7,8 @@
 
 cabal.mkDerivation (self: {
   pname = "github-backup";
-  version = "1.20140707";
-  sha256 = "0c15gq91c36xza7yiimqvgk609p9xf9jlzy9683d9p9bx1khpadd";
+  version = "1.20140721";
+  sha256 = "0bnkfmgpk1iaaqck4ppn461fzk3s2761w2nxfrvw10gc934lhrxc";
   isLibrary = false;
   isExecutable = true;
   buildDepends = [
diff --git a/pkgs/applications/video/kdenlive/default.nix b/pkgs/applications/video/kdenlive/default.nix
index d7fab74e6cac..8c51c4f35a3b 100644
--- a/pkgs/applications/video/kdenlive/default.nix
+++ b/pkgs/applications/video/kdenlive/default.nix
@@ -1,28 +1,36 @@
-{ stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon
-, mlt, gettext , qimageblitz, qjson, shared_mime_info, soprano
-, pkgconfig, shared_desktop_ontologies, libv4l }:
+{ stdenv, fetchurl, frei0r, lib, cmake, qt4, perl, kdelibs, automoc4
+, phonon , makeWrapper, mlt, gettext , qimageblitz, qjson
+, shared_mime_info, soprano, pkgconfig, shared_desktop_ontologies
+, libv4l
+}:
 
 stdenv.mkDerivation rec {
   name = "kdenlive-${version}";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchurl {
     url = "mirror://kde/stable/kdenlive/${version}/src/${name}.tar.bz2";
-    sha256 = "1rw2cbzy5mabwijvryyzbhpgldn2zy5jy4j87hl4m1i8ah9lgi7x";
+    sha256 = "17x5srgywcwlbpbs598jwwc62l8313n4dbqx3sdk7p6lyvwk3jln";
   };
 
-  buildInputs =
-    [ cmake qt4 perl kdelibs automoc4 phonon mlt gettext qimageblitz
-      qjson shared_mime_info soprano pkgconfig shared_desktop_ontologies libv4l
-    ];
+  buildInputs = [
+    automoc4 cmake frei0r gettext kdelibs libv4l makeWrapper mlt perl
+    phonon pkgconfig qimageblitz qjson qt4 shared_desktop_ontologies
+    shared_mime_info soprano
+  ];
 
   enableParallelBuilding = true;
 
+  postInstall = ''
+    wrapProgram $out/bin/kdenlive --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
+    wrapProgram $out/bin/kdenlive_render  --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
+  '';
+
   meta = {
     description = "Free and open source video editor";
-    license = "GPLv2+";
+    license = stdenv.lib.licenses.gpl2Plus;
     homepage = http://www.kdenlive.org/;
-    maintainers = with stdenv.lib.maintainers; [viric];
+    maintainers = with stdenv.lib.maintainers; [ goibhniu viric ];
     platforms = with stdenv.lib.platforms; linux;
   };
 }
diff --git a/pkgs/applications/video/mplayer/default.nix b/pkgs/applications/video/mplayer/default.nix
index 6d8780d6cf48..6a385786eff3 100644
--- a/pkgs/applications/video/mplayer/default.nix
+++ b/pkgs/applications/video/mplayer/default.nix
@@ -15,7 +15,7 @@
 , speexSupport ? true, speex ? null
 , theoraSupport ? true, libtheora ? null
 , x264Support ? false, x264 ? null
-, jackaudioSupport ? false, jackaudio ? null
+, jackaudioSupport ? false, jack2 ? null
 , pulseSupport ? false, pulseaudio ? null
 , bs2bSupport ? false, libbs2b ? null
 # For screenshots
@@ -40,7 +40,7 @@ assert lameSupport -> lame != null;
 assert speexSupport -> speex != null;
 assert theoraSupport -> libtheora != null;
 assert x264Support -> x264 != null;
-assert jackaudioSupport -> jackaudio != null;
+assert jackaudioSupport -> jack2 != null;
 assert pulseSupport -> pulseaudio != null;
 assert bs2bSupport -> libbs2b != null;
 assert libpngSupport -> libpng != null;
@@ -109,7 +109,7 @@ stdenv.mkDerivation rec {
     ++ optional dvdnavSupport libdvdnav
     ++ optional bluraySupport libbluray
     ++ optional cddaSupport cdparanoia
-    ++ optional jackaudioSupport jackaudio
+    ++ optional jackaudioSupport jack2
     ++ optionals amrSupport [ amrnb amrwb ]
     ++ optional x264Support x264
     ++ optional pulseSupport pulseaudio
diff --git a/pkgs/applications/video/mplayer2/default.nix b/pkgs/applications/video/mplayer2/default.nix
index 74b74037e50e..f0830f007d91 100644
--- a/pkgs/applications/video/mplayer2/default.nix
+++ b/pkgs/applications/video/mplayer2/default.nix
@@ -10,7 +10,7 @@
 , bluraySupport ? true, libbluray ? null
 , speexSupport ? true, speex ? null
 , theoraSupport ? true, libtheora ? null
-, jackaudioSupport ? false, jackaudio ? null
+, jackaudioSupport ? false, jack2 ? null
 , pulseSupport ? true, pulseaudio ? null
 , bs2bSupport ? false, libbs2b ? null
 # For screenshots
@@ -28,7 +28,7 @@ assert dvdnavSupport -> libdvdnav != null;
 assert bluraySupport -> libbluray != null;
 assert speexSupport -> speex != null;
 assert theoraSupport -> libtheora != null;
-assert jackaudioSupport -> jackaudio != null;
+assert jackaudioSupport -> jack2 != null;
 assert pulseSupport -> pulseaudio != null;
 assert bs2bSupport -> libbs2b != null;
 assert libpngSupport -> libpng != null;
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
     ++ optional xineramaSupport libXinerama
     ++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
     ++ optional bluraySupport libbluray
-    ++ optional jackaudioSupport jackaudio
+    ++ optional jackaudioSupport jack2
     ++ optional pulseSupport pulseaudio
     ++ optional screenSaverSupport libXScrnSaver
     ++ optional vdpauSupport libvdpau
diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix
index 53136010c826..4eec9afdbf3d 100644
--- a/pkgs/applications/video/mpv/default.nix
+++ b/pkgs/applications/video/mpv/default.nix
@@ -14,7 +14,7 @@
 , bluraySupport ? true, libbluray ? null
 , speexSupport ? true, speex ? null
 , theoraSupport ? true, libtheora ? null
-, jackaudioSupport ? true, jackaudio ? null
+, jackaudioSupport ? true, jack2 ? null
 , pulseSupport ? true, pulseaudio ? null
 , bs2bSupport ? false, libbs2b ? null
 # For screenshots
@@ -36,7 +36,7 @@ assert dvdnavSupport -> libdvdnav != null;
 assert bluraySupport -> libbluray != null;
 assert speexSupport -> speex != null;
 assert theoraSupport -> libtheora != null;
-assert jackaudioSupport -> jackaudio != null;
+assert jackaudioSupport -> jack2 != null;
 assert pulseSupport -> pulseaudio != null;
 assert bs2bSupport -> libbs2b != null;
 assert libpngSupport -> libpng != null;
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
     ++ optional dvdreadSupport libdvdread
     ++ optionals dvdnavSupport [ libdvdnav libdvdnav.libdvdread ]
     ++ optional bluraySupport libbluray
-    ++ optional jackaudioSupport jackaudio
+    ++ optional jackaudioSupport jack2
     ++ optional pulseSupport pulseaudio
     ++ optional screenSaverSupport libXScrnSaver
     ++ optional vdpauSupport libvdpau
diff --git a/pkgs/applications/video/shotcut/CuteLogger.patch b/pkgs/applications/video/shotcut/CuteLogger.patch
new file mode 100644
index 000000000000..77b451cb437d
--- /dev/null
+++ b/pkgs/applications/video/shotcut/CuteLogger.patch
@@ -0,0 +1,13 @@
+diff --git shotcut-14.07/CuteLogger/CuteLogger.pro shotcut-14.07/CuteLogger/CuteLogger.pro
+index 501eddc..a5290b0 100644
+--- shotcut-14.07/CuteLogger/CuteLogger.pro
++++ shotcut-14.07/CuteLogger/CuteLogger.pro
+@@ -42,7 +42,7 @@ unix:!symbian {
+     maemo5 {
+         target.path = /opt/usr/lib
+     } else {
+-        target.path = /usr/lib
++        target.path = $(INSTALL_ROOT)/usr/lib
+     }
+     INSTALLS += target
+ }
diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
new file mode 100644
index 000000000000..97c3720f7f93
--- /dev/null
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, SDL, frei0r, gettext, makeWrapper, mlt, pkgconfig, qt5 }:
+
+stdenv.mkDerivation rec {
+  name = "shotcut-${version}";
+  version = "14.07";
+
+  src = fetchurl {
+    url = "https://github.com/mltframework/shotcut/archive/v${version}.tar.gz";
+    sha256 = "05g0b3jhmmdv8qnlgmi8wsfi7l3c5zvjcrrb3q7ajfc3q7yf6k6a";
+  };
+
+  buildInputs = [ SDL frei0r gettext makeWrapper mlt pkgconfig qt5 ];
+
+  # Fixed in git and can be removed for the next release
+  patches = [ ./CuteLogger.patch ];
+
+  configurePhase = "qmake PREFIX=$out";
+
+  postInstall = ''
+    mkdir -p $out/share/shotcut
+    cp -r src/qml $out/share/shotcut/
+    wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free, open source, cross-platform video editor";
+    longDescription = ''
+      An offical binary for Shotcut, which includes all the
+      dependencies pinned to specific versions, is provided on
+      http://shotcut.org.
+
+      If you encounter problems with this version, please contact the
+      nixpkgs maintainer(s). If you wish to report any bugs upstream,
+      please use the official build from shotcut.org instead.
+    '';
+    homepage = http://shotcut.org;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index 3251127c7a19..14ce5e9684bd 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, alsaLib, ffmpeg, jackaudio, libX11, libXext
+{ stdenv, fetchurl, alsaLib, ffmpeg, jack2, libX11, libXext
 , libXfixes, mesa, pkgconfig, pulseaudio, qt4
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    alsaLib ffmpeg jackaudio libX11 libXext libXfixes mesa pkgconfig
+    alsaLib ffmpeg jack2 libX11 libXext libXfixes mesa pkgconfig
     pulseaudio qt4
   ];
 
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 2c5b53c596a6..4b42bcd2859d 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -3,7 +3,7 @@
 , pkgconfig, dbus, fribidi, qt4, freefont_ttf, libebml, libmatroska
 , libvorbis, libtheora, speex, lua5, libgcrypt, libupnp
 , libcaca, pulseaudio, flac, schroedinger, libxml2, librsvg
-, mpeg2dec, udev, gnutls, avahi, libcddb, jackaudio, SDL, SDL_image
+, mpeg2dec, udev, gnutls, avahi, libcddb, jack2, SDL, SDL_image
 , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, liboggz
 , libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
 , libvdpau
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     [ xz bzip2 perl zlib a52dec libmad faad2 ffmpeg alsaLib libdvdnav libdvdnav.libdvdread
       libbluray dbus fribidi qt4 libvorbis libtheora speex lua5 libgcrypt
       libupnp libcaca pulseaudio flac schroedinger libxml2 librsvg mpeg2dec
-      udev gnutls avahi libcddb jackaudio SDL SDL_image libmtp unzip taglib
+      udev gnutls avahi libcddb jack2 SDL SDL_image libmtp unzip taglib
       libkate libtiger libv4l samba liboggz libass libdvbpsi libva
       xlibs.xlibs xlibs.libXv xlibs.libXvMC xlibs.libXpm xlibs.xcbutilkeysyms
       libdc1394 libraw1394 libopus libebml libmatroska libvdpau