summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce.nix3
-rw-r--r--pkgs/applications/audio/gmpc/default.nix18
-rw-r--r--pkgs/applications/graphics/ImageMagick/default.nix4
-rw-r--r--pkgs/applications/window-managers/weston/default.nix21
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop.nix41
-rw-r--r--pkgs/desktops/cinnamon/cjs.nix40
-rw-r--r--pkgs/desktops/gnome-2/default.nix6
-rw-r--r--pkgs/desktops/gnome-2/desktop/gvfs/default.nix21
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-common/default.nix9
-rw-r--r--pkgs/desktops/gnome-2/platform/libunique/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-core/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gvfs/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/libcroco/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd.nix4
-rw-r--r--pkgs/desktops/xfce/common.nix76
-rw-r--r--pkgs/development/compilers/llvm/default.nix3
-rw-r--r--pkgs/development/interpreters/spidermonkey/185-1.0.0.nix25
-rw-r--r--pkgs/development/libraries/atk/default.nix12
-rw-r--r--pkgs/development/libraries/clutter/default.nix14
-rw-r--r--pkgs/development/libraries/cogl/default.nix19
-rw-r--r--pkgs/development/libraries/dbus/default.nix4
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix14
-rw-r--r--pkgs/development/libraries/glib/default.nix16
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix10
-rw-r--r--pkgs/development/libraries/gtk+/3.x.nix19
-rw-r--r--pkgs/development/libraries/gvfs/default.nix10
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix25
-rw-r--r--pkgs/development/libraries/icu/default.nix8
-rw-r--r--pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--pkgs/development/libraries/libgsf/default.nix4
-rw-r--r--pkgs/development/libraries/libnotify/default.nix4
-rw-r--r--pkgs/development/libraries/libpng/default.nix10
-rw-r--r--pkgs/development/libraries/librsvg/default.nix2
-rw-r--r--pkgs/development/libraries/libssh/default.nix6
-rw-r--r--pkgs/development/libraries/libunique/default.nix1
-rw-r--r--pkgs/development/libraries/libusb1/default.nix7
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix6
-rw-r--r--pkgs/development/libraries/libwnck/3.x.nix2
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix10
-rw-r--r--pkgs/development/libraries/mesa/default.nix74
-rw-r--r--pkgs/development/libraries/mesa/fix-rounding.patch357
-rw-r--r--pkgs/development/libraries/pixman/default.nix4
-rw-r--r--pkgs/development/libraries/silgraphite/graphite2.nix8
-rw-r--r--pkgs/development/libraries/wayland/default.nix4
-rw-r--r--pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix52
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix8
-rw-r--r--pkgs/servers/x11/xorg/tarballs-7.7.list16
-rw-r--r--pkgs/servers/x11/xorg/xorgserver-cve-2013-4396.patch75
-rw-r--r--pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch34
-rw-r--r--pkgs/tools/X11/vdpauinfo/default.nix6
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix1
-rw-r--r--pkgs/tools/misc/desktop-file-utils/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix24
56 files changed, 388 insertions, 817 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index d20010c70a6..f06544fecc7 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -72,7 +72,8 @@ in
         pkgs.xfce.thunar_volman
         pkgs.xfce.gvfs
         pkgs.xfce.xfce4_appfinder
-        pkgs.xfce.tumbler
+        pkgs.xfce.tumbler       # found via dbus
+        pkgs.xfce.xfce4notifyd  # found via dbus
       ]
       ++ optional config.powerManagement.enable pkgs.xfce.xfce4_power_manager;
 
diff --git a/pkgs/applications/audio/gmpc/default.nix b/pkgs/applications/audio/gmpc/default.nix
index 10a2f0dcee9..728155c02bd 100644
--- a/pkgs/applications/audio/gmpc/default.nix
+++ b/pkgs/applications/audio/gmpc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, libtool, intltool, pkgconfig, glib
-, gtk, curl, mpd_clientlib, libsoup, gob2, vala
+, gtk, curl, mpd_clientlib, libsoup, gob2, vala, libunique
 }:
 
 stdenv.mkDerivation rec {
@@ -15,22 +15,6 @@ stdenv.mkDerivation rec {
     buildInputs = [ pkgconfig glib ];
   };
 
-  libunique = stdenv.mkDerivation {
-    name = "libunique-1.1.6";
-    src = fetchurl {
-      url = http://ftp.gnome.org/pub/GNOME/sources/libunique/1.1/libunique-1.1.6.tar.gz;
-      sha256 = "2cb918dde3554228a211925ba6165a661fd782394bd74dfe15e3853dc9c573ea";
-    };
-    buildInputs = [ pkgconfig glib gtk ];
-
-    patches = [
-      (fetchurl {
-        url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/remove_G_CONST_RETURN.patch?h=packages/libunique";
-        sha256 = "0da2qi7cyyax4rr1p25drlhk360h8d3lapgypi5w95wj9k6bykhr";
-      })
-    ];
-  };
-
   src = fetchurl {
     url = "http://download.sarine.nl/Programs/gmpc/11.8/gmpc-11.8.16.tar.gz";
     sha256 = "0b3bnxf98i5lhjyljvgxgx9xmb6p46cn3a9cccrng14nagri9556";
diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index aa0bdbfe56c..a5d37c89c95 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -18,14 +18,14 @@
 }:
 
 let
-  version = "6.8.7-5";
+  version = "6.8.7-6";
 in
 stdenv.mkDerivation rec {
   name = "ImageMagick-${version}";
 
   src = fetchurl {
     url = "mirror://imagemagick/${name}.tar.xz";
-    sha256 = "1cn1kg7scs6r7r00qlqirhnmqjnmyczbidab3vgqarw9qszh2ri6";
+    sha256 = "0cbfhk184kxdxz5czyyqxac29mbfiahygjji6k97z6hp8ngnqlvh";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/window-managers/weston/default.nix b/pkgs/applications/window-managers/weston/default.nix
index 2c1044d6937..913235287ac 100644
--- a/pkgs/applications/window-managers/weston/default.nix
+++ b/pkgs/applications/window-managers/weston/default.nix
@@ -2,30 +2,31 @@
 , cairo, libxcb, libXcursor, x11, udev, libdrm, mtdev
 , libjpeg, pam, autoconf, automake, libtool }:
 
-let version = "1.0.5"; in
+let version = "1.3.1"; in
 
 stdenv.mkDerivation rec {
   name = "weston-${version}";
 
   src = fetchurl {
     url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
-    sha256 = "0g2k82pnlxl8b70ykazj7kn8xffjfsmgcgx427qdrm4083z2hgm0";
+    sha256 = "1isvh66irrz707r69495767n5yxp07dvy0xx6mj1mbj1n4s1657p";
   };
 
-  buildInputs = [ pkgconfig wayland mesa libxkbcommon
-    cairo libxcb libXcursor x11 udev libdrm mtdev
-    libjpeg pam autoconf automake libtool ];
+  buildInputs = [
+    pkgconfig wayland mesa libxkbcommon
+    cairo libxcb libXcursor x11 udev libdrm mtdev libjpeg pam
+  ];
 
-  preConfigure = "autoreconf -vfi";
+  NIX_CFLAGS_COMPILE = "-I${libdrm}/include/libdrm";
 
-  # prevent install target to chown root weston-launch, which fails
-  configureFlags = ''
-    --disable-setuid-install
-  '';
+  configureFlags = [
+    "--disable-setuid-install" # prevent install target to chown root weston-launch, which fails
+  ];
 
   meta = {
     description = "Reference implementation of a Wayland compositor";
     homepage = http://wayland.freedesktop.org/;
     license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop.nix b/pkgs/desktops/cinnamon/cinnamon-desktop.nix
new file mode 100644
index 00000000000..d3cf04e835d
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, intltool
+, glib, gobjectIntrospection, gdk_pixbuf, gtk3, gnome_common
+, xorg, xkeyboard_config
+}:
+
+let
+  version = "2.0.4";
+in
+stdenv.mkDerivation {
+  name = "cinnamon-desktop-${version}";
+
+  src = fetchurl {
+    url = "http://github.com/linuxmint/cinnamon-desktop/archive/${version}.tar.gz";
+    sha256 = "1cywin712558pv58c0cr73m25hfcv5x8pv5frvqjr9gwr2gpi6h3";
+  };
+
+  NIX_CFLAGS_COMPILE = "-I${glib}/include/gio-unix-2.0";
+
+  buildInputs = with xorg; [
+    pkgconfig autoreconfHook intltool
+    glib gobjectIntrospection gdk_pixbuf gtk3 gnome_common
+    xkeyboard_config libxkbfile libX11 libXrandr libXext
+  ];
+
+  meta = {
+    homepage = "http://cinnamon.linuxmint.com";
+    description = "Library and data for various Cinnamon modules";
+
+    longDescription = ''
+       The libcinnamon-desktop library provides API shared by several applications
+       on the desktop, but that cannot live in the platform for various
+       reasons. There is no API or ABI guarantee, although we are doing our
+       best to provide stability. Documentation for the API is available with
+       gtk-doc.
+    '';
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.roelof ];
+  };
+}
+
diff --git a/pkgs/desktops/cinnamon/cjs.nix b/pkgs/desktops/cinnamon/cjs.nix
new file mode 100644
index 00000000000..3747262cdf4
--- /dev/null
+++ b/pkgs/desktops/cinnamon/cjs.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, pkgconfig, autoreconfHook, python
+, dbus_glib, cairo, spidermonkey_185, gobjectIntrospection
+}:
+
+let
+  version="2.0.0";
+in
+stdenv.mkDerivation rec {
+  name = "cjs-${version}";
+
+  src = fetchurl {
+    url = "http://github.com/linuxmint/cjs/archive/${version}.tar.gz";
+    sha256 = "16iazd5h2z27v9jxs4a8imwls5c1c690wk7i05r5ds3c3r4nrsig";
+  };
+
+  buildInputs = [
+    pkgconfig autoreconfHook python
+    dbus_glib cairo spidermonkey_185
+    gobjectIntrospection
+  ];
+
+  preBuild = "patchShebangs ./scripts";
+
+  meta = {
+    homepage = "http://cinnamon.linuxmint.com";
+    description = "JavaScript bindings for Cinnamon" ;
+
+    longDescription = ''
+       This module contains JavaScript bindings based on gobject-introspection.
+
+       Because JavaScript is pretty free-form, consistent coding style and unit tests
+       are critical to give it some structure and keep it readable.
+       We propose that all GNOME usage of JavaScript conform to the style guide
+       in doc/Style_Guide.txt to help keep things sane.
+    '';
+
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.roelof ];
+  };
+}
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 3d76ba72dae..cecd56ad4f2 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, self, stdenv, gettext, overrides ? {} }:
+{ callPackage, self, stdenv, gettext, gvfs, libunique, overrides ? {} }:
 {
   __overrides = overrides;
 
@@ -67,7 +67,7 @@
   startup_notification = callPackage ./platform/startup-notification { };
 
   # Required for nautilus
-  libunique = callPackage ./platform/libunique { };
+  inherit (libunique);
 
   gtkglext = callPackage ./platform/gtkglext { };
 
@@ -79,7 +79,7 @@
 
   libgweather = callPackage ./desktop/libgweather { };
 
-  gvfs = callPackage ./desktop/gvfs { };
+  gvfs = gvfs.override { gnome = self; };
 
   libgnomekbd = callPackage ./desktop/libgnomekbd { };
 
diff --git a/pkgs/desktops/gnome-2/desktop/gvfs/default.nix b/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
deleted file mode 100644
index 9e7949047c7..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gvfs/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ 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.1";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
-    sha256 = "0af86cd7ee7b6daca144776bdf12f2f30d3e18fdd70b4da58e1a68cea4f6716a";
-  };
-
-  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-2/platform/gnome-common/default.nix b/pkgs/desktops/gnome-2/platform/gnome-common/default.nix
index 548783abf79..929ed44b752 100644
--- a/pkgs/desktops/gnome-2/platform/gnome-common/default.nix
+++ b/pkgs/desktops/gnome-2/platform/gnome-common/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl_gnome }:
+{ stdenv, fetchurl, fetchurl_gnome, which }:
 
 stdenv.mkDerivation rec {
   name = src.pkgname;
@@ -8,4 +8,11 @@ stdenv.mkDerivation rec {
     major = "2"; minor = "34"; patchlevel = "0";
     sha256 = "1pz13mpp09q5s3bikm8ml92s1g0scihsm4iipqv1ql3mp6d4z73s";
   };
+
+  propagatedBuildInputs = [ which ]; # autogen.sh which is using gnome_common tends to require which
+
+  patches = [(fetchurl {
+    url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935";
+    sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl";
+  })];
 }
