summary refs log tree commit diff
path: root/pkgs/desktops/gnome-3
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-02-25 21:07:20 +0100
committerJan Tojnar <jtojnar@gmail.com>2018-03-01 02:53:00 +0100
commit546e7669b211eee9f40ea9051a02033c27dc7ec6 (patch)
tree540993e0fab50a9ed80f31ba73f08046c4dd95af /pkgs/desktops/gnome-3
parent20e53c0b14b85112d180d18f424fb75dd78053da (diff)
downloadnixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.tar
nixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.tar.gz
nixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.tar.bz2
nixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.tar.lz
nixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.tar.xz
nixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.tar.zst
nixpkgs-546e7669b211eee9f40ea9051a02033c27dc7ec6.zip
gnome3: move src.nix into default.nix automatically
Diffstat (limited to 'pkgs/desktops/gnome-3')
-rw-r--r--pkgs/desktops/gnome-3/apps/bijiben/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/bijiben/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/cheese/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/cheese/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/evolution/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/file-roller/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gedit/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gedit/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/ghex/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/ghex/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/glade/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/glade/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-boxes/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-calendar/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-characters/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-characters/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-clocks/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-documents/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-logs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-maps/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-music/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-photos/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-photos/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-power-manager/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-weather/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-weather/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/polari/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/seahorse/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/apps/vinagre/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/apps/vinagre/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/adwaita-icon-theme/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/dconf-editor/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/empathy/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/empathy/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/eog/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/epiphany/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/evince/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/evince/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/evolution-data-server/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gcr/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gdm/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/geocode-glib/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/geocode-glib/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gjs/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gjs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-backgrounds/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-bluetooth/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-calculator/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-common/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-common/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-contacts/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-control-center/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-desktop/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-dictionary/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-disk-utility/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-font-viewer/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-accounts/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-online-miners/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-screenshot/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-session/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-settings-daemon/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell-extensions/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-shell/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-software/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-system-monitor/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-terminal/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-themes-standard/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-docs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-user-share/src.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceview/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceview/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gtksourceviewmm/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/gucharmap/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/libgnomekbd/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/libgnomekbd/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/libgweather/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/libpeas/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/libpeas/src.nix13
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/mutter/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/nautilus/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/simple-scan/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/sushi/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/sushi/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/totem/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/totem/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/tracker-miners/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/tracker/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/vino/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/vino/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/vte/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/vte/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-tools/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-tools/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-xsl/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/yelp-xsl/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/core/zenity/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/devtools/anjuta/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/devtools/anjuta/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/devtools/devhelp/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/devtools/devhelp/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/devtools/gdl/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/devtools/gdl/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/devtools/gnome-devel-docs/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/devtools/nemiver/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/devtools/nemiver/src.nix11
-rw-r--r--pkgs/desktops/gnome-3/games/aisleriot/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/aisleriot/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/five-or-more/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/five-or-more/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/four-in-a-row/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-chess/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-chess/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-klotski/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-klotski/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mahjongg/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mines/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-mines/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-nibbles/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-robots/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-robots/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-sudoku/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-taquin/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/gnome-tetravex/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/hitori/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/hitori/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/iagno/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/lightsoff/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/lightsoff/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/quadrapassel/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/quadrapassel/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/swell-foop/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/swell-foop/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/games/tali/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/games/tali/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gitg/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-autoar/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-packagekit/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gnome-tweak-tool/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/gspell/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gspell/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/gtkhtml/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/gtkhtml/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/libgda/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/libgda/src.nix10
-rw-r--r--pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/misc/libgit2-glib/src.nix10
220 files changed, 1210 insertions, 1216 deletions
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
index 29853881696..eaf8528b6ff 100644
--- a/pkgs/desktops/gnome-3/apps/bijiben/default.nix
+++ b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
@@ -5,7 +5,17 @@
 , gnome3, librsvg, gdk_pixbuf, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "bijiben-${version}";
+  version = "3.27.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/bijiben/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7b4623467f3cb745c4b268d6fb2d9da32cbc96ffb5b1bbf2a153b692e295ac64";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "bijiben"; attrPath = "gnome3.bijiben"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/bijiben/src.nix b/pkgs/desktops/gnome-3/apps/bijiben/src.nix
deleted file mode 100644
index ee573eaef8e..00000000000
--- a/pkgs/desktops/gnome-3/apps/bijiben/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "bijiben-3.27.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/bijiben/3.27/bijiben-3.27.1.tar.xz;
-    sha256 = "7b4623467f3cb745c4b268d6fb2d9da32cbc96ffb5b1bbf2a153b692e295ac64";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix
index 42e5cb4bc4d..77ee086a950 100644
--- a/pkgs/desktops/gnome-3/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix
@@ -5,7 +5,17 @@
 , adwaita-icon-theme, librsvg, totem, gdk_pixbuf, gnome3, gnome-desktop, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "cheese-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/cheese/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "8ef52fc41de1817c4e4274e23eb7c29d28b64ae0f0d1fec52e184e99aea6c605";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "cheese"; attrPath = "gnome3.cheese"; };
+  };
 
   nativeBuildInputs = [
     pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib
diff --git a/pkgs/desktops/gnome-3/apps/cheese/src.nix b/pkgs/desktops/gnome-3/apps/cheese/src.nix
deleted file mode 100644
index 0237606ae35..00000000000
--- a/pkgs/desktops/gnome-3/apps/cheese/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "cheese-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/cheese/3.26/cheese-3.26.0.tar.xz;
-    sha256 = "8ef52fc41de1817c4e4274e23eb7c29d28b64ae0f0d1fec52e184e99aea6c605";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
index ebbaccf9606..1119cf86a4c 100644
--- a/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -7,7 +7,17 @@
 let
   majVer = gnome3.version;
 in stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "evolution-${version}";
+  version = "3.26.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/evolution/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "091621f21827e2dfb8057f3b2c3a215c4e97a692c59d0a4ee33108af571de60e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "evolution"; attrPath = "gnome3.evolution"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/evolution/src.nix b/pkgs/desktops/gnome-3/apps/evolution/src.nix
deleted file mode 100644
index 0c8155efde2..00000000000
--- a/pkgs/desktops/gnome-3/apps/evolution/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "evolution-3.26.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/evolution/3.26/evolution-3.26.3.tar.xz;
-    sha256 = "091621f21827e2dfb8057f3b2c3a215c4e97a692c59d0a4ee33108af571de60e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index 18188829377..89f20ed6f15 100644
--- a/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -2,7 +2,17 @@
 , attr, bzip2, acl, wrapGAppsHook, librsvg, gdk_pixbuf, libnotify, nautilus }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "file-roller-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/file-roller/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "3e677b8e1c2f19aead69cf4fc419a19fc3373aaf5d7bf558b4f077f10bbba8a5";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "file-roller"; attrPath = "gnome3.file-roller"; };
+  };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
 
diff --git a/pkgs/desktops/gnome-3/apps/file-roller/src.nix b/pkgs/desktops/gnome-3/apps/file-roller/src.nix
deleted file mode 100644
index 090c88e1d3e..00000000000
--- a/pkgs/desktops/gnome-3/apps/file-roller/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "file-roller-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/file-roller/3.26/file-roller-3.26.2.tar.xz;
-    sha256 = "3e677b8e1c2f19aead69cf4fc419a19fc3373aaf5d7bf558b4f077f10bbba8a5";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gedit/default.nix b/pkgs/desktops/gnome-3/apps/gedit/default.nix
index f087b3129c4..d8f272931d9 100644
--- a/pkgs/desktops/gnome-3/apps/gedit/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gedit/default.nix
@@ -4,7 +4,17 @@
 , gnome3, librsvg, gdk_pixbuf, file, gspell }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gedit-${version}";
+  version = "3.22.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gedit/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "aa7bc3618fffa92fdb7daf2f57152e1eb7962e68561a9c92813d7bbb7fc9492b";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gedit"; attrPath = "gnome3.gedit"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/apps/gedit/src.nix b/pkgs/desktops/gnome-3/apps/gedit/src.nix
deleted file mode 100644
index 7a68b75eb2a..00000000000
--- a/pkgs/desktops/gnome-3/apps/gedit/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gedit-3.22.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gedit/3.22/gedit-3.22.1.tar.xz;
-    sha256 = "aa7bc3618fffa92fdb7daf2f57152e1eb7962e68561a9c92813d7bbb7fc9492b";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/ghex/default.nix b/pkgs/desktops/gnome-3/apps/ghex/default.nix
index 1179b2fdc5c..1f8077ff4af 100644
--- a/pkgs/desktops/gnome-3/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome-3/apps/ghex/default.nix
@@ -2,7 +2,17 @@
   wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "ghex-${version}";
+  version = "3.18.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/ghex/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "c67450f86f9c09c20768f1af36c11a66faf460ea00fbba628a9089a6804808d3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "ghex"; attrPath = "gnome3.ghex"; };
+  };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
 
diff --git a/pkgs/desktops/gnome-3/apps/ghex/src.nix b/pkgs/desktops/gnome-3/apps/ghex/src.nix
deleted file mode 100644
index edaa51d9478..00000000000
--- a/pkgs/desktops/gnome-3/apps/ghex/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "ghex-3.18.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/ghex/3.18/ghex-3.18.3.tar.xz;
-    sha256 = "c67450f86f9c09c20768f1af36c11a66faf460ea00fbba628a9089a6804808d3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/glade/default.nix b/pkgs/desktops/gnome-3/apps/glade/default.nix
index 6f79eeb7aed..0a6921bce6e 100644
--- a/pkgs/desktops/gnome-3/apps/glade/default.nix
+++ b/pkgs/desktops/gnome-3/apps/glade/default.nix
@@ -4,7 +4,17 @@
 , gnome3, gdk_pixbuf, libxslt }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "glade-${version}";
+  version = "3.20.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/glade/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "glade"; attrPath = "gnome3.glade"; };
+  };
 
   nativeBuildInputs = [
     pkgconfig intltool itstool wrapGAppsHook docbook_xsl libxslt gobjectIntrospection
diff --git a/pkgs/desktops/gnome-3/apps/glade/src.nix b/pkgs/desktops/gnome-3/apps/glade/src.nix
deleted file mode 100644
index b244d2434c9..00000000000
--- a/pkgs/desktops/gnome-3/apps/glade/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "glade-3.20.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/glade/3.20/glade-3.20.2.tar.xz;
-    sha256 = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index 8f9a33f01b4..674aa84dbc2 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -9,7 +9,17 @@
 # TODO: ovirt (optional)
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-boxes-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-boxes/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "d00fc083182963dc1bbdee5e743ceb28ba03fbf5a9ea87c78d29dca5fb5b9210";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-boxes"; attrPath = "gnome3.gnome-boxes"; };
+  };
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-boxes/src.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/src.nix
deleted file mode 100644
index b2c2f378bff..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-boxes/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-boxes-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-boxes/3.26/gnome-boxes-3.26.2.tar.xz;
-    sha256 = "d00fc083182963dc1bbdee5e743ceb28ba03fbf5a9ea87c78d29dca5fb5b9210";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index a464b823ba2..e82d004995d 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -3,7 +3,17 @@
 , glib, gnome-online-accounts, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-calendar-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-calendar/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "19a2c737b9662be926fb68e7dc731d94c523d23fa7a49e435e6a0346770dc50e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-calendar"; attrPath = "gnome3.gnome-calendar"; };
+  };
 
   NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-calendar/src.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/src.nix
deleted file mode 100644
index 39f7f333495..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-calendar/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-calendar-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-calendar/3.26/gnome-calendar-3.26.2.tar.xz;
-    sha256 = "19a2c737b9662be926fb68e7dc731d94c523d23fa7a49e435e6a0346770dc50e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
index c1efd7e24cc..5b36ea83ee1 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
@@ -2,7 +2,17 @@
 , intltool, gobjectIntrospection, gjs, gdk_pixbuf, librsvg }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-characters-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-characters/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "69d0218b4ce16451bef0e6ee9f9f18f5b7851aa3a758b13315d592b077374f7b";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-characters"; attrPath = "gnome3.gnome-characters"; };
+  };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook intltool ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-characters/src.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/src.nix
deleted file mode 100644
index d7ac2cd8829..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-characters/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-characters-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-characters/3.26/gnome-characters-3.26.2.tar.xz;
-    sha256 = "69d0218b4ce16451bef0e6ee9f9f18f5b7851aa3a758b13315d592b077374f7b";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
index 219a52b9843..47fd071bf83 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
@@ -4,7 +4,17 @@
 , gnome3, gdk_pixbuf, geoclue2, libgweather }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-clocks-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-clocks/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2bd8d8df1d6aa0feddd4afc15d84b1308202fda59a3c3be42e3bce7e9ccd11f7";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-clocks"; attrPath = "gnome3.gnome-clocks"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-clocks/src.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/src.nix
