From 78310258e332209d7b4d86b353c7dfab3d31a75a Mon Sep 17 00:00:00 2001
From: Antono Vasiljev <self@antono.info>
Date: Tue, 10 Jul 2012 19:03:13 +0300
Subject: [PATCH 01/23] Attempt to define isolated attrset for gnome-3

---
 .../gnome-3/core/at-spi2-atk/default.nix      | 14 +++++
 .../gnome-3/core/at-spi2-core/default.nix     | 14 +++++
 pkgs/desktops/gnome-3/core/atk/default.nix    | 38 +++++++++++
 pkgs/desktops/gnome-3/core/gconf/default.nix  | 22 +++++++
 .../gnome-3/core/gdk-pixbuf/default.nix       | 33 ++++++++++
 pkgs/desktops/gnome-3/core/glib/default.nix   | 44 +++++++++++++
 .../gnome-3/core/gnome-terminal/default.nix   | 20 ++++++
 .../core/gobject-introspection/default.nix    | 28 +++++++++
 .../gsettings-desktop-schemas/default.nix     | 21 +++++++
 pkgs/desktops/gnome-3/core/gtk/default.nix    | 63 +++++++++++++++++++
 pkgs/desktops/gnome-3/core/pango/default.nix  | 41 ++++++++++++
 pkgs/desktops/gnome-3/core/vte/default.nix    | 46 ++++++++++++++
 pkgs/desktops/gnome-3/core/zenity/default.nix | 20 ++++++
 pkgs/desktops/gnome-3/default.nix             | 49 +++++++++++++++
 .../gnome-3/desktop/gnome-desktop/default.nix | 18 ++++++
 .../desktop/gnome-dictionary/default.nix      | 15 +++++
 .../gnome-3/desktop/rarian/default.nix        | 11 ++++
 .../gnome-3/desktop/scrollkeeper/default.nix  | 18 ++++++
 pkgs/top-level/all-packages.nix               |  5 ++
 19 files changed, 520 insertions(+)
 create mode 100644 pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/atk/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/gconf/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/glib/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/gobject-introspection/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/gtk/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/pango/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/vte/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/zenity/default.nix
 create mode 100644 pkgs/desktops/gnome-3/default.nix
 create mode 100644 pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
 create mode 100644 pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
 create mode 100644 pkgs/desktops/gnome-3/desktop/rarian/default.nix
 create mode 100644 pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix

