summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-08-09 18:55:59 +0200
committerGitHub <noreply@github.com>2018-08-09 18:55:59 +0200
commitc83e929b940972841e4dde16e3d16c953c8d3f27 (patch)
treec9513b88740aec315dbfa3a42c0438233441e47e /pkgs/desktops
parent368169366fa5d9a88870c5dc34c52d79a75735c7 (diff)
parente4929b7c1a7827dfc64962e83704cc68f7ee6368 (diff)
downloadnixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.tar
nixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.tar.gz
nixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.tar.bz2
nixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.tar.lz
nixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.tar.xz
nixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.tar.zst
nixpkgs-c83e929b940972841e4dde16e3d16c953c8d3f27.zip
Merge pull request #44689 from jtojnar/gnome-cleanup
GNOME2 cleanup
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome-2/default.nix29
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix22
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix16
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix17
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix26
-rw-r--r--pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix19
-rw-r--r--pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix13
-rw-r--r--pkgs/desktops/gnome-2/desktop/libgweather/default.nix14
-rw-r--r--pkgs/desktops/gnome-2/desktop/mail-notification/default.nix2
-rw-r--r--pkgs/desktops/gnome-2/desktop/metacity/default.nix18
-rw-r--r--pkgs/desktops/gnome-2/desktop/zenity/default.nix18
-rw-r--r--pkgs/desktops/gnome-2/platform/at-spi/default.nix17
-rw-r--r--pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix26
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-applets/default.nix110
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix92
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch30
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-panel/default.nix92
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/default.nix70
-rw-r--r--pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch11
24 files changed, 481 insertions, 270 deletions
diff --git a/pkgs/desktops/gnome-2/default.nix b/pkgs/desktops/gnome-2/default.nix
index 80f2c9ce70d..c41183f4b24 100644
--- a/pkgs/desktops/gnome-2/default.nix
+++ b/pkgs/desktops/gnome-2/default.nix
@@ -8,12 +8,7 @@ let overridden = set // overrides; set = with overridden; {
   startupnotification = libstartup_notification;
   gnomedocutils = self.gnome-doc-utils;
   gnomeicontheme = self.gnome_icon_theme;
-  gnomepanel = self.gnome_panel;
   gnome_common = gnome-common;
-  gnome_keyring = gnome-keyring;
-  gnome_desktop = gnome-desktop;
-  gnome_settings_daemon = gnome-settings-daemon;
-  gnome_control_center = gnome-control-center;
   inherit rarian;
 
 #### PLATFORM
@@ -58,8 +53,6 @@ let overridden = set // overrides; set = with overridden; {
 
   gnome_vfs = callPackage ./platform/gnome-vfs { };
 
-  gnome_vfs_monikers = callPackage ./platform/gnome-vfs-monikers { };
-
   libgnome = callPackage ./platform/libgnome { };
 
   libgnomeui = callPackage ./platform/libgnomeui { };
@@ -68,8 +61,6 @@ let overridden = set // overrides; set = with overridden; {
 
   libbonoboui = callPackage ./platform/libbonoboui { };
 
-  at_spi = callPackage ./platform/at-spi { };
-
   gtkhtml = callPackage ./platform/gtkhtml { };
 
   gtkhtml4 = callPackage ./platform/gtkhtml/4.x.nix { };
@@ -83,31 +74,11 @@ let overridden = set // overrides; set = with overridden; {
 
 #### DESKTOP
 
-  gnome-keyring = callPackage ./desktop/gnome-keyring { };
-
-  libgweather = callPackage ./desktop/libgweather { };
-
   gvfs = gvfs.override { gnome = self; };
 
-  libgnomekbd = callPackage ./desktop/libgnomekbd { };
-
   # Removed from recent GNOME releases, but still required
   scrollkeeper = callPackage ./desktop/scrollkeeper { };
 