deleted file mode 100644
index ea7878f4869..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-clocks/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-clocks-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-clocks/3.26/gnome-clocks-3.26.1.tar.xz;
-    sha256 = "2bd8d8df1d6aa0feddd4afc15d84b1308202fda59a3c3be42e3bce7e9ccd11f7";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
index f565b9b8aae..15c59798083 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
@@ -6,7 +6,17 @@
 , gmp, desktop-file-utils, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-documents-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-documents/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "ba0d3084359d666b90733bb43206d24190fa85304bfe45f674ab6e6a27cb7fc9";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-documents"; attrPath = "gnome3.gnome-documents"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-documents/src.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/src.nix
deleted file mode 100644
index de0332ea403..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-documents/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-documents-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-documents/3.26/gnome-documents-3.26.1.tar.xz;
-    sha256 = "ba0d3084359d666b90733bb43206d24190fa85304bfe45f674ab6e6a27cb7fc9";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
index 0c75ebd7c78..8531fc1c7c0 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-getting-started-docs-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-getting-started-docs/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "34f45f6b5759a46547e834f1b706ae7485fd94e1af5354154420d8910ec67775";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-getting-started-docs"; attrPath = "gnome3.gnome-getting-started-docs"; };
+  };
 
   buildInputs = [ intltool itstool libxml2 ];
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/src.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/src.nix
deleted file mode 100644
index 3f1341b7cab..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-getting-started-docs-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-getting-started-docs/3.26/gnome-getting-started-docs-3.26.2.tar.xz;
-    sha256 = "34f45f6b5759a46547e834f1b706ae7485fd94e1af5354154420d8910ec67775";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 416975a88a5..66596d916a9 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -2,7 +2,17 @@
 , intltool, itstool, libxml2, systemd }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-logs-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-logs/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "e17ca011e7bea756bd841e027e56cfe8c214bed4817cb35732ace4aa73ff8f5c";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-logs"; attrPath = "gnome3.gnome-logs"; };
+  };
 
   configureFlags = [ "--disable-tests" ];
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-logs/src.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/src.nix
deleted file mode 100644
index 95162098668..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-logs/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-logs-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-logs/3.26/gnome-logs-3.26.2.tar.xz;
-    sha256 = "e17ca011e7bea756bd841e027e56cfe8c214bed4817cb35732ace4aa73ff8f5c";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index 1389c8f4994..c03397a40d8 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -4,7 +4,17 @@
 , webkitgtk }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-maps-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-maps/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "031d5c4a1aa79f1fbaf87f01fb790f7aab1d8dcd5d061cb5daf0fa96eaa18050";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-maps"; attrPath = "gnome3.gnome-maps"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-maps/src.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/src.nix
deleted file mode 100644
index 0fac7f865ca..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-maps/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-maps-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-maps/3.26/gnome-maps-3.26.2.tar.xz;
-    sha256 = "031d5c4a1aa79f1fbaf87f01fb790f7aab1d8dcd5d061cb5daf0fa96eaa18050";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index 58160f08973..86ea9b6590e 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -4,7 +4,17 @@
 , makeWrapper, itstool, gnome3, librsvg, gst_all_1 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-music-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-music/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7197dff12f441a52b4011512bfe8ec926f2ce4ca511f79b078e0e612d612f8c3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-music"; attrPath = "gnome3.gnome-music"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/src.nix b/pkgs/desktops/gnome-3/apps/gnome-music/src.nix
deleted file mode 100644
index 3ac99e146d4..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-music/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-music-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-music/3.26/gnome-music-3.26.1.tar.xz;
-    sha256 = "7197dff12f441a52b4011512bfe8ec926f2ce4ca511f79b078e0e612d612f8c3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
index c261aa1f1ef..2837e1d093f 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
@@ -6,7 +6,17 @@
 , dleyna-renderer }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-photos-${version}";
+  version = "3.26.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-photos/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "028de4c8662b7d1dc3ca6c3fbe3ce7f6bb90dd097708e99f235a409756dbadab";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-photos"; attrPath = "gnome3.gnome-photos"; };
+  };
 
   # doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-photos/src.nix b/pkgs/desktops/gnome-3/apps/gnome-photos/src.nix
deleted file mode 100644
index b9bba1ab6a4..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-photos/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-photos-3.26.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-photos/3.26/gnome-photos-3.26.3.tar.xz;
-    sha256 = "028de4c8662b7d1dc3ca6c3fbe3ce7f6bb90dd097708e99f235a409756dbadab";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix b/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
index 8e06f674c69..a295ef456df 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-power-manager/default.nix
@@ -12,7 +12,17 @@
 , gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-power-manager-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-power-manager/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "20aee0b0b4015e7cc6fbabc3cbc4344c07c230fe3d195e90c8ae0dc5d55a2d4e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-power-manager"; attrPath = "gnome3.gnome-power-manager"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/apps/gnome-power-manager/src.nix b/pkgs/desktops/gnome-3/apps/gnome-power-manager/src.nix
deleted file mode 100644
index bdffa453504..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-power-manager/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-power-manager-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-power-manager/3.26/gnome-power-manager-3.26.0.tar.xz;
-    sha256 = "20aee0b0b4015e7cc6fbabc3cbc4344c07c230fe3d195e90c8ae0dc5d55a2d4e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
index a82f075f573..9e43a3c52b4 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
@@ -2,7 +2,17 @@
 , libgweather, intltool, itstool, geoclue2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-weather-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-weather/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "965cc0d1b4d4e53c06d494db96f0b124d232af5c0e731ca900edd10f77a74c78";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-weather"; attrPath = "gnome3.gnome-weather"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/gnome-weather/src.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/src.nix
deleted file mode 100644
index d12db513253..00000000000
--- a/pkgs/desktops/gnome-3/apps/gnome-weather/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-weather-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-weather/3.26/gnome-weather-3.26.0.tar.xz;
-    sha256 = "965cc0d1b4d4e53c06d494db96f0b124d232af5c0e731ca900edd10f77a74c78";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index f2bd38709f1..f1d6dba21b0 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -4,7 +4,17 @@
 , gnome3, wrapGAppsHook, telepathy-logger, gspell }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "polari-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/polari/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2f36361dacf5d924d134f231fdb36ec4539f7495fce325d9b2f2728bd17cc190";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "polari"; attrPath = "gnome3.polari"; };
+  };
 
   propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
 
diff --git a/pkgs/desktops/gnome-3/apps/polari/src.nix b/pkgs/desktops/gnome-3/apps/polari/src.nix
deleted file mode 100644
index 8af7c33846d..00000000000
--- a/pkgs/desktops/gnome-3/apps/polari/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "polari-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/polari/3.26/polari-3.26.2.tar.xz;
-    sha256 = "2f36361dacf5d924d134f231fdb36ec4539f7495fce325d9b2f2728bd17cc190";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index 14e59407d6a..1a8c2f55b1b 100644
--- a/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -5,7 +5,17 @@
 , libsecret, avahi, p11-kit, openssh }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "seahorse-${version}";
+  version = "3.20.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/seahorse/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "e2b07461ed54a8333e5628e9b8e517ec2b731068377bf376570aad998274c6df";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "seahorse"; attrPath = "gnome3.seahorse"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/apps/seahorse/src.nix b/pkgs/desktops/gnome-3/apps/seahorse/src.nix
deleted file mode 100644
index 0ae195a0a7b..00000000000
--- a/pkgs/desktops/gnome-3/apps/seahorse/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "seahorse-3.20.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/seahorse/3.20/seahorse-3.20.0.tar.xz;
-    sha256 = "e2b07461ed54a8333e5628e9b8e517ec2b731068377bf376570aad998274c6df";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/apps/vinagre/default.nix
index e719fbf9f21..4f358cf0b4f 100644
--- a/pkgs/desktops/gnome-3/apps/vinagre/default.nix
+++ b/pkgs/desktops/gnome-3/apps/vinagre/default.nix
@@ -2,7 +2,17 @@
 , libsecret, itstool, makeWrapper, librsvg }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "vinagre-${version}";
+  version = "3.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/vinagre/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "cd1cdbacca25c8d1debf847455155ee798c3e67a20903df8b228d4ece5505e82";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "vinagre"; attrPath = "gnome3.vinagre"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 vte libxml2 gtkvnc intltool libsecret
diff --git a/pkgs/desktops/gnome-3/apps/vinagre/src.nix b/pkgs/desktops/gnome-3/apps/vinagre/src.nix
deleted file mode 100644
index 3d1357c4989..00000000000
--- a/pkgs/desktops/gnome-3/apps/vinagre/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "vinagre-3.22.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/vinagre/3.22/vinagre-3.22.0.tar.xz;
-    sha256 = "cd1cdbacca25c8d1debf847455155ee798c3e67a20903df8b228d4ece5505e82";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
index 780a315ca66..2178004a43a 100644
--- a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
@@ -2,7 +2,17 @@
 , iconnamingutils, gtk, gdk_pixbuf, librsvg, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "adwaita-icon-theme-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/adwaita-icon-theme/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "28ba7392c7761996efd780779167ea6c940eedfb1bf37cfe9bccb7021f54d79d";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "adwaita-icon-theme"; attrPath = "gnome3.adwaita-icon-theme"; };
+  };
 
   # For convenience, we can specify adwaita-icon-theme only in packages
   propagatedBuildInputs = [ hicolor-icon-theme ];
diff --git a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/src.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/src.nix
deleted file mode 100644
index 24f0955659e..00000000000
--- a/pkgs/desktops/gnome-3/core/adwaita-icon-theme/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "adwaita-icon-theme-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/adwaita-icon-theme/3.26/adwaita-icon-theme-3.26.1.tar.xz;
-    sha256 = "28ba7392c7761996efd780779167ea6c940eedfb1bf37cfe9bccb7021f54d79d";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index f94cb3c57c4..1ff67e35f0f 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -4,7 +4,17 @@
 , gnome3, librsvg, gdk_pixbuf, file }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "baobab-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/baobab/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7a59ab5945f5d90725231b10d85a1893403f56660b1627c111d2b4eeb1ef787e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "baobab"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/baobab/src.nix b/pkgs/desktops/gnome-3/core/baobab/src.nix
deleted file mode 100644
index d3e2f03feb8..00000000000
--- a/pkgs/desktops/gnome-3/core/baobab/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "baobab-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/baobab/3.26/baobab-3.26.1.tar.xz;
-    sha256 = "7a59ab5945f5d90725231b10d85a1893403f56660b1627c111d2b4eeb1ef787e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 49780aeea60..47ddf6b6486 100644
--- a/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -2,7 +2,17 @@
 , libxml2, intltool, docbook_xsl_ns, docbook_xsl, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "dconf-editor-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/dconf-editor/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "28b453fe49c49d7dfaf07c85c01d7495913f93ab64a0b223c117eb17d1cb8ad1";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "dconf-editor"; attrPath = "gnome3.dconf-editor"; };
+  };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
 
diff --git a/pkgs/desktops/gnome-3/core/dconf-editor/src.nix b/pkgs/desktops/gnome-3/core/dconf-editor/src.nix
deleted file mode 100644
index b21630641d9..00000000000
--- a/pkgs/desktops/gnome-3/core/dconf-editor/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "dconf-editor-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/dconf-editor/3.26/dconf-editor-3.26.2.tar.xz;
-    sha256 = "28b453fe49c49d7dfaf07c85c01d7495913f93ab64a0b223c117eb17d1cb8ad1";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
index 0263a152f7d..bf83c7aa8a1 100644
--- a/pkgs/desktops/gnome-3/core/empathy/default.nix
+++ b/pkgs/desktops/gnome-3/core/empathy/default.nix
@@ -10,7 +10,17 @@
 , isocodes, enchant, libchamplain, geoclue2, geocode-glib, cheese, libgudev }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "empathy-${version}";
+  version = "3.12.14";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/empathy/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7d86942ce97edd10ade0e6ae6a210d35e4d627fe4d223377d71fd1840bc6e3a3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "empathy"; };
+  };
 
   propagatedUserEnvPkgs = [
     gnome-online-accounts shared-mime-info
diff --git a/pkgs/desktops/gnome-3/core/empathy/src.nix b/pkgs/desktops/gnome-3/core/empathy/src.nix
deleted file mode 100644
index 7e54ed38fd3..00000000000
--- a/pkgs/desktops/gnome-3/core/empathy/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "empathy-3.12.14";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/empathy/3.12/empathy-3.12.14.tar.xz;
-    sha256 = "7d86942ce97edd10ade0e6ae6a210d35e4d627fe4d223377d71fd1840bc6e3a3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index b41be5c9d14..1acd6eb6942 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -2,7 +2,17 @@
 , shared-mime-info, wrapGAppsHook, librsvg, libexif, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "eog-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/eog/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "b53e3d4dfa7d0085b829a5fb95f148a099803c00ef276be7685efd5ec38807ad";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "eog"; attrPath = "gnome3.eog"; };
+  };
 
   nativeBuildInputs = [ pkgconfig gettext itstool wrapGAppsHook gobjectIntrospection ];
 
