about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/editors/geany/default.nix6
-rw-r--r--pkgs/applications/graphics/k3d/default.nix1
-rw-r--r--pkgs/applications/graphics/rawtherapee/default.nix4
-rw-r--r--pkgs/applications/misc/blender/fix-include.patch12
-rw-r--r--pkgs/applications/misc/calibre/default.nix14
-rw-r--r--pkgs/applications/misc/djvulibre/default.nix10
-rw-r--r--pkgs/applications/misc/djvulibre/gcc-4.6.patch658
-rw-r--r--pkgs/applications/misc/evince/default.nix59
-rw-r--r--pkgs/applications/networking/browsers/firefox/21.0.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix2
-rw-r--r--pkgs/applications/office/gnucash/default.nix8
-rw-r--r--pkgs/applications/office/gnucash/potfiles-skip.patch147
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix8
-rw-r--r--pkgs/applications/version-management/kdesvn/default.nix4
-rw-r--r--pkgs/applications/video/gnash/default.nix4
-rw-r--r--pkgs/applications/window-managers/weston/default.nix31
-rw-r--r--pkgs/data/misc/gsettings-desktop-schemas/default.nix17
-rw-r--r--pkgs/data/misc/poppler-data/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix16
-rw-r--r--pkgs/desktops/gnome-2/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/platform/gtkglext/default.nix5
-rw-r--r--pkgs/desktops/gnome-2/platform/intltool/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/platform/libbonobo/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch65
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-core/default.nix23
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix62
-rw-r--r--pkgs/desktops/gnome-3/core/gconf/default.nix29
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix30
-rw-r--r--pkgs/desktops/gnome-3/core/gvfs/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/libcroco/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/default.nix55
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/desktop/rarian/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix18
-rw-r--r--pkgs/desktops/xfce/4_08.nix37
-rw-r--r--pkgs/desktops/xfce/4_10.nix35
-rw-r--r--pkgs/desktops/xfce/common.nix72
-rw-r--r--pkgs/desktops/xfce/core/xfce4-dev-tools.nix24
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session-systemd.patch470
-rw-r--r--pkgs/desktops/xfce/default.nix2
-rw-r--r--pkgs/development/compilers/vala/default.nix20
-rw-r--r--pkgs/development/interpreters/python/2.7/default.nix4
-rw-r--r--pkgs/development/interpreters/python/3.3/default.nix2
-rw-r--r--pkgs/development/libraries/GConf/3.x.nix23
-rw-r--r--pkgs/development/libraries/SDL/default.nix13
-rw-r--r--pkgs/development/libraries/atk/default.nix (renamed from pkgs/development/libraries/atk/2.6.x.nix)6
-rw-r--r--pkgs/development/libraries/cairo/default.nix29
-rw-r--r--pkgs/development/libraries/dbus-cplusplus/default.nix4
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix8
-rw-r--r--pkgs/development/libraries/dbus/default.nix125
-rw-r--r--pkgs/development/libraries/dbus/implement-getgrouplist.patch108
-rw-r--r--pkgs/development/libraries/dbus/no-create-dirs.patch26
-rw-r--r--pkgs/development/libraries/dbus/systemd.patch14
-rw-r--r--pkgs/development/libraries/dbus/ucred-dirty-hack.patch18
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix26
-rw-r--r--pkgs/development/libraries/freetype/default.nix47
-rw-r--r--pkgs/development/libraries/freetype/enable-validation.patch22
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix (renamed from pkgs/development/libraries/gdk-pixbuf/2.26.x.nix)9
-rw-r--r--pkgs/development/libraries/glib/default.nix (renamed from pkgs/development/libraries/glib/2.34.x.nix)34
-rw-r--r--pkgs/development/libraries/gmime/default.nix15
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix8
-rw-r--r--pkgs/development/libraries/gtk+/2.x.nix (renamed from pkgs/development/libraries/gtk+/2.24.x.nix)12
-rw-r--r--pkgs/development/libraries/gtk+/3-default.nix (renamed from pkgs/development/libraries/gtk+/3.2.x.nix)22
-rw-r--r--pkgs/development/libraries/gtkmm/3.x.nix8
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix16
-rw-r--r--pkgs/development/libraries/libcroco/default.nix11
-rw-r--r--pkgs/development/libraries/libdrm/default.nix6
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix2
-rw-r--r--pkgs/development/libraries/libgnome-keyring/3.x.nix18
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix2
-rw-r--r--pkgs/development/libraries/libgsf/default.nix21
-rw-r--r--pkgs/development/libraries/libgweather/default.nix13
-rw-r--r--pkgs/development/libraries/libmtp/default.nix12
-rw-r--r--pkgs/development/libraries/libpaper/default.nix17
-rw-r--r--pkgs/development/libraries/libpng/15.nix24
-rw-r--r--pkgs/development/libraries/libpng/default.nix6
-rw-r--r--pkgs/development/libraries/libpng/libpng-apng.nix18
-rw-r--r--pkgs/development/libraries/librsvg/default.nix22
-rw-r--r--pkgs/development/libraries/libtiff/default.nix6
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix12
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix21
-rw-r--r--pkgs/development/libraries/libxtc_dxtn/default.nix5
-rw-r--r--pkgs/development/libraries/mesa-glu/default.nix19
-rw-r--r--pkgs/development/libraries/mesa/default.nix37
-rw-r--r--pkgs/development/libraries/mesa/mips_wmb.patch16
-rw-r--r--pkgs/development/libraries/openjpeg/default.nix10
-rw-r--r--pkgs/development/libraries/pango/default.nix (renamed from pkgs/development/libraries/pango/1.30.x.nix)10
-rw-r--r--pkgs/development/libraries/pangox-compat/default.nix19
-rw-r--r--pkgs/development/libraries/pixman/default.nix22
-rw-r--r--pkgs/development/libraries/poppler/0.18.nix53
-rw-r--r--pkgs/development/libraries/poppler/default.nix94
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix12
-rw-r--r--pkgs/development/libraries/wayland/default.nix14
-rw-r--r--pkgs/development/libraries/wxGTK-2.8/default.nix16
-rw-r--r--pkgs/development/tools/misc/intltool/default.nix9
-rw-r--r--pkgs/development/tools/misc/intltool/default.upstream2
-rw-r--r--pkgs/games/sgt-puzzles/default.nix6
-rw-r--r--pkgs/lib/misc.nix5
-rw-r--r--pkgs/lib/strings.nix7
-rw-r--r--pkgs/misc/cups/default.nix2
-rw-r--r--pkgs/misc/emulators/wine/default.nix4
-rw-r--r--pkgs/misc/ghostscript/default.nix41
-rw-r--r--pkgs/misc/ghostscript/purity-9.05.patch27
-rw-r--r--pkgs/misc/themes/gnome-themes-standard/default.nix15
-rw-r--r--pkgs/os-specific/linux/qemu-kvm/default.nix5
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix22
-rw-r--r--pkgs/os-specific/linux/systemd/fix-tests-1.patch68
-rw-r--r--pkgs/os-specific/linux/systemd/no-global-install.patch26
-rw-r--r--pkgs/os-specific/linux/xf86-input-wacom/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix248
-rw-r--r--pkgs/servers/x11/xorg/extra.list15
-rw-r--r--pkgs/servers/x11/xorg/old.list4
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix140
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list61
-rw-r--r--pkgs/tools/graphics/zbar/default.nix2
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.nix5
-rw-r--r--pkgs/tools/typesetting/pdf2djvu/default.upstream10
-rw-r--r--pkgs/top-level/all-packages.nix160
-rw-r--r--pkgs/top-level/release-python.nix3
-rw-r--r--pkgs/top-level/release-small.nix1
135 files changed, 2707 insertions, 1580 deletions
diff --git a/pkgs/applications/editors/geany/default.nix b/pkgs/applications/editors/geany/default.nix
index 289cf7ff8d63..6d43cc279975 100644
--- a/pkgs/applications/editors/geany/default.nix
+++ b/pkgs/applications/editors/geany/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, gtk2, which, pkgconfig, intltool }:
 
 let
-  version = "1.22";
+  version = "1.23";
 in
 
 stdenv.mkDerivation rec {
   name = "geany-${version}";
 
   src = fetchurl {
-    url = "http://download.geany.org/${name}.tar.gz";
-    md5 = "1cb7f6cea8e301c416211786cec474fa";
+    url = "http://download.geany.org/${name}.tar.bz2";
+    sha256 = "1c78rggjaz9fa8gj25wka1sa3argvixnzrarmqvwh0s8d5ragm6d";
   };
 
   buildInputs = [ gtk2 which pkgconfig intltool ];
diff --git a/pkgs/applications/graphics/k3d/default.nix b/pkgs/applications/graphics/k3d/default.nix
index 058d0f79a2f4..8920d243dbf0 100644
--- a/pkgs/applications/graphics/k3d/default.nix
+++ b/pkgs/applications/graphics/k3d/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/build/lib"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${gtkglext}/include/gtkglext-*) -I$(echo ${gtkglext}/lib/gtkglext-*/include)"
   '';
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/rawtherapee/default.nix b/pkgs/applications/graphics/rawtherapee/default.nix
index bf7e2d304202..34ad7821c876 100644
--- a/pkgs/applications/graphics/rawtherapee/default.nix
+++ b/pkgs/applications/graphics/rawtherapee/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk, cmake, pixman, libpthreadstubs, gtkmm, libXau
-, libXdmcp, lcms2, libiptcdata, libcanberra, fftw
+, libXdmcp, lcms2, libiptcdata, libcanberra, fftw, expat
 , mercurial  # Not really needed for anything, but it fails if it does not find 'hg'
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
   
   buildInputs = [ pkgconfig gtk cmake pixman libpthreadstubs gtkmm libXau libXdmcp
-    lcms2 libiptcdata mercurial libcanberra fftw ];
+    lcms2 libiptcdata mercurial libcanberra fftw expat ];
 
   # Disable the use of the RAWZOR propietary libraries
   cmakeFlags = [ "-DWITH_RAWZOR=OFF" ];
diff --git a/pkgs/applications/misc/blender/fix-include.patch b/pkgs/applications/misc/blender/fix-include.patch
new file mode 100644
index 000000000000..44e2147d073c
--- /dev/null
+++ b/pkgs/applications/misc/blender/fix-include.patch
@@ -0,0 +1,12 @@
+diff --git a/intern/smoke/intern/WAVELET_NOISE.h b/intern/smoke/intern/WAVELET_NOISE.h
+index fce901b..1f73c5e 100644
+--- a/intern/smoke/intern/WAVELET_NOISE.h
++++ b/intern/smoke/intern/WAVELET_NOISE.h
+@@ -43,6 +43,7 @@
+ #ifndef WAVELET_NOISE_H
+ #define WAVELET_NOISE_H
+ 
++#include <string.h>
+ #include <MERSENNETWISTER.h>
+ 
+ #ifdef WIN32
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 562a9dd52ad4..23b5092cd4d8 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchurl, python, pyqt4, sip, popplerQt4, pkgconfig, libpng
 , imagemagick, libjpeg, fontconfig, podofo, qt4, icu, sqlite
