summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3/core
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2017-10-04 23:50:14 +0200
committerJan Tojnar <jtojnar@gmail.com>2017-11-26 03:10:49 +0100
commit1c1d677149797d6be7e484b020aa4ac69efc55be (patch)
tree52c4d6ffad233dabe1e256e20b18b15250de9b57 /pkgs/desktops/gnome-3/core
parent5fae4f32fdfba5df5eec2fd300b17bbad89196b2 (diff)
downloadnixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.tar
nixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.tar.gz
nixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.tar.bz2
nixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.tar.lz
nixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.tar.xz
nixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.tar.zst
nixlib-1c1d677149797d6be7e484b020aa4ac69efc55be.zip
gnome3: dependency tweaks
Diffstat (limited to 'pkgs/desktops/gnome-3/core')
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix36
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix15
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix7
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix17
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix11
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix31
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix27
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix24
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix28
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/prevent-cache-updates.patch21
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix75
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch18
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix40
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/gsound/default.nix8
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/default.nix9
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix4
-rw-r--r--pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/totem/default.nix37
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/default.nix45
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/default.nix44
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/src.nix6
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix7
30 files changed, 366 insertions, 229 deletions
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 23759e3bf90e..49ad25a8c5e7 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -1,13 +1,13 @@
-{ fetchurl, stdenv, intltool, pkgconfig, itstool, libxml2, libjpeg, gnome3
+{ fetchurl, stdenv, gettext, pkgconfig, itstool, libxml2, libjpeg, gnome3
 , shared_mime_info, wrapGAppsHook, librsvg, libexif }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+  nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook ];
 
   buildInputs = with gnome3;