diff --git a/pkgs/desktops/gnome-3/core/eog/src.nix b/pkgs/desktops/gnome-3/core/eog/src.nix
deleted file mode 100644
index d0046d899be..00000000000
--- a/pkgs/desktops/gnome-3/core/eog/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "eog-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/eog/3.26/eog-3.26.2.tar.xz;
-    sha256 = "b53e3d4dfa7d0085b829a5fb95f148a099803c00ef276be7685efd5ec38807ad";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
index aa8722f53f2..18a27af7977 100644
--- a/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -5,7 +5,17 @@
 , gdk_pixbuf, gnome-common, gst_all_1, json-glib }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "epiphany-${version}";
+  version = "3.26.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/epiphany/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "390d50f975f8ab9228016eb60bf4b8ea9a39be0b31467e2d6c27ae75fa1e84ea";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "epiphany"; };
+  };
 
   # Tests need an X display
   mesonFlags = [ "-Dunit_tests=false" ];
diff --git a/pkgs/desktops/gnome-3/core/epiphany/src.nix b/pkgs/desktops/gnome-3/core/epiphany/src.nix
deleted file mode 100644
index 3365261b7bc..00000000000
--- a/pkgs/desktops/gnome-3/core/epiphany/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "epiphany-3.26.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/epiphany/3.26/epiphany-3.26.4.tar.xz;
-    sha256 = "390d50f975f8ab9228016eb60bf4b8ea9a39be0b31467e2d6c27ae75fa1e84ea";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
index de5b20a4991..2d52e22c54c 100644
--- a/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -8,7 +8,17 @@
 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "evince-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/evince/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "79567bdb743cf0c3ed7b638da32afc9b850298f9b4edd532455df4a7e2a4c9d8";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "evince"; };
+  };
 
   nativeBuildInputs = [
     pkgconfig gobjectIntrospection intltool itstool wrapGAppsHook yelp-tools autoreconfHook
diff --git a/pkgs/desktops/gnome-3/core/evince/src.nix b/pkgs/desktops/gnome-3/core/evince/src.nix
deleted file mode 100644
index 6627be55088..00000000000
--- a/pkgs/desktops/gnome-3/core/evince/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "evince-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/evince/3.26/evince-3.26.0.tar.xz;
-    sha256 = "79567bdb743cf0c3ed7b638da32afc9b850298f9b4edd532455df4a7e2a4c9d8";
-  };
-}
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 bb45952f1d5..f5723f673bb 100644
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -4,7 +4,17 @@
 , vala, cmake, kerberos, openldap, webkitgtk, libaccounts-glib, json-glib }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "evolution-data-server-${version}";
+  version = "3.26.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/evolution-data-server/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "63b1ae5f76be818862f455bf841b5ebb1ec3e1f4df6d3a16dc2be348b7e0a1c5";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "evolution-data-server"; };
+  };
 
   nativeBuildInputs = [
     cmake pkgconfig intltool python3 gperf makeWrapper
diff --git a/pkgs/desktops/gnome-3/core/evolution-data-server/src.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/src.nix
deleted file mode 100644
index 906df1b2160..00000000000
--- a/pkgs/desktops/gnome-3/core/evolution-data-server/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "evolution-data-server-3.26.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/evolution-data-server/3.26/evolution-data-server-3.26.3.tar.xz;
-    sha256 = "63b1ae5f76be818862f455bf841b5ebb1ec3e1f4df6d3a16dc2be348b7e0a1c5";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index 7ecf79391f0..aa26c660768 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -3,7 +3,17 @@
 , gobjectIntrospection, makeWrapper, libxslt, vala, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gcr-${version}";
+  version = "3.20.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gcr/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gcr"; attrPath = "gnome3.gcr"; };
+  };
 
   outputs = [ "out" "dev" ];
 
diff --git a/pkgs/desktops/gnome-3/core/gcr/src.nix b/pkgs/desktops/gnome-3/core/gcr/src.nix
deleted file mode 100644
index d166f033266..00000000000
--- a/pkgs/desktops/gnome-3/core/gcr/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gcr-3.20.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gcr/3.20/gcr-3.20.0.tar.xz;
-    sha256 = "90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
index a6c8375e9b5..ef9439a3029 100644
--- a/pkgs/desktops/gnome-3/core/gdm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gdm/default.nix
@@ -4,7 +4,17 @@
 , librsvg, coreutils }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gdm-${version}";
+  version = "3.26.2.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gdm/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "17ddcb00602c2b426de58bb4b0d99af9de27450a8557dcc5ec850c080d55ad57";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gdm"; attrPath = "gnome3.gdm"; };
+  };
 
   # Only needed to make it build
   preConfigure = ''
diff --git a/pkgs/desktops/gnome-3/core/gdm/src.nix b/pkgs/desktops/gnome-3/core/gdm/src.nix
deleted file mode 100644
index 8d92167a039..00000000000
--- a/pkgs/desktops/gnome-3/core/gdm/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gdm-3.26.2.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gdm/3.26/gdm-3.26.2.1.tar.xz;
-    sha256 = "17ddcb00602c2b426de58bb4b0d99af9de27450a8557dcc5ec850c080d55ad57";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
index 341f1c4f095..e97e557e87a 100644
--- a/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
+++ b/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
@@ -1,7 +1,17 @@
 { fetchurl, stdenv, pkgconfig, gnome3, intltool, libsoup, json-glib }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "geocode-glib-${version}";
+  version = "3.24.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/geocode-glib/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "19c1fef4fd89eb4bfe6decca45ac45a2eca9bb7933be560ce6c172194840c35e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "geocode-glib"; attrPath = "gnome3.geocode-glib"; };
+  };
 
   buildInputs = with gnome3;
     [ intltool pkgconfig glib libsoup json-glib ];
diff --git a/pkgs/desktops/gnome-3/core/geocode-glib/src.nix b/pkgs/desktops/gnome-3/core/geocode-glib/src.nix
deleted file mode 100644
index 394e3a68c35..00000000000
--- a/pkgs/desktops/gnome-3/core/geocode-glib/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "geocode-glib-3.24.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/geocode-glib/3.24/geocode-glib-3.24.0.tar.xz;
-    sha256 = "19c1fef4fd89eb4bfe6decca45ac45a2eca9bb7933be560ce6c172194840c35e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix
index e2ae7493103..6e9f6c464df 100644
--- a/pkgs/desktops/gnome-3/core/gjs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gjs/default.nix
@@ -3,7 +3,17 @@
 , makeWrapper }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gjs-${version}";
+  version = "1.50.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gjs/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "b336e8709347e3c94245f6cbc3465f9a49f3ae491a25f49f8a97268f5235b93a";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gjs"; attrPath = "gnome3.gjs"; };
+  };
 
   outputs = [ "out" "installedTests" ];
 
diff --git a/pkgs/desktops/gnome-3/core/gjs/src.nix b/pkgs/desktops/gnome-3/core/gjs/src.nix
deleted file mode 100644
index d42b2e84558..00000000000
--- a/pkgs/desktops/gnome-3/core/gjs/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gjs-1.50.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gjs/1.50/gjs-1.50.4.tar.xz;
-    sha256 = "b336e8709347e3c94245f6cbc3465f9a49f3ae491a25f49f8a97268f5235b93a";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
index eb801caf565..0aea3c4eac4 100644
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, pkgconfig, gnome3, intltool }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-backgrounds-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-backgrounds/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "3a8ba8d3463d70bce2377b168218e32367c0020f2d0caf611e7e39066081f94f";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-backgrounds"; attrPath = "gnome3.gnome-backgrounds"; };
+  };
 
   nativeBuildInputs = [ pkgconfig intltool ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-backgrounds/src.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/src.nix
deleted file mode 100644
index 9d86b7168ad..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-backgrounds/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-backgrounds-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-backgrounds/3.26/gnome-backgrounds-3.26.2.tar.xz;
-    sha256 = "3a8ba8d3463d70bce2377b168218e32367c0020f2d0caf611e7e39066081f94f";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
index 12e91b8e431..11816f68ff4 100644
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
@@ -2,7 +2,17 @@
 , udev, itstool, libxml2, wrapGAppsHook, libnotify, libcanberra-gtk3, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-bluetooth-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-bluetooth/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "1d2c7b94fc76a833dad0d4d91344e9a5a7b4aad740c5a90944bd25c5be7e784f";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-bluetooth"; attrPath = "gnome3.gnome-bluetooth"; };
+  };
 
   nativeBuildInputs = [ meson ninja intltool itstool pkgconfig libxml2 wrapGAppsHook gobjectIntrospection ];
   buildInputs = [ glib gtk3 udev libnotify libcanberra-gtk3
diff --git a/pkgs/desktops/gnome-3/core/gnome-bluetooth/src.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/src.nix
deleted file mode 100644
index 31aab6649d7..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-bluetooth/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-bluetooth-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-bluetooth/3.26/gnome-bluetooth-3.26.1.tar.xz;
-    sha256 = "1d2c7b94fc76a833dad0d4d91344e9a5a7b4aad740c5a90944bd25c5be7e784f";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
index 5382bce44a0..8376bea1a03 100644
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
@@ -3,7 +3,17 @@
 , itstool, gnome3, librsvg, gdk_pixbuf, mpfr, gmp, libsoup, libmpc }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-calculator-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-calculator/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "62215b37fcd73a6bbb106ebd0f25051c81ff0cf6ad84fd4a3ea176bceb5863c7";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-calculator"; attrPath = "gnome3.gnome-calculator"; };
+  };
 
   NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-calculator/src.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/src.nix
deleted file mode 100644
index 517220c9457..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-calculator/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-calculator-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-calculator/3.26/gnome-calculator-3.26.0.tar.xz;
-    sha256 = "62215b37fcd73a6bbb106ebd0f25051c81ff0cf6ad84fd4a3ea176bceb5863c7";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/core/gnome-common/default.nix
index 8623e598dc2..23fd157a528 100644
--- a/pkgs/desktops/gnome-3/core/gnome-common/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-common/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, which, gnome3, autoconf, automake }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-common-${version}";
+  version = "3.18.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-common/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-common"; attrPath = "gnome3.gnome-common"; };
+  };
 
   patches = [(fetchurl {
     name = "gnome-common-patch";
diff --git a/pkgs/desktops/gnome-3/core/gnome-common/src.nix b/pkgs/desktops/gnome-3/core/gnome-common/src.nix
deleted file mode 100644
index 8ffe7e20e1a..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-common/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-common-3.18.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-common/3.18/gnome-common-3.18.0.tar.xz;
-    sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index d05ab4470c5..eb2f7631ba8 100644
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -6,7 +6,17 @@
 , libsoup, vala, dbus-glib, automake, autoconf }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-contacts-${version}";
+  version = "3.26";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-contacts/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f819ac74b2ad581f9741614627f49ef519713324afd9e4fc0ea5ac261a5f68c1";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-contacts"; attrPath = "gnome3.gnome-contacts"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-contacts/src.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/src.nix
deleted file mode 100644
index bf3df1bc84f..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-contacts/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-contacts-3.26";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-contacts/3.26/gnome-contacts-3.26.tar.xz;
-    sha256 = "f819ac74b2ad581f9741614627f49ef519713324afd9e4fc0ea5ac261a5f68c1";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index 1c4d4858bf5..8774de41c4b 100644
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -8,7 +8,17 @@
 , fontconfig, sound-theme-freedesktop, grilo }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-control-center-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-control-center/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "07aed27d6317f2cad137daa6d94a37ad02c32b958dcd30c8f07d0319abfb04c5";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-control-center"; attrPath = "gnome3.gnome-control-center"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-control-center/src.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/src.nix
deleted file mode 100644
index 948768904ae..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-control-center/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-control-center-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-control-center/3.26/gnome-control-center-3.26.2.tar.xz;
-    sha256 = "07aed27d6317f2cad137daa6d94a37ad02c32b958dcd30c8f07d0319abfb04c5";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index deabb41224f..7e85e27d6be 100644
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -3,7 +3,17 @@
 , libseccomp, bubblewrap, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-desktop-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-desktop/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f7561a7a313fc474b2c390cd9696df1f5c1e1556080e43f4afe042b1060e5f2a";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-desktop"; attrPath = "gnome3.gnome-desktop"; };
