summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Schaefer <git@danielschaefer.me>2019-04-25 08:46:07 +0200
committerDaniel Schaefer <git@danielschaefer.me>2019-05-12 22:23:48 +0200
commitb85ccbac54738a9979af11e0582b5d0ed1c50cbd (patch)
treedc215fd637742e214fe52dd3ed152f93641762f9
parent5b9bb1b4311d93085ae3e94bf024d88d150b11eb (diff)
downloadnixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.tar
nixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.tar.gz
nixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.tar.bz2
nixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.tar.lz
nixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.tar.xz
nixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.tar.zst
nixpkgs-b85ccbac54738a9979af11e0582b5d0ed1c50cbd.zip
treewide: Add passthru.updateScript to gnome pkgs
`updateScript` lets us update packages automatically.
For packages that are hosted on the gnome mirror it's very easy to add
that. Inspired by https://github.com/NixOS/nixpkgs/issues/36150
-rw-r--r--pkgs/applications/graphics/glabels/default.nix11
-rw-r--r--pkgs/applications/graphics/gthumb/default.nix6
-rw-r--r--pkgs/applications/misc/fsv/default.nix8
-rw-r--r--pkgs/applications/misc/pdfmod/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/ekiga/default.nix8
-rw-r--r--pkgs/data/documentation/gnome-user-docs/default.nix16
-rw-r--r--pkgs/data/fonts/ttf-bitstream-vera/default.nix13
-rw-r--r--pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix13
-rw-r--r--pkgs/development/compilers/vala/default.nix2
-rw-r--r--pkgs/development/libraries/cairomm/default.nix11
-rw-r--r--pkgs/development/libraries/gcab/default.nix14
-rw-r--r--pkgs/development/libraries/gnome-menus/default.nix8
-rw-r--r--pkgs/development/libraries/goocanvas/default.nix15
-rw-r--r--pkgs/development/libraries/gstreamer/gstreamermm/default.nix19
-rw-r--r--pkgs/development/libraries/hyena/default.nix4
-rw-r--r--pkgs/development/libraries/libgnome-keyring/default.nix10
-rw-r--r--pkgs/development/libraries/libunique/default.nix13
-rw-r--r--pkgs/development/libraries/libwnck/default.nix9
-rw-r--r--pkgs/development/libraries/libxmlxx/default.nix15
-rw-r--r--pkgs/development/libraries/opal/default.nix10
-rw-r--r--pkgs/development/libraries/pangox-compat/default.nix6
-rw-r--r--pkgs/development/libraries/ptlib/default.nix10
-rw-r--r--pkgs/development/python-modules/pygtk/default.nix15
-rw-r--r--pkgs/development/tools/documentation/gnome-doc-utils/default.nix23
-rw-r--r--pkgs/development/tools/documentation/gtk-doc/default.nix10
-rw-r--r--pkgs/development/tools/misc/gob2/default.nix15
-rw-r--r--pkgs/development/tools/misc/msitools/default.nix12
-rw-r--r--pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix7
-rw-r--r--pkgs/tools/security/polkit-gnome/default.nix11
29 files changed, 205 insertions, 113 deletions
diff --git a/pkgs/applications/graphics/glabels/default.nix b/pkgs/applications/graphics/glabels/default.nix
index dadae22bf0c..6bc59cd7d02 100644
--- a/pkgs/applications/graphics/glabels/default.nix
+++ b/pkgs/applications/graphics/glabels/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "glabels-${version}";
+  pname = "glabels";
   version = "3.4.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/glabels/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0f2rki8i27pkd9r0gz03cdl1g4vnmvp0j49nhxqn275vi8lmgr0q";
   };
 