-  zenity = callPackage ./desktop/zenity { };
-
-  metacity = callPackage ./desktop/metacity { };
-
-  gnome_menus = callPackage ./desktop/gnome-menus { };
-
-  gnome-desktop = callPackage ./desktop/gnome-desktop { };
-
-  gnome_panel = callPackage ./desktop/gnome-panel { };
-
-  gnome-settings-daemon = callPackage ./desktop/gnome-settings-daemon { };
-
-  gnome-control-center = callPackage ./desktop/gnome-control-center { };
-
   gtksourceview = callPackage ./desktop/gtksourceview { };
 
   gnome_icon_theme = callPackage ./desktop/gnome-icon-theme { };
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix
deleted file mode 100644
index c4f6ad8207c..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-control-center/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus-glib, libxml2Python, libxslt, libxklavier, popt, which, python
-, shared-mime-info, desktop-file-utils, libunique, libtool, bzip2
-, gtk, gnome-doc-utils, intltool, GConf, libglade, libgnomeui, libgnomekbd
-, librsvg, gnome_menus, gnome-desktop, gnome_panel, metacity, gnome-settings-daemon
-, libSM, docbook_xml_dtd_412 }:
-
-stdenv.mkDerivation {
-  name = "gnome-control-center-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-control-center/2.32/gnome-control-center-2.32.1.tar.bz2;
-    sha256 = "0rkyg6naidql0nv74608mlsr2lzjgnndnxnxv3s0hp4f6mbqnmkw";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ dbus-glib libxml2Python libxslt libxklavier popt which python shared-mime-info desktop-file-utils
-                  gtk gnome-doc-utils intltool GConf libglade libgnomekbd libunique libtool bzip2
-                  libgnomeui librsvg gnome_menus gnome-desktop gnome_panel metacity gnome-settings-daemon
-                  libSM docbook_xml_dtd_412
-  ];
-  configureFlags = "--disable-scrollkeeper";
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix
deleted file mode 100644
index b99f23555d3..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-desktop/default.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gtk
-, intltool, GConf, gnome-doc-utils}:
-
-stdenv.mkDerivation {
-  name = "gnome-desktop-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-desktop/2.32/gnome-desktop-2.32.1.tar.bz2;
-    sha256 = "17bkng6ay37n3492lr9wpb49kms6gh554rn9gbjs27zygvvfrjsm";
-  };
-
-  configureFlags = "--disable-scrollkeeper";
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python libxml2Python libxslt which libX11 gtk
-                  intltool GConf gnome-doc-utils ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
deleted file mode 100644
index 26f3f624a04..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-keyring/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{stdenv, fetchurl, pkgconfig, dbus, libgcrypt, libtasn1, pam, python, glib,
-gtk, intltool, GConf, libgnome-keyring }:
-
-stdenv.mkDerivation {
-  name = "gnome-keyring-2.30.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-keyring/2.30/gnome-keyring-2.30.3.tar.bz2;
-    sha256 = "02r9gv3a4a705jf3h7c0bizn33c73wz0iw2500m7z291nrnmqkmj";
-  };
-  
-  buildInputs = [ dbus libgcrypt pam python gtk GConf libgnome-keyring ];
-
-  propagatedBuildInputs = [ glib libtasn1 ];
-
-  nativeBuildInputs = [ pkgconfig intltool ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix
deleted file mode 100644
index 0dcb409e0aa..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-menus/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, python, glib, intltool}:
-
-stdenv.mkDerivation {
-  name = "gnome-menus-2.30.5";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-menus/2.30/gnome-menus-2.30.5.tar.bz2;
-    sha256 = "1ajckii51spmkgfc0168c56x0syz5vwb2fp8b81c5s6n0r85dk3d";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python glib intltool ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
deleted file mode 100644
index 3bef218740c..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-panel/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus-glib, popt, which, libxml2Python, libxslt, bzip2, python
-, gtk, libXau, libcanberra-gtk2
-, intltool, ORBit2, libglade, libgnome, libgnomeui, libbonobo, libbonoboui, GConf, gnome_menus, gnome-desktop
-, libwnck, librsvg, libgweather, gnome-doc-utils, libtasn1, libtool, xorg }:
-
-stdenv.mkDerivation {
-  name = "gnome-panel-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-panel/2.32/gnome-panel-2.32.1.tar.bz2;
-    sha256 = "0pyakxyixmcp1yhi8r1q6adhamh2waj48y397fkigj11gbmjhy4g";
-  };
-
-  buildInputs =
-    [ gtk dbus-glib popt libxml2Python libxslt bzip2 python libXau intltool
-      ORBit2 libglade libgnome libgnomeui libbonobo libbonoboui GConf
-      gnome_menus gnome-desktop libwnck librsvg libgweather gnome-doc-utils
-      libtasn1 libtool libcanberra-gtk2 xorg.libICE xorg.libSM
-    ];
-
-  nativeBuildInputs = [ pkgconfig intltool which ];
-
-  configureFlags = [ "--disable-scrollkeeper" "--disable-introspection"/*not useful AFAIK*/ ];
-
-  NIX_CFLAGS_COMPILE="-I${GConf.dev}/include/gconf/2";
-}
diff --git a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
deleted file mode 100644
index 9712ce64841..00000000000
--- a/pkgs/desktops/gnome-2/desktop/gnome-settings-daemon/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, dbus-glib, libxklavier, gtk
-, intltool, GConf, gnome-desktop, libglade, libgnomekbd, polkit, libpulseaudio
-, libSM }:
-
-stdenv.mkDerivation {
-  name = "gnome-settings-daemon-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-settings-daemon/2.32/gnome-settings-daemon-2.32.1.tar.bz2;
-    sha256 = "11jyn10w2p2a76pjrkd0pjl1w406df821p053awklvmdqgzb6x00";
-  };
-
-  buildInputs =
-    [ dbus-glib libxklavier gtk GConf gnome-desktop libglade libgnomekbd polkit
-      libpulseaudio libSM
-    ];
-
-  nativeBuildInputs = [ pkgconfig intltool ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix b/pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix
deleted file mode 100644
index b846ef888c4..00000000000
--- a/pkgs/desktops/gnome-2/desktop/libgnomekbd/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, fetchurl, pkgconfig, dbus-glib, libxklavier, glib, gtk, intltool, GConf, libglade}:
-
-stdenv.mkDerivation {
-  name = "libgnomekbd-2.32.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgnomekbd/2.32/libgnomekbd-2.32.0.tar.bz2;
-    sha256 = "0mnjhdryx94c106fghzz01dyc1vlp16wn6sajvpxffnqqx62rmfx";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ dbus-glib libxklavier glib gtk intltool GConf libglade ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/libgweather/default.nix b/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
deleted file mode 100644
index 47f2b8c90fb..00000000000
--- a/pkgs/desktops/gnome-2/desktop/libgweather/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gtk, intltool, GConf, libsoup, libtasn1, nettle, gmp }:
-
-assert stdenv ? glibc;
-
-stdenv.mkDerivation rec {
-  name = "libgweather-2.30.3";
-  src = fetchurl {
-    url = "mirror://gnome/sources/libgweather/2.30/${name}.tar.bz2";
-    sha256 = "0k16lpdyy8as8wgc5dqpy5b8i9i4mrl77qx8db23fgs2c533fddq";
-  };
-  configureFlags = "--with-zoneinfo-dir=${stdenv.glibc}/share/zoneinfo";
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxml2 gtk intltool GConf libsoup libtasn1 nettle gmp ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
index c14ee25981c..1547c364b51 100644
--- a/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
+++ b/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.gnome-keyring gnome2.scrollkeeper libxml2 gnome2.gnome_icon_theme hicolor-icon-theme tango-icon-theme ];
+   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome2.gnome_icon_theme hicolor-icon-theme tango-icon-theme ];
 
   prePatch = ''
     sed -i  -e '/jb_rule_set_install_message/d' -e '/jb_rule_add_install_command/d' jbsrc/jb.c