+  };
 
   # this should probably be setuphook for glib
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/src.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/src.nix
deleted file mode 100644
index f3c0d446d3f..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-desktop/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-desktop-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-desktop/3.26/gnome-desktop-3.26.2.tar.xz;
-    sha256 = "f7561a7a313fc474b2c390cd9696df1f5c1e1556080e43f4afe042b1060e5f2a";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
index 0327ce9862b..95fcfac1d75 100644
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
@@ -3,7 +3,17 @@
 , gnome3, gtk, glib }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-dictionary-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-dictionary/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-dictionary"; attrPath = "gnome3.gnome-dictionary"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-dictionary/src.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/src.nix
deleted file mode 100644
index 92a50430bd1..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-dictionary/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-dictionary-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-dictionary/3.26/gnome-dictionary-3.26.1.tar.xz;
-    sha256 = "16b8bc248dcf68987826d5e39234b1bb7fd24a2607fcdbf4258fde88f012f300";
-  };
-}
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 c37f824a561..0937f5c3082 100644
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -4,7 +4,17 @@
 , libcanberra-gtk3, libxslt, docbook_xsl, libpwquality }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-disk-utility-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-disk-utility/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "aa2b96c2c64d8bde6cf802ff8da5796720d0becb21111342ced0637961e256f2";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-disk-utility"; attrPath = "gnome3.gnome-disk-utility"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-disk-utility/src.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/src.nix
deleted file mode 100644
index e3241153a93..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-disk-utility/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-disk-utility-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-disk-utility/3.26/gnome-disk-utility-3.26.2.tar.xz;
-    sha256 = "aa2b96c2c64d8bde6cf802ff8da5796720d0becb21111342ced0637961e256f2";
-  };
-}
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 6908a5161a0..3774ff32db0 100644
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
@@ -3,7 +3,17 @@
 , wrapGAppsHook, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-font-viewer-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-font-viewer/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "02768a62b4033de5ef9d00602e8c29e5de05255f879b0d9b4d731be9648fe9a0";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-font-viewer"; attrPath = "gnome3.gnome-font-viewer"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-font-viewer/src.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/src.nix
deleted file mode 100644
index c31f09938c9..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-font-viewer/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-font-viewer-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-font-viewer/3.26/gnome-font-viewer-3.26.0.tar.xz;
-    sha256 = "02768a62b4033de5ef9d00602e8c29e5de05255f879b0d9b4d731be9648fe9a0";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 9c1282ecc4c..f7f06e35d3a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -3,7 +3,17 @@
 , docbook_xsl, docbook_xml_dtd_42, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-keyring-${version}";
+  version = "3.20.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-keyring/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "134ci3mn6jjap59z3lrvyiip7zf2nlw5xvanr44yajs57xr4x5lp";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-keyring"; attrPath = "gnome3.gnome-keyring"; };
+  };
 
   outputs = [ "out" "dev" ];
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/src.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/src.nix
deleted file mode 100644
index ffee6211232..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-keyring-3.20.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-keyring/3.20/gnome-keyring-3.20.1.tar.xz;
-    sha256 = "134ci3mn6jjap59z3lrvyiip7zf2nlw5xvanr44yajs57xr4x5lp";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
index b0edf4f978f..2abe8b28c03 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
@@ -5,7 +5,17 @@
 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-online-accounts-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-online-accounts/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "49f8760d86fe33057eaeeb4f1667bc7f6163e428591e7aed9575563be10b17d1";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-online-accounts"; attrPath = "gnome3.gnome-online-accounts"; };
+  };
 
   NIX_CFLAGS_COMPILE = "-I${dbus-glib.dev}/include/dbus-1.0 -I${dbus_libs.dev}/include/dbus-1.0";
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-accounts/src.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/src.nix
deleted file mode 100644
index c43183c7c57..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-online-accounts/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-online-accounts-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-online-accounts/3.26/gnome-online-accounts-3.26.2.tar.xz;
-    sha256 = "49f8760d86fe33057eaeeb4f1667bc7f6163e428591e7aed9575563be10b17d1";
-  };
-}
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 2ef1ae2fa3e..1df5465382a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
@@ -2,7 +2,17 @@
 , libsoup, json-glib, gmp, openssl, dleyna-server, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-online-miners-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-online-miners/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7f404db5eccb87524a5dfcef5b6f38b11047b371081559afbe48c34dbca2a98e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-online-miners"; attrPath = "gnome3.gnome-online-miners"; };
+  };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
   buildInputs = [ glib gnome3.libgdata libxml2 libsoup gmp openssl
diff --git a/pkgs/desktops/gnome-3/core/gnome-online-miners/src.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/src.nix
deleted file mode 100644
index 3b8306c6a1a..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-online-miners/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-online-miners-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-online-miners/3.26/gnome-online-miners-3.26.0.tar.xz;
-    sha256 = "7f404db5eccb87524a5dfcef5b6f38b11047b371081559afbe48c34dbca2a98e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
index c4030f38d5d..1f7aa4d874a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
@@ -3,7 +3,17 @@
 , gnome3, librsvg, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-screenshot-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-screenshot/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "1bbc11595d3822f4b92319cdf9ba49dd00f5471b6046c590847dc424a874c8bb";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-screenshot"; attrPath = "gnome3.gnome-screenshot"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-screenshot/src.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/src.nix
deleted file mode 100644
index 72b1e662545..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-screenshot/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-screenshot-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-screenshot/3.26/gnome-screenshot-3.26.0.tar.xz;
-    sha256 = "1bbc11595d3822f4b92319cdf9ba49dd00f5471b6046c590847dc424a874c8bb";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
index c12b96f6090..c8bc6146221 100644
--- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
@@ -2,7 +2,17 @@
 , libxslt, intltool, makeWrapper, systemd, xorg, epoxy }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-session-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-session/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "d9414b368db982d3837ca106e64019f18e6cdd5b13965bea6c7d02ddf5103708";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-session"; attrPath = "gnome3.gnome-session"; };
+  };
 
   configureFlags = "--enable-systemd";
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-session/src.nix b/pkgs/desktops/gnome-3/core/gnome-session/src.nix
deleted file mode 100644
index bb9dec1efc2..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-session/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-session-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-session/3.26/gnome-session-3.26.1.tar.xz;
-    sha256 = "d9414b368db982d3837ca106e64019f18e6cdd5b13965bea6c7d02ddf5103708";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
index 6741eb81ade..e3c84dfa9fd 100644
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
@@ -4,7 +4,17 @@
 , docbook_xsl, docbook_xsl_ns, wrapGAppsHook, ibus, xkeyboard_config, tzdata }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-settings-daemon-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-settings-daemon/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "5a3d156b35e03fa3c28fddd0321f6726082a711973dee2af686370faae2e75e4";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-settings-daemon"; attrPath = "gnome3.gnome-settings-daemon"; };
+  };
 
   # fatal error: gio/gunixfdlist.h: No such file or directory
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/src.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/src.nix
deleted file mode 100644
index 1c3fbbfc2ef..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-settings-daemon-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-settings-daemon/3.26/gnome-settings-daemon-3.26.2.tar.xz;
-    sha256 = "5a3d156b35e03fa3c28fddd0321f6726082a711973dee2af686370faae2e75e4";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index fd90b8867d7..a76dd35711a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -2,7 +2,17 @@
 , bash, makeWrapper, itstool, gnome3, file }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-shell-extensions-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-shell-extensions/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "aefda4d810ef5ceb9402e2d620f4bdc1dc40c9cc4f6a51749840f7dd08628ab6";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-shell-extensions"; attrPath = "gnome3.gnome-shell-extensions"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/src.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/src.nix
deleted file mode 100644
index 150a15d0a5f..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-shell-extensions-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-shell-extensions/3.26/gnome-shell-extensions-3.26.2.tar.xz;
-    sha256 = "aefda4d810ef5ceb9402e2d620f4bdc1dc40c9cc4f6a51749840f7dd08628ab6";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 29b2bdd8406..0ba1fbc5e8a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -12,7 +12,17 @@ let
   pythonEnv = python3Packages.python.withPackages ( ps: with ps; [ pygobject3 ] );
 
 in stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-shell-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-shell/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "e5a87f2f838d981db9823352b90b2ce2f40d24d31ed9f062dccfa41b820e0b1c";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-shell"; attrPath = "gnome3.gnome-shell"; };
+  };
 
   # Needed to find /etc/NetworkManager/VPN
   mesonFlags = [ "--sysconfdir=/etc" ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/src.nix b/pkgs/desktops/gnome-3/core/gnome-shell/src.nix
deleted file mode 100644
index 83cdd0682fd..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-shell/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-shell-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-shell/3.26/gnome-shell-3.26.2.tar.xz;
-    sha256 = "e5a87f2f838d981db9823352b90b2ce2f40d24d31ed9f062dccfa41b820e0b1c";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index dda6e78661b..354924c5c43 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -3,7 +3,17 @@
 , 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;
+  name = "gnome-software-${version}";
+  version = "3.26.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-software/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2f74fd5fb222c99d4fcb91500cea0c62a0eb8022700bdea51acecb41c63f8e48";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-software"; attrPath = "gnome3.gnome-software"; };
+  };
 
   nativeBuildInputs = [ pkgconfig meson ninja gettext wrapGAppsHook libxslt docbook_xml_dtd_42
                         valgrind-light docbook_xsl gtk-doc desktop-file-utils ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/src.nix b/pkgs/desktops/gnome-3/core/gnome-software/src.nix
deleted file mode 100644
index 99c6415e83d..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-software/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-software-3.26.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-software/3.26/gnome-software-3.26.3.tar.xz;
-    sha256 = "2f74fd5fb222c99d4fcb91500cea0c62a0eb8022700bdea51acecb41c63f8e48";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
index 07eed05762d..0e64bc4362c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
@@ -3,7 +3,17 @@
 , itstool, gnome3, librsvg, gdk_pixbuf, libgtop, systemd }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-system-monitor-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-system-monitor/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f848a8c2ca5e164cf09d3a205dd49e4e4bf4b60d43b0969c10443eb519d0e6b3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-system-monitor"; attrPath = "gnome3.gnome-system-monitor"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-system-monitor/src.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/src.nix
deleted file mode 100644
index b5d527632ef..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-system-monitor/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-system-monitor-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-system-monitor/3.26/gnome-system-monitor-3.26.0.tar.xz;
-    sha256 = "f848a8c2ca5e164cf09d3a205dd49e4e4bf4b60d43b0969c10443eb519d0e6b3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
index 4ce393ad4e4..703bb6fe110 100644
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
@@ -3,7 +3,17 @@
 , desktop-file-utils, itstool, wrapGAppsHook, appdata-tools }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-terminal-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-terminal/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "3a9ba414a814569476515275ad303d8056f296b2669234447712559aa97005b0";
+  };
+
+  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 ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-terminal/src.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/src.nix
deleted file mode 100644
index a6072ba7ca5..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-terminal/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-terminal-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-terminal/3.26/gnome-terminal-3.26.2.tar.xz;
-    sha256 = "3a9ba414a814569476515275ad303d8056f296b2669234447712559aa97005b0";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
index 3db252d063f..720120b392d 100644
--- a/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
@@ -2,7 +2,17 @@
 , gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-themes-standard-${version}";
+  version = "3.22.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-themes-standard/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "61dc87c52261cfd5b94d65e8ffd923ddeb5d3944562f84942eeeb197ab8ab56a";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-themes-standard"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ intltool gtk3 librsvg pango atk gtk2 gdk_pixbuf
diff --git a/pkgs/desktops/gnome-3/core/gnome-themes-standard/src.nix b/pkgs/desktops/gnome-3/core/gnome-themes-standard/src.nix
deleted file mode 100644
index dcda746c8dd..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-themes-standard/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-themes-standard-3.22.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-themes-standard/3.22/gnome-themes-standard-3.22.3.tar.xz;
-    sha256 = "61dc87c52261cfd5b94d65e8ffd923ddeb5d3944562f84942eeeb197ab8ab56a";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
index 6ab72ab7826..8854e7a2d0c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, pkgconfig, file, gnome3, itstool, libxml2, intltool }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-user-docs-${version}";
+  version = "3.26.2.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-docs/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "93136f5baffd160c14e1b39f0ac60b9768975edac2da2b30c945faef534af8f5";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-user-docs"; attrPath = "gnome3.gnome-user-docs"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gnome3.yelp itstool libxml2 intltool ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-docs/src.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/src.nix
deleted file mode 100644
index c18bad6b4cd..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-user-docs/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-user-docs-3.26.2.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-user-docs/3.26/gnome-user-docs-3.26.2.1.tar.xz;
-    sha256 = "93136f5baffd160c14e1b39f0ac60b9768975edac2da2b30c945faef534af8f5";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
index 5d551dff1c0..642ee0badf1 100644
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
@@ -4,7 +4,17 @@
 , gnome3, librsvg, gdk_pixbuf, file, libcanberra-gtk3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-user-share-${version}";