@@ -25,6 +25,13 @@ stdenv.mkDerivation rec {
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
   '';
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Create labels and business cards";
     homepage = https://glabels.org/;
diff --git a/pkgs/applications/graphics/gthumb/default.nix b/pkgs/applications/graphics/gthumb/default.nix
index e88c9222b87..6bcd16934e3 100644
--- a/pkgs/applications/graphics/gthumb/default.nix
+++ b/pkgs/applications/graphics/gthumb/default.nix
@@ -4,14 +4,12 @@
   libchamplain, librsvg, libwebp, json-glib, webkitgtk, lcms2, bison,
   flex, wrapGAppsHook, shared-mime-info }:
 
-let
+stdenv.mkDerivation rec {
   pname = "gthumb";
   version = "3.6.2";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0rjb0bsjhn7nyl5jyjgrypvr6qdr9dc2g586j3lzan96a2vnpgy9";
   };
 
diff --git a/pkgs/applications/misc/fsv/default.nix b/pkgs/applications/misc/fsv/default.nix
index 782a37040d8..15207806539 100644
--- a/pkgs/applications/misc/fsv/default.nix
+++ b/pkgs/applications/misc/fsv/default.nix
@@ -4,10 +4,10 @@
 
 let
   gtkglarea = stdenv.mkDerivation rec {
-    name    = "gtkglarea-${version}";
+    pname    = "gtkglarea";
     version = "2.1.0";
     src = fetchurl {
-      url    = "mirror://gnome/sources/gtkglarea/2.1/${name}.tar.xz";
+      url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
       sha256 = "1pl2vdj6l64j864ilhkq1bcggb3hrlxjwk5m029i7xfjfxc587lf";
     };
     nativeBuildInputs = [ pkgconfig ];
@@ -16,13 +16,13 @@ let
   };
 
 in stdenv.mkDerivation rec {
-  name    = "fsv-${version}";
+  pname   = "fsv";
   version = "0.9-1";
 
   src = fetchFromGitHub {
     owner  = "mcuelenaere"; 
     repo   = "fsv";
-    rev    = name;
+    rev    = "${pname}-${version}";
     sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj";
   };
 
diff --git a/pkgs/applications/misc/pdfmod/default.nix b/pkgs/applications/misc/pdfmod/default.nix
index 45d83b5872f..d0b9a685a77 100644
--- a/pkgs/applications/misc/pdfmod/default.nix
+++ b/pkgs/applications/misc/pdfmod/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "pdfmod-${version}";
+  pname = "pdfmod";
   version = "0.9.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pdfmod/0.9/pdfmod-${version}.tar.bz2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "eb7c987514a053106ddf03f26544766c751c801d87762909b36415d46bc425c9";
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/ekiga/default.nix b/pkgs/applications/networking/instant-messengers/ekiga/default.nix
index 7129e0a1e83..7e8f83e1977 100644
--- a/pkgs/applications/networking/instant-messengers/ekiga/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ekiga/default.nix
@@ -5,10 +5,11 @@
 , libXrandr, which, libxslt, libtasn1, gmp, nettle, sqlite, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "ekiga-4.0.1";
+  pname = "ekiga";
+  version = "4.0.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/ekiga/4.0/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "5f4f491c9496cf65ba057a9345d6bb0278f4eca07bcda5baeecf50bfcd9a4a3b";
   };
 
@@ -63,6 +64,9 @@ stdenv.mkDerivation rec {
     updateInfo = {
       downloadPage = "mirror://gnome/sources/ekiga";
     };
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
   };
 }
 
diff --git a/pkgs/data/documentation/gnome-user-docs/default.nix b/pkgs/data/documentation/gnome-user-docs/default.nix
index 9e6639c0a0a..f87fc153555 100644
--- a/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -1,12 +1,20 @@
-{ stdenv, fetchurl, itstool, libxml2, gettext }:
+{ stdenv, fetchurl, itstool, libxml2, gettext, gnome3 }:
 
