about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development')
-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
58 files changed, 811 insertions, 365 deletions
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