diff --git a/pkgs/desktops/gnome-2/platform/libunique/default.nix b/pkgs/desktops/gnome-2/platform/libunique/default.nix
deleted file mode 100644
index 6b9cee80042..00000000000
--- a/pkgs/desktops/gnome-2/platform/libunique/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, fetchurl_gnome, pkgconfig, gtk}:
-
-stdenv.mkDerivation rec {
-  name = src.pkgname;
-
-  src = fetchurl_gnome {
-    project = "libunique";
-    major = "1"; minor = "1"; patchlevel = "6";
-    sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk ];
-}
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
index ab25845c413..aaea1b2e966 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -2,14 +2,14 @@
 , intltool, dbus_glib, at_spi2_core, libSM }:
 
 stdenv.mkDerivation rec {
-  versionMajor = "2.8";
-  versionMinor = "1";
+  versionMajor = "2.10";
+  versionMinor = "2";
   moduleName   = "at-spi2-atk";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "01pxfnksixrjj27ivllpla54r6nkwsjj34acb0phmp76zna9nrgb";
+    sha256 = "1xfh89lydl8d18dhnzwvzcsyyybr5q3ik001qgq520l3qh8shj73";
   };
 
   buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
index 2d433486677..e3aee3f9b32 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -2,15 +2,14 @@
 , libX11, xextproto, libSM, libICE, libXtst, libXi }:
 
 stdenv.mkDerivation rec {
-
-  versionMajor = "2.8";
-  versionMinor = "0";
+  versionMajor = "2.10";
+  versionMinor = "2";
   moduleName   = "at-spi2-core";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "0n64h6j10sn90ds9y70d9wlvvsbwnrym9fm0cyjxb0zmqw7s6q8q";
+    sha256 = "1qfxlbmbaihgmqgkxnywnji9wkbvn8pvbv20x5glv3jc9zw5innk";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/core/gvfs/default.nix b/pkgs/desktops/gnome-3/core/gvfs/default.nix
deleted file mode 100644
index 1eea518c4b7..00000000000
--- a/pkgs/desktops/gnome-3/core/gvfs/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ 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
index 079a6f169b2..2cf785b8cca 100644
--- a/pkgs/desktops/gnome-3/core/libcroco/default.nix
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libxml2, glib }:
 
 stdenv.mkDerivation rec {
-  name = "libcroco-0.6.6"; # 3.6.2 release
+  name = "libcroco-0.6.8";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
-    sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j";
+    sha256 = "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa";
   };
 
   configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 48f37f6ba9d..d3e575a7d27 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -33,7 +33,7 @@ rec {
 
   gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
 
-  gvfs = callPackage ./core/gvfs { };
+  gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; };
 
   libcroco = callPackage ./core/libcroco {};
 
diff --git a/pkgs/desktops/xfce/applications/xfce4-notifyd.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
index 5873ef9cd68..ace7aa7a2c7 100644
--- a/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   p_name  = "xfce4-notifyd";
   ver_maj = "0.2";
-  ver_min = "3";
+  ver_min = "4";
 
   src = fetchurl {
     url = "mirror://xfce/src/apps/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "0fx6z89rxs6ypb8bb6l1pg8fdbxn995fgs413sbhnaxjkm6gch6x";
+    sha256 = "1l6fpfk0fkizdx7vwbyjdyzzj5i2ng8pf7r8j49nv0cnjhpxczlc";
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
diff --git a/pkgs/desktops/xfce/common.nix b/pkgs/desktops/xfce/common.nix
deleted file mode 100644
index 9f048b18c06..00000000000
--- a/pkgs/desktops/xfce/common.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{ 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              { };
-    thunar_archive_plugin  = callPackage ./core/thunar-archive-plugin.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    { };
-    xfce4_xkb_plugin        = callPackage ./panel-plugins/xfce4-xkb-plugin.nix        { };
-    xfce4_datetime_plugin   = callPackage ./panel-plugins/xfce4-datetime-plugin.nix   { };
-
-  };
-}
-
diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix
index abd3277d919..bed6bf1fc13 100644
--- a/pkgs/development/compilers/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
     "-DCMAKE_BUILD_TYPE=Release"
     "-DLLVM_ENABLE_FFI=ON"
     "-DLLVM_BINUTILS_INCDIR=${binutils_gold}/include"
-  ] ++ lib.optional (!isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ];
+    "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=R600" # for mesa
+  ] ++ lib.optional (!isDarwin) "-DBUILD_SHARED_LIBS=ON";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix b/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix
index 1c0d77345b7..d4af39ea16b 100644
--- a/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix
+++ b/pkgs/development/interpreters/spidermonkey/185-1.0.0.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, autoconf213, nspr, perl, python, readline, zip }:
+{ stdenv, fetchurl, pkgconfig, nspr, perl, python, zip }:
 
 stdenv.mkDerivation rec {
   version = "185-1.0.0";
@@ -11,21 +11,30 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ nspr ];
 
-  buildInputs = [ pkgconfig autoconf213 perl python readline zip ];
+  buildInputs = [ pkgconfig perl python zip ];
 
   postUnpack = "sourceRoot=\${sourceRoot}/js/src";
 
   preConfigure = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${nspr}/include/nspr"
     export LIBXUL_DIST=$out
-    autoconf
   '';
 
+  configureFlags = [ "--enable-threadsafe" "--with-system-nspr" ];
+
+  # hack around a make problem, see https://github.com/NixOS/nixpkgs/issues/1279#issuecomment-29547393
+  preBuild = "touch -- {.,shell,jsapi-tests}/{-lpthread,-ldl}";
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  preCheck = "rm jit-test/tests/sunspider/check-date-format-tofte.js"; # https://bugzil.la/600522
+
   meta = with stdenv.lib; {
-      description = "Mozilla's JavaScript engine written in C/C++";
-      homepage = https://developer.mozilla.org/en/SpiderMonkey;
-      # TODO: MPL/GPL/LGPL tri-license.
-      maintainers = [ maintainers.goibhniu ];
+    description = "Mozilla's JavaScript engine written in C/C++";
+    homepage = https://developer.mozilla.org/en/SpiderMonkey;
+    # TODO: MPL/GPL/LGPL tri-license.
+    maintainers = [ maintainers.goibhniu ];
   };
-
 }
+
diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index b1e8a008029..a93aaa5a43f 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,11 +1,15 @@
 { stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }:
 
+let
+  ver_maj = "2.10";
+  ver_min = "0";
+in
 stdenv.mkDerivation rec {
-  name = "atk-2.8.0";
+  name = "atk-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/atk/2.8/${name}.tar.xz";
-    sha256 = "1x3dd3hg9l1j9dq70xwph13vxdp6a9wbfcnryryf1wr6c8bij9dj";
+    url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz";
+    sha256 = "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3";
   };
 
   buildInputs = libintlOrEmpty;
@@ -14,6 +18,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ glib gobjectIntrospection /*ToDo: why propagate*/ ];
 