-stdenv.mkDerivation {
-  name = "gnome-user-docs-3.2.2";
+stdenv.mkDerivation rec {
+  pname = "gnome-user-docs";
+  version = "3.2.2";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-user-docs/3.2/gnome-user-docs-3.2.2.tar.xz;
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1ka0nw2kc85p10y8x31v0wv06a88k7qrgafp4ys04y9fzz0rkcjj";
   };
 
   nativeBuildInputs = [ itstool libxml2 gettext ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnome3.gnome-user-docs";
+    };
+  };
 }
diff --git a/pkgs/data/fonts/ttf-bitstream-vera/default.nix b/pkgs/data/fonts/ttf-bitstream-vera/default.nix
index a4d479ea33c..cf8a3344009 100644
--- a/pkgs/data/fonts/ttf-bitstream-vera/default.nix
+++ b/pkgs/data/fonts/ttf-bitstream-vera/default.nix
@@ -1,9 +1,12 @@
-{stdenv, fetchzip}:
+{ stdenv, fetchzip }:
+let
+  pname = "ttf-bitstream-vera";
+  version = "1.10";
+in
+fetchzip rec {
+  name = "${pname}-${version}";
 
-fetchzip {
-  name = "ttf-bitstream-vera-1.10";
-
-  url = mirror://gnome/sources/ttf-bitstream-vera/1.10/ttf-bitstream-vera-1.10.tar.bz2;
+  url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.bz2";
 
   postFetch = ''
     tar -xjf $downloadedFile --strip-components=1
diff --git a/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix
index 9bc71bb4338..598c24581a2 100644
--- a/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix
+++ b/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix
@@ -2,10 +2,11 @@
 , libgtop, intltool, itstool, libxml2, nmap, inetutils }:
 
 stdenv.mkDerivation rec {
-  name = "gnome-nettool-3.8.1";
+  pname = "gnome-nettool";
+  version = "3.8.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-nettool/3.8/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1c9cvzvyqgfwa5zzyvp7118pkclji62fkbb33g4y9sp5kw6m397h";
   };
 
@@ -17,6 +18,14 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ nmap inetutils ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      attrPath = "gnom3.gnome-nettool";
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = http://projects.gnome.org/gnome-network;
     description = "A collection of networking tools";
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 65a3f19102e..6da9d6d3d02 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchpatch, pkgconfig, flex, bison, libxslt, autoconf, automake, autoreconfHook
-, graphviz, glib, libiconv, libintl, libtool, expat, substituteAll
+, graphviz, glib, libiconv, libintl, libtool, expat, substituteAll, gnome3
 }:
 
 let
diff --git a/pkgs/development/libraries/cairomm/default.nix b/pkgs/development/libraries/cairomm/default.nix
index a4e4968f562..2936f48fc8e 100644
--- a/pkgs/development/libraries/cairomm/default.nix
+++ b/pkgs/development/libraries/cairomm/default.nix
@@ -1,15 +1,12 @@
 { fetchurl, stdenv, pkgconfig, darwin, cairo, fontconfig, freetype, libsigcxx }:
-let
-  ver_maj = "1.12";
-  ver_min = "2";
-in
 stdenv.mkDerivation rec {
-  name = "cairomm-${ver_maj}.${ver_min}";
+  pname = "cairomm";
+  version = "1.12.2";
 
   src = fetchurl {
-    url = "https://www.cairographics.org/releases/${name}.tar.gz";
+    url = "https://www.cairographics.org/releases/${pname}-${version}.tar.gz";
     # gnome doesn't have the latest version ATM; beware: same name but different hash
-    # url = "mirror://gnome/sources/cairomm/${ver_maj}/${name}.tar.xz";
+    #url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "16fmigxsaz85c3lgcls7biwyz8zy8c8h3jndfm54cxxas3a7zi25";
   };
 
diff --git a/pkgs/development/libraries/gcab/default.nix b/pkgs/development/libraries/gcab/default.nix
index 2b9b59e7baf..397fee3f34c 100644
--- a/pkgs/development/libraries/gcab/default.nix
+++ b/pkgs/development/libraries/gcab/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, gettext, gobject-introspection, pkgconfig
-, meson, ninja, glibcLocales, git, vala, glib, zlib
+, meson, ninja, glibcLocales, git, vala, glib, zlib, gnome3
 }:
 
 stdenv.mkDerivation rec {
-  name = "gcab-${version}";
+  pname = "gcab";
   version = "1.2";
 
   LC_ALL = "en_US.UTF-8";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gcab/${version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "038h5kk41si2hc9d9169rrlvp8xgsxq27kri7hv2vr39gvz9cbas";
   };
 
@@ -22,10 +22,16 @@ stdenv.mkDerivation rec {
     "-Dtests=false"
   ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = with stdenv.lib; {
     platforms = platforms.linux;
     license = licenses.lgpl21;
     maintainers = [ maintainers.lethalman ];
   };
-
 }
diff --git a/pkgs/development/libraries/gnome-menus/default.nix b/pkgs/development/libraries/gnome-menus/default.nix
index 9bfc638634b..5919380dc70 100644
--- a/pkgs/development/libraries/gnome-menus/default.nix
+++ b/pkgs/development/libraries/gnome-menus/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, gettext, glib, gobject-introspection }:
+{ stdenv, fetchurl, pkgconfig, gettext, glib, gobject-introspection, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-menus";
@@ -17,6 +17,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig gettext ];
   buildInputs = [ glib gobject-introspection ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = {
     homepage = https://www.gnome.org;
     description = "Library that implements freedesktops's Desktop Menu Specification in GNOME";
diff --git a/pkgs/development/libraries/goocanvas/default.nix b/pkgs/development/libraries/goocanvas/default.nix
index 0f9b3f85fcd..52383ebdf5d 100644
--- a/pkgs/development/libraries/goocanvas/default.nix
+++ b/pkgs/development/libraries/goocanvas/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchurl, gtk2, cairo, glib, pkgconfig }:
+{ stdenv, fetchurl, gtk2, cairo, glib, pkgconfig, gnome3 }:
 
 stdenv.mkDerivation rec {
-  majVersion = "1.0";
-  version = "${majVersion}.0";
-  name = "goocanvas-${version}";
+  pname = "goocanvas";
+  version = "1.0.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/goocanvas/${majVersion}/${name}.tar.bz2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "07kicpcacbqm3inp7zq32ldp95mxx4kfxpaazd0x5jk7hpw2w1qw";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ gtk2 cairo glib ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = { 
     description = "Canvas widget for GTK+ based on the the Cairo 2D library";
     homepage = http://goocanvas.sourceforge.net/;
diff --git a/pkgs/development/libraries/gstreamer/gstreamermm/default.nix b/pkgs/development/libraries/gstreamer/gstreamermm/default.nix
index 14e27ab6068..e321edcf6e0 100644
--- a/pkgs/development/libraries/gstreamer/gstreamermm/default.nix
+++ b/pkgs/development/libraries/gstreamer/gstreamermm/default.nix
@@ -1,14 +1,10 @@
-{ stdenv, fetchurl, pkgconfig, file, glibmm, gst_all_1 }:
-
-let
-  ver_maj = "1.10";
-  ver_min = "0";
-in
+{ stdenv, fetchurl, pkgconfig, file, glibmm, gst_all_1, gnome3 }:
 stdenv.mkDerivation rec {
-  name = "gstreamermm-${ver_maj}.${ver_min}";
+  pname = "gstreamermm";
+  version = "1.10.0";
 
   src = fetchurl {
-    url    = "mirror://gnome/sources/gstreamermm/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0q4dx9sncqbwgpzma0zvj6zssc279yl80pn8irb95qypyyggwn5y";
   };
 
@@ -20,6 +16,13 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none"; # Unpredictable version stability
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "C++ interface for GStreamer";
     homepage = https://gstreamer.freedesktop.org/bindings/cplusplus.html;
diff --git a/pkgs/development/libraries/hyena/default.nix b/pkgs/development/libraries/hyena/default.nix
index 516e4184623..3be37bbefce 100644
--- a/pkgs/development/libraries/hyena/default.nix
+++ b/pkgs/development/libraries/hyena/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, mono, gtk-sharp-2_0, monoDLLFixer }:
 
 stdenv.mkDerivation rec {
-  name = "hyena-${version}";
+  pname = "hyena";
   version = "0.5";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/hyena/${version}/hyena-${version}.tar.bz2" ;
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "eb7154a42b6529bb9746c39272719f3168d6363ed4bad305a916ed7d90bc8de9";
   };
 
diff --git a/pkgs/development/libraries/libgnome-keyring/default.nix b/pkgs/development/libraries/libgnome-keyring/default.nix
index 8dcbab95e97..94c09206946 100644
--- a/pkgs/development/libraries/libgnome-keyring/default.nix
+++ b/pkgs/development/libraries/libgnome-keyring/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, glib, dbus, libgcrypt, pkgconfig,
-intltool }:
+{ stdenv, fetchurl, glib, dbus, libgcrypt, pkgconfig, intltool }:
 
-stdenv.mkDerivation {
-  name = "libgnome-keyring-2.32.0";
+stdenv.mkDerivation rec {
+  pname = "libgnome-keyring";
+  version = "2.32.0";
 
   src = fetchurl {
-    url = mirror://gnome/sources/libgnome-keyring/2.32/libgnome-keyring-2.32.0.tar.bz2;
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "030gka96kzqg1r19b4xrmac89hf1xj1kr5p461yvbzfxh46qqf2n";
   };
 
diff --git a/pkgs/development/libraries/libunique/default.nix b/pkgs/development/libraries/libunique/default.nix
index 8559731d707..d4ef5d99430 100644
--- a/pkgs/development/libraries/libunique/default.nix
+++ b/pkgs/development/libraries/libunique/default.nix
@@ -1,27 +1,28 @@
 { stdenv, fetchurl, pkgconfig, glib, gtk2, dbus-glib }:
 
 stdenv.mkDerivation rec {
-  name = "libunique-1.1.6";
+  pname = "libunique";
+  version = "1.1.6";
+
   src = fetchurl {
-    url = "mirror://gnome/sources/libunique/1.1/${name}.tar.bz2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "1fsgvmncd9caw552lyfg8swmsd6bh4ijjsph69bwacwfxwf09j75";
   };
 
   NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
 
-  # patches from Gentoo portage
+  # Patches from Gentoo portage
   patches = [
     ./1.1.6-compiler-warnings.patch
     ./1.1.6-fix-test.patch
     ./1.1.6-G_CONST_RETURN.patch
     ./1.1.6-include-terminator.patch
-  ]
-    ++ [ ./gcc7-bug.patch ];
+  ] ++ [ ./gcc7-bug.patch ];
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glib gtk2 dbus-glib ];
 
-  # don't make deprecated usages hard errors
+  # Don't make deprecated usages hard errors
   preBuild = ''substituteInPlace unique/dbus/Makefile --replace -Werror ""'';
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libwnck/default.nix b/pkgs/development/libraries/libwnck/default.nix
index 25454137410..558fb30584f 100644
--- a/pkgs/development/libraries/libwnck/default.nix
+++ b/pkgs/development/libraries/libwnck/default.nix
@@ -1,14 +1,11 @@
 { stdenv, fetchurl, pkgconfig, gtk2, intltool, xorg }:
 
-let
-  ver_maj = "2.31";
-  ver_min = "0";
-in
 stdenv.mkDerivation rec {
-  name = "libwnck-${ver_maj}.${ver_min}";
+  pname = "libwnck";
+  version = "2.31.0";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libwnck/${ver_maj}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "17isfjvrzgj5znld2a7zsk9vd39q9wnsysnw5jr8iz410z935xw3";
   };
 
diff --git a/pkgs/development/libraries/libxmlxx/default.nix b/pkgs/development/libraries/libxmlxx/default.nix
index 07ed1cba8be..bf154b462ef 100644
--- a/pkgs/development/libraries/libxmlxx/default.nix
+++ b/pkgs/development/libraries/libxmlxx/default.nix
@@ -1,12 +1,11 @@
-{ stdenv, fetchurl, pkgconfig, libxml2, glibmm, perl }:
+{ stdenv, fetchurl, pkgconfig, libxml2, glibmm, perl, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "libxml++-${maj_ver}.${min_ver}";
-  maj_ver = "2.40";
-  min_ver = "1";
+  pname = "libxml++";
+  version = "2.40.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/libxml++/${maj_ver}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1sb3akryklvh2v6m6dihdnbpf1lkx441v972q9hlz1sq6bfspm2a";
   };
 
@@ -16,6 +15,12 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libxml2 glibmm ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     homepage = http://libxmlplusplus.sourceforge.net/;
     description = "C++ wrapper for the libxml2 XML parser library";
diff --git a/pkgs/development/libraries/opal/default.nix b/pkgs/development/libraries/opal/default.nix
index 1658e831ddd..3527dc4bfac 100644
--- a/pkgs/development/libraries/opal/default.nix
+++ b/pkgs/development/libraries/opal/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, ptlib, srtp, libtheora, speex
+{ stdenv, fetchurl, pkgconfig, ptlib, srtp, libtheora, speex, gnome3
 , ffmpeg, x264, cyrus_sasl, openldap, openssl, expat, unixODBC }:
 
 stdenv.mkDerivation rec {
-  name = "opal-3.10.10";
+  pname = "opal";
+  version = "3.10.10";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/opal/3.10/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "f208985003461b2743575eccac13ad890b3e5baac35b68ddef17162460aff864";
   };
 
@@ -33,6 +34,9 @@ stdenv.mkDerivation rec {
     updateInfo = {
       downloadPage = "http://ftp.gnome.org/pub/GNOME/sources/opal";
     };
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
   };
 }
 
diff --git a/pkgs/development/libraries/pangox-compat/default.nix b/pkgs/development/libraries/pangox-compat/default.nix
index 2d6b678f657..8059d20386f 100644
--- a/pkgs/development/libraries/pangox-compat/default.nix
+++ b/pkgs/development/libraries/pangox-compat/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl, pkgconfig, glib, pango, libX11 }:
 
 stdenv.mkDerivation rec {
-  name = "pangox-compat-0.0.2";
+  pname = "pangox-compat";
+  version = "0.0.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pangox-compat/0.0/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0ip0ziys6mrqqmz4n71ays0kf5cs1xflj1gfpvs4fgy2nsrr482m";
   };
 