diff --git a/pkgs/desktops/gnome-2/desktop/metacity/default.nix b/pkgs/desktops/gnome-2/desktop/metacity/default.nix
deleted file mode 100644
index 95dd97568f4..00000000000
--- a/pkgs/desktops/gnome-2/desktop/metacity/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, glib, gtk, libXcomposite, libXcursor, libXdamage
-, libcanberra-gtk2, intltool, GConf, startup_notification, zenity, gnome-doc-utils
-, gsettings-desktop-schemas }:
-
-stdenv.mkDerivation {
-  name = "metacity-2.30.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/metacity/2.30/metacity-2.30.3.tar.bz2;
-    sha256 = "1p8qzj967mmlwdl6gv9vb2vzs19czvivl0sd337lgr55iw0qgy08";
-  };
-
-  buildInputs =
-    [ pkgconfig glib gtk libXcomposite libXcursor libXdamage libcanberra-gtk2
-      intltool GConf startup_notification zenity gnome-doc-utils
-      gsettings-desktop-schemas
-    ];
-}
diff --git a/pkgs/desktops/gnome-2/desktop/zenity/default.nix b/pkgs/desktops/gnome-2/desktop/zenity/default.nix
deleted file mode 100644
index 0233f6340f5..00000000000
--- a/pkgs/desktops/gnome-2/desktop/zenity/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, libxslt, gtk
-, gnome-doc-utils, intltool, libglade, libX11, which, docbook_xml_dtd_412 }:
-
-stdenv.mkDerivation {
-  name = "zenity-2.32.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/zenity/2.32/zenity-2.32.1.tar.bz2;
-    sha256 = "1b0qxb07wif0ds1pl8xk3fq9p874j89rf718lii4ndh7382bwf48";
-  };
-
-  configureFlags = "--disable-scrollkeeper";
-  buildInputs = [ gtk libglade libxml2 libxslt libX11 docbook_xml_dtd_412 ];
-
-  nativeBuildInputs = [ pkgconfig intltool gnome-doc-utils which ];
-
-  doCheck = false; # fails, tries to access the net
-}
diff --git a/pkgs/desktops/gnome-2/platform/at-spi/default.nix b/pkgs/desktops/gnome-2/platform/at-spi/default.nix
deleted file mode 100644
index 9bcc9ab6cab..00000000000
--- a/pkgs/desktops/gnome-2/platform/at-spi/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ stdenv, fetchurl, python, pkgconfig, popt, atk, gtk, libX11, libICE, libXtst, libXi
-, intltool, libbonobo, ORBit2, GConf, dbus-glib }:
-
-stdenv.mkDerivation {
-  name = "at-spi-1.32.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/at-spi/1.32/at-spi-1.32.0.tar.bz2;
-    sha256 = "0fbh0afzw1gm4r2w68b8l0vhnia1qyzdl407vyxfw4v4fkm1v16c";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ python popt atk gtk libX11 libICE libXtst libXi
-                  intltool libbonobo ORBit2 GConf dbus-glib ];
-}
diff --git a/pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix b/pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix
deleted file mode 100644
index 5ae126df331..00000000000
--- a/pkgs/desktops/gnome-2/platform/gnome-vfs-monikers/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{stdenv, fetchurl, pkgconfig, glib, intltool, gnome_vfs, libbonobo}:
-
-stdenv.mkDerivation {
-  name = "gnome-vfs-monikers-2.15.3";
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-vfs-monikers/2.15/gnome-vfs-monikers-2.15.3.tar.bz2;
-    sha256 = "0gpgk5vwhgqfhrd8pf1314kh7sv3jfqll2xbdbrs5s5sxy3v7b15";
-  };
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib intltool gnome_vfs libbonobo ];
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 13f4b1ef638..e909a356866 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -1,27 +1,26 @@
 { stdenv, fetchurl, pkgconfig, libxslt, which, libX11, gnome3, gtk3, glib
-, intltool, gnome-doc-utils, xkeyboard_config, isocodes, itstool, wayland
-, libseccomp, bubblewrap, gobjectIntrospection }:
+, intltool, libxml2, xkeyboard_config, isocodes, itstool, wayland
+, libseccomp, bubblewrap, gobjectIntrospection, gtk-doc, docbook_xsl }:
 
 stdenv.mkDerivation rec {
   name = "gnome-desktop-${version}";
   version = "3.28.2";
 
+  outputs = [ "out" "dev" "devdoc" ];
+
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${gnome3.versionBranch version}/${name}.tar.xz";
     sha256 = "0c439hhpfd9axmv4af6fzhibksh69pnn2nnbghbbqqbwy6zqfl30";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-desktop"; attrPath = "gnome3.gnome-desktop"; };
-  };
-
-  # this should probably be setuphook for glib
+  # TODO: remove with 3.30
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
 
   nativeBuildInputs = [
-    pkgconfig which itstool intltool libxslt gnome-doc-utils gobjectIntrospection
+    pkgconfig which itstool intltool libxslt libxml2 gobjectIntrospection
+    gtk-doc docbook_xsl
   ];
   buildInputs = [
     libX11 bubblewrap xkeyboard_config isocodes wayland
@@ -34,11 +33,22 @@ stdenv.mkDerivation rec {
     ./bubblewrap-paths.patch
   ];
 
+  configureFlags = [
+    "--enable-gtk-doc"
+  ];
+
   postPatch = ''
     substituteInPlace libgnome-desktop/gnome-desktop-thumbnail-script.c --subst-var-by \
       BUBBLEWRAP_BIN "${bubblewrap}/bin/bwrap"
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-desktop";
+      attrPath = "gnome3.gnome-desktop";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Library with common API for various GNOME modules";
     license = with licenses; [ gpl2 lgpl2 ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index d224f056170..a0318514c9b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, gnome3
-, gnome-doc-utils, intltool, which, libuuid, vala
-, desktop-file-utils, itstool, wrapGAppsHook, appdata-tools }:
+{ stdenv, fetchurl, pkgconfig, libxml2, gnome3, dconf, nautilus
+, gtk, gsettings-desktop-schemas, vte, intltool, which, libuuid, vala
+, desktop-file-utils, itstool, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   name = "gnome-terminal-${version}";
@@ -11,15 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "0ybjansg6lr279191w8z8r45gy4rxwzw1ajm98cgkv0fk2jdr0x2";
   };
 
-  passthru = {
-    updateScript = gnome3.updateScript { packageName = "gnome-terminal"; attrPath = "gnome3.gnome-terminal"; };
-  };
-
-  buildInputs = [ gnome3.gtk gnome3.gsettings-desktop-schemas gnome3.vte appdata-tools
-                  gnome3.dconf itstool gnome3.nautilus ];
+  buildInputs = [
+    gtk gsettings-desktop-schemas vte libuuid dconf
+    # For extension
+    nautilus
+  ];
 
-  nativeBuildInputs = [ pkgconfig intltool gnome-doc-utils which libuuid libxml2
-                        vala desktop-file-utils wrapGAppsHook ];
+  nativeBuildInputs = [
+    pkgconfig intltool itstool which libxml2
+    vala desktop-file-utils wrapGAppsHook
+  ];
 
   # Silly ./configure, it looks for dbus file from gnome-shell in the
   # installation tree of the package it is configuring.
@@ -28,15 +29,22 @@ stdenv.mkDerivation rec {
     substituteInPlace src/Makefile.in --replace '$(dbusinterfacedir)/org.gnome.ShellSearchProvider2.xml' "${gnome3.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml"
   '';
 
-  # FIXME: enable for gnome3
-  configureFlags = [ "--disable-migration" ];
+  configureFlags = [ "--disable-migration" ]; # TODO: remove this with 3.30
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "gnome-terminal";
+      attrPath = "gnome3.gnome-terminal";
+    };
+  };
 
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     description = "The GNOME Terminal Emulator";
-    homepage = https://wiki.gnome.org/Apps/Terminal/;
+    homepage = https://wiki.gnome.org/Apps/Terminal;
     platforms = platforms.linux;