+  #doCheck = true; # no checks in there (2.10.0)
+
   postInstall = "rm -rf $out/share/gtk-doc";
 
   meta = {
diff --git a/pkgs/development/libraries/clutter/default.nix b/pkgs/development/libraries/clutter/default.nix
index 33bc196143b..fbfa6bc711b 100644
--- a/pkgs/development/libraries/clutter/default.nix
+++ b/pkgs/development/libraries/clutter/default.nix
@@ -1,12 +1,16 @@
 { stdenv, fetchurl, glib, pkgconfig, mesa, libX11, libXext, libXfixes
 , libXdamage, libXcomposite, libXi, cogl, pango, atk, json_glib }:
 
-stdenv.mkDerivation {
-  name = "clutter-1.8.2";
+let
+  ver_maj = "1.16";
+  ver_min = "2";
+in
+stdenv.mkDerivation rec {
+  name = "clutter-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = mirror://gnome/sources/clutter/1.8/clutter-1.8.2.tar.xz;
-    sha256 = "0bzsvnharawfg525lpavrp55mq4aih5nb01dwwqwnccg8hk9z2fw";
+    url = "mirror://gnome/sources/clutter/${ver_maj}/${name}.tar.xz";
+    sha256 = "0hnz6fnrkc7ixrm2x83sxyha32p9896d7ilzhvxwfgzlh26fidqc";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -17,6 +21,8 @@ stdenv.mkDerivation {
 
   configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
 
+  #doCheck = true; # no tests possible without a display
+
   meta = {
     description = "Clutter, a library for creating fast, dynamic graphical user interfaces";
 
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index abb92f7b08b..46a46773810 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -1,19 +1,22 @@
-{ stdenv, fetchurl, pkgconfig, mesa, glib, gdk_pixbuf, libXfixes, libXcomposite
-, libXdamage, libintlOrEmpty
+{ stdenv, fetchurl, pkgconfig, mesa, glib, gdk_pixbuf, xorg, libintlOrEmpty
 , pangoSupport ? true, pango, cairo }:
 
+let
+  ver_maj = "1.16";
+  ver_min = "0";
+in
 stdenv.mkDerivation rec {
-  name = "cogl-1.8.2";
+  name = "cogl-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = mirror://gnome/sources/cogl/1.8/cogl-1.8.2.tar.xz;
-    sha256 = "1ix87hz3qxqysqwx58wbc46lzchlmfs08fjzbf3l6mmsqj8gs9pc";
+    url = "mirror://gnome/sources/cogl/${ver_maj}/${name}.tar.xz";
+    sha256 = "153014xygwyz9wmvgfwjxncqgc0qqvcy6b3jx1zdl3q5d9iw9hkm";
   };
 
   nativeBuildInputs = [ pkgconfig ];
 
-  propagatedBuildInputs =
-    [ mesa glib gdk_pixbuf libXfixes libXcomposite libXdamage ]
+  propagatedBuildInputs = with xorg;
+    [ mesa glib gdk_pixbuf libXfixes libXcomposite libXdamage libXrandr ]
     ++ libintlOrEmpty;
 
   buildInputs = stdenv.lib.optionals pangoSupport [ pango cairo ];
@@ -24,6 +27,8 @@ stdenv.mkDerivation rec {
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
 
+  #doCheck = true; # all tests fail (no idea why)
+
   meta = with stdenv.lib; {
     description = "A small open source library for using 3D graphics hardware for rendering";
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index 8ec47f86e34..794128d054a 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -3,8 +3,8 @@
 , libX11, libICE, libSM, useX11 ? (stdenv.isLinux || stdenv.isDarwin) }:
 
 let
-  version = "1.6.14"; # 1.7.* isn't recommended, even for gnome 3.8
-  sha256 = "0v7mcxwfmpjf7vndnvf2kf02al61clrxs36bqii20s0lawfh2xjn";
+  version = "1.6.16"; # 1.7.* isn't recommended, even for gnome 3.8
+  sha256 = "0wrmh5azszb54zpy7d0zjsy456khcv8yc19ivqrygkdg7a3l4gs6";
 
   inherit (stdenv) lib;
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 52d50369dc7..0daae5fda2e 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -1,12 +1,16 @@
-{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11, xz
+{ stdenv, fetchurl, pkgconfig, glib, libtiff, libjpeg, libpng, libX11
 , jasper, libintlOrEmpty, gobjectIntrospection }:
 
+let
+  ver_maj = "2.30";
+  ver_min = "1";
+in
 stdenv.mkDerivation rec {
-  name = "gdk-pixbuf-2.28.2";
+  name = "gdk-pixbuf-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gdk-pixbuf/2.28/${name}.tar.xz";
-    sha256 = "05s6ksvy1yan6h6zny9n3bmvygcnzma6ljl6i0z9cci2xg116c8q";
+    url = "mirror://gnome/sources/gdk-pixbuf/${ver_maj}/${name}.tar.xz";
+    sha256 = "0c4dxsnpqc46liqjlh3w2qmrzv0b89ksn15z2f9h13362lg3n9m3";
   };
 
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
@@ -20,6 +24,8 @@ stdenv.mkDerivation rec {
     + stdenv.lib.optionalString (gobjectIntrospection != null) " --enable-introspection=yes"
     ;
 
+  doCheck = false; # broken animation tester
+
   postInstall = "rm -rf $out/share/gtk-doc";
 
   meta = {
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 119584deb1e..e7bae0100a4 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -10,6 +10,13 @@
 #     Possible solution: disable compilation of this example somehow
 #     Reminder: add 'sed -e 's@python2\.[0-9]@python@' -i
 #       $out/bin/gtester-report' to postInstall if this is solved
+/*
+  * Use --enable-installed-tests for GNOME-related packages,
+      and use them as a separately installed tests runned by Hydra
+      (they should test an already installed package)
+      https://wiki.gnome.org/GnomeGoals/InstalledTests
+  * Support org.freedesktop.Application, including D-Bus activation from desktop files
+*/
 
 let
   # Some packages don't get "Cflags" from pkgconfig correctly
@@ -24,15 +31,18 @@ let
     done
     ln -sr -t "$out/include/" "$out"/lib/*/include/* 2>/dev/null || true
   '';
+
+  ver_maj = "2.38";
+  ver_min = "2";
 in
 with { inherit (stdenv.lib) optionalString; };
 
 stdenv.mkDerivation rec {
-  name = "glib-2.36.4";
+  name = "glib-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glib/2.36/${name}.tar.xz";
-    sha256 = "0zmdbkg2yjyxdl72w34lxvrssbzqzdficskkfn22s0994dad4m7n";
+    url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz";
+    sha256 = "0d2px8m77603s5pm3md4bcm5d0ksbcsb6ik1w52hjslnq1a9hsh5";
   };
 
   # configure script looks for d-bus but it is (probably) only needed for tests
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 6a2caa28136..da746969ed7 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -4,12 +4,16 @@
 # it may be worth thinking about using multiple derivation outputs
 # In that case its about 6MB which could be separated
 
+let
+  ver_maj = "1.38";
+  ver_min = "0";
+in
 stdenv.mkDerivation rec {
-  name = "gobject-introspection-1.36.0";
+  name = "gobject-introspection-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gobject-introspection/1.36/${name}.tar.xz";
-    sha256 = "10v3idh489vra7pjn1g8f844nnl6719zgkgq3dv38xcf8afnvrz3";
+    url = "mirror://gnome/sources/gobject-introspection/${ver_maj}/${name}.tar.xz";
+    sha256 = "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m";
   };
 
   buildInputs = [ flex bison glib pkgconfig python ]
diff --git a/pkgs/development/libraries/gtk+/3.x.nix b/pkgs/development/libraries/gtk+/3.x.nix
index 76424d79d7a..cea98bbc4b0 100644
--- a/pkgs/development/libraries/gtk+/3.x.nix
+++ b/pkgs/development/libraries/gtk+/3.x.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, gettext
-, expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, xlibs, x11, gobjectIntrospection
+{ stdenv, fetchurl, pkgconfig, gettext, perl
+, expat, glib, cairo, pango, gdk_pixbuf, atk, at_spi2_atk, gobjectIntrospection
+, xlibs, x11, wayland, libxkbcommon
 , xineramaSupport ? stdenv.isLinux
 , cupsSupport ? stdenv.isLinux, cups ? null
 }:
@@ -7,17 +8,23 @@
 assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
+let
+  ver_maj = "3.10";
+  ver_min = "4";
+in
 stdenv.mkDerivation rec {
-  name = "gtk+-3.8.4";
+  name = "gtk+-${ver_maj}.${ver_min}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/3.8/${name}.tar.xz";
-    sha256 = "1qlj0qdhkp8j5xiris4l4xnx47g4pbk4qnj3nf8rwa82fwb610xh";
+    url = "mirror://gnome/sources/gtk+/${ver_maj}/${name}.tar.xz";
+    sha256 = "0ax5qk9a6mp4k7i7nh8ajjz8sbl2g3819779z3bnknbpcgy13m2g";
   };
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection ];
+  nativeBuildInputs = [ pkgconfig gettext gobjectIntrospection perl ];
+
+  buildInputs = [ wayland libxkbcommon ];
   propagatedBuildInputs = with xlibs; with stdenv.lib;
     [ expat glib cairo pango gdk_pixbuf atk at_spi2_atk ]
     ++ optionals stdenv.isLinux [ libXrandr libXrender libXcomposite libXi libXcursor ]
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 067d3dc9383..083d0a10cdf 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -4,12 +4,16 @@
 , libxml2, libxslt, docbook_xsl
 , lightWeight ? true, gnome, samba, makeWrapper }:
 
+let
+  ver_maj = "1.18";
+  version = "${ver_maj}.3";
+in
 stdenv.mkDerivation rec {
-  name = "gvfs-1.14.2";
+  name = "gvfs-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
-    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
+    url = "mirror://gnome/sources/gvfs/${ver_maj}/${name}.tar.xz";
+    sha256 = "0b27vidnrwh6yb2ga9a1k9qlrz6lrzsaz2hcxqbc1igivhb9g0hx";
   };
 
   nativeBuildInputs = [ pkgconfig intltool libtool ];
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 78e016c1582..4cee49bea51 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,19 +1,30 @@
-{ stdenv, fetchurl, pkgconfig, glib, freetype,
-  icu ? null, graphite2 ? null, libintlOrEmpty }:
+{ stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty
+, icu, graphite2
+, withIcu ? false # recommended by upstream as default, but most don't needed and it's big
+, withGraphite2 ? true # it is small and major distros do include it
+}:
+
+# TODO: split non-icu and icu lib into different outputs?
+# (icu is a ~30 MB dependency, the rest is very small in comparison)
 
 stdenv.mkDerivation rec {
-  name = "harfbuzz-0.9.12";
+  name = "harfbuzz-0.9.24";
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/${name}.tar.bz2";
-    sha256 = "19cx5y2m20rp7z5j7mwqfb4ph2g8lrri69zim44x362y4w5gfly6";
+    sha256 = "08i46xx92hvz2br2d9hdxjgi0g5jglwf5bdfsandxb0qlgc5vwpd";
   };
 
-  buildInputs = [ pkgconfig glib freetype ]
+  configureFlags = [
+    ( "--with-graphite2=" + (if withGraphite2 then "yes" else "no") ) # not auto-detected by default
+    ( "--with-icu=" +       (if withIcu       then "yes" else "no") )
+  ];
+
+  buildInputs = [ pkgconfig glib freetype cairo ] # recommended by upstream
     ++ libintlOrEmpty;
   propagatedBuildInputs = []
-    ++ (stdenv.lib.optionals (icu != null) [icu])
-    ++ (stdenv.lib.optionals (graphite2 != null) [graphite2])
+    ++ stdenv.lib.optional withGraphite2 graphite2
+    ++ stdenv.lib.optional withIcu icu
     ;
 
   meta = {
diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix
index 838d6f7b75f..4437fc4bad2 100644
--- a/pkgs/development/libraries/icu/default.nix
+++ b/pkgs/development/libraries/icu/default.nix
@@ -3,15 +3,17 @@
 let
 
   pname = "icu4c";
-  version = "51.1";
+  ver_maj = "52";
+  ver_min = "1";
+  version = "${ver_maj}.${ver_min}";
 in
 
 stdenv.mkDerivation {
   name = pname + "-" + version;
 
   src = fetchurl {
-    url = http://download.icu-project.org/files/icu4c/51.1/icu4c-51_1-src.tgz;
-    sha256 = "0sv6hgkm92pm27zgjxgk284lcxxbsl0syi40ckw2b7yj7d8sxrc7";
+    url = "http://download.icu-project.org/files/icu4c/${version}/icu4c-${ver_maj}_${ver_min}-src.tgz";
+    sha256 = "14l0kl17nirc34frcybzg0snknaks23abhdxkmsqg3k9sil5wk9g";
   };
 
   postUnpack = ''
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index cf3febfc455..b8a76b42fd7 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.46";
+  name = "libdrm-2.4.49";
 
   src = fetchurl {
     url = "http://dri.freedesktop.org/libdrm/${name}.tar.bz2";
-    sha256 = "1wah4qmrrcv0gnx65lhrlxb6gprxch92wy8lhxv6102fml6k5krk";
+    sha256 = "0zbsx554yk9prjda95q1ljay42ygq3qlhc3vp39m1hyq63yx7mr5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 9253468b8df..0c79b20b564 100644
--- a/pkgs/development/libraries/libgsf/default.nix
+++ b/pkgs/development/libraries/libgsf/default.nix
@@ -4,11 +4,11 @@
 with { inherit (stdenv.lib) optionals; };
 
 stdenv.mkDerivation rec {
-  name = "libgsf-1.14.26";
+  name = "libgsf-1.14.28";
 
   src = fetchurl {
     url    = "mirror://gnome/sources/libgsf/1.14/${name}.tar.xz";
-    sha256 = "1md67l60li7rkma9m6mwchqz6b6q4xsfr38c6n056y6xm8jyf6c9";
+    sha256 = "1r6bkwramb6qglmgbjmqvr5sahbfmql057ql97mx99fs3x7r357a";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index ab8034c781e..00308bf9471 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   ver_maj = "0.7";
-  ver_min = "5";
+  ver_min = "6";
   name = "libnotify-${ver_maj}.${ver_min}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libnotify/${ver_maj}/${name}.tar.xz";
-    sha256 = "0lmnzy16vdjs9vlgdm0b7wfyi1nh526hv2dpb7vxb92bhx3wny23";
+    sha256 = "0dyq8zgjnnzcah31axnx6afb21kl7bks1gvrg4hjh3nk02j1rxhf";
   };
   src_m4 = fetchurl {
     url = "mirror://gentoo/distfiles/introspection-20110205.m4.tar.bz2";
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index 6702cdec9c1..adcc120bdfe 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -3,11 +3,11 @@
 assert zlib != null;
 
 let
-  version = "1.6.4";
-  sha256 = "15pqany43q2hzaxqn84p9dba071xmvqi8h1bhnjxnxdf3g64zayg";
-  patch_src = fetchurl { # not released yet, hopefully OK
-    url = "mirror://sourceforge/libpng-apng/libpng-1.6.3-apng.patch.gz";
-    sha256 = "0fjnb6cgbj2c7ggl0qzcnliml2ylrjxzigp89vw0hxq221k5mlsx";
+  version = "1.6.7";
+  sha256 = "0igrw6xzvljd8ddk2qmqz4pav1glqj6naqcrzy7j2056m59wij8k";
+  patch_src = fetchurl {
+    url = "mirror://sourceforge/libpng-apng/libpng-1.6.7-apng.patch.gz";
+    sha256 = "1g5hmlb9smwl9qv6wb2d7795jqcfrx8g3dhrya5dshrj909jb95k";
   };
   whenPatched = stdenv.lib.optionalString apngSupport;
 
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 15e07af9f1e..808407877e9 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -6,7 +6,7 @@
 # no introspection by default, it's too big
 
 stdenv.mkDerivation rec {
-  name = "librsvg-2.36.4";
+  name = "librsvg-2.36.4"; # 2.37 needs pango 1.32.6, 2.40 doesn't support gtk2
 
   src = fetchurl {
     url    = "mirror://gnome/sources/librsvg/2.36/${name}.tar.xz";
diff --git a/pkgs/development/libraries/libssh/default.nix b/pkgs/development/libraries/libssh/default.nix
index c2b812744c9..0a06452d5d8 100644
--- a/pkgs/development/libraries/libssh/default.nix
+++ b/pkgs/development/libraries/libssh/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, cmake, zlib, libgcrypt }:
 
 stdenv.mkDerivation rec {
-  name = "libssh-0.5.3";
+  name = "libssh-0.5.5";
 
   src = fetchurl {
-    url = "https://red.libssh.org/attachments/download/38/${name}.tar.gz";
-    sha256 = "1w6s217vjq0w3v5i0c5ql6m0ki1yz05g9snah3azxfkl9k4schpd";
+    url = "https://red.libssh.org/attachments/download/51/${name}.tar.gz";
+    sha256 = "17cfdff4hc0ijzrr15biq29fiabafz0bw621zlkbwbc1zh2hzpy0";
   };
 
   buildInputs = [ zlib libgcrypt ];
diff --git a/pkgs/development/libraries/libunique/default.nix b/pkgs/development/libraries/libunique/default.nix
index 603759d47c0..125cb890008 100644
--- a/pkgs/development/libraries/libunique/default.nix
+++ b/pkgs/development/libraries/libunique/default.nix
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ pkgconfig glib gtk dbus_glib ];
 
   # don't make deprecated usages hard errors
-  preBuildPhases = "preBuild";
   preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""'';
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index f06eacb67a9..dfb8f1c54a1 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,10 +1,13 @@
 { stdenv, fetchurl, pkgconfig, udev }:
 
+let
+  version = "1.0.17";
+in
 stdenv.mkDerivation rec {
-  name = "libusb-1.0.17";
+  name = "libusb-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/libusbx/libusbx-1.0.17.tar.bz2";
+    url = "mirror://sourceforge/libusbx/libusbx-${version}.tar.bz2";
     sha256 = "1f25a773x9x5n48a0mcigyk77ay0hkiz6y6bi4588wzf7wn8svw7";
   };
 
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 835e2711a77..cc8b3f59529 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, pkgconfig, xlibs }:
 
 stdenv.mkDerivation rec {
-  name = "libvdpau-0.6";
+  name = "libvdpau-0.7";
 
   src = fetchurl {
     url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
-    sha256 = "0x9dwxzw0ilsy88kqlih3170z1zfrrsx1dr9jbwbn0cbkpnbwmcv";
+    sha256 = "1q5wx6fmqg2iiw57wxwh5vv4yszqs4nlvlzhzdn9vig8gi30ip14";
   };
 
   buildInputs = with xlibs; [ pkgconfig dri2proto libXext ];
 
   propagatedBuildInputs = [ xlibs.libX11 ];
-  
+
   configureFlags = stdenv.lib.optional stdenv.isDarwin [ "--build=x86_64" ];
 
   meta = {
diff --git a/pkgs/development/libraries/libwnck/3.x.nix b/pkgs/development/libraries/libwnck/3.x.nix
index 59355f3c37d..17393fab074 100644
--- a/pkgs/development/libraries/libwnck/3.x.nix
+++ b/pkgs/development/libraries/libwnck/3.x.nix
@@ -10,4 +10,6 @@ stdenv.mkDerivation {
 
   buildInputs = [ pkgconfig intltool ];
   propagatedBuildInputs = [ libX11 gtk3 ];
+
+  configureFlags = [ "--disable-introspection" ];
 }
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
index 4a1327778d4..e7923f3df5b 100644
--- a/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, yacc, flex, xkeyboard_config }:
+{ stdenv, fetchurl, pkgconfig, yacc, flex, xkeyboard_config }:
 
 stdenv.mkDerivation rec {
-  name = "libxkbcommon-0.2.0";
+  name = "libxkbcommon-0.3.1";
 
   src = fetchurl {
-    url = "http://xkbcommon.org/download/${name}.tar.bz2";
-    sha256 = "0hpvfa8p4bhvhc1gcb578m354p5idd192xb8zlaq16d33h90msvl";
+    url = "http://xkbcommon.org/download/${name}.tar.xz";
+    sha256 = "13mk335r4dhi9qglzbp46ina1wz4qgcp8r7s06iq7j50pf0kb5ww";
   };
 
-  buildInputs = [ yacc flex xkeyboard_config ];
+  buildInputs = [ pkgconfig yacc flex xkeyboard_config ];
 
   configureFlags = ''
     --with-xkb-config-root=${xkeyboard_config}/etc/X11/xkb
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index b613f4c8964..5428c3b38dc 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -3,8 +3,8 @@
 , libdrm, xorg, wayland, udev, llvm, libffi
 , libvdpau
 , enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt
-, enableR600LlvmCompiler ? false # current llvm-3.3 + mesa-9.1.6 don't configure
-, enableExtraFeatures ? false # add ~15 MB to mesa_drivers
+, enableR600LlvmCompiler ? true, libelf
+, enableExtraFeatures ? false # not maintained
 }:
 
 if ! stdenv.lib.lists.elem stdenv.system stdenv.lib.platforms.mesaPlatforms then
@@ -16,23 +16,26 @@ else
     This or the mesa attribute (which also contains GLU) are small (~ 2.2 MB, mostly headers)
     and are designed to be the buildInput of other packages.
   - DRI and EGL drivers are compiled into $drivers output,
-    which is bigger (~13 MB) and depends on LLVM (~40 MB).
-    These should be searched at runtime in /run/current-system/sw/lib/*
+    which is bigger (~13 MB) and depends on LLVM (~44 MB).
+    These should be searched at runtime in "/run/opengl-driver{,-32}/lib/*"
     and so are kind-of impure (given by NixOS).
     (I suppose on non-NixOS one would create the appropriate symlinks from there.)
+  - libOSMesa is in $osmesa (~4.2 MB)
 */
 
 let
-  version = "9.1.7";
+  version = "9.2.4";
   # this is the default search path for DRI drivers (note: X server introduces an overriding env var)
   driverLink = "/run/opengl-driver" + stdenv.lib.optionalString stdenv.isi686 "-32";
 in
+with { inherit (stdenv.lib) optional optionals optionalString; };
+
 stdenv.mkDerivation {
   name = "mesa-noglu-${version}";
 
-  src = fetchurl {
+  src =  fetchurl {
     url = "ftp://ftp.freedesktop.org/pub/mesa/${version}/MesaLib-${version}.tar.bz2";
-    sha256 = "1824p185ys7z9bah46xasp7khv44n9wv2c4p38i1dispniwbirih";
+    sha256 = "0dxrawlpfhmlp0qxdrvpmp9q9vrfsx0drxgwkbxf27bss71i1ppx";
   };
 
   prePatch = "patchShebangs .";
@@ -40,7 +43,6 @@ stdenv.mkDerivation {
   patches = [
     ./static-gallium.patch
     ./dricore-gallium.patch
-    ./fix-rounding.patch
     ./werror-wundef.patch
   ];
 
@@ -50,11 +52,11 @@ stdenv.mkDerivation {
       -i src/egl/main/Makefile.am
   '';
 
-  outputs = ["out" "drivers"];
+  outputs = ["out" "drivers" "osmesa"];
 
   preConfigure = "./autogen.sh";
 
-  configureFlags = with stdenv.lib; [
+  configureFlags = [
     "--with-dri-driverdir=$(drivers)/lib/dri"
     "--with-egl-driver-dir=$(drivers)/lib/egl"
     "--with-dri-searchpath=${driverLink}/lib/dri"
@@ -65,70 +67,84 @@ stdenv.mkDerivation {
     "--enable-driglx-direct" # seems enabled anyway
     "--enable-gallium-llvm" "--with-llvm-shared-libs"
     "--enable-xa" # used in vmware driver
+    "--enable-gles1" "--enable-gles2"
+    "--enable-vdpau"
+    "--enable-osmesa" # used by wine
 
     "--with-dri-drivers=i965,r200,radeon"
-    "--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast" # radeonsi complains about R600 missing in LLVM
+    ("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast"
+      + optionalString enableR600LlvmCompiler ",radeonsi")
     "--with-egl-platforms=x11,wayland,drm" "--enable-gbm" "--enable-shared-glapi"
   ]
-    ++ optional enableR600LlvmCompiler "--enable-r600-llvm-compiler" # complains about R600 missing in LLVM
+    ++ optional enableR600LlvmCompiler "--enable-r600-llvm-compiler"
     ++ optional enableTextureFloats "--enable-texture-float"
     ++ optionals enableExtraFeatures [
-      "--enable-gles1" "--enable-gles2"
-      "--enable-osmesa"
       "--enable-openvg" "--enable-gallium-egl" # not needed for EGL in Gallium, but OpenVG might be useful
       #"--enable-xvmc" # tests segfault with 9.1.{1,2,3}
-      "--enable-vdpau"
       #"--enable-opencl" # ToDo: opencl seems to need libclc for clover
     ];
 
   nativeBuildInputs = [ pkgconfig python makedepend file flex bison ];
 
   propagatedBuildInputs = with xorg; [ libXdamage libXxf86vm ]
-  ++
-  stdenv.lib.optionals stdenv.isLinux [libdrm]
-  ;
+    ++ optionals stdenv.isLinux [libdrm]
+    ;
   buildInputs = with xorg; [
     autoconf automake libtool intltool expat libxml2Python llvm
     libXfixes glproto dri2proto libX11 libXext libxcb libXt
-    libffi wayland
-  ] ++ stdenv.lib.optionals enableExtraFeatures [ /*libXvMC*/ libvdpau ]
-  ++ stdenv.lib.optional stdenv.isLinux [udev]
-  ;
+    libffi wayland libvdpau
+  ] ++ optionals enableExtraFeatures [ /*libXvMC*/ ]
+    ++ optional stdenv.isLinux udev
+    ++ optional enableR600LlvmCompiler libelf
+    ;
 
   enableParallelBuilding = true;
-  doCheck = true;
+  #doCheck = true; # https://bugs.freedesktop.org/show_bug.cgi?id=67672
+  # TODO: best fix this before merging >=9.2 to master
 
-  # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM
+  # move gallium-related stuff to $drivers, so $out doesn't depend on LLVM;
+  #   also move libOSMesa to $osmesa, as it's relatively big
   # ToDo: probably not all .la files are completely fixed, but it shouldn't matter
   postInstall = with stdenv.lib; ''
     mv -t "$drivers/lib/" \
   '' + optionalString enableExtraFeatures ''
       `#$out/lib/libXvMC*` \
-      $out/lib/vdpau \
-      $out/lib/libOSMesa* \
       $out/lib/gbm $out/lib/libgbm* \
       $out/lib/gallium-pipe \
   '' + ''
       $out/lib/libdricore* \
       $out/lib/libgallium* \
+      $out/lib/vdpau \
       $out/lib/libxatracker*
 
+    mkdir -p {$osmesa,$drivers}/lib/pkgconfig
+    mv -t $osmesa/lib/ \
+      $out/lib/libOSMesa*
+
+    mv -t $drivers/lib/pkgconfig/ \
+      $out/lib/pkgconfig/xatracker.pc
+
+    mv -t $osmesa/lib/pkgconfig/ \
+      $out/lib/pkgconfig/osmesa.pc
+
   '' + /* now fix references in .la files */ ''
     sed "/^libdir=/s,$out,$drivers," -i \
   '' + optionalString enableExtraFeatures ''
       `#$drivers/lib/libXvMC*.la` \
-      $drivers/lib/vdpau/*.la \
-      $drivers/lib/libOSMesa*.la \
       $drivers/lib/gallium-pipe/*.la \
   '' + ''
       $drivers/lib/libgallium.la \
+      $drivers/lib/vdpau/*.la \
       $drivers/lib/libdricore*.la
 
     sed "s,$out\(/lib/\(libdricore[0-9\.]*\|libgallium\).la\),$drivers\1,g" \
       -i $drivers/lib/*.la $drivers/lib/*/*.la
 
+    sed "/^libdir=/s,$out,$osmesa," -i \
+      $osmesa/lib/libOSMesa*.la
+
   '' + /* work around bug #529, but maybe $drivers should also be patchelf-ed */ ''
-    find $drivers/ -type f -executable -print0 | xargs -0 strip -S || true
+    find $drivers/ $osmesa/ -type f -executable -print0 | xargs -0 strip -S || true
 
   '' + /* add RPATH so the drivers can find the moved libgallium and libdricore9 */ ''
     for lib in $drivers/lib/*.so* $drivers/lib/*/*.so*; do
diff --git a/pkgs/development/libraries/mesa/fix-rounding.patch b/pkgs/development/libraries/mesa/fix-rounding.patch
deleted file mode 100644
index f81760a6708..00000000000
--- a/pkgs/development/libraries/mesa/fix-rounding.patch
+++ /dev/null
@@ -1,357 +0,0 @@
-From c25ae5d27b114e23d5734f846002df1a05759658 Mon Sep 17 00:00:00 2001
-From: Roland Scheidegger <sroland@vmware.com>
-Date: Thu, 31 Jan 2013 19:27:49 +0000
-Subject: gallivm: fix issues with trunc/round/floor/ceil with no arch rounding
-
-The emulation of these if there's no rounding instruction available
-is a bit more complicated than what the code did.
-In particular, doing fp-to-int/int-to-fp will not work if the exponent
-is large enough (and with NaNs, Infs). Hence such values need to be filtered
-out and the original value returned in this case (which fortunately should
-always be exact). This comes at the expense of performance (if your cpu
-doesn't support rounding instructions).
-Furthermore, floor/ifloor/ceil/iceil were affected by precision issues for
-values near negative (for floor) or positive (for ceil) zero, fix that as well
-(fixing this issue might not actually be slower except for ceil/iceil if the
-type is not signed which is probably rare - note iceil has no callers left
-in any case).
-
-Also add some new rounding test values in lp_test_arit to actually test
-for that stuff (which previously would have failed without sse41).
-
-This fixes https://bugs.freedesktop.org/show_bug.cgi?id=59701.
----
-diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
-index b4e9f23..ec05026 100644
---- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
-+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
-@@ -1590,12 +1590,37 @@ lp_build_trunc(struct lp_build_context *bld,
-       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_TRUNCATE);
-    }
-    else {
--      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
--      LLVMTypeRef int_vec_type = lp_build_int_vec_type(bld->gallivm, type);
--      LLVMValueRef res;
--      res = LLVMBuildFPToSI(builder, a, int_vec_type, "");
--      res = LLVMBuildSIToFP(builder, res, vec_type, "");
--      return res;
-+      const struct lp_type type = bld->type;
-+      struct lp_type inttype;
-+      struct lp_build_context intbld;
-+      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
-+      LLVMValueRef trunc, res, anosign, mask;
-+      LLVMTypeRef int_vec_type = bld->int_vec_type;
-+      LLVMTypeRef vec_type = bld->vec_type;
-+
-+      assert(type.width == 32); /* might want to handle doubles at some point */
-+
-+      inttype = type;
-+      inttype.floating = 0;
-+      lp_build_context_init(&intbld, bld->gallivm, inttype);
-+
-+      /* round by truncation */
-+      trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
-+      res = LLVMBuildSIToFP(builder, trunc, vec_type, "floor.trunc");
-+
-+      /* mask out sign bit */
-+      anosign = lp_build_abs(bld, a);
-+      /*
-+       * mask out all values if anosign > 2^24
-+       * This should work both for large ints (all rounding is no-op for them
-+       * because such floats are always exact) as well as special cases like
-+       * NaNs, Infs (taking advantage of the fact they use max exponent).
-+       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
-+       */
-+      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
-+      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
-+      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
-+      return lp_build_select(bld, mask, a, res);
-    }
- }
- 
-@@ -1620,11 +1645,36 @@ lp_build_round(struct lp_build_context *bld,
-       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_NEAREST);
-    }
-    else {
--      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
--      LLVMValueRef res;
-+      const struct lp_type type = bld->type;
-+      struct lp_type inttype;
-+      struct lp_build_context intbld;
-+      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
-+      LLVMValueRef res, anosign, mask;
-+      LLVMTypeRef int_vec_type = bld->int_vec_type;
-+      LLVMTypeRef vec_type = bld->vec_type;
-+
-+      assert(type.width == 32); /* might want to handle doubles at some point */
-+
-+      inttype = type;
-+      inttype.floating = 0;
-+      lp_build_context_init(&intbld, bld->gallivm, inttype);
-+
-       res = lp_build_iround(bld, a);
-       res = LLVMBuildSIToFP(builder, res, vec_type, "");
--      return res;
-+
-+      /* mask out sign bit */
-+      anosign = lp_build_abs(bld, a);
-+      /*
-+       * mask out all values if anosign > 2^24
-+       * This should work both for large ints (all rounding is no-op for them
-+       * because such floats are always exact) as well as special cases like
-+       * NaNs, Infs (taking advantage of the fact they use max exponent).
-+       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
-+       */
-+      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
-+      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
-+      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
-+      return lp_build_select(bld, mask, a, res);
-    }
- }
- 
-@@ -1648,11 +1698,52 @@ lp_build_floor(struct lp_build_context *bld,
-       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_FLOOR);
-    }
-    else {
--      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
--      LLVMValueRef res;
--      res = lp_build_ifloor(bld, a);
--      res = LLVMBuildSIToFP(builder, res, vec_type, "");
--      return res;
-+      const struct lp_type type = bld->type;
-+      struct lp_type inttype;
-+      struct lp_build_context intbld;
-+      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
-+      LLVMValueRef trunc, res, anosign, mask;
-+      LLVMTypeRef int_vec_type = bld->int_vec_type;
-+      LLVMTypeRef vec_type = bld->vec_type;
-+
-+      assert(type.width == 32); /* might want to handle doubles at some point */
-+
-+      inttype = type;
-+      inttype.floating = 0;
-+      lp_build_context_init(&intbld, bld->gallivm, inttype);
-+
-+      /* round by truncation */
-+      trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
-+      res = LLVMBuildSIToFP(builder, trunc, vec_type, "floor.trunc");
-+
-+      if (type.sign) {
-+         LLVMValueRef tmp;
-+
-+         /*
-+          * fix values if rounding is wrong (for non-special cases)
-+          * - this is the case if trunc > a
-+          */
-+         mask = lp_build_cmp(bld, PIPE_FUNC_GREATER, res, a);
-+         /* tmp = trunc > a ? 1.0 : 0.0 */
-+         tmp = LLVMBuildBitCast(builder, bld->one, int_vec_type, "");
-+         tmp = lp_build_and(&intbld, mask, tmp);
-+         tmp = LLVMBuildBitCast(builder, tmp, vec_type, "");
-+         res = lp_build_sub(bld, res, tmp);
-+      }
-+
-+      /* mask out sign bit */
-+      anosign = lp_build_abs(bld, a);
-+      /*
-+       * mask out all values if anosign > 2^24
-+       * This should work both for large ints (all rounding is no-op for them
-+       * because such floats are always exact) as well as special cases like
-+       * NaNs, Infs (taking advantage of the fact they use max exponent).
-+       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
-+       */
-+      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
-+      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
-+      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
-+      return lp_build_select(bld, mask, a, res);
-    }
- }
- 
-@@ -1676,11 +1767,48 @@ lp_build_ceil(struct lp_build_context *bld,
-       return lp_build_round_arch(bld, a, LP_BUILD_ROUND_CEIL);
-    }
-    else {
--      LLVMTypeRef vec_type = lp_build_vec_type(bld->gallivm, type);
--      LLVMValueRef res;
--      res = lp_build_iceil(bld, a);
--      res = LLVMBuildSIToFP(builder, res, vec_type, "");
--      return res;
-+      const struct lp_type type = bld->type;
-+      struct lp_type inttype;
-+      struct lp_build_context intbld;
-+      LLVMValueRef cmpval = lp_build_const_vec(bld->gallivm, type, 2^24);
-+      LLVMValueRef trunc, res, anosign, mask, tmp;
-+      LLVMTypeRef int_vec_type = bld->int_vec_type;
-+      LLVMTypeRef vec_type = bld->vec_type;
-+
-+      assert(type.width == 32); /* might want to handle doubles at some point */
-+
-+      inttype = type;
-+      inttype.floating = 0;
-+      lp_build_context_init(&intbld, bld->gallivm, inttype);
-+
-+      /* round by truncation */
-+      trunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
-+      trunc = LLVMBuildSIToFP(builder, trunc, vec_type, "ceil.trunc");
-+
-+      /*
-+       * fix values if rounding is wrong (for non-special cases)
-+       * - this is the case if trunc < a
-+       */
-+      mask = lp_build_cmp(bld, PIPE_FUNC_LESS, trunc, a);
-+      /* tmp = trunc < a ? 1.0 : 0.0 */
-+      tmp = LLVMBuildBitCast(builder, bld->one, int_vec_type, "");
-+      tmp = lp_build_and(&intbld, mask, tmp);
-+      tmp = LLVMBuildBitCast(builder, tmp, vec_type, "");
-+      res = lp_build_add(bld, trunc, tmp);
-+
-+      /* mask out sign bit */
-+      anosign = lp_build_abs(bld, a);
-+      /*
-+       * mask out all values if anosign > 2^24
-+       * This should work both for large ints (all rounding is no-op for them
-+       * because such floats are always exact) as well as special cases like
-+       * NaNs, Infs (taking advantage of the fact they use max exponent).
-+       * (2^24 is arbitrary anything between 2^24 and 2^31 should work.)
-+       */
-+      anosign = LLVMBuildBitCast(builder, anosign, int_vec_type, "");
-+      cmpval = LLVMBuildBitCast(builder, cmpval, int_vec_type, "");
-+      mask = lp_build_cmp(&intbld, PIPE_FUNC_GREATER, anosign, cmpval);
-+      return lp_build_select(bld, mask, a, res);
-    }
- }
- 
-@@ -1826,32 +1954,30 @@ lp_build_ifloor(struct lp_build_context *bld,
-          res = lp_build_round_arch(bld, a, LP_BUILD_ROUND_FLOOR);
-       }
-       else {
--         /* Take the sign bit and add it to 1 constant */
--         LLVMTypeRef vec_type = bld->vec_type;
--         unsigned mantissa = lp_mantissa(type);
--         LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type,
--                                  (unsigned long long)1 << (type.width - 1));
--         LLVMValueRef sign;
--         LLVMValueRef offset;
-+         struct lp_type inttype;
-+         struct lp_build_context intbld;
-+         LLVMValueRef trunc, itrunc, mask;
- 
--         /* sign = a < 0 ? ~0 : 0 */
--         sign = LLVMBuildBitCast(builder, a, int_vec_type, "");
--         sign = LLVMBuildAnd(builder, sign, mask, "");
--         sign = LLVMBuildAShr(builder, sign,
--                              lp_build_const_int_vec(bld->gallivm, type,
--                                                     type.width - 1),
--                              "ifloor.sign");
-+         assert(type.floating);
-+         assert(lp_check_value(type, a));
- 
--         /* offset = -0.99999(9)f */
--         offset = lp_build_const_vec(bld->gallivm, type,
--                                     -(double)(((unsigned long long)1 << mantissa) - 10)/((unsigned long long)1 << mantissa));
--         offset = LLVMConstBitCast(offset, int_vec_type);
-+         inttype = type;
-+         inttype.floating = 0;
-+         lp_build_context_init(&intbld, bld->gallivm, inttype);
- 
--         /* offset = a < 0 ? offset : 0.0f */
--         offset = LLVMBuildAnd(builder, offset, sign, "");
--         offset = LLVMBuildBitCast(builder, offset, vec_type, "ifloor.offset");
-+         /* round by truncation */
-+         itrunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
-+         trunc = LLVMBuildSIToFP(builder, itrunc, bld->vec_type, "ifloor.trunc");
- 
--         res = LLVMBuildFAdd(builder, res, offset, "ifloor.res");
-+         /*
-+          * fix values if rounding is wrong (for non-special cases)
-+          * - this is the case if trunc > a
-+          * The results of doing this with NaNs, very large values etc.
-+          * are undefined but this seems to be the case anyway.
-+          */
-+         mask = lp_build_cmp(bld, PIPE_FUNC_GREATER, trunc, a);
-+         /* cheapie minus one with mask since the mask is minus one / zero */
-+         return lp_build_add(&intbld, itrunc, mask);
-       }
-    }
- 
-@@ -1883,35 +2009,30 @@ lp_build_iceil(struct lp_build_context *bld,
-       res = lp_build_round_arch(bld, a, LP_BUILD_ROUND_CEIL);
-    }
-    else {
--      LLVMTypeRef vec_type = bld->vec_type;
--      unsigned mantissa = lp_mantissa(type);
--      LLVMValueRef offset;
-+      struct lp_type inttype;
-+      struct lp_build_context intbld;
-+      LLVMValueRef trunc, itrunc, mask;
- 
--      /* offset = 0.99999(9)f */
--      offset = lp_build_const_vec(bld->gallivm, type,
--                                  (double)(((unsigned long long)1 << mantissa) - 10)/((unsigned long long)1 << mantissa));
-+      assert(type.floating);
-+      assert(lp_check_value(type, a));
- 
--      if (type.sign) {
--         LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type,
--                                (unsigned long long)1 << (type.width - 1));
--         LLVMValueRef sign;
-+      inttype = type;
-+      inttype.floating = 0;
-+      lp_build_context_init(&intbld, bld->gallivm, inttype);
- 
--         /* sign = a < 0 ? 0 : ~0 */
--         sign = LLVMBuildBitCast(builder, a, int_vec_type, "");
--         sign = LLVMBuildAnd(builder, sign, mask, "");
--         sign = LLVMBuildAShr(builder, sign,
--                              lp_build_const_int_vec(bld->gallivm, type,
--                                                     type.width - 1),
--                              "iceil.sign");
--         sign = LLVMBuildNot(builder, sign, "iceil.not");
--
--         /* offset = a < 0 ? 0.0 : offset */
--         offset = LLVMConstBitCast(offset, int_vec_type);
--         offset = LLVMBuildAnd(builder, offset, sign, "");
--         offset = LLVMBuildBitCast(builder, offset, vec_type, "iceil.offset");
--      }
-+      /* round by truncation */
-+      itrunc = LLVMBuildFPToSI(builder, a, int_vec_type, "");
-+      trunc = LLVMBuildSIToFP(builder, itrunc, bld->vec_type, "iceil.trunc");
- 
--      res = LLVMBuildFAdd(builder, a, offset, "iceil.res");
-+      /*
-+       * fix values if rounding is wrong (for non-special cases)
-+       * - this is the case if trunc < a
-+       * The results of doing this with NaNs, very large values etc.
-+       * are undefined but this seems to be the case anyway.
-+       */
-+      mask = lp_build_cmp(bld, PIPE_FUNC_LESS, trunc, a);
-+      /* cheapie plus one with mask since the mask is minus one / zero */
-+      return lp_build_sub(&intbld, itrunc, mask);
-    }
- 
-    /* round to nearest (toward zero) */
-diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c
-index 99928b8..f14e4b3 100644
---- a/src/gallium/drivers/llvmpipe/lp_test_arit.c
-+++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c
-@@ -207,6 +207,18 @@ const float round_values[] = {
-       -10.0, -1, 0.0, 12.0,
-       -1.49, -0.25, 1.25, 2.51,
-       -0.99, -0.01, 0.01, 0.99,
-+      1.401298464324817e-45f, // smallest denormal
-+      -1.401298464324817e-45f,
-+      1.62981451e-08f,
-+      -1.62981451e-08f,
-+      1.62981451e15f, // large number not representable as 32bit int
-+      -1.62981451e15f,
-+      FLT_EPSILON,
-+      -FLT_EPSILON,
-+      1.0f - 0.5f*FLT_EPSILON,
-+      -1.0f + FLT_EPSILON,
-+      FLT_MAX,
-+      -FLT_MAX
- };
- 
- static float fractf(float x)
---
-cgit v0.9.0.2-2-gbebe
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
index 23bfbeeb808..cb76a1b615f 100644
--- a/pkgs/development/libraries/pixman/default.nix
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, pkgconfig, perl, withPNG ? true, libpng, glib /*just passthru*/ }:
 
 stdenv.mkDerivation rec {
-  name = "pixman-0.30.2";
+  name = "pixman-0.32.4";
 
   src = fetchurl {
     url = "http://cairographics.org/releases/${name}.tar.gz";
-    sha256 = "1sgnpx34pj3245a9v8056jddc4cg4xxkqdjvvw6k2hnprhh8k65x";
+    sha256 = "113ycngcssbrps217dyajq96hm9xghsfch82h14yffla1r1fviw0";
   };
 
   nativeBuildInputs = [ pkgconfig perl ];
diff --git a/pkgs/development/libraries/silgraphite/graphite2.nix b/pkgs/development/libraries/silgraphite/graphite2.nix
index 0a36efbc982..070d65cb3a2 100644
--- a/pkgs/development/libraries/silgraphite/graphite2.nix
+++ b/pkgs/development/libraries/silgraphite/graphite2.nix
@@ -1,17 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, freetype, libXft, pango, fontconfig, cmake }:
+{ stdenv, fetchurl, pkgconfig, freetype, cmake }:
 
 stdenv.mkDerivation rec {
   version = "1.2.3";
   name = "graphite2-${version}";
-  
+
   src = fetchurl {
     url = "mirror://sourceforge/silgraphite/graphite2/${name}.tgz";
     sha256 = "1xgwnd81gm6p293x8paxb3yisnvpj5qnv1dzr7bjdi7b7h00ls7g";
   };
 
-  buildInputs = [pkgconfig freetype libXft pango fontconfig cmake];
-
-  NIX_CFLAGS_COMPILE = "-I${freetype}/include/freetype2";
+  buildInputs = [ pkgconfig freetype cmake ];
 
   meta = {
     description = "An advanced font engine";
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index 8854a41210b..e9ad56bdbf1 100644
--- a/pkgs/development/libraries/wayland/default.nix
+++ b/pkgs/development/libraries/wayland/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, libffi, expat, pkgconfig, libxslt, docbook_xsl, doxygen }:
 
-let version = "1.0.5"; in
+let version = "1.3.0"; in
 
 stdenv.mkDerivation rec {
   name = "wayland-${version}";
 
   src = fetchurl {
     url = "http://wayland.freedesktop.org/releases/${name}.tar.xz";
-    sha256 = "130n7v5i7rfsrli2n8vdzfychlgd8v7by7sfgp8vfqdlss5km34w";
+    sha256 = "0vhd8z74r4zmm7hrbb8l450sb6slqkdrvmk4k78sq9lays2pd09f";
   };
 
   buildInputs = [ pkgconfig libffi expat libxslt docbook_xsl doxygen ];
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index bfce358a2aa..32ef97bf29c 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, python, pkgconfig, dbus, dbus_glib, dbus_tools }:
 
 stdenv.mkDerivation rec {
-  name = "dbus-python-1.1.1";
+  name = "dbus-python-1.2.0";
 
   src = fetchurl {
     url = "http://dbus.freedesktop.org/releases/dbus-python/${name}.tar.gz";
-    sha256 = "122yj5y0mndk9axh735qvwwckck6s6x0q84dw6p97mplp17wl5w9";
+    sha256 = "1py62qir966lvdkngg0v8k1khsqxwk5m4s8nflpk1agk5f5nqb71";
   };
 
   postPatch = "patchShebangs .";
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 852d7ab9841..3b347504a72 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1370,11 +1370,11 @@ let
   })) // {inherit inputproto xorgserver xproto ;};
 
   xf86inputsynaptics = (stdenv.mkDerivation ((if overrides ? xf86inputsynaptics then overrides.xf86inputsynaptics else x: x) {
-    name = "xf86-input-synaptics-1.6.2";
+    name = "xf86-input-synaptics-1.7.1";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-input-synaptics-1.6.2.tar.bz2;
-      sha256 = "082rlbyw63sashjbwd7dd0a0smp5n8yv9bihy19c706lhnhddxy3";
+      url = mirror://xorg/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2;
+      sha256 = "13mmpcwp1d69w6c458a4fdqgwl24bpvrnq3zd6833chz1rk2an6v";
     };
     buildInputs = [pkgconfig inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ];
   })) // {inherit inputproto randrproto recordproto libX11 libXi xorgserver xproto libXtst ;};
@@ -1420,11 +1420,11 @@ let
   })) // {inherit fontsproto libpciaccess xextproto xorgserver xproto ;};
 
   xf86videoast = (stdenv.mkDerivation ((if overrides ? xf86videoast then overrides.xf86videoast else x: x) {
-    name = "xf86-video-ast-0.97.0";
+    name = "xf86-video-ast-0.98.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-ast-0.97.0.tar.bz2;
-      sha256 = "0xlfk64pa0vbg74m261fw8cn4vw6jw3nxm6wys9m4j3n2rwd9z18";
+      url = mirror://xorg/individual/driver/xf86-video-ast-0.98.0.tar.bz2;
+      sha256 = "188nv73w0p5xhfxz2dffli44yzyn1qhhq3qkwc8wva9dhg25n8lh";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ;};
@@ -1440,31 +1440,31 @@ let
   })) // {inherit fontsproto libdrm udev libpciaccess randrproto renderproto videoproto xextproto xf86driproto xorgserver xproto ;};
 
   xf86videocirrus = (stdenv.mkDerivation ((if overrides ? xf86videocirrus then overrides.xf86videocirrus else x: x) {
-    name = "xf86-video-cirrus-1.5.1";
+    name = "xf86-video-cirrus-1.5.2";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-cirrus-1.5.1.tar.bz2;
-      sha256 = "0my54x52fsa82bsh196hz79750xjlv8ddbvin7230ck7pnf44md9";
+      url = mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2;
+      sha256 = "1mycqgjp18b6adqj2h90vp324xh8ysyi5migfmjc914vbnkf2q9k";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xorgserver xproto ];
   })) // {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.6";