-, pil, makeWrapper, unrar, chmlib, pythonPackages, xz
+, pil, makeWrapper, unrar, chmlib, pythonPackages, xz, udisks, libusb1, libmtp
 }:
 
 stdenv.mkDerivation rec {
-  name = "calibre-0.8.51";
+  name = "calibre-0.8.70";
+  # 0.9.* versions won't build: https://bugs.launchpad.net/calibre/+bug/1094719
 
   src = fetchurl {
-    urls = [ 
-      "http://calibre-ebook.googlecode.com/files/${name}.tar.xz"
-      "mirror://sourceforge/calibre/${name}.tar.xz"
-    ];
-    sha256 = "1grcc0k9qpfpwp863x52rl9wj4wz61hcz67l8h2jmli0wxiq44z1";
+    url = "mirror://sourceforge/calibre/${name}.tar.xz";
+    sha256 = "12avwp8r6cnrw6c32gmd2hksa9rszdb76zs6fcmr3n8r1wkwa71g";
   };
 
   inherit python;
@@ -23,7 +21,7 @@ stdenv.mkDerivation rec {
       fontconfig podofo qt4 pil chmlib icu
       pythonPackages.mechanize pythonPackages.lxml pythonPackages.dateutil
       pythonPackages.cssutils pythonPackages.beautifulsoup
-      pythonPackages.sqlite3 sqlite
+      pythonPackages.sqlite3 sqlite udisks libusb1 libmtp
     ];
 
   installPhase = ''
diff --git a/pkgs/applications/misc/djvulibre/default.nix b/pkgs/applications/misc/djvulibre/default.nix
index e22dce72b628..4a51ec2d1acd 100644
--- a/pkgs/applications/misc/djvulibre/default.nix
+++ b/pkgs/applications/misc/djvulibre/default.nix
@@ -1,16 +1,14 @@
-{ stdenv, fetchurl, libjpeg, libtiff, libpng, ghostscript, libungif, zlib }:
+{ stdenv, fetchurl, libjpeg, libtiff, librsvg }:
 
 stdenv.mkDerivation rec {
-  name = "djvulibre-3.5.24";
+  name = "djvulibre-3.5.25.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/djvu/${name}.tar.gz";
-    sha256 = "0d1592cmc7scg2jzah47mnvbqldhxb1x9vxm7y64a3iasa0lqwy0";
+    sha256 = "1q5i5ha4zmj2ahjfhi8cv1rah80vm43m9ads46ji38rgvpb7x3c9";
   };
 
-  buildInputs = [ libjpeg libtiff libpng ghostscript zlib libungif ];
-
-  patches = [ ./gcc-4.6.patch ];
+  buildInputs = [ libjpeg libtiff librsvg ];
 
   meta = {
     description = "A library and viewer for the DJVU file format for scanned images";
diff --git a/pkgs/applications/misc/djvulibre/gcc-4.6.patch b/pkgs/applications/misc/djvulibre/gcc-4.6.patch
deleted file mode 100644
index 48fbc2bc7aca..000000000000
--- a/pkgs/applications/misc/djvulibre/gcc-4.6.patch
+++ /dev/null
@@ -1,658 +0,0 @@
-commit 3341545edba359b292a8ef6db1b7d342caf3dcf1
-Author: Leon Bottou <leon@bottou.org>
-Date:   Wed May 4 21:25:35 2011 -0700
-
-    Added include <stddef.h> for gcc-4.6
-
-diff --git a/libdjvu/BSByteStream.cpp b/libdjvu/BSByteStream.cpp
-index b762ccf..d662ab0 100644
---- a/libdjvu/BSByteStream.cpp
-+++ b/libdjvu/BSByteStream.cpp
-@@ -62,6 +62,7 @@
- 
- // - Author: Leon Bottou, 07/1998
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/BSEncodeByteStream.cpp b/libdjvu/BSEncodeByteStream.cpp
-index 5d80e51..68bc3e3 100644
---- a/libdjvu/BSEncodeByteStream.cpp
-+++ b/libdjvu/BSEncodeByteStream.cpp
-@@ -71,6 +71,7 @@
- #include "GOS.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/ByteStream.cpp b/libdjvu/ByteStream.cpp
-index 158c33c..be01847 100644
---- a/libdjvu/ByteStream.cpp
-+++ b/libdjvu/ByteStream.cpp
-@@ -73,6 +73,7 @@
- #include "GOS.h"
- #include "GURL.h"
- #include "DjVuMessage.h"
-+#include <stddef.h>
- #include <fcntl.h>
- #if defined(WIN32) || defined(__CYGWIN32__)
- # include <io.h>
-diff --git a/libdjvu/DjVuFileCache.cpp b/libdjvu/DjVuFileCache.cpp
-index 6b1e85d..7d7a192 100644
---- a/libdjvu/DjVuFileCache.cpp
-+++ b/libdjvu/DjVuFileCache.cpp
-@@ -63,6 +63,7 @@
- #include "DjVuFileCache.h"
- #include "debug.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/libdjvu/DjVuGlobal.cpp b/libdjvu/DjVuGlobal.cpp
-index e6d3cec..df9278e 100644
---- a/libdjvu/DjVuGlobal.cpp
-+++ b/libdjvu/DjVuGlobal.cpp
-@@ -76,6 +76,8 @@
- #include "GThreads.h"
- #include "GException.h"
- #include "GContainer.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/DjVuGlobalMemory.cpp b/libdjvu/DjVuGlobalMemory.cpp
-index 3c6012c..c8ba309 100644
---- a/libdjvu/DjVuGlobalMemory.cpp
-+++ b/libdjvu/DjVuGlobalMemory.cpp
-@@ -67,6 +67,8 @@
- 
- #include "DjVuGlobal.h"
- #include "GException.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
- #include "debug.h"
-diff --git a/libdjvu/DjVuMessage.cpp b/libdjvu/DjVuMessage.cpp
-index 6f5a735..1726025 100644
---- a/libdjvu/DjVuMessage.cpp
-+++ b/libdjvu/DjVuMessage.cpp
-@@ -71,6 +71,7 @@
- #include "debug.h"
- #include <ctype.h>
- #include <string.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #ifdef WIN32
- # include <tchar.h>
-diff --git a/libdjvu/DjVuMessageLite.cpp b/libdjvu/DjVuMessageLite.cpp
-index b8c1010..5daa9d9 100644
---- a/libdjvu/DjVuMessageLite.cpp
-+++ b/libdjvu/DjVuMessageLite.cpp
-@@ -73,8 +73,8 @@
- #include "debug.h"
- #include <ctype.h>
- #include <string.h>
-+#include <stddef.h>
- #include <stdlib.h>
--// #include <stdio.h>
- #ifdef WIN32
- #include <tchar.h>
- #include <windows.h>
-diff --git a/libdjvu/DjVuPalette.cpp b/libdjvu/DjVuPalette.cpp
-index c489f7b..76b0bf4 100644
---- a/libdjvu/DjVuPalette.cpp
-+++ b/libdjvu/DjVuPalette.cpp
-@@ -64,6 +64,8 @@
- #include "ByteStream.h"
- #include "BSByteStream.h"
- #include "DjVuPalette.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <math.h>
- 
-diff --git a/libdjvu/DjVuPort.h b/libdjvu/DjVuPort.h
-index f6a92f6..e2b3125 100644
---- a/libdjvu/DjVuPort.h
-+++ b/libdjvu/DjVuPort.h
-@@ -65,6 +65,7 @@
- 
- #include "GThreads.h"
- #include "GURL.h"
-+#include "stddef.h"
- 
- #ifdef HAVE_NAMESPACES
- namespace DJVU {
-diff --git a/libdjvu/DjVuToPS.cpp b/libdjvu/DjVuToPS.cpp
-index 5517bf3..6914ff9 100644
---- a/libdjvu/DjVuToPS.cpp
-+++ b/libdjvu/DjVuToPS.cpp
-@@ -72,6 +72,7 @@
- #include "GPixmap.h"
- #include "debug.h"
- #include <stdarg.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <time.h>
-diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
-index ab5c0de..797edcc 100644
---- a/libdjvu/GBitmap.cpp
-+++ b/libdjvu/GBitmap.cpp
-@@ -66,6 +66,8 @@
- #include "GString.h"
- #include "GThreads.h"
- #include "GException.h"
-+#include <stddef.h>
-+#include <stdlib.h>
- #include <string.h>
- 
- // - Author: Leon Bottou, 05/1997
-diff --git a/libdjvu/GException.cpp b/libdjvu/GException.cpp
-index 2ea179a..89da70f 100644
---- a/libdjvu/GException.cpp
-+++ b/libdjvu/GException.cpp
-@@ -60,6 +60,7 @@
- # pragma implementation
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/GOS.cpp b/libdjvu/GOS.cpp
-index e784932..d2088e2 100644
---- a/libdjvu/GOS.cpp
-+++ b/libdjvu/GOS.cpp
-@@ -65,6 +65,7 @@
- #include "GOS.h"
- #include "GURL.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
-diff --git a/libdjvu/GPixmap.cpp b/libdjvu/GPixmap.cpp
-index 392df54..4bf6f57 100644
---- a/libdjvu/GPixmap.cpp
-+++ b/libdjvu/GPixmap.cpp
-@@ -75,6 +75,8 @@
- #include "GThreads.h"
- #include "Arrays.h"
- #include "JPEGDecoder.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <math.h>
- #include <assert.h>
-diff --git a/libdjvu/GSmartPointer.cpp b/libdjvu/GSmartPointer.cpp
-index 6e523e7..58aef5b 100644
---- a/libdjvu/GSmartPointer.cpp
-+++ b/libdjvu/GSmartPointer.cpp
-@@ -67,6 +67,7 @@
- // Our original implementation consisted of multiple classes.
- // <http://prdownloads.sourceforge.net/djvu/DjVu2_2b-src.tgz>.
- 
-+#include <stddef.h>
- #include <string.h>
- #if PARANOID_DEBUG
- # include <assert.h>
-diff --git a/libdjvu/GSmartPointer.h b/libdjvu/GSmartPointer.h
-index 82781bd..8a8bb8a 100644
---- a/libdjvu/GSmartPointer.h
-+++ b/libdjvu/GSmartPointer.h
-@@ -97,6 +97,8 @@
- #include "DjVuGlobal.h"
- #include "atomic.h"
- 
-+#include <stddef.h>
-+
- #ifdef HAVE_NAMESPACES
- namespace DJVU {
- # ifdef NOT_DEFINED // Just to fool emacs c++ mode
-diff --git a/libdjvu/GString.cpp b/libdjvu/GString.cpp
-index 03f6226..350b11b 100644
---- a/libdjvu/GString.cpp
-+++ b/libdjvu/GString.cpp
-@@ -73,6 +73,7 @@
- #include "GThreads.h"
- #include "debug.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/GString.h b/libdjvu/GString.h
-index b63b753..3aa1f76 100644
---- a/libdjvu/GString.h
-+++ b/libdjvu/GString.h
-@@ -108,6 +108,7 @@
- #include "DjVuGlobal.h"
- #include "GContainer.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #ifdef WIN32
-diff --git a/libdjvu/GThreads.cpp b/libdjvu/GThreads.cpp
-index d81f3c3..253fed8 100644
---- a/libdjvu/GThreads.cpp
-+++ b/libdjvu/GThreads.cpp
-@@ -71,6 +71,8 @@
- #include "GThreads.h"
- #include "GException.h"
- #include "DjVuMessageLite.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- 
-diff --git a/libdjvu/GURL.cpp b/libdjvu/GURL.cpp
-index c37bf52..a80078c 100644
---- a/libdjvu/GURL.cpp
-+++ b/libdjvu/GURL.cpp
-@@ -72,6 +72,7 @@
- #include "GURL.h"
- #include "debug.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
-diff --git a/libdjvu/GUnicode.cpp b/libdjvu/GUnicode.cpp
-index 415c081..a8b25b8 100644
---- a/libdjvu/GUnicode.cpp
-+++ b/libdjvu/GUnicode.cpp
-@@ -62,6 +62,8 @@
- 
- #include "GString.h"
- 
-+#include <stddef.h>
-+
- #if HAS_ICONV
- #include <iconv.h>
- #endif
-diff --git a/libdjvu/IFFByteStream.h b/libdjvu/IFFByteStream.h
-index a653f8c..e31b216 100644
---- a/libdjvu/IFFByteStream.h
-+++ b/libdjvu/IFFByteStream.h
-@@ -124,6 +124,7 @@
- 
- 
- #include "DjVuGlobal.h"
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
-index 8d7b12c..49081b7 100644
---- a/libdjvu/IW44EncodeCodec.cpp
-+++ b/libdjvu/IW44EncodeCodec.cpp
-@@ -76,6 +76,7 @@
- #include "IFFByteStream.h"
- #include "GRect.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
-diff --git a/libdjvu/IW44Image.cpp b/libdjvu/IW44Image.cpp
-index 9476726..4a19fb5 100644
---- a/libdjvu/IW44Image.cpp
-+++ b/libdjvu/IW44Image.cpp
-@@ -76,6 +76,7 @@
- #include "IFFByteStream.h"
- #include "GRect.h"
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
-diff --git a/libdjvu/JPEGDecoder.h b/libdjvu/JPEGDecoder.h
-index bd430a0..fad1d4c 100644
---- a/libdjvu/JPEGDecoder.h
-+++ b/libdjvu/JPEGDecoder.h
-@@ -64,6 +64,7 @@
- 
- #ifdef NEED_JPEG_DECODER
- 
-+#include <stddef.h>
- #include <string.h>
- #include <setjmp.h>
- 
-diff --git a/libdjvu/MMX.cpp b/libdjvu/MMX.cpp
-index 5ab60bb..528dab6 100644
---- a/libdjvu/MMX.cpp
-+++ b/libdjvu/MMX.cpp
-@@ -62,6 +62,7 @@
- 
- #include "MMX.h"
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/libdjvu/UnicodeByteStream.h b/libdjvu/UnicodeByteStream.h
-index 0ae112b..9b49a17 100644
---- a/libdjvu/UnicodeByteStream.h
-+++ b/libdjvu/UnicodeByteStream.h
-@@ -88,6 +88,7 @@
- #include "GString.h"
- #include "ByteStream.h"
- 
-+#include <stddef.h>
- 
- #ifdef HAVE_NAMESPACES
- namespace DJVU {
-diff --git a/libdjvu/XMLParser.cpp b/libdjvu/XMLParser.cpp
-index 84386c5..7da923a 100644
---- a/libdjvu/XMLParser.cpp
-+++ b/libdjvu/XMLParser.cpp
-@@ -75,6 +75,7 @@
- #include "debug.h"
- #include <stdio.h>
- #include <ctype.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/libdjvu/ZPCodec.cpp b/libdjvu/ZPCodec.cpp
-index f6e971d..ff5b9bf 100644
---- a/libdjvu/ZPCodec.cpp
-+++ b/libdjvu/ZPCodec.cpp
-@@ -66,6 +66,8 @@
- #include "ZPCodec.h"
- #include "ByteStream.h"
- #include "GException.h"
-+
-+#include <stddef.h>
- #include <stdlib.h>
- #include <assert.h>
- #include <math.h>
-diff --git a/libdjvu/atomic.cpp b/libdjvu/atomic.cpp
-index bdc193e..63fd483 100644
---- a/libdjvu/atomic.cpp
-+++ b/libdjvu/atomic.cpp
-@@ -28,6 +28,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <assert.h>
- #include "atomic.h"
-diff --git a/libdjvu/ddjvuapi.cpp b/libdjvu/ddjvuapi.cpp
-index b18b84b..f40f5aa 100644
---- a/libdjvu/ddjvuapi.cpp
-+++ b/libdjvu/ddjvuapi.cpp
-@@ -60,6 +60,7 @@
- # pragma implementation "ddjvuapi.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/libdjvu/ddjvuapi.h b/libdjvu/ddjvuapi.h
-index d0ed48f..841f223 100644
---- a/libdjvu/ddjvuapi.h
-+++ b/libdjvu/ddjvuapi.h
-@@ -64,6 +64,7 @@ extern "C" {
- }
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- 
-diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
-index e0fb087..fc51297 100644
---- a/libdjvu/miniexp.cpp
-+++ b/libdjvu/miniexp.cpp
-@@ -23,6 +23,7 @@
- # pragma implementation "miniexp.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <ctype.h>
-diff --git a/libdjvu/miniexp.h b/libdjvu/miniexp.h
-index 91e345d..993005b 100644
---- a/libdjvu/miniexp.h
-+++ b/libdjvu/miniexp.h
-@@ -38,7 +38,8 @@ extern "C" {
- #ifndef MINILISPAPI
- # define MINILISPAPI /**/
- #endif
--  
-+
-+#include <stddef.h>  
- 
- /* -------------------------------------------------- */
- /* LISP EXPRESSIONS                                   */
-diff --git a/tools/bzz.cpp b/tools/bzz.cpp
-index ca092e1..2ebc7b9 100644
---- a/tools/bzz.cpp
-+++ b/tools/bzz.cpp
-@@ -94,6 +94,7 @@
- #include "GURL.h"
- #include "DjVuMessage.h"
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- static const char *program = "(unknown)";
-diff --git a/tools/c44.cpp b/tools/c44.cpp
-index 6f23b53..855504b 100644
---- a/tools/c44.cpp
-+++ b/tools/c44.cpp
-@@ -226,6 +226,7 @@
- #include <locale.h>
- #include <stdio.h>
- #include <string.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- // command line data
-diff --git a/tools/cjb2.cpp b/tools/cjb2.cpp
-index 8cf89b9..11eb662 100644
---- a/tools/cjb2.cpp
-+++ b/tools/cjb2.cpp
-@@ -120,6 +120,7 @@
- #include "jb2tune.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #if HAVE_TIFF
- #include <tiffio.h>
-diff --git a/tools/cpaldjvu.cpp b/tools/cpaldjvu.cpp
-index 111cbd3..b640a7a 100644
---- a/tools/cpaldjvu.cpp
-+++ b/tools/cpaldjvu.cpp
-@@ -118,6 +118,7 @@
- #include "jb2tune.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <math.h>
- 
-diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
-index cd721f8..d5203d5 100644
---- a/tools/csepdjvu.cpp
-+++ b/tools/csepdjvu.cpp
-@@ -162,6 +162,7 @@
- #include "jb2tune.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- #undef MIN
-diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
-index 817e045..981a270 100644
---- a/tools/ddjvu.cpp
-+++ b/tools/ddjvu.cpp
-@@ -62,6 +62,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
-diff --git a/tools/djvm.cpp b/tools/djvm.cpp
-index 951bd66..6ea88c2 100644
---- a/tools/djvm.cpp
-+++ b/tools/djvm.cpp
-@@ -135,9 +135,9 @@
- #include "DjVuMessage.h"
- 
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
--#include <stdlib.h>
- 
- static const char * progname;
- 
-diff --git a/tools/djvmcvt.cpp b/tools/djvmcvt.cpp
-index 9ca1c54..20b468a 100644
---- a/tools/djvmcvt.cpp
-+++ b/tools/djvmcvt.cpp
-@@ -144,6 +144,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- static const char * progname;
-diff --git a/tools/djvudump.cpp b/tools/djvudump.cpp
-index 6a0215a..2dddbdf 100644
---- a/tools/djvudump.cpp
-+++ b/tools/djvudump.cpp
-@@ -119,6 +119,7 @@ xxx
- #include <locale.h>
- #include <stdio.h>
- #include <ctype.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- void
-diff --git a/tools/djvuextract.cpp b/tools/djvuextract.cpp
-index 4a9f381..907b99c 100644
---- a/tools/djvuextract.cpp
-+++ b/tools/djvuextract.cpp
-@@ -105,6 +105,7 @@
- #include "GOS.h"
- #include "DjVuMessage.h"
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- 
-diff --git a/tools/djvumake.cpp b/tools/djvumake.cpp
-index 7020484..4c5fc0f 100644
---- a/tools/djvumake.cpp
-+++ b/tools/djvumake.cpp
-@@ -153,6 +153,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <ctype.h>
- 
-diff --git a/tools/djvups.cpp b/tools/djvups.cpp
-index 51aa999..632b832 100644
---- a/tools/djvups.cpp
-+++ b/tools/djvups.cpp
-@@ -57,6 +57,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
-diff --git a/tools/djvused.cpp b/tools/djvused.cpp
-index de84dcd..687fdca 100644
---- a/tools/djvused.cpp
-+++ b/tools/djvused.cpp
-@@ -61,6 +61,7 @@
- #endif
- 
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #include <errno.h>
-diff --git a/tools/djvuserve.cpp b/tools/djvuserve.cpp
-index 19a17da..818fe78 100644
---- a/tools/djvuserve.cpp
-+++ b/tools/djvuserve.cpp
-@@ -73,6 +73,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <sys/stat.h>
- #include <time.h>
-diff --git a/tools/djvutxt.cpp b/tools/djvutxt.cpp
-index ba2c745..9e9124c 100644
---- a/tools/djvutxt.cpp
-+++ b/tools/djvutxt.cpp
-@@ -61,6 +61,7 @@
- # include "config.h"
- #endif
- 
-+#include <stddef.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <stdarg.h>
-diff --git a/tools/tiff2pdf.h b/tools/tiff2pdf.h
-index 082f5fb..656dc43 100644
---- a/tools/tiff2pdf.h
-+++ b/tools/tiff2pdf.h
-@@ -22,6 +22,7 @@
- # endif
- # if HAVE_TIFF
- #  include <stdio.h>
-+#  include <stddef.h>
- #  include <stdlib.h>
- #  include <tiff.h>
- #  include <tiffio.h>
-diff --git a/xmltools/djvutoxml.cpp b/xmltools/djvutoxml.cpp
-index 17c769b..b40535e 100644
---- a/xmltools/djvutoxml.cpp
-+++ b/xmltools/djvutoxml.cpp
-@@ -71,6 +71,7 @@
- 
- #include <locale.h>
- #include <stdio.h>
-+#include <stddef.h>
- #include <stdlib.h>
- #include <sys/stat.h>
- #include <assert.h>
-diff --git a/xmltools/djvuxmlparser.cpp b/xmltools/djvuxmlparser.cpp
-index bdc5768..6679a9d 100644
---- a/xmltools/djvuxmlparser.cpp
-+++ b/xmltools/djvuxmlparser.cpp
-@@ -70,6 +70,7 @@
- #include <stdio.h>
- #include <ctype.h>
- #include <locale.h>
-+#include <stddef.h>
- #include <stdlib.h>
- 
- static void 
diff --git a/pkgs/applications/misc/evince/default.nix b/pkgs/applications/misc/evince/default.nix
deleted file mode 100644
index 793c7bda2994..000000000000
--- a/pkgs/applications/misc/evince/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ fetchurl, stdenv, perl, perlXMLParser, gettext, intltool
-, pkgconfig, glib, gtk, gnomedocutils, gnomeicontheme
-, libgnome, libgnomeui, scrollkeeper, libxslt
-, libglade, libgnome_keyring, dbus, dbus_glib
-, poppler, libspectre, djvulibre, shared_mime_info
-, makeWrapper, which, ghostscript
-, recentListSize ? null # 5 is not enough, allow passing a different number
-}:
-
-stdenv.mkDerivation rec {
-  name = "evince-2.32.0";
-
-  src = fetchurl {
-    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.32/${name}.tar.bz2";
-    sha256 = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7";
-  };
-
-  buildInputs = [
-    perl perlXMLParser gettext intltool pkgconfig glib gtk
-    gnomedocutils gnomeicontheme libgnome libgnomeui libglade
-    scrollkeeper libgnome_keyring
-    libxslt  # for `xsltproc'
-    dbus dbus_glib poppler libspectre djvulibre makeWrapper which
-    ghostscript
-  ];
-
-  configureFlags = "--with-libgnome --enable-dbus --enable-pixbuf "
-
-    # Do not use nautilus
-    + " --disable-nautilus "
-    # Do not update Scrollkeeper's database (GNOME's help system).
-    + "--disable-scrollkeeper";
-
-  postUnpack = if recentListSize != null then ''
-    sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' */shell/ev-open-recent-action.c
-    sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' */shell/ev-window.c
-  '' else "";
-
-  postInstall = ''
-    # Tell Glib/GIO about the MIME info directory, which is used
-    # by `g_file_info_get_content_type ()'.
-    wrapProgram "$out/bin/evince" \
-      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
-  '';
-
-  meta = {
-    homepage = http://www.gnome.org/projects/evince/;
-    description = "Evince, GNOME's document viewer";
-
-    longDescription = ''
-      Evince is a document viewer for multiple document formats.  It
-      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
-      of Evince is to replace the multiple document viewers that exist
-      on the GNOME Desktop with a single simple application.
-    '';
-
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/applications/networking/browsers/firefox/21.0.nix b/pkgs/applications/networking/browsers/firefox/21.0.nix
index 1a23c9d9cf9f..6043364c754b 100644
--- a/pkgs/applications/networking/browsers/firefox/21.0.nix
+++ b/pkgs/applications/networking/browsers/firefox/21.0.nix
@@ -35,7 +35,7 @@ rec {
       #"--enable-profiling"
       "--disable-debug"
       "--enable-strip"
-      # "--with-system-jpeg" # Too old in nixpkgs
+      "--with-system-jpeg" # now we use recent libjpeg-turbo
       "--with-system-zlib"
       "--with-system-bz2"
       "--with-system-nspr"
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index 7bdb6cc1452d..a4a32327d0c6 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = "--enable-external-ortp --enable-external-mediastreamer";
 
+  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations"; # I'm lazy to fix these for them
+
   meta = {
     homepage = http://www.linphone.org/;
     description = "Open Source video SIP softphone";
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 26879a6f660f..1654aa880046 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -1,6 +1,7 @@
 { fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk, libgnomeui, libofx
 , libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
-, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper
+, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
+, libgsf, libart_lgpl
 }:
 
 /* If you experience GConf errors when running GnuCash on NixOS, see
@@ -19,9 +20,12 @@ stdenv.mkDerivation rec {
   buildInputs = [
     pkgconfig libxml2 gconf glib gtk libgnomeui libgtkhtml gtkhtml
     libgnomeprint goffice enchant gettext intltool perl guile slibGuile
-    swig isocodes bzip2 makeWrapper libofx
+    swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
   ];
 
+  # fix a problem with new intltool versions, taken from Gentoo
+  patchPhase = "patch -p3 < ${./potfiles-skip.patch}";
+
   configureFlags = "CFLAGS=-O3 CXXFLAGS=-O3 --disable-dbi --enable-ofx";
 
   postInstall = ''
diff --git a/pkgs/applications/office/gnucash/potfiles-skip.patch b/pkgs/applications/office/gnucash/potfiles-skip.patch
new file mode 100644
index 000000000000..6fef3a1dcd38
--- /dev/null
+++ b/pkgs/applications/office/gnucash/potfiles-skip.patch
@@ -0,0 +1,147 @@
+Index: gnucash/branches/2.4/po/POTFILES.skip

+===================================================================

+--- gnucash/branches/2.4/po/POTFILES.skip	(revision 18623)

++++ gnucash/branches/2.4/po/POTFILES.skip	(revision 22300)

+@@ -19,2 +19,142 @@

+ src/libqof/qof/qofquery-serialize.c

+ src/libqof/qof/qofsql.c

++

++# The scheme files are handled by intl-scm/guile-strings.c because

++# intltool wouldn't scan scheme files. They're here now because

++# intltool 0.50 *does* scan them, and it creates an error during make

++# check. Once the whole world has upgraded to intltool 0.50, intl-scm

++# can be deleted and these files added to POTFILES.in.

++

++src/app-utils/date-utilities.scm

++src/app-utils/prefs.scm

++src/business/business-utils/business-prefs.scm

++src/business/business-utils/business-utils.scm

++src/business/business-utils/gnucash/business-utils.scm

++src/import-export/qif-import/qif-dialog-utils.scm

++src/import-export/qif-import/qif-file.scm

++src/import-export/qif-import/qif-import/qif-dialog-utils.scm

++src/import-export/qif-import/qif-import/qif-file.scm

++src/import-export/qif-import/qif-import/qif-merge-groups.scm

++src/import-export/qif-import/qif-import/qif-parse.scm

++src/import-export/qif-import/qif-import/qif-to-gnc.scm

++src/import-export/qif-import/qif-merge-groups.scm

++src/import-export/qif-import/qif-parse.scm

++src/import-export/qif-import/qif-to-gnc.scm

++src/report/business-reports/aging.scm

++src/report/business-reports/balsheet-eg.eguile.scm

++src/report/business-reports/balsheet-eg.scm

++src/report/business-reports/business-reports.scm

++src/report/business-reports/customer-summary.scm

++src/report/business-reports/easy-invoice.scm

++src/report/business-reports/fancy-invoice.scm

++src/report/business-reports/gnucash/report/aging.scm

++src/report/business-reports/gnucash/report/balsheet-eg.eguile.scm

++src/report/business-reports/gnucash/report/balsheet-eg.scm

++src/report/business-reports/gnucash/report/business-reports.scm

++src/report/business-reports/gnucash/report/customer-summary.scm

++src/report/business-reports/gnucash/report/easy-invoice.scm

++src/report/business-reports/gnucash/report/fancy-invoice.scm

++src/report/business-reports/gnucash/report/invoice.scm

++src/report/business-reports/gnucash/report/job-report.scm

++src/report/business-reports/gnucash/report/owner-report.scm

++src/report/business-reports/gnucash/report/payables.scm

++src/report/business-reports/gnucash/report/receivables.scm

++src/report/business-reports/gnucash/report/taxinvoice.eguile.scm

++src/report/business-reports/gnucash/report/taxinvoice.scm

++src/report/business-reports/invoice.scm

++src/report/business-reports/job-report.scm

++src/report/business-reports/owner-report.scm

++src/report/business-reports/payables.scm

++src/report/business-reports/receivables.scm

++src/report/business-reports/taxinvoice.eguile.scm

++src/report/business-reports/taxinvoice.scm

++src/report/locale-specific/us/gnucash/report/taxtxf-de_DE.scm

++src/report/locale-specific/us/gnucash/report/taxtxf.scm

++src/report/locale-specific/us/taxtxf-de_DE.scm

++src/report/locale-specific/us/taxtxf.scm

++src/report/report-gnome/gnucash/report/report-gnome.scm

++src/report/report-gnome/report-gnome.scm

++src/report/report-system/eguile-gnc.scm

++src/report/report-system/gnucash/report/eguile-gnc.scm

++src/report/report-system/html-acct-table.scm

++src/report/report-system/html-fonts.scm

++src/report/report-system/html-style-sheet.scm

++src/report/report-system/html-utilities.scm

++src/report/report-system/options-utilities.scm

++src/report/report-system/report-utilities.scm

++src/report/report-system/report.scm

++src/report/standard-reports/account-piecharts.scm

++src/report/standard-reports/account-summary.scm

++src/report/standard-reports/advanced-portfolio.scm

++src/report/standard-reports/average-balance.scm

++src/report/standard-reports/balance-sheet.scm

++src/report/standard-reports/budget-balance-sheet.scm

++src/report/standard-reports/budget-barchart.scm

++src/report/standard-reports/budget-flow.scm

++src/report/standard-reports/budget-income-statement.scm

++src/report/standard-reports/budget.scm

++src/report/standard-reports/cash-flow.scm

++src/report/standard-reports/category-barchart.scm

++src/report/standard-reports/daily-reports.scm

++src/report/standard-reports/equity-statement.scm

++src/report/standard-reports/general-journal.scm

++src/report/standard-reports/general-ledger.scm

++src/report/standard-reports/gnucash/report/standard-reports/account-piecharts.scm

++src/report/standard-reports/gnucash/report/standard-reports/account-summary.scm

++src/report/standard-reports/gnucash/report/standard-reports/advanced-portfolio.scm

++src/report/standard-reports/gnucash/report/standard-reports/average-balance.scm

++src/report/standard-reports/gnucash/report/standard-reports/balance-sheet.scm

++src/report/standard-reports/gnucash/report/standard-reports/budget-balance-sheet.scm

++src/report/standard-reports/gnucash/report/standard-reports/budget-barchart.scm

++src/report/standard-reports/gnucash/report/standard-reports/budget-flow.scm

++src/report/standard-reports/gnucash/report/standard-reports/budget-income-statement.scm

++src/report/standard-reports/gnucash/report/standard-reports/budget.scm

++src/report/standard-reports/gnucash/report/standard-reports/cash-flow.scm

++src/report/standard-reports/gnucash/report/standard-reports/category-barchart.scm

++src/report/standard-reports/gnucash/report/standard-reports/daily-reports.scm

++src/report/standard-reports/gnucash/report/standard-reports/equity-statement.scm

++src/report/standard-reports/gnucash/report/standard-reports/general-journal.scm

++src/report/standard-reports/gnucash/report/standard-reports/general-ledger.scm

++src/report/standard-reports/gnucash/report/standard-reports/income-statement.scm

++src/report/standard-reports/gnucash/report/standard-reports/net-barchart.scm

++src/report/standard-reports/gnucash/report/standard-reports/net-linechart.scm

++src/report/standard-reports/gnucash/report/standard-reports/portfolio.scm

++src/report/standard-reports/gnucash/report/standard-reports/price-scatter.scm

++src/report/standard-reports/gnucash/report/standard-reports/register.scm

++src/report/standard-reports/gnucash/report/standard-reports/sx-summary.scm

++src/report/standard-reports/gnucash/report/standard-reports/transaction.scm

++src/report/standard-reports/gnucash/report/standard-reports/trial-balance.scm

++src/report/standard-reports/income-statement.scm

++src/report/standard-reports/net-barchart.scm

++src/report/standard-reports/net-linechart.scm

++src/report/standard-reports/portfolio.scm

++src/report/standard-reports/price-scatter.scm

++src/report/standard-reports/register.scm

++src/report/standard-reports/sx-summary.scm

++src/report/standard-reports/transaction.scm

++src/report/standard-reports/trial-balance.scm

++src/report/stylesheets/gnucash/report/stylesheet-easy.scm

++src/report/stylesheets/gnucash/report/stylesheet-fancy.scm

++src/report/stylesheets/gnucash/report/stylesheet-footer.scm

++src/report/stylesheets/gnucash/report/stylesheet-plain.scm

++src/report/stylesheets/stylesheet-easy.scm

++src/report/stylesheets/stylesheet-fancy.scm

++src/report/stylesheets/stylesheet-footer.scm

++src/report/stylesheets/stylesheet-plain.scm

++src/report/utility-reports/gnucash/report/hello-world.scm

++src/report/utility-reports/gnucash/report/view-column.scm

++src/report/utility-reports/gnucash/report/welcome-to-gnucash.scm

++src/report/utility-reports/hello-world.scm

++src/report/utility-reports/view-column.scm

++src/report/utility-reports/welcome-to-gnucash.scm

++src/scm/build-config.scm

++src/scm/build-config.scm.in

++src/scm/command-line.scm

++src/scm/gnucash/price-quotes.scm

++src/scm/main-window.scm

++src/scm/price-quotes.scm

++src/tax/us/de_DE.scm

++src/tax/us/gnucash/tax/de_DE.scm

++src/tax/us/txf-de_DE.scm

++src/tax/us/txf.scm

++

diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index 1402dc9b1824..84da60398227 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -1,13 +1,13 @@
 { fetchurl, stdenv, libxml2, freetype, mesa, glew, qt4
 , cmake, makeWrapper, libjpeg }:
 
-let version = "3.7.0"; in
+let version = "4.1.0"; in
 stdenv.mkDerivation rec {
   name = "tulip-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/auber/tulip/tulip-3.7.0/${name}-src.tar.gz";
-    sha256 = "150fj9pdxblvl5sby61cb2kq98r6h8yljk3vq5xizn198d3fz4jq";
+    url = "mirror://sourceforge/auber/${name}_src.tar.gz";
+    sha256 = "1js1f8xdm9g2m66xbhfxa8ixzw6h4gjynxsm83p54l3i0hs3biig";
   };
 
   buildInputs = [ libxml2 freetype glew mesa qt4 libjpeg ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "Tulip, a visualization framework for the analysis and visualization of relational data";
+    description = "A visualization framework for the analysis and visualization of relational data";
 
     longDescription =
       '' Tulip is an information visualization framework dedicated to the
diff --git a/pkgs/applications/version-management/kdesvn/default.nix b/pkgs/applications/version-management/kdesvn/default.nix
index 29b8b306fe54..59fb1f5a867f 100644
--- a/pkgs/applications/version-management/kdesvn/default.nix
+++ b/pkgs/applications/version-management/kdesvn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs }:
+{ stdenv, fetchurl, gettext, apr, aprutil, subversion, db4, kdelibs, expat }:
 
 stdenv.mkDerivation rec {
   name = "kdesvn-1.5.5";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   patches = [ ./docbook.patch ./virtual_inheritance.patch ];
   
 
-  buildInputs = [ apr aprutil subversion db4 kdelibs ];
+  buildInputs = [ apr aprutil subversion db4 kdelibs expat ];
 
   nativeBuildInputs = [ gettext ];
 
diff --git a/pkgs/applications/video/gnash/default.nix b/pkgs/applications/video/gnash/default.nix
index db6bde782b99..4f2addcc99b0 100644
--- a/pkgs/applications/video/gnash/default.nix
+++ b/pkgs/applications/video/gnash/default.nix
@@ -3,7 +3,7 @@
 , gst_ffmpeg, speex
 , libogg, libxml2, libjpeg, mesa, libpng, libungif, libtool
 , boost, freetype, agg, dbus, curl, pkgconfig, gettext
-, glib, gtk, gtkglext, x11, ming, dejagnu, python, perl
+, glib, gtk, gtkglext, pangox_compat, x11, ming, dejagnu, python, perl
 , freefont_ttf, haxe, swftools
 , lib, makeWrapper
 , xulrunner }:
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     gettext x11 SDL SDL_mixer gstreamer gst_plugins_base gst_plugins_good
     gst_ffmpeg speex libtool
     libogg libxml2 libjpeg mesa libpng libungif boost freetype agg
-    dbus curl pkgconfig glib gtk gtkglext
+    dbus curl pkgconfig glib gtk gtkglext pangox_compat
     xulrunner
     makeWrapper
   ]
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
new file mode 100644
index 000000000000..2c1044d69372
--- /dev/null
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, wayland, mesa, libxkbcommon
+, cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev
+, libjpeg, pam, autoconf, automake, libtool }:
+
+let version = "1.0.5"; in
+
+stdenv.mkDerivation rec {
+  name = "weston-${version}";
+
+  src = fetchurl {
+    url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
+    sha256 = "0g2k82pnlxl8b70ykazj7kn8xffjfsmgcgx427qdrm4083z2hgm0";
+  };
+
+  buildInputs = [ pkgconfig wayland mesa libxkbcommon
+    cairo libxcb libXcursor x11 udev libdrm mtdev
+    libjpeg pam autoconf automake libtool ];
+
+  preConfigure = "autoreconf -vfi";
+
+  # prevent install target to chown root weston-launch, which fails
+  configureFlags = ''
+    --disable-setuid-install
+  '';
+
+  meta = {
+    description = "Reference implementation of a Wayland compositor";
+    homepage = http://wayland.freedesktop.org/;
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/pkgs/data/misc/gsettings-desktop-schemas/default.nix b/pkgs/data/misc/gsettings-desktop-schemas/default.nix
deleted file mode 100644
index c934863d75d7..000000000000
--- a/pkgs/data/misc/gsettings-desktop-schemas/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, glib, pkgconfig, intltool }:
-
-stdenv.mkDerivation {
-  name = "gsettings-desktop-schemas-3.2.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gsettings-desktop-schemas/3.2/gsettings-desktop-schemas-3.2.0.tar.xz;
-    sha256 = "0772axkd1nlf3j1lcg0zi5x5jh4zmr25k98dhn7pzppahljaj3hi";
-  };
-
-  buildInputs = [ glib ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  meta = {
-    inherit (glib.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/data/misc/poppler-data/default.nix b/pkgs/data/misc/poppler-data/default.nix
index 14a41cf84fc9..9e2679c04380 100644
--- a/pkgs/data/misc/poppler-data/default.nix
+++ b/pkgs/data/misc/poppler-data/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "poppler-data-0.4.5";
+  name = "poppler-data-0.4.6";
 
   src = fetchurl {
     url = "http://poppler.freedesktop.org/${name}.tar.gz";
-    sha256 = "1zbh1zd083wfwrcw7vxc2bn32h42y6iyh24syxcb3r5ggd2vr41i";
+    sha256 = "1yhaz74b50hjkz3ii077kmq3qg3p3kdyxm33cv6r1njvz8fr01pk";
   };
 
   buildInputs = [ cmake ];
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
     homepage = http://poppler.freedesktop.org/;
     description = "Encoding files for Poppler, a PDF rendering library";
     platforms = stdenv.lib.platforms.all;
+    license = "free"; # more free licenses combined
     maintainers = [ stdenv.lib.maintainers.urkud ];
   };
 }
diff --git a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
index c09ed74a97c0..1e2faf3af84f 100644
--- a/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
+++ b/pkgs/desktops/gnome-2/bindings/python-rsvg/default.nix
@@ -1,24 +1,26 @@
-{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python }:
+{ stdenv, fetchurl, gnome, librsvg, pkgconfig, pygtk, python, gtk }:
 
 stdenv.mkDerivation rec {
-  version = "2.32";
+  ver_maj = "2.32";
+  ver_min = "0";
+  version = "${ver_maj}.${ver_min}";
   name = "python-rsvg-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-python-desktop/${version}/gnome-python-desktop-${version}.0.tar.gz";
-    sha256 = "1xhh3h1qdnimydvv55pmqwyzjchhjwfvp951sjlq0180kskqrlj5";
+    url = "mirror://gnome/sources/gnome-python-desktop/${ver_maj}/gnome-python-desktop-${version}.tar.bz2";
+    sha256 = "1s8f9rns9v7qlwjv9qh9lr8crp88dpzfm45hj47zc3ivpy0dbnq9";
   };
 
   configurePhase = ''
-    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript 
-    python waf configure --enable-modules=rsvg --prefix=$out 
+    sed -e "s@{PYTHONDIR}/gtk-2.0@{PYTHONDIR}/@" -i rsvg/wscript
+    python waf configure --enable-modules=rsvg --prefix=$out
   '';
 
   buildPhase = "python waf build";
 
   installPhase = "python waf install";
 
-  buildInputs = [ gnome.gnome_python librsvg pkgconfig pygtk python ];
+  buildInputs = [ gtk gnome.gnome_python librsvg pkgconfig pygtk python ];
 
   meta = with stdenv.lib; {
     homepage = "http://www.pygtk.org";
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 38ae4c015342..3d76ba72daeb 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -29,8 +29,6 @@
 
   libgtkhtml = callPackage ./platform/libgtkhtml { };
 
-  intltool = callPackage ./platform/intltool { };
-
   GConf = callPackage ./platform/GConf { };
 
   gconfmm = callPackage ./platform/gconfmm { };
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index ec6931724bc2..22c22c6bcf50 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "0l3mhpyym9m5iz09fz0rgiqxl2ym6kpkwpsp1xrr4aa80nlh1jam";
   };
 
+  preBuild = ''
+    sed 's/-DG_DISABLE_DEPRECATED//' -i linc2/src/Makefile
+  '';
+
   nativeBuildInputs = [ pkgconfig ];
   propagatedBuildInputs = [ glib libIDL ];
 }
diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
index 0215b341f934..55daa496afc7 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-vfs/default.nix
@@ -16,4 +16,6 @@ stdenv.mkDerivation rec {
     ];
 
   propagatedBuildInputs = [ GConf glib ];
+
+  postPatch = "find . -name Makefile.in | xargs sed 's/-DG_DISABLE_DEPRECATED//g' -i ";
 }
diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
index 4eab4b8213c6..903387f50b14 100644
--- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gtk, mesa, pango }:
+{ stdenv, fetchurl, pkgconfig, glib, gtk, mesa, pango, pangox_compat, xlibs }:
 
 stdenv.mkDerivation rec {
   name = "gtkglext-1.2.0";
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n";
   };
 
-  buildInputs = [ pkgconfig gtk mesa pango ];
+  buildInputs = with xlibs;
+    [ pkgconfig glib gtk mesa pango pangox_compat libX11 libXmu ];
 
   # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and
   # `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays.
diff --git a/pkgs/desktops/gnome-2/platform/intltool/default.nix b/pkgs/desktops/gnome-2/platform/intltool/default.nix
deleted file mode 100644
index 51eaa4a2cf48..000000000000
--- a/pkgs/desktops/gnome-2/platform/intltool/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gettext}:
-
-stdenv.mkDerivation rec {
-  name = "intltool-0.40.6";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/intltool/0.40/intltool-0.40.6.tar.bz2;
-    sha256 = "0r1vkvy5xzqk01yl6a0xlrry39bra24alkrx6279b77hc62my7jd";
-  };
-
-  buildInputs = [ pkgconfig ];
-  propagatedBuildInputs = [ perl perlXMLParser gettext ];
-}
diff --git a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
index 79c41f924d3f..2303fb15a6f1 100644
--- a/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonobo/default.nix
@@ -10,7 +10,9 @@ stdenv.mkDerivation rec {
     sha256 = "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i";
   };
 
-  preConfigure = "export USER=`whoami`";
+  preConfigure = # still using stuff deprecated in new glib versions
+    "sed 's/-DG_DISABLE_DEPRECATED//g' -i configure activation-server/Makefile.in";
+
   nativeBuildInputs = [ flex bison pkgconfig intltool procps ];
   buildInputs = [ libxml2 ];
   propagatedBuildInputs = [ popt glib ORBit2 ];
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 37dbfd129611..5ab6d5e813d6 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     major = "2"; minor = "32"; patchlevel = "1";
     sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
   };
-  
+
+  patches = [ ./new-glib.patch ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ];
   propagatedBuildInputs = [ glib libbonobo ];
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch
new file mode 100644
index 000000000000..ceabfbdd158e
--- /dev/null
+++ b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch
@@ -0,0 +1,65 @@
+Porting libgnome to newer glib:
+ * remove g_thread_init and g_thread_supported, which are longer needed
+   https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#g-thread-init
+ * replace GStaticRecMutex by GRecMutex
+   https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#GStaticRecMutex
+
+diff --git a/libgnome/gnome-i18n.c b/libgnome/gnome-i18n.c
+index 531c56c..f13d61e 100644
+--- a/libgnome/gnome-i18n.c
++++ b/libgnome/gnome-i18n.c
+@@ -55,12 +55,14 @@
+ const GList *
+ gnome_i18n_get_language_list (const gchar *ignored)
+ {
+-  static GStaticRecMutex lang_list_lock = G_STATIC_REC_MUTEX_INIT;
++  static GRecMutex lang_list_lock;
++  g_rec_mutex_init (&lang_list_lock);
++
+   static GList *list = NULL;
+   const char * const* langs;
+   int i;
+ 
+-  g_static_rec_mutex_lock (&lang_list_lock);
++  g_rec_mutex_lock (&lang_list_lock);
+ 
+   if (list == NULL) {
+     langs = g_get_language_names ();
+@@ -71,7 +73,7 @@ gnome_i18n_get_language_list (const gchar *ignored)
+     list = g_list_reverse (list);
+   }
+ 
+-  g_static_rec_mutex_unlock (&lang_list_lock);
++  g_rec_mutex_unlock (&lang_list_lock);
+ 
+   return list;
+ }
+diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
+index fe3efd4..c6619af 100644
+--- a/libgnome/gnome-init.c
++++ b/libgnome/gnome-init.c
+@@ -115,9 +115,6 @@ gnome_bonobo_module_info_get (void)
+ static void
+ bonobo_activation_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
+ {
+-        if (!g_thread_supported ())
+-		g_thread_init (NULL);
+-
+ 	if (!bonobo_activation_is_initialized ())
+ 		bonobo_activation_preinit (program, mod_info);
+ }
+diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c
+index 739765e..cd14999 100644
+--- a/libgnome/gnome-program.c
++++ b/libgnome/gnome-program.c
+@@ -1878,10 +1878,6 @@ gnome_program_init (const char *app_id, const char *app_version,
+     GnomeProgram *program;
+     va_list args;
+ 
+-    /* g_thread_init() has to be the first GLib function called ever */
+-    if (!g_threads_got_initialized)
+-        g_thread_init (NULL);
+-
+     g_type_init ();
+ 
+     va_start(args, first_property_name);
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
new file mode 100644
index 000000000000..948774572670
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
+, intltool, dbus_glib, at_spi2_core, libSM }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "2.8";
+  versionMinor = "0";
+  moduleName   = "at-spi2-atk";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "085sqww174vl3i9ccb477v706rkjs2d107rl96ma1kbl2jyar226";
+  };
+
+  buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
+                  intltool dbus_glib at_spi2_core libSM ];
+}
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
new file mode 100644
index 000000000000..2d433486677a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, intltool, dbus_glib
+, libX11, xextproto, libSM, libICE, libXtst, libXi }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "2.8";
+  versionMinor = "0";
+  moduleName   = "at-spi2-core";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0n64h6j10sn90ds9y70d9wlvvsbwnrym9fm0cyjxb0zmqw7s6q8q";
+  };
+
+  buildInputs = [
+    python pkgconfig popt  intltool dbus_glib
+    libX11 xextproto libSM libICE libXtst libXi
+  ];
+
+  # ToDo: on non-NixOS we create a symlink from there?
+  configureFlags = "--with-dbus-daemondir=/run/current-system/sw/bin/";
+}
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
new file mode 100644
index 000000000000..de49bffc419e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -0,0 +1,62 @@
+{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
+, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info
+, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas
+, poppler, ghostscriptX, djvulibre, libspectre
+, makeWrapper #, python /*just for tests*/
+, recentListSize ? null # 5 is not enough, allow passing a different number
+}:
+
+stdenv.mkDerivation rec {
+  name = "evince-3.6.1";
+
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/3.6/${name}.tar.xz";
+    sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv";
+  };
+
+  buildInputs = [
+    pkgconfig intltool perl perlXMLParser libxml2
+    glib gtk3 pango atk gdk_pixbuf
+    itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas
+    poppler ghostscriptX djvulibre libspectre
+    makeWrapper
+  ];
+
+  configureFlags = [
+    "--disable-nautilus" # Do not use nautilus
+    "--disable-dbus" # strange compilation error
+  ];
+
+  preConfigure = with stdenv.lib;
+    optionalString doCheck ''
+      for file in test/*.py; do
+        echo "patching $file"
+        sed '1s,/usr,${python},' -i "$file"
+      done
+    '' + optionalString (recentListSize != null) ''
+      sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c
+      sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
+    '';
+
+  postInstall = ''
+    # Tell Glib/GIO about the MIME info directory, which is used
+    # by `g_file_info_get_content_type ()'.
+    wrapProgram "$out/bin/evince" \
+      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
+  '' + gsettings_desktop_schemas.doCompileSchemas;
+  doCheck = false; # would need pythonPackages.dogTail, which is missing
+
+  meta = {
+    homepage = http://www.gnome.org/projects/evince/;
+    description = "GNOME's document viewer";
+
+    longDescription = ''
+      Evince is a document viewer for multiple document formats.  It
+      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
+      of Evince is to replace the multiple document viewers that exist
+      on the GNOME Desktop with a single simple application.
+    '';
+
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix
new file mode 100644
index 000000000000..9ca9c227d586
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gconf/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, gtk, glib, libxml2
+, intltool, polkit, orbit }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.2";
+  versionMinor = "5";
+  moduleName   = "GConf";
+
+  origName = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  name = "gconf-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz";
+    sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd";
+  };
+
+  buildInputs = [ libxml2 polkit gtk orbit ];
+  propagatedBuildInputs = [ glib dbus_glib  ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  # ToDo: ldap reported as not found but afterwards reported as supported
+
+  meta = {
+    homepage = http://projects.gnome.org/gconf/;
+    description = "A system for storing application preferences";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
new file mode 100644
index 000000000000..cf9774c5511c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
+, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk }:
+
+stdenv.mkDerivation rec {
+  name = "gcr-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gcr/3.6/${name}.tar.xz";
+    sha256 = "16xyqxv2hxl3a4m8ahilqcf1ps58w1ijh8dav1l5nqz36ljdn2gp";
+  };
+
+  buildInputs = [
+    pkgconfig intltool gnupg p11_kit glib
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
+  ];
+
+  #doCheck = true;
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
new file mode 100644
index 000000000000..303bcd2208ce
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-icon-theme-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-icon-theme/3.6/${name}.tar.xz";
+    sha256 = "0i8hkx2c1g5ckrvbkvs9n47i8fby8p9xs6p5l0mxdx9aq4smak9i";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
new file mode 100644
index 000000000000..5983b74c0f45
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib
+, gtk3, intltool, gconf, libgnome_keyring, pango, gcr, gdk_pixbuf, atk, p11_kit }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-keyring-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-keyring/3.6/${name}.tar.xz";
+    sha256 = "1mhc2c0qswfjqi2spdvh19b7npfkjf1k40q6v7fja4qpc26maq5f";
+  };
+
+  buildInputs = [
+    dbus libgcrypt pam python gtk3 gconf libgnome_keyring
+    pango gcr gdk_pixbuf atk p11_kit
+  ];
+
+  propagatedBuildInputs = [ glib libtasn1 ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  configureFlags = [
+    "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt" # NixOS hardcoded path
+    "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
+    "--with-pkcs11-modules=$$out/lib/pkcs11/"
+  ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
new file mode 100644
index 000000000000..41fdcc8086b1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, gconf }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.4";
+  versionMinor = "1.1";
+
+  name = "gnome-terminal-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-terminal/${versionMajor}/${name}.tar.xz";
+    sha256 = "1p9zqjmkxryf2kyghhhwwpsh4kd8y1jzzwc9zxghmpxszi9a5m0l";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte gconf ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
new file mode 100644
index 000000000000..9c13539a1cc6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, pkgconfig, intltool, glib
+  # just for passthru
+, gtk3, gsettings_desktop_schemas }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.6";
+  versionMinor = "1";
+  moduleName   = "gsettings-desktop-schemas";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1rk71q2rky9nzy0zb5jsvxa62vhg7dk65kdgdifq8s761797ga6r";
+  };
+
+  buildInputs = [ glib ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  passthru = {
+    doCompileSchemas = ''
+      for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
+        cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
+      done
+      ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
+    '';
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gvfs/default.nix b/pkgs/desktops/gnome-3/core/gvfs/default.nix
new file mode 100644
index 000000000000..1eea518c4b7f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gvfs/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2
+, libcdio, libxml2, libtool, glib, intltool, gconf, libgnome_keyring, libsoup
+, udev, avahi, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  name = "gvfs-1.14.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
+    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
+  };
+
+  buildInputs =
+    [ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 gconf
+      libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
+    ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
new file mode 100644
index 000000000000..70c1db8c0275
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, libxml2, glib}:
+
+stdenv.mkDerivation rec {
+  name = "libcroco-0.6.6"; # 3.6.2 release
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
+    sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j";
+  };
+  buildInputs = [ pkgconfig libxml2 glib ];
+}
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
new file mode 100644
index 000000000000..a5d196ae1e32
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "libgnome-keyring-3.6.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnome-keyring/3.6/${name}.tar.xz";
+    sha256 = "0c4qrjpmv1hqga3xv6wsq2z10x2n78qgw7q3k3s01y1pggxkgjkd";
+  };
+
+  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = {
+    inherit (glib.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
new file mode 100644
index 000000000000..78ae94c1a33a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf
+, pango, gdk_pixbuf, atk }:
+
+stdenv.mkDerivation rec {
+  name = "libgweather-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgweather/3.6/${name}.tar.xz";
+    sha256 = "1c50m0zrnfh4g58rzf33dfw8ggslj38c61p8a75905bmj3rfyahg";
+  };
+  configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
+  propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+}
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
new file mode 100644
index 000000000000..ffc3aab87064
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses
+, pythonSupport ? false, python, pygtk}:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "0.32";
+  versionMinor = "2";
+  moduleName   = "vte";
+  
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0sj837b9ib36gx00hzdinv23f7w91fd5mcw1p6wdi053yxqw17nn";
+  };
+
+  buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++
+                stdenv.lib.optionals pythonSupport [python pygtk];
+
+  configureFlags = ''
+    ${if pythonSupport then "--enable-python" else "--disable-python"}
+  '';
+
+  postInstall = stdenv.lib.optionalString pythonSupport ''
+    cd $(toPythonPath $out)/gtk-2.0
+    for n in *; do
+      ln -s "gtk-2.0/$n" "../$n"
+    done
+  '';
+
+  meta = {
+    homepage = http://www.gnome.org/;
+    description = "A library implementing a terminal emulator widget for GTK+";
+    longDescription = ''
+      VTE is a library (libvte) implementing a terminal emulator widget for
+      GTK+, and a minimal sample application (vte) using that.  Vte is
+      mainly used in gnome-terminal, but can also be used to embed a
+      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
+      character set conversion, as well as emulating any terminal known to
+      the system's terminfo database.
+    '';
+    license = "LGPLv2";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl antono ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
new file mode 100644
index 000000000000..18b91d4f61e8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.4";
+  versionMinor = "0";
+
+  name = "zenity-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/zenity/${versionMajor}/zenity-${versionMajor}.${versionMinor}.tar.xz";
+    sha256 = "1bqbfcvd3kj2xk15fvbcdaqvyg9qvymlhn8cwvg5m6v4gicniw2w";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 ];
+
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
new file mode 100644
index 000000000000..5d517da82b39
--- /dev/null
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -0,0 +1,55 @@
+{ callPackage, lib, self, stdenv, gettext, overrides ? {}, pkgs }:
+
+rec {
+  inherit (pkgs) fetchurl_gnome glib gtk3 atk pango;
+  gtk = gtk3;
+  orbit = pkgs.gnome2.ORBit2;
+
+  inherit (lib) lowPrio hiPrio appendToName makeOverridable;
+
+  __overrides = overrides;
+
+#### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
+
+  at_spi2_atk = lib.lowPrio (callPackage ./core/at-spi2-atk { });
+
+  at_spi2_core = callPackage ./core/at-spi2-core { };
+
+  evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests
+
+  gconf = callPackage ./core/gconf { };
+
+  gcr = callPackage ./core/gcr { }; # ToDo: tests fail
+
+  gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
+
+  gnome_keyring = callPackage ./core/gnome-keyring { };
+  libgnome_keyring = callPackage ./core/libgnome-keyring { };
+
+  gnome_terminal = callPackage ./core/gnome-terminal { };
+
+  gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
+
+  gvfs = callPackage ./core/gvfs { };
+
+  libcroco = callPackage ./core/libcroco {};
+
+  libgweather = callPackage ./core/libgweather { };
+
+  vte = callPackage ./core/vte { };
+
+  zenity = callPackage ./core/zenity { };
+
+#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/)
+
+  gnome_dictionary = callPackage ./desktop/gnome-dictionary { };
+
+  gnome_desktop = callPackage ./desktop/gnome-desktop { };
+
+  # Removed from recent GNOME releases, but still required
+  scrollkeeper = callPackage ./desktop/scrollkeeper { };
+
+  # scrollkeeper replacement
+  rarian = callPackage ./desktop/rarian { };
+
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
new file mode 100644
index 000000000000..4d22f6ad7466
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3
+, intltool, gnome_doc_utils}:
+
+stdenv.mkDerivation rec {
+
+  majorVersion = "3.5";
+  minorVersion = "3";
+  name = "gnome-desktop-${majorVersion}.${minorVersion}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
+    sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11
+                  gnome3.gtk gnome3.glib intltool gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
new file mode 100644
index 000000000000..7a1ab5b1505a
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gnome_doc_utils, intltool, which
+, libxml2, libxslt }:
+
+stdenv.mkDerivation rec {
+  version = "3.5.2";
+  name = "gnome-dictionary-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-dictionary/3.5/${name}.tar.xz";
+    sha256 = "1cq32csxn27vir5nlixx337ym2nal9ykq3s1j7yynh2adh4m0jil";
+  };
+
+  buildInputs = [ gnome3.gtk ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt gnome3.scrollkeeper ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
new file mode 100644
index 000000000000..77a2b710f447
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+
+stdenv.mkDerivation rec {
+  name = "rarian-0.8.1";
+  src = fetchurl {
+    url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
+    sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
+  };
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
new file mode 100644
index 000000000000..97dcbf4e0041
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}:
+
+stdenv.mkDerivation {
+  name = "scrollkeeper-0.3.14";
+  src = fetchurl {
+    url = mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2;
+    sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
+  };
+
+  # The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess
+  preConfigure = "
+    substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
+    cp ${automake}/share/automake*/config.{sub,guess} .
+  ";
+
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/xfce/4_08.nix b/pkgs/desktops/xfce/4_08.nix
new file mode 100644
index 000000000000..d29e3ac51ef0
--- /dev/null
+++ b/pkgs/desktops/xfce/4_08.nix
@@ -0,0 +1,37 @@
+{ pkgs, newScope }: let
+
+common = (import ./common.nix) { inherit pkgs newScope xfce_self; };
+callPackage = common.callPackage;
+
+xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE
+
+  exo           = callPackage ./core/exo.nix                { v= "0.6.2"; h= "0f8zh5y057l7xffskjvky6k88hrnz6jyk35mvlfpmx26anlgd77l"; };
+  libxfce4ui    = callPackage ./core/libxfce4ui.nix         { v= "4.8.1"; h= "0mlrcr8rqmv047xrb2dbh7f4knsppb1anx2b05s015h6v8lyvjrr"; };
+  libxfce4util  = callPackage ./core/libxfce4util.nix       { v= "4.8.2"; h= "05n8586h2fwkibfld5fm4ygx1w66jnbqqb3li0ardjvm2n24k885"; };
+  libxfcegui4   = callPackage ./core/libxfcegui4.nix        { v= "4.8.1"; h= "0hr4h6a9p6w3qw1976p8v9c9pwhd9zhrjlbaph0p7nyz7j1836ih"; };
+  thunar        = callPackage ./core/thunar.nix             { v= "1.2.3"; h= "19mczys6xr683r68g3s2njrrmnk1p73zypvwrhajw859c6nsjsp6"; };
+  xfce4panel    = callPackage ./core/xfce4-panel.nix        { v= "4.8.6"; h= "00zdkg1jg4n2n109nxan8ji2m06r9mc4lnlrvb55xvj229m2dwb6"; };
+  xfce4session  = callPackage ./core/xfce4-session.nix      { v= "4.8.2"; h= "1l608kik98jxbjl73waf8515hzji06lr80qmky2qlnp0b6js5g1i"; };
+  xfce4settings = callPackage ./core/xfce4-settings.nix     { v= "4.8.3"; h= "0bmw0s6jp2ws4n0f3387zwsyv46b0w89m6r70yb7wrqy9r3wqy6q"; };
+  xfceutils     = callPackage ./core/xfce-utils.nix         { v= "4.8.3"; h= "09mr0amp2f632q9i3vykaa0x5nrfihfm9v5nxsx9vch8wvbp0l03"; };
+  xfconf        = callPackage ./core/xfconf.nix             { v= "4.8.1"; h= "1jwkb73xcgqfly449jwbn2afiyx50p150z60x19bicps75sp6q4q"; };
+  xfdesktop     = callPackage ./core/xfdesktop.nix          { v= "4.8.3"; h= "097lc9djmay0jyyl42jmvcfda75ndp265nzn0aa3hv795bsn1175"; };
+  xfwm4         = callPackage ./core/xfwm4.nix              { v= "4.8.3"; h= "0zi2g1d2jdgw5armlk9xjh4ykmydy266gdba86nmhy951gm8n3hb"; };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix  { v= "4.8.0"; h= "0zy7i9x4qjchmyb8nfpb7m2ply5n2aq35p9wrhb8lpz4am1ihx7x"; };
+
+  #### APPLICATIONS
+
+  terminal      = null; # newer versions don't build with 4.8
+
+    # versions > 0.3* don't build with xfce-4.8.*
+  ristretto     = callPackage ./applications/ristretto.nix    { v= "0.3.7"; h= "19mzy159j4qhd7pd1b83gimxfdg3mwdab9lq9kk505d21r7iqc9b"; };
+
+  xfce4mixer    = callPackage ./applications/xfce4-mixer.nix  { v= "4.8.0"; h= "1aqgjxvck6hx26sk3n4n5avhv02vs523mfclcvjb3xnks3yli7wz"; };
+
+}; # xfce_self
+
+in xfce_self
+
diff --git a/pkgs/desktops/xfce/4_10.nix b/pkgs/desktops/xfce/4_10.nix
new file mode 100644
index 000000000000..3f846198e3f5
--- /dev/null
+++ b/pkgs/desktops/xfce/4_10.nix
@@ -0,0 +1,35 @@
+{ pkgs, newScope }: let
+
+common = (import ./common.nix) { inherit pkgs newScope xfce_self; };
+callPackage = common.callPackage;
+
+xfce_self = common.xfce_common // rec { # the lines are very long but it seems better than the even-odd line approach
+
+  #### CORE
+
+  exo             = callPackage ./core/exo.nix              { v= "0.10.2"; h= "1kknxiz703q4snmry65ajm26jwjslbgpzdal6bd090m3z25q51dk"; };
+  libxfce4ui      = callPackage ./core/libxfce4ui.nix       { v= "4.10.0"; h= "1qm31s6568cz4c8rl9fsfq0xmf7pldxm0ki62gx1cpybihlgmfd2"; };
+  libxfce4util    = callPackage ./core/libxfce4util.nix     { v= "4.10.0"; h= "13k0wwbbqvdmbj4xmk4nxdlgvrdgr5y6r3dk380mzfw053hzwy89"; };
+  libxfcegui4     = callPackage ./core/libxfcegui4.nix      { v= "4.10.0"; h= "0cs5im0ib0cmr1lhr5765yliqjfyxvk4kwy8h1l8bn3mj6bzk0ib"; };
+  thunar          = callPackage ./core/thunar.nix           { v= "1.6.2";  h= "11dx38rvkfbp91pxrprymxhimsm90gvizp277x9s5rwnwcm1ggbx"; };
+  xfce4panel      = callPackage ./core/xfce4-panel.nix      { v= "4.10.0"; h= "1f8903nx6ivzircl8d8s9zna4vjgfy0qhjk5d2x19g9bmycgj89k"; };
+  xfce4session    = callPackage ./core/xfce4-session.nix    { v= "4.10.0"; h= "1kj65jkjhd0ysf0yxsf88wzpyv6n8i8qgd3gb502hf1x9jksk2mv"; };
+  xfce4settings   = callPackage ./core/xfce4-settings.nix   { v= "4.10.0"; h= "0zppq747z9lrxyv5zrrvpalq7hb3gfhy9p7qbldisgv7m6dz0hq8"; };
+  xfceutils       = null; # removed in 4.10
+  xfconf          = callPackage ./core/xfconf.nix           { v= "4.10.0"; h= "0xh520z0qh0ib0ijgnyrgii9h5d4pc53n6mx1chhyzfc86j1jlhp"; };
+  xfdesktop       = callPackage ./core/xfdesktop.nix        { v= "4.10.0"; h= "0yrddj1lgk3xn4w340y89z7x2isks72ia36pka08kk2x8gpfcyl9"; };
+  xfwm4           = callPackage ./core/xfwm4.nix            { v= "4.10.0"; h= "170zzs7adj47srsi2cl723w9pl8k8awd7w1bpzxby7hj92zmf8s9"; };
+
+  xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix  { v= "4.9.4";  h= "12lgrbd1n50w9n8xkpai98s2aw8vmjasrgypc57sp0x0qafsqaxq"; };
+
+  #### APPLICATIONS
+
+  ristretto     = callPackage ./applications/ristretto.nix    { v= "0.6.3";  h= "0y9d8w1plwp4vmxs44y8k8x15i0k0xln89k6jndhv6lf57g1cs1b"; };
+  terminal      = xfce4terminal; # it has changed its name
+  xfce4mixer    = callPackage ./applications/xfce4-mixer.nix  { v= "4.10.0"; h= "1pnsd00583l7p5d80rxbh58brzy3jnccwikbbbm730a33c08kid8"; };
+  xfce4terminal = callPackage ./applications/terminal.nix     { v= "0.6.1";  h= "1j6lpkq952mrl5p24y88f89wn9g0namvywhma639xxsswlkn8d31"; };
+
+};
+
+in xfce_self
+
diff --git a/pkgs/desktops/xfce/common.nix b/pkgs/desktops/xfce/common.nix
new file mode 100644
index 000000000000..8be4ac09e145
--- /dev/null
+++ b/pkgs/desktops/xfce/common.nix
@@ -0,0 +1,72 @@
+{ pkgs, newScope, xfce_self }: rec {
+
+  callPackage = newScope (deps // xfce_self);
+
+  deps = rec { # xfce-global dependency overrides should be here
+    inherit (pkgs.gnome) libglade libwnck vte gtksourceview;
+    inherit (pkgs.perlPackages) URI;
+
+    # The useful bits from ‘gnome-disk-utility’.
+    libgdu = callPackage ./support/libgdu.nix { };
+
+    # Gvfs is required by Thunar for the trash feature and for volume
+    # mounting.  Should use the one from Gnome, but I don't want to mess
+    # with the Gnome packages (or pull in a zillion Gnome dependencies).
+    gvfs = callPackage ./support/gvfs.nix { };
+
+    # intelligent fetcher for Xfce
+    fetchXfce = rec {
+      generic = prepend : name : hash :
+        let lib = pkgs.lib;
+            p = builtins.parseDrvName name;
+            versions = lib.splitString "." p.version;
+            ver_maj = lib.concatStrings (lib.intersperse "." (lib.take 2 versions));
+            name_low = lib.toLower p.name;
+        in pkgs.fetchurl {
+          url = "mirror://xfce/src/${prepend}/${name_low}/${ver_maj}/${name}.tar.bz2";
+          sha256 = hash;
+        };
+      core = generic "xfce";
+      app = generic "apps";
+      art = generic "art";
+    };
+  };
+
+  xfce_common = rec {
+
+    inherit (deps) gvfs; # used by NixOS
+
+    #### CORE
+
+    garcon  = callPackage ./core/garcon.nix { v= "0.2.0";   h= "0v7pkvxcayi86z4f173z5l7w270f3g369sa88z59w0y0p7ns7ph2"; };
+
+    # not used anymore TODO: really? Update to 2.99.2?
+    gtk_xfce_engine = callPackage ./core/gtk-xfce-engine.nix { };
+
+    # ToDo: segfaults after some work
+    tumbler = callPackage ./core/tumbler.nix  { v= "0.1.27"; h= "0s9qj99b81asmlqa823nzykq8g6p9azcp2niak67y9bp52wv6q2c"; };
+
+    xfce4_power_manager = callPackage ./core/xfce4-power-manager.nix  { v= "1.0.10"; h= "1w120k1sl4s459ijaxkqkba6g1p2sqrf9paljv05wj0wz12bpr40"; };
+
+
+    #### APPLICATIONS
+    #TODO: correct links; more stuff
+
+    xfce4notifyd      = callPackage ./applications/xfce4-notifyd.nix      { v= "0.2.2"; h= "0s4ilc36sl5k5mg5727rmqims1l3dy5pwg6dk93wyjqnqbgnhvmn"; };
+    gigolo            = callPackage ./applications/gigolo.nix             { v= "0.4.1"; h= "1y8p9bbv1a4qgbxl4vn6zbag3gb7gl8qj75cmhgrrw9zrvqbbww2"; };
+    xfce4taskmanager  = callPackage ./applications/xfce4-taskmanager.nix  { v= "1.0.0"; h= "1vm9gw7j4ngjlpdhnwdf7ifx6xrrn21011almx2vwidhk2f9zvy0"; };
+    mousepad          = callPackage ./applications/mousepad.nix           { v= "0.3.0"; h= "0v84zwhjv2xynvisn5vmp7dbxfj4l4258m82ks7hn3adk437bwhh"; };
+    thunar_volman     = callPackage ./core/thunar-volman.nix              { };
+
+    #### ART
+
+    xfce4icontheme  = callPackage ./art/xfce4-icon-theme.nix  { v= "4.4.3"; h= "1yk6rx3zr9grm4jwpjvqdkl13pisy7qn1wm5cqzmd2kbsn96cy6l"; };
+
+    #### PANEL PLUGINS
+
+    xfce4_systemload_plugin = callPackage ./panel-plugins/xfce4-systemload-plugin.nix { };
+    xfce4_cpufreq_plugin    = callPackage ./panel-plugins/xfce4-cpufreq-plugin.nix    { };
+
+  };
+}
+
diff --git a/pkgs/desktops/xfce/core/xfce4-dev-tools.nix b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
new file mode 100644
index 000000000000..e56eb3f0a713
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-dev-tools.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, glib, autoconf, automake, libtool, intltool }:
+
+stdenv.mkDerivation rec {
+  p_name  = "xfce4-dev-tools";
+  ver_maj = "4.10";
+  ver_min = "0";
+
+  src = fetchurl {
+    url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
+    sha256 = "1y1byfjciqhxqfxbjfp22bn5lxk3a01ng7zfjha8h5mzzfxlk5pp";
+  };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  buildInputs = [ pkgconfig glib ];
+
+  # not needed to build it but to use it
+  propagatedBuildInputs = [ autoconf automake libtool intltool ];
+
+  meta = {
+    homepage = http://foo-projects.org/~benny/projects/xfce4-dev-tools/;
+    description = "Tools and M4 macros for Xfce4 developers";
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/xfce/core/xfce4-session-systemd.patch b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch
new file mode 100644
index 000000000000..7780491a8eda
--- /dev/null
+++ b/pkgs/desktops/xfce/core/xfce4-session-systemd.patch
@@ -0,0 +1,470 @@
+From ae28aef315a7a6b90f1649ce6d1f30b842791cbf Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sun, 04 Nov 2012 20:23:36 +0000
+Subject: Add shutdown/reboot functionality for systemd (bug #8729).
+
+Based on patch by Christian Hesse and Evangelos Foutras.
+---
+diff --git a/configure.in.in b/configure.in.in
+index 9aa4f8f..134d0f7 100644
+--- a/configure.in
++++ b/configure.in
+@@ -96,6 +96,10 @@ XDT_CHECK_PACKAGE([DBUS], [dbus-1], [1.1.0])
+ XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84])
+ XDT_CHECK_PACKAGE([XFCONF], [libxfconf-0], [4.9.0])
+ 
++dnl Check for polkit / systemd integration
++XDT_CHECK_OPTIONAL_PACKAGE([SYSTEMD], [polkit-gobject-1], [0.100],
++                           [systemd], [Systemd support (through polit)])
++
+ dnl Check for debugging support
+ XDT_FEATURE_DEBUG([xfsm_debug_default])
+ 
+diff --git a/xfce4-session/Makefile.am b/xfce4-session/Makefile.am
+index c015154..f748b2b 100644
+--- a/xfce4-session/Makefile.am
++++ b/xfce4-session/Makefile.am
+@@ -38,8 +38,6 @@ xfce4_session_SOURCES =							\
+ 	xfsm-compat-gnome.h						\
+ 	xfsm-compat-kde.c						\
+ 	xfsm-compat-kde.h						\
+-	xfsm-consolekit.c						\
+-	xfsm-consolekit.h						\
+ 	xfsm-dns.c							\
+ 	xfsm-dns.h							\
+ 	xfsm-error.c							\
+@@ -65,6 +63,16 @@ xfce4_session_SOURCES =							\
+ 	xfsm-upower.c							\
+ 	xfsm-upower.h
+ 
++if HAVE_SYSTEMD
++xfce4_session_SOURCES +=						\
++	xfsm-systemd.c							\
++	xfsm-systemd.h
++else
++xfce4_session_SOURCES +=						\
++	xfsm-consolekit.c						\
++	xfsm-consolekit.h
++endif
++
+ xfce4_session_CFLAGS =							\
+ 	$(LIBSM_CFLAGS)							\
+ 	$(LIBX11_CFLAGS)						\
+@@ -72,6 +80,7 @@ xfce4_session_CFLAGS =							\
+ 	$(DBUS_CFLAGS)							\
+ 	$(DBUS_GLIB_CFLAGS)						\
+ 	$(LIBWNCK_CFLAGS)						\
++	$(SYSTEMD_CFLAGS)						\
+ 	$(XFCONF_CFLAGS)						\
+ 	$(GMODULE_CFLAGS)						\
+ 	$(PLATFORM_CFLAGS)
+@@ -91,6 +100,7 @@ xfce4_session_LDADD =							\
+ 	$(DBUS_LIBS)							\
+ 	$(DBUS_GLIB_LIBS)						\
+ 	$(LIBWNCK_LIBS)							\
++	$(SYSTEMD_LIBS)							\
+ 	$(XFCONF_LIBS)							\
+ 	-lm
+ 
+diff --git a/xfce4-session/xfsm-shutdown.c b/xfce4-session/xfsm-shutdown.c
+index d8757a8..4c483a7 100644
+--- a/xfce4-session/xfsm-shutdown.c
++++ b/xfce4-session/xfsm-shutdown.c
+@@ -66,10 +66,13 @@
+ #include <xfce4-session/xfsm-fadeout.h>
+ #include <xfce4-session/xfsm-global.h>
+ #include <xfce4-session/xfsm-legacy.h>
+-#include <xfce4-session/xfsm-consolekit.h>
+ #include <xfce4-session/xfsm-upower.h>
+ 
+-
++#ifdef HAVE_SYSTEMD
++#include <xfce4-session/xfsm-systemd.h>
++#else
++#include <xfce4-session/xfsm-consolekit.h>
++#endif
+ 
+ static void xfsm_shutdown_finalize  (GObject      *object);
+ static void xfsm_shutdown_sudo_free (XfsmShutdown *shutdown);
+@@ -93,7 +96,11 @@ struct _XfsmShutdown
+ {
+   GObject __parent__;
+ 
++#ifdef HAVE_SYSTEMD
++  XfsmSystemd    *systemd;
++#else
+   XfsmConsolekit *consolekit;
++#endif
+   XfsmUPower     *upower;
+ 
+   /* kiosk settings */
+@@ -131,7 +138,11 @@ xfsm_shutdown_init (XfsmShutdown *shutdown)
+ {
+   XfceKiosk *kiosk;
+ 
++#ifdef HAVE_SYSTEMD
++  shutdown->systemd = xfsm_systemd_get ();
++#else
+   shutdown->consolekit = xfsm_consolekit_get ();
++#endif
+   shutdown->upower = xfsm_upower_get ();
+   shutdown->helper_state = SUDO_NOT_INITIAZED;
+   shutdown->helper_require_password = FALSE;
+@@ -150,7 +161,11 @@ xfsm_shutdown_finalize (GObject *object)
+ {
+   XfsmShutdown *shutdown = XFSM_SHUTDOWN (object);
+ 
++#ifdef HAVE_SYSTEMD
++  g_object_unref (G_OBJECT (shutdown->systemd));
++#else
+   g_object_unref (G_OBJECT (shutdown->consolekit));
++#endif
+   g_object_unref (G_OBJECT (shutdown->upower));
+ 
+   /* close down helper */
+@@ -641,7 +656,11 @@ xfsm_shutdown_try_restart (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_RESTART, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return xfsm_systemd_try_restart (shutdown->systemd, error);
++#else
+     return xfsm_consolekit_try_restart (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -658,7 +677,11 @@ xfsm_shutdown_try_shutdown (XfsmShutdown  *shutdown,
+   if (shutdown->helper_state == SUDO_AVAILABLE)
+     return xfsm_shutdown_sudo_try_action (shutdown, XFSM_SHUTDOWN_SHUTDOWN, error);
+   else
++#ifdef HAVE_SYSTEMD
++    return xfsm_systemd_try_shutdown (shutdown->systemd, error);
++#else
+     return xfsm_consolekit_try_shutdown (shutdown->consolekit, error);
++#endif
+ }
+ 
+ 
+@@ -698,7 +721,11 @@ xfsm_shutdown_can_restart (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (xfsm_systemd_can_restart (shutdown->systemd, can_restart, error))
++#else
+   if (xfsm_consolekit_can_restart (shutdown->consolekit, can_restart, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+@@ -725,7 +752,11 @@ xfsm_shutdown_can_shutdown (XfsmShutdown  *shutdown,
+       return TRUE;
+     }
+ 
++#ifdef HAVE_SYSTEMD
++  if (xfsm_systemd_can_shutdown (shutdown->systemd, can_shutdown, error))
++#else
+   if (xfsm_consolekit_can_shutdown (shutdown->consolekit, can_shutdown, error))
++#endif
+     return TRUE;
+ 
+   if (xfsm_shutdown_sudo_init (shutdown, error))
+diff --git a/xfce4-session/xfsm-systemd.c b/xfce4-session/xfsm-systemd.c
+new file mode 100644
+index 0000000..7bdd39d
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.c
+@@ -0,0 +1,229 @@
++/*-
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2, or (at your option)
++ * any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ * MA 02110-1301 USA.
++ */
++
++#include <config.h>
++
++#include <gio/gio.h>
++#include <polkit/polkit.h>
++#include <dbus/dbus-glib.h>
++#include <dbus/dbus-glib-lowlevel.h>
++
++#include <xfce4-session/xfsm-systemd.h>
++
++
++
++#define SYSTEMD_DBUS_NAME               "org.freedesktop.login1"
++#define SYSTEMD_DBUS_PATH               "/org/freedesktop/login1"
++#define SYSTEMD_DBUS_INTERFACE          "org.freedesktop.login1.Manager"
++#define SYSTEMD_REBOOT_ACTION           "Reboot"
++#define SYSTEMD_POWEROFF_ACTION         "PowerOff"
++#define SYSTEMD_REBOOT_TEST             "org.freedesktop.login1.reboot"
++#define SYSTEMD_POWEROFF_TEST           "org.freedesktop.login1.power-off"
++
++
++
++static void     xfsm_systemd_finalize     (GObject         *object);
++
++
++
++struct _XfsmSystemdClass
++{
++  GObjectClass __parent__;
++};
++
++struct _XfsmSystemd
++{
++  GObject __parent__;
++
++  PolkitAuthority *authority;
++  PolkitSubject   *subject;
++};
++
++
++
++G_DEFINE_TYPE (XfsmSystemd, xfsm_systemd, G_TYPE_OBJECT)
++
++
++
++static void
++xfsm_systemd_class_init (XfsmSystemdClass *klass)
++{
++  GObjectClass *gobject_class;
++
++  gobject_class = G_OBJECT_CLASS (klass);
++  gobject_class->finalize = xfsm_systemd_finalize;
++}
++
++
++
++static void
++xfsm_systemd_init (XfsmSystemd *systemd)
++{
++  systemd->authority = polkit_authority_get_sync (NULL, NULL);
++  systemd->subject = polkit_unix_process_new (getpid());
++}
++
++
++
++static void
++xfsm_systemd_finalize (GObject *object)
++{
++  XfsmSystemd *systemd = XFSM_SYSTEMD (object);
++
++  g_object_unref (G_OBJECT (systemd->authority));
++  g_object_unref (G_OBJECT (systemd->subject));
++
++  (*G_OBJECT_CLASS (xfsm_systemd_parent_class)->finalize) (object);
++}
++
++
++static gboolean
++xfsm_systemd_can_method (XfsmSystemd  *systemd,
++                         gboolean     *can_method,
++                         const gchar  *method,
++                         GError      **error)
++{
++  PolkitAuthorizationResult *res;
++  GError                    *local_error = NULL;
++
++  *can_method = FALSE;
++
++  res = polkit_authority_check_authorization_sync (systemd->authority,
++                                                   systemd->subject,
++                                                   method,
++                                                   NULL,
++                                                   POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
++                                                   NULL,
++                                                   &local_error);
++
++  if (res == NULL)
++    {
++      g_propagate_error (error, local_error);
++      return FALSE;
++    }
++
++  *can_method = polkit_authorization_result_get_is_authorized (res)
++                || polkit_authorization_result_get_is_challenge (res);
++
++  g_object_unref (G_OBJECT (res));
++
++  return TRUE;
++}
++
++
++
++static gboolean
++xfsm_systemd_try_method (XfsmSystemd  *systemd,
++                         const gchar  *method,
++                         GError      **error)
++{
++  GDBusConnection *bus;
++  GError          *local_error = NULL;
++
++  bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, error);
++  if (G_UNLIKELY (bus == NULL))
++    return FALSE;
++
++  g_dbus_connection_call_sync (bus,
++                               SYSTEMD_DBUS_NAME,
++                               SYSTEMD_DBUS_PATH,
++                               SYSTEMD_DBUS_INTERFACE,
++                               method,
++                               g_variant_new ("(b)", TRUE),
++                               NULL, 0, G_MAXINT, NULL,
++                               &local_error);
++
++  g_object_unref (G_OBJECT (bus));
++
++  if (local_error != NULL)
++    {
++      g_propagate_error (error, local_error);
++      return FALSE;
++    }
++
++  return TRUE;
++}
++
++
++
++XfsmSystemd *
++xfsm_systemd_get (void)
++{
++  static XfsmSystemd *object = NULL;
++
++  if (G_LIKELY (object != NULL))
++    {
++      g_object_ref (G_OBJECT (object));
++    }
++  else
++    {
++      object = g_object_new (XFSM_TYPE_SYSTEMD, NULL);
++      g_object_add_weak_pointer (G_OBJECT (object), (gpointer) &object);
++    }
++
++  return object;
++}
++
++
++
++gboolean
++xfsm_systemd_try_restart (XfsmSystemd  *systemd,
++                          GError      **error)
++{
++  return xfsm_systemd_try_method (systemd,
++                                  SYSTEMD_REBOOT_ACTION,
++                                  error);
++}
++
++
++
++gboolean
++xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
++                           GError      **error)
++{
++  return xfsm_systemd_try_method (systemd,
++                                  SYSTEMD_POWEROFF_ACTION,
++                                  error);
++}
++
++
++
++gboolean
++xfsm_systemd_can_restart (XfsmSystemd  *systemd,
++                          gboolean     *can_restart,
++                          GError      **error)
++{
++  return xfsm_systemd_can_method (systemd,
++                                  can_restart,
++                                  SYSTEMD_REBOOT_TEST,
++                                  error);
++}
++
++
++
++gboolean
++xfsm_systemd_can_shutdown (XfsmSystemd  *systemd,
++                           gboolean     *can_shutdown,
++                           GError      **error)
++{
++  return xfsm_systemd_can_method (systemd,
++                                  can_shutdown,
++                                  SYSTEMD_POWEROFF_TEST,
++                                  error);
++}
+diff --git a/xfce4-session/xfsm-systemd.h b/xfce4-session/xfsm-systemd.h
+new file mode 100644
+index 0000000..8223622
+--- /dev/null
++++ b/xfce4-session/xfsm-systemd.h
+@@ -0,0 +1,55 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2012 Christian Hesse
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++
++#ifndef __XFSM_SYSTEMD_H__
++#define __XFSM_SYSTEMD_H__
++
++typedef struct _XfsmSystemdClass XfsmSystemdClass;
++typedef struct _XfsmSystemd      XfsmSystemd;
++
++#define XFSM_TYPE_SYSTEMD            (xfsm_systemd_get_type ())
++#define XFSM_SYSTEMD(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemd))
++#define XFSM_SYSTEMD_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), XFSM_TYPE_SYSTEMD, XfsmSystemdClass))
++#define XFSM_IS_SYSTEMD(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFSM_TYPE_SYSTEMD))
++#define XFSM_IS_SYSTEMD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFSM_TYPE_SYSTEMD))
++#define XFSM_SYSTEMD_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), XFSM_TYPE_SYSTEMD, XfsmSystemdClass))
++
++GType           xfsm_systemd_get_type     (void) G_GNUC_CONST;
++
++XfsmSystemd *xfsm_systemd_get          (void);
++
++gboolean     xfsm_systemd_try_restart  (XfsmSystemd  *systemd,
++                                        GError      **error);
++
++gboolean     xfsm_systemd_try_shutdown (XfsmSystemd  *systemd,
++                                        GError      **error);
++
++gboolean     xfsm_systemd_can_restart  (XfsmSystemd  *systemd,
++                                        gboolean     *can_restart,
++                                        GError      **error);
++
++gboolean     xfsm_systemd_can_shutdown (XfsmSystemd  *systemd,
++                                        gboolean     *can_shutdown,
++                                        GError      **error);
++
++G_END_DECLS
++
++#endif  /* __XFSM_SYSTEMD_H__ */
+--
+cgit v0.9.1
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index b63a101b84f8..e5daaca9d528 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -35,7 +35,7 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od
   xfwm4           = callPackage ./core/xfwm4.nix { };
 
   xfce4_appfinder = callPackage ./core/xfce4-appfinder.nix { };
-
+  xfce4_dev_tools = callPackage ./core/xfce4-dev-tools.nix { }; # only if autotools are needed
 
   #### APPLICATIONS         from "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2"
 
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 13a0081a2574..c153abea247a 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,18 +1,24 @@
-{ stdenv, fetchurl, yacc, flex, pkgconfig, glib, libintlOrEmpty }:
+{ stdenv, fetchurl, yacc, flex, pkgconfig, glib, dbus, dbus_tools, libiconvOrEmpty }:
 
 stdenv.mkDerivation rec {
-
-  version = "0.17.2";
-  name = "vala-${version}";
+  p_name  = "vala";
+  ver_maj = "0.19";
+  ver_min = "0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/vala/0.17/${name}.tar.xz";
-    sha256 = "09i2s0dwmrk147ind2dx7nq845g12fp6fsjqrphhrr0dbi0zzgh3";
+    url = "mirror://gnome/sources/${p_name}/${ver_maj}/${name}.tar.xz";
+    sha256 = "1vn524hcnaggz8zx49mvf7p4z1mscrlj2syg7jjhph8nak5wi0bp";
   };
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  postPatch = "patchShebangs .";
 
   nativeBuildInputs = [ yacc flex pkgconfig ];
 
-  buildInputs = [ glib ] ++ libintlOrEmpty;
+  buildInputs = [ glib ] ++ libiconvOrEmpty
+    ++ stdenv.lib.optional doCheck [ dbus dbus_tools ];
+
+  doCheck = false; # problems when launching dbus tests
 
   meta = {
     description = "Compiler for the GObject type system";
diff --git a/pkgs/development/interpreters/python/2.7/default.nix b/pkgs/development/interpreters/python/2.7/default.nix
index 9fb2ab377dfc..7dc4708e3cf0 100644
--- a/pkgs/development/interpreters/python/2.7/default.nix
+++ b/pkgs/development/interpreters/python/2.7/default.nix
@@ -9,11 +9,11 @@ with stdenv.lib;
 let
 
   majorVersion = "2.7";
-  version = "${majorVersion}.3";
+  version = "${majorVersion}.4";
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.bz2";
-    sha256 = "0g3672il41rcfjk7sphfqdsa6qf53y8g3ai8yk1sslxi3khmfr3j";
+    sha256 = "0nd3x4j2w8pi9ac3pawrzb5i3s88hw0aasr08dprdv7q81fp0pq3";
   };
 
   patches =
diff --git a/pkgs/development/interpreters/python/3.3/default.nix b/pkgs/development/interpreters/python/3.3/default.nix
index 1471abe287a7..16973c6226ee 100644
--- a/pkgs/development/interpreters/python/3.3/default.nix
+++ b/pkgs/development/interpreters/python/3.3/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
     readlineSupport = readline != null;
     opensslSupport = openssl != null;
     tkSupport = (tk != null) && (tcl != null) && (libX11 != null) && (xproto != null);
-    libPrefix = "python${majorVersion}";
+    libPrefix = "python${majorVersion}m";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/GConf/3.x.nix b/pkgs/development/libraries/GConf/3.x.nix
deleted file mode 100644
index 82c0c1f2c435..000000000000
--- a/pkgs/development/libraries/GConf/3.x.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, glib, dbus_glib, pkgconfig, libxml2, gtk3, intltool, polkit }:
-
-stdenv.mkDerivation {
-  name = "GConf-3.2.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/GConf/3.2/GConf-3.2.3.tar.xz;
-    sha256 = "0jd1z9gb1b7mv4g07qm554va6idasf3swgrfqflypdh9s38mvdcy";
-  };
-
-  propagatedBuildInputs = [ glib dbus_glib ];
-  buildInputs = [ polkit gtk3 libxml2 ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  configureFlags = "--disable-orbit";
-
-  meta = {
-    homepage = http://projects.gnome.org/gconf/;
-    description = "A system for storing application preferences";
-    maintainers = [ stdenv.lib.maintainers.urkud ];
-    inherit (gtk3.meta) platforms;
-  };
-}
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index 8ff643ce5b18..899c3bb5c8d8 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
+{ stdenv, fetchurl, pkgconfig, audiofile
 , openglSupport ? false, mesa ? null
 , alsaSupport ? true, alsaLib ? null
 , x11Support ? true, x11 ? null, libXrandr ? null
@@ -16,25 +16,26 @@ assert pulseaudioSupport -> pulseaudio != null;
 
 let
   configureFlagsFun = attrs: ''
-        --disable-oss
+        --disable-oss --disable-video-x11-xme
         --disable-x11-shared --disable-alsa-shared --enable-rpath --disable-pulseaudio-shared
+        --disable-osmesa-shared
         ${if alsaSupport then "--with-alsa-prefix=${attrs.alsaLib}/lib" else ""}
       '';
 in
 stdenv.mkDerivation rec {
-  name = "SDL-1.2.14";
+  name = "SDL-1.2.15";
 
   src = fetchurl {
     url = "http://www.libsdl.org/release/${name}.tar.gz";
-    sha256 = "1dnrxr18cyar0xd13dca7h8wp1fin4n3iyncxfq6pjrlf0l7x4jx";
+    sha256 = "005d993xcac8236fpvd1iawkz4wqjybkpn8dbwaliqz5jfkidlyn";
   };
 
   # Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
   propagatedBuildInputs = stdenv.lib.optionals x11Support [ x11 libXrandr ] ++
     stdenv.lib.optional pulseaudioSupport pulseaudio;
 
-  buildInputs = [ pkgconfig ] ++
-    stdenv.lib.optional openglSupport mesa ++
+  buildInputs = [ pkgconfig audiofile ] ++
+    stdenv.lib.optional openglSupport [ mesa ] ++
     stdenv.lib.optional alsaSupport alsaLib;
 
   # XXX: By default, SDL wants to dlopen() PulseAudio, in which case
diff --git a/pkgs/development/libraries/atk/2.6.x.nix b/pkgs/development/libraries/atk/default.nix
index 4dd0ae1eeafb..d8e69fbf603e 100644
--- a/pkgs/development/libraries/atk/2.6.x.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, perl, glib }:
 
 stdenv.mkDerivation rec {
-  name = "atk-2.6.0";
+  name = "atk-2.8.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/atk/2.6/${name}.tar.xz";
-    sha256 = "eff663f90847620bb68c9c2cbaaf7f45e2ff44163b9ab3f10d15be763680491f";
+    url = "mirror://gnome/sources/atk/2.8/${name}.tar.xz";
+    sha256 = "1x3dd3hg9l1j9dq70xwph13vxdp6a9wbfcnryryf1wr6c8bij9dj";
   };
 
   nativeBuildInputs = [ pkgconfig perl ];
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 8c9f55426d53..65f826c7ed43 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -1,29 +1,33 @@
 { postscriptSupport ? true
 , pdfSupport ? true
 , pngSupport ? true
-, xcbSupport ? false
+, xcbSupport ? true # no longer experimental since 1.12
+, glSupport ? false
 , gobjectSupport ? true, glib
 , stdenv, fetchurl, pkgconfig, x11, fontconfig, freetype, xlibs
-, zlib, libpng, pixman, libxcb ? null, xcbutil ? null
+, expat
+, zlib, libpng, pixman, libxcb ? null, xcbutil ? null, mesa ? null
 , libiconvOrEmpty, libintlOrEmpty
 }:
 
 assert postscriptSupport -> zlib != null;
 assert pngSupport -> libpng != null;
 assert xcbSupport -> libxcb != null && xcbutil != null;
+assert glSupport -> mesa != null;
 
 stdenv.mkDerivation rec {
-  name = "cairo-1.12.4";
+  name = "cairo-1.12.14";
 
   src = fetchurl {
     url = "http://cairographics.org/releases/${name}.tar.xz";
-    sha1 = "f4158981ed01e73c94fb8072074b17feee61a68b";
+    sha256 = "04xcykglff58ygs0dkrmmnqljmpjwp2qgwcz8sijqkdpz7ix3l4n";
   };
 
-  buildInputs =
-    [ pkgconfig x11 fontconfig ]
-    ++ stdenv.lib.optional (!stdenv.isDarwin) xlibs.libXrender
+  buildInputs = with xlibs;
+    [ pkgconfig x11 fontconfig expat ]
+    ++ stdenv.lib.optional (!stdenv.isDarwin) libXrender
     ++ stdenv.lib.optionals xcbSupport [ libxcb xcbutil ]
+    ++ stdenv.lib.optionals glSupport [ mesa ]
     ++ libintlOrEmpty
     ++ libiconvOrEmpty;
 
@@ -36,17 +40,12 @@ stdenv.mkDerivation rec {
   configureFlags =
     [ "--enable-tee" ]
     ++ stdenv.lib.optional xcbSupport "--enable-xcb"
+    ++ stdenv.lib.optional glSupport "--enable-gl"
     ++ stdenv.lib.optional pdfSupport "--enable-pdf";
 
-  preConfigure = ''
-    # Work around broken `Requires.private' that prevents Freetype
-    # `-I' flags to be propagated.
-    sed -i "src/cairo.pc.in" \
-        -es'|^Cflags:\(.*\)$|Cflags: \1 -I${freetype}/include/freetype2 -I${freetype}/include|g'
-  ''
-
+  preConfigure =
   # On FreeBSD, `-ldl' doesn't exist.
-  + (stdenv.lib.optionalString stdenv.isFreeBSD
+    (stdenv.lib.optionalString stdenv.isFreeBSD
        '' for i in "util/"*"/Makefile.in" boilerplate/Makefile.in
           do
             cat "$i" | sed -es/-ldl//g > t
diff --git a/pkgs/development/libraries/dbus-cplusplus/default.nix b/pkgs/development/libraries/dbus-cplusplus/default.nix
index 2704b9586b1a..0a4b80d3f3ea 100644
--- a/pkgs/development/libraries/dbus-cplusplus/default.nix
+++ b/pkgs/development/libraries/dbus-cplusplus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, dbus, glib, gtkmm, pkgconfig }:
+{ stdenv, fetchurl, dbus, glib, gtkmm, pkgconfig, expat }:
 
 stdenv.mkDerivation rec {
   name = "dbus-cplusplus-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "0qafmy2i6dzx4n1dqp6pygyy6gjljnb7hwjcj2z11c1wgclsq4dw";
   };
 
-  buildInputs = [ dbus glib gtkmm pkgconfig ];
+  buildInputs = [ dbus glib gtkmm pkgconfig expat ];
 
   configureFlags = "--disable-ecore";
 
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 47e83e7780cc..be6cf442a49f 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -1,18 +1,20 @@
 { stdenv, fetchurl, pkgconfig, expat, gettext, libiconv, dbus, glib }:
 
 stdenv.mkDerivation rec {
-  name = "dbus-glib-0.98";
+  name = "dbus-glib-0.100.2";
 
   src = fetchurl {
     url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
-    sha256 = "04fiwld5yaxyggxlvdmbaqkngh4fn8gfkkqckcp3274bpgb82z19";
+    sha256 = "1ibav91yg70f2l3l18cr0hf4mna1h9d4mrg0c60w4l8zjbd45fx5";
   };
 
   nativeBuildInputs = [ pkgconfig gettext ];
 
   buildInputs = [ expat ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
 
-  propagatedBuildInputs = [ dbus glib ];
+  propagatedBuildInputs = [ dbus.libs glib ];
+
+  doCheck = true;
 
   passthru = { inherit dbus glib; };
 
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 5716ac6648a0..914ab96b5805 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,71 +1,104 @@
-{ stdenv, fetchurl, pkgconfig, expat, libX11, libICE, libSM, useX11 ? true }:
+{ stdenv, fetchurl, pkgconfig, autoconf, automake, libtool
+, expat, systemd, glib, dbus_glib, python
+, libX11, libICE, libSM, useX11 ? true }:
 
 let
-  version = "1.6.4";
+  version = "1.6.10"; # 1.7.* isn't recommended, even for gnome 3.8
+  sha256 = "11jyj6aw8yf75hqv7v0601n2xms08k0mys6dyql164m7ad56yg8z";
 
-  src = fetchurl {
-    url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz";
-  };
-
-  patches = [ ./ignore-missing-includedirs.patch ];
+  inherit (stdenv) lib;
 
-  configureFlags = "--localstatedir=/var --sysconfdir=/etc --with-session-socket-dir=/tmp";
-
-in rec {
+  buildInputsX = lib.optionals useX11 [ libX11 libICE libSM ];
 
-  libs = stdenv.mkDerivation {
-    name = "dbus-library-" + version;
+  # also other parts than "libs" need this statically linked lib
+  makeInternalLib = "(cd dbus && make libdbus-internal.la)";
 
-    nativeBuildInputs = [ pkgconfig ];
 
-    buildInputs = [ expat ];
+  # A generic builder for individual parts (subdirs) of D-Bus
+  dbus_drv = name: subdirs: merge: stdenv.mkDerivation (lib.mergeAttrsByFuncDefaultsClean [{
 
-    # FIXME: dbus has optional systemd integration when checking
-    # at_console policies.  How to enable this without introducing a
-    # circular dependency between dbus and systemd?
+    name = "dbus-${name}-${version}";
 
-    inherit src patches configureFlags;
+    src = fetchurl {
+      url = "http://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
+      inherit sha256;
+    };
 
-    preConfigure =
-      ''
-        sed -i '/mkinstalldirs.*localstatedir/d' bus/Makefile.in
-        sed -i '/SUBDIRS/s/ tools//' Makefile.in
-      '';
+    configureFlags = [
+      "--localstatedir=/var"
+      "--sysconfdir=/etc"
+      "--with-session-socket-dir=/tmp"
+      "--with-systemdsystemunitdir=$(out)/lib/systemd"
+    ];
 
-    # Enable X11 autolaunch support in libdbus.  This doesn't actually
-    # depend on X11 (it just execs dbus-launch in dbus.tools),
-    # contrary to what the configure script demands.
-    NIX_CFLAGS_COMPILE = "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
+    preConfigure = ''
+      patchShebangs .
+      substituteInPlace tools/Makefile.am --replace 'install-localstatelibDATA:' 'disabled:'
+      autoreconf -fi
+    '';
 
     installFlags = "sysconfdir=$(out)/etc";
-  };
-
-  tools = stdenv.mkDerivation {
-    name = "dbus-tools-" + version;
 
-    inherit src patches;
+    doCheck = true;
 
-    configureFlags = "${configureFlags} --with-dbus-daemondir=${daemon}/bin";
+    patches = [
+      ./ignore-missing-includedirs.patch ./implement-getgrouplist.patch
+      ./ucred-dirty-hack.patch ./no-create-dirs.patch
+    ];
 
     nativeBuildInputs = [ pkgconfig ];
+    propagatedBuildInputs = [ expat ];
+    buildInputs = [ autoconf automake libtool ]; # ToDo: optional selinux?
+
+    # build only the specified subdirs
+    postPatch = "sed '/SUBDIRS/s/=.*/=" + subdirs + "/' -i Makefile.am\n"
+      # use already packaged libdbus instead of trying to build it again
+      + lib.optionalString (name != "libs") ''
+          for mfile in */Makefile.am; do
+            sed 's,\$(top_builddir)/dbus/\(libdbus-[0-9]\),${libs}/lib/\1,g' -i "$mfile"
+          done
+        '';
+
+  } merge ]);
+
+  libs = dbus_drv "libs" "dbus" {
+    buildInputs = [ systemd.headers ];
+    patches = [ ./systemd.patch ]; # bypass systemd detection
+
+    # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
+    # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
+    NIX_CFLAGS_COMPILE = "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
+  };
 
-    buildInputs = [ expat libs ]
-      ++ stdenv.lib.optionals useX11 [ libX11 libICE libSM ];
+in rec {
 
-    NIX_LDFLAGS = "-ldbus-1";
+  # This package has been split because most applications only need dbus.lib
+  # which serves as an interface to a *system-wide* daemon,
+  # see e.g. http://en.wikipedia.org/wiki/D-Bus#Architecture .
+  # Also some circular dependencies get split by this (like with systemd).
 
-    preConfigure =
-      ''
-        sed -i 's@$(top_builddir)/dbus/libdbus-1.la@@' tools/Makefile.in
-        substituteInPlace tools/Makefile.in --replace 'install-localstatelibDATA:' 'disabled:'
-      '';
+  inherit libs;
 
-    postConfigure = "cd tools";
+  tools = dbus_drv "tools" "tools" {
+    configureFlags = [ "--with-dbus-daemondir=${daemon}/bin" ];
+    buildInputs = buildInputsX ++ [ libs daemon systemd dbus_glib ];
+    NIX_CFLAGS_LINK = "-Wl,--as-needed -ldbus-1";
+  };
 
-    installFlags = "localstatedir=$TMPDIR/var";
+  daemon = dbus_drv "daemon" "bus" {
+    preBuild = makeInternalLib;
+    buildInputs = [ systemd ];
   };
 
-  # I'm too lazy to separate daemon and libs now.
-  daemon = libs;
+  # Some of the tests don't work yet; in fact, @vcunat tried several packages
+  # containing dbus testing, and all of them have some test failure.
+  tests = dbus_drv "tests" "test" {
+    preBuild = makeInternalLib;
+    buildInputs = buildInputsX ++ [ systemd libs tools daemon dbus_glib python ];
+    NIX_CFLAGS_LINK = "-Wl,--as-needed -ldbus-1";
+  };
+
+  docs = dbus_drv "docs" "doc" {
+    postInstall = ''rm -r "$out/lib"'';
+  };
 }
diff --git a/pkgs/development/libraries/dbus/implement-getgrouplist.patch b/pkgs/development/libraries/dbus/implement-getgrouplist.patch
new file mode 100644
index 000000000000..e3a4a25cb720
--- /dev/null
+++ b/pkgs/development/libraries/dbus/implement-getgrouplist.patch
@@ -0,0 +1,108 @@
+Compatibility patch for Illumos/Solaris and possibly other platforms.
+Implements getgrouplist when not provided by OS.
+Without it, only the user's primary group is used in authentication!
+--- 	1970-01-01 00:00:00.000000000 +0000
++++ dbus-1.6.8/dbus/getgrouplist.c	2013-02-28 13:10:51.081792722 +0000
+@@ -0,0 +1,89 @@
++/*	$OpenBSD: getgrouplist.c,v 1.12 2005/08/08 08:05:34 espie Exp $ */
++/*
++ * Copyright (c) 1991, 1993
++ *	The Regents of the University of California.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ * 3. Neither the name of the University nor the names of its contributors
++ *    may be used to endorse or promote products derived from this software
++ *    without specific prior written permission.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++/* OPENBSD ORIGINAL: lib/libc/gen/getgrouplist.c */
++
++/*
++ * get credential
++ */
++#include <sys/types.h>
++#include <string.h>
++#include <unistd.h>
++#include <grp.h>
++
++int
++getgrouplist(const char *uname, gid_t agroup, gid_t *groups, int *grpcnt)
++{
++	struct group *grp;
++	int i, ngroups;
++	int ret, maxgroups;
++	int bail;
++
++	ret = 0;
++	ngroups = 0;
++	maxgroups = *grpcnt;
++
++	/*
++	 * install primary group
++	 */
++	if (ngroups >= maxgroups) {
++		*grpcnt = ngroups;
++		return (-1);
++	}
++	groups[ngroups++] = agroup;
++
++	/*
++	 * Scan the group file to find additional groups.
++	 */
++	setgrent();
++	while ((grp = getgrent())) {
++		if (grp->gr_gid == agroup)
++			continue;
++		for (bail = 0, i = 0; bail == 0 && i < ngroups; i++)
++			if (groups[i] == grp->gr_gid)
++				bail = 1;
++		if (bail)
++			continue;
++		for (i = 0; grp->gr_mem[i]; i++) {
++			if (!strcmp(grp->gr_mem[i], uname)) {
++				if (ngroups >= maxgroups) {
++					ret = -1;
++					goto out;
++				}
++				groups[ngroups++] = grp->gr_gid;
++				break;
++			}
++		}
++	}
++out:
++	endgrent();
++	*grpcnt = ngroups;
++	return (ret);
++}
+--- dbus-1.6.8/dbus/dbus-sysdeps-unix.c.orig	2013-02-28 13:08:52.171215237 +0000
++++ dbus-1.6.8/dbus/dbus-sysdeps-unix.c	2013-02-28 13:13:52.224615146 +0000
+@@ -21,6 +21,10 @@
+  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+  *
+  */
++#ifndef HAVE_GETGROUPLIST
++#include "getgrouplist.c"
++#define HAVE_GETGROUPLIST
++#endif
+ 
+ #include <config.h>
+ 
diff --git a/pkgs/development/libraries/dbus/no-create-dirs.patch b/pkgs/development/libraries/dbus/no-create-dirs.patch
new file mode 100644
index 000000000000..cf10d9775991
--- /dev/null
+++ b/pkgs/development/libraries/dbus/no-create-dirs.patch
@@ -0,0 +1,26 @@
+diff --git a/bus/Makefile.am b/bus/Makefile.am
+index 6cbc09a..be60bb8 100644
+--- a/bus/Makefile.am
++++ b/bus/Makefile.am
+@@ -212,7 +212,6 @@ clean-local:
+ 	/bin/rm *.bb *.bbg *.da *.gcov || true
+ 
+ install-data-hook:
+-	$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
+ 	$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
+ 	$(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
+ 	$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index cfd54b8..b6e28f9 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -74,7 +74,7 @@ CLEANFILES = 				\
+ 
+ # create the /var/lib/dbus directory for dbus-uuidgen
+ install-data-local:
+-	$(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus
++	:
+ 
+ installcheck-local:
+-	test -d $(DESTDIR)$(localstatedir)/lib/dbus
++	:
diff --git a/pkgs/development/libraries/dbus/systemd.patch b/pkgs/development/libraries/dbus/systemd.patch
new file mode 100644
index 000000000000..7e6cb1f87d07
--- /dev/null
+++ b/pkgs/development/libraries/dbus/systemd.patch
@@ -0,0 +1,14 @@
+diff --git a/configure.ac b/configure.ac
+index 24fcc9e..98e0459 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1167,7 +1167,8 @@ else
+     PKG_CHECK_MODULES(SYSTEMD,
+         [libsystemd-login >= 32, libsystemd-daemon >= 32],
+         have_systemd=yes,
+-        have_systemd=no)
++        have_systemd=yes)
++    AC_MSG_NOTICE([NixOS: do not care whether we found systemd or not])
+ fi
+ 
+ if test x$have_systemd = xyes; then
diff --git a/pkgs/development/libraries/dbus/ucred-dirty-hack.patch b/pkgs/development/libraries/dbus/ucred-dirty-hack.patch
new file mode 100644
index 000000000000..a07abcc15fb0
--- /dev/null
+++ b/pkgs/development/libraries/dbus/ucred-dirty-hack.patch
@@ -0,0 +1,18 @@
+diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c
+index b4ecc96..267984a 100644
+--- a/dbus/dbus-sysdeps-unix.c
++++ b/dbus/dbus-sysdeps-unix.c
+@@ -1635,6 +1635,13 @@ write_credentials_byte (int             server_fd,
+     }
+ }
+ 
++struct ucred
++{
++  pid_t pid;			/* PID of sending process.  */
++  uid_t uid;			/* UID of sending process.  */
++  gid_t gid;			/* GID of sending process.  */
++};
++
+ /**
+  * Reads a single byte which must be nul (an error occurs otherwise),
+  * and reads unix credentials if available. Clears the credentials
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 116fe3c0c20f..2067f3457b63 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -1,18 +1,26 @@
 { stdenv, fetchurl, pkgconfig, freetype, expat }:
 
 stdenv.mkDerivation rec {
-  name = "fontconfig-2.10.1";
+  name = "fontconfig-2.10.2";
 
   src = fetchurl {
-    url = "http://fontconfig.org/release/${name}.tar.gz";
-    sha256 = "08h252crb3aqciwdk81jypmz2i7618dzqn3zlr87w1f017wjp4f3";
+    url = "http://fontconfig.org/release/${name}.tar.bz2";
+    sha256 = "0llraqw86jmw4vzv7inskp3xxm2gc64my08iwq5mzncgfdbfza4f";
   };
 
-  buildInputs = [ pkgconfig freetype ];
+  infinality_patch = with freetype.infinality; if useInfinality
+    then let subvers = "1";
+      in fetchurl {
+        url = "${base_URL}/fontconfig-infinality-1-${vers}_${subvers}.tar.bz2";
+        sha256 = "1fm5xx0mx2243jrq5rxk4v0ajw2nawpj23399h710bx6hd1rviq7";
+      }
+    else null;
 
-  propagatedBuildInputs = [ expat ]; # !!! shouldn't be necessary, but otherwise pango breaks
+  buildInputs = [ pkgconfig freetype expat ];
 
-  configureFlags = "--with-confdir=/etc/fonts --with-cache-dir=/var/cache/fontconfig --disable-docs --with-default-fonts=";
+  #propagatedBuildInputs = [ expat ]; # !!! shouldn't be necessary, but otherwise pango breaks
+
+  configureFlags = "--sysconfdir=/etc --with-cache-dir=/var/cache/fontconfig --disable-docs --with-default-fonts=";
 
   # We should find a better way to access the arch reliably.
   crossArch = stdenv.cross.arch or null;
@@ -26,7 +34,11 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # Don't try to write to /etc/fonts or /var/cache/fontconfig at install time.
-  installFlags = "CONFDIR=$(out)/etc/fonts RUN_FC_CACHE_TEST=false fc_cachedir=$(TMPDIR)/dummy";
+  installFlags = "sysconfdir=$(out)/etc RUN_FC_CACHE_TEST=false fc_cachedir=$(TMPDIR)/dummy";
+
+  postInstall = if !freetype.infinality.useInfinality then "" else ''
+    cd "$out/etc/fonts" && tar xvf ${infinality_patch}
+  '';
 
   meta = {
     description = "A library for font customization and configuration";
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index b26789930a4b..cff22e9bc577 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -1,22 +1,50 @@
 { stdenv, fetchurl, gnumake
-, # FreeType supports sub-pixel rendering.  This is patented by
+  # FreeType supports sub-pixel rendering.  This is patented by
   # Microsoft, so it is disabled by default.  This option allows it to
   # be enabled.  See http://www.freetype.org/patents.html.
-  useEncumberedCode ? false
+, useEncumberedCode ? false
+, useInfinality ? true
 }:
 
+assert !(useEncumberedCode && useInfinality); # probably wouldn't make sense
+
+let
+
+  version = "2.4.11";
+
+  infinality = rec {
+    inherit useInfinality;
+    vers = "20130104";
+    subvers = "04";
+    sha256 = "0dqglig34lfcw0w6sm6vmich0pcvq303vyh8jzqapvxgvrpr2156";
+
+    base_URL = "http://www.infinality.net/fedora/linux/zips";
+    url = "${base_URL}/freetype-infinality-${version}-${vers}_${subvers}-x86_64.tar.bz2";
+  };
+
+in
+
 stdenv.mkDerivation rec {
-  name = "freetype-2.4.10";
+  name = "freetype-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/freetype/${name}.tar.bz2";
-    sha256 = "0bwrkqpygayfc1rf6rr1nb8l3svgn1fmjz8davg2hnf46cn293hc";
+    sha256 = "0gxyzxqpyf8g85y6g1zc1wqrh71prbbk8xfw4m8rwzb4ck5hp7gg";
   };
 
+  infinality_patch = if useInfinality
+    then fetchurl { inherit (infinality) url sha256; }
+    else null;
+
   configureFlags = "--disable-static";
 
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString useEncumberedCode
-    "-DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1";
+  NIX_CFLAGS_COMPILE = with stdenv.lib;
+    " -fno-strict-aliasing" # from Gentoo, see https://bugzilla.redhat.com/show_bug.cgi?id=506840
+    + optionalString useEncumberedCode " -DFT_CONFIG_OPTION_SUBPIXEL_RENDERING=1"
+    + optionalString useInfinality " -DTT_CONFIG_OPTION_SUBPIXEL_HINTING=1";
+
+  patches = [ ./enable-validation.patch ] # from Gentoo
+    ++ stdenv.lib.optional useInfinality [ infinality_patch ];
 
   # The asm for armel is written with the 'asm' keyword.
   CFLAGS = stdenv.lib.optionalString stdenv.isArm "-std=gnu99";
@@ -26,6 +54,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  doCheck = true;
+
   postInstall =
     ''
       ln -s freetype2/freetype $out/include/freetype
@@ -38,9 +68,12 @@ stdenv.mkDerivation rec {
     configureFlags = "--disable-static CC_BUILD=gcc";
   };
 
+  passthru = { inherit infinality; }; # for fontconfig
+
   meta = {
     description = "A font rendering engine";
     homepage = http://www.freetype.org/;
-    license = "GPLv2+"; # or the FreeType License (BSD + advertising clause)
+    license = if useEncumberedCode then "unfree"
+      else "GPLv2+"; # or the FreeType License (BSD + advertising clause)
   };
 }
diff --git a/pkgs/development/libraries/freetype/enable-validation.patch b/pkgs/development/libraries/freetype/enable-validation.patch
new file mode 100644
index 000000000000..44f3bf6e1c94
--- /dev/null
+++ b/pkgs/development/libraries/freetype/enable-validation.patch
@@ -0,0 +1,22 @@
+Enables gxvalid and otvalid modules for use with ftvalid.
+
+--- freetype-2.2.1/modules.cfg.orig	2006-07-07 21:01:09.000000000 -0400
++++ freetype-2.2.1/modules.cfg	2006-07-07 21:01:54.000000000 -0400
+@@ -110,7 +110,7 @@
+ AUX_MODULES += cache
+ 
+ # TrueType GX/AAT table validation.  Needs ftgxval.c below.
+-# AUX_MODULES += gxvalid
++AUX_MODULES += gxvalid
+ 
+ # Support for streams compressed with gzip (files with suffix .gz).
+ #
+@@ -124,7 +124,7 @@
+ 
+ # OpenType table validation.  Needs ftotval.c below.
+ #
+-# AUX_MODULES += otvalid
++AUX_MODULES += otvalid
+ 
+ # Auxiliary PostScript driver component to share common code.
+ #
diff --git a/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 2876c9b94341..c466905e4917 100644
--- a/pkgs/development/libraries/gdk-pixbuf/2.26.x.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz, jasper }:
+{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz
+, jasper }:
 
 stdenv.mkDerivation rec {
-  name = "gdk-pixbuf-2.26.1";
+  name = "gdk-pixbuf-2.28.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdk-pixbuf/2.26/${name}.tar.xz";
-    sha256 = "a60af12b58d9cc15ba4c680c6730ce5d38e8d664af1d575a379385b94b4ec7ba";
+    url = "mirror://gnome/sources/gdk-pixbuf/2.28/${name}.tar.xz";
+    sha256 = "1fy2a05xhfg7gy4l4aajsbmgj62zxhikdxqh6bicihxmzm1vg85y";
   };
 
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
diff --git a/pkgs/development/libraries/glib/2.34.x.nix b/pkgs/development/libraries/glib/default.nix
index 69ed44aeccaa..47d8d9433245 100644
--- a/pkgs/development/libraries/glib/2.34.x.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconvOrNull, zlib, libffi
-, python, pcre }:
+{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconvOrEmpty, zlib, libffi
+, python, pcre, libelf }:
 
 # TODO:
 # * Add gio-module-fam
@@ -11,16 +11,29 @@
 #     Reminder: add 'sed -e 's@python2\.[0-9]@python@' -i
 #       $out/bin/gtester-report' to postInstall if this is solved
 
+let
+  # some packages don't get "Cflags" from pkgconfig correctly
+  # and then fail to build when directly including like <glib/...>
+  flattenInclude = ''
+    for dir in $out/include/*; do
+      cp -r $dir/* "$out/include/"
+      rm -r "$dir"
+      ln -s . "$dir"
+    done
+    ln -sr -t "$out/include/" $out/lib/*/include/* 2>/dev/null || true
+  '';
+in
+
 stdenv.mkDerivation (rec {
-  name = "glib-2.34.0";
+  name = "glib-2.36.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib/2.34/${name}.tar.xz";
-    sha256 = "f69b112f8848be35139d9099b62bc81649241f78f6a775516f0d4c9b47f65144";
+    url = "mirror://gnome/sources/glib/2.36/${name}.tar.xz";
+    sha256 = "090bw5par3dfy5m6dhq393pmy92zpw3d7rgbzqjc14jfg637bqvx";
   };
 
   # configure script looks for d-bus but it is only needed for tests
-  buildInputs = [ libiconvOrNull ];
+  buildInputs = [ libelf ] ++ libiconvOrEmpty;
 
   nativeBuildInputs = [ perl pkgconfig gettext python ];
 
@@ -28,12 +41,17 @@ stdenv.mkDerivation (rec {
 
   configureFlags = "--with-pcre=system --disable-fam";
 
-  enableParallelBuilding = true;
+  postConfigure = "sed '/SANE_MALLOC_PROTOS/s,^,//,' -i config.h"; # https://bugzilla.gnome.org/show_bug.cgi?id=698716 :-)
 
-  passthru.gioModuleDir = "lib/gio/modules";
+  enableParallelBuilding = true;
 
   postInstall = ''rm -rvf $out/share/gtk-doc'';
 
+  passthru = {
+     gioModuleDir = "lib/gio/modules";
+     inherit flattenInclude;
+  };
+
   meta = {
     description = "GLib, a C library of programming buildings blocks";
 
diff --git a/pkgs/development/libraries/gmime/default.nix b/pkgs/development/libraries/gmime/default.nix
index 02145d08c289..99859b9f34ef 100644
--- a/pkgs/development/libraries/gmime/default.nix
+++ b/pkgs/development/libraries/gmime/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, glib, zlib }:
+{ stdenv, fetchurl, pkgconfig, glib, zlib, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  name = "gmime-2.4.24";
-  
+  name = "gmime-2.6.15";
+
   src = fetchurl {
-    url = "mirror://gnome/sources/gmime/2.4/${name}.tar.gz";
-    sha256 = "2f538d68e215f075d16575a6da9acb87983db9e2df0d7d403858048881a0dd15";
+    url = "mirror://gnome/sources/gmime/2.6/${name}.tar.xz";
+    sha256 = "16n9gmlwn6rphi59hrwy6dpn785s3r13h2kmrn3k61l2kfws1hml";
   };
-  
-  buildInputs = [ pkgconfig glib zlib ];
+
+  nativeBuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ glib zlib libgpgerror ];
 
   meta = {
     homepage = http://spruce.sourceforge.net/gmime/;
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index fe1d519f5625..b96d5b25bb1c 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python }:
+{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  name = "gobject-introspection-1.34.0";
+  name = "gobject-introspection-1.34.2";
 
-  buildInputs = [ flex bison glib pkgconfig python ];
+  buildInputs = [ flex bison glib pkgconfig python gdk_pixbuf ];
   propagatedBuildInputs = [ libffi ];
 
   # Tests depend on cairo, which is undesirable (it pulls in lots of
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gobject-introspection/1.34/${name}.tar.xz";
-    sha256 = "80e211ea95404fc7c5fa3b04ba69ee0b29af70847af315155ab06b8cff832c85";
+    sha256 = "0a9lq0y67sr3g37l1hy0biqn046jr9wnd05hvwi8j8g2bjilhydw";
   };
 
   postInstall = "rm -rf $out/share/gtk-doc";
diff --git a/pkgs/development/libraries/gtk+/2.24.x.nix b/pkgs/development/libraries/gtk+/2.x.nix
index c259f7005730..c8224fa18e6d 100644
--- a/pkgs/development/libraries/gtk+/2.24.x.nix
+++ b/pkgs/development/libraries/gtk+/2.x.nix
@@ -8,22 +8,22 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-2.24.14";
+  name = "gtk+-2.24.17";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
-    sha256 = "8bd1b8b511a3004e8972badf467ce829e6855cdff15540b9344dc934c68008ac";
+    sha256 = "05gl82k82w3gjrzr4vmj3ski7mp1b0jbhc49wgl9hv8mc2sb4iz9";
   };
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ perl pkgconfig ];
 
-  propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
-      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
+  propagatedBuildInputs = with xlibs;
+    [ glib cairo pango gdk_pixbuf atk
+      libXrandr libXrender libXcomposite libXi libXcursor
     ]
-    ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
+    ++ stdenv.lib.optional xineramaSupport libXinerama
     ++ stdenv.lib.optionals cupsSupport [ cups ];
 
   configureFlags = "--with-xinput=yes";
diff --git a/pkgs/development/libraries/gtk+/3.2.x.nix b/pkgs/development/libraries/gtk+/3-default.nix
index cace1b626f49..1b296e2c3985 100644
--- a/pkgs/development/libraries/gtk+/3.2.x.nix
+++ b/pkgs/development/libraries/gtk+/3-default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, glib, atk, pango, cairo, perl, xlibs
-, gdk_pixbuf, xz
+{ stdenv, fetchurl, pkgconfig
+, expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, xlibs
 , xineramaSupport ? true
 , cupsSupport ? true, cups ? null
 }:
@@ -8,22 +8,20 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-3.2.4";
+  name = "gtk+-3.8.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/3.2/${name}.tar.xz";
-    sha256 = "f981bf514858c00d7084bd6f6c34b3c60b8aebdb959e7aca6faa59ed67c136bd";
+    url = "mirror://gnome/sources/gtk+/3.8/${name}.tar.xz";
+    sha256 = "0bi5dip7l6d08c6v9c9aipwsi8hq38xjljqv86nmnpvbkpc4a4yv";
   };
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ perl pkgconfig ];
-
-  propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
-      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
-    ]
-    ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
+  nativeBuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = with xlibs; [
+    expat glib cairo pango gdk_pixbuf atk at_spi2_atk
+    libXrandr libXrender libXcomposite libXi libXcursor
+  ] ++ stdenv.lib.optional xineramaSupport libXinerama
     ++ stdenv.lib.optionals cupsSupport [ cups ];
 
   postInstall = "rm -rf $out/share/gtk-doc";
diff --git a/pkgs/development/libraries/gtkmm/3.x.nix b/pkgs/development/libraries/gtkmm/3.x.nix
index d3681b4b3867..5c4a13fe507c 100644
--- a/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/pkgs/development/libraries/gtkmm/3.x.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gtk3, glibmm, cairomm, pangomm, atkmm }:
 
-stdenv.mkDerivation {
-  name = "gtkmm-3.2.0";
+stdenv.mkDerivation rec {
+  name = "gtkmm-3.7.12"; # gnome 3.8 release; stable 3.6 has problems with our new glibc
 
   src = fetchurl {
-    url = mirror://gnome/sources/gtkmm/3.2/gtkmm-3.2.0.tar.xz;
-    sha256 = "1wkljr2vjvjg5mggi4rvk9k4j2kzh8lc106k2yp8gqjlhk2xm5b1";
+    url = "mirror://gnome/sources/gtkmm/3.7/${name}.tar.xz";
+    sha256 = "05nrilm34gid7kqlq09hcdd7942prn2vbr1qgqvdhgy4x8pvz9p9";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 5755e747a6b5..8c848218d30f 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, freetype }:
 
 stdenv.mkDerivation rec {
-  name = "harfbuzz-0.9.4";
+  name = "harfbuzz-0.9.12";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
-    sha256 = "2572f9a810d17a735ef565115463827d075af2371ee5b68e6d77231381f4bddc";
+    sha256 = "19cx5y2m20rp7z5j7mwqfb4ph2g8lrri69zim44x362y4w5gfly6";
   };
 
   buildInputs = [ pkgconfig glib freetype ];
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index 6d56cd446338..710f6bd87009 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -1,25 +1,25 @@
 { stdenv, fetchurl, pkgconfig, libtool, gtk ? null
-, alsaLib, pulseaudio, gstreamer ? null, libvorbis, libcap }:
+, alsaLib, pulseaudio, gstreamer, gst_plugins_base, libvorbis }:
 
 stdenv.mkDerivation rec {
-  name = "libcanberra-0.28";
+  name = "libcanberra-0.30";
 
   src = fetchurl {
-    url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.gz";
-    sha256 = "1346d2y24wiyanyr5bvdnjjgq7iysy8nlq2dwjv0fzxdmcn8n7zb";
+    url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.xz";
+    sha256 = "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2";
   };
 
-  buildInputs =
-    [ pkgconfig libtool alsaLib pulseaudio gstreamer libvorbis libcap gtk ];
+  buildInputs = # ToDo: gstreamer not found (why?), add (g)udev?
+    [ pkgconfig libtool alsaLib pulseaudio /*gstreamer gst_plugins_base*/ libvorbis gtk ];
 
-  configureFlags = "--disable-oss --disable-schemas-install";
+  configureFlags = "--disable-oss";
 
   passthru = {
     gtkModule = "/lib/gtk-2.0/";
   };
 
   meta = {
-    description = "libcanberra, an implementation of the XDG Sound Theme and Name Specifications";
+    description = "An implementation of the XDG Sound Theme and Name Specifications";
 
     longDescription = ''
       libcanberra is an implementation of the XDG Sound Theme and Name
diff --git a/pkgs/development/libraries/libcroco/default.nix b/pkgs/development/libraries/libcroco/default.nix
deleted file mode 100644
index 99604475e625..000000000000
--- a/pkgs/development/libraries/libcroco/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl, pkgconfig, libxml2, glib}:
-
-stdenv.mkDerivation {
-  name = "libcroco-0.6.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libcroco/0.6/libcroco-0.6.4.tar.xz;
-    sha256 = "1sij88na1skd4d5dx75l803fww3v9872q8m2hj6sjlkc839vl5n8";
-  };
-  buildInputs = [ pkgconfig libxml2 glib ];
-}
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index a2546bf2d69a..4e0038d4c34c 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libpthreadstubs, libpciaccess, udev }:
 
 stdenv.mkDerivation rec {
-  name = "libdrm-2.4.33";
-  
+  name = "libdrm-2.4.42";
+
   src = fetchurl {
     url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
-    sha256 = "1slgi61n4dlsfli47ql354fd1ppj7n40jd94wvnsdqx0mna9syrd";
+    sha256 = "1qbnpi64hyqzd650hj6jki1d50pzypdhj3rw9m3whwbqly110rz0";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 0438816b1b4f..c262535a1f7d 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
-    sha1 = "c9998383532ba3e8bcaf690f2f0d65e814b48d2f";
+    sha256 = "0gwnzqd64cpwdmk93nll54nidsr74jpimxzj4p4z7502ylwl66p4";
   };
 
   propagatedBuildInputs = [ libgpgerror ];
diff --git a/pkgs/development/libraries/libgnome-keyring/3.x.nix b/pkgs/development/libraries/libgnome-keyring/3.x.nix
deleted file mode 100644
index 54a023a16f8b..000000000000
--- a/pkgs/development/libraries/libgnome-keyring/3.x.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig,
-intltool }:
-
-stdenv.mkDerivation {
-  name = "libgnome-keyring-3.2.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgnome-keyring/3.2/libgnome-keyring-3.2.2.tar.xz;
-    sha256 = "1cxd2vb1lzm8smq1q45dsn13s6kdqdb60lashdk7hwv035xy9jrb";
-  };
-
-  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  meta = {
-    inherit (glib.meta) platforms maintainers;
-  };
-}
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index eafa857598cb..eb0de7aa2bed 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation (rec {
 
   src = fetchurl {
     url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
-    sha1 = "be209b013652add5c7e2c473ea114f58203cc6cd";
+    sha256 = "1h0ql8j65ns2rmhj9wnc9035026crzkg226xg8614fq71947ccxf";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 56f6242c09e8..35576baeb328 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -1,26 +1,21 @@
-{ fetchurl, stdenv, perl, perlXMLParser, pkgconfig, libxml2
-, gettext, intltool, bzip2, glib, python
-, gnomeSupport ? true,  gdk_pixbuf ? null
-, gnome_vfs ? null, libbonobo ? null }:
+{ fetchurl, stdenv, pkgconfig, intltool, gettext, glib, libxml2, zlib, bzip2
+, python, libiconvOrEmpty
+}:
 
-assert gnomeSupport -> gdk_pixbuf != null && gnome_vfs != null && libbonobo != null
-  && glib != null;
+with { inherit (stdenv.lib) optionals; };
 
 stdenv.mkDerivation rec {
   name = "libgsf-1.14.25";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libgsf/1.14/${name}.tar.xz";
-    sha256 = "127548f07e07951984fb139c3f89d65b9e471aefe6555387de03e1113944d1a2";
+    sha256 = "18ni8hwi3q83vs3m6mg6xwd4g7jvss4kz70kzf21k587gvq4hx8j";
   };
 
-  nativeBuildInputs = [ intltool pkgconfig ];
-  buildInputs =
-    [ perl perlXMLParser gettext bzip2 python ]
-    ++ stdenv.lib.optionals gnomeSupport [ gnome_vfs gdk_pixbuf ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+  buildInputs = [ gettext bzip2 zlib python ];
 
-  propagatedBuildInputs = [ libxml2 glib ]
-    ++ stdenv.lib.optionals gnomeSupport [ libbonobo ];
+  propagatedBuildInputs = [ libxml2 glib ] ++ libiconvOrEmpty;
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
deleted file mode 100644
index 5e7a4cff741f..000000000000
--- a/pkgs/development/libraries/libgweather/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk3, intltool, libsoup, GConf3 }:
-
-stdenv.mkDerivation {
-  name = "libgweather-3.4.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgweather/3.4/libgweather-3.4.1.tar.xz;
-    sha256 = "0q0vkggrbvy2ihwcsfynlv5qk9l3wjinls8yvmkb1qisyc4lv77f";
-  };
-  configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
-  propagatedBuildInputs = [ libxml2 gtk3 libsoup GConf3 ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-}
diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix
index ced11c0ef4da..95d060df7f7d 100644
--- a/pkgs/development/libraries/libmtp/default.nix
+++ b/pkgs/development/libraries/libmtp/default.nix
@@ -1,13 +1,17 @@
-{ stdenv, fetchurl, libusb }:
+{ stdenv, fetchurl, pkgconfig, libusb1 }:
 
 stdenv.mkDerivation rec {
-  name = "libmtp-1.0.1";
+  name = "libmtp-1.1.5";
 
-  propagatedBuildInputs = [ libusb ];
+  propagatedBuildInputs = [ libusb1 ];
+  buildInputs = [ pkgconfig ];
+
+  # tried to install files to /lib/udev, hopefully OK
+  configureFlags = [ "--with-udev=$$out/lib/udev" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/libmtp/${name}.tar.gz";
-    sha256 = "19iha1yi07cdqzlba4ng1mn7h701binalwwkb71q0ld9b88mad6s";
+    sha256 = "0fn6y7kirgln6sfizmwvjsy7qkdb0p3rccf0zkr3r2xg3cbpjxkq";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/libpaper/default.nix b/pkgs/development/libraries/libpaper/default.nix
new file mode 100644
index 000000000000..9505a6cf052f
--- /dev/null
+++ b/pkgs/development/libraries/libpaper/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.24";
+  name = "libpaper-${version}";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/libp/libpaper/libpaper_${version}.tar.gz";
+    sha256 = "0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q";
+  };
+
+  meta = {
+    description = "Library for handling paper characteristics";
+    homepage = "http://packages.debian.org/unstable/source/libpaper";
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/development/libraries/libpng/15.nix b/pkgs/development/libraries/libpng/15.nix
new file mode 100644
index 000000000000..8f62ef1e8dc9
--- /dev/null
+++ b/pkgs/development/libraries/libpng/15.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, zlib }:
+
+assert zlib != null;
+
+stdenv.mkDerivation rec {
+  name = "libpng-1.5.15";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libpng/${name}.tar.xz";
+    sha256 = "1iaplghmv5qhd4dgwfymhp42sh27vz6s2107jk698xm57z2v9hwm";
+  };
+
+  propagatedBuildInputs = [ zlib ];
+
+  doCheck = true;
+
+  passthru = { inherit zlib; };
+
+  meta = {
+    description = "The official reference implementation for the PNG file format";
+    homepage = http://www.libpng.org/pub/png/libpng.html;
+    license = "free-non-copyleft"; # http://www.libpng.org/pub/png/src/libpng-LICENSE.txt
+  };
+}
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index ce23cf48587a..72821ef7028f 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -3,15 +3,17 @@
 assert zlib != null;
 
 stdenv.mkDerivation rec {
-  name = "libpng-1.5.13";
+  name = "libpng-1.6.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/libpng/${name}.tar.xz";
-    sha256 = "1vks4mqv4140b10kp53qrywsx9m4xan5ibwsrlmf42ni075zjhxq";
+    sha256 = "1pljkqjqgyz8c32w8fipd9f0v2gcyhah2ypp0h7ya1r1q85sk5qw";
   };
 
   propagatedBuildInputs = [ zlib ];
 
+  doCheck = true;
+
   passthru = { inherit zlib; };
 
   meta = {
diff --git a/pkgs/development/libraries/libpng/libpng-apng.nix b/pkgs/development/libraries/libpng/libpng-apng.nix
index 534b0ae5a45f..bc6a773dba3b 100644
--- a/pkgs/development/libraries/libpng/libpng-apng.nix
+++ b/pkgs/development/libraries/libpng/libpng-apng.nix
@@ -1,29 +1,27 @@
 { stdenv, fetchurl, zlib }:
 
-assert zlib != null;
-
 stdenv.mkDerivation rec {
-  version = "1.4.4";
+  version = "1.5.14";
   name = "libpng-apng-${version}";
-  
+
   patch_src = fetchurl {
-    url = "mirror://sourceforge/project/libpng-apng/libpng-master/${version}/libpng-${version}-apng.patch.gz";
-    sha256 = "d729a2feacfd80547e06c30343d598302f4417cf2e6f649e4ee617690987bd24";
+    url = "mirror://sourceforge/libpng-apng/libpng15/${version}/libpng-${version}-apng.patch.gz";
+    sha256 = "1vcqbkdssy4srm8jqyzaipdc70xzanilqssypmwqyngp8ph0m45p";
   };
 
   src = fetchurl {
-    url = "mirror://sourceforge/libpng/libpng-${version}.tar.gz";
-    sha256 = "d07616ba1e9c161017384feb3b576d70c160b970abfd9549ad39a622284b574a";
+    url = "mirror://sourceforge/libpng/libpng-${version}.tar.xz";
+    sha256 = "0m3vz3gig7s63zanq5b1dgb5ph12qm0cylw4g4fbxlsq3f74hn8l";
   };
 
   preConfigure = ''
     gunzip < ${patch_src} | patch -Np1
   '';
-  
+
   propagatedBuildInputs = [ zlib ];
 
   passthru = { inherit zlib; };
-  
+
   meta = {
     description = "The official reference implementation for the PNG file format with animation patch";
     homepage = http://www.libpng.org/pub/png/libpng.html;
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 0da302038769..13385dfb65c0 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -1,16 +1,24 @@
-{stdenv, fetchurl, pkgconfig, libxml2, libgsf, bzip2, glib, gtk, libcroco}:
+{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, pango, cairo
+, libxml2, libgsf, bzip2, libcroco
+, gtk2 ? null, gtk3 ? null
+, gobjectIntrospection ? null, enableIntrospection ? false }:
 
-stdenv.mkDerivation {
-  name = "librsvg-2.34.2";
+# no introspection by default, it's too big
+
+stdenv.mkDerivation rec {
+  name = "librsvg-2.36.4";
 
   src = fetchurl {
-    url = mirror://gnome/sources/librsvg/2.34/librsvg-2.34.2.tar.xz;
-    sha256 = "0r24xr10chmz4l3ka2zy9c2245s7svzljbw9nrda3h44bcr03rsx";
+    url = "mirror://gnome/sources/librsvg/2.36/${name}.tar.xz";
+    sha256 = "1hp6325gdkzx8yqn2d2r915ak3k6hfshjjh0sc54z3vr0i99688h";
   };
-  buildInputs = [ libxml2 libgsf bzip2 libcroco ];
-  propagatedBuildInputs = [ glib gtk ];
+  buildInputs = [ libxml2 libgsf bzip2 libcroco pango cairo ]
+    ++ stdenv.lib.optional enableIntrospection [ gobjectIntrospection ];
+  propagatedBuildInputs = [ glib gdk_pixbuf gtk2 gtk3 ];
   nativeBuildInputs = [ pkgconfig ];
 
+  configureFlags = ["--enable-introspection=auto"];
+
   # It wants to add loaders and update the loaders.cache in gdk-pixbuf
   # Patching the Makefiles to it creates rsvg specific loaders and the
   # relevant loader.cache here.
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index ba5966d13d4b..e073717de568 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, zlib, libjpeg }:
 
-let version = "3.9.7"; in
+let version = "4.0.3"; in
 
 stdenv.mkDerivation rec {
   name = "libtiff-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       [ "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${version}.tar.gz"
         "http://download.osgeo.org/libtiff/tiff-${version}.tar.gz"
       ];
-    sha256 = "0spg1hr5rsrmg88sfzb05qnf0haspq7r5hvdkxg5zib1rva4vmpm";
+    sha256 = "0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa";
   };
 
   propagatedBuildInputs = [ zlib libjpeg ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Library and utilities for working with the TIFF image file format";
-    homepage = http://www.libtiff.org/;
+    homepage = http://www.remotesensing.org/libtiff/;
     license = "bsd";
   };
 }
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 8a1580d4fbe8..811909c659d2 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "libusb-1.0.9";
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "16sz34ix6hw2wwl3kqx6rf26fg210iryr68wc439dc065pffw879";
   };
 
+  buildInputs = [ pkgconfig ];
+
   meta = {
     homepage = http://www.libusb.org;
     description = "User-space USB library";
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 92ab8d67c91e..158106247055 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, pkgconfig, libX11 }:
+{ stdenv, fetchurl, pkgconfig, xlibs }:
 
 stdenv.mkDerivation rec {
-  name = "libvdpau-0.5";
-  
+  name = "libvdpau-0.6";
+
   src = fetchurl {
     url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
-    sha256 = "0k2ydz4yp7zynlkpd1llfwax30xndwbca36z83ah1i4ldjw2gfhx";
+    sha256 = "0x9dwxzw0ilsy88kqlih3170z1zfrrsx1dr9jbwbn0cbkpnbwmcv";
   };
 
-  buildInputs = [ pkgconfig libX11 ];
+  buildInputs = with xlibs; [ pkgconfig dri2proto libXext ];
 
-  propagatedBuildInputs = [ libX11 ];
+  propagatedBuildInputs = [ xlibs.libX11 ];
 
   meta = {
     homepage = http://people.freedesktop.org/~aplattner/vdpau/;
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
new file mode 100644
index 000000000000..4a1327778d47
--- /dev/null
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, yacc, flex, xkeyboard_config }:
+
+stdenv.mkDerivation rec {
+  name = "libxkbcommon-0.2.0";
+
+  src = fetchurl {
+    url = "http://xkbcommon.org/download/${name}.tar.bz2";
+    sha256 = "0hpvfa8p4bhvhc1gcb578m354p5idd192xb8zlaq16d33h90msvl";
+  };
+
+  buildInputs = [ yacc flex xkeyboard_config ];
+
+  configureFlags = ''
+    --with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb
+  '';
+
+  meta = {
+    description = "A library to handle keyboard descriptions";
+    homepage = http://xkbcommon.org;
+  };
+}
diff --git a/pkgs/development/libraries/libxtc_dxtn/default.nix b/pkgs/development/libraries/libxtc_dxtn/default.nix
index 0e7442633d77..a23d74a2be86 100644
--- a/pkgs/development/libraries/libxtc_dxtn/default.nix
+++ b/pkgs/development/libraries/libxtc_dxtn/default.nix
@@ -8,8 +8,5 @@ stdenv.mkDerivation rec {
     sha256 = "0q5fjaknl7s0z206dd8nzk9bdh8g4p23bz7784zrllnarl90saa5";
   };
 
-  postUnpack = ''
-    tar xf ${mesa.src} --wildcards '*/include/'
-    export NIX_CFLAGS_COMPILE="-I $NIX_BUILD_TOP/[mM]esa*/include"
-  '';
+  NIX_CFLAGS_COMPILE = "-I ${mesa}/include";
 }
diff --git a/pkgs/development/libraries/mesa-glu/default.nix b/pkgs/development/libraries/mesa-glu/default.nix
new file mode 100644
index 000000000000..502329226ff3
--- /dev/null
+++ b/pkgs/development/libraries/mesa-glu/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, mesa_noglu }:
+
+stdenv.mkDerivation rec {
+  name = "glu-9.0.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.freedesktop.org/pub/mesa/glu/${name}.tar.bz2";
+    sha256 = "04nzlil3a6fifcmb95iix3yl8mbxdl66b99s62yzq8m7g79x0yhz";
+  };
+
+  buildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ mesa_noglu ];
+
+  meta = {
+    description = "OpenGL utility library";
+    homepage = http://cgit.freedesktop.org/mesa/glu/;
+    license = "bsd"; # SGI-B-2.0, which seems BSD-like
+  };
+}
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index d3f7afbd3084..a07323b61b2e 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,41 +1,48 @@
-{ stdenv, fetchurl, flex, bison, pkgconfig, libdrm, file, expat, makedepend
+{ stdenv, fetchurl, flex, bison, pkgconfig, intltool, libdrm, file, expat, makedepend
 , libXxf86vm, libXfixes, libXdamage, glproto, dri2proto, libX11, libxcb, libXext
-, libXt, udev, enableTextureFloats ? false
-, python, libxml2Python }:
+, libXt, udev, enableTextureFloats ? false, enableR600LlvmCompiler ? false
+, python, libxml2Python, autoconf, automake, libtool, llvm, writeText
+, libffi, wayland }:
 
 if ! stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms then
   throw "unsupported platform for Mesa"
 else
 
-let version = "8.0.4"; in
-
+let
+  version = "9.1.2";
+in
 stdenv.mkDerivation {
-  name = "mesa-${version}";
+  name = "mesa-noglu-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
-    md5 = "d546f988adfdf986cff45b1efa2d8a46";
+    sha256="1ns366armqmp2bxj1l7fff95v22b5z9mnkyykbdj81lhg9gi3586";
   };
 
-  patches =
-    stdenv.lib.optional (stdenv.system == "mips64el-linux") ./mips_wmb.patch;
-
   prePatch = "patchShebangs .";
 
+  preConfigure = "./autogen.sh";
+
   configureFlags =
-      " --enable-gles1 --enable-gles2 --enable-gallium-egl"
-    + " --with-gallium-drivers=i915,nouveau,r600,svga,swrast"
+    ""
+    + " --enable-gles1 --enable-gles2 --enable-gallium-egl"
+    + " --with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast"
+    + " --with-egl-platforms=x11,wayland,drm --enable-gbm --enable-shared-glapi"
+    + stdenv.lib.optionalString enableR600LlvmCompiler " --enable-r600-llvm-compiler"
     # Texture floats are patented, see docs/patents.txt
     + stdenv.lib.optionalString enableTextureFloats " --enable-texture-float";
 
-  buildInputs = [ expat libdrm libXxf86vm libXfixes libXdamage glproto dri2proto
-    libxml2Python libX11 libXext libxcb libXt udev ];
+  buildInputs = [
+    autoconf automake libtool intltool expat libxml2Python udev llvm
+    libdrm libXxf86vm libXfixes libXdamage glproto dri2proto libX11 libXext libxcb libXt
+    libffi wayland
+  ];
 
   nativeBuildInputs = [ pkgconfig python makedepend file flex bison ];
 
   enableParallelBuilding = true;
 
-  passthru = { inherit libdrm; };
+  passthru = { inherit libdrm; inherit version; };
 
   meta = {
     description = "An open source implementation of OpenGL";
diff --git a/pkgs/development/libraries/mesa/mips_wmb.patch b/pkgs/development/libraries/mesa/mips_wmb.patch
deleted file mode 100644
index 1ffa1bdd8df4..000000000000
--- a/pkgs/development/libraries/mesa/mips_wmb.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-rixed told me (viric) it's the patch to apply for mesa.
-I adapted his patch for mesa 7.5 to this 7.10
-
-diff --git a/src/mesa/drivers/dri/sis/sis_context.h b/src/mesa/drivers/dri/sis/sis_context.h
-index a82a659..d8d8d9a 100644
---- a/src/mesa/drivers/dri/sis/sis_context.h
-+++ b/src/mesa/drivers/dri/sis/sis_context.h
-@@ -404,6 +404,8 @@ struct sis_context
- #define MMIO_WMB()	__asm __volatile("" : : : "memory")
- #elif defined(__ia64__)
- #define MMIO_WMB()	__asm __volatile("mf" : : : "memory")
-+#elif defined(__mips__)
-+#define MMIO_WMB()     __asm __volatile("" : : : "memory")
- #else
- #error platform needs WMB
- #endif
diff --git a/pkgs/development/libraries/openjpeg/default.nix b/pkgs/development/libraries/openjpeg/default.nix
index 6024456652c6..7fd18af450c3 100644
--- a/pkgs/development/libraries/openjpeg/default.nix
+++ b/pkgs/development/libraries/openjpeg/default.nix
@@ -1,13 +1,21 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, pkgconfig, libpng, libtiff, lcms2, glib/*passthru only*/ }:
 
 stdenv.mkDerivation rec {
   name = "openjpeg-1.5.1";
+  passthru = {
+    incDir = "openjpeg-1.5";
+  };
 
   src = fetchurl {
     url = "http://openjpeg.googlecode.com/files/${name}.tar.gz";
     sha256 = "13dbyf3jwr4h2dn1k11zph3jgx17z7d66xmi640mbsf8l6bk1yvc";
   };
 
+  nativebuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ libpng libtiff lcms2 ]; # in closure anyway
+
+  postInstall = glib.flattenInclude;
+
   meta = {
     homepage = http://www.openjpeg.org/;
     description = "Open-source JPEG 2000 codec written in C language";
diff --git a/pkgs/development/libraries/pango/1.30.x.nix b/pkgs/development/libraries/pango/default.nix
index c32891b95cfd..418a2acb0b77 100644
--- a/pkgs/development/libraries/pango/1.30.x.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng, fontconfig }:
+{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng, harfbuzz, fontconfig }:
 
 stdenv.mkDerivation rec {
-  name = "pango-1.30.1";
+  name = "pango-1.32.5"; #.6 needs a not-yet-stable fontconfig
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pango/1.30/${name}.tar.xz";
-    sha256 = "3a8c061e143c272ddcd5467b3567e970cfbb64d1d1600a8f8e62435556220cbe";
+    url = "mirror://gnome/sources/pango/1.32/${name}.tar.xz";
+    sha256 = "08aqis6j8nd1lb4f2h4h9d9kjvp54iwf8zvqzss0qn4v7nfcjyvx";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ gettext fontconfig ];
 
   nativeBuildInputs = [ pkgconfig ];
 
-  propagatedBuildInputs = [ x11 glib cairo libpng ];
+  propagatedBuildInputs = [ x11 glib cairo libpng harfbuzz ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/pangox-compat/default.nix b/pkgs/development/libraries/pangox-compat/default.nix
new file mode 100644
index 000000000000..8518083b4d35
--- /dev/null
+++ b/pkgs/development/libraries/pangox-compat/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, pkgconfig, glib, pango, libX11 }:
+
+stdenv.mkDerivation rec {
+  name = "pangox-compat-0.0.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/pangox-compat/0.0/${name}.tar.xz";
+    sha256 = "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m";
+  };
+
+  buildInputs = [ pkgconfig glib pango libX11 ];
+
+  meta = {
+    description = "A compatibility library for pango>1.30.*";
+
+    homepage = http://www.pango.org/;
+    license = "LGPLv2+";
+  };
+}
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
new file mode 100644
index 000000000000..7fbcedda3956
--- /dev/null
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -0,0 +1,22 @@
+{ fetchurl, stdenv, pkgconfig, perl, withPNG ? true, libpng, glib /*just passthru*/ }:
+
+stdenv.mkDerivation rec {
+  name = "pixman-0.28.2";
+
+  src = fetchurl {
+    url = "http://cairographics.org/releases/${name}.tar.gz";
+    sha256 = "0mcvxd5gx3w1wzgph91l2vaiic91jmx7s01hi2igphyvd80ckyia";
+  };
+
+  nativeBuildInputs = [ pkgconfig perl ];
+
+  buildInputs = stdenv.lib.optional withPNG [ libpng ]; # NOT in closure anyway
+
+  postInstall = glib.flattenInclude;
+
+  meta = {
+    homepage = http://pixman.org;
+    description = "A low-level library for pixel manipulation";
+    license = "MIT";
+  };
+}
diff --git a/pkgs/development/libraries/poppler/0.18.nix b/pkgs/development/libraries/poppler/0.18.nix
new file mode 100644
index 000000000000..3297b0a19e64
--- /dev/null
+++ b/pkgs/development/libraries/poppler/0.18.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, cairo, freetype, fontconfig, zlib
+, libjpeg, curl, libpthreadstubs, xorg, openjpeg
+, libxml2, pkgconfig, cmake, lcms2
+, glibSupport ? false, glib, gtk3Support ? false, gtk3 # gtk2 no longer accepted
+, qt4Support ? false, qt4 ? null
+}:
+
+stdenv.mkDerivation rec {
+  name = "poppler-0.18.4";
+
+  src = fetchurl {
+    url = "${meta.homepage}${name}.tar.gz";
+    sha256 = "0bnl05al7mjndp2h0355946j59nfw76f5v0x57d47q68rm412hik";
+  };
+
+  propagatedBuildInputs = with xorg;
+    [ zlib cairo freetype fontconfig libjpeg lcms2 curl
+      libpthreadstubs libxml2 stdenv.gcc.libc
+      libXau libXdmcp libxcb libXrender libXext
+      openjpeg
+    ]
+    ++ stdenv.lib.optional glibSupport glib
+    ++ stdenv.lib.optional gtk3Support gtk3
+    ++ stdenv.lib.optional qt4Support qt4;
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
+
+  patches = [ ./datadir_env.patch ];
+
+  # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
+  # such as `../../../test/unittestcases/UseNone.pdf'.
+  #doCheck = !qt4Support;
+  checkTarget = "test";
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = http://poppler.freedesktop.org/;
+    description = "Poppler, a PDF rendering library";
+
+    longDescription = ''
+      Poppler is a PDF rendering library based on the xpdf-3.0 code base.
+    '';
+
+    platforms = if qt4Support
+      then qt4.meta.platforms
+      else stdenv.lib.platforms.all;
+
+    license = "GPLv2";
+  };
+}
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 1d796789210c..263162336485 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -1,50 +1,76 @@
-{ fetchurl, stdenv, cairo, freetype, fontconfig, zlib
-, libjpeg, pixman, curl, libpthreadstubs, libXau, libXdmcp, openjpeg
-, libxml2, pkgconfig, cmake, lcms
-, gtkSupport ? false, glib ? null, gtk ? null
+{ stdenv, fetchurl, fetchgit, cairo, freetype, fontconfig, zlib
+, libjpeg, curl, libpthreadstubs, xorg, openjpeg
+, libxml2, pkgconfig, cmake, lcms2
 , qt4Support ? false, qt4 ? null
 }:
 
-stdenv.mkDerivation rec {
-  name = "poppler-0.22.4";
+let
+  version = "0.22.3";
+  sha256 = "0ca4jci8xmbdz4fhahdcck0cqms6ax55yggi2ih3clgrpqf96sli";
 
-  src = fetchurl {
-    url = "${meta.homepage}${name}.tar.gz";
-    sha256 = "0fz1vk0rbxvnv7ssj8l910k1rx0gjhzl5wr7hkdf4r9jwqs8yhsg";
-  };
+  qtcairo_patches =
+    let qtcairo = fetchgit { # the version for poppler-0.22
+      url = "git://github.com/giddie/poppler-qt4-cairo-backend.git";
+      rev = "7a12c58e5cefc2b7a5179c53b387fca8963195c0";
+      sha256 = "1jg2d5y62d0bv206nijb63x426zfb2awy70505nx22d0fx1v1p9k";
+    }; in
+      [ "${qtcairo}/0001-Cairo-backend-added-to-Qt4-wrapper.patch"
+        "${qtcairo}/0002-Setting-default-Qt4-backend-to-Cairo.patch"
+        "${qtcairo}/0003-Forcing-subpixel-rendering-in-Cairo-backend.patch" ];
+
+  poppler_drv = nameSuff: merge: stdenv.mkDerivation (stdenv.lib.mergeAttrsByFuncDefaultsClean [
+  rec {
+    name = "poppler-${nameSuff}-${version}";
+
+    src = fetchurl {
+      url = "${meta.homepage}/poppler-${version}.tar.gz";
+      inherit sha256;
+    };
+
+    propagatedBuildInputs = with xorg;
+      [ zlib cairo freetype fontconfig libjpeg lcms2 curl
+        libpthreadstubs libxml2
+        libXau libXdmcp libxcb libXrender libXext
+        openjpeg
+      ];
+
+    nativeBuildInputs = [ pkgconfig cmake ];
 
-  propagatedBuildInputs =
-    [ zlib cairo freetype fontconfig libjpeg lcms pixman curl
-      libpthreadstubs libXau libXdmcp openjpeg libxml2 stdenv.gcc.libc
-    ]
-    ++ stdenv.lib.optionals gtkSupport [ glib gtk ]
-    ++ stdenv.lib.optional qt4Support qt4;
+    cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
 
-  nativeBuildInputs = [ pkgconfig cmake ];
+    patches = [ ./datadir_env.patch ];
 
-  cmakeFlags = "-DENABLE_XPDF_HEADERS=ON -DENABLE_LIBCURL=ON -DENABLE_ZLIB=ON";
+    # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
+    # such as `../../../test/unittestcases/UseNone.pdf'.
+    #doCheck = !qt4Support;
+    checkTarget = "test";
 
-  patches = [ ./datadir_env.patch ];
+    enableParallelBuilding = true;
 
-  # XXX: The Poppler/Qt4 test suite refers to non-existent PDF files
-  # such as `../../../test/unittestcases/UseNone.pdf'.
-  #doCheck = !qt4Support;
-  checkTarget = "test";
+    meta = {
+      homepage = http://poppler.freedesktop.org/;
+      description = "A PDF rendering library";
 
-  enableParallelBuilding = true;
+      longDescription = ''
+        Poppler is a PDF rendering library based on the xpdf-3.0 code base.
+      '';
 
-  meta = {
-    homepage = http://poppler.freedesktop.org/;
-    description = "Poppler, a PDF rendering library";
+      license = "GPLv2";
+    };
+  } merge ]); # poppler_drv
 
-    longDescription = ''
-      Poppler is a PDF rendering library based on the xpdf-3.0 code base.
-    '';
+in rec {
+  /* We always use cairo in poppler, so we always depend on glib,
+     so we always build the glib wrapper (~350kB).
+     We also always build the cpp wrapper (<100kB).
+     ToDo: around half the size could be saved by splitting out headers and tools (1.5 + 0.5 MB).
+  */
 
-    platforms = if qt4Support
-      then qt4.meta.platforms
-      else stdenv.lib.platforms.all;
+  poppler_glib = poppler_drv "glib" { };
 
-    license = "GPLv2";
+  poppler_qt4 = poppler_drv "qt4" {
+    propagatedBuildInputs = [ qt4 poppler_glib ];
+    patches = qtcairo_patches;
+    postConfigure = "cd qt4";
   };
 }
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 60d59030c1f3..5f66ad656940 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -20,7 +20,7 @@ let v = "4.8.4"; in
 #  * move some plugins (e.g., SQL plugins) to dedicated derivations to avoid
 #    false build-time dependencies
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation ( rec {
   name = "qt-${v}";
 
   src = fetchurl {
@@ -147,3 +147,13 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
+  # ToDo: this attribute is optional *only* to prevent rebuild on hydra
+  // stdenv.lib.optionalAttrs developerBuild {
+    # fix underspecified dependency in a generated makefile
+    postConfigure = ''
+      substituteInPlace tools/designer/src/lib/Makefile --replace \
+        "moc_qtgradientviewdialog.cpp:" "moc_qtgradientviewdialog.cpp: .uic/release-shared/ui_qtgradientview.h"
+    '';
+  }
+)
+
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index 9e00b0d8bcf5..8854a41210b6 100644
--- a/pkgs/development/libraries/wayland/default.nix
+++ b/pkgs/development/libraries/wayland/default.nix
@@ -1,23 +1,21 @@
 { stdenv, fetchurl, libffi, expat, pkgconfig, libxslt, docbook_xsl, doxygen }:
 
+let version = "1.0.5"; in
+
 stdenv.mkDerivation rec {
-  name = "wayland-1.0.5";
+  name = "wayland-${version}";
 
   src = fetchurl {
     url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
-
     sha256 = "130n7v5i7rfsrli2n8vdzfychlgd8v7by7sfgp8vfqdlss5km34w";
   };
 
   buildInputs = [ pkgconfig libffi expat libxslt docbook_xsl doxygen ];
 
   meta = {
-    description = "The reference implementation of the Wayland protocol";
-
-    homepage = http://wayland.freedesktop.org;
-
-    license = stdenv.lib.licenses.bsd3;
-
+    description = "Reference implementation of the wayland protocol";
+    homepage = http://wayland.freedesktop.org/;
+    license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/wxGTK-2.8/default.nix b/pkgs/development/libraries/wxGTK-2.8/default.nix
index 109077269544..e11de87415d0 100644
--- a/pkgs/development/libraries/wxGTK-2.8/default.nix
+++ b/pkgs/development/libraries/wxGTK-2.8/default.nix
@@ -7,12 +7,13 @@ assert withMesa -> mesa != null;
 
 with stdenv.lib;
 
-stdenv.mkDerivation {
-  name = "wxGTK-2.8.12";
+stdenv.mkDerivation rec {
+  version = "2.8.12.1";
+  name = "wxGTK-${version}";
 
   src = fetchurl {
-    url = mirror://sourceforge/wxwindows/wxGTK-2.8.12.tar.gz;
-    sha256 = "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk";
+    url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2";
+    sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
   };
 
   buildInputs = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ]
@@ -29,11 +30,12 @@ stdenv.mkDerivation {
     "--enable-mediactrl"
   ] ++ optional withMesa "--with-opengl";
 
-  # This variable is used by configure to find some dependencies.
+  # These variables are used by configure to find some dependencies.
   SEARCH_INCLUDE =
     "${libXinerama}/include ${libSM}/include ${libXxf86vm}/include";
-
-  SEARCH_LIB = optionalString withMesa "${mesa}/lib";
+  SEARCH_LIB =
+    "${libXinerama}/lib ${libSM}/lib ${libXxf86vm}/lib "
+    + optionalString withMesa "${mesa}/lib ";
 
   # Work around a bug in configure.
   NIX_CFLAGS_COMPILE = "-DHAVE_X11_XLIB_H=1";
diff --git a/pkgs/development/tools/misc/intltool/default.nix b/pkgs/development/tools/misc/intltool/default.nix
index 0ca8b6eb0714..b2a400a61891 100644
--- a/pkgs/development/tools/misc/intltool/default.nix
+++ b/pkgs/development/tools/misc/intltool/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, perl, perlXMLParser}:
+{ stdenv, fetchurl, perl, perlXMLParser, gettext }:
 let
   s = # Generated upstream information
   rec {
@@ -12,12 +12,15 @@ let
   propagatedBuildInputs = [perl perlXMLParser];
   buildInputs = [];
   in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   inherit (s) name version;
   src = fetchurl {
     inherit (s) url sha256;
   };
-  inherit propagatedBuildInputs buildInputs;
+  inherit buildInputs;
+
+  # not needed by intltool itself but (probably) needed for its usage
+  propagatedBuildInputs = propagatedBuildInputs ++ [ gettext ];
 
   meta = {
     description = "Translation helper tool";
diff --git a/pkgs/development/tools/misc/intltool/default.upstream b/pkgs/development/tools/misc/intltool/default.upstream
index 4a2965b036af..323bf21f45a1 100644
--- a/pkgs/development/tools/misc/intltool/default.upstream
+++ b/pkgs/development/tools/misc/intltool/default.upstream
@@ -1,2 +1,2 @@
-attribute_name intltool_standalone
+attribute_name intltool
 url https://launchpad.net/intltool/+download
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix
index b8043525719a..8aaf1f0865c4 100644
--- a/pkgs/games/sgt-puzzles/default.nix
+++ b/pkgs/games/sgt-puzzles/default.nix
@@ -10,8 +10,8 @@ in
 rec {
   src = fetchsvn {
    url = svn://svn.tartarus.org/sgt/puzzles;
-   rev = "9689";
-   sha256 = "33285a971fee67324f8867de22582931135d8b8ee4cc2c41c46c3ba81eb99cb7";
+   rev = "9773";
+   sha256 = "1m0mmxbcj0zi44dlmhk4h30d9hdy8g9f59r7k7906pgnnyf49611";
   } + "/";
 
   inherit buildInputs;
@@ -27,7 +27,7 @@ rec {
 
   setVars = a.noDepEntry ''
     export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error=variadic-macros"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-error"
   '';
 
   /* doConfigure should be removed if not needed */
diff --git a/pkgs/lib/misc.nix b/pkgs/lib/misc.nix
index 0f4c0d0de953..19e5081009de 100644
--- a/pkgs/lib/misc.nix
+++ b/pkgs/lib/misc.nix
@@ -315,6 +315,8 @@ rec {
       )
     ];
   mergeAttrsByFuncDefaults = foldl mergeAttrByFunc { inherit mergeAttrBy; };
+  mergeAttrsByFuncDefaultsClean = list: removeAttrs (mergeAttrsByFuncDefaults list) ["mergeAttrBy"];
+
   # merge attrs based on version key into mkDerivation args, see mergeAttrBy to learn about smart merge defaults
   #
   # This function is best explained by an example:
@@ -356,7 +358,8 @@ rec {
 
   # sane defaults (same name as attr name so that inherit can be used)
   mergeAttrBy = # { buildInputs = concatList; [...]; passthru = mergeAttr; [..]; }
-    listToAttrs (map (n : nameValuePair n lib.concat) [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" ])
+    listToAttrs (map (n : nameValuePair n lib.concat)
+      [ "nativeBuildInputs" "buildInputs" "propagatedBuildInputs" "configureFlags" "prePhases" "postAll" "patches" ])
     // listToAttrs (map (n : nameValuePair n lib.mergeAttrs) [ "passthru" "meta" "cfg" "flags" ])
     // listToAttrs (map (n : nameValuePair n (a: b: "${a}\n${b}") ) [ "preConfigure" "postInstall" ])
   ;
diff --git a/pkgs/lib/strings.nix b/pkgs/lib/strings.nix
index 6c4adfaa1a71..ed668e2b9270 100644
--- a/pkgs/lib/strings.nix
+++ b/pkgs/lib/strings.nix
@@ -109,6 +109,13 @@ rec {
       stringAsChars subst s;
 
 
+  # Case conversion utilities
+  lowerChars = stringToCharacters "abcdefghijklmnopqrstuvwxyz";
+  upperChars = stringToCharacters "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+  toLower = replaceChars upperChars lowerChars;
+  toUpper = replaceChars lowerChars upperChars;
+
+
   # Compares strings not requiring context equality
   # Obviously, a workaround but works on all Nix versions
   eqStrings = a: b: (a+(substring 0 0 b)) == ((substring 0 0 a)+b);
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index 6cc13aa3013a..ad25b4180b5b 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
   };
 
   buildInputs = [ pkgconfig zlib libjpeg libpng libtiff libusb1 ]
-    ++ stdenv.lib.optionals stdenv.isLinux [ pam dbus acl ] ;
+    ++ stdenv.lib.optionals stdenv.isLinux [ pam dbus.libs acl ] ;
 
   propagatedBuildInputs = [ openssl ];
 
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index 11402ca740f0..b6013b5eb4d5 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, xlibs, flex, bison, mesa, alsaLib
 , ncurses, libpng, libjpeg, lcms, freetype, fontconfig, fontforge
-, libxml2, libxslt, openssl, gnutls, cups
+, libxml2, libxslt, openssl, gnutls, cups, libdrm
 }:
 
 assert stdenv.isLinux;
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   # them to the RPATH so that the user doesn't have to set them in
   # LD_LIBRARY_PATH.
   NIX_LDFLAGS = map (path: "-rpath ${path}/lib ") [
-    freetype fontconfig stdenv.gcc.gcc mesa mesa.libdrm
+    freetype fontconfig stdenv.gcc.gcc mesa libdrm
     xlibs.libXinerama xlibs.libXrender xlibs.libXrandr
     xlibs.libXcursor xlibs.libXcomposite libpng libjpeg
     openssl gnutls cups
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index ac171b2ff814..cf2c40f785e0 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl, lcms, freetype
+{ stdenv, fetchurl, libjpeg, libpng, libtiff, zlib, pkgconfig, fontconfig, openssl
+, lcms2, freetype, libpaper, jbig2dec, expat
 , x11Support, x11 ? null
 , cupsSupport ? false, cups ? null
 , gnuFork ? true
@@ -8,7 +9,7 @@ assert x11Support -> x11 != null;
 assert cupsSupport -> cups != null;
 
 let
-  meta = {
+  meta_common = {
     homepage = "http://www.gnu.org/software/ghostscript/";
     description = "GNU Ghostscript, a PostScript interpreter";
 
@@ -34,25 +35,28 @@ let
       sha256 = "0zqa6ggbkdqiszsywgrra4ij0sddlmrfa50bx2mh568qid4ga0a2";
     };
 
-    inherit meta;
+    meta = meta_common;
     patches = [ ./purity.patch ];
   };
 
-  mainlineSrc = {
-    name = "ghostscript-9.05";
+  mainlineSrc = rec {
+    name = "ghostscript-9.06";
     src = fetchurl {
-      url = "http://downloads.ghostscript.com/public/ghostscript-9.05.tar.bz2";
-      sha256 = "1b6fi76x6pn9dmr9k9lh8kimn968dmh91k824fmm59d5ycm22h8g";
+      url = "http://downloads.ghostscript.com/public/${name}.tar.bz2";
+      sha256 = "014f10rxn4ihvcr1frby4szd1jvkrwvmdhnbivpp55c9fssx3b05";
     };
-    meta = meta // {
+    meta = meta_common // {
       homepage = "http://www.ghostscript.com/";
       description = "GPL Ghostscript, a PostScript interpreter";
     };
 
     preConfigure = ''
-      rm -R libpng jpeg lcms tiff freetype
+      rm -R libpng jpeg lcms{,2} tiff freetype jbig2dec expat jasper openjpeg
+
+      substituteInPlace base/unix-aux.mak --replace "INCLUDE=/usr/include" "INCLUDE=/no-such-path"
+      sed "s@if ( test -f \$(INCLUDE)[^ ]* )@if ( true )@" -i base/unix-aux.mak
     '';
-    patches = [ ./purity-9.05.patch ];
+    patches = [];
   };
 
   variant = if gnuFork then gnuForkSrc else mainlineSrc;
@@ -64,8 +68,8 @@ stdenv.mkDerivation rec {
 
   fonts = [
     (fetchurl {
-      url = "mirror://gnu/ghostscript/gnu-gs-fonts-std-6.0.tar.gz";
-      sha256 = "1lxr1y52r26qjif8kdqkfhsb5llakdcx3f5b9ppdyn59bb83ivsc";
+      url = "mirror://sourceforge/gs-fonts/ghostscript-fonts-std-8.11.tar.gz";
+      sha256 = "00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf";
     })
     (fetchurl {
       url = "mirror://gnu/ghostscript/gnu-gs-fonts-other-6.0.tar.gz";
@@ -74,9 +78,13 @@ stdenv.mkDerivation rec {
     # ... add other fonts here
   ];
 
-  buildInputs = [libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms]
-    ++ stdenv.lib.optionals x11Support [x11 freetype]
-    ++ stdenv.lib.optional cupsSupport cups;
+  buildInputs = [
+    libjpeg libpng libtiff zlib pkgconfig fontconfig openssl lcms2
+    libpaper jbig2dec expat
+  ] ++ stdenv.lib.optionals x11Support [x11 freetype]
+    ++ stdenv.lib.optional cupsSupport cups
+    # [] # maybe sometimes jpeg2000 support
+    ;
 
   CFLAGS = "-fPIC";
   NIX_LDFLAGS =
@@ -92,7 +100,7 @@ stdenv.mkDerivation rec {
     makeFlagsArray=(CUPSSERVERBIN=$out/lib/cups CUPSSERVERROOT=$out/etc/cups CUPSDATA=$out/share/cups)
   '' + stdenv.lib.optionalString (variant ? preConfigure) variant.preConfigure;
 
-  configureFlags =
+  configureFlags = [ "--with-system-libtiff" ] ++
     (if x11Support then [ "--with-x" ] else [ "--without-x" ]) ++
     (if cupsSupport then [ "--enable-cups" "--with-install-cups" ] else [ "--disable-cups" ]);
 
@@ -100,6 +108,7 @@ stdenv.mkDerivation rec {
 
   installTargets="install soinstall";
 
+  # ToDo: web says the fonts should be already included
   postInstall = ''
     for i in $fonts; do
       (cd $out/share/ghostscript && tar xvfz $i)
diff --git a/pkgs/misc/ghostscript/purity-9.05.patch b/pkgs/misc/ghostscript/purity-9.05.patch
deleted file mode 100644
index cae9df7110ba..000000000000
--- a/pkgs/misc/ghostscript/purity-9.05.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/base/unix-aux.mak b/base/unix-aux.mak
-index 18745bc..0a67942 100644
---- a/base/unix-aux.mak
-+++ b/base/unix-aux.mak
-@@ -111,15 +111,15 @@ $(MKROMFS_XE): $(MKROMFS_XE)_$(SHARE_ZLIB) $(MAKEDIRS)
- # The "else true;" is required because Ultrix's implementation of sh -e
- # terminates execution of a command if any error occurs, even if the command
- # traps the error with ||.
--INCLUDE=/usr/include
-+INCLUDE=/no-such-path
- $(gconfig__h): $(UNIX_AUX_MAK) $(ECHOGS_XE)
- 	$(ECHOGS_XE) -w $(gconfig__h) -x 2f2a -s This file was generated automatically by unix-aux.mak. -s -x 2a2f
--	if ( test -f $(INCLUDE)/dirent.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_DIRENT_H; else true; fi
--	if ( test -f $(INCLUDE)/ndir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_NDIR_H; else true; fi
--	if ( test -f $(INCLUDE)/sys/dir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_DIR_H; else true; fi
--	if ( test -f $(INCLUDE)/sys/ndir.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_NDIR_H; else true; fi
--	if ( test -f $(INCLUDE)/sys/time.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 ifndef HAVE_SYS_TIME_H ; \
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_DIRENT_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_NDIR_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_DIR_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_NDIR_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 ifndef HAVE_SYS_TIME_H ; \
-              $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIME_H ; \
-              $(ECHOGS_XE) -a $(gconfig__h) -x 23 endif; else true; fi
--	if ( test -f $(INCLUDE)/sys/times.h ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIMES_H; else true; fi
-+	if ( true ); then $(ECHOGS_XE) -a $(gconfig__h) -x 23 define HAVE_SYS_TIMES_H; else true; fi
- 	if ( test -f $(JSRCDIR)/jmemsys.h); then true; else $(ECHOGS_XE) -a $(gconfig__h) -x 23 define DONT_HAVE_JMEMSYS_H; fi
diff --git a/pkgs/misc/themes/gnome-themes-standard/default.nix b/pkgs/misc/themes/gnome-themes-standard/default.nix
new file mode 100644
index 000000000000..f52b94138a48
--- /dev/null
+++ b/pkgs/misc/themes/gnome-themes-standard/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, intltool, gtk3, librsvg, pkgconfig, pango, atk, gtk2, gdk_pixbuf }:
+stdenv.mkDerivation {
+  name = "gnome-themes-standard";
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/3.7/gnome-themes-standard-3.7.92.tar.xz";
+    sha256 = "0a1ed83c07f57b5b45b8f3817ca0ca14feecb56de505243c086fb306c88da8de";
+  };
+  
+  buildInputs = [ intltool gtk3 librsvg pkgconfig pango atk gtk2 gdk_pixbuf ];
+
+  preConfigure = ''
+    cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > loaders.cache
+    export GDK_PIXBUF_MODULE_FILE=`readlink -e loaders.cache`
+  '';
+}
\ No newline at end of file
diff --git a/pkgs/os-specific/linux/qemu-kvm/default.nix b/pkgs/os-specific/linux/qemu-kvm/default.nix
index eeaeacd46601..2f93769d2801 100644
--- a/pkgs/os-specific/linux/qemu-kvm/default.nix
+++ b/pkgs/os-specific/linux/qemu-kvm/default.nix
@@ -21,7 +21,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-librt-check.patch ./fix-usb-passthrough.patch ];
 
-  postPatch = "patchShebangs .;"
+  postPatch = ''
+      patchShebangs .
+      sed '/qtest_add_func.*check_time/d' -i tests/rtc-test.c
+    '' # disable tests that meddle with system time, they seem to work bad, maybe due to newer glib
     + stdenv.lib.optionalString spiceSupport ''
        for i in configure spice-qemu-char.c ui/spice-input.c ui/spice-core.c ui/qemu-spice.h; do
          substituteInPlace $i --replace '#include <spice.h>' '#include <spice/spice.h>'
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 2482f808cac8..8c681f893edd 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -3,10 +3,9 @@
 , glib, kbd, libxslt, coreutils, libgcrypt, sysvtools, docbook_xsl
 }:
 
-assert stdenv.gcc.libc or null != null;
-
 stdenv.mkDerivation rec {
-  name = "systemd-203";
+  version = "203";
+  name = "systemd-${version}";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
@@ -25,8 +24,8 @@ stdenv.mkDerivation rec {
       ./0009-Start-ctrl-alt-del.target-irreversibly.patch
     ] ++ stdenv.lib.optional stdenv.isArm ./libc-bug-accept4-arm.patch;
 
-  buildInputs =
-    [ pkgconfig intltool gperf libcap dbus kmod xz pam acl
+  buildInputs = assert stdenv.gcc.libc or null != null; # assertion here, so it doesn't trigger on passthru.headers
+    [ pkgconfig intltool gperf libcap dbus.libs kmod xz pam acl
       /* cryptsetup */ libuuid m4 glib libxslt libgcrypt docbook_xsl
     ];
 
@@ -125,6 +124,19 @@ stdenv.mkDerivation rec {
   # runtime; otherwise we can't and we need to reboot.
   passthru.interfaceVersion = 2;
 
+  passthru.headers = stdenv.mkDerivation {
+    name = "systemd-headers-${version}";
+    inherit src;
+
+    phases = [ "unpackPhase" "installPhase" ];
+
+    # some are needed by dbus.libs, which is needed for systemd :-)
+    installPhase = ''
+      mkdir -p "$out/include/systemd"
+      mv src/systemd/*.h "$out/include/systemd"
+    '';
+  };
+
   meta = {
     homepage = "http://www.freedesktop.org/wiki/Software/systemd";
     description = "A system and service manager for Linux";
diff --git a/pkgs/os-specific/linux/systemd/fix-tests-1.patch b/pkgs/os-specific/linux/systemd/fix-tests-1.patch
new file mode 100644
index 000000000000..14bb0fa27081
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/fix-tests-1.patch
@@ -0,0 +1,68 @@
+Signed-off-by: Ramkumar Ramachandra <artag...@gmail.com>
+---
+ Ramkumar Ramachandra wrote:
+ > $ ./test-id128
+ > random: a08ea8ed34594d4bbd953dd182ec86f9
+ > Assertion 'sd_id128_get_machine(&id) == 0' failed at
+ > src/test/test-id128.c:41, function main(). Aborting.
+ > [1]    8017 abort (core dumped)  ./test-id128
+ 
+ Okay, this test fails because I don't have a /etc/machine-id -- I
+ thought systemd is supposed to create it?  However, from the logic in
+ src/core/machine-id-setup.c, it looks like although open() is called
+ with O_CREAT on /etc/machine-id, systemd barfs if the file isn't
+ present.  How about changing this?
+
+ src/core/machine-id-setup.c |   12 +++++-------
+ src/test/test-id128.c       |    6 ++++--
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c
+index 7f4c23b..3f21d58 100644
+--- a/src/core/machine-id-setup.c
++++ b/src/core/machine-id-setup.c
+@@ -168,12 +168,8 @@ int machine_id_setup(void) {
+                 writable = true;
+         else {
+                 fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+-                if (fd < 0) {
+-                        umask(m);
+-                        log_error("Cannot open /etc/machine-id: %m");
+-                        return -errno;
+-                }
+-
++                if (fd < 0)
++                        goto generate;
+                 writable = false;
+         }
+ 
+@@ -192,7 +188,9 @@ int machine_id_setup(void) {
+                 }
+         }
+ 
+-        /* Hmm, so, the id currently stored is not useful, then let's
++generate:
++        /* Hmm, so, either /etc/machine-id doesn't exist, the id
++         * currently stored is not useful, then let's
+          * generate one */
+ 
+         r = generate(id);
+diff --git a/src/test/test-id128.c b/src/test/test-id128.c
+index bfd743e..60902d0 100644
+--- a/src/test/test-id128.c
++++ b/src/test/test-id128.c
+@@ -38,8 +38,10 @@ int main(int argc, char *argv[]) {
+         assert_se(sd_id128_from_string(t, &id2) == 0);
+         assert_se(sd_id128_equal(id, id2));
+ 
+-        assert_se(sd_id128_get_machine(&id) == 0);
+-        printf("machine: %s\n", sd_id128_to_string(id, t));
++        if (sd_id128_get_machine(&id) < 0)
++                printf("machine: run systemd-machine-id-setup first\n");
++        else
++                printf("machine: %s\n", sd_id128_to_string(id, t));
+ 
+         assert_se(sd_id128_get_boot(&id) == 0);
+         printf("boot: %s\n", sd_id128_to_string(id, t));
+-- 
+1.7.8.1.362.g5d6df.dirty
diff --git a/pkgs/os-specific/linux/systemd/no-global-install.patch b/pkgs/os-specific/linux/systemd/no-global-install.patch
new file mode 100644
index 000000000000..6567251d57a1
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/no-global-install.patch
@@ -0,0 +1,26 @@
+diff --git a/Makefile.am b/Makefile.am
+index 05bf582..aa16a7c 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2568,11 +2568,6 @@ endif
+ # "adm" and "wheel".
+ libsystemd-journal-install-hook:
+ 	libname=libsystemd-journal.so && $(move-to-rootlibdir)
+-	$(MKDIR_P) $(DESTDIR)/var/log/journal
+-	-chown 0:0 $(DESTDIR)/var/log/journal
+-	-chmod 755 $(DESTDIR)/var/log/journal
+-	-setfacl -nm g:adm:rx,d:g:adm:rx $(DESTDIR)/var/log/journal/
+-	-setfacl -nm g:wheel:rx,d:g:wheel:rx $(DESTDIR)/var/log/journal/
+ 
+ libsystemd-journal-uninstall-hook:
+ 	rm -f $(DESTDIR)$(rootlibdir)/libsystemd-journal.so*
+@@ -3676,9 +3671,6 @@ if HAVE_SYSV_COMPAT
+ sysvinit_DATA = \
+ 	docs/sysvinit/README
+ 
+-varlog_DATA = \
+-	docs/var-log/README
+-
+ docs/sysvinit/README: docs/sysvinit/README.in
+ 	$(SED_PROCESS)
+ 
diff --git a/pkgs/os-specific/linux/xf86-input-wacom/default.nix b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
index 63e4fb1ca738..4350694c13a6 100644
--- a/pkgs/os-specific/linux/xf86-input-wacom/default.nix
+++ b/pkgs/os-specific/linux/xf86-input-wacom/default.nix
@@ -3,11 +3,11 @@
 , ncurses, pkgconfig, randrproto, xorgserver, xproto, udev, libXinerama, pixman }:
 
 stdenv.mkDerivation rec {
-  name = "xf86-input-wacom-0.19.0";
+  name = "xf86-input-wacom-0.20.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxwacom/${name}.tar.bz2";
-    sha256 = "1lkvhirjysx0d2154jrwqc2i8jrqdjrlzjv7grbnm2cg5vpg7n53";
+    sha256 = "1408zjqsakcyx6v81qwh4q7m49cc6vcaad54jaw8ycw4i832jvjq";
   };
 
   buildInputs = [ inputproto libX11 libXext libXi libXrandr libXrender
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 6cb4907aa968..eddd231faa77 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -7,6 +7,8 @@ let
 
   xorg = rec {
 
+  inherit pixman;
+
   applewmproto = (stdenv.mkDerivation ((if overrides ? applewmproto then overrides.applewmproto else x: x) {
     name = "applewmproto-1.4.2";
     builder = ./builder.sh;
@@ -881,7 +883,7 @@ let
     name = "libpthread-stubs-0.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/libpthread-stubs-0.3.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2;
       sha256 = "16bjv3in19l84hbri41iayvvg4ls9gv1ma0x0qlbmwy67i7dbdim";
     };
     buildInputs = [pkgconfig ];
@@ -891,7 +893,7 @@ let
     name = "libxcb-1.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/libxcb-1.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/libxcb-1.9.tar.bz2;
       sha256 = "15icn78x610dvvgnji6b3pyn8nd88lz68hq0w73pcadf78mycmw8";
     };
     buildInputs = [pkgconfig libxslt libpthreadstubs python libXau xcbproto libXdmcp ];
@@ -957,16 +959,6 @@ let
     buildInputs = [pkgconfig libfontenc freetype xproto zlib ];
   })) // {inherit libfontenc freetype xproto zlib ;};
     
-  pixman = (stdenv.mkDerivation ((if overrides ? pixman then overrides.pixman else x: x) {
-    name = "pixman-0.26.2";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/lib/pixman-0.26.2.tar.bz2;
-      sha256 = "0z34jb75wpbyj3gxn34icd8j81fk5d6s6qnwp2ncz7m8icf6afqr";
-    };
-    buildInputs = [pkgconfig libpng perl ];
-  })) // {inherit libpng perl ;};
-    
   printproto = (stdenv.mkDerivation ((if overrides ? printproto then overrides.printproto else x: x) {
     name = "printproto-1.0.5";
     builder = ./builder.sh;
@@ -1141,7 +1133,7 @@ let
     name = "xcb-proto-1.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-proto-1.8.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2;
       sha256 = "1c11652h9sjynw3scm1pn5z3a6ci888pq7hij8q5n8qrl33icg93";
     };
     buildInputs = [pkgconfig python ];
@@ -1151,7 +1143,7 @@ let
     name = "xcb-util-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-0.3.9.tar.bz2;
       sha256 = "1i0qbhqkcdlbbsj7ifkyjsffl61whj24d3zlg5pxf3xj1af2a4f6";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
@@ -1161,7 +1153,7 @@ let
     name = "xcb-util-image-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-image-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2;
       sha256 = "1pr1l1nkg197gyl9d0fpwmn72jqpxjfgn9y13q4gawg1m873qnnk";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xcbutil xproto ];
@@ -1171,7 +1163,7 @@ let
     name = "xcb-util-keysyms-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-keysyms-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2;
       sha256 = "0vjwk7vrcfnlhiadv445c6skfxmdrg5v4qf81y8s2s5xagqarqbv";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
@@ -1191,7 +1183,7 @@ let
     name = "xcb-util-wm-0.3.9";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xcb/xcb-util-wm-0.3.9.tar.bz2;
+      url = http://xcb.freedesktop.org/dist/xcb-util-wm-0.3.9.tar.bz2;
       sha256 = "0c30fj33gvwzwhyz1dhsfwni0ai16bxpvxb4l6c6s7vvj7drp3q3";
     };
     buildInputs = [pkgconfig gperf m4 libxcb xproto ];
@@ -1348,11 +1340,11 @@ let
   })) // {inherit inputproto udev xorgserver xproto ;};
     
   xf86inputjoystick = (stdenv.mkDerivation ((if overrides ? xf86inputjoystick then overrides.xf86inputjoystick else x: x) {
-    name = "xf86-input-joystick-1.6.1";
+    name = "xf86-input-joystick-1.6.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-input-joystick-1.6.1.tar.bz2;
-      sha256 = "1xgpkdmfw4ahjlva97gs9sllzw8nlpa8mxj59g28fxhak67mvv8x";
+      url = mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2;
+      sha256 = "038mfqairyyqvz02rk7v3i070sab1wr0k6fkxvyvxdgkfbnqcfzf";
     };
     buildInputs = [pkgconfig inputproto kbproto xorgserver xproto ];
   })) // {inherit inputproto kbproto xorgserver xproto ;};
@@ -1388,11 +1380,11 @@ let
   })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
     
   xf86inputvmmouse = (stdenv.mkDerivation ((if overrides ? xf86inputvmmouse then overrides.xf86inputvmmouse else x: x) {
-    name = "xf86-input-vmmouse-12.9.0";
+    name = "xf86-input-vmmouse-13.0.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-vmmouse-12.9.0.tar.bz2;
-      sha256 = "1gwrna96f0p4gpjhin8yx01y5xvns2j15f7hw1jvqf7fpzv01kzv";
+      url = mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2;
+      sha256 = "0b31ap9wp7nwpnihz8m7bz3p0hhaipxxhl652nw4v380cq1vdkq4";
     };
     buildInputs = [pkgconfig inputproto randrproto xorgserver xproto ];
   })) // {inherit inputproto randrproto xorgserver xproto ;};
@@ -1401,7 +1393,7 @@ let
     name = "xf86-input-void-1.4.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-input-void-1.4.0.tar.bz2;
+      url = mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2;
       sha256 = "01bmk324fq48wydvy1qrnxbw6qz0fjd0i80g0n4cqr1c4mjmif9a";
     };
     buildInputs = [pkgconfig xorgserver xproto ];
@@ -1418,31 +1410,31 @@ let
   })) // {inherit ;};
     
   xf86videoark = (stdenv.mkDerivation ((if overrides ? xf86videoark then overrides.xf86videoark else x: x) {
-    name = "xf86-video-ark-0.7.4";
+    name = "xf86-video-ark-0.7.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-ark-0.7.4.tar.bz2;
-      sha256 = "194zc35ivfh3vcxcilf9nbi88c2di8kbh84x535cljlpiajdnk5x";
+      url = mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2;
+      sha256 = "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466";
     };
-    buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
-  })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
+    buildInputs = [pkgconfig fontsproto libpciaccess xextproto xorgserver xproto ];
+  })) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;};
     
   xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) {
-    name = "xf86-video-ast-0.93.10";
+    name = "xf86-video-ast-0.97.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-ast-0.93.10.tar.bz2;
-      sha256 = "1q64z8qqa0ix3cymqiwk1s3sphd1fvvz30lvyxhgkgciygz6dm69";
+      url = mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2;
+      sha256 = "0xlfk64pa0vbg74m261fw8cn4vw6jw3nxm6wys9m4j3n2rwd9z18";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
     
   xf86videoati = (stdenv.mkDerivation ((if overrides ? xf86videoati then overrides.xf86videoati else x: x) {
-    name = "xf86-video-ati-6.14.4";
+    name = "xf86-video-ati-7.1.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-ati-6.14.4.tar.bz2;
-      sha256 = "11gg6xn65vym75769hzgzpkjsyhlkrw4zw3ncngriq7vz1g47zjg";
+      url = mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2;
+      sha256 = "1k8hwszx1zj17z0657dna8q4k7x67adc163z44jiccyb3w2l9bn8";
     };
     buildInputs = [pkgconfig fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
@@ -1458,11 +1450,11 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
     
   xf86videodummy = (stdenv.mkDerivation ((if overrides ? xf86videodummy then overrides.xf86videodummy else x: x) {
-    name = "xf86-video-dummy-0.3.5";
+    name = "xf86-video-dummy-0.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-dummy-0.3.5.tar.bz2;
-      sha256 = "0pyr50kqh7g84r4p0x09ay5kxax20dip9sh8h3cbd4xv8cswdbfm";
+      url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2;
+      sha256 = "16773lxa74d9v2x758bx0byrmxssplqygnjn09q3klr605j5ncs4";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
@@ -1478,41 +1470,41 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
     
   xf86videogeode = (stdenv.mkDerivation ((if overrides ? xf86videogeode then overrides.xf86videogeode else x: x) {
-    name = "xf86-video-geode-2.11.13";
+    name = "xf86-video-geode-2.11.14";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-geode-2.11.13.tar.bz2;
-      sha256 = "09p2cjd2fb7h32k9qs4wp7qvhfn2zv454spv5mfplv7w2jis4863";
+      url = mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2;
+      sha256 = "1k6gl1kq2fr0gj6sqrg2rypp59f8b8pr46c902m4z4rjr530nxac";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
     
   xf86videoglide = (stdenv.mkDerivation ((if overrides ? xf86videoglide then overrides.xf86videoglide else x: x) {
-    name = "xf86-video-glide-1.2.0";
+    name = "xf86-video-glide-1.2.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-glide-1.2.0.tar.bz2;
-      sha256 = "0byapm9mnpqk3wijfnnan3d22ii5cw6dmg4xn1625iiz89j5vs1l";
+      url = mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2;
+      sha256 = "0vp9izdy7lgx09jfwr4ra9zvrx1hg15a5v2nhx00v31ffkh2aiyp";
     };
     buildInputs = [pkgconfig xextproto xorgserver xproto ];
   })) // {inherit xextproto xorgserver xproto ;};
     
   xf86videoglint = (stdenv.mkDerivation ((if overrides ? xf86videoglint then overrides.xf86videoglint else x: x) {
-    name = "xf86-video-glint-1.2.7";
+    name = "xf86-video-glint-1.2.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-glint-1.2.7.tar.bz2;
-      sha256 = "0nf36jryabpncqq4m6sfsnmzk00f7gvfmjnl8l8sfy7w6sa6iacs";
+      url = mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2;
+      sha256 = "08a2aark2yn9irws9c78d9q44dichr03i9zbk61jgr54ncxqhzv5";
     };
     buildInputs = [pkgconfig libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit libpciaccess videoproto xextproto xf86dgaproto xorgserver xproto ;};
     
   xf86videoi128 = (stdenv.mkDerivation ((if overrides ? xf86videoi128 then overrides.xf86videoi128 else x: x) {
-    name = "xf86-video-i128-1.3.5";
+    name = "xf86-video-i128-1.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-i128-1.3.5.tar.bz2;
-      sha256 = "1sik8ck410hb2885vy7rlc590hw5br8lr2fzxgmv55jyawgfpv9y";
+      url = mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2;
+      sha256 = "171b8lbxr56w3isph947dnw7x87hc46v6m3mcxdcz44gk167x0pq";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1524,55 +1516,35 @@ let
       url = mirror://xorg/individual/driver/xf86-video-intel-2.20.19.tar.bz2;
       sha256 = "0k67vcf0aqhv9zmy1arxyjdl7fsrg90cjm0ryyhamghq67z0xcmr";
     };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ;};
-    
-  xf86videointel_2_14_901 = (stdenv.mkDerivation ((if overrides ? xf86videointel_2_14_901 then overrides.xf86videointel_2_14_901 else x: x) {
-    name = "xf86-video-intel-2.14.901";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.14.901.tar.bz2;
-      sha256 = "1hm3zn96ahmirvx1iv87sk7fl7g8a6h1j7560gyw7y5b3l1zmg5r";
-    };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXvMC ;};
-    
-  xf86videointel_2_17_0 = (stdenv.mkDerivation ((if overrides ? xf86videointel_2_17_0 then overrides.xf86videointel_2_17_0 else x: x) {
-    name = "xf86-video-intel-2.17.0";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-intel-2.17.0.tar.bz2;
-      sha256 = "11s3vjp0lrfmb4bv848fd5bajj77j3rf451lm0qyylnclbr5114b";
-    };
-    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ];
-  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess pixman randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ;};
+    buildInputs = [pkgconfig dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ];
+  })) // {inherit dri2proto fontsproto libdrm udev libpciaccess randrproto renderproto libX11 xcbutil libxcb libXext xextproto xf86driproto libXfixes xorgserver xproto libXrender libXvMC ;};
     
   xf86videomach64 = (stdenv.mkDerivation ((if overrides ? xf86videomach64 then overrides.xf86videomach64 else x: x) {
-    name = "xf86-video-mach64-6.9.1";
+    name = "xf86-video-mach64-6.9.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-mach64-6.9.1.tar.bz2;
-      sha256 = "0kl3kvpc2ny48z89313i9fi4cxzwb2pllvxcr9j5ly680ygx8slz";
+      url = mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2;
+      sha256 = "0pl582vnc6hdxqhf5c0qdyanjqxb4crnhqlmxxml5a60syw0iwcp";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
     
   xf86videomga = (stdenv.mkDerivation ((if overrides ? xf86videomga then overrides.xf86videomga else x: x) {
-    name = "xf86-video-mga-1.5.0";
+    name = "xf86-video-mga-1.6.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-mga-1.5.0.tar.bz2;
-      sha256 = "03l3wz5kz0hmxmzqqbkgn7pf9d956jlag04rb701a0fr1mw3v66a";
+      url = mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2;
+      sha256 = "0v6agqc9lxg8jgrksc1yksmhnv70j1vnhm09i7gg14za1qjwx29z";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
     
   xf86videoneomagic = (stdenv.mkDerivation ((if overrides ? xf86videoneomagic then overrides.xf86videoneomagic else x: x) {
-    name = "xf86-video-neomagic-1.2.6";
+    name = "xf86-video-neomagic-1.2.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-neomagic-1.2.6.tar.bz2;
-      sha256 = "124qci48xrk0w2jy91n7vqs7s6q397zyiqqszhmkx6ld7six57mi";
+      url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2;
+      sha256 = "0xnbk2y5pzs1g3w2rmjc4k3nyq6kazf67bv4q3dnbywalsgfh1lz";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
@@ -1598,101 +1570,101 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
     
   xf86videoopenchrome = (stdenv.mkDerivation ((if overrides ? xf86videoopenchrome then overrides.xf86videoopenchrome else x: x) {
-    name = "xf86-video-openchrome-0.2.906";
+    name = "xf86-video-openchrome-0.3.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-openchrome-0.2.906.tar.bz2;
-      sha256 = "0hgzn1r7ig94xbr9dvq0bp1nxqlfp2ki8823jca3f22a2kf8wmg7";
+      url = mirror://xorg/individual/driver/xf86-video-openchrome-0.3.2.tar.bz2;
+      sha256 = "11pm8h9qxdjxn5rwz433cbnp6v0gg62b61nl20gxvghb7rgwv70m";
     };
-    buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
-  })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;};
+    buildInputs = [pkgconfig fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ];
+  })) // {inherit fontsproto glproto libdrm udev libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xf86driproto xorgserver xproto libXvMC ;};
     
   xf86videor128 = (stdenv.mkDerivation ((if overrides ? xf86videor128 then overrides.xf86videor128 else x: x) {
-    name = "xf86-video-r128-6.8.2";
+    name = "xf86-video-r128-6.9.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-r128-6.8.2.tar.bz2;
-      sha256 = "1c84x40k9qz9dnf5qs6nnjcgz7px6mpc3rbk8mj62zhp7mf16hbv";
+      url = mirror://xorg/individual/driver/xf86-video-r128-6.9.1.tar.bz2;
+      sha256 = "0k746kk75h3hg3wmihqlmp14s52fg0svylqay02km7misflbmqwb";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xf86miscproto xorgserver xproto ;};
     
   xf86videosavage = (stdenv.mkDerivation ((if overrides ? xf86videosavage then overrides.xf86videosavage else x: x) {
-    name = "xf86-video-savage-2.3.4";
+    name = "xf86-video-savage-2.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-savage-2.3.4.tar.bz2;
-      sha256 = "0jdy4wv3k3ylx3lajjcbsg37z2hf6366a1jvv16sv1ln6dk6lris";
+      url = mirror://xorg/individual/driver/xf86-video-savage-2.3.6.tar.bz2;
+      sha256 = "1mk3mpwl97clxhwzl990hj31z8qfh7fd4vs6qbl5i250ykc3x0a8";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
     
   xf86videosiliconmotion = (stdenv.mkDerivation ((if overrides ? xf86videosiliconmotion then overrides.xf86videosiliconmotion else x: x) {
-    name = "xf86-video-siliconmotion-1.7.6";
+    name = "xf86-video-siliconmotion-1.7.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-siliconmotion-1.7.6.tar.bz2;
-      sha256 = "01sdl6ky1vmvmfgx2d44i35rqafi0z07xdy40cvindcr2k91p7x5";
+      url = mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.7.tar.bz2;
+      sha256 = "1an321kqvsxq0z35acwl99lc8hpdkayw0q180744ypcl8ffvbf47";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess videoproto xextproto xorgserver xproto ;};
     
   xf86videosis = (stdenv.mkDerivation ((if overrides ? xf86videosis then overrides.xf86videosis else x: x) {
-    name = "xf86-video-sis-0.10.4";
+    name = "xf86-video-sis-0.10.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-sis-0.10.4.tar.bz2;
-      sha256 = "03diq0l93lfsipmwkpdb2ysgbxxryl6yakpghzc3fksjxa01112f";
+      url = mirror://xorg/individual/driver/xf86-video-sis-0.10.7.tar.bz2;
+      sha256 = "1l0w84x39gq4y9j81dny9r6rma1xkqvxpsavpkd8h7h8panbcbmy";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xf86driproto xineramaproto xorgserver xproto ;};
     
   xf86videosuncg6 = (stdenv.mkDerivation ((if overrides ? xf86videosuncg6 then overrides.xf86videosuncg6 else x: x) {
-    name = "xf86-video-suncg6-1.1.1";
+    name = "xf86-video-suncg6-1.1.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-suncg6-1.1.1.tar.bz2;
-      sha256 = "07w0hm63fiy5l3cpcjsl0ig8z84z9r36xm0cmnpiv3g75dy6q8fi";
+      url = mirror://xorg/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2;
+      sha256 = "04fgwgk02m4nimlv67rrg1wnyahgymrn6rb2cjj1l8bmzkii4glr";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto xorgserver xproto ;};
     
   xf86videosunffb = (stdenv.mkDerivation ((if overrides ? xf86videosunffb then overrides.xf86videosunffb else x: x) {
-    name = "xf86-video-sunffb-1.2.1";
+    name = "xf86-video-sunffb-1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-sunffb-1.2.1.tar.bz2;
-      sha256 = "04byax4sc1fn183vyyq0q11q730k16h2by4ggjky7s36wgv7ldzx";
+      url = mirror://xorg/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2;
+      sha256 = "07z3ngifwg2d4jgq8pms47n5lr2yn0ai72g86xxjnb3k20n5ym7s";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto xextproto xorgserver xproto ;};
     
   xf86videotdfx = (stdenv.mkDerivation ((if overrides ? xf86videotdfx then overrides.xf86videotdfx else x: x) {
-    name = "xf86-video-tdfx-1.4.4";
+    name = "xf86-video-tdfx-1.4.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-tdfx-1.4.4.tar.bz2;
-      sha256 = "124gsi30rj547jjd7gvv7xykfnwlyrxw0gcacamby7pvl3g33fg0";
+      url = mirror://xorg/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2;
+      sha256 = "0nfqf1c8939s21ci1g7gacwzlr4g4nnilahgz7j2bz30zfnzpmbh";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
     
   xf86videotga = (stdenv.mkDerivation ((if overrides ? xf86videotga then overrides.xf86videotga else x: x) {
-    name = "xf86-video-tga-1.2.1";
+    name = "xf86-video-tga-1.2.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-tga-1.2.1.tar.bz2;
-      sha256 = "0mdqrn02zzkdnmhg4vh9djaawg6b2p82g5qbj66z8b30yr77b93h";
+      url = mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2;
+      sha256 = "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
     
   xf86videotrident = (stdenv.mkDerivation ((if overrides ? xf86videotrident then overrides.xf86videotrident else x: x) {
-    name = "xf86-video-trident-1.3.5";
+    name = "xf86-video-trident-1.3.6";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-trident-1.3.5.tar.bz2;
-      sha256 = "02y5pzdp0a1c12jr8gghbrzgbyfbgq67x7kd7n4f323pmf8x1csb";
+      url = mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2;
+      sha256 = "0141qbfsm32i0pxjyx5czpa8x8m4lvapsp4amw1qigaa0gry6n3a";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
@@ -1718,21 +1690,21 @@ let
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
     
   xf86videovmware = (stdenv.mkDerivation ((if overrides ? xf86videovmware then overrides.xf86videovmware else x: x) {
-    name = "xf86-video-vmware-12.0.2";
+    name = "xf86-video-vmware-13.0.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-vmware-12.0.2.tar.bz2;
-      sha256 = "0isiwx516gww8hfk3vy7js83yziyjym9mq2zjadyq1a8v5gqf9y8";
+      url = mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2;
+      sha256 = "0ggyz3yl1ly0p9c9lva5z3892vm033z49py3svd2wh92bi0xlbc0";
     };
     buildInputs = [pkgconfig fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ];
   })) // {inherit fontsproto libdrm libpciaccess randrproto renderproto videoproto libX11 libXext xextproto xineramaproto xorgserver xproto ;};
     
   xf86videovoodoo = (stdenv.mkDerivation ((if overrides ? xf86videovoodoo then overrides.xf86videovoodoo else x: x) {
-    name = "xf86-video-voodoo-1.2.4";
+    name = "xf86-video-voodoo-1.2.5";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xf86-video-voodoo-1.2.4.tar.bz2;
-      sha256 = "0ha748yz92yzn6hp2rhin3il8f4j2rs4vkgdvqkagnv1ryxkh0ph";
+      url = mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2;
+      sha256 = "1s6p7yxmi12q4y05va53rljwyzd6ry492r1pgi7wwq6cznivhgly";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xf86dgaproto xorgserver xproto ;};
@@ -1758,11 +1730,11 @@ let
   })) // {inherit ;};
     
   xfs = (stdenv.mkDerivation ((if overrides ? xfs then overrides.xfs else x: x) {
-    name = "xfs-1.1.2";
+    name = "xfs-1.1.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xfs-1.1.2.tar.bz2;
-      sha256 = "17g34yq789grnic83cqj5khq0knda1w2rgabhjflsyw9wg663shd";
+      url = mirror://xorg/individual/app/xfs-1.1.3.tar.bz2;
+      sha256 = "1dwnf5gncpnjsbh9bdrc665kfnclhzzcpwpfnprvrnq4mlr4mx3v";
     };
     buildInputs = [pkgconfig libXfont xproto xtrans ];
   })) // {inherit libXfont xproto xtrans ;};
@@ -1848,14 +1820,14 @@ let
   })) // {inherit inputproto libX11 libXaw xproto libXt ;};
     
   xkeyboardconfig = (stdenv.mkDerivation ((if overrides ? xkeyboardconfig then overrides.xkeyboardconfig else x: x) {
-    name = "xkeyboard-config-2.6";
+    name = "xkeyboard-config-2.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/X11R7.7/src/everything/xkeyboard-config-2.6.tar.bz2;
-      sha256 = "1nmb7ma8rqryicc5xqrn2hm5pwp5lkf7nj28bwbf63mz2r0mk892";
+      url = mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.8.tar.bz2;
+      sha256 = "1bkq415qw4r3dl139mqgal9v585x7kh3km6z1lraz2j8im3ga72f";
     };
-    buildInputs = [pkgconfig ];
-  })) // {inherit ;};
+    buildInputs = [pkgconfig libX11 xproto ];
+  })) // {inherit libX11 xproto ;};
     
   xkill = (stdenv.mkDerivation ((if overrides ? xkill then overrides.xkill else x: x) {
     name = "xkill-1.0.3";
@@ -1888,11 +1860,11 @@ let
   })) // {inherit libxcb ;};
     
   xmessage = (stdenv.mkDerivation ((if overrides ? xmessage then overrides.xmessage else x: x) {
-    name = "xmessage-1.0.3";
+    name = "xmessage-1.0.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/app/xmessage-1.0.3.tar.bz2;
-      sha256 = "0nrxidff0pcd1ampfzj91ai74j6mx613j5kqk3j0c4xdshx5v8yg";
+      url = mirror://xorg/individual/app/xmessage-1.0.4.tar.bz2;
+      sha256 = "0s5bjlpxnmh8sxx6nfg9m0nr32r1sr3irr71wsnv76s33i34ppxw";
     };
     buildInputs = [pkgconfig libXaw libXt ];
   })) // {inherit libXaw libXt ;};
@@ -1928,24 +1900,14 @@ let
   })) // {inherit ;};
     
   xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) {
-    name = "xorg-server-1.12.4";
+    name = "xorg-server-1.13.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xserver/xorg-server-1.12.4.tar.bz2;
-      sha256 = "1xscr6rf0q15hv3hmm51xhwk0c0rx7a2swkj14ygp8vb60sprh4a";
+      url = mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2;
+      sha256 = "1kwq5hqgl3qmm4nxh5iwpa0wwwzsj67fxqiiglzhyyrwgy46kjd2";
     };
     buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ];
   })) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv ;};
-
-  xorgserver_1_13_0 = (stdenv.mkDerivation ((if overrides ? xorgserver_1_13_0 then overrides.xorgserver_1_13_0 else x: x) {
-    name = "xorg-server-1.13.0";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = mirror://xorg/individual/xserver/xorg-server-1.13.0.tar.bz2;
-      sha256 = "12pjis236ss3402cg1iy749cylajjp27m3j2jbwd8yh8075r32sl";
-    };
-    buildInputs = [pkgconfig renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv pixman glproto ];
-  })) // {inherit renderproto libdrm openssl libX11 libXau libXaw libXdmcp libXfixes libxkbfile libXmu libXpm libXrender libXres libXt libXv pixman glproto ;};
     
   xorgsgmldoctools = (stdenv.mkDerivation ((if overrides ? xorgsgmldoctools then overrides.xorgsgmldoctools else x: x) {
     name = "xorg-sgml-doctools-1.11";
diff --git a/pkgs/servers/x11/xorg/extra.list b/pkgs/servers/x11/xorg/extra.list
index f7f139b19c1c..c1ef747b3a84 100644
--- a/pkgs/servers/x11/xorg/extra.list
+++ b/pkgs/servers/x11/xorg/extra.list
@@ -1,7 +1,8 @@
-mirror://xorg/individual/lib/pixman-0.26.2.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-0.3.9.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-image-0.3.9.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-keysyms-0.3.9.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-renderutil-0.3.8.tar.bz2
-mirror://xorg/individual/xcb/xcb-util-wm-0.3.9.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.13.0.tar.bz2:xorgserver_1_13_0
+http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.bz2
+http://xcb.freedesktop.org/dist/libxcb-1.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-proto-1.8.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-0.3.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-image-0.3.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-keysyms-0.3.9.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-renderutil-0.3.8.tar.bz2
+http://xcb.freedesktop.org/dist/xcb-util-wm-0.3.9.tar.bz2
diff --git a/pkgs/servers/x11/xorg/old.list b/pkgs/servers/x11/xorg/old.list
index 94fae784488e..742c656b9b76 100644
--- a/pkgs/servers/x11/xorg/old.list
+++ b/pkgs/servers/x11/xorg/old.list
@@ -2,9 +2,9 @@ mirror://xorg/individual/app/twm-1.0.7.tar.bz2
 mirror://xorg/individual/app/xclock-1.0.6.tar.bz2
 mirror://xorg/individual/app/xdm-1.1.11.tar.bz2
 mirror://xorg/individual/app/xeyes-1.1.1.tar.bz2
-mirror://xorg/individual/app/xfs-1.1.2.tar.bz2
+mirror://xorg/individual/app/xfs-1.1.3.tar.bz2
 mirror://xorg/individual/app/xinit-1.3.2.tar.bz2
-mirror://xorg/individual/app/xmessage-1.0.3.tar.bz2
+mirror://xorg/individual/app/xmessage-1.0.4.tar.bz2
 mirror://xorg/individual/lib/libXp-1.0.1.tar.bz2
 mirror://xorg/individual/lib/libXxf86misc-1.0.3.tar.bz2
 mirror://xorg/individual/proto/printproto-1.0.5.tar.bz2
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index e5b7a9a34021..1fadab2cc3d6 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -7,6 +7,9 @@ let
     '';
 in
 {
+  encodings = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
+  };
 
   fontcursormisc = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [ xorg.mkfontscale ];
@@ -46,11 +49,6 @@ in
     nativeBuildInputs = [ args.python ];
   };
 
-  pixman = attrs : attrs // {
-    buildInputs = [ args.pkgconfig ];
-    nativeBuildInputs = [ args.perl ];
-  };
-
   libpciaccess = attrs : attrs // {
     patches = [ ./libpciaccess-apple.patch ];
   };
@@ -132,83 +130,28 @@ in
 
   xf86inputevdev = attrs: attrs // {
     preBuild = "sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c";
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.kbproto xorg.libxkbfile xorg.randrproto xorg.pixman];
     installFlags = "sdkdir=\${out}/include/xorg";
   };
 
-  xf86inputkeyboard = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86inputmouse = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
+  xf86inputjoystick = attrs: attrs // {
+    installFlags = "sdkdir=\${out}/include/xorg";
   };
 
   xf86inputsynaptics = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [args.mtdev xorg.pixman];
+    buildInputs = attrs.buildInputs ++ [args.mtdev];
     installFlags = "sdkdir=\${out}/include/xorg configdir=\${out}/include/xorg";
   };
 
-  xf86inputvoid = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videointel = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
-  };
-
-  xf86videosis = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
-  };
-
-  xf86videoati = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa xorg.pixman];
-  };
-
-  xf86videocirrus = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videodummy = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videofbdev = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videoopenchrome = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman xorg.glproto args.mesa];
-  };
-
-  xf86videonv = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videovesa = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman];
-  };
-
-  xf86videovmware = attrs: attrs // {
-    NIX_CFLAGS_COMPILE = "-I${xorg.pixman}/include/pixman-1";
-    buildInputs = attrs.buildInputs ++ [xorg.pixman xorg.glproto args.mesa];
+  xf86inputvmmouse = attrs: attrs // {
+    configureFlags = [
+      "--sysconfdir=$(out)/etc"
+      "--with-xorg-conf-dir=$(out)/share/X11/xorg.conf.d"
+      "--with-udev-rules-dir=$(out)/lib/udev/rules.d"
+    ];
   };
 
   xdriinfo = attrs: attrs // {
-    buildInputs = attrs.buildInputs ++ [xorg.glproto args.mesa];
+    buildInputs = attrs.buildInputs ++ [args.mesa];
   };
 
   xvinfo = attrs: attrs // {
@@ -219,44 +162,28 @@ in
     NIX_CFLAGS_COMPILE = "-DDFLT_XKB_CONFIG_ROOT=\".\"";
   };
 
-  xorgserver = attrs: attrs // {
-    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
-    patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch ./xorgserver12-CVE-1940.patch];
-    buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa args.dbus.libs
-        xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
-        xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.xf86dgaproto
-        xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
-        xorg.damageproto xorg.xcmiscproto xorg.xtrans xorg.bigreqsproto
-      ];
-    propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
-        xorg.dri2proto xorg.kbproto
-      ];
-    postInstall =
-      ''
-        rm -fr $out/share/X11/xkb/compiled
-        ln -s /var/tmp $out/share/X11/xkb/compiled
-      '';
+  xkeyboardconfig = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [args.intltool];
   };
 
-  xorgserver_1_13_0 = attrs: attrs // {
-    configureFlags = "--enable-xcsecurity"; # enable SECURITY extension
+  xorgserver = with xorg; attrs: attrs // {
+    configureFlags = [
+      "--enable-xcsecurity" # enable SECURITY extension
+      "--with-default-font-path= "  # there were only paths containing "${prefix}",
+                                    # and there are no fonts in this package anyway
+    ];
     patches = [./xorgserver-dri-path.patch ./xorgserver-xkbcomp-path.patch];
-    buildInputs = attrs.buildInputs ++
-      [ args.zlib args.udev args.mesa args.dbus.libs
-        xorg.xf86bigfontproto xorg.glproto xorg.xf86driproto
-        xorg.compositeproto xorg.scrnsaverproto xorg.resourceproto
-        xorg.xineramaproto xorg.xf86dgaproto
-        xorg.dmxproto xorg.libdmx xorg.xf86vidmodeproto
-        xorg.recordproto xorg.libXext xorg.pixman xorg.libXfont
-        xorg.damageproto xorg.xcmiscproto xorg.xtrans xorg.bigreqsproto
-      ];
+    buildInputs = attrs.buildInputs ++ [ xtrans ];
     propagatedBuildInputs =
-      [ xorg.libpciaccess xorg.inputproto xorg.xextproto xorg.randrproto
-        xorg.dri2proto xorg.kbproto
+      [ args.zlib args.udev args.mesa args.dbus.libs
+        xf86bigfontproto glproto xf86driproto
+        compositeproto scrnsaverproto resourceproto
+        xf86dgaproto
+        dmxproto /*libdmx not used*/ xf86vidmodeproto
+        recordproto libXext pixman libXfont
+        damageproto xcmiscproto  bigreqsproto
+        libpciaccess inputproto xextproto randrproto renderproto
+        dri2proto kbproto xineramaproto resourceproto scrnsaverproto videoproto
       ];
     postInstall =
       ''
@@ -283,6 +210,11 @@ in
     buildInputs = attrs.buildInputs ++ [xorg.libXrender];
   };
 
+  xcursorthemes = attrs: attrs // {
+    buildInputs = attrs.buildInputs ++ [xorg.xcursorgen];
+    configureFlags = "--with-cursordir=$(out)/share/icons";
+  };
+
   xinput = attrs: attrs // {
     buildInputs = attrs.buildInputs ++ [xorg.libXrender];
   };
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 7b3616362649..79aeb7c1a3ae 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -54,13 +54,11 @@ mirror://xorg/X11R7.7/src/everything/libfontenc-1.1.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libFS-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libICE-1.0.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libpciaccess-0.13.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/libpthread-stubs-0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libSM-1.2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libWindowsWM-1.0.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libX11-1.5.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXau-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXaw-1.0.11.tar.bz2
-mirror://xorg/individual/xcb/libxcb-1.9.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXcomposite-0.4.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXcursor-1.1.13.tar.bz2
 mirror://xorg/X11R7.7/src/everything/libXdamage-1.1.3.tar.bz2
@@ -103,7 +101,6 @@ mirror://xorg/X11R7.7/src/everything/x11perf-1.5.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xauth-1.0.7.tar.bz2
 mirror://xorg/individual/app/xbacklight-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xbitmaps-1.1.1.tar.bz2
-mirror://xorg/individual/xcb/xcb-proto-1.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcmiscproto-1.2.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcmsdb-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xcursorgen-1.0.5.tar.bz2
@@ -116,42 +113,42 @@ mirror://xorg/X11R7.7/src/everything/xf86bigfontproto-1.2.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86dgaproto-2.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86driproto-2.1.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-evdev-2.7.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-input-joystick-1.6.1.tar.bz2
+mirror://xorg/individual/driver/xf86-input-joystick-1.6.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-input-keyboard-1.6.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-input-mouse-1.7.2.tar.bz2
 mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2
-mirror://xorg/individual/driver/xf86-input-vmmouse-12.9.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-input-void-1.4.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-ark-0.7.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-ast-0.93.10.tar.bz2
-mirror://xorg/individual/driver/xf86-video-ati-6.14.4.tar.bz2
+mirror://xorg/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-void-1.4.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ark-0.7.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2
+mirror://xorg/individual/driver/xf86-video-ati-7.1.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-dummy-0.3.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-geode-2.11.13.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-glide-1.2.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-glint-1.2.7.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-i128-1.3.5.tar.bz2
-mirror://xorg/individual/driver/xf86-video-intel-2.20.10.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-mach64-6.9.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-mga-1.5.0.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-neomagic-1.2.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-geode-2.11.14.tar.bz2
+mirror://xorg/individual/driver/xf86-video-glide-1.2.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-glint-1.2.8.tar.bz2
+mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-intel-2.20.19.tar.bz2
+mirror://xorg/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
+mirror://xorg/individual/driver/xf86-video-mga-1.6.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-newport-0.2.4.tar.bz2
 mirror://xorg/individual/driver/xf86-video-nv-2.1.20.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-openchrome-0.2.906.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-r128-6.8.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-savage-2.3.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-siliconmotion-1.7.6.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-sis-0.10.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-suncg6-1.1.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-sunffb-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-tdfx-1.4.4.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-tga-1.2.1.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-trident-1.3.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-openchrome-0.3.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-r128-6.9.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-savage-2.3.6.tar.bz2
+mirror://xorg/individual/driver/xf86-video-siliconmotion-1.7.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sis-0.10.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-suncg6-1.1.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-sunffb-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
+mirror://xorg/individual/driver/xf86-video-tga-1.2.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-trident-1.3.6.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-v4l-0.2.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-vmware-12.0.2.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xf86-video-voodoo-1.2.4.tar.bz2
+mirror://xorg/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
+mirror://xorg/individual/driver/xf86-video-voodoo-1.2.5.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86-video-wsfb-0.4.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xf86vidmodeproto-2.3.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xgamma-1.0.5.tar.bz2
@@ -161,13 +158,13 @@ mirror://xorg/X11R7.7/src/everything/xinput-1.6.0.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbcomp-1.2.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbevd-1.1.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkbutils-1.0.3.tar.bz2
-mirror://xorg/X11R7.7/src/everything/xkeyboard-config-2.6.tar.bz2
+mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-2.8.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xkill-1.0.3.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xlsatoms-1.1.1.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xlsclients-1.1.2.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xmodmap-1.0.7.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-docs-1.7.tar.bz2
-mirror://xorg/individual/xserver/xorg-server-1.12.4.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xpr-1.0.4.tar.bz2
 mirror://xorg/X11R7.7/src/everything/xprop-1.2.1.tar.bz2
diff --git a/pkgs/tools/graphics/zbar/default.nix b/pkgs/tools/graphics/zbar/default.nix
index d5cea08f3df9..83c9b1577935 100644
--- a/pkgs/tools/graphics/zbar/default.nix
+++ b/pkgs/tools/graphics/zbar/default.nix
@@ -1,6 +1,6 @@
 x@{builderDefsPackage
   , imagemagickBig, pkgconfig, python, pygtk, perl, libX11, libv4l
-  , qt4, lzma
+  , qt4, lzma, gtk2
   , ...}:
 builderDefsPackage
 (a :  
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.nix b/pkgs/tools/typesetting/pdf2djvu/default.nix
index aea282386655..b7204b957842 100644
--- a/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, pkgconfig, djvulibre, poppler, fontconfig, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.11";
+  version = "0.7.16";
   name = "pdf2djvu-${version}";
 
   src = fetchurl {
     url = "http://pdf2djvu.googlecode.com/files/pdf2djvu_${version}.tar.gz";
-    sha256 = "00gscd7l02jyr132vlj08ks0pgmh5ja785n3fdxa795cib45rbgq";
+    sha256 = "1yg4ppqxpfda89yi4c3rrq2zhar5dzyqypvqdvdd0r7is2321nnv";
   };
 
   buildInputs = [ pkgconfig djvulibre poppler fontconfig libjpeg ];
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     description = "Creates djvu files from PDF files";
     homepage = http://code.google.com/p/pdf2djvu/;
     license = stdenv.lib.licenses.gpl2;
+    inherit version;
   };
 }
diff --git a/pkgs/tools/typesetting/pdf2djvu/default.upstream b/pkgs/tools/typesetting/pdf2djvu/default.upstream
new file mode 100644
index 000000000000..1bb4aebdc616
--- /dev/null
+++ b/pkgs/tools/typesetting/pdf2djvu/default.upstream
@@ -0,0 +1,10 @@
+url http://code.google.com/p/pdf2djvu/downloads/list
+version_link '[.]tar[.][a-z0-9]+$'
+process 'code[.]google[.]com//' ''
+version '.*_([0-9.]+[0-9]).*' '\1'
+
+do_overwrite () {
+  ensure_hash
+  set_var_value version "$CURRENT_VERSION"
+  set_var_value sha256 "$CURRENT_HASH"
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2edc268319c3..e89bdc2c639d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1496,7 +1496,7 @@ let
 
   pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  pythonDBus = callPackage ../development/python-modules/dbus { };
+  pythonDBus = dbus_python;
 
   pythonIRClib = builderDefsPackage (import ../development/python-modules/irclib) {
     inherit python;
@@ -1793,7 +1793,7 @@ let
   tigervnc = callPackage ../tools/admin/tigervnc {
     fontDirectories = [ xorg.fontadobe75dpi xorg.fontmiscmisc xorg.fontcursormisc
       xorg.fontbhlucidatypewriter75dpi ];
-    xorgserver = xorg.xorgserver_1_13_0;
+    inherit (xorg) xorgserver;
     fltk = fltk13;
   };
 
@@ -1967,7 +1967,11 @@ let
 
   youtubeDL = callPackage ../tools/misc/youtube-dl { inherit (haskellPackages) pandoc; };
 
-  zbar = callPackage ../tools/graphics/zbar {};
+  zbar = callPackage ../tools/graphics/zbar {
+    pygtk = lib.overrideDerivation pygtk (x: {
+      gtk = gtk2;
+    });
+  };
 
   zdelta = callPackage ../tools/compression/zdelta { };
 
@@ -2809,13 +2813,13 @@ let
 
   urweb = callPackage ../development/compilers/urweb { };
 
-  vala = vala17;
+  vala = vala19;
 
   vala15 = callPackage ../development/compilers/vala/15.2.nix { };
 
   vala16 = callPackage ../development/compilers/vala/16.1.nix { };
 
-  vala17 = callPackage ../development/compilers/vala/default.nix { };
+  vala19 = callPackage ../development/compilers/vala/default.nix { };
 
   visualcpp = callPackage ../development/compilers/visual-c++ { };
 
@@ -2970,6 +2974,7 @@ let
   pure = callPackage ../development/interpreters/pure {};
 
   python3 = hiPrio (callPackage ../development/interpreters/python/3.3 { });
+  python33 = callPackage ../development/interpreters/python/3.3 { };
 
   python = python27;
   python26 = callPackage ../development/interpreters/python/2.6 { };
@@ -3663,23 +3668,16 @@ let
 
   db48 = callPackage ../development/libraries/db4/db4-4.8.nix { };
 
-  dbus = pkgs.dbus_all.libs // { inherit (pkgs.dbus_all) libs; };
-
-  dbus_daemon = pkgs.dbus_all.daemon;
-
-  dbus_tools = pkgs.dbus_all.tools;
-
-  dbus_libs = pkgs.dbus_all.libs;
-
-  dbus_all = callPackage ../development/libraries/dbus {
-    useX11 = true;
-  };
-
-  dbus_cplusplus = callPackage ../development/libraries/dbus-cplusplus { };
-
-  dbus_glib = callPackage ../development/libraries/dbus-glib { };
-
-  dbus_java = callPackage ../development/libraries/java/dbus-java { };
+  dbus = let dbus_all = callPackage ../development/libraries/dbus { };
+    in dbus_all.libs // dbus_all; # previously dbus.libs also contained the daemon
+  dbus_cplusplus  = callPackage ../development/libraries/dbus-cplusplus { };
+  dbus_glib       = callPackage ../development/libraries/dbus-glib { };
+  dbus_java       = callPackage ../development/libraries/java/dbus-java { };
+  dbus_python     = callPackage ../development/python-modules/dbus { };
+  # Should we deprecate these? Currently there are many references.
+  dbus_tools = dbus.tools;
+  dbus_libs = dbus.libs;
+  dbus_daemon = dbus.daemon;
 
   dclib = callPackage ../development/libraries/dclib { };
 
@@ -3793,8 +3791,6 @@ let
 
   gav = callPackage ../games/gav { };
 
-  GConf3 = callPackage ../development/libraries/GConf/3.x.nix { };
-
   gdome2 = callPackage ../development/libraries/gdome2 {
     inherit (gnome) gtkdoc;
   };
@@ -4023,25 +4019,32 @@ let
       gtkmm;
   };
 
-  glib = callPackage ../development/libraries/glib/2.34.x.nix { };
+  glib = callPackage ../development/libraries/glib { };
   glibmm = callPackage ../development/libraries/glibmm { };
 
   glib_networking = callPackage ../development/libraries/glib-networking {};
 
-  atk = callPackage ../development/libraries/atk/2.6.x.nix { };
+  atk = callPackage ../development/libraries/atk { };
   atkmm = callPackage ../development/libraries/atkmm { };
 
-  cairo = callPackage ../development/libraries/cairo { };
+  cairo = callPackage ../development/libraries/cairo {
+    pixman = pixman_cairo; # it's recommended to be in sync
+  };
+  pixman_cairo = callPackage ../development/libraries/pixman { };
   cairomm = callPackage ../development/libraries/cairomm { };
   cairo_1_12_2 = callPackage ../development/libraries/cairo/1.12.2.nix { };
 
-  pango = callPackage ../development/libraries/pango/1.30.x.nix { };
+  pango = callPackage ../development/libraries/pango { };
   pangomm = callPackage ../development/libraries/pangomm/2.28.x.nix { };
 
-  gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf/2.26.x.nix { };
+  pangox_compat = callPackage ../development/libraries/pangox-compat { };
+
+  gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf { };
 
-  gtk2 = callPackage ../development/libraries/gtk+/2.24.x.nix { };
-  gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3.2.x.nix { });
+  gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { };
+  gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3-default.nix {
+    inherit (gnome3) at_spi2_atk;
+  });
   gtk = pkgs.gtk2;
 
   gtkmm = callPackage ../development/libraries/gtkmm/2.x.nix { };
@@ -4133,8 +4136,7 @@ let
 
   inteltbb = callPackage ../development/libraries/intel-tbb { };
 
-  intltool = gnome.intltool;
-  intltool_standalone = callPackage ../development/tools/misc/intltool {};
+  intltool = callPackage ../development/tools/misc/intltool { };
 
   irrlicht3843 = callPackage ../development/libraries/irrlicht { };
 
@@ -4240,7 +4242,7 @@ let
 
   libcm = callPackage ../development/libraries/libcm { };
 
-  libcroco = callPackage ../development/libraries/libcroco {};
+  inherit (gnome3) libcroco;
 
   libctemplate = callPackage ../development/libraries/libctemplate { };
 
@@ -4310,12 +4312,10 @@ let
   libgig = callPackage ../development/libraries/libgig { };
 
   libgnome_keyring = callPackage ../development/libraries/libgnome-keyring { };
-  libgnome_keyring3 = callPackage ../development/libraries/libgnome-keyring/3.x.nix { };
+  libgnome_keyring3 = gnome3.libgnome_keyring;
 
   libgtop = callPackage ../development/libraries/libgtop {};
 
-  libgweather = callPackage ../development/libraries/libgweather {};
-
   liblo = callPackage ../development/libraries/liblo { };
 
   liblrdf = librdf;
@@ -4410,9 +4410,7 @@ let
 
   libspectre = callPackage ../development/libraries/libspectre { };
 
-  libgsf = callPackage ../development/libraries/libgsf {
-    inherit (gnome) gnome_vfs libbonobo;
-  };
+  libgsf = callPackage ../development/libraries/libgsf { };
 
   libiconv = callPackage ../development/libraries/libiconv { };
 
@@ -4440,9 +4438,9 @@ let
 
   libiptcdata = callPackage ../development/libraries/libiptcdata { };
 
-  libjpeg = callPackage ../development/libraries/libjpeg { };
-
+  libjpeg_original = callPackage ../development/libraries/libjpeg { };
   libjpeg_turbo = callPackage ../development/libraries/libjpeg-turbo { };
+  libjpeg = if stdenv.isDarwin then libjpeg_original else libjpeg_turbo;
 
   libjpeg62 = callPackage ../development/libraries/libjpeg/62.nix {
     libtool = libtool_1_5;
@@ -4535,6 +4533,9 @@ let
   libpng = callPackage ../development/libraries/libpng { };
   libpng_apng = callPackage ../development/libraries/libpng/libpng-apng.nix { };
   libpng12 = callPackage ../development/libraries/libpng/12.nix { };
+  libpng15 = callPackage ../development/libraries/libpng/15.nix { };
+
+  libpaper = callPackage ../development/libraries/libpaper { };
 
   libproxy = callPackage ../development/libraries/libproxy { };
 
@@ -4542,7 +4543,9 @@ let
 
   libqalculate = callPackage ../development/libraries/libqalculate { };
 
-  librsvg = callPackage ../development/libraries/librsvg { };
+  librsvg = callPackage ../development/libraries/librsvg {
+    gtk2 = null; gtk3 = null; # neither gtk version by default
+  };
 
   librsync = callPackage ../development/libraries/librsync { };
 
@@ -4603,7 +4606,7 @@ let
 
   libva = callPackage ../development/libraries/libva { };
 
-  libvdpau = callPackage ../development/libraries/libvdpau { inherit (xlibs) libX11; };
+  libvdpau = callPackage ../development/libraries/libvdpau { };
 
   libvirt = callPackage ../development/libraries/libvirt { };
 
@@ -4641,6 +4644,8 @@ let
 
   libxdg_basedir = callPackage ../development/libraries/libxdg-basedir { };
 
+  libxkbcommon = callPackage ../development/libraries/libxkbcommon { };
+
   libxklavier = callPackage ../development/libraries/libxklavier { };
 
   libxmi = callPackage ../development/libraries/libxmi { };
@@ -4678,13 +4683,14 @@ let
 
   liquidwar = builderDefsPackage ../games/liquidwar {
     inherit (xlibs) xproto libX11 libXrender;
-    inherit gmp mesa libjpeg libpng
+    inherit gmp mesa libjpeg
       expat gettext perl
       SDL SDL_image SDL_mixer SDL_ttf
       curl sqlite
       libogg libvorbis
       ;
-   guile = guile_1_8;
+    guile = guile_1_8;
+    libpng = libpng15; # 0.0.13 needs libpng 1.2--1.5
   };
 
   log4cpp = callPackage ../development/libraries/log4cpp { };
@@ -4704,11 +4710,15 @@ let
 
   mesaSupported = lib.elem system lib.platforms.mesaPlatforms;
 
+  mesa_noglu = callPackage ../development/libraries/mesa { };
+  mesa_glu = callPackage ../development/libraries/mesa-glu { };
+  mesa = if stdenv.isDarwin then darwinX11AndOpenGL
+    else buildEnv {
+      name = "mesa-${mesa_noglu.version}";
+      paths = [ mesa_glu mesa_noglu ];
+    };
   darwinX11AndOpenGL = callPackage ../os-specific/darwin/native-x11-and-opengl { };
 
-  mesa = if stdenv.isDarwin then darwinX11AndOpenGL else
-    callPackage ../development/libraries/mesa { };
-
   metaEnvironment = recurseIntoAttrs (let callPackage = newScope pkgs.metaEnvironment; in rec {
     sdfLibrary    = callPackage ../development/libraries/sdf-library { aterm = aterm28; };
     toolbuslib    = callPackage ../development/libraries/toolbuslib { aterm = aterm28; inherit (windows) w32api; };
@@ -4901,14 +4911,14 @@ let
 
   policykit = callPackage ../development/libraries/policykit { };
 
-  poppler = callPackage ../development/libraries/poppler {
-    gtkSupport = true;
-    qt4Support = false;
-  };
+  poppler = let popplers = callPackage ../development/libraries/poppler { };
+    in popplers // popplers.poppler_glib;
+  popplerQt4 = poppler.poppler_qt4;
 
-  popplerQt4 = poppler.override {
-    gtkSupport = false;
-    qt4Support = true;
+  poppler_0_18 = callPackage ../development/libraries/poppler/0.18.nix {
+    glibSupport = true;
+    gtk3Support = false;
+    qt4Support  = false;
   };
 
   popt = callPackage ../development/libraries/popt { };
@@ -5762,11 +5772,12 @@ let
   xinetd = callPackage ../servers/xinetd { };
 
   xorg = recurseIntoAttrs (import ../servers/x11/xorg/default.nix {
-    inherit fetchurl fetchsvn stdenv pkgconfig freetype fontconfig
+    inherit fetchurl fetchsvn stdenv pkgconfig intltool freetype fontconfig
       libxslt expat libdrm libpng zlib perl mesa
       xkeyboard_config dbus libuuid openssl gperf m4
       autoconf libtool xmlto asciidoc udev flex bison python mtdev;
     automake = automake110x;
+    pixman = pixman_cairo;
   });
 
   xorgReplacements = callPackage ../servers/x11/xorg/replacements.nix { };
@@ -6296,7 +6307,9 @@ let
 
   nettools = callPackage ../os-specific/linux/net-tools { };
 
-  neverball = callPackage ../games/neverball { };
+  neverball = callPackage ../games/neverball {
+    libpng = libpng15;
+  };
 
   numactl = callPackage ../os-specific/linux/numactl { };
 
@@ -6625,7 +6638,7 @@ let
 
   gnome_user_docs = callPackage ../data/documentation/gnome-user-docs { };
 
-  gsettings_desktop_schemas = callPackage ../data/misc/gsettings-desktop-schemas {};
+  inherit (gnome3) gsettings_desktop_schemas;
 
   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
 
@@ -6863,7 +6876,6 @@ let
   compiz = callPackage ../applications/window-managers/compiz {
     inherit (gnome) GConf ORBit2 metacity;
     boost = boost149; # https://bugs.launchpad.net/compiz/+bug/1131864
-    intltool = intltool_standalone;
   };
 
   coriander = callPackage ../applications/video/coriander {
@@ -7111,13 +7123,7 @@ let
 
   keepassx = callPackage ../applications/misc/keepassx { };
 
-  # FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
-  # `share/icons/hicolor/icon-theme.cache'.  Arbitrarily give this one a
-  # higher priority.
-  evince = hiPrio (callPackage ../applications/misc/evince {
-    inherit (gnome) gnomedocutils gnomeicontheme libgnome
-      libgnomeui libglade scrollkeeper;
-  });
+  inherit (gnome3) evince;
 
   evolution_data_server = newScope (gnome) ../servers/evolution-data-server { };
 
@@ -7275,8 +7281,8 @@ let
   gmrun = callPackage ../applications/misc/gmrun {};
 
   gnucash = callPackage ../applications/office/gnucash {
-    inherit (gnome) libgnomeui libgtkhtml gtkhtml libbonoboui libgnomeprint;
-    gconf = gnome.GConf;
+    inherit (gnome2) libgnomeui libgtkhtml gtkhtml libbonoboui libgnomeprint libglade libart_lgpl;
+    gconf = gnome2.GConf;
     guile = guile_1_8;
     slibGuile = slibGuile.override { scheme = guile_1_8; };
   };
@@ -7502,7 +7508,7 @@ let
   jwm = callPackage ../applications/window-managers/jwm { };
 
   k3d = callPackage ../applications/graphics/k3d {
-    inherit (pkgs.gnome) gtkglext;
+    inherit (pkgs.gnome2) gtkglext;
   };
 
   keepnote = callPackage ../applications/office/keepnote {
@@ -7554,6 +7560,7 @@ let
         freefont_ttf xorg.fontmiscmisc xorg.fontbhttf
       ];
     };
+    poppler = poppler_0_18;
   };
 
   lingot = callPackage ../applications/audio/lingot {
@@ -8188,6 +8195,12 @@ let
 
   weechat = callPackage ../applications/networking/irc/weechat { };
 
+  weston = callPackage ../applications/window-managers/weston {
+    cairo = cairo.override {
+      glSupport = true;
+    };
+  };
+    
   wings = callPackage ../applications/graphics/wings {
     erlang = erlangR14B04;
     esdl = esdl.override { erlang = erlangR14B04; };
@@ -8673,6 +8686,11 @@ let
     inherit (pkgs) libsoup libwnck gtk_doc gnome_doc_utils;
   };
 
+  gnome3 = callPackage ../desktops/gnome-3 {
+    callPackage = pkgs.newScope pkgs.gnome3;
+    self = pkgs.gnome3;
+  };
+
   gnome = recurseIntoAttrs gnome2;
 
   kde4 = recurseIntoAttrs pkgs.kde48;
@@ -8817,6 +8835,8 @@ let
 
   oxygen_gtk = callPackage ../misc/themes/gtk2/oxygen-gtk { };
 
+  gnome_themes_standard = callPackage ../misc/themes/gnome-themes-standard { };
+
   xfce = xfce4_10;
   xfce4_10 = recurseIntoAttrs (import ../desktops/xfce { inherit pkgs newScope; });
 
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 4b5bad0761d0..ad2f8e901c14 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -372,7 +372,6 @@ in
   gcj44 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gcj46 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gcl = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  GConf3 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdb = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdbCross = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdk_pixbuf = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
@@ -1032,7 +1031,6 @@ in
   libgpod = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libgsf = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libgtop = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  libgweather = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libimobiledevice = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libinfinity = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   liblapack = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
@@ -1933,7 +1931,6 @@ in
     xmessage = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xmodmap = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xorgserver = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-    xorgserver_1_13_0 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xpr = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xprop = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
     xrandr = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index 9c85cb381b6e..cde219eafe6a 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -200,6 +200,7 @@ with (import ./release-lib.nix);
 
   dbus_all = {
     libs = linux;
+    daemon = linux;
     tools = linux;
   };