diff --git a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
new file mode 100644
index 00000000000..a26928fadf7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
+, intltool, dbus_glib }:
+
+stdenv.mkDerivation {
+  name = "at-spi2-atk-2.5.3";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/at-spi2-atk/2.5/at-spi2-atk-2.5.3.tar.xz;
+    sha256 = "16y6q0v3va7r77ns1r6w4mg3rvyxmnyzx1b3n0wqjzmqkd8avgmx";
+  };
+
+  buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
+                  intltool dbus_glib ];
+}
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
new file mode 100644
index 00000000000..5d7170f4450
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, python, pkgconfig, popt, libX11, libICE, xlibs, libXi
+, intltool, dbus_glib }:
+
+stdenv.mkDerivation {
+  name = "at-spi2-core-2.5.3";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/at-spi2-core/2.5/at-spi2-core-2.5.3.tar.xz;
+    sha256 = "0g1w8k13xjz6jcbkdy3h8w4x8g5g1f0nwykidairvfyi6yi9xdpm";
+  };
+
+  buildInputs = [ python pkgconfig popt libX11 libICE xlibs.libXtst libXi
+                  intltool dbus_glib ];
+}
diff --git a/pkgs/desktops/gnome-3/core/atk/default.nix b/pkgs/desktops/gnome-3/core/atk/default.nix
new file mode 100644
index 00000000000..98ff11cd12e
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/atk/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, pkgconfig, perl, gnome3 }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "2.5";
+  versionMinor = "3";
+  name = "atk-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/atk/${versionMajor}/atk-${versionMajor}.${versionMinor}.tar.xz";
+    sha256 = "04v3hzdgp2cajpgkbgr36wlxcdbpzzywyl6g2fhhyjgm9vrqw4dc";
+  };
+
+  buildNativeInputs = [ pkgconfig perl ];
+
+  propagatedBuildInputs = [ gnome3.glib ];
+
+  postInstall = "rm -rf $out/share/gtk-doc";
+
+  meta = {
+    description = "ATK, the accessibility toolkit";
+
+    longDescription = ''
+      ATK is the Accessibility Toolkit.  It provides a set of generic
+      interfaces allowing accessibility technologies such as screen
+      readers to interact with a graphical user interface.  Using the
+      ATK interfaces, accessibility tools have full access to view and
+      control running applications.
+    '';
+
+    homepage = http://library.gnome.org/devel/atk/;
+
+    license = "LGPLv2+";
+
+    maintainers = with stdenv.lib.maintainers; [ raskin urkud antono ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+}
diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix
new file mode 100644
index 00000000000..cfe2b2e4465
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gconf/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, dbus_glib, gnome3, libxml2
+, intltool, dbus_libs, polkit }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.2";
+  versionMinor = "5";
+  moduleName   = "GConf";
+
+  origName = "${moduleName}-${versionMajor}.${versionMinor}";
+  
+  name = "gconf-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${origName}.tar.xz";
+    sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd";
+  };
+
+  buildInputs = [ dbus_libs dbus_glib libxml2 polkit gnome3.gtk ];
+  propagatedBuildInputs = [ gnome3.glib ];
+  buildNativeInputs = [ pkgconfig intltool ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix b/pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix
new file mode 100644
index 00000000000..6daea5abf02
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, libtiff, libjpeg, libpng, libX11, xz, jasper }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "2.26";
+  versionMinor = "1";
+
+  name = "gdk-pixbuf-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gdk-pixbuf/${versionMajor}/gdk-pixbuf-${versionMajor}.${versionMinor}.tar.xz";
+    sha256 = "1fn79r5vk1ck6xd5f7dgckbfhf2xrqq6f3389jx1bk6rb0mz22m6";
+  };
+
+  # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
+  buildInputs = [ libX11 ];
+
+  buildNativeInputs = [ pkgconfig ];
+
+  propagatedBuildInputs = [ gnome3.glib libtiff libjpeg libpng jasper ];
+
+  configureFlags = "--with-libjasper --with-x11";
+
+  postInstall = "rm -rf $out/share/gtk-doc";
+
+  meta = {
+    description = "A library for image loading and manipulation";
+
+    homepage = http://library.gnome.org/devel/gdk-pixbuf/;
+
+    maintainers = [ stdenv.lib.maintainers.antono ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/glib/default.nix b/pkgs/desktops/gnome-3/core/glib/default.nix
new file mode 100644
index 00000000000..8d60e48ffee
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/glib/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib, libffi, python, pcre }:
+
+stdenv.mkDerivation rec {
+  versionMajor = "2.33";
+  versionMinor = "3";
+  moduleName   = "glib";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1409vc8ac296x341s80q36qvgbzpwpcvxg2xdis5w1vzzxfnkqja";
+  };
+
+  # configure script looks for d-bus but it is only needed for tests
+  buildInputs = [ pcre ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
+  buildNativeInputs = [ perl pkgconfig gettext python ];
+
+  propagatedBuildInputs = [ zlib libffi ];
+
+  configureFlags = "--disable-fam";
+
+  passthru.gioModuleDir = "lib/gio/modules";
+
+  postInstall = "rm -rvf $out/share/gtk-doc";
+
+  meta = {
+    description = "GLib, a C library of programming buildings blocks";
+
+    longDescription = ''
+      GLib provides the core application building blocks for libraries
+      and applications written in C.  It provides the core object
+      system used in GNOME, the main loop implementation, and a large
+      set of utility functions for strings and common data structures.
+    '';
+
+    homepage = http://www.gtk.org/;
+
+    license = "LGPLv2+";
+
+    maintainers = with stdenv.lib.maintainers; [ raskin urkud antono ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
new file mode 100644
index 00000000000..ccd827b8d5d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which, GConf3 }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.4";
+  versionMinor = "1.1";
+
+  name = "gnome-terminal-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-terminal/${versionMajor}/${name}.tar.xz";
+    sha256 = "1p9zqjmkxryf2kyghhhwwpsh4kd8y1jzzwc9zxghmpxszi9a5m0l";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte GConf3 ];
+
+  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gobject-introspection/default.nix b/pkgs/desktops/gnome-3/core/gobject-introspection/default.nix
new file mode 100644
index 00000000000..b630e210762
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gobject-introspection/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, cairo }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "1.33";
+  versionMinor = "3";
+  moduleName   = "gobject-introspection";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1dziqpas9hg2nkyzy6l53mrjnp2argfszj4cqzdw7ia0zfccmc4q";
+  };
+
+  buildInputs = [ flex bison glib pkgconfig python ];
+  propagatedBuildInputs = [ libffi ];
+
+  postInstall = "rm -rf $out/share/gtk-doc";
+
+  meta = with stdenv.lib; {
+    maintainers = [ maintainers.antono ];
+    platforms = platforms.linux;
+    homepage = http://live.gnome.org/GObjectIntrospection;
+  };
+
+  configureFlags = [ "--disable-tests" ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
new file mode 100644
index 00000000000..4de69511fd1
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.5";
+  versionMinor = "3";
+  moduleName   = "gsettings-desktop-schemas";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0vxbpwqvm55a4ssaddfsw2jy0q8bvsv8wbjps4yyyi9iykfylwli";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.glib libxml2 libxslt libX11 ];
+
+  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/core/gtk/default.nix b/pkgs/desktops/gnome-3/core/gtk/default.nix
new file mode 100644
index 00000000000..6fb9d05ece8
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gtk/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, cairo, perl, xlibs
+, xz
+, xineramaSupport ? true
+, cupsSupport ? true, cups ? null
+}:
+
+assert xineramaSupport -> xlibs.libXinerama != null;
+assert cupsSupport -> cups != null;
+
+stdenv.mkDerivation rec {
+  versionMajor = "3.5";
+  versionMinor = "6";
+  moduleName   = "gtk+";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1088d5n3yzzjxm13c29sys83m28dmd5b95i1wxc6459vq2d4l14g";
+  };
+
+  enableParallelBuilding = true;
+
+  configureFlags =
+    [ "--without-atk-bridge"
+      "--enable-gtk-doc-html=no"
+      "--enable-x11-backend"
+      "--disable-tests"
+    ];
+
+  buildNativeInputs = [ perl pkgconfig ];
+
+  propagatedBuildInputs =
+    [ xlibs.xlibs gnome3.glib gnome3.atk gnome3.gdk_pixbuf gnome3.pango cairo
+      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
+    ]
+    ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
+    ++ stdenv.lib.optionals cupsSupport [ cups ];
+
+  postInstall = "rm -rf $out/share/gtk-doc";
+
+  meta = {
+    description = "A multi-platform toolkit for creating graphical user interfaces";
+
+    longDescription = ''
+      GTK+ is a highly usable, feature rich toolkit for creating
+      graphical user interfaces which boasts cross platform
+      compatibility and an easy to use API.  GTK+ it is written in C,
+      but has bindings to many other popular programming languages
+      such as C++, Python and C# among others.  GTK+ is licensed
+      under the GNU LGPL 2.1 allowing development of both free and
+      proprietary software with GTK+ without any license fees or
+      royalties.
+    '';
+
+    homepage = http://www.gtk.org/;
+
+    license = "LGPLv2+";
+
+    maintainers = with stdenv.lib.maintainers; [ urkud raskin antono ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/pango/default.nix b/pkgs/desktops/gnome-3/core/pango/default.nix
new file mode 100644
index 00000000000..86ec72fec2f
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/pango/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "1.30";
+  versionMinor = "1";
+  moduleName   = "pango";
+
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1ghc49b5ahv2is7hlq6is5jbpkvhx5kkays6spf2s9rw2hg0d31s";
+  };
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin gettext;
+
+  buildNativeInputs = [ pkgconfig ];
+
+  propagatedBuildInputs = [ x11 glib cairo libpng ];
+
+  postInstall = "rm -rf $out/share/gtk-doc";
+
+  meta = {
+    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
+
+    longDescription = ''
+      Pango is a library for laying out and rendering of text, with an
+      emphasis on internationalization.  Pango can be used anywhere
+      that text layout is needed, though most of the work on Pango so
+      far has been done in the context of the GTK+ widget toolkit.
+      Pango forms the core of text and font handling for GTK+-2.x.
+    '';
+
+    homepage = http://www.pango.org/;
+    license = "LGPLv2+";
+
+    maintainers = with stdenv.lib.maintainers; [ raskin urkud ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
new file mode 100644
index 00000000000..ffc3aab8706
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses
+, pythonSupport ? false, python, pygtk}:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "0.32";
+  versionMinor = "2";
+  moduleName   = "vte";
+  
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0sj837b9ib36gx00hzdinv23f7w91fd5mcw1p6wdi053yxqw17nn";
+  };
+
+  buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++
+                stdenv.lib.optionals pythonSupport [python pygtk];
+
+  configureFlags = ''
+    ${if pythonSupport then "--enable-python" else "--disable-python"}
+  '';
+
+  postInstall = stdenv.lib.optionalString pythonSupport ''
+    cd $(toPythonPath $out)/gtk-2.0
+    for n in *; do
+      ln -s "gtk-2.0/$n" "../$n"
+    done
+  '';
+
+  meta = {
+    homepage = http://www.gnome.org/;
+    description = "A library implementing a terminal emulator widget for GTK+";
+    longDescription = ''
+      VTE is a library (libvte) implementing a terminal emulator widget for
+      GTK+, and a minimal sample application (vte) using that.  Vte is
+      mainly used in gnome-terminal, but can also be used to embed a
+      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
+      character set conversion, as well as emulating any terminal known to
+      the system's terminfo database.
+    '';
+    license = "LGPLv2";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl antono ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
new file mode 100644
index 00000000000..3a7aac08da6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
+, gnome_doc_utils, intltool, libX11, which }:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "3.4";
+  versionMinor = "0";
+
+  name = "zenity-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/zenity/${versionMajor}/zenity-${versionMajor}.${versionMinor}.tar.xz";
+    sha256 = "1bqbfcvd3kj2xk15fvbcdaqvyg9qvymlhn8cwvg5m6v4gicniw2w";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ gnome3.gtk libxml2 libxslt libX11 ];
+
+  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
new file mode 100644
index 00000000000..b9558fa7ec6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -0,0 +1,49 @@
+{ callPackage, lib, self, stdenv, gettext, overrides ? {} }:
+
+{
+
+  inherit (lib) lowPrio hiPrio appendToName makeOverridable;
+
+  __overrides = overrides;
+
+#### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
+
+  at_spi2_atk = callPackage ./core/at-spi2-atk { };
+
+  at_spi2_core = callPackage ./core/at-spi2-core { };
+
+  atk = callPackage ./core/atk { };
+
+  gconf = callPackage ./core/gconf { };
+
+  gdk_pixbuf = callPackage ./core/gdk-pixbuf { };
+
+  glib = callPackage ./core/glib { };
+
+  gobject_introspection = callPackage ./core/gobject-introspection { };
+
+  gtk = callPackage ./core/gtk { };
+
+  gnome_terminal = callPackage ./core/gnome-terminal { };
+
+  gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
+
+  pango = callPackage ./core/pango { };
+
+  vte = callPackage ./core/vte { };
+
+  zenity = callPackage ./core/zenity { };
+
+#### Apps (http://ftp.acc.umu.se/pub/GNOME/apps/)
+
+  gnome_dictionary = callPackage ./desktop/gnome-dictionary { };
+
+  gnome_desktop = callPackage ./desktop/gnome-desktop { };
+
+  # Removed from recent GNOME releases, but still required
+  scrollkeeper = callPackage ./desktop/scrollkeeper { };
+
+  # scrollkeeper replacement
+  rarian = callPackage ./desktop/rarian { };
+
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
new file mode 100644
index 00000000000..4d22f6ad746
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3
+, intltool, gnome_doc_utils}:
+
+stdenv.mkDerivation rec {
+
+  majorVersion = "3.5";
+  minorVersion = "3";
+  name = "gnome-desktop-${majorVersion}.${minorVersion}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
+    sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11
+                  gnome3.gtk gnome3.glib intltool gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
new file mode 100644
index 00000000000..2c3efcf3a07
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, fetchurl, pkgconfig, gnome3, gnome_doc_utils, intltool, which
+, libxml2, libxslt }:
+
+stdenv.mkDerivation rec {
+  version = "3.5.2";
+  name = "gnome-dictionary-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-dictionary/3.5/${name}.tar.xz";
+    sha256 = "1cq32csxn27vir5nlixx337ym2nal9ykq3s1j7yynh2adh4m0jil";
+  };
+
+  buildInputs = [ gnome3.gtk ];
+  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt gnome3.scrollkeeper ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
new file mode 100644
index 00000000000..77a2b710f44
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+
+stdenv.mkDerivation rec {
+  name = "rarian-0.8.1";
+  src = fetchurl {
+    url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
+    sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
+  };
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
new file mode 100644
index 00000000000..97dcbf4e004
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}:
+
+stdenv.mkDerivation {
+  name = "scrollkeeper-0.3.14";
+  src = fetchurl {
+    url = mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2;
+    sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
+  };
+
+  # The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess
+  preConfigure = "
+    substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
+    cp ${automake}/share/automake*/config.{sub,guess} .
+  ";
+
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2acb2bb9ed6..bf5b5fe0ace 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8055,6 +8055,11 @@ let
     inherit (pkgs) libsoup libwnck gtk_doc gnome_doc_utils;
   };
 