-    [ intltool itstool libxml2 libjpeg gtk glib libpeas librsvg
+    [ libxml2 libjpeg gtk glib libpeas librsvg
       gsettings_desktop_schemas shared_mime_info adwaita-icon-theme
       gnome_desktop libexif dconf ];
 
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 35aae8cc9eb9..2f58d920ff00 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -1,32 +1,42 @@
-{ stdenv, intltool, fetchurl, pkgconfig, gtk3, glib, nspr, icu
-, bash, wrapGAppsHook, gnome3, libwnck3, libxml2, libxslt, libtool
+{ stdenv, meson, ninja, gettext, fetchurl, pkgconfig, gtk, glib, icu
+, wrapGAppsHook, gnome3, libxml2, libxslt, itstool
 , webkitgtk, libsoup, glib_networking, libsecret, gnome_desktop, libnotify, p11_kit
-, sqlite, gcr, avahi, nss, isocodes, itstool, file, which
-, gdk_pixbuf, librsvg, gnome_common, gst_all_1, json_glib }:
+, sqlite, gcr, isocodes, desktop_file_utils, file
+, gdk_pixbuf, gnome_common, gst_all_1, json_glib }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   # Tests need an X display
-  configureFlags = [ "--disable-static --disable-tests" ];
+  mesonFlags = [ "-Dunit_tests=false" ];
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  nativeBuildInputs = [ pkgconfig file wrapGAppsHook ];
+  nativeBuildInputs = [ meson ninja libxslt pkgconfig itstool gettext file wrapGAppsHook desktop_file_utils ];
 
-  buildInputs = [ gtk3 glib intltool libwnck3 libxml2 libxslt file
-                  webkitgtk libsoup libsecret gnome_desktop libnotify libtool
-                  sqlite isocodes nss itstool p11_kit nspr icu gnome3.yelp_tools
-                  gdk_pixbuf gnome3.defaultIconTheme librsvg which gnome_common
-                  gcr avahi gnome3.gsettings_desktop_schemas gnome3.dconf
-                  gnome3.glib_networking gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  buildInputs = [ gtk glib webkitgtk libsoup libxml2 libsecret gnome_desktop libnotify
+                  sqlite isocodes p11_kit icu gnome3.yelp_tools
+                  gdk_pixbuf gnome3.defaultIconTheme gnome_common gcr
+                  glib_networking gst_all_1.gstreamer gst_all_1.gst-plugins-base
                   gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly
                   gst_all_1.gst-libav json_glib ];
 
-  NIX_CFLAGS_COMPILE = "-I${nss.dev}/include/nss -I${glib.dev}/include/gio-unix-2.0";
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
   enableParallelBuilding = true;
 
+  postPatch = ''
+    chmod +x post_install.py # patchShebangs requires executable file
+    patchShebangs post_install.py
+  '';
+
+  postFixup = ''
+    # Patched meson does not add internal libraries to rpath
+    for f in bin/.epiphany-wrapped libexec/.epiphany-search-provider-wrapped libexec/epiphany/.ephy-profile-migrator-wrapped lib/epiphany/web-extensions/libephywebextension.so; do
+      patchelf --set-rpath "$out/lib/epiphany:$(patchelf --print-rpath $out/$f)" "$out/$f"
+    done
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Epiphany;
     description = "WebKit based web browser for GNOME";
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index e2472a403699..ebe740a2167c 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -1,17 +1,18 @@
 { fetchurl, stdenv, pkgconfig, gnome3, python, dconf
 , intltool, libsoup, libxml2, libsecret, icu, sqlite
-, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true,
-vala_0_32, cmake, kerberos, openldap, webkitgtk, libaccounts-glib }:
+, p11_kit, db, nspr, nss, libical, gperf, makeWrapper, valaSupport ? true
+, vala, cmake, kerberos, openldap, webkitgtk, libaccounts-glib, json_glib }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
+  nativeBuildInputs = [ cmake pkgconfig intltool python gperf makeWrapper ];
   buildInputs = with gnome3;
-    [ pkgconfig glib python intltool libsoup libxml2 gtk gnome_online_accounts
-      (stdenv.lib.getLib dconf) gcr p11_kit libgweather libgdata gperf makeWrapper
-      icu sqlite gsettings_desktop_schemas cmake kerberos openldap webkitgtk
-      libaccounts-glib ]
-    ++ stdenv.lib.optional valaSupport vala_0_32;
+    [ glib libsoup libxml2 gtk gnome_online_accounts
+      (stdenv.lib.getLib dconf) gcr p11_kit libgweather libgdata
+      icu sqlite gsettings_desktop_schemas kerberos openldap webkitgtk
+      libaccounts-glib json_glib ]
+    ++ stdenv.lib.optional valaSupport vala;
 
   propagatedBuildInputs = [ libsecret nss nspr libical db ];
 
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index e970dba5615e..2569b4e2c7ad 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -1,19 +1,18 @@
 { stdenv, fetchurl, pkgconfig, intltool, gnupg, p11_kit, glib
 , libgcrypt, libtasn1, dbus_glib, gtk, pango, gdk_pixbuf, atk
-, gobjectIntrospection, makeWrapper, libxslt, vala_0_32, gnome3 }:
+, gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig intltool gobjectIntrospection libxslt makeWrapper vala ];
 
   buildInputs = let
     gpg = gnupg.override { guiSupport = false; }; # prevent build cycle with pinentry_gnome
   in [
-    intltool gpg gobjectIntrospection libxslt
-    libgcrypt libtasn1 dbus_glib pango gdk_pixbuf atk makeWrapper vala_0_32
+    gpg libgcrypt libtasn1 dbus_glib pango gdk_pixbuf atk
   ];
 
   propagatedBuildInputs = [ glib gtk p11_kit ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
index f237d745c1cc..9eaad021d320 100644
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
@@ -1,17 +1,16 @@
-{ stdenv, fetchurl, gnome3, pkgconfig, gtk3, intltool, glib
-, udev, itstool, libxml2, makeWrapper, libnotify, libcanberra_gtk3 }:
+{ stdenv, fetchurl, gnome3, meson, ninja, pkgconfig, gtk3, intltool, glib
+, udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra_gtk3 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ intltool glib gtk3 udev libxml2 gnome3.defaultIconTheme
-                  makeWrapper gnome3.gsettings_desktop_schemas itstool
-                  libnotify libcanberra_gtk3 ];
+  nativeBuildInputs = [ meson ninja intltool itstool pkgconfig libxml2 wrapGAppsHook ];
+  buildInputs = [ glib gtk3 udev libnotify libcanberra_gtk3
+                  gnome3.defaultIconTheme gnome3.gsettings_desktop_schemas ];
 
-  preFixup = ''
-    wrapProgram "$out/bin/bluetooth-sendto" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index e69092a57123..9078b9e051cd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -3,7 +3,7 @@
 , libchamplain, clutter_gtk, geocode_glib
 , bash, wrapGAppsHook, itstool, folks, libnotify, libxml2
 , gnome3, librsvg, gdk_pixbuf, file, telepathy_glib, nspr, nss
-, libsoup, vala_0_32, dbus_glib, automake, autoconf }:
+, libsoup, vala, dbus_glib, automake, autoconf }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -17,14 +17,11 @@ stdenv.mkDerivation rec {
    touch src/*.vala
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 glib intltool itstool evolution_data_server
-                  gnome3.gsettings_desktop_schemas wrapGAppsHook file libnotify
+  nativeBuildInputs = [ vala automake autoconf pkgconfig intltool itstool wrapGAppsHook file ];
+  buildInputs = [ gtk3 glib evolution_data_server gnome3.gsettings_desktop_schemas libnotify
                   folks gnome3.gnome_desktop telepathy_glib libsecret dbus_glib
                   libxml2 libsoup gnome3.gnome_online_accounts nspr nss
-                  gdk_pixbuf gnome3.defaultIconTheme librsvg
-                  libchamplain clutter_gtk geocode_glib
-                  vala_0_32 automake autoconf db ];
+                  gdk_pixbuf gnome3.defaultIconTheme libchamplain clutter_gtk geocode_glib db ];
 
   preFixup = ''
     gappsWrapperArgs+=(
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index d56018bf1e8b..e8a7cb8ceb95 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib
 , intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland
-, gobjectIntrospection }:
+, libseccomp, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ python libxml2Python libxslt which libX11
                   xkeyboard_config isocodes itstool wayland
                   gtk3 glib intltool gnome_doc_utils libxkbfile
-                  gobjectIntrospection ];
+                   libseccomp gobjectIntrospection ];
 
   propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
index 77c4805a197e..da28d6382624 100644
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
@@ -1,28 +1,31 @@
-{ stdenv, intltool, fetchurl
-, pkgconfig, gtk3, glib
-, bash, makeWrapper, itstool, libxml2
-, gnome3, librsvg, gdk_pixbuf, file }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, desktop_file_utils, appstream-glib, libxslt
+, libxml2, gettext, itstool, wrapGAppsHook, docbook_xsl, docbook_xml_dtd_43
+, gnome3, gtk, glib }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
-
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
-  propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
+  propagatedBuildInputs = [ gnome3.defaultIconTheme ];
+
+  nativeBuildInputs = [ meson ninja pkgconfig wrapGAppsHook libxml2 gettext itstool
+                        desktop_file_utils appstream-glib libxslt docbook_xsl ];
+  buildInputs = [ gtk glib gnome3.gsettings_desktop_schemas ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 glib intltool itstool libxml2 file
-                  gnome3.gsettings_desktop_schemas makeWrapper ];
+  postPatch = ''
+    substituteInPlace data/meson.build --replace \
+      "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" \
+      "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
 
-  preFixup = ''
-    wrapProgram "$out/bin/gnome-dictionary" \
-      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    substituteInPlace data/gnome-dictionary.xml --replace \
+      http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd \
+      ${docbook_xml_dtd_43}/xml/dtd/docbook/docbookx.dtd
   '';
 
+  checkPhase = "meson test";
+
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Apps/Dictionary;
     description = "Dictionary is the GNOME application to look up definitions";
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index f9380272f065..0f610d3effc8 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -1,24 +1,25 @@
-{ stdenv, intltool, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
-, bash, gtk3, glib, wrapGAppsHook, cracklib, libnotify
-, itstool, gnome3, gdk_pixbuf, libxml2, python
-, libcanberra_gtk3, libxslt, libtool, docbook_xsl, libpwquality }:
+{ stdenv, gettext, fetchurl, pkgconfig, udisks2, libsecret, libdvdread
+, meson, ninja, gtk, glib, wrapGAppsHook, libnotify
+, itstool, gnome3, gdk_pixbuf, libxml2
+, libcanberra_gtk3, libxslt, docbook_xsl, libpwquality }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  doCheck = true;
-
   NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ bash gtk3 glib intltool itstool
-                  libxslt libtool libsecret libpwquality cracklib
-                  libnotify libdvdread libcanberra_gtk3 docbook_xsl
-                  gdk_pixbuf gnome3.defaultIconTheme
-                  udisks2 gnome3.gnome_settings_daemon
-                  gnome3.gsettings_desktop_schemas wrapGAppsHook libxml2 ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext itstool libxslt docbook_xsl
+                        wrapGAppsHook libxml2 ];
+  buildInputs = [ gtk glib libsecret libpwquality libnotify libdvdread libcanberra_gtk3
+                  gdk_pixbuf udisks2 gnome3.defaultIconTheme
+                  gnome3.gnome_settings_daemon gnome3.gsettings_desktop_schemas ];
+
+  postPatch = ''
+    chmod +x meson_post_install.py # patchShebangs requires executable file
+    patchShebangs meson_post_install.py
+  '';
 
   meta = with stdenv.lib; {
     homepage = https://en.wikipedia.org/wiki/GNOME_Disks;
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
index 14aeb69e14cb..cdf119d83a3c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -1,27 +1,19 @@
-{ stdenv, intltool, fetchurl
-, pkgconfig, gtk3, glib
-, bash, wrapGAppsHook, itstool
-, gnome3, librsvg, gdk_pixbuf }:
+{ stdenv, meson, ninja, gettext, fetchurl
+, pkgconfig, gtk3, glib, libxml2
+, wrapGAppsHook, gnome3 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
+  checkPhase = "meson test";
 
-  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext wrapGAppsHook libxml2 ];
+  buildInputs = [ gtk3 glib gnome3.gnome_desktop gnome3.defaultIconTheme ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 glib intltool itstool gnome3.gnome_desktop
-                  gdk_pixbuf gnome3.defaultIconTheme librsvg
-                  gnome3.gsettings_desktop_schemas wrapGAppsHook ];
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share"
-    )
-  '';
+  # Do not run meson-postinstall.sh
+  preConfigure = "sed -i '2,$ d'  meson-postinstall.sh";
 
   meta = with stdenv.lib; {
     description = "Program that can preview fonts and create thumbnails for fonts";
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
index fbcd51b6cc29..d8e878715602 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
@@ -1,25 +1,18 @@
 { stdenv, fetchurl, pkgconfig, glib, gnome3, libxml2
-, libsoup, json_glib, gmp, openssl, dleyna-server, makeWrapper }:
+, libsoup, json_glib, gmp, openssl, dleyna-server, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
   buildInputs = [ glib gnome3.libgdata libxml2 libsoup gmp openssl
                   gnome3.grilo gnome3.libzapojit gnome3.grilo-plugins
-                  gnome3.gnome_online_accounts makeWrapper gnome3.libmediaart
+                  gnome3.gnome_online_accounts gnome3.libmediaart
                   gnome3.tracker gnome3.gfbgraph json_glib gnome3.rest
                   dleyna-server ];
 
   enableParallelBuilding = true;
 
-  preFixup = ''
-    for f in $out/libexec/*; do
-      wrapProgram "$f" \
-        --prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-${gnome3.grilo-plugins.major}"
-    done
-  '';
-
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/GnomeOnlineMiners;
     description = "A set of crawlers that go through your online content and index them locally in Tracker";
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index 1f933e1b3c57..69a967d6d247 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -1,26 +1,30 @@
-{ stdenv, intltool, fetchurl, pkgconfig, libcanberra_gtk3
-, bash, gtk3, glib, wrapGAppsHook
-, itstool, gnome3, librsvg, gdk_pixbuf }:
+{ stdenv, gettext, libxml2, fetchurl, pkgconfig, libcanberra_gtk3
+, bash, gtk3, glib, meson, ninja, wrapGAppsHook, appstream-glib
+, gnome3, librsvg, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   doCheck = true;
 
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
+  checkPhase = "meson test";
+
+
+  postPatch = ''
+    chmod +x build-aux/postinstall.py # patchShebangs requires executable file
+    patchShebangs build-aux/postinstall.py
+  '';
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
   propagatedBuildInputs = [ gdk_pixbuf gnome3.defaultIconTheme librsvg ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ bash gtk3 glib intltool itstool libcanberra_gtk3
-                  gnome3.gsettings_desktop_schemas wrapGAppsHook ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext appstream-glib libxml2 wrapGAppsHook ];
+  buildInputs = [ bash gtk3 glib libcanberra_gtk3
+                  gnome3.gsettings_desktop_schemas ];
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gtk3.out}/share:${gnome3.gnome_themes_standard}/share"
-    )
-  '';
+  patches = [
+    ./prevent-cache-updates.patch
+  ];
 
   meta = with stdenv.lib; {
     homepage = https://en.wikipedia.org/wiki/GNOME_Screenshot;
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/prevent-cache-updates.patch b/pkgs/desktops/gnome-3/core/gnome-screenshot/prevent-cache-updates.patch
new file mode 100644
index 000000000000..370d09cd2f02
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/prevent-cache-updates.patch
@@ -0,0 +1,21 @@
+--- a/build-aux/postinstall.py
++++ b/build-aux/postinstall.py
+@@ -8,18 +8,6 @@
+ 
+ # Packaging tools define DESTDIR and this isn't needed for them
+ if 'DESTDIR' not in os.environ:
+-    print('Updating icon cache...')
+-    icon_cache_dir = os.path.join(datadir, 'icons', 'hicolor')
+-    if not os.path.exists(icon_cache_dir):
+-        os.makedirs(icon_cache_dir)
+-    subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir])
+-
+-    print('Updating desktop database...')
+-    desktop_database_dir = os.path.join(datadir, 'applications')
+-    if not os.path.exists(desktop_database_dir):
+-        os.makedirs(desktop_database_dir)
+-    subprocess.call(['update-desktop-database', '-q', desktop_database_dir])
+-
+     print('Compiling GSettings schemas...')
+     schemas_dir = os.path.join(datadir, 'glib-2.0', 'schemas')
+     if not os.path.exists(schemas_dir):
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index a694da0844de..ca660ad4a8a9 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,9 +1,10 @@
-{ fetchurl, stdenv, pkgconfig, gnome3, json_glib, libcroco, intltool, libsecret
+{ fetchurl, fetchpatch, stdenv, meson, ninja, pkgconfig, gnome3, json_glib, libcroco, gettext, libsecret
 , python3Packages, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at_spi2_core
-, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip
-, sqlite, libgweather, libcanberra_gtk3, librsvg, geoclue2
-, libpulseaudio, libical, libtool, nss, gobjectIntrospection, gstreamer, makeWrapper
-, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet }:
+, libstartup_notification, telepathy_glib, telepathy_logger, libXtst, p11_kit, unzip, glibcLocales
+, sqlite, libgweather, libcanberra_gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42
+, libpulseaudio, libical, nss, gobjectIntrospection, gstreamer, wrapGAppsHook
+, accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet
+, gst_all_1 }:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
 
@@ -14,50 +15,68 @@ in stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   # Needed to find /etc/NetworkManager/VPN
-  configureFlags = [ "--sysconfdir=/etc" ];
+  mesonFlags = [ "--sysconfdir=/etc" ];
 
+  LANG = "en_US.UTF-8";
+
+  nativeBuildInputs = [ meson ninja gettext docbook_xsl docbook_xsl_ns perl wrapGAppsHook glibcLocales ];
   buildInputs = with gnome3;
     [ gsettings_desktop_schemas gnome_keyring gnome-menus glib gcr json_glib accountsservice
-      libcroco intltool libsecret pkgconfig libsoup polkit libcanberra_gtk2 gdk_pixbuf
+      libcroco libsecret pkgconfig libsoup polkit gdk_pixbuf
       (librsvg.override { enableIntrospection = true; })
-      clutter networkmanager libstartup_notification telepathy_glib docbook_xsl docbook_xsl_ns
+      clutter networkmanager libstartup_notification telepathy_glib
       libXtst p11_kit networkmanagerapplet gjs mutter libpulseaudio caribou evolution_data_server
-      libical libtool nss gtk gstreamer makeWrapper gdm
+      libical nss gtk gstreamer gdm
       libcanberra_gtk3 gnome_control_center geoclue2
       defaultIconTheme sqlite gnome3.gnome-bluetooth
       libgweather # not declared at build time, but typelib is needed at runtime
       gnome3.gnome-clocks # schemas needed
       at_spi2_core upower ibus gnome_desktop telepathy_logger gnome3.gnome_settings_daemon
+      gst_all_1.gst-plugins-good # recording
       gobjectIntrospection (stdenv.lib.getLib dconf) ];
 
-  installFlags = [ "keysdir=$(out)/share/gnome-control-center/keybindings" ];
+  patches = [
+    (fetchpatch {
+      name = "0001-build-Add-missing-dependency-to-run-js-test.patch";
+      url = https://bug787864.bugzilla-attachments.gnome.org/attachment.cgi?id=360016;
+      sha256 = "1dmahd8ysbzh33rxglba0fbq127aw9h14cl2a2bw9913vjxhxijm";
+    })
+    ./fix-paths.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace man/meson.build --replace \
+      "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" \
+      "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
+
+    substituteInPlace man/gnome-shell.xml --replace \
+      http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd \
+      ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
+  '';
 
   preBuild = ''
-    patchShebangs src/data-to-c.pl
-    substituteInPlace data/Makefile --replace " install-keysDATA" ""
+    # meson setup-hook changes the directory so the files are located one level up
+    patchShebangs ../src/data-to-c.pl
 
-    substituteInPlace src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
-    substituteInPlace src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
+    substituteInPlace ../src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
+    substituteInPlace ../src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
   '';
 
-
   preFixup = with gnome3; ''
-    wrapProgram "$out/bin/gnome-shell" \
-      --prefix PATH : "${unzip}/bin" \
-      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \
-      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --prefix XDG_DATA_DIRS : "${gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS" \
-      --suffix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
+    gappsWrapperArgs+=(
+      --prefix PATH : "${unzip}/bin"
+    )
 
-    wrapProgram "$out/bin/gnome-shell-extension-prefs" \
-      --prefix XDG_DATA_DIRS : "$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+    echo "${unzip}/bin" > $out/${passthru.mozillaPlugin}/extra-bin-path
+  '';
 
-    wrapProgram "$out/libexec/gnome-shell-calendar-server" \
-      --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules" \
-      --prefix XDG_DATA_DIRS : "${evolution_data_server}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
+  postInstall = ''
+    glib-compile-schemas $out/share/glib-2.0/schemas
+  '';
 
-    echo "${unzip}/bin" > $out/${passthru.mozillaPlugin}/extra-bin-path
+  postFixup = ''
+    # Patched meson does not add internal libraries to rpath
+    patchelf --set-rpath "$out/lib/gnome-shell:$(patchelf --print-rpath $out/bin/.gnome-shell-wrapped)" $out/bin/.gnome-shell-wrapped
   '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
new file mode 100644
index 000000000000..b24049f9b9fd
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch
@@ -0,0 +1,18 @@
+diff --git a/meson.build b/meson.build
+index 4c1f5c63b..a9edb8795 100644
+--- a/meson.build
++++ b/meson.build
+@@ -59,12 +59,7 @@ servicedir = join_paths(datadir, 'dbus-1', 'services')
+ 
+ plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir)
+ 
+-keybindings_dep = dependency('gnome-keybindings', required: false)
+-if keybindings_dep.found()
+-  keysdir = keybindings_dep.get_pkgconfig_variable('keysdir')
+-else
+-  keysdir = join_paths(datadir, 'gnome-control-center', 'keybindings')
+-endif
++keysdir = join_paths(datadir, 'gnome-control-center', 'keybindings')
+ 
+ atk_bridge_dep = dependency('atk-bridge-2.0')
+ canberra_dep = dependency('libcanberra')
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 2f4a1427ec0a..3c78d2735e47 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -1,17 +1,43 @@
-{ stdenv, fetchurl, pkgconfig, intltool, gnome3, wrapGAppsHook, packagekit
-, appstream-glib, libsoup, polkit, attr, acl, libyaml, isocodes, gtkspell3
-, json_glib, libsecret, valgrind-light }:
+{ stdenv, fetchurl, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree
+, glib, appstream-glib, libsoup, polkit, attr, acl, libyaml, isocodes, gtkspell3, libxslt
+, json_glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, gtk_doc, desktop_file_utils }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
-  buildInputs = [ gnome3.gtk packagekit appstream-glib libsoup
+  nativeBuildInputs = [ pkgconfig meson ninja gettext wrapGAppsHook libxslt
+                        valgrind-light docbook_xsl gtk_doc desktop_file_utils ];
+  buildInputs = [ gnome3.gtk glib packagekit appstream-glib libsoup
                   gnome3.gsettings_desktop_schemas gnome3.gnome_desktop
-                  gtkspell3 json_glib libsecret
-                  polkit attr acl libyaml valgrind-light ];
+                  gtkspell3 json_glib libsecret ostree
+                  polkit attr acl libyaml ];
   propagatedBuildInputs = [ isocodes ];
 
+  NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
+
+  postPatch = ''
+    patchShebangs meson_post_install.sh
+
+    substituteInPlace src/meson.build --replace \
+      "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" \
+      "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
+
+    for xml in src/gnome-software.xml src/gnome-software-editor.xml; do
+      substituteInPlace $xml --replace \
+        http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd \
+        ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
+    done
+  '';
+
+  mesonFlags = [
+    "-Denable-flatpak=false"
+    "-Denable-rpm=false"
+    "-Denable-fwupd=false"
+    "-Denable-oauth=false"
+    "-Denable-ubuntu-reviews=false"
+    "-Denable-gudev=false"
+  ];
+
   postInstall = ''
     mkdir -p $out/share/xml/
     ln -s ${isocodes}/share/xml/iso-codes $out/share/xml/iso-codes
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 073a791ac3c8..f45bc8264f11 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, cairo, libxml2, gnome3, pango
-, gnome_doc_utils, intltool, libX11, which, libuuid, vala_0_32
+{ stdenv, fetchurl, pkgconfig, libxml2, gnome3
+, gnome_doc_utils, intltool, which, libuuid, vala_0_32
 , desktop_file_utils, itstool, wrapGAppsHook, appdata-tools }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
   buildInputs = [ gnome3.gtk gnome3.gsettings_desktop_schemas gnome3.vte appdata-tools
-                  gnome3.dconf itstool gnome3.nautilus vala_0_32 ];
+                  gnome3.dconf itstool gnome3.nautilus ];
 
   nativeBuildInputs = [ pkgconfig intltool gnome_doc_utils which libuuid libxml2
-                        desktop_file_utils wrapGAppsHook ];
+                        vala_0_32 desktop_file_utils wrapGAppsHook ];
 
   # Silly ./configure, it looks for dbus file from gnome-shell in the
   # installation tree of the package it is configuring.
diff --git a/pkgs/desktops/gnome-3/core/gsound/default.nix b/pkgs/desktops/gnome-3/core/gsound/default.nix
index 8e72b7fb233e..7b934db85fdd 100644
--- a/pkgs/desktops/gnome-3/core/gsound/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsound/default.nix
@@ -3,15 +3,15 @@
 let
   majVer = "1.0";
 in stdenv.mkDerivation rec {
-  name = "gsound-${majVer}.1";
+  name = "gsound-${majVer}.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gsound/${majVer}/${name}.tar.xz";
-    sha256 = "ea0dd94429c0645f2f98824274ef04543fe459dd83a5449a68910acc3ba67f29";
+    sha256 = "bba8ff30eea815037e53bee727bbd5f0b6a2e74d452a7711b819a7c444e78e53";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ glib libcanberra_gtk2 gobjectIntrospection libtool ];
+  nativeBuildInputs = [ pkgconfig gobjectIntrospection libtool gnome3.vala ];
+  buildInputs = [ glib libcanberra_gtk2 ];
 
   meta = with stdenv.lib; {
     homepage = https://wiki.gnome.org/Projects/GSound;
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
index 9dbed05523c3..01b3c9bc0930 100644
--- a/pkgs/desktops/gnome-3/core/libgweather/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -4,9 +4,14 @@
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  configureFlags = [ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo" ];
+  configureFlags = [ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo" "--enable-vala" ];
   propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk gnome3.geocode_glib ];
-  nativeBuildInputs = [ pkgconfig intltool ];
+  nativeBuildInputs = [ pkgconfig intltool gnome3.vala ];
+
+  # Prevent building vapi into ${vala} derivation directory
+  prePatch = ''
+    substituteInPlace libgweather/Makefile.in --replace "\$(DESTDIR)\$(vapidir)" "\$(DESTDIR)\$(girdir)/../vala/vapi"
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 208b8b756488..aac800065be0 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
+{ fetchurl, stdenv, pkgconfig, gnome3, intltool, gobjectIntrospection, upower, cairo
 , pango, cogl, clutter, libstartup_notification, libcanberra_gtk2, zenity, libcanberra_gtk3
 , libtool, makeWrapper, xkeyboard_config, libxkbfile, libxkbcommon, libXtst, libudev, libinput
 , libgudev, libwacom, xwayland, autoreconfHook }:
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index f987df460349..0a7cd139d2cc 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, dbus_glib, shared_mime_info, libexif
-, gtk, gnome3, libunique, intltool, gobjectIntrospection, gnome-autoar, glib
-, libnotify, wrapGAppsHook, exempi, librsvg, tracker, libselinux, gdk_pixbuf }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, libxml2, desktop_file_utils, wrapGAppsHook
+, gtk, gnome3, gnome-autoar, glib, dbus_glib, shared_mime_info, libnotify, libexif
+, exempi, librsvg, tracker, tracker-miners, libselinux, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+  nativeBuildInputs = [ meson ninja pkgconfig libxml2 gettext wrapGAppsHook desktop_file_utils ];
 
-  buildInputs = [ libxml2 dbus_glib shared_mime_info libexif gtk libunique intltool exempi librsvg
-                  gnome3.gnome_desktop gnome3.adwaita-icon-theme
-                  gnome3.gsettings_desktop_schemas gnome3.dconf libnotify tracker libselinux ];
+  buildInputs = [ dbus_glib shared_mime_info libexif gtk exempi libnotify libselinux
+                  tracker tracker-miners gnome3.gnome_desktop gnome3.adwaita-icon-theme
+                  gnome3.gsettings_desktop_schemas ];
 
   propagatedBuildInputs = [ gnome-autoar ];
 
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
 #  hardeningDisable = [ "format" ];
   enableParallelBuilding = true;
 
+  postPatch = ''
+    patchShebangs build-aux/meson/postinstall.py
+  '';
+
   patches = [ ./extension_dir.patch ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index 0b453d5c5332..27a1e4b0be5b 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -1,24 +1,20 @@
-{ stdenv, fetchurl, cairo, colord, glib, gtk3, gusb, intltool, itstool
-, libusb1, libxml2, pkgconfig, sane-backends, vala_0_32, wrapGAppsHook
-, gnome3 }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, wrapGAppsHook
+, cairo, gdk_pixbuf, colord, glib, gtk, gusb, packagekit, libwebp
+, libxml2, sane-backends, vala, gnome3 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  buildInputs = [ cairo colord glib gnome3.defaultIconTheme gusb gtk3 libusb1 libxml2 sane-backends vala_0_32 ];
-  nativeBuildInputs = [ intltool itstool pkgconfig wrapGAppsHook ];
+  buildInputs = [ cairo gdk_pixbuf colord glib gnome3.defaultIconTheme gusb
+                gtk libwebp packagekit sane-backends vala ];
+  nativeBuildInputs = [ meson ninja gettext itstool pkgconfig wrapGAppsHook libxml2 ];
 
-  configureFlags = [ "--disable-packagekit" ];
+  postPatch = ''
+    patchShebangs data/meson_compile_gschema.py
 
-  patchPhase = ''
     sed -i -e 's#Icon=scanner#Icon=simple-scan#g' ./data/simple-scan.desktop.in
   '';
 
-  preBuild = ''
-    # Clean up stale .c files referencing packagekit headers as of 3.20.0:
-    make clean
-  '';
-
   postInstall = ''
     mkdir -p $out/share/icons
     mv $out/share/simple-scan/icons/* $out/share/icons/
@@ -39,6 +35,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  checkPhase = "meson test";
+
   meta = with stdenv.lib; {
     description = "Simple scanning utility";
     longDescription = ''
diff --git a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
index 56fef3129272..c763621564c7 100644
--- a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, file, intltool, gmime, libxml2, libsoup, gnome3 }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, gmime, libxml2, libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig file intltool ];
+  nativeBuildInputs = [ meson ninja pkgconfig gettext ];
   buildInputs = [ gmime libxml2 libsoup ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix b/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
index 2935111df27d..58e2ad07532e 100644
--- a/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
+++ b/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
@@ -5,6 +5,6 @@ fetchurl: {
 
   src = fetchurl {
     url = mirror://gnome/sources/totem-pl-parser/3.26/totem-pl-parser-3.26.0.tar.xz;
-    sha256 = "f153a53391e9b42fed5cb6ce62322a58e323fde6ec4a54d8ba4d376cf4c1fbcb";
+    sha256 = "1jzvq7s6qdsdpbc58jpcwvyj7qsq58r65kmnbknjzd79j4rsalzi";
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
index 34ec9b58116f..b66405cf0510 100644
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, intltool, fetchurl, gst_all_1
+{ stdenv, fetchurl, meson, ninja, intltool, gst_all_1, clutter
 , clutter_gtk, clutter-gst, python3Packages, shared_mime_info
 , pkgconfig, gtk3, glib, gobjectIntrospection
-, bash, wrapGAppsHook, itstool, libxml2, dbus_glib
-, gnome3, librsvg, gdk_pixbuf, file, tracker, nautilus }:
+, bash, wrapGAppsHook, itstool, libxml2, dbus_glib, vala, gnome3, librsvg
+, gdk_pixbuf, file, tracker, nautilus }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
@@ -15,18 +15,31 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 glib intltool itstool libxml2 gnome3.grilo
-                  clutter_gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins
-                  gst_all_1.gstreamer gst_all_1.gst-plugins-base
-                  gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly gst_all_1.gst-libav
-                  gnome3.libpeas shared_mime_info dbus_glib
-                  gdk_pixbuf gnome3.defaultIconTheme librsvg gnome3.gnome_desktop
-                  gnome3.gsettings_desktop_schemas wrapGAppsHook file tracker nautilus ];
+  nativeBuildInputs = [ meson ninja vala pkgconfig intltool python3Packages.python itstool file wrapGAppsHook ];
+  buildInputs = [ gtk3 glib gnome3.grilo clutter_gtk clutter-gst gnome3.totem-pl-parser gnome3.grilo-plugins
+                  gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad
+                  gst_all_1.gst-plugins-ugly gst_all_1.gst-libav gnome3.libpeas shared_mime_info dbus_glib
+                  gdk_pixbuf libxml2 gnome3.defaultIconTheme gnome3.gnome_desktop
+                  gnome3.gsettings_desktop_schemas tracker nautilus ];
 
   propagatedBuildInputs = [ gobjectIntrospection python3Packages.pylint python3Packages.pygobject2 ];
 
-  configureFlags = [ "--with-nautilusdir=$(out)/lib/nautilus/extensions-3.0" ];
+  checkPhase = "meson test";
+
+  patches = [
+    (fetchurl {
+      name = "remove-pycompile.patch";
+      url = "https://bug787965.bugzilla-attachments.gnome.org/attachment.cgi?id=360204";
+      sha256 = "1iphlazllv42k553jqh3nqrrh5jb63gy3nhj4ipwc9xh4sg2irhi";
+    })
+  ];
+
+  postPatch = ''
+    chmod +x meson_compile_python.py meson_post_install.py # patchShebangs requires executable file
+    patchShebangs .
+  '';
+
+  mesonFlags = [ "-Dwith-nautilusdir=lib/nautilus/extensions-3.0" ];
 
   GI_TYPELIB_PATH = "$out/lib/girepository-1.0";
   wrapPrefixVariables = [ "PYTHONPATH" ];
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
new file mode 100644
index 000000000000..baff249a03a3
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, intltool, fetchurl, libxml2, upower
+, pkgconfig, gtk3, glib
+, bash, wrapGAppsHook, itstool, vala, sqlite, libxslt
+, gnome3, librsvg, gdk_pixbuf, libnotify
+, evolution_data_server, gst_all_1, poppler
+, icu, taglib, libjpeg, libtiff, giflib, libcue
+, libvorbis, flac, exempi, networkmanager
+, libpng, libexif, libgsf, libuuid, bzip2
+, libsoup, json_glib, libseccomp
+, libiptcdata }:
+
+stdenv.mkDerivation rec {
+  inherit (import ./src.nix fetchurl) name src;
+
+  NIX_CFLAGS_COMPILE = "-I${poppler.dev}/include/poppler";
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ vala pkgconfig intltool itstool libxslt wrapGAppsHook ];
+  # TODO: add libgrss, libenca
+  buildInputs = [
+    bzip2 evolution_data_server exempi flac giflib glib gnome3.totem-pl-parser
+    gnome3.tracker gst_all_1.gst-plugins-base gst_all_1.gstreamer icu
+    json_glib libcue libexif libgsf libiptcdata libjpeg libpng libseccomp libsoup
+    libtiff libuuid libvorbis libxml2 poppler taglib upower
+  ];
+
+  LANG = "en_US.UTF-8"; # for running tests
+
+  doCheck = true;
+
+  postPatch = ''
+    substituteInPlace src/libtracker-common/tracker-domain-ontology.c --replace \
+      'SHAREDIR, "tracker", "domain-ontologies"' \
+      '"${gnome3.tracker}/share", "tracker", "domain-ontologies"'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://wiki.gnome.org/Projects/Tracker;
+    description = "Desktop-neutral user information store, search tool and indexer";
+    maintainers = gnome3.maintainers;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/src.nix b/pkgs/desktops/gnome-3/core/tracker-miners/src.nix
new file mode 100644
index 000000000000..2b309161fd19
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/src.nix
@@ -0,0 +1,10 @@
+# Autogenerated by maintainers/scripts/gnome.sh update
+
+fetchurl: {
+  name = "tracker-miners-2.0.2";
+
+  src = fetchurl {
+    url = mirror://gnome/sources/tracker-miners/2.0/tracker-miners-2.0.2.tar.xz;
+    sha256 = "cf417ece944c997f630dda41a7f5c449d609fa53dbb34fae7caa4c7af1e0e8ef";
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix
index 0d3e8bd358d4..bf3438db338a 100644
--- a/pkgs/desktops/gnome-3/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker/default.nix
@@ -1,43 +1,23 @@
-{ stdenv, intltool, fetchurl, libxml2, upower
-, pkgconfig, gtk3, glib
-, bash, wrapGAppsHook, itstool, vala_0_32, sqlite, libxslt
-, gnome3, librsvg, gdk_pixbuf, file, libnotify
-, evolution_data_server, gst_all_1, poppler
-, icu, taglib, libjpeg, libtiff, giflib, libcue
-, libvorbis, flac, exempi, networkmanager
-, libpng, libexif, libgsf, libuuid, bzip2
-, libsoup, json_glib, libseccomp }:
+{ stdenv, fetchurl, fetchpatch, intltool, pkgconfig
+, libxml2, upower, glib, wrapGAppsHook, vala, sqlite, libxslt
+, gnome3, icu, libuuid, networkmanager, libsoup, json_glib }:
 
 stdenv.mkDerivation rec {
-
   inherit (import ./src.nix fetchurl) name src;
 
-  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
-
-  NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0 -I${poppler.dev}/include/poppler";
-
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ vala_0_32 gtk3 glib intltool itstool libxml2
-                  bzip2 gnome3.totem-pl-parser libxslt
-                  gnome3.gsettings_desktop_schemas wrapGAppsHook
-                  file gdk_pixbuf gnome3.defaultIconTheme librsvg sqlite
-                  upower libnotify evolution_data_server gnome3.libgee
-                  gst_all_1.gstreamer gst_all_1.gst-plugins-base flac
-                  poppler icu taglib libjpeg libtiff giflib libvorbis
-                  exempi networkmanager libpng libexif libgsf libuuid
-                  libsoup json_glib libseccomp
-                ];
+  nativeBuildInputs = [ vala pkgconfig intltool libxslt wrapGAppsHook ];
+  # TODO: add libstemmer
+  buildInputs = [
+    glib libxml2 sqlite upower icu networkmanager libsoup libuuid json_glib
+  ];
 
-  preConfigure = ''
-    substituteInPlace src/libtracker-sparql/Makefile.in --replace "--shared-library=libtracker-sparql" "--shared-library=$out/lib/libtracker-sparql"
-  '';
+  # TODO: figure out wrapping unit tests, some of them fail on missing gsettings_desktop_schemas
+  configureFlags = [ "--disable-unit-tests" ];
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share"
-    )
+  postPatch = ''
+    patchShebangs utils/g-ir-merge/g-ir-merge
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/tracker/src.nix b/pkgs/desktops/gnome-3/core/tracker/src.nix
index 7a9b9ce3e38a..afec65a4f633 100644
--- a/pkgs/desktops/gnome-3/core/tracker/src.nix
+++ b/pkgs/desktops/gnome-3/core/tracker/src.nix
@@ -1,10 +1,10 @@
 # Autogenerated by maintainers/scripts/gnome.sh update
 
 fetchurl: {
-  name = "tracker-1.12.3";
+  name = "tracker-2.0.1";
 
   src = fetchurl {
-    url = mirror://gnome/sources/tracker/1.12/tracker-1.12.3.tar.xz;
-    sha256 = "1mpq418lzba7fad0w0m3bnxvz3khf461b5zya8zmq5n1g0w99ki3";
+    url = mirror://gnome/sources/tracker/2.0/tracker-2.0.1.tar.xz;
+    sha256 = "ac5c9f4dbb0741af5877ae2818d8c053aa9a431477a924a17976bb7e44411e47";
   };
 }
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
index b3962015d3cc..251e27334b11 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -1,14 +1,13 @@
 { stdenv, fetchurl, intltool, pkgconfig
-, gnome3, ncurses, gobjectIntrospection, vala_0_32, libxml2, gnutls
+, gnome3, ncurses, gobjectIntrospection, vala, libxml2, gnutls
 , fetchFromGitHub, autoconf, automake, libtool, gtk_doc, gperf, pcre2
 }:
 
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gobjectIntrospection intltool gnome3.glib
-                  gnome3.gtk3 ncurses vala_0_32 libxml2 gperf ];
+  nativeBuildInputs = [ gobjectIntrospection intltool pkgconfig vala gperf libxml2 ];
+  buildInputs = [ gnome3.glib gnome3.gtk3 ncurses ];
 
   propagatedBuildInputs = [ gnutls pcre2 ];