+  version = "3.18.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-user-share/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "3092fa7ad137531e35484195dde4ecbbc75a8a3d9b8209aef4c852717cf4bbf1";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-user-share"; attrPath = "gnome3.gnome-user-share"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gnome-user-share/src.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/src.nix
deleted file mode 100644
index 2d06f9e7a7c..00000000000
--- a/pkgs/desktops/gnome-3/core/gnome-user-share/src.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: rec {
-  major = "3.18";
-  minor = "3";
-  name = "gnome-user-share-${major}.${minor}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/gnome-user-share/${major}/${name}.tar.xz";
-    sha256 = "3092fa7ad137531e35484195dde4ecbbc75a8a3d9b8209aef4c852717cf4bbf1";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
index 836d178f09d..89614a327a6 100644
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
+++ b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
@@ -3,7 +3,17 @@
 , gnome3, gtk3, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gsettings-desktop-schemas-${version}";
+  version = "3.24.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gsettings-desktop-schemas/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "76a3fa309f9de6074d66848987214f0b128124ba7184c958c15ac78a8ac7eea7";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gsettings-desktop-schemas"; };
+  };
 
   preInstall = ''
     mkdir -p $out/share/gsettings-schemas/${name}/glib-2.0/schemas
diff --git a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/src.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/src.nix
deleted file mode 100644
index 1eca56c509b..00000000000
--- a/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gsettings-desktop-schemas-3.24.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gsettings-desktop-schemas/3.24/gsettings-desktop-schemas-3.24.1.tar.xz;
-    sha256 = "76a3fa309f9de6074d66848987214f0b128124ba7184c958c15ac78a8ac7eea7";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
index 88e6a0bd785..b3948942c12 100644
--- a/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
+++ b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
@@ -4,7 +4,17 @@
 let
   checkInputs = [ xvfb_run dbus ];
 in stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gtksourceview-${version}";
+  version = "3.24.6";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtksourceview/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7aa6bdfebcdc73a763dddeaa42f190c40835e6f8495bb9eb8f78587e2577c188";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gtksourceview"; attrPath = "gnome3.gtksourceview"; };
+  };
 
   propagatedBuildInputs = [
     # Required by gtksourceview-3.0.pc
diff --git a/pkgs/desktops/gnome-3/core/gtksourceview/src.nix b/pkgs/desktops/gnome-3/core/gtksourceview/src.nix
deleted file mode 100644
index ec7a8a6aaa5..00000000000
--- a/pkgs/desktops/gnome-3/core/gtksourceview/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gtksourceview-3.24.6";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gtksourceview/3.24/gtksourceview-3.24.6.tar.xz;
-    sha256 = "7aa6bdfebcdc73a763dddeaa42f190c40835e6f8495bb9eb8f78587e2577c188";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix b/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
index 7763867bcbf..d9f9e95114c 100644
--- a/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
+++ b/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, pkgconfig, gtkmm, glibmm, gtksourceview }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gtksourceviewmm-${version}";
+  version = "3.21.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtksourceviewmm/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "d21296d8624a1046841bfec082021b7b966df0b62e19ee300828519bc54dd9c6";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gtksourceviewmm"; attrPath = "gnome3.gtksourceviewmm"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glibmm gtkmm gtksourceview ];
diff --git a/pkgs/desktops/gnome-3/core/gtksourceviewmm/src.nix b/pkgs/desktops/gnome-3/core/gtksourceviewmm/src.nix
deleted file mode 100644
index 21618c45e05..00000000000
--- a/pkgs/desktops/gnome-3/core/gtksourceviewmm/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gtksourceviewmm-3.21.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gtksourceviewmm/3.21/gtksourceviewmm-3.21.2.tar.xz;
-    sha256 = "d21296d8624a1046841bfec082021b7b966df0b62e19ee300828519bc54dd9c6";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
index 40b7a4c7d9f..ff9b232cb7a 100644
--- a/pkgs/desktops/gnome-3/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
@@ -7,7 +7,17 @@
 # use packaged gnome3.adwaita-icon-theme
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gucharmap-${version}";
+  version = "10.0.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gucharmap/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "ac07d75924e2d8f436d9492e8f7d54cf109404d34de06886a3967563cd1726a4";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gucharmap"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/gucharmap/src.nix b/pkgs/desktops/gnome-3/core/gucharmap/src.nix
deleted file mode 100644
index fb38e3bf386..00000000000
--- a/pkgs/desktops/gnome-3/core/gucharmap/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gucharmap-10.0.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gucharmap/10.0/gucharmap-10.0.3.tar.xz;
-    sha256 = "ac07d75924e2d8f436d9492e8f7d54cf109404d34de06886a3967563cd1726a4";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
index 319f089b920..6301f6f4ab6 100644
--- a/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, pkgconfig, file, intltool, glib, gtk3, libxklavier, makeWrapper, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "libgnomekbd-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgnomekbd/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "ea3b418c57c30615f7ee5b6f718def7c9d09ce34637324361150744258968875";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "libgnomekbd"; attrPath = "gnome3.libgnomekbd"; };
+  };
 
   nativeBuildInputs = [ pkgconfig file intltool makeWrapper ];
   buildInputs = [ glib gtk3 libxklavier ];
diff --git a/pkgs/desktops/gnome-3/core/libgnomekbd/src.nix b/pkgs/desktops/gnome-3/core/libgnomekbd/src.nix
deleted file mode 100644
index 431006daf4f..00000000000
--- a/pkgs/desktops/gnome-3/core/libgnomekbd/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "libgnomekbd-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgnomekbd/3.26/libgnomekbd-3.26.0.tar.xz;
-    sha256 = "ea3b418c57c30615f7ee5b6f718def7c9d09ce34637324361150744258968875";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
index 40f02886101..ad14abb1000 100644
--- a/pkgs/desktops/gnome-3/core/libgweather/default.nix
+++ b/pkgs/desktops/gnome-3/core/libgweather/default.nix
@@ -2,7 +2,17 @@
 , pango, gdk_pixbuf, atk, tzdata, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "libgweather-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgweather/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "fca78470b345bce948e0333cab0a7c52c32562fc4a75de37061248a64e8fc4b8";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "libgweather"; attrPath = "gnome3.libgweather"; };
+  };
 
   configureFlags = [ "--with-zoneinfo-dir=${tzdata}/share/zoneinfo" "--enable-vala" ];
   propagatedBuildInputs = [ libxml2 gtk libsoup gconf pango gdk_pixbuf atk gnome3.geocode-glib ];
diff --git a/pkgs/desktops/gnome-3/core/libgweather/src.nix b/pkgs/desktops/gnome-3/core/libgweather/src.nix
deleted file mode 100644
index 799713c28a4..00000000000
--- a/pkgs/desktops/gnome-3/core/libgweather/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "libgweather-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgweather/3.26/libgweather-3.26.1.tar.xz;
-    sha256 = "fca78470b345bce948e0333cab0a7c52c32562fc4a75de37061248a64e8fc4b8";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/libpeas/default.nix b/pkgs/desktops/gnome-3/core/libpeas/default.nix
index 998a1a02b3f..8eaa927ac7b 100644
--- a/pkgs/desktops/gnome-3/core/libpeas/default.nix
+++ b/pkgs/desktops/gnome-3/core/libpeas/default.nix
@@ -3,7 +3,17 @@
 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "libpeas-${version}";
+  version = "1.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libpeas/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "libpeas"; attrPath = "gnome3.libpeas"; };
+  };
 
   configureFlags = [ "--enable-python3" ];
 
diff --git a/pkgs/desktops/gnome-3/core/libpeas/src.nix b/pkgs/desktops/gnome-3/core/libpeas/src.nix
deleted file mode 100644
index 6f2cd82fb21..00000000000
--- a/pkgs/desktops/gnome-3/core/libpeas/src.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: rec {
-  major = "1.22";
-  minor = "0";
-  version = "${major}.${minor}";
-  name = "libpeas-${version}";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/libpeas/${major}/${name}.tar.xz";
-    sha256 = "0qm908kisyjzjxvygdl18hjqxvvgkq9w0phs2g55pck277sw0bsv";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 92c2fee8e46..dc89c8c674a 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -4,7 +4,17 @@
 , pipewire, libgudev, libwacom, xwayland, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "mutter-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/mutter/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "83309feb05a4635c47713665c0592af8ab6d7f17a36e4bd626d67609b6422fab";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "mutter"; attrPath = "gnome3.mutter"; };
+  };
 
   configureFlags = [
     "--with-x"
diff --git a/pkgs/desktops/gnome-3/core/mutter/src.nix b/pkgs/desktops/gnome-3/core/mutter/src.nix
deleted file mode 100644
index b3d0841a2e5..00000000000
--- a/pkgs/desktops/gnome-3/core/mutter/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "mutter-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/mutter/3.26/mutter-3.26.2.tar.xz;
-    sha256 = "83309feb05a4635c47713665c0592af8ab6d7f17a36e4bd626d67609b6422fab";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
index ebabc269e81..8ed7bb2f01a 100644
--- a/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -3,7 +3,17 @@
 , exempi, librsvg, tracker, tracker-miners, libselinux, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "nautilus-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/nautilus/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "79c99404c665ea76b3db86f261fbd28a62b54c51429b05c3314462c9de2614b4";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "nautilus"; attrPath = "gnome3.nautilus"; };
+  };
 
   nativeBuildInputs = [ meson ninja pkgconfig libxml2 gettext wrapGAppsHook desktop-file-utils ];
 
diff --git a/pkgs/desktops/gnome-3/core/nautilus/src.nix b/pkgs/desktops/gnome-3/core/nautilus/src.nix
deleted file mode 100644
index 1cc14391e39..00000000000
--- a/pkgs/desktops/gnome-3/core/nautilus/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "nautilus-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/nautilus/3.26/nautilus-3.26.2.tar.xz;
-    sha256 = "79c99404c665ea76b3db86f261fbd28a62b54c51429b05c3314462c9de2614b4";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index b65b722be7a..f982af2d56d 100644
--- a/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -3,7 +3,17 @@
 , libxml2, sane-backends, vala, gnome3, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "simple-scan-${version}";
+  version = "3.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/simple-scan/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "d172825b1b77e2e32c21fc847fd670c4711a504b09688f8567a98ac9516fe212";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "simple-scan"; };
+  };
 
   buildInputs = [ cairo gdk_pixbuf colord glib gnome3.defaultIconTheme gusb
                 gtk libwebp packagekit sane-backends vala ];
diff --git a/pkgs/desktops/gnome-3/core/simple-scan/src.nix b/pkgs/desktops/gnome-3/core/simple-scan/src.nix
deleted file mode 100644
index fb430db7d84..00000000000
--- a/pkgs/desktops/gnome-3/core/simple-scan/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "simple-scan-3.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/simple-scan/3.26/simple-scan-3.26.2.tar.xz;
-    sha256 = "d172825b1b77e2e32c21fc847fd670c4711a504b09688f8567a98ac9516fe212";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
index 3e568f8639a..00cec2f93b9 100644
--- a/pkgs/desktops/gnome-3/core/sushi/default.nix
+++ b/pkgs/desktops/gnome-3/core/sushi/default.nix
@@ -4,7 +4,17 @@
 , gdk_pixbuf, librsvg, gtk3, harfbuzz }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "sushi-${version}";
+  version = "3.24.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/sushi/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f90bb95172664486f8d529995007fd12f0df9d0c998e20658b6203f46ce70d48";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "sushi"; attrPath = "gnome3.sushi"; };
+  };
 
   propagatedUserEnvPkgs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good ];
 
diff --git a/pkgs/desktops/gnome-3/core/sushi/src.nix b/pkgs/desktops/gnome-3/core/sushi/src.nix
deleted file mode 100644
index a713aef6f7f..00000000000
--- a/pkgs/desktops/gnome-3/core/sushi/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "sushi-3.24.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/sushi/3.24/sushi-3.24.0.tar.xz;
-    sha256 = "f90bb95172664486f8d529995007fd12f0df9d0c998e20658b6203f46ce70d48";
-  };
-}
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 c763621564c..ef6bc97b1c6 100644
--- a/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, meson, ninja, pkgconfig, gettext, gmime, libxml2, libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "totem-pl-parser-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/totem-pl-parser/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f153a53391e9b42fed5cb6ce62322a58e323fde6ec4a54d8ba4d376cf4c1fbcb";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "totem-pl-parser"; attrPath = "gnome3.totem-pl-parser"; };
+  };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext ];
   buildInputs = [ gmime libxml2 libsoup ];
