summary refs log tree commit diff
diff options
context:
space:
mode:
authorJosé Romildo Malaquias <malaquias@gmail.com>2020-05-07 11:04:36 -0300
committerGitHub <noreply@github.com>2020-05-07 11:04:36 -0300
commit4ed52081520e8bc6003c2ed78a7f3307ea4e9c29 (patch)
tree8066e26598e4ce8e02f1887e6af75d025b1bb380
parent32043f190ec47b024e76c566e54391051a835adc (diff)
parent593c6247ab9cd8d25799990aeca8057db1298522 (diff)
downloadnixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.tar
nixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.tar.gz
nixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.tar.bz2
nixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.tar.lz
nixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.tar.xz
nixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.tar.zst
nixpkgs-4ed52081520e8bc6003c2ed78a7f3307ea4e9c29.zip
Merge pull request #86708 from romildo/deepin.updateScript
deepin: redefine updateScript to use genericUpdater
-rw-r--r--pkgs/common-updater/generic-updater.nix20
-rw-r--r--pkgs/desktops/deepin/dbus-factory/default.nix14
-rw-r--r--pkgs/desktops/deepin/dde-api/default.nix49
-rw-r--r--pkgs/desktops/deepin/dde-calendar/default.nix14
-rw-r--r--pkgs/desktops/deepin/dde-control-center/default.nix45
-rw-r--r--pkgs/desktops/deepin/dde-daemon/default.nix44
-rw-r--r--pkgs/desktops/deepin/dde-dock/default.nix178
-rw-r--r--pkgs/desktops/deepin/dde-dock/wrapper.nix6
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/default.nix61
-rw-r--r--pkgs/desktops/deepin/dde-kwin/default.nix6
-rw-r--r--pkgs/desktops/deepin/dde-launcher/default.nix27
-rw-r--r--pkgs/desktops/deepin/dde-network-utils/default.nix16
-rw-r--r--pkgs/desktops/deepin/dde-polkit-agent/default.nix16
-rw-r--r--pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix9
-rw-r--r--pkgs/desktops/deepin/dde-session-ui/default.nix38
-rw-r--r--pkgs/desktops/deepin/deepin-anything/default.nix15
-rw-r--r--pkgs/desktops/deepin/deepin-calculator/default.nix15
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-base/default.nix16
-rw-r--r--pkgs/desktops/deepin/deepin-desktop-schemas/default.nix19
-rw-r--r--pkgs/desktops/deepin/deepin-editor/default.nix18
-rw-r--r--pkgs/desktops/deepin/deepin-gettext-tools/default.nix14
-rw-r--r--pkgs/desktops/deepin/deepin-gtk-theme/default.nix16
-rw-r--r--pkgs/desktops/deepin/deepin-icon-theme/default.nix16
-rw-r--r--pkgs/desktops/deepin/deepin-image-viewer/default.nix20
-rw-r--r--pkgs/desktops/deepin/deepin-menu/default.nix14
-rw-r--r--pkgs/desktops/deepin/deepin-movie-reborn/default.nix25
-rw-r--r--pkgs/desktops/deepin/deepin-screenshot/default.nix21
-rw-r--r--pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix14
-rw-r--r--pkgs/desktops/deepin/deepin-sound-theme/default.nix11
-rw-r--r--pkgs/desktops/deepin/deepin-terminal/default.nix45
-rw-r--r--pkgs/desktops/deepin/deepin-turbo/default.nix11
-rw-r--r--pkgs/desktops/deepin/deepin-wallpapers/default.nix13
-rw-r--r--pkgs/desktops/deepin/default.nix12
-rw-r--r--pkgs/desktops/deepin/disomaster/default.nix12
-rw-r--r--pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix13
-rw-r--r--pkgs/desktops/deepin/dtkcore/default.nix12
-rw-r--r--pkgs/desktops/deepin/dtkwidget/default.nix21
-rw-r--r--pkgs/desktops/deepin/dtkwm/default.nix13
-rw-r--r--pkgs/desktops/deepin/go-dbus-factory/default.nix11
-rw-r--r--pkgs/desktops/deepin/go-dbus-generator/default.nix9
-rw-r--r--pkgs/desktops/deepin/go-gir-generator/default.nix13
-rw-r--r--pkgs/desktops/deepin/go-lib/default.nix13
-rw-r--r--pkgs/desktops/deepin/qcef/default.nix42
-rw-r--r--pkgs/desktops/deepin/qt5dxcb-plugin/default.nix16
-rw-r--r--pkgs/desktops/deepin/qt5integration/default.nix21
-rw-r--r--pkgs/desktops/deepin/startdde/default.nix47
-rw-r--r--pkgs/desktops/deepin/udisks2-qt5/default.nix10
-rw-r--r--pkgs/desktops/deepin/update.nix38
48 files changed, 833 insertions, 316 deletions
diff --git a/pkgs/common-updater/generic-updater.nix b/pkgs/common-updater/generic-updater.nix
index e54363a1dda..8483f9bbd1d 100644
--- a/pkgs/common-updater/generic-updater.nix
+++ b/pkgs/common-updater/generic-updater.nix
@@ -4,6 +4,7 @@
 , version
 , attrPath ? pname
 , versionLister
+, ignoredVersions ? ""
 , rev-prefix ? ""
 , odd-unstable ? false
 , patchlevel-unstable ? false
@@ -23,13 +24,19 @@ let
     version="$2"
     attr_path="$3"
     version_lister="$4"
-    rev_prefix="$5"
-    odd_unstable="$6"
-    patchlevel_unstable="$7"
+    ignored_versions="$5"
+    rev_prefix="$6"
+    odd_unstable="$7"
+    patchlevel_unstable="$8"
 
     # print header
     echo "# $pname-$version" >> ${fileForGitCommands}
 