+    license = licenses.gpl3Plus;
     maintainers = gnome3.maintainers;
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
index 861702a3986..797eb00bd3f 100644
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, intltool, fetchFromGitLab, pkgconfig, gtk3, defaultIconTheme
-, glib, desktop-file-utils, appdata-tools, gtk-doc, autoconf, automake, libtool
-, wrapGAppsHook, gnome3, itstool, libxml2
+{ stdenv, intltool, fetchFromGitLab, fetchpatch, pkgconfig, gtk3, defaultIconTheme
+, glib, desktop-file-utils, gtk-doc, autoconf, automake, libtool
+, wrapGAppsHook, gnome3, itstool, libxml2, yelp-tools
+, docbook_xsl, docbook_xml_dtd_412, gsettings-desktop-schemas
 , callPackage, unzip, gobjectIntrospection }:
 
 let
@@ -9,6 +10,8 @@ in stdenv.mkDerivation rec {
   name = "gucharmap-${version}";
   version = "11.0.1";
 
+  outputs = [ "out" "lib" "dev" "devdoc" ];
+
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
@@ -17,16 +20,26 @@ in stdenv.mkDerivation rec {
     sha256 = "13iw4fa6mv8vi8bkwk0bbhamnzbaih0c93p4rh07khq6mxa6hnpi";
   };
 
+  patches = [
+    # Fix locale path to allow split outputs
+    # https://gitlab.gnome.org/GNOME/gucharmap/issues/10
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gucharmap/commit/b2b03f16aa869ac0ec1a05c55c4d4e4c4b513576.patch;
+      sha256 = "1543mcyz96x23m9pzx04ny15m4a2pqmiksl1y5r51k3sw4fyisci";
+    })
+  ];
+
   nativeBuildInputs = [
-    pkgconfig wrapGAppsHook unzip intltool itstool appdata-tools
-    autoconf automake libtool gtk-doc
-    gnome3.yelp-tools libxml2 desktop-file-utils gobjectIntrospection
+    pkgconfig wrapGAppsHook unzip intltool itstool
+    autoconf automake libtool gtk-doc docbook_xsl docbook_xml_dtd_412
+    yelp-tools libxml2 desktop-file-utils gobjectIntrospection
   ];
 