diff --git a/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix b/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
deleted file mode 100644
index 2935111df27..00000000000
--- a/pkgs/desktops/gnome-3/core/totem-pl-parser/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "totem-pl-parser-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/totem-pl-parser/3.26/totem-pl-parser-3.26.0.tar.xz;
-    sha256 = "f153a53391e9b42fed5cb6ce62322a58e323fde6ec4a54d8ba4d376cf4c1fbcb";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
index deb56e3c51c..a9d8b2ad11c 100644
--- a/pkgs/desktops/gnome-3/core/totem/default.nix
+++ b/pkgs/desktops/gnome-3/core/totem/default.nix
@@ -5,7 +5,17 @@
 , gdk_pixbuf, file, tracker, nautilus }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "totem-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/totem/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "e32fb9a68097045e75c87ad1b8177f5c01aea2a13dcb3b2e71a0f9570fe9ee13";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "totem"; attrPath = "gnome3.totem"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/totem/src.nix b/pkgs/desktops/gnome-3/core/totem/src.nix
deleted file mode 100644
index e051b13dee8..00000000000
--- a/pkgs/desktops/gnome-3/core/totem/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "totem-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/totem/3.26/totem-3.26.0.tar.xz;
-    sha256 = "e32fb9a68097045e75c87ad1b8177f5c01aea2a13dcb3b2e71a0f9570fe9ee13";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
index 7213bbdfdb2..6cb3aa39c21 100644
--- a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix
@@ -10,7 +10,17 @@
 , libiptcdata }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "tracker-miners-${version}";
+  version = "2.0.3";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tracker-miners/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "12413a9f8dfa705a48a2697dcbb3eef12ee91bb98f392a23ba4bda7813e41d1b";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "tracker-miners"; attrPath = "gnome3.tracker-miners"; };
+  };
 
   NIX_CFLAGS_COMPILE = "-I${poppler.dev}/include/poppler";
 
diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/src.nix b/pkgs/desktops/gnome-3/core/tracker-miners/src.nix
deleted file mode 100644
index 1c5ee9b35fa..00000000000
--- a/pkgs/desktops/gnome-3/core/tracker-miners/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "tracker-miners-2.0.3";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/tracker-miners/2.0/tracker-miners-2.0.3.tar.xz;
-    sha256 = "12413a9f8dfa705a48a2697dcbb3eef12ee91bb98f392a23ba4bda7813e41d1b";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix
index 2596709c0ba..f75de96669d 100644
--- a/pkgs/desktops/gnome-3/core/tracker/default.nix
+++ b/pkgs/desktops/gnome-3/core/tracker/default.nix
@@ -3,7 +3,17 @@
 , gnome3, icu, libuuid, networkmanager, libsoup, json-glib }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "tracker-${version}";
+  version = "2.0.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tracker/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "ece71a56c29151a76fc1b6e43c15dd1b657b37162dc948fa2487faf5ddb47fda";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "tracker"; attrPath = "gnome3.tracker"; };
+  };
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/gnome-3/core/tracker/src.nix b/pkgs/desktops/gnome-3/core/tracker/src.nix
deleted file mode 100644
index 887ae9a865a..00000000000
--- a/pkgs/desktops/gnome-3/core/tracker/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "tracker-2.0.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/tracker/2.0/tracker-2.0.2.tar.xz;
-    sha256 = "ece71a56c29151a76fc1b6e43c15dd1b657b37162dc948fa2487faf5ddb47fda";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
index 4eadcc05760..4365451636a 100644
--- a/pkgs/desktops/gnome-3/core/vino/default.nix
+++ b/pkgs/desktops/gnome-3/core/vino/default.nix
@@ -10,7 +10,17 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "vino-${version}";
+  version = "3.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/vino/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2911c779b6a2c46e5bc8e5a0c94c2a4d5bd4a1ee7e35f2818702cb13d9d23bab";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "vino"; attrPath = "gnome3.vino"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/vino/src.nix b/pkgs/desktops/gnome-3/core/vino/src.nix
deleted file mode 100644
index 8cf55272da9..00000000000
--- a/pkgs/desktops/gnome-3/core/vino/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "vino-3.22.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/vino/3.22/vino-3.22.0.tar.xz;
-    sha256 = "2911c779b6a2c46e5bc8e5a0c94c2a4d5bd4a1ee7e35f2818702cb13d9d23bab";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
index ef33cc34023..4abeb2ba961 100644
--- a/pkgs/desktops/gnome-3/core/vte/default.nix
+++ b/pkgs/desktops/gnome-3/core/vte/default.nix
@@ -4,7 +4,17 @@
 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "vte-${version}";
+  version = "0.50.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/vte/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "79dd316bfaff48f2fb74d066baae0d830e1f44436796fe410a57297e5c5f09cf";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "vte"; attrPath = "gnome3.vte"; };
+  };
 
   nativeBuildInputs = [ gobjectIntrospection intltool pkgconfig vala gperf libxml2 ];
   buildInputs = [ gnome3.glib gnome3.gtk3 ncurses ];
diff --git a/pkgs/desktops/gnome-3/core/vte/src.nix b/pkgs/desktops/gnome-3/core/vte/src.nix
deleted file mode 100644
index c63873767dc..00000000000
--- a/pkgs/desktops/gnome-3/core/vte/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "vte-0.50.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/vte/0.50/vte-0.50.2.tar.xz;
-    sha256 = "79dd316bfaff48f2fb74d066baae0d830e1f44436796fe410a57297e5c5f09cf";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
index d849178ae09..28e89cad9fb 100644
--- a/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, libxml2, libxslt, itstool, gnome3, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "yelp-tools-${version}";
+  version = "3.18.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/yelp-tools/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "c6c1d65f802397267cdc47aafd5398c4b60766e0a7ad2190426af6c0d0716932";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "yelp-tools"; attrPath = "gnome3.yelp-tools"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libxml2 libxslt itstool gnome3.yelp-xsl ];
diff --git a/pkgs/desktops/gnome-3/core/yelp-tools/src.nix b/pkgs/desktops/gnome-3/core/yelp-tools/src.nix
deleted file mode 100644
index f03c6d1bc31..00000000000
--- a/pkgs/desktops/gnome-3/core/yelp-tools/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "yelp-tools-3.18.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/yelp-tools/3.18/yelp-tools-3.18.0.tar.xz;
-    sha256 = "c6c1d65f802397267cdc47aafd5398c4b60766e0a7ad2190426af6c0d0716932";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
index 353b9ccb55e..341a7d7582c 100644
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
@@ -2,7 +2,17 @@
 , itstool, libxml2, libxslt, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "yelp-xsl-${version}";
+  version = "3.20.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/yelp-xsl/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "dc61849e5dca473573d32e28c6c4e3cf9c1b6afe241f8c26e29539c415f97ba0";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "yelp-xsl"; attrPath = "gnome3.yelp-xsl"; };
+  };
 
   doCheck = true;
 
diff --git a/pkgs/desktops/gnome-3/core/yelp-xsl/src.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/src.nix
deleted file mode 100644
index de5d68d1fab..00000000000
--- a/pkgs/desktops/gnome-3/core/yelp-xsl/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "yelp-xsl-3.20.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/yelp-xsl/3.20/yelp-xsl-3.20.1.tar.xz;
-    sha256 = "dc61849e5dca473573d32e28c6c4e3cf9c1b6afe241f8c26e29539c415f97ba0";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index 16e31446285..661ddc1f12f 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -4,7 +4,17 @@
 , wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "yelp-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/yelp/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "e4cb02ed2f44cfec3c352c957f8a461d9689cbc06eb3b503a58ffe92e1753f1b";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "yelp"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/core/yelp/src.nix b/pkgs/desktops/gnome-3/core/yelp/src.nix
deleted file mode 100644
index dd06a6bf1eb..00000000000
--- a/pkgs/desktops/gnome-3/core/yelp/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "yelp-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/yelp/3.26/yelp-3.26.0.tar.xz;
-    sha256 = "e4cb02ed2f44cfec3c352c957f8a461d9689cbc06eb3b503a58ffe92e1753f1b";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
index e7d14188b0c..fd55fd9f87a 100644
--- a/pkgs/desktops/gnome-3/core/zenity/default.nix
+++ b/pkgs/desktops/gnome-3/core/zenity/default.nix
@@ -2,7 +2,17 @@
 , gnome-doc-utils, intltool, libX11, which, itstool, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "zenity-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/zenity/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "6a7f34626dd62b751fe22bcdb32f3558f8a8fdddcc9406893dd264f0ac18e830";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "zenity"; attrPath = "gnome3.zenity"; };
+  };
 
   preBuild = ''
     mkdir -p $out/include
diff --git a/pkgs/desktops/gnome-3/core/zenity/src.nix b/pkgs/desktops/gnome-3/core/zenity/src.nix
deleted file mode 100644
index ad0ce2f4d73..00000000000
--- a/pkgs/desktops/gnome-3/core/zenity/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "zenity-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/zenity/3.26/zenity-3.26.0.tar.xz;
-    sha256 = "6a7f34626dd62b751fe22bcdb32f3558f8a8fdddcc9406893dd264f0ac18e830";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
index c81b160ae71..419588f8684 100644
--- a/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
@@ -2,7 +2,17 @@
   itstool, python3, ncurses, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "anjuta-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/anjuta/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "fb895464c1a3c915bb2bb3ea5d236fd17202caa7205f6792f70a75affc343d70";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "anjuta"; attrPath = "gnome3.anjuta"; };
+  };
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/desktops/gnome-3/devtools/anjuta/src.nix b/pkgs/desktops/gnome-3/devtools/anjuta/src.nix
deleted file mode 100644
index 32843b14d8e..00000000000
--- a/pkgs/desktops/gnome-3/devtools/anjuta/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "anjuta-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/anjuta/3.26/anjuta-3.26.0.tar.xz;
-    sha256 = "fb895464c1a3c915bb2bb3ea5d236fd17202caa7205f6792f70a75affc343d70";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
index 6ecac28f96a..321e887cba6 100644
--- a/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
@@ -2,7 +2,17 @@
 , webkitgtk, intltool, gsettings-desktop-schemas }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "devhelp-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/devhelp/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "10bd468ae2188abd98af9ba7b81aced337d2206e9d843eb44520be5b00d77d8e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "devhelp"; attrPath = "gnome3.devhelp"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/devtools/devhelp/src.nix b/pkgs/desktops/gnome-3/devtools/devhelp/src.nix
deleted file mode 100644
index 15c4671e31f..00000000000
--- a/pkgs/desktops/gnome-3/devtools/devhelp/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "devhelp-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/devhelp/3.26/devhelp-3.26.1.tar.xz;
-    sha256 = "10bd468ae2188abd98af9ba7b81aced337d2206e9d843eb44520be5b00d77d8e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/devtools/gdl/default.nix b/pkgs/desktops/gnome-3/devtools/gdl/default.nix
index f12bbb0ca41..07fc15f0d55 100644
--- a/pkgs/desktops/gnome-3/devtools/gdl/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/gdl/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, pkgconfig, libxml2, gtk3, gnome3, intltool }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gdl-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gdl/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f3ad03f9a34f751f52464e22d962c0dec8ff867b7b7b37fe24907f3dcd54c079";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gdl"; attrPath = "gnome3.gdl"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libxml2 gtk3 intltool ];
diff --git a/pkgs/desktops/gnome-3/devtools/gdl/src.nix b/pkgs/desktops/gnome-3/devtools/gdl/src.nix
deleted file mode 100644
index 6475b36508c..00000000000
--- a/pkgs/desktops/gnome-3/devtools/gdl/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gdl-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gdl/3.26/gdl-3.26.0.tar.xz;
-    sha256 = "f3ad03f9a34f751f52464e22d962c0dec8ff867b7b7b37fe24907f3dcd54c079";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
index 50960f41a31..3949e29089c 100644
--- a/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, gnome3, intltool, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-devel-docs-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-devel-docs/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "12eea77b550acfa617e14a89e4d24f93881294340abcc2c3abc7092c851703c3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-devel-docs"; attrPath = "gnome3.gnome-devel-docs"; };
+  };
 
   buildInputs = [ intltool itstool libxml2 ];
 