+  gnome3 = callPackage ../desktops/gnome-3 {
+    callPackage = pkgs.newScope pkgs.gnome3;
+    self = pkgs.gnome3;
+  };
+
   gnome = recurseIntoAttrs gnome2;
 
   kde3 = recurseIntoAttrs {

From 78c742c720ad85cef3b2597827ebcc26ea95684c Mon Sep 17 00:00:00 2001
From: Antono Vasiljev <self@antono.info>
Date: Wed, 18 Jul 2012 01:29:22 +0300
Subject: [PATCH 02/23] GNOME3: at-spi2-core

---
 .../gnome-3/core/at-spi2-core/default.nix       | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

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 5d7170f4450..de4f3e8485f 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -1,14 +1,17 @@
-{ stdenv, fetchurl, python, pkgconfig, popt, libX11, libICE, xlibs, libXi
+{ stdenv, fetchurl, python, pkgconfig, popt, libX11, xextproto, libSM, libICE, libXtst, libXi
 , intltool, dbus_glib }:
 
-stdenv.mkDerivation {
-  name = "at-spi2-core-2.5.3";
+stdenv.mkDerivation rec {
+
+  versionMajor = "2.5";
+  versionMinor = "4";
+  moduleName   = "at-spi2-core";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
-    url = mirror://gnome/sources/at-spi2-core/2.5/at-spi2-core-2.5.3.tar.xz;
-    sha256 = "0g1w8k13xjz6jcbkdy3h8w4x8g5g1f0nwykidairvfyi6yi9xdpm";
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "167zm1a36rd09wg161fsq8swnzdk3wv23kq49nd0l7gr89flf9ig";
   };
 
-  buildInputs = [ python pkgconfig popt libX11 libICE xlibs.libXtst libXi
-                  intltool dbus_glib ];
+  buildInputs = [ python pkgconfig popt libX11 xextproto libSM libICE libXtst libXi intltool dbus_glib ];
 }

From cd7027bdaecda32b83805b0f336bbfee0f2fadc2 Mon Sep 17 00:00:00 2001
From: Antono Vasiljev <self@antono.info>
Date: Wed, 18 Jul 2012 01:46:29 +0300
Subject: [PATCH 03/23] GNOME3: at-spi2-atk (TODO: deal with gschemas.compiled
 conflict)

---
 .../desktops/gnome-3/core/at-spi2-atk/default.nix | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

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 a26928fadf7..12b4c08cc6d 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -1,14 +1,17 @@
 { stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
-, intltool, dbus_glib }:
+, intltool, dbus_glib, gnome3, libSM }:
 
-stdenv.mkDerivation {
-  name = "at-spi2-atk-2.5.3";
+stdenv.mkDerivation rec {
+  versionMajor = "2.5";
+  versionMinor = "4";
+  moduleName   = "at-spi2-atk";
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
-    url = mirror://gnome/sources/at-spi2-atk/2.5/at-spi2-atk-2.5.3.tar.xz;
-    sha256 = "16y6q0v3va7r77ns1r6w4mg3rvyxmnyzx1b3n0wqjzmqkd8avgmx";
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "1bl5jl644slf5mmnr4z7xj433prvjjpgmv9rdmxdny23j08qa8vs";
   };
 
   buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
-                  intltool dbus_glib ];
+                  intltool dbus_glib gnome3.at_spi2_core libSM ];
 }

From 9df88a047238b253ddfbfdace2c9f76712b8941a Mon Sep 17 00:00:00 2001
From: Antono Vasiljev <self@antono.info>
Date: Thu, 16 Aug 2012 15:56:23 +0300
Subject: [PATCH 04/23] GNOME3: Low prio for atk

---
 pkgs/desktops/gnome-3/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index b9558fa7ec6..f35a4f40d91 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -8,7 +8,7 @@
 
 #### Core (http://ftp.acc.umu.se/pub/GNOME/core/)
 
-  at_spi2_atk = callPackage ./core/at-spi2-atk { };
+  at_spi2_atk = lib.lowPrio (callPackage ./core/at-spi2-atk { });
 
   at_spi2_core = callPackage ./core/at-spi2-core { };
 

From 049c38a9a292376d9c99628015d1adc609ac347e Mon Sep 17 00:00:00 2001
From: Antono Vasiljev <self@antono.info>
Date: Thu, 16 Aug 2012 15:56:51 +0300
Subject: [PATCH 05/23] GNOME3: bump atk version

---
 pkgs/desktops/gnome-3/core/atk/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/desktops/gnome-3/core/atk/default.nix b/pkgs/desktops/gnome-3/core/atk/default.nix
index 98ff11cd12e..62c610de565 100644
--- a/pkgs/desktops/gnome-3/core/atk/default.nix
+++ b/pkgs/desktops/gnome-3/core/atk/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   versionMajor = "2.5";
-  versionMinor = "3";
+  versionMinor = "4";
   name = "atk-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/atk/${versionMajor}/atk-${versionMajor}.${versionMinor}.tar.xz";
-    sha256 = "04v3hzdgp2cajpgkbgr36wlxcdbpzzywyl6g2fhhyjgm9vrqw4dc";
+    sha256 = "1asaq6y9cdnmji5czl9xj4cp86w9d7g78sa7ya5k6gslqj76svdg";
   };
 
   buildNativeInputs = [ pkgconfig perl ];

From 713b420be8926ae13a90ddd4fdafe33f0a5c2923 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Tue, 29 Jan 2013 05:08:33 +0100
Subject: [PATCH 06/23] removed some libraries that are up-to-date on the top
 level

---
 pkgs/desktops/gnome-3/core/atk/default.nix    | 38 -----------
 .../gnome-3/core/gdk-pixbuf/default.nix       | 33 ----------
 pkgs/desktops/gnome-3/core/glib/default.nix   | 44 -------------
 .../core/gobject-introspection/default.nix    | 28 ---------
 pkgs/desktops/gnome-3/core/gtk/default.nix    | 63 -------------------
 pkgs/desktops/gnome-3/core/pango/default.nix  | 41 ------------
 pkgs/desktops/gnome-3/default.nix             | 19 ++----
 7 files changed, 5 insertions(+), 261 deletions(-)
 delete mode 100644 pkgs/desktops/gnome-3/core/atk/default.nix
 delete mode 100644 pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix
 delete mode 100644 pkgs/desktops/gnome-3/core/glib/default.nix
 delete mode 100644 pkgs/desktops/gnome-3/core/gobject-introspection/default.nix
 delete mode 100644 pkgs/desktops/gnome-3/core/gtk/default.nix
 delete mode 100644 pkgs/desktops/gnome-3/core/pango/default.nix