@@ -13,7 +14,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A compatibility library for pango>1.30.*";
-
     homepage = https://www.pango.org/;
     license = stdenv.lib.licenses.lgpl2Plus;
     platforms = stdenv.lib.platforms.unix;
diff --git a/pkgs/development/libraries/ptlib/default.nix b/pkgs/development/libraries/ptlib/default.nix
index d425de243f5..4b194a13ef8 100644
--- a/pkgs/development/libraries/ptlib/default.nix
+++ b/pkgs/development/libraries/ptlib/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig, bison, flex, unixODBC
+{ stdenv, fetchurl, fetchpatch, pkgconfig, bison, flex, unixODBC, gnome3
 , openssl, openldap, cyrus_sasl, kerberos, expat, SDL, libdv, libv4l, alsaLib }:
 
 stdenv.mkDerivation rec {
-  name = "ptlib-2.10.11";
+  pname = "ptlib";
+  version = "2.10.11";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/ptlib/2.10/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "1jf27mjz8vqnclhrhrpn7niz4c177kcjbd1hc7vn65ihcqfz05rs";
   };
 
@@ -45,5 +46,8 @@ stdenv.mkDerivation rec {
     updateInfo = {
       downloadPage = "http://ftp.gnome.org/sources/ptlib/";
     };
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
   };
 }