diff --git a/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/src.nix b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/src.nix
deleted file mode 100644
index 4838b8f9d09..00000000000
--- a/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-devel-docs-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-devel-docs/3.26/gnome-devel-docs-3.26.0.tar.xz;
-    sha256 = "12eea77b550acfa617e14a89e4d24f93881294340abcc2c3abc7092c851703c3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/devtools/nemiver/default.nix b/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
index cf200cb3292..19853b19fca 100644
--- a/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
+++ b/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
@@ -3,7 +3,17 @@
   gtksourceviewmm, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "nemiver-${version}";
+  version = "0.9.6";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/nemiver/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "85ab8cf6c4f83262f441cb0952a6147d075c3c53d0687389a3555e946b694ef2";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "nemiver"; attrPath = "gnome3.nemiver"; };
+  };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
 
diff --git a/pkgs/desktops/gnome-3/devtools/nemiver/src.nix b/pkgs/desktops/gnome-3/devtools/nemiver/src.nix
deleted file mode 100644
index 2fcf639fe1b..00000000000
--- a/pkgs/desktops/gnome-3/devtools/nemiver/src.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "nemiver-0.9.6";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/nemiver/0.9/nemiver-0.9.6.tar.xz;
-    sha256 = "85ab8cf6c4f83262f441cb0952a6147d075c3c53d0687389a3555e946b694ef2";
-  };
-}
-
diff --git a/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
index a6f0a65832f..b194ac42bf2 100644
--- a/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
@@ -3,7 +3,17 @@
 , guile_2_0, libcanberra-gtk3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "aisleriot-${version}";
+  version = "3.22.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/aisleriot/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "fe8dee3ad771ab778d37740a26410778aa5c61e8eb75dd42b9a5e5719c6e34fb";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "aisleriot"; attrPath = "gnome3.aisleriot"; };
+  };
 
   configureFlags = [ "--with-card-theme-formats=svg" ];
 
diff --git a/pkgs/desktops/gnome-3/games/aisleriot/src.nix b/pkgs/desktops/gnome-3/games/aisleriot/src.nix
deleted file mode 100644
index 7fee97bae1d..00000000000
--- a/pkgs/desktops/gnome-3/games/aisleriot/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "aisleriot-3.22.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/aisleriot/3.22/aisleriot-3.22.4.tar.xz;
-    sha256 = "fe8dee3ad771ab778d37740a26410778aa5c61e8eb75dd42b9a5e5719c6e34fb";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/five-or-more/default.nix b/pkgs/desktops/gnome-3/games/five-or-more/default.nix
index 48b2b382372..8806344f3b3 100644
--- a/pkgs/desktops/gnome-3/games/five-or-more/default.nix
+++ b/pkgs/desktops/gnome-3/games/five-or-more/default.nix
@@ -2,7 +2,17 @@
 , librsvg, intltool, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "five-or-more-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/five-or-more/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "7c24f7f2603df99299d38b40b14c005aaad88820113ed71e4b3765ac3b027772";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "five-or-more"; attrPath = "gnome3.five-or-more"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/five-or-more/src.nix b/pkgs/desktops/gnome-3/games/five-or-more/src.nix
deleted file mode 100644
index 676e1a7d75a..00000000000
--- a/pkgs/desktops/gnome-3/games/five-or-more/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "five-or-more-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/five-or-more/3.26/five-or-more-3.26.0.tar.xz;
-    sha256 = "7c24f7f2603df99299d38b40b14c005aaad88820113ed71e4b3765ac3b027772";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index a2623c5115b..22032f16f47 100644
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -2,7 +2,17 @@
 , intltool, itstool, libcanberra-gtk3, librsvg, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "four-in-a-row-${version}";
+  version = "3.22.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/four-in-a-row/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "bc4194e8ab6d1d2a6a63a2e91945cd5465f49ebf0dae2eecacc66e69db56a420";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "four-in-a-row"; attrPath = "gnome3.four-in-a-row"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/four-in-a-row/src.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/src.nix
deleted file mode 100644
index 9e2b23f3996..00000000000
--- a/pkgs/desktops/gnome-3/games/four-in-a-row/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "four-in-a-row-3.22.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/four-in-a-row/3.22/four-in-a-row-3.22.2.tar.xz;
-    sha256 = "bc4194e8ab6d1d2a6a63a2e91945cd5465f49ebf0dae2eecacc66e69db56a420";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
index bfa345c4a40..f50542770c4 100644
--- a/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
@@ -2,7 +2,17 @@
 , intltool, itstool, librsvg, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-chess-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-chess/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "a0f6f862ab7067626a3a86cdc9c14dde595e38e6719e0198cb967e11facf1f12";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-chess"; attrPath = "gnome3.gnome-chess"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-chess/src.nix b/pkgs/desktops/gnome-3/games/gnome-chess/src.nix
deleted file mode 100644
index ee682d3801b..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-chess/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-chess-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-chess/3.26/gnome-chess-3.26.0.tar.xz;
-    sha256 = "a0f6f862ab7067626a3a86cdc9c14dde595e38e6719e0198cb967e11facf1f12";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
index 13afae2eb2c..c1f91092bb0 100644
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
@@ -2,7 +2,17 @@
 , librsvg, libxml2, intltool, itstool, libgee, libgames-support }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-klotski-${version}";
+  version = "3.22.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-klotski/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "16hd6yk01rhb4pj8m01fyn72wykf41d72gsms81q0n4zm5bm1a4h";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-klotski"; attrPath = "gnome3.gnome-klotski"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-klotski/src.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/src.nix
deleted file mode 100644
index e37f3642c82..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-klotski/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-klotski-3.22.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-klotski/3.22/gnome-klotski-3.22.2.tar.xz;
-    sha256 = "16hd6yk01rhb4pj8m01fyn72wykf41d72gsms81q0n4zm5bm1a4h";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
index 3d0d5d6df46..b9a4638a947 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
@@ -2,7 +2,17 @@
 , librsvg, intltool, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-mahjongg-${version}";
+  version = "3.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-mahjongg/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f5972a14fa4ad04153bd6e68475b85cd79c6b44f6cac1fe1edb64dbad4135218";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-mahjongg"; attrPath = "gnome3.gnome-mahjongg"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-mahjongg/src.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/src.nix
deleted file mode 100644
index c021136ee30..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-mahjongg/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-mahjongg-3.22.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-mahjongg/3.22/gnome-mahjongg-3.22.0.tar.xz;
-    sha256 = "f5972a14fa4ad04153bd6e68475b85cd79c6b44f6cac1fe1edb64dbad4135218";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index d76e585bb4e..ce5dc8bc14c 100644
--- a/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -2,7 +2,17 @@
 , librsvg, intltool, itstool, libxml2, libgames-support, libgee }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-mines-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-mines/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2b041eaf0d57307498c56d8e285b2e539f634fdba95d689f6af75aa4ed6edde9";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-mines"; attrPath = "gnome3.gnome-mines"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-mines/src.nix b/pkgs/desktops/gnome-3/games/gnome-mines/src.nix
deleted file mode 100644
index 39096f00e42..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-mines/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-mines-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-mines/3.26/gnome-mines-3.26.0.tar.xz;
-    sha256 = "2b041eaf0d57307498c56d8e285b2e539f634fdba95d689f6af75aa4ed6edde9";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index 7489cf6111b..302d8fb2101 100644
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -3,7 +3,17 @@
 , libxml2, libgee, libgames-support }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-nibbles-${version}";
+  version = "3.24.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-nibbles/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0ddc1fe03483958dd5513d04f5919ade991902d12da18a4c2d3307f818a5cb4f";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-nibbles"; attrPath = "gnome3.gnome-nibbles"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-nibbles/src.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/src.nix
deleted file mode 100644
index 133e9651fa7..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-nibbles/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-nibbles-3.24.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-nibbles/3.24/gnome-nibbles-3.24.0.tar.xz;
-    sha256 = "0ddc1fe03483958dd5513d04f5919ade991902d12da18a4c2d3307f818a5cb4f";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
index e46736351a1..aa5e00606c7 100644
--- a/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
@@ -3,7 +3,17 @@
 , libgee}:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-robots-${version}";
+  version = "3.22.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-robots/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "c5d63f0fcae66d0df9b10e39387d09875555909f0aa7e57ef8552621d852082f";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-robots"; attrPath = "gnome3.gnome-robots"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-robots/src.nix b/pkgs/desktops/gnome-3/games/gnome-robots/src.nix
deleted file mode 100644
index 09e4ad6c967..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-robots/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-robots-3.22.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-robots/3.22/gnome-robots-3.22.2.tar.xz;
-    sha256 = "c5d63f0fcae66d0df9b10e39387d09875555909f0aa7e57ef8552621d852082f";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
index 2234d696d24..b3380e6bb96 100644
--- a/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
@@ -2,7 +2,17 @@
 , json-glib, qqwing, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-sudoku-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-sudoku/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "8774c7093a97131b94d39142f1e044c8619cfdb6ad2546176271589fbb12d3a0";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-sudoku"; attrPath = "gnome3.gnome-sudoku"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ intltool wrapGAppsHook gtk3 gnome3.libgee
diff --git a/pkgs/desktops/gnome-3/games/gnome-sudoku/src.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/src.nix
deleted file mode 100644
index f19142cf251..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-sudoku/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-sudoku-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-sudoku/3.26/gnome-sudoku-3.26.0.tar.xz;
-    sha256 = "8774c7093a97131b94d39142f1e044c8619cfdb6ad2546176271589fbb12d3a0";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index 3935afe3eb6..4f87fb50d61 100644
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -2,7 +2,17 @@
 , librsvg, libcanberra-gtk3, intltool, itstool, libxml2 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-taquin-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-taquin/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "de352bb2dfcd759de37f6bccf1e4790760e020b4bb06a1bc8d5f03d89613b6fd";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-taquin"; attrPath = "gnome3.gnome-taquin"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-taquin/src.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/src.nix
deleted file mode 100644
index 30a33e28e2d..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-taquin/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-taquin-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-taquin/3.26/gnome-taquin-3.26.1.tar.xz;
-    sha256 = "de352bb2dfcd759de37f6bccf1e4790760e020b4bb06a1bc8d5f03d89613b6fd";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index 37218776f12..f456b7ee683 100644
--- a/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
@@ -2,7 +2,17 @@
 , libxml2, intltool, itstool }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-tetravex-${version}";
+  version = "3.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-tetravex/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0a6d7ff5ffcd6c05454a919d46a2e389d6b5f87bc80e82c52c2f20d9d914e18d";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-tetravex"; attrPath = "gnome3.gnome-tetravex"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/gnome-tetravex/src.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/src.nix
deleted file mode 100644
index e79b18263b9..00000000000
--- a/pkgs/desktops/gnome-3/games/gnome-tetravex/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-tetravex-3.22.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-tetravex/3.22/gnome-tetravex-3.22.0.tar.xz;
-    sha256 = "0a6d7ff5ffcd6c05454a919d46a2e389d6b5f87bc80e82c52c2f20d9d914e18d";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/hitori/default.nix b/pkgs/desktops/gnome-3/games/hitori/default.nix
index 857aec9700f..db01eb86f17 100644
--- a/pkgs/desktops/gnome-3/games/hitori/default.nix
+++ b/pkgs/desktops/gnome-3/games/hitori/default.nix
@@ -2,7 +2,17 @@
 , libxml2, intltool, itstool }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "hitori-${version}";
+  version = "3.22.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/hitori/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "dcac6909b6007857ee425ac8c65fed179f2c71da138d5e5300cd62c8b9ea15d3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "hitori"; attrPath = "gnome3.hitori"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
diff --git a/pkgs/desktops/gnome-3/games/hitori/src.nix b/pkgs/desktops/gnome-3/games/hitori/src.nix
deleted file mode 100644
index 93dcd5de62e..00000000000
--- a/pkgs/desktops/gnome-3/games/hitori/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "hitori-3.22.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/hitori/3.22/hitori-3.22.4.tar.xz;
-    sha256 = "dcac6909b6007857ee425ac8c65fed179f2c71da138d5e5300cd62c8b9ea15d3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
index e7e1696dda4..d31457f868c 100644
--- a/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -2,7 +2,17 @@
 , intltool, itstool, libcanberra-gtk3, libxml2, dconf }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "iagno-${version}";