+    name = "xf86-video-dummy-0.3.7";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.6.tar.bz2;
-      sha256 = "16773lxa74d9v2x758bx0byrmxssplqygnjn09q3klr605j5ncs4";
+      url = mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2;
+      sha256 = "1046p64xap69vlsmsz5rjv0djc970yhvq44fmllmas0mqp5lzy2n";
     };
     buildInputs = [pkgconfig fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ];
   })) // {inherit fontsproto randrproto renderproto videoproto xf86dgaproto xorgserver xproto ;};
 
   xf86videofbdev = (stdenv.mkDerivation ((if overrides ? xf86videofbdev then overrides.xf86videofbdev else x: x) {
-    name = "xf86-video-fbdev-0.4.3";
+    name = "xf86-video-fbdev-0.4.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2;
-      sha256 = "0ca8khgy3wv0fys7s4087apvnp8j86blxj5m5m70l10hs5x06yzz";
+      url = mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.tar.bz2;
+      sha256 = "06ym7yy017lanj730hfkpfk4znx3dsj8jq3qvyzsn8w294kb7m4x";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xorgserver xproto ;};
@@ -1540,14 +1540,14 @@ let
   })) // {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.7";
+    name = "xf86-video-neomagic-1.2.8";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.7.tar.bz2;
-      sha256 = "0xnbk2y5pzs1g3w2rmjc4k3nyq6kazf67bv4q3dnbywalsgfh1lz";
+      url = mirror://xorg/individual/driver/xf86-video-neomagic-1.2.8.tar.bz2;
+      sha256 = "0x48sxs1p3kmwk3pq1j7vl93y59gdmgkq1x5xbnh0yal0angdash";
     };
