summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-atk/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/at-spi2-core/default.nix14
-rw-r--r--pkgs/desktops/gnome-3/core/atk/default.nix38
-rw-r--r--pkgs/desktops/gnome-3/core/gconf/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/core/gdk-pixbuf/default.nix33
-rw-r--r--pkgs/desktops/gnome-3/core/glib/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/core/gobject-introspection/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix21
-rw-r--r--pkgs/desktops/gnome-3/core/gtk/default.nix63
-rw-r--r--pkgs/desktops/gnome-3/core/pango/default.nix41
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix46
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix20
-rw-r--r--pkgs/desktops/gnome-3/default.nix49
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/desktop/rarian/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix18
-rw-r--r--pkgs/top-level/all-packages.nix5
19 files changed, 520 insertions, 0 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
new file mode 100644
index 000000000000..a26928fadf71
--- /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 000000000000..5d7170f4450f
--- /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 000000000000..98ff11cd12e4
--- /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 000000000000..cfe2b2e44659
--- /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 000000000000..6daea5abf02b
--- /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 000000000000..8d60e48ffee3
--- /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 000000000000..ccd827b8d5db
--- /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 000000000000..b630e210762d
--- /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 000000000000..4de69511fd16
--- /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 000000000000..6fb9d05ece8e
--- /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 000000000000..86ec72fec2fd
--- /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 000000000000..ffc3aab87064
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses
+, pythonSupport ? false, python, pygtk}:
+
+stdenv.mkDerivation rec {
+
+  versionMajor = "0.32";
+  versionMinor = "2";
+  moduleName   = "vte";
+  
+  name = "${moduleName}-${versionMajor}.${versionMinor}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
+    sha256 = "0sj837b9ib36gx00hzdinv23f7w91fd5mcw1p6wdi053yxqw17nn";
+  };
+
+  buildInputs = [ intltool pkgconfig gnome3.glib gnome3.gtk ncurses ] ++
+                stdenv.lib.optionals pythonSupport [python pygtk];
+
+  configureFlags = ''
+    ${if pythonSupport then "--enable-python" else "--disable-python"}
+  '';
+
+  postInstall = stdenv.lib.optionalString pythonSupport ''
+    cd $(toPythonPath $out)/gtk-2.0
+    for n in *; do
+      ln -s "gtk-2.0/$n" "../$n"
+    done
+  '';
+
+  meta = {
+    homepage = http://www.gnome.org/;
+    description = "A library implementing a terminal emulator widget for GTK+";
+    longDescription = ''
+      VTE is a library (libvte) implementing a terminal emulator widget for
+      GTK+, and a minimal sample application (vte) using that.  Vte is
+      mainly used in gnome-terminal, but can also be used to embed a
+      console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
+      character set conversion, as well as emulating any terminal known to
+      the system's terminfo database.
+    '';
+    license = "LGPLv2";
+    maintainers = with stdenv.lib.maintainers; [ astsmtl antono ];
+    platforms = with stdenv.lib.platforms; linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
new file mode 100644
index 000000000000..3a7aac08da64
--- /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 000000000000..b9558fa7ec69
--- /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 000000000000..4d22f6ad7466
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/gnome-desktop/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3
+, intltool, gnome_doc_utils}:
+
+stdenv.mkDerivation rec {
+
+  majorVersion = "3.5";
+  minorVersion = "3";
+  name = "gnome-desktop-${majorVersion}.${minorVersion}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${majorVersion}/${name}.tar.xz";
+    sha256 = "1nrqcp1p5cxhfjjy5hjpvkqmzsgl2353a08fg0b11c932v95bsba";
+  };
+
+  configureFlags = "--disable-scrollkeeper";
+  buildInputs = [ pkgconfig python libxml2Python libxslt which libX11
+                  gnome3.gtk gnome3.glib intltool gnome_doc_utils ];
+}
diff --git a/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/desktop/gnome-dictionary/default.nix
new file mode 100644
index 000000000000..2c3efcf3a076
--- /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 000000000000..77a2b710f447
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42}:
+
+stdenv.mkDerivation rec {
+  name = "rarian-0.8.1";
+  src = fetchurl {
+    url = "mirror://gnome/sources/rarian/0.8/${name}.tar.bz2";
+    sha256 = "aafe886d46e467eb3414e91fa9e42955bd4b618c3e19c42c773026b205a84577";
+  };
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
new file mode 100644
index 000000000000..97dcbf4e0041
--- /dev/null
+++ b/pkgs/desktops/gnome-3/desktop/scrollkeeper/default.nix
@@ -0,0 +1,18 @@
+{stdenv, fetchurl, pkgconfig, perl, perlXMLParser, libxml2, libxslt, docbook_xml_dtd_42, automake}:
+
+stdenv.mkDerivation {
+  name = "scrollkeeper-0.3.14";
+  src = fetchurl {
+    url = mirror://gnome/sources/scrollkeeper/0.3/scrollkeeper-0.3.14.tar.bz2;
+    sha256 = "08n1xgj1f53zahwm0wpn3jid3rfbhi3iwby0ilaaldnid5qriqgc";
+  };
+
+  # The fuloong2f is not supported by scrollkeeper-0.3.14 config.guess
+  preConfigure = "
+    substituteInPlace extract/dtds/Makefile.am --replace /usr/bin/xmlcatalog xmlcatalog
+    cp ${automake}/share/automake*/config.{sub,guess} .
+  ";
+
+  buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt];
+  configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat";
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2acb2bb9ed66..bf5b5fe0ace4 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 {