+  version = "3.26.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/iagno/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "3476810d0c42aa1600484de2c111c94e0cf5247a98f071b23a0b5e3036362121";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "iagno"; attrPath = "gnome3.iagno"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
diff --git a/pkgs/desktops/gnome-3/games/iagno/src.nix b/pkgs/desktops/gnome-3/games/iagno/src.nix
deleted file mode 100644
index 86c1f30e5d6..00000000000
--- a/pkgs/desktops/gnome-3/games/iagno/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "iagno-3.26.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/iagno/3.26/iagno-3.26.1.tar.xz;
-    sha256 = "3476810d0c42aa1600484de2c111c94e0cf5247a98f071b23a0b5e3036362121";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
index 78663b99ae0..1a163352cfc 100644
--- a/pkgs/desktops/gnome-3/games/lightsoff/default.nix
+++ b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
@@ -2,7 +2,17 @@
 , intltool, itstool, clutter, clutter-gtk, libxml2, dconf }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "lightsoff-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/lightsoff/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "d12572bc7b70481320ec90c6130ad794b559a9990d08bef158a1d826aaa35976";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "lightsoff"; attrPath = "gnome3.lightsoff"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg dconf
diff --git a/pkgs/desktops/gnome-3/games/lightsoff/src.nix b/pkgs/desktops/gnome-3/games/lightsoff/src.nix
deleted file mode 100644
index 18528df24a3..00000000000
--- a/pkgs/desktops/gnome-3/games/lightsoff/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "lightsoff-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/lightsoff/3.26/lightsoff-3.26.0.tar.xz;
-    sha256 = "d12572bc7b70481320ec90c6130ad794b559a9990d08bef158a1d826aaa35976";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index be3b5f6ee01..b0572f981de 100644
--- a/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -3,7 +3,17 @@
 , intltool, itstool, libxml2, clutter, clutter-gtk, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "quadrapassel-${version}";
+  version = "3.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/quadrapassel/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "0ed44ef73c8811cbdfc3b44c8fd80eb6e2998d102d59ac324e4748f5d9dddb55";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "quadrapassel"; attrPath = "gnome3.quadrapassel"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
diff --git a/pkgs/desktops/gnome-3/games/quadrapassel/src.nix b/pkgs/desktops/gnome-3/games/quadrapassel/src.nix
deleted file mode 100644
index 57bdb4771dd..00000000000
--- a/pkgs/desktops/gnome-3/games/quadrapassel/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "quadrapassel-3.22.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/quadrapassel/3.22/quadrapassel-3.22.0.tar.xz;
-    sha256 = "0ed44ef73c8811cbdfc3b44c8fd80eb6e2998d102d59ac324e4748f5d9dddb55";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
index 1df746f4f28..92da14fb559 100644
--- a/pkgs/desktops/gnome-3/games/swell-foop/default.nix
+++ b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
@@ -2,7 +2,17 @@
 , clutter, clutter-gtk, intltool, itstool, libxml2, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "swell-foop-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/swell-foop/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "122e2b5a51ad0144ea6b5fd2736ac43b101c7892198948e697bfc4c014bbba22";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "swell-foop"; attrPath = "gnome3.swell-foop"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
diff --git a/pkgs/desktops/gnome-3/games/swell-foop/src.nix b/pkgs/desktops/gnome-3/games/swell-foop/src.nix
deleted file mode 100644
index 082081ca36c..00000000000
--- a/pkgs/desktops/gnome-3/games/swell-foop/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "swell-foop-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/swell-foop/3.26/swell-foop-3.26.0.tar.xz;
-    sha256 = "122e2b5a51ad0144ea6b5fd2736ac43b101c7892198948e697bfc4c014bbba22";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/games/tali/default.nix b/pkgs/desktops/gnome-3/games/tali/default.nix
index 6f6beee8961..f8d799b6914 100644
--- a/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -2,7 +2,17 @@
 , librsvg, intltool, itstool, libxml2, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "tali-${version}";
+  version = "3.22.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/tali/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "5ba17794d6fb06b794daaffa62a6aaa372b7de8886ce5ec596c37e62bb71728b";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "tali"; attrPath = "gnome3.tali"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 gnome3.defaultIconTheme gdk_pixbuf librsvg
diff --git a/pkgs/desktops/gnome-3/games/tali/src.nix b/pkgs/desktops/gnome-3/games/tali/src.nix
deleted file mode 100644
index 108144cc3ee..00000000000
--- a/pkgs/desktops/gnome-3/games/tali/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "tali-3.22.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/tali/3.22/tali-3.22.0.tar.xz;
-    sha256 = "5ba17794d6fb06b794daaffa62a6aaa372b7de8886ce5ec596c37e62bb71728b";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
index 208f0e6a1c7..314539b7f9e 100644
--- a/pkgs/desktops/gnome-3/misc/gitg/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gitg/default.nix
@@ -4,7 +4,17 @@
 , libsoup }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gitg-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gitg/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "26730d437d6a30d6e341b9e8da99d2134dce4b96022c195609f45062f82b54d5";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gitg"; };
+  };
 
   preCheck = ''
     substituteInPlace tests/libgitg/test-commit.c --replace "/bin/bash" "${bash}/bin/bash"
diff --git a/pkgs/desktops/gnome-3/misc/gitg/src.nix b/pkgs/desktops/gnome-3/misc/gitg/src.nix
deleted file mode 100644
index c72e2830ad1..00000000000
--- a/pkgs/desktops/gnome-3/misc/gitg/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gitg-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gitg/3.26/gitg-3.26.0.tar.xz;
-    sha256 = "26730d437d6a30d6e341b9e8da99d2134dce4b96022c195609f45062f82b54d5";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
index 3a35a87ceaf..48c14461daa 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
@@ -3,7 +3,17 @@
 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-autoar-${version}";
+  version = "0.2.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-autoar/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "e1fe2c06eed30305c38bf0939c72b0e51b4716658e2663a0cf4a4bf57874ca62";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-autoar"; attrPath = "gnome3.gnome-autoar"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 glib ];
diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/src.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/src.nix
deleted file mode 100644
index ee2ade83ee6..00000000000
--- a/pkgs/desktops/gnome-3/misc/gnome-autoar/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-autoar-0.2.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-autoar/0.2/gnome-autoar-0.2.2.tar.xz;
-    sha256 = "e1fe2c06eed30305c38bf0939c72b0e51b4716658e2663a0cf4a4bf57874ca62";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
index e2236913170..ecc0711482f 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
@@ -2,7 +2,17 @@
 , fontconfig, libcanberra-gtk3, systemd, libnotify, wrapGAppsHook, dbus-glib, dbus_libs, desktop-file-utils }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-packagekit-${version}";
+  version = "3.26.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-packagekit/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "6a219e16923d3976f424416c944bef06913922da24bc9e6644ec114c2d563417";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-packagekit"; attrPath = "gnome3.gnome-packagekit"; };
+  };
 
   NIX_CFLAGS_COMPILE = "-I${dbus-glib.dev}/include/dbus-1.0 -I${dbus_libs.dev}/include/dbus-1.0";
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-packagekit/src.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/src.nix
deleted file mode 100644
index 5448eb8a83a..00000000000
--- a/pkgs/desktops/gnome-3/misc/gnome-packagekit/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-packagekit-3.26.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-packagekit/3.26/gnome-packagekit-3.26.0.tar.xz;
-    sha256 = "6a219e16923d3976f424416c944bef06913922da24bc9e6644ec114c2d563417";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
index 58d8f90cb86..35c3a678e84 100644
--- a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
@@ -4,7 +4,17 @@
 , gnome3, librsvg, gdk_pixbuf, file, libnotify, gobjectIntrospection, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gnome-tweak-tool-${version}";
+  version = "3.26.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-tweak-tool/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "fda08044d22c258bbd93dbad326d282d4d1184b98795ae8e3e5f07f8275005df";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gnome-tweak-tool"; attrPath = "gnome3.gnome-tweak-tool"; };
+  };
 
   propagatedUserEnvPkgs = [ gnome3.gnome-themes-standard ];
 
diff --git a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/src.nix b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/src.nix
deleted file mode 100644
index 8af28e17dcd..00000000000
--- a/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gnome-tweak-tool-3.26.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gnome-tweak-tool/3.26/gnome-tweak-tool-3.26.4.tar.xz;
-    sha256 = "fda08044d22c258bbd93dbad326d282d4d1184b98795ae8e3e5f07f8275005df";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gspell/default.nix b/pkgs/desktops/gnome-3/misc/gspell/default.nix
index e00ac8e950e..5d2dc08e7e3 100644
--- a/pkgs/desktops/gnome-3/misc/gspell/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gspell/default.nix
@@ -1,7 +1,17 @@
 { stdenv, fetchurl, pkgconfig, glib, gtk3, enchant, isocodes, vala, gobjectIntrospection, gnome3 }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gspell-${version}";
+  version = "1.6.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gspell/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "f4d329348775374eec18158f8dcbbacf76f85be5ce002a92d93054ece70ec4de";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gspell"; attrPath = "gnome3.gspell"; };
+  };
 
   propagatedBuildInputs = [ enchant ]; # required for pkgconfig
 
diff --git a/pkgs/desktops/gnome-3/misc/gspell/src.nix b/pkgs/desktops/gnome-3/misc/gspell/src.nix
deleted file mode 100644
index 9ae78f39e4e..00000000000
--- a/pkgs/desktops/gnome-3/misc/gspell/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gspell-1.6.1";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gspell/1.6/gspell-1.6.1.tar.xz;
-    sha256 = "f4d329348775374eec18158f8dcbbacf76f85be5ce002a92d93054ece70ec4de";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
index 10e3c5618a9..1b912109cfd 100644
--- a/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
@@ -2,7 +2,17 @@
 , gnome3, enchant, isocodes }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "gtkhtml-${version}";
+  version = "4.10.0";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtkhtml/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "gtkhtml"; attrPath = "gnome3.gtkhtml"; };
+  };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk3 intltool gnome3.adwaita-icon-theme
diff --git a/pkgs/desktops/gnome-3/misc/gtkhtml/src.nix b/pkgs/desktops/gnome-3/misc/gtkhtml/src.nix
deleted file mode 100644
index 21876ec9c39..00000000000
--- a/pkgs/desktops/gnome-3/misc/gtkhtml/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "gtkhtml-4.10.0";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/gtkhtml/4.10/gtkhtml-4.10.0.tar.xz;
-    sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/libgda/default.nix b/pkgs/desktops/gnome-3/misc/libgda/default.nix
index 12bd79b0bb5..ce7bb6f75b5 100644
--- a/pkgs/desktops/gnome-3/misc/libgda/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgda/default.nix
@@ -7,7 +7,17 @@ assert mysqlSupport -> mysql != null;
 assert postgresSupport -> postgresql != null;
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "libgda-${version}";
+  version = "5.2.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgda/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2cee38dd583ccbaa5bdf6c01ca5f88cc08758b9b144938a51a478eb2684b765e";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "libgda"; attrPath = "gnome3.libgda"; };
+  };
 
   patches = [
     (fetchurl {
diff --git a/pkgs/desktops/gnome-3/misc/libgda/src.nix b/pkgs/desktops/gnome-3/misc/libgda/src.nix
deleted file mode 100644
index 8812ccc8ccd..00000000000
--- a/pkgs/desktops/gnome-3/misc/libgda/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "libgda-5.2.4";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgda/5.2/libgda-5.2.4.tar.xz;
-    sha256 = "2cee38dd583ccbaa5bdf6c01ca5f88cc08758b9b144938a51a478eb2684b765e";
-  };
-}
diff --git a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
index d65dbce1fc9..865586b5119 100644
--- a/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
+++ b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
@@ -2,7 +2,17 @@
 , gtk-doc, gobjectIntrospection, libgit2, glib }:
 
 stdenv.mkDerivation rec {
-  inherit (import ./src.nix fetchurl) name src;
+  name = "libgit2-glib-${version}";
+  version = "0.26.2";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/libgit2-glib/${gnome3.versionBranch version}/${name}.tar.xz";
+    sha256 = "2ad6f20db2e38bbfdb6cb452704fe8a911036b86de82dc75bb0f3b20db40ce9c";
+  };
+
+  passthru = {
+    updateScript = gnome3.updateScript { packageName = "libgit2-glib"; attrPath = "gnome3.libgit2-glib"; };
+  };
 
   nativeBuildInputs = [
     gnome3.gnome-common libtool pkgconfig vala gtk-doc gobjectIntrospection
diff --git a/pkgs/desktops/gnome-3/misc/libgit2-glib/src.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/src.nix
deleted file mode 100644
index d233dc3a401..00000000000
--- a/pkgs/desktops/gnome-3/misc/libgit2-glib/src.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-# Autogenerated by maintainers/scripts/gnome.sh update
-
-fetchurl: {
-  name = "libgit2-glib-0.26.2";
-
-  src = fetchurl {
-    url = mirror://gnome/sources/libgit2-glib/0.26/libgit2-glib-0.26.2.tar.xz;
-    sha256 = "2ad6f20db2e38bbfdb6cb452704fe8a911036b86de82dc75bb0f3b20db40ce9c";
-  };
-}