diff --git a/pkgs/desktops/gnome-3/core/atk/default.nix b/pkgs/desktops/gnome-3/core/atk/default.nix
deleted file mode 100644
index 62c610de565..00000000000
--- a/pkgs/desktops/gnome-3/core/atk/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, perl, gnome3 }:
-
-stdenv.mkDerivation rec {
-  versionMajor = "2.5";
-  versionMinor = "4";
-  name = "atk-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/atk/${versionMajor}/atk-${versionMajor}.${versionMinor}.tar.xz";
-    sha256 = "1asaq6y9cdnmji5czl9xj4cp86w9d7g78sa7ya5k6gslqj76svdg";
-  };
-
-  buildNativeInputs = [ pkgconfig perl ];
-
-  propagatedBuildInputs = [ gnome3.glib ];
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = {
-    description = "ATK, the accessibility toolkit";
-
-    longDescription = ''
-      ATK is the Accessibility Toolkit.  It provides a set of generic
-      interfaces allowing accessibility technologies such as screen
-      readers to interact with a graphical user interface.  Using the
-      ATK interfaces, accessibility tools have full access to view and
-      control running applications.
-    '';
-
-    homepage = http://library.gnome.org/devel/atk/;
-
-    license = "LGPLv2+";
-
-    maintainers = with stdenv.lib.maintainers; [ raskin urkud antono ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-
-}
diff --git a/pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix b/pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix
deleted file mode 100644
index 6daea5abf02..00000000000
--- a/pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, libtiff, libjpeg, libpng, libX11, xz, jasper }:
-
-stdenv.mkDerivation rec {
-  versionMajor = "2.26";
-  versionMinor = "1";
-
-  name = "gdk-pixbuf-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gdk-pixbuf/${versionMajor}/gdk-pixbuf-${versionMajor}.${versionMinor}.tar.xz";
-    sha256 = "1fn79r5vk1ck6xd5f7dgckbfhf2xrqq6f3389jx1bk6rb0mz22m6";
-  };
-
-  # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
-  buildInputs = [ libX11 ];
-
-  buildNativeInputs = [ pkgconfig ];
-
-  propagatedBuildInputs = [ gnome3.glib libtiff libjpeg libpng jasper ];
-
-  configureFlags = "--with-libjasper --with-x11";
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = {
-    description = "A library for image loading and manipulation";
-
-    homepage = http://library.gnome.org/devel/gdk-pixbuf/;
-
-    maintainers = [ stdenv.lib.maintainers.antono ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/glib/default.nix b/pkgs/desktops/gnome-3/core/glib/default.nix
deleted file mode 100644
index 8d60e48ffee..00000000000
--- a/pkgs/desktops/gnome-3/core/glib/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, perl, libiconv, zlib, libffi, python, pcre }:
-
-stdenv.mkDerivation rec {
-  versionMajor = "2.33";
-  versionMinor = "3";
-  moduleName   = "glib";
-
-  name = "${moduleName}-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1409vc8ac296x341s80q36qvgbzpwpcvxg2xdis5w1vzzxfnkqja";
-  };
-
-  # configure script looks for d-bus but it is only needed for tests
-  buildInputs = [ pcre ] ++ stdenv.lib.optional (!stdenv.isLinux) libiconv;
-  buildNativeInputs = [ perl pkgconfig gettext python ];
-
-  propagatedBuildInputs = [ zlib libffi ];
-
-  configureFlags = "--disable-fam";
-
-  passthru.gioModuleDir = "lib/gio/modules";
-
-  postInstall = "rm -rvf $out/share/gtk-doc";
-
-  meta = {
-    description = "GLib, a C library of programming buildings blocks";
-
-    longDescription = ''
-      GLib provides the core application building blocks for libraries
-      and applications written in C.  It provides the core object
-      system used in GNOME, the main loop implementation, and a large
-      set of utility functions for strings and common data structures.
-    '';
-
-    homepage = http://www.gtk.org/;
-
-    license = "LGPLv2+";
-
-    maintainers = with stdenv.lib.maintainers; [ raskin urkud antono ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gobject-introspection/default.nix b/pkgs/desktops/gnome-3/core/gobject-introspection/default.nix
deleted file mode 100644
index b630e210762..00000000000
--- a/pkgs/desktops/gnome-3/core/gobject-introspection/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python, cairo }:
-
-stdenv.mkDerivation rec {
-
-  versionMajor = "1.33";
-  versionMinor = "3";
-  moduleName   = "gobject-introspection";
-
-  name = "${moduleName}-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1dziqpas9hg2nkyzy6l53mrjnp2argfszj4cqzdw7ia0zfccmc4q";
-  };
-
-  buildInputs = [ flex bison glib pkgconfig python ];
-  propagatedBuildInputs = [ libffi ];
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = with stdenv.lib; {
-    maintainers = [ maintainers.antono ];
-    platforms = platforms.linux;
-    homepage = http://live.gnome.org/GObjectIntrospection;
-  };
-
-  configureFlags = [ "--disable-tests" ];
-}
diff --git a/pkgs/desktops/gnome-3/core/gtk/default.nix b/pkgs/desktops/gnome-3/core/gtk/default.nix
deleted file mode 100644
index 6fb9d05ece8..00000000000
--- a/pkgs/desktops/gnome-3/core/gtk/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, cairo, perl, xlibs
-, xz
-, xineramaSupport ? true
-, cupsSupport ? true, cups ? null
-}:
-
-assert xineramaSupport -> xlibs.libXinerama != null;
-assert cupsSupport -> cups != null;
-
-stdenv.mkDerivation rec {
-  versionMajor = "3.5";
-  versionMinor = "6";
-  moduleName   = "gtk+";
-
-  name = "${moduleName}-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1088d5n3yzzjxm13c29sys83m28dmd5b95i1wxc6459vq2d4l14g";
-  };
-
-  enableParallelBuilding = true;
-
-  configureFlags =
-    [ "--without-atk-bridge"
-      "--enable-gtk-doc-html=no"
-      "--enable-x11-backend"
-      "--disable-tests"
-    ];
-
-  buildNativeInputs = [ perl pkgconfig ];
-
-  propagatedBuildInputs =
-    [ xlibs.xlibs gnome3.glib gnome3.atk gnome3.gdk_pixbuf gnome3.pango cairo
-      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
-    ]
-    ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
-    ++ stdenv.lib.optionals cupsSupport [ cups ];
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = {
-    description = "A multi-platform toolkit for creating graphical user interfaces";
-
-    longDescription = ''
-      GTK+ is a highly usable, feature rich toolkit for creating
-      graphical user interfaces which boasts cross platform
-      compatibility and an easy to use API.  GTK+ it is written in C,
-      but has bindings to many other popular programming languages
-      such as C++, Python and C# among others.  GTK+ is licensed
-      under the GNU LGPL 2.1 allowing development of both free and
-      proprietary software with GTK+ without any license fees or
-      royalties.
-    '';
-
-    homepage = http://www.gtk.org/;
-
-    license = "LGPLv2+";
-
-    maintainers = with stdenv.lib.maintainers; [ urkud raskin antono ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/pango/default.nix b/pkgs/desktops/gnome-3/core/pango/default.nix
deleted file mode 100644
index 86ec72fec2f..00000000000
--- a/pkgs/desktops/gnome-3/core/pango/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gettext, x11, glib, cairo, libpng }:
-
-stdenv.mkDerivation rec {
-
-  versionMajor = "1.30";
-  versionMinor = "1";
-  moduleName   = "pango";
-
-  name = "${moduleName}-${versionMajor}.${versionMinor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1ghc49b5ahv2is7hlq6is5jbpkvhx5kkays6spf2s9rw2hg0d31s";
-  };
-
-  buildInputs = stdenv.lib.optional stdenv.isDarwin gettext;
-
-  buildNativeInputs = [ pkgconfig ];
-
-  propagatedBuildInputs = [ x11 glib cairo libpng ];
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = {
-    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
-
-    longDescription = ''
-      Pango is a library for laying out and rendering of text, with an
-      emphasis on internationalization.  Pango can be used anywhere
-      that text layout is needed, though most of the work on Pango so
-      far has been done in the context of the GTK+ widget toolkit.
-      Pango forms the core of text and font handling for GTK+-2.x.
-    '';
-
-    homepage = http://www.pango.org/;
-    license = "LGPLv2+";
-
-    maintainers = with stdenv.lib.maintainers; [ raskin urkud ];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index f35a4f40d91..cdf44142c90 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -1,6 +1,9 @@
-{ callPackage, lib, self, stdenv, gettext, overrides ? {} }:
+{ callPackage, lib, self, stdenv, gettext, overrides ? {}, pkgs }:
 
-{
+rec {
+  inherit (pkgs) fetchurl_gnome glib gtk3 atk pango;
+  gtk = gtk3;
+  orbit = pkgs.gnome2.ORBit2;
 
   inherit (lib) lowPrio hiPrio appendToName makeOverridable;
 
@@ -12,24 +15,12 @@
 
   at_spi2_core = callPackage ./core/at-spi2-core { };
 
-  atk = callPackage ./core/atk { };
-
   gconf = callPackage ./core/gconf { };
 
-  gdk_pixbuf = callPackage ./core/gdk-pixbuf { };
-
-  glib = callPackage ./core/glib { };
-
-  gobject_introspection = callPackage ./core/gobject-introspection { };
-
-  gtk = callPackage ./core/gtk { };
-
   gnome_terminal = callPackage ./core/gnome-terminal { };
 
   gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
 
-  pango = callPackage ./core/pango { };
-
   vte = callPackage ./core/vte { };
 
   zenity = callPackage ./core/zenity { };

From 811605c3a47e04d837cc5b15a184522c3ab6d1c4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 17:46:50 +0100
Subject: [PATCH 07/23] gtk3: major update to 3.6.4

---
 .../gtk+/{3.2.x.nix => 3-default.nix}          | 18 ++++++++----------
 pkgs/top-level/all-packages.nix                |  4 +++-
 2 files changed, 11 insertions(+), 11 deletions(-)
 rename pkgs/development/libraries/gtk+/{3.2.x.nix => 3-default.nix} (76%)

diff --git a/pkgs/development/libraries/gtk+/3.2.x.nix b/pkgs/development/libraries/gtk+/3-default.nix
similarity index 76%
rename from pkgs/development/libraries/gtk+/3.2.x.nix
rename to pkgs/development/libraries/gtk+/3-default.nix
index cace1b626f4..3b7361835e2 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
+, gdk_pixbuf, xz, at_spi2_atk
 , xineramaSupport ? true
 , cupsSupport ? true, cups ? null
 }:
@@ -8,21 +8,19 @@ assert xineramaSupport -> xlibs.libXinerama != null;
 assert cupsSupport -> cups != null;
 
 stdenv.mkDerivation rec {
-  name = "gtk+-3.2.4";
+  name = "gtk+-3.6.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk+/3.2/${name}.tar.xz";
-    sha256 = "f981bf514858c00d7084bd6f6c34b3c60b8aebdb959e7aca6faa59ed67c136bd";
+    url = "mirror://gnome/sources/gtk+/3.6/${name}.tar.xz";
+    sha256 = "18gijn9ghzv7d6np10q9bhp7lwgjb462n3xj1dn9hkwkdyc3gnnv";
   };
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ perl pkgconfig ];
-
-  propagatedBuildInputs =
-    [ xlibs.xlibs glib atk pango gdk_pixbuf cairo
-      xlibs.libXrandr xlibs.libXrender xlibs.libXcomposite xlibs.libXi
-    ]
+  buildInputs = with xlibs; [
+    pkgconfig glib atk pango gdk_pixbuf at_spi2_atk
+    libXrandr libXrender libXcomposite libXi
+  ]
     ++ stdenv.lib.optional xineramaSupport xlibs.libXinerama
     ++ stdenv.lib.optionals cupsSupport [ cups ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e260ec13ea4..c6458b72e4c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3894,7 +3894,9 @@ let
   gtkmm = callPackage ../development/libraries/gtkmm/2.24.x.nix { };
   gtkmm3 = callPackage ../development/libraries/gtkmm/3.2.x.nix { };
 
-  gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3.2.x.nix { });
+  gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3-default.nix {
+    inherit (gnome3) at_spi2_atk;
+  });
 
   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
     gtksharp = gtksharp2;

From 4b3e2531c965947e823e085f083ef4d81929ca31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Tue, 29 Jan 2013 05:10:07 +0100
Subject: [PATCH 08/23] update at-spi

---
 pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix  | 10 +++++-----
 pkgs/desktops/gnome-3/core/at-spi2-core/default.nix |  6 +++---
 2 files changed, 8 insertions(+), 8 deletions(-)

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 12b4c08cc6d..2ef9118f235 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, python, pkgconfig, popt, atk, libX11, libICE, xlibs, libXi
-, intltool, dbus_glib, gnome3, libSM }:
+, intltool, dbus_glib, at_spi2_core, libSM }:
 
 stdenv.mkDerivation rec {
-  versionMajor = "2.5";
-  versionMinor = "4";
+  versionMajor = "2.6";
+  versionMinor = "2";
   moduleName   = "at-spi2-atk";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1bl5jl644slf5mmnr4z7xj433prvjjpgmv9rdmxdny23j08qa8vs";
+    sha256 = "1ymwm50qdl4iw1z54kn9yf5p16wy412mvbzr8m8p70mbx0r88v29";
   };
 
   buildInputs = [ python pkgconfig popt atk libX11 libICE xlibs.libXtst libXi
-                  intltool dbus_glib gnome3.at_spi2_core libSM ];
+                  intltool dbus_glib at_spi2_core libSM ];
 }
diff --git a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
index de4f3e8485f..806dcb32cbc 100644
--- a/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
+++ b/pkgs/desktops/gnome-3/core/at-spi2-core/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "2.5";
-  versionMinor = "4";
+  versionMajor = "2.6";
+  versionMinor = "3";
   moduleName   = "at-spi2-core";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "167zm1a36rd09wg161fsq8swnzdk3wv23kq49nd0l7gr89flf9ig";