-    buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ];
-  })) // {inherit fontsproto libpciaccess randrproto renderproto videoproto xextproto xf86dgaproto xorgserver xproto ;};
+    buildInputs = [pkgconfig fontsproto libpciaccess xorgserver xproto ];
+  })) // {inherit fontsproto libpciaccess xorgserver xproto ;};
 
   xf86videonewport = (stdenv.mkDerivation ((if overrides ? xf86videonewport then overrides.xf86videonewport else x: x) {
     name = "xf86-video-newport-0.2.4";
@@ -1680,11 +1680,11 @@ let
   })) // {inherit randrproto videoproto xorgserver xproto ;};
 
   xf86videovesa = (stdenv.mkDerivation ((if overrides ? xf86videovesa then overrides.xf86videovesa else x: x) {
-    name = "xf86-video-vesa-2.3.2";
+    name = "xf86-video-vesa-2.3.3";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.2.tar.bz2;
-      sha256 = "1qqf97baii1dcsm3y8gqw674j4r8llhkbqsavhyn11iwmvzifjhl";
+      url = mirror://xorg/individual/driver/xf86-video-vesa-2.3.3.tar.bz2;
+      sha256 = "1y5fsg0c4bgmh1cfsbnaaf388fppyy02i7mcy9vax78flkjpb2yf";
     };
     buildInputs = [pkgconfig fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ];
   })) // {inherit fontsproto libpciaccess randrproto renderproto xextproto xorgserver xproto ;};