+    function version_is_ignored() {
+      local tag="$1"
+      [ -n "$ignored_versions" ] && grep -E "$ignored_versions" <<< "$tag"
+    }
+
     function version_is_unstable() {
       local tag="$1"
       local enforce="$2"
@@ -68,7 +75,10 @@ let
     # find the newest tag
     # do not consider development versions
     for latest_tag in $tags; do
-      if version_is_unstable "$latest_tag"; then
+      if version_is_ignored "$latest_tag"; then
+        echo "#   skip ignored version: $pname-$latest_tag" >> ${fileForGitCommands}
+        latest_tag=
+      elif version_is_unstable "$latest_tag"; then
         echo "#   skip development version: $pname-$latest_tag" >> ${fileForGitCommands}
         latest_tag=
       else
@@ -95,4 +105,4 @@ let
   '';
 
 in
-[ updateScript pname version attrPath versionLister rev-prefix odd-unstable patchlevel-unstable ]
+[ updateScript pname version attrPath versionLister ignoredVersions rev-prefix odd-unstable patchlevel-unstable ]
diff --git a/pkgs/desktops/deepin/dbus-factory/default.nix b/pkgs/desktops/deepin/dbus-factory/default.nix
index df780009152..06d921cce6d 100644
--- a/pkgs/desktops/deepin/dbus-factory/default.nix
+++ b/pkgs/desktops/deepin/dbus-factory/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, fetchFromGitHub, jq, libxml2, go-dbus-generator, deepin }:
+{ stdenv
+, fetchFromGitHub
+, jq
+, libxml2
+, go-dbus-generator
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "dbus-factory";
@@ -17,13 +23,15 @@ stdenv.mkDerivation rec {
     go-dbus-generator
   ];
 
-  makeFlags = [ "GOPATH=${placeholder "out"}/share/go" ];
+  makeFlags = [
+    "GOPATH=${placeholder "out"}/share/go"
+  ];
 
   postPatch = ''
     sed -i -e 's:/share/gocode:/share/go:' Makefile
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Generates static DBus bindings for Golang and QML at build-time";
diff --git a/pkgs/desktops/deepin/dde-api/default.nix b/pkgs/desktops/deepin/dde-api/default.nix
index accc7e2b701..325f62f3781 100644
--- a/pkgs/desktops/deepin/dde-api/default.nix
+++ b/pkgs/desktops/deepin/dde-api/default.nix
@@ -1,25 +1,28 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig,
-  alsaLib,
-  bc,
-  blur-effect,
-  coreutils,
-  dbus-factory,
-  deepin,
-  deepin-gettext-tools,
-  fontconfig,
-  go,
-  go-dbus-factory,
-  go-gir-generator,
-  go-lib,
-  grub2,
-  gtk3,
-  libcanberra,
-  libgudev,
-  librsvg,
-  poppler,
-  pulseaudio,
-  rfkill,
-  xcur2png
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, pkgconfig
+, alsaLib
+, bc
+, blur-effect
+, coreutils
+, dbus-factory
+, deepin
+, deepin-gettext-tools
+, fontconfig
+, go
+, go-dbus-factory
+, go-gir-generator
+, go-lib
+, grub2
+, gtk3
+, libcanberra
+, libgudev
+, librsvg
+, poppler
+, pulseaudio
+, rfkill
+, xcur2png
 }:
 
 buildGoPackage rec {
@@ -114,7 +117,7 @@ buildGoPackage rec {
     searchHardCodedPaths $out  # debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Go-lang bindings for dde-daemon";
diff --git a/pkgs/desktops/deepin/dde-calendar/default.nix b/pkgs/desktops/deepin/dde-calendar/default.nix
index e148df51a87..094f3447c6b 100644
--- a/pkgs/desktops/deepin/dde-calendar/default.nix
+++ b/pkgs/desktops/deepin/dde-calendar/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, qttools,
-  deepin-gettext-tools, dtkcore, dtkwidget, deepin
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, qttools
+, deepin-gettext-tools
+, dtkcore
+, dtkwidget
+, deepin
 }:
 
 mkDerivation rec {
@@ -37,7 +45,7 @@ mkDerivation rec {
       -e "s,/usr/bin/deepin-desktop-ts-convert,deepin-desktop-ts-convert,"
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Calendar for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/dde-control-center/default.nix b/pkgs/desktops/deepin/dde-control-center/default.nix
index adc05e1ea7e..be2846fc87e 100644
--- a/pkgs/desktops/deepin/dde-control-center/default.nix
+++ b/pkgs/desktops/deepin/dde-control-center/default.nix
@@ -1,9 +1,40 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, deepin, qttools, qtdeclarative,
- networkmanager, qtsvg, qtx11extras,  dtkcore, dtkwidget, geoip, gsettings-qt,
- dde-network-utils, networkmanager-qt, xorg, mtdev, fontconfig, freetype, dde-api,
- dde-daemon, qt5integration, deepin-desktop-base, deepin-desktop-schemas, dbus,
- systemd, dde-qt-dbus-factory, qtmultimedia, qtbase, glib, gnome3, which,
- substituteAll, tzdata, wrapGAppsHook
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, deepin
+, qttools
+, qtdeclarative
+, networkmanager
+, qtsvg
+, qtx11extras
+, dtkcore
+, dtkwidget
+, geoip
+, gsettings-qt
+, dde-network-utils
+, networkmanager-qt
+, xorg
+, mtdev
+, fontconfig
+, freetype
+, dde-api
+, dde-daemon
+, qt5integration
+, deepin-desktop-base
+, deepin-desktop-schemas
+, dbus
+, systemd
+, dde-qt-dbus-factory
+, qtmultimedia
+, qtbase
+, glib
+, gnome3
+, which
+, substituteAll
+, tzdata
+, wrapGAppsHook
 }:
 
 mkDerivation rec {
@@ -107,7 +138,7 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Control panel of Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/dde-daemon/default.nix b/pkgs/desktops/deepin/dde-daemon/default.nix
index ad818b2606c..b89b2c25446 100644
--- a/pkgs/desktops/deepin/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/dde-daemon/default.nix
@@ -1,10 +1,38 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch, pkgconfig,
-  dbus-factory, go-dbus-factory, go-gir-generator, go-lib,
-  deepin-gettext-tools, gettext, dde-api, deepin-desktop-schemas,
-  deepin-wallpapers, deepin-desktop-base, alsaLib, glib, gtk3,
-  libgudev, libinput, libnl, librsvg, linux-pam, networkmanager,
-  pulseaudio, python3, hicolor-icon-theme, glibc, tzdata, go,
-  deepin, makeWrapper, xkeyboard_config, wrapGAppsHook }:
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, dbus-factory
+, go-dbus-factory
+, go-gir-generator
+, go-lib
+, deepin-gettext-tools
+, gettext
+, dde-api
+, deepin-desktop-schemas
+, deepin-wallpapers
+, deepin-desktop-base
+, alsaLib
+, glib
+, gtk3
+, libgudev
+, libinput
+, libnl
+, librsvg
+, linux-pam
+, networkmanager
+, pulseaudio
+, python3
+, hicolor-icon-theme
+, glibc
+, tzdata
+, go
+, deepin
+, makeWrapper
+, xkeyboard_config
+, wrapGAppsHook
+}:
 
 buildGoPackage rec {
   pname = "dde-daemon";
@@ -121,7 +149,7 @@ buildGoPackage rec {
     searchHardCodedPaths $out  # debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Daemon for handling Deepin Desktop Environment session settings";
diff --git a/pkgs/desktops/deepin/dde-dock/default.nix b/pkgs/desktops/deepin/dde-dock/default.nix
index f2edb83537d..68f2caa6319 100644
--- a/pkgs/desktops/deepin/dde-dock/default.nix
+++ b/pkgs/desktops/deepin/dde-dock/default.nix
@@ -1,94 +1,116 @@
-{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras,
-  qtsvg, polkit, gsettings-qt, dtkcore, dtkwidget,
-  dde-qt-dbus-factory, dde-network-utils, dde-daemon,
-  deepin-desktop-schemas, xorg, glib, wrapGAppsHook, deepin,
-  plugins ? [], symlinkJoin, makeWrapper, libdbusmenu }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, qttools
+, qtx11extras
+, qtsvg
+, polkit
+, gsettings-qt
+, dtkcore
+, dtkwidget
+, dde-qt-dbus-factory
+, dde-network-utils
+, dde-daemon
+, deepin-desktop-schemas
+, xorg
+, glib
+, wrapGAppsHook
+, deepin
+, plugins ? [ ]
+, symlinkJoin
+, makeWrapper
+, libdbusmenu
+}:
 
 let
-unwrapped = mkDerivation rec {
-  pname = "dde-dock";
-  version = "5.0.0";
+  unwrapped = mkDerivation rec {
+    pname = "dde-dock";
+    version = "5.0.0";
 
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
-  };
+    src = fetchFromGitHub {
+      owner = "linuxdeepin";
+      repo = pname;
+      rev = version;
+      sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
+    };
 
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
+    nativeBuildInputs = [
+      cmake
+      pkgconfig
+      qttools
+      wrapGAppsHook
+      deepin.setupHook
+    ];
 
-  buildInputs = [
-    dde-daemon
-    dde-network-utils
-    dde-qt-dbus-factory
-    deepin-desktop-schemas
-    dtkcore
-    dtkwidget
-    glib
-    gsettings-qt
-    libdbusmenu
-    polkit
-    qtsvg
-    qtx11extras
-    xorg.libXdmcp
-    xorg.libXtst
-    xorg.libpthreadstubs
-  ];
+    buildInputs = [
+      dde-daemon
+      dde-network-utils
+      dde-qt-dbus-factory
+      deepin-desktop-schemas
+      dtkcore
+      dtkwidget
+      glib
+      gsettings-qt
+      libdbusmenu
+      polkit
+      qtsvg
+      qtx11extras
+      xorg.libXdmcp
+      xorg.libXtst
+      xorg.libpthreadstubs
+    ];
 
-  patches = [
-    ./dde-dock.plugins-dir.patch
-  ];
+    patches = [
+      ./dde-dock.plugins-dir.patch
+    ];
 
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    fixPath $out                 /etc/dde-dock                plugins/keyboard-layout/CMakeLists.txt
-    fixPath $out                 /usr                         cmake/DdeDock/DdeDockConfig.cmake
-    fixPath $out                 /usr                         dde-dock.pc
-    fixPath $out                 /usr/bin/dde-dock            frame/com.deepin.dde.Dock.service
-    fixPath $out                 /usr/share/dbus-1            CMakeLists.txt
-    fixPath ${dde-daemon}        /usr/lib/deepin-daemon       frame/item/showdesktopitem.cpp
-    fixPath ${dde-network-utils} /usr/share/dde-network-utils frame/main.cpp
-    fixPath ${polkit}            /usr/bin/pkexec              plugins/overlay-warning/overlay-warning-plugin.cpp
+    postPatch = ''
+      searchHardCodedPaths
+      patchShebangs translate_generation.sh
+      fixPath $out                 /etc/dde-dock                plugins/keyboard-layout/CMakeLists.txt
+      fixPath $out                 /usr                         cmake/DdeDock/DdeDockConfig.cmake
+      fixPath $out                 /usr                         dde-dock.pc
+      fixPath $out                 /usr/bin/dde-dock            frame/com.deepin.dde.Dock.service
+      fixPath $out                 /usr/share/dbus-1            CMakeLists.txt
+      fixPath ${dde-daemon}        /usr/lib/deepin-daemon       frame/item/showdesktopitem.cpp
+      fixPath ${dde-network-utils} /usr/share/dde-network-utils frame/main.cpp
+      fixPath ${polkit}            /usr/bin/pkexec              plugins/overlay-warning/overlay-warning-plugin.cpp
 
-    substituteInPlace frame/controller/dockpluginscontroller.cpp --subst-var-by out $out
-    substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp --subst-var-by out $out
-  '';
+      substituteInPlace frame/controller/dockpluginscontroller.cpp --subst-var-by out $out
+      substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp --subst-var-by out $out
+    '';
 
-  cmakeFlags = [ "-DDOCK_TRAY_USE_NATIVE_POPUP=YES" ];
+    cmakeFlags = [ "-DDOCK_TRAY_USE_NATIVE_POPUP=YES" ];
 
-  dontWrapQtApps = true;
+    dontWrapQtApps = true;
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
+    preFixup = ''
+      gappsWrapperArgs+=(
+        "''${qtWrapperArgs[@]}"
+      )
+    '';
 
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
+    postFixup = ''
+      searchHardCodedPaths $out
+    '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+    passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
-  meta = with stdenv.lib; {
-    description = "Dock for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-dock";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
+    meta = with stdenv.lib; {
+      description = "Dock for Deepin Desktop Environment";
+      homepage = "https://github.com/linuxdeepin/dde-dock";
+      license = licenses.gpl3;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ romildo ];
+    };
   };
-};
 
-in if plugins == [] then unwrapped
-    else import ./wrapper.nix {
-      inherit makeWrapper symlinkJoin plugins;
-      dde-dock = unwrapped;
-    }
+in
+if plugins == [ ]
+then unwrapped
+else import ./wrapper.nix {
+  inherit makeWrapper symlinkJoin plugins;
+  dde-dock = unwrapped;
+}
diff --git a/pkgs/desktops/deepin/dde-dock/wrapper.nix b/pkgs/desktops/deepin/dde-dock/wrapper.nix
index 8f6d8a67b1a..1690230a99e 100644
--- a/pkgs/desktops/deepin/dde-dock/wrapper.nix
+++ b/pkgs/desktops/deepin/dde-dock/wrapper.nix
@@ -1,4 +1,8 @@
-{ makeWrapper, symlinkJoin, dde-dock, plugins }:
+{ makeWrapper
+, symlinkJoin
+, dde-dock
+, plugins
+}:
 
 symlinkJoin {
   name = "dde-dock-with-plugins-${dde-dock.version}";
diff --git a/pkgs/desktops/deepin/dde-file-manager/default.nix b/pkgs/desktops/deepin/dde-file-manager/default.nix
index a952a82dfca..4258e2aa859 100644
--- a/pkgs/desktops/deepin/dde-file-manager/default.nix
+++ b/pkgs/desktops/deepin/dde-file-manager/default.nix
@@ -1,13 +1,52 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, avfs, dde-daemon,
-  dde-dock, dde-polkit-agent, dde-qt-dbus-factory, deepin,
-  deepin-anything, deepin-desktop-schemas, deepin-gettext-tools,
-  deepin-movie-reborn, deepin-shortcut-viewer, deepin-terminal,
-  disomaster, dtkcore, dtkwidget, ffmpegthumbnailer, file, glib,
-  gnugrep, gsettings-qt, gvfs, jemalloc, kcodecs, libX11, libsecret,
-  polkit, polkit-qt, poppler, procps, qmake, qt5integration,
-  qtmultimedia, qtsvg, qttools, qtx11extras, runtimeShell, samba,
-  shadow, taglib, udisks2-qt5, xdg-user-dirs, xorg, zlib,
-  wrapGAppsHook }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, avfs
+, dde-daemon
+, dde-dock
+, dde-polkit-agent
+, dde-qt-dbus-factory
+, deepin
+, deepin-anything
+, deepin-desktop-schemas
+, deepin-gettext-tools
+, deepin-movie-reborn
+, deepin-shortcut-viewer
+, deepin-terminal
+, disomaster
+, dtkcore
+, dtkwidget
+, ffmpegthumbnailer
+, file
+, glib
+, gnugrep
+, gsettings-qt
+, gvfs
+, jemalloc
+, kcodecs
+, libX11
+, libsecret
+, polkit
+, polkit-qt
+, poppler
+, procps
+, qmake
+, qt5integration
+, qtmultimedia
+, qtsvg
+, qttools
+, qtx11extras
+, runtimeShell
+, samba
+, shadow
+, taglib
+, udisks2-qt5
+, xdg-user-dirs
+, xorg
+, zlib
+, wrapGAppsHook
+}:
 
 mkDerivation rec {
   pname = "dde-file-manager";
@@ -247,7 +286,7 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "File manager and desktop module for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/dde-kwin/default.nix b/pkgs/desktops/deepin/dde-kwin/default.nix
index 850186953f6..ce1a1a8dda0 100644
--- a/pkgs/desktops/deepin/dde-kwin/default.nix
+++ b/pkgs/desktops/deepin/dde-kwin/default.nix
@@ -74,7 +74,9 @@ mkDerivation rec {
 
   # Need to add kwayland around:
   # * https://github.com/linuxdeepin/dde-kwin/blob/5226bb984c844129f9fa589da56e77decb7b39a1/plugins/kwineffects/blur/CMakeLists.txt#L14
-  NIX_CFLAGS_COMPILE = "-I${kwayland.dev}/include/KF5";
+  NIX_CFLAGS_COMPILE = [
+    "-I${kwayland.dev}/include/KF5"
+  ];
 
   cmakeFlags = [
     "-DKWIN_VERSION=${(builtins.parseDrvName kwin.name).version}"
@@ -128,7 +130,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "KWin configuration for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/dde-launcher/default.nix b/pkgs/desktops/deepin/dde-launcher/default.nix
index a1561f5c092..0a50f7177ba 100644
--- a/pkgs/desktops/deepin/dde-launcher/default.nix
+++ b/pkgs/desktops/deepin/dde-launcher/default.nix
@@ -1,7 +1,24 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, dde-qt-dbus-factory,
-  dde-session-ui, deepin, deepin-desktop-schemas, deepin-wallpapers,
-  dtkcore, dtkwidget, gsettings-qt, qtsvg, qttools, qtx11extras,
-  which, xdg_utils, wrapGAppsHook, glib }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, dde-qt-dbus-factory
+, dde-session-ui
+, deepin
+, deepin-desktop-schemas
+, deepin-wallpapers
+, dtkcore
+, dtkwidget
+, gsettings-qt
+, qtsvg
+, qttools
+, qtx11extras
+, which
+, xdg_utils
+, wrapGAppsHook
+, glib
+}:
 
 mkDerivation rec {
   pname = "dde-launcher";
@@ -72,7 +89,7 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin Desktop Environment launcher module";
diff --git a/pkgs/desktops/deepin/dde-network-utils/default.nix b/pkgs/desktops/deepin/dde-network-utils/default.nix
index 1550987cc73..d54558acf08 100644
--- a/pkgs/desktops/deepin/dde-network-utils/default.nix
+++ b/pkgs/desktops/deepin/dde-network-utils/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, mkDerivation, fetchFromGitHub, substituteAll, qmake, pkgconfig, qttools,
-  dde-qt-dbus-factory, proxychains, which, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, substituteAll
+, qmake
+, pkgconfig
+, qttools
+, dde-qt-dbus-factory
+, proxychains
+, which
+, deepin
+}:
 
 mkDerivation rec {
   pname = "dde-network-utils";
@@ -41,7 +51,7 @@ mkDerivation rec {
     searchHardCodedPaths $out  # for debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin network utils";
diff --git a/pkgs/desktops/deepin/dde-polkit-agent/default.nix b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
index e00ee30ca92..1ca9a80abaf 100644
--- a/pkgs/desktops/deepin/dde-polkit-agent/default.nix
+++ b/pkgs/desktops/deepin/dde-polkit-agent/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, polkit-qt,
-  dtkcore, dtkwidget, dde-qt-dbus-factory, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qttools
+, polkit-qt
+, dtkcore
+, dtkwidget
+, dde-qt-dbus-factory
+, deepin
+}:
 
 mkDerivation rec {
   pname = "dde-polkit-agent";
@@ -38,7 +48,7 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "PolicyKit agent for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix b/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
index 7e645473f02..c7efb0f4b04 100644
--- a/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
+++ b/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
@@ -1,4 +1,9 @@
-{ stdenv, fetchFromGitHub, qmake, python3, deepin }:
+{ stdenv
+, fetchFromGitHub
+, qmake
+, python3
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "dde-qt-dbus-factory";
@@ -26,7 +31,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Qt DBus interface library for Deepin software";
diff --git a/pkgs/desktops/deepin/dde-session-ui/default.nix b/pkgs/desktops/deepin/dde-session-ui/default.nix
index ddb12511c27..ff785f16c81 100644
--- a/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ b/pkgs/desktops/deepin/dde-session-ui/default.nix
@@ -1,9 +1,33 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dbus, dde-daemon,
-  dde-qt-dbus-factory, deepin, deepin-desktop-schemas,
-  deepin-gettext-tools, deepin-icon-theme, deepin-wallpapers, dtkcore,
-  dtkwidget, gnugrep, gsettings-qt, lightdm_qt,
-  onboard, qtsvg, qttools, qtx11extras, setxkbmap, utillinux, which,
-  xkeyboard_config, xorg, xrandr, wrapGAppsHook }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, dbus
+, dde-daemon
+, dde-qt-dbus-factory
+, deepin
+, deepin-desktop-schemas
+, deepin-gettext-tools
+, deepin-icon-theme
+, deepin-wallpapers
+, dtkcore
+, dtkwidget
+, gnugrep
+, gsettings-qt
+, lightdm_qt
+, onboard
+, qtsvg
+, qttools
+, qtx11extras
+, setxkbmap
+, utillinux
+, which
+, xkeyboard_config
+, xorg
+, xrandr
+, wrapGAppsHook
+}:
 
 mkDerivation rec {
   pname = "dde-session-ui";
@@ -121,7 +145,7 @@ mkDerivation rec {
     searchHardCodedPaths $out  # debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin desktop-environment - Session UI module";
diff --git a/pkgs/desktops/deepin/deepin-anything/default.nix b/pkgs/desktops/deepin/deepin-anything/default.nix
index be7fe818e5c..5fa6c93951d 100644
--- a/pkgs/desktops/deepin/deepin-anything/default.nix
+++ b/pkgs/desktops/deepin/deepin-anything/default.nix
@@ -1,5 +1,14 @@
-{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, pkgconfig, qtbase, udisks2-qt5, utillinux,
-  dtkcore, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, qtbase
+, udisks2-qt5
+, utillinux
+, dtkcore
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-anything";
@@ -61,7 +70,7 @@ mkDerivation rec {
     searchHardCodedPaths $modsrc  # for debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin file search tool";
diff --git a/pkgs/desktops/deepin/deepin-calculator/default.nix b/pkgs/desktops/deepin/deepin-calculator/default.nix
index 38aed9cbe63..67ead7d314a 100644
--- a/pkgs/desktops/deepin/deepin-calculator/default.nix
+++ b/pkgs/desktops/deepin/deepin-calculator/default.nix
@@ -1,5 +1,14 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, qtsvg, dtkcore,
-  dtkwidget, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qttools
+, qtsvg
+, dtkcore
+, dtkwidget
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-calculator";
@@ -36,7 +45,7 @@ mkDerivation rec {
     searchHardCodedPaths $out  # debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Easy to use calculator for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/deepin-desktop-base/default.nix b/pkgs/desktops/deepin/deepin-desktop-base/default.nix
index 335c5727e91..74fa53b715d 100644
--- a/pkgs/desktops/deepin/deepin-desktop-base/default.nix
+++ b/pkgs/desktops/deepin/deepin-desktop-base/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchFromGitHub, deepin-wallpapers, deepin }:
+{ stdenv
+, fetchFromGitHub
+, deepin-wallpapers
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-desktop-base";
@@ -11,9 +15,13 @@ stdenv.mkDerivation rec {
     sha256 = "0rs7bjy35k5gc5nbba1cijhdz16zny30lgmcf2ckx1pkdszk2vra";
   };
 
-  nativeBuildInputs = [ deepin.setupHook ];
+  nativeBuildInputs = [
+    deepin.setupHook
+  ];
 
-  buildInputs = [ deepin-wallpapers ];
+  buildInputs = [
+    deepin-wallpapers
+  ];
 
   # TODO: Fedora recommended dependencies:
   #   deepin-wallpapers
@@ -40,7 +48,7 @@ stdenv.mkDerivation rec {
     ln -s ../lib/deepin/desktop-version $out/etc/deepin-version
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Base assets and definitions for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
index 2105926f682..15f9498cf0d 100644
--- a/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
+++ b/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
@@ -1,5 +1,14 @@
-{ stdenv, fetchFromGitHub, python3, dconf, glib, deepin-gtk-theme,
-  deepin-icon-theme, deepin-sound-theme, deepin-wallpapers, deepin }:
+{ stdenv
+, fetchFromGitHub
+, python3
+, dconf
+, glib
+, deepin-gtk-theme
+, deepin-icon-theme
+, deepin-sound-theme
+, deepin-wallpapers
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-desktop-schemas";
@@ -46,7 +55,9 @@ stdenv.mkDerivation rec {
     #   /usr/share/desktop-directories
   '';
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
   doCheck = true;
   checkTarget = "test";
@@ -56,7 +67,7 @@ stdenv.mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "GSettings deepin desktop-wide schemas";
diff --git a/pkgs/desktops/deepin/deepin-editor/default.nix b/pkgs/desktops/deepin/deepin-editor/default.nix
index 9bff5b88268..0124ca8cc9e 100644
--- a/pkgs/desktops/deepin/deepin-editor/default.nix
+++ b/pkgs/desktops/deepin/deepin-editor/default.nix
@@ -1,10 +1,18 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, deepin,
-  dtkcore, dtkwidget, kcodecs, qttools, syntax-highlighting,
-  wrapQtAppsHook
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, deepin
+, dtkcore
+, dtkwidget
+, kcodecs
+, qttools
+, syntax-highlighting
+, wrapQtAppsHook
 }:
 
 stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
   pname = "deepin-editor";
   version = "1.2.9.1";
 
@@ -52,7 +60,7 @@ stdenv.mkDerivation rec {
     searchHardCodedPaths $out  # debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { inherit name; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Simple editor for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix b/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
index c1aff5ed4dc..432add458de 100644
--- a/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
+++ b/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, fetchFromGitHub, gettext, python3Packages, perlPackages, deepin }:
+{ stdenv
+, fetchFromGitHub
+, gettext
+, python3Packages
+, perlPackages
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-gettext-tools";
@@ -23,7 +29,9 @@ stdenv.mkDerivation rec {
     python3Packages.python
   ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
   postPatch = ''
     sed -e 's/sudo cp/cp/' -i src/generate_mo.py
@@ -35,7 +43,7 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/deepin-desktop-ts-convert --set PERL5LIB $PERL5LIB
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin Internationalization utilities";
diff --git a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
index 53735791846..eee07470585 100644
--- a/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchFromGitHub, gtk-engine-murrine, deepin }:
+{ stdenv
+, fetchFromGitHub
+, gtk-engine-murrine
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-gtk-theme";
@@ -11,11 +15,15 @@ stdenv.mkDerivation rec {
     sha256 = "0zs6mq70yd1k3d9zm3q6zxnw1md56r4imad5imdxwx58yxdx47fw";
   };
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin GTK Theme";
diff --git a/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
index b6eb3cce26d..464d6f19ced 100644
--- a/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-icon-theme/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, fetchFromGitHub, gtk3, xcursorgen, papirus-icon-theme, deepin, hicolor-icon-theme }:
+{ stdenv
+, fetchFromGitHub
+, gtk3
+, xcursorgen
+, papirus-icon-theme
+, deepin
+, hicolor-icon-theme
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-icon-theme";
@@ -11,7 +18,10 @@ stdenv.mkDerivation rec {
     sha256 = "12rzzjp906np95ckbxrd4mb345lm198wz69kxy48f8q1zg78q8iw";
   };
 
-  nativeBuildInputs = [ gtk3 xcursorgen ];
+  nativeBuildInputs = [
+    gtk3
+    xcursorgen
+  ];
 
   propagatedBuildInputs = [
     papirus-icon-theme
@@ -38,7 +48,7 @@ stdenv.mkDerivation rec {
     cp -a ./Sea ./usr/share/icons/hicolor "$out"/share/icons/
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Icons for the Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/deepin-image-viewer/default.nix b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
index bedc809b2f5..43c18c85abc 100644
--- a/pkgs/desktops/deepin/deepin-image-viewer/default.nix
+++ b/pkgs/desktops/deepin/deepin-image-viewer/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, qtsvg,
-  qtx11extras, dtkcore, dtkwidget, qt5integration, freeimage, libraw,
-  libexif, deepin
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qttools
+, qtsvg
+, qtx11extras
+, dtkcore
+, dtkwidget
+, qt5integration
+, freeimage
+, libraw
+, libexif
+, deepin
 }:
 
 mkDerivation rec {
@@ -41,7 +53,7 @@ mkDerivation rec {
       -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Image Viewer for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/deepin-menu/default.nix b/pkgs/desktops/deepin/deepin-menu/default.nix
index 92153b84d51..983fe4e1c4d 100644
--- a/pkgs/desktops/deepin/deepin-menu/default.nix
+++ b/pkgs/desktops/deepin/deepin-menu/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dtkcore, dtkwidget,
-  qt5integration, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, dtkcore
+, dtkwidget
+, qt5integration
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-menu";
@@ -34,7 +42,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin menu service";
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
index b95a76a3972..6763292b626 100644
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
@@ -1,6 +1,22 @@
-{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, pkgconfig, qttools, qtx11extras,
-  dtkcore, dtkwidget, ffmpeg, ffmpegthumbnailer, mpv, pulseaudio,
-  libdvdnav, libdvdread, xorg, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkgconfig
+, qttools
+, qtx11extras
+, dtkcore
+, dtkwidget
+, ffmpeg
+, ffmpegthumbnailer
+, mpv
+, pulseaudio
+, libdvdnav
+, libdvdread
+, xorg
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-movie-reborn";
@@ -48,7 +64,6 @@ mkDerivation rec {
 
   NIX_LDFLAGS = "-ldvdnav";
 
-
   postPatch = ''
     searchHardCodedPaths  # debugging
 
@@ -58,7 +73,7 @@ mkDerivation rec {
       --replace "Exec=deepin-movie" "Exec=$out/bin/deepin-movie"
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin movie player";
diff --git a/pkgs/desktops/deepin/deepin-screenshot/default.nix b/pkgs/desktops/deepin/deepin-screenshot/default.nix
index 9b5d47d8542..0ccc350962a 100644
--- a/pkgs/desktops/deepin/deepin-screenshot/default.nix
+++ b/pkgs/desktops/deepin/deepin-screenshot/default.nix
@@ -1,6 +1,19 @@
-{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, pkgconfig, xdg_utils, qttools, qtx11extras,
-  dtkcore, dtkwidget, dtkwm, deepin-turbo, deepin-shortcut-viewer,
-  deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkgconfig
+, xdg_utils
+, qttools
+, qtx11extras
+, dtkcore
+, dtkwidget
+, dtkwm
+, deepin-turbo
+, deepin-shortcut-viewer
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-screenshot";
@@ -48,7 +61,7 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Easy-to-use screenshot tool for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
index 479f2c86d30..76d8847b73f 100644
--- a/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
+++ b/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, dtkcore, dtkwidget,
-  qt5integration, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, dtkcore
+, dtkwidget
+, qt5integration
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-shortcut-viewer";
@@ -25,7 +33,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Pop-up shortcut viewer for Deepin applications";
diff --git a/pkgs/desktops/deepin/deepin-sound-theme/default.nix b/pkgs/desktops/deepin/deepin-sound-theme/default.nix
index a868b072506..e71c0cb77c5 100644
--- a/pkgs/desktops/deepin/deepin-sound-theme/default.nix
+++ b/pkgs/desktops/deepin/deepin-sound-theme/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchFromGitHub, deepin }:
+{ stdenv
+, fetchFromGitHub
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-sound-theme";
@@ -11,9 +14,11 @@ stdenv.mkDerivation rec {
     sha256 = "1sw4nrn7q7wk1hpicm05apyc0mihaw42iqm52wb8ib8gm1qiylr9";
   };
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin sound theme";
diff --git a/pkgs/desktops/deepin/deepin-terminal/default.nix b/pkgs/desktops/deepin/deepin-terminal/default.nix
index e51927142eb..ae312137942 100644
--- a/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ b/pkgs/desktops/deepin/deepin-terminal/default.nix
@@ -1,8 +1,39 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, ninja, vala_0_40, fetchpatch,
-  gettext, at-spi2-core, dbus, epoxy, expect, gtk3, json-glib,
-  libXdmcp, libgee, libpthreadstubs, librsvg, libsecret, libtasn1,
-  libxcb, libxkbcommon, p11-kit, pcre, vte, wnck, libselinux, gnutls, pcre2,
-  libsepol, utillinux, deepin-menu, deepin-shortcut-viewer, deepin, wrapGAppsHook }:
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, ninja
+, vala_0_40
+, fetchpatch
+, gettext
+, at-spi2-core
+, dbus
+, epoxy
+, expect
+, gtk3
+, json-glib
+, libXdmcp
+, libgee
+, libpthreadstubs
+, librsvg
+, libsecret
+, libtasn1
+, libxcb
+, libxkbcommon
+, p11-kit
+, pcre
+, vte
+, wnck
+, libselinux
+, gnutls
+, pcre2
+, libsepol
+, utillinux
+, deepin-menu
+, deepin-shortcut-viewer
+, deepin
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-terminal";
@@ -69,7 +100,7 @@ stdenv.mkDerivation rec {
     "-DVERSION=${version}"
   ];
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Default terminal emulator for Deepin";
@@ -77,7 +108,7 @@ stdenv.mkDerivation rec {
       Deepin terminal, it sharpens your focus in the world of command line!
       It is an advanced terminal emulator with workspace, multiple
       windows, remote management, quake mode and other features.
-     '';
+    '';
     homepage = "https://github.com/linuxdeepin/deepin-terminal";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/deepin/deepin-turbo/default.nix b/pkgs/desktops/deepin/deepin-turbo/default.nix
index f34997f5179..6bba51ac674 100644
--- a/pkgs/desktops/deepin/deepin-turbo/default.nix
+++ b/pkgs/desktops/deepin/deepin-turbo/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qtbase, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, qtbase
+, deepin
+}:
 
 mkDerivation rec {
   pname = "deepin-turbo";
@@ -31,7 +38,7 @@ mkDerivation rec {
     searchHardCodedPaths $out  # for debugging
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "A daemon that helps to launch applications faster";
diff --git a/pkgs/desktops/deepin/deepin-wallpapers/default.nix b/pkgs/desktops/deepin/deepin-wallpapers/default.nix
index 82f7214471f..4fa3d6043d5 100644
--- a/pkgs/desktops/deepin/deepin-wallpapers/default.nix
+++ b/pkgs/desktops/deepin/deepin-wallpapers/default.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchFromGitHub, dde-api, deepin }:
+{ stdenv
+, fetchFromGitHub
+, dde-api
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "deepin-wallpapers";
@@ -11,7 +15,10 @@ stdenv.mkDerivation rec {
     sha256 = "09cfnxbpms98ibqbi4xd51181q3az5n8rmndcdr9w12kyzniz7xv";
   };
 
-  nativeBuildInputs = [ dde-api deepin.setupHook ];
+  nativeBuildInputs = [
+    dde-api
+    deepin.setupHook
+  ];
 
   postPatch = ''
     searchHardCodedPaths # debugging
@@ -33,7 +40,7 @@ stdenv.mkDerivation rec {
       $out/var/cache/image-blur/$(echo -n $out/share/backgrounds/deepin/desktop.jpg | md5sum | cut -d " " -f 1).jpg
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Wallpapers for Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 64dbdbfd104..8d33ac154af 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -1,10 +1,16 @@
 { pkgs, makeScope, libsForQt5 }:
-
 let
   packages = self: with self; {
     setupHook = ./setup-hook.sh;
 
-    updateScript = callPackage ./update.nix { };
+    # Update script tailored to deepin packages from git repository
+    updateScript = { pname, version, src }:
+      pkgs.genericUpdater {
+        inherit pname version;
+        attrPath = "deepin.${pname}";
+        versionLister = "${pkgs.common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+        ignoredVersions = "^2014(\\.|rc)|^v[0-9]+";
+      };
 
     dbus-factory = callPackage ./dbus-factory { };
     dde-api = callPackage ./dde-api { };
@@ -56,4 +62,4 @@ let
   };
 
 in
-  makeScope libsForQt5.newScope packages
+makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/disomaster/default.nix b/pkgs/desktops/deepin/disomaster/default.nix
index a1db0673a46..758c8ff76c3 100644
--- a/pkgs/desktops/deepin/disomaster/default.nix
+++ b/pkgs/desktops/deepin/disomaster/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qtbase, libisoburn, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qtbase
+, libisoburn
+, deepin
+}:
 
 mkDerivation rec {
   pname = "disomaster";
@@ -29,7 +37,7 @@ mkDerivation rec {
        libdisomaster/libdisomaster.pro
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "A libisoburn wrapper for Qt";
diff --git a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix b/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
index 970e48941d4..2caef7ce916 100644
--- a/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
+++ b/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
@@ -1,5 +1,12 @@
-{ stdenv, fetchFromGitHub, pkgconfig, qmake, qttools, gnome3,
-  dde-polkit-agent, deepin }:
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qttools
+, gnome3
+, dde-polkit-agent
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "dpa-ext-gnomekeyring";
@@ -30,7 +37,7 @@ stdenv.mkDerivation rec {
     fixPath $out /usr dpa-ext-gnomekeyring.pro gnomekeyringextention.cpp
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "GNOME keyring extension for dde-polkit-agent";
diff --git a/pkgs/desktops/deepin/dtkcore/default.nix b/pkgs/desktops/deepin/dtkcore/default.nix
index 90b02a6d930..570b0cc2c11 100644
--- a/pkgs/desktops/deepin/dtkcore/default.nix
+++ b/pkgs/desktops/deepin/dtkcore/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, gsettings-qt, pythonPackages, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, gsettings-qt
+, pythonPackages
+, deepin
+}:
 
 mkDerivation rec {
   pname = "dtkcore";
@@ -43,7 +51,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin tool kit core library";
diff --git a/pkgs/desktops/deepin/dtkwidget/default.nix b/pkgs/desktops/deepin/dtkwidget/default.nix
index 5a3869a2db9..9be222830db 100644
--- a/pkgs/desktops/deepin/dtkwidget/default.nix
+++ b/pkgs/desktops/deepin/dtkwidget/default.nix
@@ -1,6 +1,19 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qttools, qtmultimedia,
-  qtsvg, qtx11extras, librsvg, libstartup_notification, gsettings-qt,
-  dde-qt-dbus-factory, dtkcore, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qttools
+, qtmultimedia
+, qtsvg
+, qtx11extras
+, librsvg
+, libstartup_notification
+, gsettings-qt
+, dde-qt-dbus-factory
+, dtkcore
+, deepin
+}:
 
 mkDerivation rec {
   pname = "dtkwidget";
@@ -40,7 +53,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin graphical user interface library";
diff --git a/pkgs/desktops/deepin/dtkwm/default.nix b/pkgs/desktops/deepin/dtkwm/default.nix
index ecc11feb749..56031f11492 100644
--- a/pkgs/desktops/deepin/dtkwm/default.nix
+++ b/pkgs/desktops/deepin/dtkwm/default.nix
@@ -1,4 +1,13 @@
-{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, pkgconfig, qmake, qtx11extras, dtkcore, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, qmake
+, qtx11extras
+, dtkcore
+, deepin
+}:
 
 mkDerivation rec {
   pname = "dtkwm";
@@ -37,7 +46,7 @@ mkDerivation rec {
     "LIB_INSTALL_DIR=${outRef}/lib"
   ];
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Deepin graphical user interface library";
diff --git a/pkgs/desktops/deepin/go-dbus-factory/default.nix b/pkgs/desktops/deepin/go-dbus-factory/default.nix
index 52bf8e62f1d..1c1afd9d099 100644
--- a/pkgs/desktops/deepin/go-dbus-factory/default.nix
+++ b/pkgs/desktops/deepin/go-dbus-factory/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchFromGitHub, deepin }:
+{ stdenv
+, fetchFromGitHub
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "go-dbus-factory";
@@ -11,13 +14,15 @@ stdenv.mkDerivation rec {
     sha256 = "06fqyad9f50gcjsjkh7929yyaprahdjhnd0dr4gl2797a7wysl3f";
   };
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
   postPatch = ''
     sed -i -e 's:/share/gocode:/share/go:' Makefile
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "GoLang DBus factory for the Deepin Desktop Environment";
diff --git a/pkgs/desktops/deepin/go-dbus-generator/default.nix b/pkgs/desktops/deepin/go-dbus-generator/default.nix
index 481f7eb2bc2..d0b2d8c07e6 100644
--- a/pkgs/desktops/deepin/go-dbus-generator/default.nix
+++ b/pkgs/desktops/deepin/go-dbus-generator/default.nix
@@ -1,4 +1,9 @@
-{ stdenv, fetchFromGitHub, go, go-lib, deepin }:
+{ stdenv
+, fetchFromGitHub
+, go
+, go-lib
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "go-dbus-generator";
@@ -21,7 +26,7 @@ stdenv.mkDerivation rec {
     "GOCACHE=$(TMPDIR)/go-cache"
   ];
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Convert dbus interfaces to go-lang or qml wrapper code";
diff --git a/pkgs/desktops/deepin/go-gir-generator/default.nix b/pkgs/desktops/deepin/go-gir-generator/default.nix
index f57bae89711..0c282aaa227 100644
--- a/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ b/pkgs/desktops/deepin/go-gir-generator/default.nix
@@ -1,5 +1,12 @@
-{ stdenv, fetchpatch, fetchFromGitHub, pkgconfig, go, gobject-introspection,
-  libgudev, deepin }:
+{ stdenv
+, fetchpatch
+, fetchFromGitHub
+, pkgconfig
+, go
+, gobject-introspection
+, libgudev
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "go-gir-generator";
@@ -40,7 +47,7 @@ stdenv.mkDerivation rec {
     "GOCACHE=$(TMPDIR)/go-cache"
   ];
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Generate static golang bindings for GObject";
diff --git a/pkgs/desktops/deepin/go-lib/default.nix b/pkgs/desktops/deepin/go-lib/default.nix
index 43fddf78f11..d45351fd6dc 100644
--- a/pkgs/desktops/deepin/go-lib/default.nix
+++ b/pkgs/desktops/deepin/go-lib/default.nix
@@ -1,5 +1,12 @@
-{ stdenv, fetchFromGitHub, glib, xorg, gdk-pixbuf, pulseaudio,
-  mobile-broadband-provider-info, deepin }:
+{ stdenv
+, fetchFromGitHub
+, glib
+, xorg
+, gdk-pixbuf
+, pulseaudio
+, mobile-broadband-provider-info
+, deepin
+}:
 
 stdenv.mkDerivation rec {
   pname = "go-lib";
@@ -27,7 +34,7 @@ stdenv.mkDerivation rec {
     rm -r $out/share/go/src/pkg.deepin.io/lib/debian
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Go bindings for Deepin Desktop Environment development";
diff --git a/pkgs/desktops/deepin/qcef/default.nix b/pkgs/desktops/deepin/qcef/default.nix
index 3b7207379c7..fb6bb89d939 100644
--- a/pkgs/desktops/deepin/qcef/default.nix
+++ b/pkgs/desktops/deepin/qcef/default.nix
@@ -1,12 +1,35 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools,
-  qtwebchannel, qtx11extras,
-  gnome2, nss, nspr, alsaLib, atk, cairo, cups, dbus,
-  expat, fontconfig, gdk-pixbuf, glib, gtk2,
-  libxcb, pango, pulseaudio, xorg, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, cmake
+, qtbase
+, qttools
+, qtwebchannel
+, qtx11extras
+, gnome2
+, nss
+, nspr
+, alsaLib
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, fontconfig
+, gdk-pixbuf
+, glib
+, gtk2
+, libxcb
+, pango
+, pulseaudio
+, xorg
+, deepin
+}:
 
 let
   rpahtLibraries = [
-    stdenv.cc.cc.lib  # libstdc++.so.6
+    stdenv.cc.cc.lib # libstdc++.so.6
     alsaLib
     atk
     cairo
@@ -35,9 +58,10 @@ let
     xorg.libXrender
     xorg.libXtst
   ];
+
   libPath = stdenv.lib.makeLibraryPath rpahtLibraries;
-in
 
+in
 mkDerivation rec {
   pname = "qcef";
   version = "1.1.7";
@@ -90,14 +114,14 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
 
   meta = with stdenv.lib; {
     description = "Qt5 binding of Chromium Embedded Framework";
     homepage = "https://github.com/linuxdeepin/qcef";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ];  # the cef-binary is not available
+    badPlatforms = [ "aarch64-linux" ]; # the cef-binary is not available
     maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
index 1bf069821f5..4aa10fb1a93 100644
--- a/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
+++ b/pkgs/desktops/deepin/qt5dxcb-plugin/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, qtx11extras, libSM,
-  mtdev, cairo, deepin, qtbase }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, qtx11extras
+, libSM
+, mtdev
+, cairo
+, deepin
+, qtbase
+}:
 
 mkDerivation rec {
   pname = "qt5dxcb-plugin";
@@ -43,7 +53,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
 
   meta = with stdenv.lib; {
     description = "Qt platform theme integration plugin for DDE";
diff --git a/pkgs/desktops/deepin/qt5integration/default.nix b/pkgs/desktops/deepin/qt5integration/default.nix
index ad89957ef1b..cc427611c34 100644
--- a/pkgs/desktops/deepin/qt5integration/default.nix
+++ b/pkgs/desktops/deepin/qt5integration/default.nix
@@ -1,6 +1,19 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake, mtdev,
-  lxqt, qtx11extras, qtmultimedia, qtsvg,
-  qt5dxcb-plugin, qtstyleplugins, dtkcore, dtkwidget, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, pkgconfig
+, qmake
+, mtdev
+, lxqt
+, qtx11extras
+, qtmultimedia
+, qtsvg
+, qt5dxcb-plugin
+, qtstyleplugins
+, dtkcore
+, dtkwidget
+, deepin
+}:
 
 mkDerivation rec {
   pname = "qt5integration";
@@ -40,7 +53,7 @@ mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "Qt platform theme integration plugins for DDE";
diff --git a/pkgs/desktops/deepin/startdde/default.nix b/pkgs/desktops/deepin/startdde/default.nix
index 137417f3754..7d03b00928e 100644
--- a/pkgs/desktops/deepin/startdde/default.nix
+++ b/pkgs/desktops/deepin/startdde/default.nix
@@ -1,13 +1,42 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, alsaLib,
-  coreutils, dbus-factory, dde-api, dde-daemon, dde-dock,
-  dde-file-manager, dde-polkit-agent, dde-session-ui, deepin,
-  deepin-desktop-base, deepin-desktop-schemas, deepin-turbo,
-  dde-kwin, glib, gnome3, go, go-dbus-factory, go-gir-generator,
-  go-lib, gtk3, jq, kmod, libX11, libXi, libcgroup, pciutils, psmisc,
-  pulseaudio, systemd, xorg, wrapGAppsHook }:
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, pkgconfig
+, alsaLib
+, coreutils
+, dbus-factory
+, dde-api
+, dde-daemon
+, dde-dock
+, dde-file-manager
+, dde-polkit-agent
+, dde-session-ui
+, deepin
+, deepin-desktop-base
+, deepin-desktop-schemas
+, deepin-turbo
+, dde-kwin
+, glib
+, gnome3
+, go
+, go-dbus-factory
+, go-gir-generator
+, go-lib
+, gtk3
+, jq
+, kmod
+, libX11
+, libXi
+, libcgroup
+, pciutils
+, psmisc
+, pulseaudio
+, systemd
+, xorg
+, wrapGAppsHook
+}:
 
 buildGoPackage rec {
-  name = "${pname}-${version}";
   pname = "startdde";
   version = "5.0.1";
 
@@ -120,7 +149,7 @@ buildGoPackage rec {
   '';
 
   passthru = {
-    updateScript = deepin.updateScript { inherit name; };
+    updateScript = deepin.updateScript { inherit pname version src; };
     providedSessions = [ "deepin" ];
   };
 
diff --git a/pkgs/desktops/deepin/udisks2-qt5/default.nix b/pkgs/desktops/deepin/udisks2-qt5/default.nix
index d13460a4bd5..385fedfc478 100644
--- a/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ b/pkgs/desktops/deepin/udisks2-qt5/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, mkDerivation, fetchFromGitHub, qmake, qtbase, deepin }:
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, qtbase
+, deepin
+}:
 
 mkDerivation rec {
   pname = "udisks2-qt5";
@@ -28,7 +34,7 @@ mkDerivation rec {
     searchHardCodedPaths $out
   '';
 
-  passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
+  passthru.updateScript = deepin.updateScript { inherit pname version src; };
 
   meta = with stdenv.lib; {
     description = "UDisks2 D-Bus interfaces binding for Qt5";
diff --git a/pkgs/desktops/deepin/update.nix b/pkgs/desktops/deepin/update.nix
deleted file mode 100644
index 089d9289827..00000000000
--- a/pkgs/desktops/deepin/update.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, lib, writeScript, coreutils, curl, gnugrep, gnused, jq, common-updater-scripts, nix }:
-{ name, ignored-versions ? "^2014(\\.|rc)|^v[0-9]+" }:
-
-let
-  nameAndVersion = builtins.parseDrvName name;
-  packageVersion = nameAndVersion.version;
-  packageName = nameAndVersion.name;
-  attrPath = "deepin.${packageName}";
-in
-
-writeScript "update-${packageName}" ''
-  #!${stdenv.shell}
-  set -o errexit
-  set -x
-
-  # search for the latest version of the package on github
-  PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep gnused jq ]}
-  tags=$(curl -s https://api.github.com/repos/linuxdeepin/${packageName}/tags)
-  tags=$(echo "$tags" | jq -r '.[] | .name')
-  echo "# ${name}" >> git-commits.txt
-  echo "#   available tags:" >> git-commits.txt
-  echo "$tags" | ${gnused}/bin/sed -e 's/^/#      /' >> git-commits.txt
-  if [ -n "${ignored-versions}" ]; then
-    tags=$(echo "$tags" | grep -vE "${ignored-versions}")
-  fi
-  latest_tag=$(echo "$tags" | sort --version-sort | tail -1)
-
-  # generate commands to commit the changes
-  if [ "${packageVersion}" != "$latest_tag" ]; then
-    pfile=$(EDITOR=echo ${nix}/bin/nix edit -f. ${attrPath})
-    echo "   git add $pfile " >> git-commits.txt
-    echo "   git commit -m \"${attrPath}: ${packageVersion} -> $latest_tag\"" >> git-commits.txt
-  fi
-
-  # update the nix expression
-  update-source-version "${attrPath}" "$latest_tag"
-  echo "" >> git-commits.txt
-''