-  buildInputs = [ gtk3 glib gnome3.gsettings-desktop-schemas defaultIconTheme ];
+  buildInputs = [ gtk3 glib gsettings-desktop-schemas defaultIconTheme ];
 
   configureFlags = [
     "--with-unicode-data=${unicode-data}"
+    "--enable-gtk-doc"
   ];
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix
index ce542e7f88b..478dfc5d9f4 100644
--- a/pkgs/desktops/gnome-3/default.nix
+++ b/pkgs/desktops/gnome-3/default.nix
@@ -187,31 +187,31 @@ lib.makeScope pkgs.newScope (self: with self; {
   nautilus = callPackage ./core/nautilus { };
 
   networkmanager-openvpn = pkgs.networkmanager-openvpn.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-vpnc = pkgs.networkmanager-vpnc.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-openconnect = pkgs.networkmanager-openconnect.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-fortisslvpn = pkgs.networkmanager-fortisslvpn.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-l2tp = pkgs.networkmanager-l2tp.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanager-iodine = pkgs.networkmanager-iodine.override {
-    inherit gnome3;
+    withGnome = true;
   };
 
   networkmanagerapplet = pkgs.networkmanagerapplet.override {
-    inherit gnome3 gsettings-desktop-schemas glib-networking;
+    withGnome = true;
   };
 
   rest = callPackage ./core/rest { };
@@ -373,10 +373,18 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   gexiv2 = callPackage ./misc/gexiv2 { };
 
+  gnome-applets = callPackage ./misc/gnome-applets { };
+
+  gnome-flashback = callPackage ./misc/gnome-flashback { };
+
+  gnome-panel = callPackage ./misc/gnome-panel { };
+
   gnome-tweaks = callPackage ./misc/gnome-tweaks { };
 
   gpaste = callPackage ./misc/gpaste { };
 
+  metacity = callPackage ./misc/metacity { };
+
   pidgin-im-gnome-shell-extension = callPackage ./misc/pidgin { };
 
   gtkhtml = callPackage ./misc/gtkhtml { };
diff --git a/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
new file mode 100644
index 00000000000..cbf8bc9707b
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-applets/default.nix
@@ -0,0 +1,110 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, autoreconfHook
+, intltool
+, itstool
+, libxml2
+, libxslt
+, pkgconfig
+, gnome-panel
+, gtk3
+, glib
+, libwnck3
+, libgtop
+, libnotify
+, upower
+, dbus-glib
+, wirelesstools
+, linuxPackages
+, adwaita-icon-theme
+, libgweather
+, gucharmap
+, gnome-settings-daemon
+, tracker
+, polkit
+, gnome3
+}:
+
+let
+  pname = "gnome-applets";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0wd6pirv57rcxm5d32r1s3ni7sp26gnqd4qhjciw0pn5ak627y5h";
+  };
+
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/36468
+    # https://gitlab.gnome.org/GNOME/gnome-applets/issues/3
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/1ee719581c33d7d640ae9f656e4e9b192bafef78.patch;
+      sha256 = "05wim7d2ii3pxph3n3am76cvnxmkfpggk0cpy8p5xgm3hcibwfrf";
+    })
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/1fa778b01f0e6b70678b0e5755ca0ed7a093fa75.patch;
+      sha256 = "0kppqywn0ab18p64ixz0b58cn5bpqf0xy71bycldlc5ybpdx5mq0";
+    })
+
+    # https://gitlab.gnome.org/GNOME/gnome-applets/issues/4
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-applets/commit/e14482a90e6113f211e9328d8c39a69bdf5111d8.patch;
+      sha256 = "10ac0kk38hxqh8yvdlriyyv809qrxbpy9ihp01gizhiw7qpz97ff";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    intltool
+    itstool
+    pkgconfig
+    libxml2
+    libxslt
+  ];
+
+  buildInputs = [
+    gnome-panel
+    gtk3
+    glib
+    libxml2
+    libwnck3
+    libgtop
+    libnotify
+    upower
+    dbus-glib
+    adwaita-icon-theme
+    libgweather
+    gucharmap
+    gnome-settings-daemon
+    tracker
+    polkit
+    wirelesstools
+    linuxPackages.cpupower
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  configureFlags = [
+    "--with-libpanel-applet-dir=$(out)/share/gnome-panel/applets"
+  ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Applets for use with the GNOME panel";
+    homepage = https://wiki.gnome.org/Projects/GnomeApplets;
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
new file mode 100644
index 00000000000..f3f2cf99257
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/default.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, autoreconfHook
+, fetchurl
+, fetchpatch
+, gettext
+, glib
+, gnome-bluetooth
+, gnome-desktop
+, gnome-session
+, gnome3
+, gsettings-desktop-schemas
+, gtk
+, ibus
+, intltool
+, libcanberra-gtk3
+, libpulseaudio
+, libxkbfile
+, libxml2
+, metacity
+, pkgconfig
+, polkit
+, substituteAll
+, upower
+, xkeyboard_config }:
+
+let
+  pname = "gnome-flashback";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "1ra8bfwgwqw47zx2h1q999g7l4dnqh7sv02if3zk8pkw3sm769hg";
+  };
+
+  patches =[
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit metacity;
+      gnomeSession = gnome-session;
+    })
+
+    # https://github.com/NixOS/nixpkgs/issues/36468
+    # https://gitlab.gnome.org/GNOME/gnome-flashback/issues/3
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-flashback/commit/eabd34f64adc43b8783920bd7a2177ce21f83fbc.patch;
+      sha256 = "116c5zy8cp7d06mrsn943q7vj166086jzrfzfqg7yli14pmf9w1a";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gettext
+    libxml2
+    pkgconfig
+  ];
+
+  buildInputs = [
+    glib
+    gnome-bluetooth
+    gnome-desktop
+    gsettings-desktop-schemas
+    gtk
+    ibus
+    libcanberra-gtk3
+    libpulseaudio
+    libxkbfile
+    polkit
+    upower
+    xkeyboard_config
+  ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "GNOME 2.x-like session for GNOME 3";
+    homepage = https://wiki.gnome.org/Projects/GnomeFlashback;
+    license = licenses.gpl2;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch b/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch
new file mode 100644
index 00000000000..9d5add233d6
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-flashback/fix-paths.patch
@@ -0,0 +1,30 @@
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -22,7 +22,7 @@
+ 	             echo 'if [ -z $$XDG_CURRENT_DESKTOP ]; then' && \
+ 	             echo '  export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"' && \
+ 	             echo 'fi' && echo '' && \
+-	             echo 'exec gnome-session --session=gnome-flashback-compiz "$$@"') > $@
++	             echo 'exec @gnomeSession@/bin/gnome-session --session=gnome-flashback-compiz "$$@"') > $@
+ 	$(AM_V_at) chmod a+x $@
+ 
+ gnome-flashback-metacity: Makefile
+@@ -30,7 +30,7 @@
+ 	             echo 'if [ -z $$XDG_CURRENT_DESKTOP ]; then' && \
+ 	             echo '  export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"' && \
+ 	             echo 'fi' && echo '' && \
+-	             echo 'exec gnome-session --session=gnome-flashback-metacity --disable-acceleration-check "$$@"') > $@
++	             echo 'exec @gnomeSession@/bin/gnome-session --session=gnome-flashback-metacity --disable-acceleration-check "$$@"') > $@
+ 	$(AM_V_at) chmod a+x $@
+ 
+ CLEANFILES = \
+--- a/data/xsessions/gnome-flashback-metacity.desktop.in.in
++++ b/data/xsessions/gnome-flashback-metacity.desktop.in.in
+@@ -2,6 +2,6 @@
+ Name=GNOME Flashback (Metacity)
+ Comment=This session logs you into GNOME Flashback with Metacity
+ Exec=@libexecdir@/gnome-flashback-metacity
+-TryExec=metacity
++TryExec=@metacity@/bin/metacity
+ Type=Application
+ DesktopNames=GNOME-Flashback;GNOME;
diff --git a/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
new file mode 100644
index 00000000000..5c40b4c8f44
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, fetchurl
+, autoreconfHook
+, fetchpatch
+, dconf
+, evolution-data-server
+, gdm
+, gettext
+, glib
+, gnome-desktop
+, gnome-menus
+, gnome3
+, gtk
+, itstool
+, libgweather
+, libsoup
+, libwnck3
+, libxml2
+, pkgconfig
+, polkit
+, systemd
+, wrapGAppsHook }:
+
+let
+  pname = "gnome-panel";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  outputs = [ "out" "dev" "man" ];
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "1004cp9cxqpic9lsraqn5c1739acn4sn4ql3c1fja99hv22h1ziv";
+  };
+
+  patches = [
+    # https://github.com/NixOS/nixpkgs/issues/36468
+    # https://gitlab.gnome.org/GNOME/gnome-panel/issues/6
+    (fetchpatch {
+      url = https://gitlab.gnome.org/GNOME/gnome-panel/commit/be26e170a10c297949a6d9f3cbc70b6caaf04b56.patch;
+      sha256 = "10gxl9fwbv5j0s1lz7gkz6wqpda5wfzs49r5khbk1h05lv0hk4l4";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gettext
+    itstool
+    libxml2
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    dconf
+    evolution-data-server
+    gdm
+    glib
+    gnome-desktop
+    gnome-menus
+    gtk
+    libgweather
+    libsoup
+    libwnck3
+    polkit
+    systemd
+  ];
+
+  configureFlags = [
+    "--enable-eds"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Component of Gnome Flashback that provides panels and default applets for the desktop";
+    homepage = https://wiki.gnome.org/Projects/GnomePanel;
+    license = licenses.gpl2Plus;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/metacity/default.nix b/pkgs/desktops/gnome-3/misc/metacity/default.nix
new file mode 100644
index 00000000000..46ff2c11813
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/metacity/default.nix
@@ -0,0 +1,70 @@
+{ stdenv
+, fetchurl
+, gettext
+, glib
+, gnome3
+, gsettings-desktop-schemas
+, gtk
+, libcanberra-gtk3
+, libgtop
+, libstartup_notification
+, libxml2
+, pkgconfig
+, substituteAll
+, wrapGAppsHook
+, zenity }:
+
+let
+  pname = "metacity";
+  version = "3.28.0";
+in stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    sha256 = "0kzap0lzlkcgkna3h426xgwrn2zpipy8cfsxpfynnaf74vyas3aw";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit zenity;
+    })
+  ];
+
+  nativeBuildInputs = [
+    gettext
+    libxml2
+    pkgconfig
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gsettings-desktop-schemas
+    gtk
+    libcanberra-gtk3
+    libgtop
+    libstartup_notification
+    zenity
+  ];
+
+  enableParallelBuilding = true;
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.${pname}";
+    };
+  };
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "Window manager used in Gnome Flashback";
+    homepage = https://wiki.gnome.org/Projects/Metacity;
+    license = licenses.gpl2;
+    maintainers = gnome3.maintainers;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch b/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch
new file mode 100644
index 00000000000..ff3a244e67d
--- /dev/null
+++ b/pkgs/desktops/gnome-3/misc/metacity/fix-paths.patch
@@ -0,0 +1,11 @@
+--- a/src/core/util.c
++++ b/src/core/util.c
+@@ -424,7 +424,7 @@
+                                  g_slist_length (columns)*2 +
+                                  g_slist_length (entries)));
+ 
+-  argvl[i++] = "zenity";
++  argvl[i++] = "@zenity@/bin/zenity";
+   argvl[i++] = type;
+   argvl[i++] = "--display";
+   argvl[i++] = display;