+    sha256 = "1snh2lmry33756gw5pfjxir3g4lrrx9bhadkaz8cyiz88sp8fi7w";
   };
 
   buildInputs = [ python pkgconfig popt libX11 xextproto libSM libICE libXtst libXi intltool dbus_glib ];

From 99bc034a04fa91a6c52ea54197297e31bb5bbf7d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 20:09:10 +0100
Subject: [PATCH 09/23] gnome3.gconf: migrate

---
 pkgs/desktops/gnome-3/core/gconf/default.nix  | 19 ++++++++++-----
 .../gnome-3/core/gnome-terminal/default.nix   |  4 ++--
 pkgs/development/libraries/GConf/3.x.nix      | 23 -------------------
 pkgs/top-level/all-packages.nix               |  2 --
 pkgs/top-level/release-python.nix             |  1 -
 5 files changed, 15 insertions(+), 34 deletions(-)
 delete mode 100644 pkgs/development/libraries/GConf/3.x.nix

diff --git a/pkgs/desktops/gnome-3/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix
index cfe2b2e4465..9ca9c227d58 100644
--- a/pkgs/desktops/gnome-3/core/gconf/default.nix
+++ b/pkgs/desktops/gnome-3/core/gconf/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, dbus_glib, gnome3, libxml2
-, intltool, dbus_libs, polkit }:
+{ stdenv, fetchurl, pkgconfig, dbus_glib, gtk, glib, libxml2
+, intltool, polkit, orbit }:
 
 stdenv.mkDerivation rec {
 
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   moduleName   = "GConf";
 
   origName = "${moduleName}-${versionMajor}.${versionMinor}";
-  
+
   name = "gconf-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
@@ -16,7 +16,14 @@ stdenv.mkDerivation rec {
     sha256 = "1ijqks0jxc4dyfxg4vnbqds4aj6miyahlsmlqlkf2bi1798akpjd";
   };
 
-  buildInputs = [ dbus_libs dbus_glib libxml2 polkit gnome3.gtk ];
-  propagatedBuildInputs = [ gnome3.glib ];
-  buildNativeInputs = [ pkgconfig intltool ];
+  buildInputs = [ libxml2 polkit gtk orbit ];
+  propagatedBuildInputs = [ glib dbus_glib  ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  # ToDo: ldap reported as not found but afterwards reported as supported
+
+  meta = {
+    homepage = http://projects.gnome.org/gconf/;
+    description = "A system for storing application preferences";
+  };
 }
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index ccd827b8d5d..9d2ecdba476 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
-, gnome_doc_utils, intltool, libX11, which, GConf3 }:
+, gnome_doc_utils, intltool, libX11, which, gconf }:
 
 stdenv.mkDerivation rec {
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte GConf3 ];
+  buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte gconf ];
 
   buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
 }
diff --git a/pkgs/development/libraries/GConf/3.x.nix b/pkgs/development/libraries/GConf/3.x.nix
deleted file mode 100644
index 82c0c1f2c43..00000000000
--- 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c6458b72e4c..0b766887781 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3636,8 +3636,6 @@ let
 
   gav = callPackage ../games/gav { };
 
-  GConf3 = callPackage ../development/libraries/GConf/3.x.nix { };
-
   gdome2 = callPackage ../development/libraries/gdome2 {
     inherit (gnome) gtkdoc;
   };
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 05a78a099f7..3641005dc74 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -374,7 +374,6 @@ in
   gcj44 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gcj46 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gcl = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  GConf3 = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdb = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdbCross = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   gdk_pixbuf = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };

From 52461be8c54948b2e90de39ed7ec314debf36398 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 20:18:12 +0100
Subject: [PATCH 10/23] port gvfs from gnome2

---
 pkgs/desktops/gnome-3/core/gvfs/default.nix | 21 +++++++++++++++++++++
 pkgs/desktops/gnome-3/default.nix           |  2 ++
 2 files changed, 23 insertions(+)
 create mode 100644 pkgs/desktops/gnome-3/core/gvfs/default.nix

diff --git a/pkgs/desktops/gnome-3/core/gvfs/default.nix b/pkgs/desktops/gnome-3/core/gvfs/default.nix
new file mode 100644
index 00000000000..1eea518c4b7
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gvfs/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, dbus_libs, samba, libarchive, fuse, libgphoto2
+, libcdio, libxml2, libtool, glib, intltool, gconf, libgnome_keyring, libsoup
+, udev, avahi, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  name = "gvfs-1.14.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gvfs/1.14/${name}.tar.xz";
+    sha256 = "1g4ghyf45jg2ajdkv2d972hbckyjh3d9jdrppai85pl9pk2dmfy3";
+  };
+
+  buildInputs =
+    [ glib dbus_libs udev samba libarchive fuse libgphoto2 libcdio libxml2 gconf
+      libgnome_keyring libsoup avahi libtool libxslt docbook_xsl
+    ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  enableParallelBuilding = true;
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index cdf44142c90..cfd6b73065d 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -21,6 +21,8 @@ rec {
 
   gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
 
+  gvfs = callPackage ./core/gvfs { };
+
   vte = callPackage ./core/vte { };
 
   zenity = callPackage ./core/zenity { };

From 99b95f9e75911dff4108359c5e434e54e3cfc598 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 20:21:00 +0100
Subject: [PATCH 11/23] gnome3: fix more nativeBuildInputs

---
 pkgs/desktops/gnome-3/core/gnome-terminal/default.nix           | 2 +-
 .../desktops/gnome-3/core/gsettings-desktop-schemas/default.nix | 2 +-
 pkgs/desktops/gnome-3/core/zenity/default.nix                   | 2 +-
 pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix      | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 9d2ecdba476..41fdcc8086b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -16,5 +16,5 @@ stdenv.mkDerivation rec {
   configureFlags = "--disable-scrollkeeper";
   buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte gconf ];
 
-  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
 }
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
index 4de69511fd1..97c4fe336b2 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -17,5 +17,5 @@ stdenv.mkDerivation rec {
   configureFlags = "--disable-scrollkeeper";
   buildInputs = [ gnome3.glib libxml2 libxslt libX11 ];
 
-  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
 }
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
index 3a7aac08da6..18b91d4f61e 100644
--- a/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -16,5 +16,5 @@ stdenv.mkDerivation rec {
   configureFlags = "--disable-scrollkeeper";
   buildInputs = [ gnome3.gtk libxml2 libxslt libX11 ];
 
-  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
 }
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
index 2c3efcf3a07..7a1ab5b1505 100644
--- a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
@@ -11,5 +11,5 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ gnome3.gtk ];
-  buildNativeInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt gnome3.scrollkeeper ];
+  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libxml2 libxslt gnome3.scrollkeeper ];
 }

From 38a0bc8cdfa3b9830df9b3bf7c1faeec65734013 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Tue, 29 Jan 2013 07:03:20 +0100
Subject: [PATCH 12/23] add gnome3.gcr; ToDo: tests would fail if enabled

---
 pkgs/desktops/gnome-3/core/gcr/default.nix | 18 ++++++++++++++++++
 pkgs/desktops/gnome-3/default.nix          |  2 ++
 2 files changed, 20 insertions(+)
 create mode 100644 pkgs/desktops/gnome-3/core/gcr/default.nix

diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
new file mode 100644
index 00000000000..cf9774c5511
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
+, libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk }:
+
+stdenv.mkDerivation rec {
+  name = "gcr-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gcr/3.6/${name}.tar.xz";
+    sha256 = "16xyqxv2hxl3a4m8ahilqcf1ps58w1ijh8dav1l5nqz36ljdn2gp";
+  };
+
+  buildInputs = [
+    pkgconfig intltool gnupg p11_kit glib
+    libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk
+  ];
+
+  #doCheck = true;
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index cfd6b73065d..5be53287437 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -17,6 +17,8 @@ rec {
 
   gconf = callPackage ./core/gconf { };
 
+  gcr = callPackage ./core/gcr { }; # ToDo: tests fail
+
   gnome_terminal = callPackage ./core/gnome-terminal { };
 
   gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });

From b8a44440e48d8b4ebbef0b218e9ceddaa4e3b97a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 20:36:20 +0100
Subject: [PATCH 13/23] gnome3: port and update (lib)gnome-keyring

---
 .../gnome-3/core/gnome-keyring/default.nix    | 26 +++++++++++++++++++
 .../gnome-3/core/libgnome-keyring/default.nix | 17 ++++++++++++
 pkgs/desktops/gnome-3/default.nix             |  3 +++
 .../libraries/libgnome-keyring/3.x.nix        | 18 -------------
 pkgs/top-level/all-packages.nix               |  2 +-
 5 files changed, 47 insertions(+), 19 deletions(-)
 create mode 100644 pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
 delete mode 100644 pkgs/development/libraries/libgnome-keyring/3.x.nix

diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
new file mode 100644
index 00000000000..5983b74c0f4
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib
+, gtk3, intltool, gconf, libgnome_keyring, pango, gcr, gdk_pixbuf, atk, p11_kit }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-keyring-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-keyring/3.6/${name}.tar.xz";
+    sha256 = "1mhc2c0qswfjqi2spdvh19b7npfkjf1k40q6v7fja4qpc26maq5f";
+  };
+
+  buildInputs = [
+    dbus libgcrypt pam python gtk3 gconf libgnome_keyring
+    pango gcr gdk_pixbuf atk p11_kit
+  ];
+
+  propagatedBuildInputs = [ glib libtasn1 ];
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  configureFlags = [
+    "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt" # NixOS hardcoded path
+    "--with-pkcs11-config=$$out/etc/pkcs11/" # installation directories
+    "--with-pkcs11-modules=$$out/lib/pkcs11/"
+  ];
+}
diff --git a/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
new file mode 100644
index 00000000000..a5d196ae1e3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, fetchurl, glib, dbus_libs, libgcrypt, pkgconfig, intltool }:
+
+stdenv.mkDerivation rec {
+  name = "libgnome-keyring-3.6.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnome-keyring/3.6/${name}.tar.xz";
+    sha256 = "0c4qrjpmv1hqga3xv6wsq2z10x2n78qgw7q3k3s01y1pggxkgjkd";
+  };
+
+  propagatedBuildInputs = [ glib dbus_libs libgcrypt ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  meta = {
+    inherit (glib.meta) platforms maintainers;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 5be53287437..f2adac8d97a 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -19,6 +19,9 @@ rec {
 
   gcr = callPackage ./core/gcr { }; # ToDo: tests fail
 
+  gnome_keyring = callPackage ./core/gnome-keyring { };
+  libgnome_keyring = callPackage ./core/libgnome-keyring { };
+
   gnome_terminal = callPackage ./core/gnome-terminal { };
 
   gsettings_desktop_schemas = lib.lowPrio (callPackage ./core/gsettings-desktop-schemas { });
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 54a023a16f8..00000000000
--- 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0b766887781..e7fd31644b3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4146,7 +4146,7 @@ let
   libgig = callPackage ../development/libraries/libgig { };
 
   libgnome_keyring = callPackage ../development/libraries/libgnome-keyring { };
-  libgnome_keyring3 = callPackage ../development/libraries/libgnome-keyring/3.x.nix { };
+  libgnome_keyring3 = gnome3.libgnome_keyring;
 
   libgtop = callPackage ../development/libraries/libgtop {};
 

From 51a413ac1cb8fcdb79657f018f9060c694aab143 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 20:38:47 +0100
Subject: [PATCH 14/23] gnome3: add gnome-icon-theme

---
 .../gnome-3/core/gnome-icon-theme/default.nix        | 12 ++++++++++++
 pkgs/desktops/gnome-3/default.nix                    |  2 ++
 2 files changed, 14 insertions(+)
 create mode 100644 pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix

diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
new file mode 100644
index 00000000000..303bcd2208c
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
@@ -0,0 +1,12 @@
+{ stdenv, fetchurl, pkgconfig, intltool, iconnamingutils, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gnome-icon-theme-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-icon-theme/3.6/${name}.tar.xz";
+    sha256 = "0i8hkx2c1g5ckrvbkvs9n47i8fby8p9xs6p5l0mxdx9aq4smak9i";
+  };
+
+  nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index f2adac8d97a..75e20ef0d50 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -19,6 +19,8 @@ rec {
 
   gcr = callPackage ./core/gcr { }; # ToDo: tests fail
 
+  gnome_icon_theme = callPackage ./core/gnome-icon-theme { };
+
   gnome_keyring = callPackage ./core/gnome-keyring { };
   libgnome_keyring = callPackage ./core/libgnome-keyring { };
 

From bf4313cd88f518dc28cbf7249a57e849865f7882 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 20:42:28 +0100
Subject: [PATCH 15/23] update gsettings-desktop-schemas and make system-wide

Conflicts:
	pkgs/data/misc/gsettings-desktop-schemas/default.nix
	pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
---
 .../misc/gsettings-desktop-schemas/default.nix  | 17 -----------------
 .../core/gsettings-desktop-schemas/default.nix  | 14 ++++++--------
 pkgs/top-level/all-packages.nix                 |  2 +-
 3 files changed, 7 insertions(+), 26 deletions(-)
 delete mode 100644 pkgs/data/misc/gsettings-desktop-schemas/default.nix

diff --git a/pkgs/data/misc/gsettings-desktop-schemas/default.nix b/pkgs/data/misc/gsettings-desktop-schemas/default.nix
deleted file mode 100644
index c934863d75d..00000000000
--- a/pkgs/data/misc/gsettings-desktop-schemas/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, glib, pkgconfig, intltool }:
-
-stdenv.mkDerivation {
-  name = "gsettings-desktop-schemas-3.2.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gsettings-desktop-schemas/3.2/gsettings-desktop-schemas-3.2.0.tar.xz;
-    sha256 = "0772axkd1nlf3j1lcg0zi5x5jh4zmr25k98dhn7pzppahljaj3hi";
-  };
-
-  buildInputs = [ glib ];
-  nativeBuildInputs = [ pkgconfig intltool ];
-
-  meta = {
-    inherit (glib.meta) maintainers platforms;
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
index 97c4fe336b2..47dbd545379 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -1,21 +1,19 @@
-{ stdenv, fetchurl, pkgconfig, cairo, libxml2, libxslt, gnome3, pango
-, gnome_doc_utils, intltool, libX11, which }:
+{ stdenv, fetchurl, pkgconfig, intltool, glib }:
 
 stdenv.mkDerivation rec {
 
-  versionMajor = "3.5";
-  versionMinor = "3";
+  versionMajor = "3.6";
+  versionMinor = "1";
   moduleName   = "gsettings-desktop-schemas";
 
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "0vxbpwqvm55a4ssaddfsw2jy0q8bvsv8wbjps4yyyi9iykfylwli";
+    sha256 = "1rk71q2rky9nzy0zb5jsvxa62vhg7dk65kdgdifq8s761797ga6r";
   };
 
-  configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ gnome3.glib libxml2 libxslt libX11 ];
+  buildInputs = [ glib ];
 
-  nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which ];
+  nativeBuildInputs = [ pkgconfig intltool ];
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e7fd31644b3..a38aad96a84 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6425,7 +6425,7 @@ let
 
   gnome_user_docs = callPackage ../data/documentation/gnome-user-docs { };
 
-  gsettings_desktop_schemas = callPackage ../data/misc/gsettings-desktop-schemas {};
+  inherit (gnome3) gsettings_desktop_schemas;
 
   hicolor_icon_theme = callPackage ../data/misc/hicolor-icon-theme { };
 

From dd4a846b0f0236bf9094518b252eb5931c391f67 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Tue, 29 Jan 2013 09:20:14 +0100
Subject: [PATCH 16/23] update evince, seems to work now

---
 pkgs/applications/misc/evince/default.nix     | 59 ----------------
 pkgs/desktops/gnome-3/core/evince/default.nix | 68 +++++++++++++++++++
 pkgs/desktops/gnome-3/default.nix             |  2 +
 pkgs/top-level/all-packages.nix               |  9 +--
 4 files changed, 71 insertions(+), 67 deletions(-)
 delete mode 100644 pkgs/applications/misc/evince/default.nix
 create mode 100644 pkgs/desktops/gnome-3/core/evince/default.nix

diff --git a/pkgs/applications/misc/evince/default.nix b/pkgs/applications/misc/evince/default.nix
deleted file mode 100644
index 793c7bda299..00000000000
--- a/pkgs/applications/misc/evince/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ fetchurl, stdenv, perl, perlXMLParser, gettext, intltool
-, pkgconfig, glib, gtk, gnomedocutils, gnomeicontheme
-, libgnome, libgnomeui, scrollkeeper, libxslt
-, libglade, libgnome_keyring, dbus, dbus_glib
-, poppler, libspectre, djvulibre, shared_mime_info
-, makeWrapper, which, ghostscript
-, recentListSize ? null # 5 is not enough, allow passing a different number
-}:
-
-stdenv.mkDerivation rec {
-  name = "evince-2.32.0";
-
-  src = fetchurl {
-    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/2.32/${name}.tar.bz2";
-    sha256 = "2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7";
-  };
-
-  buildInputs = [
-    perl perlXMLParser gettext intltool pkgconfig glib gtk
-    gnomedocutils gnomeicontheme libgnome libgnomeui libglade
-    scrollkeeper libgnome_keyring
-    libxslt  # for `xsltproc'
-    dbus dbus_glib poppler libspectre djvulibre makeWrapper which
-    ghostscript
-  ];
-
-  configureFlags = "--with-libgnome --enable-dbus --enable-pixbuf "
-
-    # Do not use nautilus
-    + " --disable-nautilus "
-    # Do not update Scrollkeeper's database (GNOME's help system).
-    + "--disable-scrollkeeper";
-
-  postUnpack = if recentListSize != null then ''
-    sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' */shell/ev-open-recent-action.c
-    sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' */shell/ev-window.c
-  '' else "";
-
-  postInstall = ''
-    # Tell Glib/GIO about the MIME info directory, which is used
-    # by `g_file_info_get_content_type ()'.
-    wrapProgram "$out/bin/evince" \
-      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
-  '';
-
-  meta = {
-    homepage = http://www.gnome.org/projects/evince/;
-    description = "Evince, GNOME's document viewer";
-
-    longDescription = ''
-      Evince is a document viewer for multiple document formats.  It
-      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
-      of Evince is to replace the multiple document viewers that exist
-      on the GNOME Desktop with a single simple application.
-    '';
-
-    license = "GPLv2+";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
new file mode 100644
index 00000000000..d9fea7f82e6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -0,0 +1,68 @@
+{ fetchurl, stdenv, pkgconfig, intltool, perl, perlXMLParser, libxml2
+, glib, gtk3, pango, atk, gdk_pixbuf, shared_mime_info
+, itstool, gnome_icon_theme, libgnome_keyring, gsettings_desktop_schemas
+, poppler, ghostscriptX, djvulibre, libspectre
+, makeWrapper #, python /*just for tests*/
+, recentListSize ? null # 5 is not enough, allow passing a different number
+}:
+
+stdenv.mkDerivation rec {
+  name = "evince-3.6.1";
+
+  src = fetchurl {
+    url = "http://ftp.gnome.org/pub/GNOME/sources/evince/3.6/${name}.tar.xz";
+    sha256 = "1da1pij030dh8mb0pr0jnyszgsbjnh8lc17rj5ii52j3kmbv51qv";
+  };
+
+  buildInputs = [
+    pkgconfig intltool perl perlXMLParser libxml2
+    glib gtk3 pango atk gdk_pixbuf
+    itstool gnome_icon_theme libgnome_keyring gsettings_desktop_schemas
+    poppler ghostscriptX djvulibre libspectre
+    makeWrapper
+  ];
+
+  configureFlags = [
+    "--disable-nautilus" # Do not use nautilus
+    "--disable-dbus" # strange compilation error
+  ];
+
+  preConfigure = with stdenv.lib;
+    optionalString doCheck ''
+      for file in test/*.py; do
+        echo "patching $file"
+        sed '1s,/usr,${python},' -i "$file"
+      done
+    '' + optionalString (recentListSize != null) ''
+      sed -i 's/\(gtk_recent_chooser_set_limit .*\)5)/\1${builtins.toString recentListSize})/' shell/ev-open-recent-action.c
+      sed -i 's/\(if (++n_items == \)5\(.*\)/\1${builtins.toString recentListSize}\2/' shell/ev-window.c
+    '';
+
+  postInstall = ''
+    # Tell Glib/GIO about the MIME info directory, which is used
+    # by `g_file_info_get_content_type ()'.
+    wrapProgram "$out/bin/evince" \
+      --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
+
+    for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
+      cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
+    done
+    ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
+  '';
+
+  doCheck = false; # would need pythonPackages.dogTail, which is missing
+
+  meta = {
+    homepage = http://www.gnome.org/projects/evince/;
+    description = "GNOME's document viewer";
+
+    longDescription = ''
+      Evince is a document viewer for multiple document formats.  It
+      currently supports PDF, PostScript, DjVu, TIFF and DVI.  The goal
+      of Evince is to replace the multiple document viewers that exist
+      on the GNOME Desktop with a single simple application.
+    '';
+
+    license = "GPLv2+";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 75e20ef0d50..9f9ca123fa1 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -15,6 +15,8 @@ rec {
 
   at_spi2_core = callPackage ./core/at-spi2-core { };
 
+  evince = callPackage ./core/evince { }; # ToDo: dbus would prevent compilation, enable tests
+
   gconf = callPackage ./core/gconf { };
 
   gcr = callPackage ./core/gcr { }; # ToDo: tests fail
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a38aad96a84..fcfb7ffa65c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6896,14 +6896,7 @@ let
 
   keepassx = callPackage ../applications/misc/keepassx { };
 
-  # FIXME: Evince and other GNOME/GTK+ apps (e.g., Viking) provide
-  # `share/icons/hicolor/icon-theme.cache'.  Arbitrarily give this one a
-  # higher priority.
-  evince = hiPrio (callPackage ../applications/misc/evince {
-    inherit (gnome) gnomedocutils gnomeicontheme libgnome
-      libgnomeui libglade scrollkeeper;
-    poppler = poppler_0_18;
-  });
+  inherit (gnome3) evince;
 
   evolution_data_server = newScope (gnome) ../servers/evolution-data-server { };
 

From 4e5fe00a1f29fd17b1a8caf0b3315dd1576ef634 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Fri, 1 Feb 2013 02:46:04 +0100
Subject: [PATCH 17/23] gnome3.libgweather: update

---
 pkgs/desktops/gnome-3/core/libgweather/default.nix | 14 ++++++++++++++
 pkgs/desktops/gnome-3/default.nix                  |  2 ++
 pkgs/development/libraries/libgweather/default.nix | 13 -------------
 pkgs/top-level/all-packages.nix                    |  2 --
 pkgs/top-level/release-python.nix                  |  1 -
 5 files changed, 16 insertions(+), 16 deletions(-)
 create mode 100644 pkgs/desktops/gnome-3/core/libgweather/default.nix
 delete mode 100644 pkgs/development/libraries/libgweather/default.nix

diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
new file mode 100644
index 00000000000..78ae94c1a33
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -0,0 +1,14 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, libsoup, gconf
+, pango, gdk_pixbuf, atk }:
+
+stdenv.mkDerivation rec {
+  name = "libgweather-3.6.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgweather/3.6/${name}.tar.xz";
+    sha256 = "1c50m0zrnfh4g58rzf33dfw8ggslj38c61p8a75905bmj3rfyahg";
+  };
+  configureFlags = if stdenv ? glibc then "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo" else "";
+  propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk ];
+  nativeBuildInputs = [ pkgconfig intltool ];
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index 9f9ca123fa1..ce22aa0b850 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -32,6 +32,8 @@ rec {
 
   gvfs = callPackage ./core/gvfs { };
 
+  libgweather = callPackage ./core/libgweather { };
+
   vte = callPackage ./core/vte { };
 
   zenity = callPackage ./core/zenity { };
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
deleted file mode 100644
index 5e7a4cff741..00000000000
--- 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index fcfb7ffa65c..d5f75d98d73 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4150,8 +4150,6 @@ let
 
   libgtop = callPackage ../development/libraries/libgtop {};
 
-  libgweather = callPackage ../development/libraries/libgweather {};
-
   liblo = callPackage ../development/libraries/liblo { };
 
   liblrdf = librdf;
diff --git a/pkgs/top-level/release-python.nix b/pkgs/top-level/release-python.nix
index 3641005dc74..ce6d40c4246 100644
--- a/pkgs/top-level/release-python.nix
+++ b/pkgs/top-level/release-python.nix
@@ -1033,7 +1033,6 @@ in
   libgpod = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libgsf = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libgtop = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
-  libgweather = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libimobiledevice = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   libinfinity = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };
   liblapack = { type = "job"; systems = ["x86_64-linux"]; schedulingPriority = 4; };

From 74e0c25ec887be4f3594a489e73603c8def9bf6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Mon, 4 Feb 2013 22:23:54 +0100
Subject: [PATCH 18/23] libcanberra: update, streamline dependencies

Still some ToDos but should be OK, tested building some
reverse-dependencies.
---
 .../libraries/libcanberra/default.nix            | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index 691294d4a85..b57ea63fde7 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -1,21 +1,21 @@
 { 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";
 
   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

From dbe8a69a362a13cf3b097a699cb34c9e8f3a6ad5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Mon, 4 Feb 2013 23:26:28 +0100
Subject: [PATCH 19/23] libcroco: move to gnome-3, minor update

---
 pkgs/desktops/gnome-3/core/libcroco/default.nix | 11 +++++++++++
 pkgs/desktops/gnome-3/default.nix               |  2 ++
 pkgs/development/libraries/libcroco/default.nix | 11 -----------
 pkgs/top-level/all-packages.nix                 |  2 +-
 4 files changed, 14 insertions(+), 12 deletions(-)
 create mode 100644 pkgs/desktops/gnome-3/core/libcroco/default.nix
 delete mode 100644 pkgs/development/libraries/libcroco/default.nix

diff --git a/pkgs/desktops/gnome-3/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
new file mode 100644
index 00000000000..70c1db8c027
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/libcroco/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, libxml2, glib}:
+
+stdenv.mkDerivation rec {
+  name = "libcroco-0.6.6"; # 3.6.2 release
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libcroco/0.6/${name}.tar.xz";
+    sha256 = "1nbb12420v1zacn6jwa1x4ixikkcqw66sg4j5dgs45nhygiarv3j";
+  };
+  buildInputs = [ pkgconfig libxml2 glib ];
+}
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index ce22aa0b850..5d517da82b3 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -32,6 +32,8 @@ rec {
 
   gvfs = callPackage ./core/gvfs { };
 
+  libcroco = callPackage ./core/libcroco {};
+
   libgweather = callPackage ./core/libgweather { };
 
   vte = callPackage ./core/vte { };
diff --git a/pkgs/development/libraries/libcroco/default.nix b/pkgs/development/libraries/libcroco/default.nix
deleted file mode 100644
index 99604475e62..00000000000
--- 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d5f75d98d73..6327afb7323 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4076,7 +4076,7 @@ let
 
   libcm = callPackage ../development/libraries/libcm { };
 
-  libcroco = callPackage ../development/libraries/libcroco {};
+  inherit (gnome3) libcroco;
 
   libctemplate = callPackage ../development/libraries/libctemplate { };
 

From bc1e83aa1c2d12c23b6939ae3cfc0ba75a988fd3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Mon, 4 Feb 2013 23:31:10 +0100
Subject: [PATCH 20/23] libgsf: update, streamline dependencies, drop obsolete
 patch

Tried to build some affected packages, seems OK.

Conflicts (buildNativeInputs):
	pkgs/development/libraries/libgsf/default.nix
---
 pkgs/development/libraries/libgsf/default.nix | 21 +++++++------------
 pkgs/top-level/all-packages.nix               |  4 +---
 2 files changed, 9 insertions(+), 16 deletions(-)

diff --git a/pkgs/development/libraries/libgsf/default.nix b/pkgs/development/libraries/libgsf/default.nix
index 56f6242c09e..c6d46643ba9 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
+}:
 
-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 ];
 
   doCheck = true;
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6327afb7323..b6a1feff6bd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4240,9 +4240,7 @@ let
 
   libspectre = callPackage ../development/libraries/libspectre { };
 
-  libgsf = callPackage ../development/libraries/libgsf {
-    inherit (gnome) gnome_vfs libbonobo;
-  };
+  libgsf = callPackage ../development/libraries/libgsf { };
 
   libiconv = callPackage ../development/libraries/libiconv { };
 

From 2c700f3b4ac402853f9c743b5c1f22050e0245af Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Mon, 4 Feb 2013 23:35:20 +0100
Subject: [PATCH 21/23] librsvg: drop gtk2 dep. by default, add optional gtk3
 dep.

Tried to build some affected packages, seems OK.
---
 pkgs/development/libraries/librsvg/default.nix | 12 +++++++-----
 pkgs/top-level/all-packages.nix                |  4 +++-
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index 1ac47f890ab..13385dfb65c 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -1,5 +1,7 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, libgsf, bzip2, glib, gtk, libcroco
-, gdk_pixbuf, gobjectIntrospection?null, enableIntrospection?false }:
+{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, pango, cairo
+, libxml2, libgsf, bzip2, libcroco
+, gtk2 ? null, gtk3 ? null
+, gobjectIntrospection ? null, enableIntrospection ? false }:
 
 # no introspection by default, it's too big
 
@@ -10,9 +12,9 @@ stdenv.mkDerivation rec {
     url = "mirror://gnome/sources/librsvg/2.36/${name}.tar.xz";
     sha256 = "1hp6325gdkzx8yqn2d2r915ak3k6hfshjjh0sc54z3vr0i99688h";
   };
-  buildInputs = [ libxml2 libgsf bzip2 libcroco gdk_pixbuf ]
-    ++ stdenv.lib.optional enableIntrospection [gobjectIntrospection];
-  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"];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b6a1feff6bd..0006a629e4a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4368,7 +4368,9 @@ let
 
   libqalculate = callPackage ../development/libraries/libqalculate { };
 
-  librsvg = callPackage ../development/libraries/librsvg { };
+  librsvg = callPackage ../development/libraries/librsvg {
+    gtk2 = null; gtk3 = null; # neither gtk version by default
+  };
 
   librsync = callPackage ../development/libraries/librsync { };
 

From e817e8fcdbf1788a242b90b8f910d0ac83ff94a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 21:58:09 +0100
Subject: [PATCH 22/23] gnome3: factor out doCompileSchemas

---
 pkgs/desktops/gnome-3/core/evince/default.nix       |  8 +-------
 .../core/gsettings-desktop-schemas/default.nix      | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index d9fea7f82e6..de49bffc419 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -43,13 +43,7 @@ stdenv.mkDerivation rec {
     # by `g_file_info_get_content_type ()'.
     wrapProgram "$out/bin/evince" \
       --prefix XDG_DATA_DIRS : "${shared_mime_info}/share:$out/share"
-
-    for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
-      cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
-    done
-    ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
-  '';
-
+  '' + gsettings_desktop_schemas.doCompileSchemas;
   doCheck = false; # would need pythonPackages.dogTail, which is missing
 
   meta = {
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
index 47dbd545379..9c13539a1cc 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib }:
+{ stdenv, fetchurl, pkgconfig, intltool, glib
+  # just for passthru
+, gtk3, gsettings_desktop_schemas }:
 
 stdenv.mkDerivation rec {
 
@@ -16,4 +18,13 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib ];
 
   nativeBuildInputs = [ pkgconfig intltool ];
+
+  passthru = {
+    doCompileSchemas = ''
+      for pkg in "${gsettings_desktop_schemas}" "${gtk3}"; do
+        cp -s $pkg/share/glib-2.0/schemas/*.gschema.xml $out/share/glib-2.0/schemas/
+      done
+      ${glib}/bin/glib-compile-schemas $out/share/glib-2.0/schemas/
+    '';
+  };
 }

From 9747a3fb3b37809660c7e193ce9bfea9216cd66b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Thu, 21 Feb 2013 23:36:13 +0100
Subject: [PATCH 23/23] gtk bindings: update

---
 .../atkmm/{2.22.x.nix => default.nix}         |  0
 pkgs/development/libraries/glibmm/2.30.x.nix  | 24 -------------------
 pkgs/development/libraries/glibmm/default.nix | 24 +++++++++++++++++++
 .../libraries/gtkmm/{2.24.x.nix => 2.x.nix}   |  0
 .../libraries/gtkmm/{3.2.x.nix => 3.x.nix}    |  8 +++----
 pkgs/top-level/all-packages.nix               | 14 +++++------
 6 files changed, 34 insertions(+), 36 deletions(-)
 rename pkgs/development/libraries/atkmm/{2.22.x.nix => default.nix} (100%)
 delete mode 100644 pkgs/development/libraries/glibmm/2.30.x.nix
 create mode 100644 pkgs/development/libraries/glibmm/default.nix
 rename pkgs/development/libraries/gtkmm/{2.24.x.nix => 2.x.nix} (100%)
 rename pkgs/development/libraries/gtkmm/{3.2.x.nix => 3.x.nix} (83%)

diff --git a/pkgs/development/libraries/atkmm/2.22.x.nix b/pkgs/development/libraries/atkmm/default.nix
similarity index 100%
rename from pkgs/development/libraries/atkmm/2.22.x.nix
rename to pkgs/development/libraries/atkmm/default.nix
diff --git a/pkgs/development/libraries/glibmm/2.30.x.nix b/pkgs/development/libraries/glibmm/2.30.x.nix
deleted file mode 100644
index a544543d7e3..00000000000
--- a/pkgs/development/libraries/glibmm/2.30.x.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, libsigcxx }:
-
-stdenv.mkDerivation rec {
-  name = "glibmm-2.30.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/glibmm/2.30/glibmm-2.30.1.tar.xz;
-    sha256 = "15zqgx6rashyhxk89qjqq05p6m40akpgzyjk8bfb3jk68rc2nn39";
-  };
-
-  nativeBuildInputs = [pkgconfig];
-  propagatedBuildInputs = [glib libsigcxx];
-
-  meta = {
-    description = "C++ interface to the GLib library";
-
-    homepage = http://gtkmm.org/;
-
-    license = "LGPLv2+";
-
-    maintainers = with stdenv.lib.maintainers; [urkud raskin];
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/glibmm/default.nix b/pkgs/development/libraries/glibmm/default.nix
new file mode 100644
index 00000000000..962b14bc788
--- /dev/null
+++ b/pkgs/development/libraries/glibmm/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, glib, gdk_pixbuf, libsigcxx }:
+
+stdenv.mkDerivation rec {
+  name = "glibmm-2.34.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/glibmm/2.34/${name}.tar.xz";
+    sha256 = "1i4jsvahva2q0mig7kjnpsw0r3fnpybm8b6hzymfm2hpgqnaa9dl";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ glib gdk_pixbuf libsigcxx ];
+
+  meta = {
+    description = "C++ interface to the GLib library";
+
+    homepage = http://gtkmm.org/;
+
+    license = "LGPLv2+";
+
+    maintainers = with stdenv.lib.maintainers; [urkud raskin];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/gtkmm/2.24.x.nix b/pkgs/development/libraries/gtkmm/2.x.nix
similarity index 100%
rename from pkgs/development/libraries/gtkmm/2.24.x.nix
rename to pkgs/development/libraries/gtkmm/2.x.nix
diff --git a/pkgs/development/libraries/gtkmm/3.2.x.nix b/pkgs/development/libraries/gtkmm/3.x.nix
similarity index 83%
rename from pkgs/development/libraries/gtkmm/3.2.x.nix
rename to pkgs/development/libraries/gtkmm/3.x.nix
index d3681b4b386..37c885bf630 100644
--- a/pkgs/development/libraries/gtkmm/3.2.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.6.0";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gtkmm/3.2/gtkmm-3.2.0.tar.xz;
-    sha256 = "1wkljr2vjvjg5mggi4rvk9k4j2kzh8lc106k2yp8gqjlhk2xm5b1";
+    url = "mirror://gnome/sources/gtkmm/3.6/${name}.tar.xz";
+    sha256 = "0n93z8is5afgpqq0czr5wynr78vpv5lap3ayl4x0iv5cr3am90c8";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0006a629e4a..90452bf98c8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3864,13 +3864,13 @@ let
 
   glib = callPackage ../development/libraries/glib { };
 
-  glibmm = callPackage ../development/libraries/glibmm/2.30.x.nix { };
+  glibmm = callPackage ../development/libraries/glibmm { };
 
   glib_networking = callPackage ../development/libraries/glib-networking {};
 
   atk = callPackage ../development/libraries/atk { };
 
-  atkmm = callPackage ../development/libraries/atkmm/2.22.x.nix { };
+  atkmm = callPackage ../development/libraries/atkmm { };
 
   cairo = callPackage ../development/libraries/cairo {
     pixman = pixman_cairo; # it's recommended to be in sync
@@ -3886,15 +3886,13 @@ let
   gdk_pixbuf = callPackage ../development/libraries/gdk-pixbuf { };
 
   gtk2 = callPackage ../development/libraries/gtk+/2.x.nix { };
-
-  gtk = pkgs.gtk2;
-
-  gtkmm = callPackage ../development/libraries/gtkmm/2.24.x.nix { };
-  gtkmm3 = callPackage ../development/libraries/gtkmm/3.2.x.nix { };
-
   gtk3 = lowPrio (callPackage ../development/libraries/gtk+/3-default.nix {
     inherit (gnome3) at_spi2_atk;
   });
+  gtk = pkgs.gtk2;
+
+  gtkmm = callPackage ../development/libraries/gtkmm/2.x.nix { };
+  gtkmm3 = callPackage ../development/libraries/gtkmm/3.x.nix { };
 
   gtkmozembedsharp = callPackage ../development/libraries/gtkmozembed-sharp {
     gtksharp = gtksharp2;