@@ -1900,11 +1900,11 @@ let
   })) // {inherit ;};
 
   xorgserver = (stdenv.mkDerivation ((if overrides ? xorgserver then overrides.xorgserver else x: x) {
-    name = "xorg-server-1.13.4";
+    name = "xorg-server-1.14.4";
     builder = ./builder.sh;
     src = fetchurl {
-      url = mirror://xorg/individual/xserver/xorg-server-1.13.4.tar.bz2;
-      sha256 = "1kwq5hqgl3qmm4nxh5iwpa0wwwzsj67fxqiiglzhyyrwgy46kjd2";
+      url = mirror://xorg/individual/xserver/xorg-server-1.14.4.tar.bz2;
+      sha256 = "1hsxyqgrw3hrgdl0sw8n4hbhjlindna0z8w4k1anwpw4zfmcz330";
     };
     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 ;};
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index fb8b5856ecb..d70bb54c704 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -159,6 +159,13 @@ in
     ];
   };
 
+  xf86videonv = attrs: attrs // {
+    patches = [( args.fetchurl {
+      url = http://cgit.freedesktop.org/xorg/driver/xf86-video-nv/patch/?id=fc78fe98222b0204b8a2872a529763d6fe5048da;
+      sha256 = "0ikbnz6048ygs1qahb6ylnxkyjhfjcqr2gm9bk95ca90v57j7i0f";
+    })];
+  };
+
   xf86videovmware = attrs: attrs // {
     buildInputs =  attrs.buildInputs ++ [ args.mesa_drivers ]; # for libxatracker
   };