diff --git a/pkgs/development/python-modules/pygtk/default.nix b/pkgs/development/python-modules/pygtk/default.nix
index 42127de2f24..c6f939d319a 100644
--- a/pkgs/development/python-modules/pygtk/default.nix
+++ b/pkgs/development/python-modules/pygtk/default.nix
@@ -4,18 +4,16 @@
 buildPythonPackage rec {
   pname = "pygtk";
   version = "2.24.0";
-  name = pname + "-" + version;
 
   disabled = isPy3k;
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pygtk/2.24/${name}.tar.bz2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
     sha256 = "04k942gn8vl95kwf0qskkv6npclfm31d78ljkrkgyqxxcni1w76d";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ]
-    ++ stdenv.lib.optional (libglade != null) libglade;
+  buildInputs = stdenv.lib.optional (libglade != null) libglade;
 
   propagatedBuildInputs = [ gtk2 pygobject2 pycairo ];
 
@@ -50,6 +48,13 @@ buildPythonPackage rec {
     rm $out/bin/pygtk-codegen-2.0
     ln -s ${pygobject2}/bin/pygobject-codegen-2.0  $out/bin/pygtk-codegen-2.0
     ln -s ${pygobject2}/lib/${python.libPrefix}/site-packages/pygobject-${pygobject2.version}.pth \
-                  $out/lib/${python.libPrefix}/site-packages/${name}.pth
+                  $out/lib/${python.libPrefix}/site-packages/${pname}-${version}.pth
   '';
+
+  meta = with stdenv.lib; {
+    description = "GTK+-2 bindings";
+    homepage = "https://gitlab.gnome.org/Archive/pygtk";
+    platforms = platforms.all;
+    license = with licenses; [ lgpl21Plus ];
+  };
 }