@@ -188,7 +195,6 @@ in
     patches =
       [ ./xorgserver-dri-path.patch
         ./xorgserver-xkbcomp-path.patch
-        ./xorgserver-cve-2013-4396.patch
       ];
     buildInputs = attrs.buildInputs ++ [ xtrans ];
     propagatedBuildInputs =
diff --git a/pkgs/servers/x11/xorg/tarballs-7.7.list b/pkgs/servers/x11/xorg/tarballs-7.7.list
index 4464aeea9b8..d76afd9fbe2 100644
--- a/pkgs/servers/x11/xorg/tarballs-7.7.list
+++ b/pkgs/servers/x11/xorg/tarballs-7.7.list
@@ -116,15 +116,15 @@ mirror://xorg/individual/driver/xf86-input-evdev-2.7.3.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-synaptics-1.7.1.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-ast-0.98.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/individual/driver/xf86-video-dummy-0.3.6.tar.bz2
-mirror://xorg/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2
+mirror://xorg/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
+mirror://xorg/individual/driver/xf86-video-dummy-0.3.7.tar.bz2
+mirror://xorg/individual/driver/xf86-video-fbdev-0.4.4.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
@@ -132,7 +132,7 @@ mirror://xorg/individual/driver/xf86-video-i128-1.3.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-intel-2.21.9.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/individual/driver/xf86-video-neomagic-1.2.8.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/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
@@ -146,7 +146,7 @@ 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/individual/driver/xf86-video-vesa-2.3.3.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
@@ -164,7 +164,7 @@ 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.13.4.tar.bz2
+mirror://xorg/individual/xserver/xorg-server-1.14.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/servers/x11/xorg/xorgserver-cve-2013-4396.patch b/pkgs/servers/x11/xorg/xorgserver-cve-2013-4396.patch
deleted file mode 100644
index 4b6727e61c0..00000000000
--- a/pkgs/servers/x11/xorg/xorgserver-cve-2013-4396.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 7bddc2ba16a2a15773c2ea8947059afa27727764 Mon Sep 17 00:00:00 2001
-From: Alan Coopersmith <alan.coopersmith@oracle.com>
-Date: Mon, 16 Sep 2013 21:47:16 -0700
-Subject: [PATCH] Avoid use-after-free in dix/dixfonts.c: doImageText()
- [CVE-2013-4396]
-
-Save a pointer to the passed in closure structure before copying it
-and overwriting the *c pointer to point to our copy instead of the
-original.  If we hit an error, once we free(c), reset c to point to
-the original structure before jumping to the cleanup code that
-references *c.
-
-Since one of the errors being checked for is whether the server was
-able to malloc(c->nChars * itemSize), the client can potentially pass
-a number of characters chosen to cause the malloc to fail and the
-error path to be taken, resulting in the read from freed memory.
-
-Since the memory is accessed almost immediately afterwards, and the
-X server is mostly single threaded, the odds of the free memory having
-invalid contents are low with most malloc implementations when not using
-memory debugging features, but some allocators will definitely overwrite
-the memory there, leading to a likely crash.
-
-Reported-by: Pedro Ribeiro <pedrib@gmail.com>
-Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-Reviewed-by: Julien Cristau <jcristau@debian.org>
----
- dix/dixfonts.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/dix/dixfonts.c b/dix/dixfonts.c
-index feb765d..2e34d37 100644
---- a/dix/dixfonts.c
-+++ b/dix/dixfonts.c
-@@ -1425,6 +1425,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
-             GC *pGC;
-             unsigned char *data;
-             ITclosurePtr new_closure;
-+            ITclosurePtr old_closure;
- 
-             /* We're putting the client to sleep.  We need to
-                save some state.  Similar problem to that handled
-@@ -1436,12 +1437,14 @@ doImageText(ClientPtr client, ITclosurePtr c)
-                 err = BadAlloc;
-                 goto bail;
-             }
-+            old_closure = c;
-             *new_closure = *c;
-             c = new_closure;
- 
-             data = malloc(c->nChars * itemSize);
-             if (!data) {
-                 free(c);
-+                c = old_closure;
-                 err = BadAlloc;
-                 goto bail;
-             }
-@@ -1452,6 +1455,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
-             if (!pGC) {
-                 free(c->data);
-                 free(c);
-+                c = old_closure;
-                 err = BadAlloc;
-                 goto bail;
-             }
-@@ -1464,6 +1468,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
-                 FreeScratchGC(pGC);
-                 free(c->data);
-                 free(c);
-+                c = old_closure;
-                 err = BadAlloc;
-                 goto bail;
-             }
--- 
-1.7.9.2
diff --git a/pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch b/pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch
deleted file mode 100644
index d85494f9029..00000000000
--- a/pkgs/servers/x11/xorg/xorgserver12-CVE-1940.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 6ca03b9161d33b1d2b55a3a1a913cf88deb2343f Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied@gmail.com>
-Date: Wed, 10 Apr 2013 06:09:01 +0000
-Subject: xf86: fix flush input to work with Linux evdev devices.
-
-So when we VT switch back and attempt to flush the input devices,
-we don't succeed because evdev won't return part of an event,
-since we were only asking for 4 bytes, we'd only get -EINVAL back.
-
-This could later cause events to be flushed that we shouldn't have
-gotten.
-
-This is a fix for CVE-2013-1940.
-
-Signed-off-by: Dave Airlie <airlied@redhat.com>
-Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
-Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
----
-diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
-index ab3757a..4d08c1e 100644
---- a/hw/xfree86/os-support/shared/posix_tty.c
-+++ b/hw/xfree86/os-support/shared/posix_tty.c
-@@ -421,7 +421,8 @@ xf86FlushInput(int fd)
- {
-     fd_set fds;
-     struct timeval timeout;
--    char c[4];
-+    /* this needs to be big enough to flush an evdev event. */
-+    char c[256];
- 
-     DebugF("FlushingSerial\n");
-     if (tcflush(fd, TCIFLUSH) == 0)
---
-cgit v0.9.0.2-2-gbebe
diff --git a/pkgs/tools/X11/vdpauinfo/default.nix b/pkgs/tools/X11/vdpauinfo/default.nix
index 23233861a06..0b1d889d700 100644
--- a/pkgs/tools/X11/vdpauinfo/default.nix
+++ b/pkgs/tools/X11/vdpauinfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, xlibs, libvdpau }:
 
 stdenv.mkDerivation rec {
-  name = "vdpauinfo-0.0.6";
-  
+  name = "vdpauinfo-0.1";
+
   src = fetchurl {
     url = "http://people.freedesktop.org/~aplattner/vdpau/${name}.tar.gz";
-    sha256 = "0m2llqjnwh3x6y56hik3znym2mfk1haq81a15p54m60ngf0mvfsj";
+    sha256 = "17q1spsrd5i4jzhpacbs0bb4blf74j8s45rpg0znyc1yjfk5dj5h";
   };
 
   buildInputs = [ pkgconfig xlibs.libX11 libvdpau ];
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index be42fb4d2a5..596c950b1f3 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -56,7 +56,6 @@ stdenv.mkDerivation rec {
     do
       patch -p1 < $a
     done
-    patch -p1 < ../xserver113.patch
     autoreconf -vfi
     ./configure $configureFlags --disable-xinerama --disable-xvfb --disable-xnest --disable-xorg --disable-dmx --disable-dri --disable-dri2 --disable-glx --prefix="$out"
     make TIGERVNC_SRCDIR=`pwd`/../..
diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix
index 285160e50d6..7c84d913157 100644
--- a/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib }:
 
 stdenv.mkDerivation rec {
-  name = "desktop-file-utils-0.16";
+  name = "desktop-file-utils-0.22";
 
   src = fetchurl {
-    url = "http://www.freedesktop.org/software/desktop-file-utils/releases/${name}.tar.bz2";
-    sha256 = "18y9am8n43rrnnldd1cy09ls39xz1gx3qczax2c4cjxayx5vwq3r";
+    url = "http://www.freedesktop.org/software/desktop-file-utils/releases/${name}.tar.xz";
+    sha256 = "1ianvr2a69yjv4rpyv30w7yjsmnsb23crrka5ndqxycj4rkk4dc4";
   };
 
   buildInputs = [ pkgconfig glib ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a1950122904..0c101ed918a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4526,10 +4526,7 @@ let
 
   heimdal = callPackage ../development/libraries/kerberos/heimdal.nix { };
 
-  harfbuzz = callPackage ../development/libraries/harfbuzz {
-    icu = null;
-    graphite2 = null;
-  };
+  harfbuzz = callPackage ../development/libraries/harfbuzz { };
 
   hawknl = callPackage ../development/libraries/hawknl { };
 
@@ -5146,7 +5143,8 @@ let
 
   libwmf = callPackage ../development/libraries/libwmf { };
 
-  libwnck = callPackage ../development/libraries/libwnck { };
+  libwnck = libwnck2;
+  libwnck2 = callPackage ../development/libraries/libwnck { };
   libwnck3 = callPackage ../development/libraries/libwnck/3.x.nix { };
 
   libwpd = callPackage ../development/libraries/libwpd { };
@@ -9070,11 +9068,7 @@ let
     gnutls = gnutls32;
   };
 
-  weston = callPackage ../applications/window-managers/weston {
-    cairo = cairo.override {
-      glSupport = true;
-    };
-  };
+  weston = callPackage ../applications/window-managers/weston { };
 
   windowmaker = callPackage ../applications/window-managers/windowmaker { };
 
@@ -9597,6 +9591,14 @@ let
     cinnamon-translations  = callPackage ../desktops/cinnamon/cinnamon-translations.nix { };
     }; 
 
+  cinnamon = recurseIntoAttrs {
+    cjs = callPackage ../desktops/cinnamon/cjs.nix { };
+
+    cinnamon-desktop = callPackage ../desktops/cinnamon/cinnamon-desktop.nix {
+      inherit (gnome3) gnome_common;
+    };
+  };
+
   enlightenment = callPackage ../desktops/enlightenment { };
 
   e17 = recurseIntoAttrs (
@@ -10271,7 +10273,7 @@ let
       libXmu libXext xextproto libSM libICE;
     ghostscript = ghostscriptX;
     harfbuzz = harfbuzz.override {
-      inherit icu graphite2;
+      withIcu = true; withGraphite2 = true;
     };
   };