diff --git a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
index 2df390c2f72..0f33500a194 100644
--- a/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
+++ b/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
@@ -1,12 +1,14 @@
-{fetchurl, pkgconfig, libxml2Python, libxslt, intltool
+{ stdenv, fetchurl, pkgconfig, libxml2Python, libxslt, intltool, gnome3
 , python2Packages }:
 
-python2Packages.buildPythonApplication {
-  name = "gnome-doc-utils-0.20.10";
+python2Packages.buildPythonApplication rec {
+  pname = "gnome-doc-utils";
+  version = "0.20.10";
+
   format = "other";
 
   src = fetchurl {
-    url = mirror://gnome/sources/gnome-doc-utils/0.20/gnome-doc-utils-0.20.10.tar.xz;
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb";
   };
 
@@ -20,4 +22,17 @@ python2Packages.buildPythonApplication {
   '';
 
   propagatedBuildInputs = [ libxml2Python ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Collection of documentation utilities for the Gnome project";
+    homepage = https://gitlab.gnome.org/GNOME/gnome-doc-utils;
+    license = with licenses; [ gpl2Plus lgpl2Plus ];
+    platforms = platforms.all;
+  };
 }
diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix
index d328aa06c9f..c4a53e5e3fd 100644
--- a/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, perl, python3, libxml2Python, libxslt, which
-, docbook_xml_dtd_43, docbook_xsl, gnome-doc-utils, gettext, itstool
+, docbook_xml_dtd_43, docbook_xsl, gnome-doc-utils, gettext, itstool, gnome3
 , withDblatex ? false, dblatex
 }:
 
 stdenv.mkDerivation rec {
-  name = "gtk-doc-${version}";
+  pname = "gtk-doc";
   version = "1.30";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk-doc/${version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "17h6nwhis66z4dxjrc833wvfl6pqjp81yfx3fq6x7k1qp2749xm4";
   };
 
@@ -38,6 +38,10 @@ stdenv.mkDerivation rec {
   passthru = {
     # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch
     respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch;
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/misc/gob2/default.nix b/pkgs/development/tools/misc/gob2/default.nix
index 17aa3214ebc..4c00d2c1025 100644
--- a/pkgs/development/tools/misc/gob2/default.nix
+++ b/pkgs/development/tools/misc/gob2/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, pkgconfig, glib, bison, flex }:
+{ stdenv, fetchurl, pkgconfig, glib, bison, flex, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "gob2-${minVer}.20";
-  minVer = "2.0";
+  pname = "gob2";
+  version = "2.0.20";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gob2/${minVer}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "5fe5d7990fd65b0d4b617ba894408ebaa6df453f2781c15a1cfdf2956c0c5428";
   };
 
@@ -13,6 +13,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glib bison flex ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+      versionPolicy = "none";
+    };
+  };
+
   meta = {
     description = "Preprocessor for making GObjects with inline C code";
     homepage = https://www.jirka.org/gob.html;
diff --git a/pkgs/development/tools/misc/msitools/default.nix b/pkgs/development/tools/misc/msitools/default.nix
index 4a5d87fb4f7..5c2b0ad0ee3 100644
--- a/pkgs/development/tools/misc/msitools/default.nix
+++ b/pkgs/development/tools/misc/msitools/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, fetchurl, intltool, glib, pkgconfig, libgsf, libuuid, gcab, bzip2 }:
+{ stdenv, fetchurl, intltool, glib, pkgconfig, libgsf, libuuid, gcab, bzip2, gnome3 }:
 
 stdenv.mkDerivation rec {
+  pname = "msitools";
   version = "0.98";
-  name = "msitools-${version}";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/msitools/${version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "19wb3n3nwkpc6bjr0q3f1znaxsfaqgjbdxxnbx8ic8bb5b49hwac";
   };
 
   nativeBuildInputs = [ intltool pkgconfig ];
   buildInputs = [ glib libgsf libuuid gcab bzip2 ];
 
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Set of programs to inspect and build Windows Installer (.MSI) files";
     homepage = https://wiki.gnome.org/msitools;
diff --git a/pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix b/pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix
index 4ec5b5da0a4..a3afea817d5 100644
--- a/pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix
+++ b/pkgs/misc/themes/gtk2/gtk-engine-murrine/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl, pkgconfig, intltool, gtk2 }:
 
-stdenv.mkDerivation {
-  name = "gtk-engine-murrine-0.98.2";
+stdenv.mkDerivation rec {
+  pname = "gtk-engine-murrine";
+  version = "0.98.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/murrine/0.98/murrine-0.98.2.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "129cs5bqw23i76h3nmc29c9mqkm9460iwc8vkl7hs4xr07h8mip9";
   };
 
diff --git a/pkgs/tools/security/polkit-gnome/default.nix b/pkgs/tools/security/polkit-gnome/default.nix
index bfb3fb63b14..822a86e5fac 100644
--- a/pkgs/tools/security/polkit-gnome/default.nix
+++ b/pkgs/tools/security/polkit-gnome/default.nix
@@ -1,13 +1,10 @@
 { stdenv, fetchurl, polkit, gtk3, pkgconfig, intltool }:
-
-let
+stdenv.mkDerivation rec {
+  pname = "polkit-gnome";
   version = "0.105";
 
-in stdenv.mkDerivation rec {
-  name = "polkit-gnome-${version}";
-
   src = fetchurl {
-    url = "mirror://gnome/sources/polkit-gnome/${version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/polkit-gnome/${version}/${pname}-${version}.tar.xz";
     sha256 = "0sckmcbxyj6sbrnfc5p5lnw27ccghsid6v6wxq09mgxqcd4lk10p";
   };
 
@@ -20,7 +17,7 @@ in stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/etc/xdg/autostart
     substituteAll ${./polkit-gnome-authentication-agent-1.desktop} $out/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop
-    '';
+  '';
 
   meta = {
     homepage = https://hal.freedesktop.org/docs/PolicyKit/;