From 910d7035d79aad8879bf76103fecc2de1f5b97c3 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 15:35:08 +0800
Subject: [PATCH 01/18] maintainers: add deepin team

---
 maintainers/team-list.nix | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index b37d2d0a28a0..1851128b1104 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -168,6 +168,15 @@ with lib.maintainers; {
     shortName = "Cosmopolitan";
   };
 
+  deepin = {
+    members = [
+      rewine
+    ];
+    scope = "Maintain deepin desktop environment and related packages.";
+    shortName = "DDE";
+    enableFeatureFreezePing = true;
+  };
+
   deshaw = {
     # Verify additions to this team with at least one already existing member of the team.
     members = [

From f2ab2d558c274ba37f278c87baa843bd28ed5328 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 15:37:54 +0800
Subject: [PATCH 02/18] aliases.nix: remove aliases of deepin

---
 pkgs/top-level/aliases.nix | 1 -
 1 file changed, 1 deletion(-)

diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 872b74a79d48..ba11d3618caf 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -341,7 +341,6 @@ mapAliases ({
 
   debian_devscripts = throw "'debian_devscripts' has been renamed to/replaced by 'debian-devscripts'"; # Converted to throw 2022-02-22
   debugedit-unstable = debugedit; # Added 2021-11-22
-  deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
   deepspeech = throw "deepspeech was removed in favor of stt. https://github.com/NixOS/nixpkgs/issues/119496"; # added 2021-05-05
   deisctl = throw "deisctl was removed ; the service does not exist anymore"; # added 2022-02-06
   deis = throw "deis was removed ; the service does not exist anymore"; # added 2022-02-06

From 099caac0a827e3b0a20521728653dd77d80a362b Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 15:39:59 +0800
Subject: [PATCH 03/18] nixos/modules/rename: dont set deepin as a removed
 module

---
 nixos/modules/rename.nix | 1 -
 1 file changed, 1 deletion(-)

diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index d88baac7a5d4..7ad7c505f39a 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -49,7 +49,6 @@ with lib;
     (mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "couchpotato" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "dd-agent" ] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.")
-    (mkRemovedOptionModule [ "services" "deepin" ] "The corresponding packages were removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
     (mkRemovedOptionModule [ "services" "firefox" "syncserver" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "flashpolicyd" ] "The flashpolicyd module has been removed. Adobe Flash Player is deprecated.")

From c7742aa032f590cd3e52f86f581a00b51e209a00 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 15:51:54 +0800
Subject: [PATCH 04/18] deepin: init at 20.8

---
 pkgs/desktops/deepin/default.nix | 10 ++++++++++
 pkgs/top-level/all-packages.nix  |  2 ++
 2 files changed, 12 insertions(+)
 create mode 100644 pkgs/desktops/deepin/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
new file mode 100644
index 000000000000..98a1daadfe2d
--- /dev/null
+++ b/pkgs/desktops/deepin/default.nix
@@ -0,0 +1,10 @@
+{ lib, pkgs, libsForQt5 }:
+let
+  packages = self:
+  let
+    inherit (self) callPackage;
+  in {
+
+  };
+in
+lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b15a51fbcb9a..526ee30534a0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -35393,6 +35393,8 @@ with pkgs;
   cinnamon = recurseIntoAttrs (callPackage ../desktops/cinnamon { });
   inherit (cinnamon) mint-x-icons mint-y-icons;
 
+  deepin = recurseIntoAttrs (callPackage ../desktops/deepin { });
+
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment { });
 
   gnome2 = recurseIntoAttrs (callPackage ../desktops/gnome-2 { });

From 021437ea7bd4d20e9ad5b5766c71096f4531b54c Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:19:55 +0800
Subject: [PATCH 05/18] dtkcommon: init at 5.6.3

---
 pkgs/desktops/deepin/default.nix              |  3 +-
 .../deepin/library/dtkcommon/default.nix      | 45 +++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/desktops/deepin/library/dtkcommon/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 98a1daadfe2d..1f111e11242e 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -4,7 +4,8 @@ let
   let
     inherit (self) callPackage;
   in {
-
+    #### LIBRARIES
+    dtkcommon = callPackage ./library/dtkcommon { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/dtkcommon/default.nix b/pkgs/desktops/deepin/library/dtkcommon/default.nix
new file mode 100644
index 000000000000..24e22e99c502
--- /dev/null
+++ b/pkgs/desktops/deepin/library/dtkcommon/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, cmake
+, qtbase
+, qttools
+, wrapQtAppsHook
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dtkcommon";
+  version = "5.6.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-9gFJ0Uun0q/XVaegxTUu4Kkc+/GE09eAV68VZgWurrM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [ qtbase ];
+
+  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  preFixup = ''
+    glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"}
+  '';
+
+  meta = with lib; {
+    description = "A public project for building DTK Library";
+    homepage = "https://github.com/linuxdeepin/dtkcommon";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 919157fcbd75fb5552c4b8494a1768e890e4065a Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:27:24 +0800
Subject: [PATCH 06/18] dtkcore: init at 5.6.3

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/dtkcore/default.nix        | 55 +++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/dtkcore/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 1f111e11242e..f61c139497d1 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -6,6 +6,7 @@ let
   in {
     #### LIBRARIES
     dtkcommon = callPackage ./library/dtkcommon { };
+    dtkcore = callPackage ./library/dtkcore { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/dtkcore/default.nix b/pkgs/desktops/deepin/library/dtkcore/default.nix
new file mode 100644
index 000000000000..282d079570d3
--- /dev/null
+++ b/pkgs/desktops/deepin/library/dtkcore/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, cmake
+, gsettings-qt
+, wrapQtAppsHook
+, lshw
+, dtkcommon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dtkcore";
+  version = "5.6.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-DEpo/eKMjtTVGEkq5JofkRNSHtTOZ1t2QNjrdulUtPQ=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/dsysinfo.cpp \
+      --replace "/usr/share/deepin/distribution.info" "/etc/distribution.info" \
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    gsettings-qt
+    lshw
+  ];
+
+  propagatedBuildInputs = [ dtkcommon ];
+
+  cmakeFlags = [
+    "-DDVERSION=${version}"
+    "-DBUILD_DOCS=OFF"
+    "-DDSG_PREFIX_PATH='/run/current-system/sw'"
+    "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules"
+  ];
+
+  meta = with lib; {
+    description = "Deepin tool kit core library";
+    homepage = "https://github.com/linuxdeepin/dtkcore";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 056add9b3f1dfad86540fdf35535c393c4098620 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:34:02 +0800
Subject: [PATCH 07/18] dtkgui: init at 5.6.3

---
 pkgs/desktops/deepin/default.nix              |  2 +
 .../deepin/library/dtkgui/default.nix         | 57 +++++++++++++++++++
 2 files changed, 59 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/dtkgui/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index f61c139497d1..fe0f073a3ad3 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -7,6 +7,8 @@ let
     #### LIBRARIES
     dtkcommon = callPackage ./library/dtkcommon { };
     dtkcore = callPackage ./library/dtkcore { };
+    dtkgui = callPackage ./library/dtkgui { };
+
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/dtkgui/default.nix b/pkgs/desktops/deepin/library/dtkgui/default.nix
new file mode 100644
index 000000000000..0cc40768285a
--- /dev/null
+++ b/pkgs/desktops/deepin/library/dtkgui/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, cmake
+, qttools
+, wrapQtAppsHook
+, librsvg
+, lxqt
+, dtkcore
+, qtimageformats
+, freeimage
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dtkgui";
+  version = "5.6.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-r6ZwGPiK6CcKEg8RoHV07wJbQI3idJFV3WFtuKim8n4=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    lxqt.libqtxdg
+  ];
+
+  propagatedBuildInputs = [
+    dtkcore
+    librsvg
+    qtimageformats
+    freeimage
+  ];
+
+  cmakeFlags = [
+    "-DDVERSION=${version}"
+    "-DBUILD_DOCS=OFF"
+    "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules"
+  ];
+
+  meta = with lib; {
+    description = "Deepin Toolkit, gui module for DDE look and feel";
+    homepage = "https://github.com/linuxdeepin/dtkgui";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 0bdd362cd14b402415a8ddbc26e1813a94c0510f Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:36:30 +0800
Subject: [PATCH 08/18] dtkwidget: init at 5.6.3

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/dtkwidget/default.nix      | 67 +++++++++++++++++++
 2 files changed, 68 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/dtkwidget/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index fe0f073a3ad3..a356e98d6444 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -8,6 +8,7 @@ let
     dtkcommon = callPackage ./library/dtkcommon { };
     dtkcore = callPackage ./library/dtkcore { };
     dtkgui = callPackage ./library/dtkgui { };
+    dtkwidget = callPackage ./library/dtkwidget { };
 
   };
 in
diff --git a/pkgs/desktops/deepin/library/dtkwidget/default.nix b/pkgs/desktops/deepin/library/dtkwidget/default.nix
new file mode 100644
index 000000000000..170ae821eba2
--- /dev/null
+++ b/pkgs/desktops/deepin/library/dtkwidget/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkgui
+, pkg-config
+, cmake
+, qttools
+, qtmultimedia
+, qtsvg
+, qtx11extras
+, wrapQtAppsHook
+, cups
+, gsettings-qt
+, libstartup_notification
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dtkwidget";
+  version = "5.6.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-APk2p8pdLsaKvPp95HtEI1F1LM4ySUL+fhGsC5vHasU=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/widgets/dapplication.cpp \
+      --replace "auto dataDirs = DStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);" \
+                "auto dataDirs = DStandardPaths::standardLocations(QStandardPaths::GenericDataLocation) << \"$out/share\";"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtmultimedia
+    qtsvg
+    qtx11extras
+    cups
+    gsettings-qt
+    libstartup_notification
+    xorg.libXdmcp
+  ];
+
+  propagatedBuildInputs = [ dtkgui ];
+
+  cmakeFlags = [
+    "-DDVERSION=${version}"
+    "-DBUILD_DOCS=OFF"
+    "-DMKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs/modules"
+  ];
+
+  meta = with lib; {
+    description = "Deepin graphical user interface library";
+    homepage = "https://github.com/linuxdeepin/dtkwidget";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 9ac7f410a96ca909ec2c12ad5a5840f949f08373 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:41:14 +0800
Subject: [PATCH 09/18] qt5platform-plugins: init at 5.6.3

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../library/qt5platform-plugins/default.nix   | 55 +++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/qt5platform-plugins/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index a356e98d6444..e1fb4592f9e7 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -9,6 +9,7 @@ let
     dtkcore = callPackage ./library/dtkcore { };
     dtkgui = callPackage ./library/dtkgui { };
     dtkwidget = callPackage ./library/dtkwidget { };
+    qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
 
   };
 in
diff --git a/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix b/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix
new file mode 100644
index 000000000000..6ebe542398b7
--- /dev/null
+++ b/pkgs/desktops/deepin/library/qt5platform-plugins/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, qmake
+, pkg-config
+, qtbase
+, qtx11extras
+, wrapQtAppsHook
+, mtdev
+, cairo
+, xorg
+, waylandSupport ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "qt5platform-plugins";
+  version = "5.6.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-AySltMI9x5mfquy532h1QfGpfwSfI9+h6BtIHPyNWGk=";
+  };
+
+  ## https://github.com/linuxdeepin/qt5platform-plugins/pull/119
+  postPatch = ''
+    rm -r xcb/libqt5xcbqpa-dev/
+    mkdir -p xcb/libqt5xcbqpa-dev/${qtbase.version}
+    cp -r ${qtbase.src}/src/plugins/platforms/xcb/*.h xcb/libqt5xcbqpa-dev/${qtbase.version}/
+  '';
+
+  nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
+
+  buildInputs = [
+    mtdev
+    cairo
+    qtbase
+    qtx11extras
+    xorg.libSM
+  ];
+
+  qmakeFlags = [
+    "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
+  ]
+  ++ lib.optional (!waylandSupport) [ "CONFIG+=DISABLE_WAYLAND" ];
+
+  meta = with lib; {
+    description = "Qt platform plugins for DDE";
+    homepage = "https://github.com/linuxdeepin/qt5platform-plugins";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 88d1f28740fd9f50318981f1d2064a33cbca7b83 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:46:20 +0800
Subject: [PATCH 10/18] qt5integration: init at 5.6.4

---
 pkgs/desktops/deepin/default.nix              |  3 +-
 .../deepin/library/qt5integration/default.nix | 55 +++++++++++++++++++
 2 files changed, 57 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/desktops/deepin/library/qt5integration/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index e1fb4592f9e7..2ebdf84e4877 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -10,7 +10,8 @@ let
     dtkgui = callPackage ./library/dtkgui { };
     dtkwidget = callPackage ./library/dtkwidget { };
     qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
-
+    qt5integration = callPackage ./library/qt5integration { };
+    
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/qt5integration/default.nix b/pkgs/desktops/deepin/library/qt5integration/default.nix
new file mode 100644
index 000000000000..af34c6cfb766
--- /dev/null
+++ b/pkgs/desktops/deepin/library/qt5integration/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, qmake
+, qtbase
+, qtsvg
+, pkg-config
+, wrapQtAppsHook
+, qtx11extras
+, qt5platform-plugins
+, lxqt
+, mtdev
+, xorg
+, gtest
+}:
+
+stdenv.mkDerivation rec {
+  pname = "qt5integration";
+  version = "5.6.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-GXxPoBM4tlWezTfv/f+/IJezzcAsuMbr/OOGaSOpn2g=";
+  };
+
+  nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
+
+  buildInputs = [
+    dtkwidget
+    qtx11extras
+    qt5platform-plugins
+    mtdev
+    lxqt.libqtxdg
+    xorg.xcbutilrenderutil
+    gtest
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/${qtbase.qtPluginPrefix}
+    cp -r bin/plugins/* $out/${qtbase.qtPluginPrefix}/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Qt platform theme integration plugins for DDE";
+    homepage = "https://github.com/linuxdeepin/qt5integration";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 7d5b5077b87c7d6d1abf2cba6f28d612880fd9e2 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:57:40 +0800
Subject: [PATCH 11/18] disomaster: init at 5.0.8

---
 pkgs/desktops/deepin/default.nix              |  2 +-
 .../deepin/library/disomaster/default.nix     | 40 +++++++++++++++++++
 2 files changed, 41 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/desktops/deepin/library/disomaster/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 2ebdf84e4877..999b4d897b47 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -11,7 +11,7 @@ let
     dtkwidget = callPackage ./library/dtkwidget { };
     qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
     qt5integration = callPackage ./library/qt5integration { };
-    
+    disomaster = callPackage ./library/disomaster { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/disomaster/default.nix b/pkgs/desktops/deepin/library/disomaster/default.nix
new file mode 100644
index 000000000000..3f65505e0af5
--- /dev/null
+++ b/pkgs/desktops/deepin/library/disomaster/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, qmake
+, qttools
+, wrapQtAppsHook
+, libisoburn
+}:
+
+stdenv.mkDerivation rec {
+  pname = "disomaster";
+  version = "5.0.8";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-wN8mhddqqzYXkT6rRWsHVCWzaG2uRcF2iiFHlZx2LfY=";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [ libisoburn ];
+
+  qmakeFlags = [ "VERSION=${version}" ];
+
+  meta = with lib; {
+    description = "A libisoburn wrapper class for Qt";
+    homepage = "https://github.com/linuxdeepin/disomaster";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 211d1584cea09649a67ff9ab884d2b3c68746d68 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 16:59:32 +0800
Subject: [PATCH 12/18] docparser: init at 1.0.3

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/docparser/default.nix      | 40 +++++++++++++++++++
 2 files changed, 41 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/docparser/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 999b4d897b47..4225cdd48e70 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -12,6 +12,7 @@ let
     qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
     qt5integration = callPackage ./library/qt5integration { };
     disomaster = callPackage ./library/disomaster { };
+    docparser = callPackage ./library/docparser { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/docparser/default.nix b/pkgs/desktops/deepin/library/docparser/default.nix
new file mode 100644
index 000000000000..8605a0d214b7
--- /dev/null
+++ b/pkgs/desktops/deepin/library/docparser/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, pkg-config
+, qmake
+, qttools
+, wrapQtAppsHook
+, poppler
+}:
+
+stdenv.mkDerivation rec {
+  pname = "docparser";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-iWRWSu8fALTTLLWdQGbpunN/1tpvKxuN/ZWJg34x0mU=";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [ poppler ];
+
+  qmakeFlags = [ "VERSION=${version}" ];
+
+  meta = with lib; {
+    description = "A document parser library ported from document2html";
+    homepage = "https://github.com/linuxdeepin/docparser";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From f45d637b6ac85192d41997ff8438d3aaab1f4772 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 17:10:01 +0800
Subject: [PATCH 13/18] dde-qt-dbus-factory: init at 5.5.22

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../library/dde-qt-dbus-factory/default.nix   | 53 +++++++++++++++++++
 2 files changed, 54 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 4225cdd48e70..69ecdb4a8150 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -11,6 +11,7 @@ let
     dtkwidget = callPackage ./library/dtkwidget { };
     qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
     qt5integration = callPackage ./library/qt5integration { };
+    dde-qt-dbus-factory = callPackage ./library/dde-qt-dbus-factory { };
     disomaster = callPackage ./library/disomaster { };
     docparser = callPackage ./library/docparser { };
   };
diff --git a/pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix b/pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix
new file mode 100644
index 000000000000..ef302c5b7222
--- /dev/null
+++ b/pkgs/desktops/deepin/library/dde-qt-dbus-factory/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, qmake
+, qtbase
+, wrapQtAppsHook
+, python3
+, dtkcore
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-qt-dbus-factory";
+  version = "5.5.22";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-jqk04S+i3py3rVJcHmkPKHsU+eNEN1yoUBBlfXBbcwM=";
+  };
+
+  nativeBuildInputs = [
+    qmake
+    wrapQtAppsHook
+    python3
+  ];
+
+  buildInputs = [
+    qtbase
+    dtkcore
+  ];
+
+  qmakeFlags = [
+    "INSTALL_ROOT=${placeholder "out"}"
+    "LIB_INSTALL_DIR=${placeholder "out"}/lib"
+  ];
+
+  postPatch = ''
+    substituteInPlace libdframeworkdbus/libdframeworkdbus.pro \
+     --replace "/usr" ""
+
+    substituteInPlace libdframeworkdbus/DFrameworkdbusConfig.in \
+      --replace "/usr/include" "$out/include"
+  '';
+
+  meta = with lib; {
+    description = "Repo of auto-generated D-Bus source code which DDE used";
+    homepage = "https://github.com/linuxdeepin/dde-qt-dbus-factory";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From e4352b39a9e2e98984afa54e87553aaf233b4958 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 17:13:35 +0800
Subject: [PATCH 14/18] gio-qt: init at 0.0.11

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/gio-qt/default.nix         | 42 +++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/gio-qt/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 69ecdb4a8150..9081f1c17306 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -14,6 +14,7 @@ let
     dde-qt-dbus-factory = callPackage ./library/dde-qt-dbus-factory { };
     disomaster = callPackage ./library/disomaster { };
     docparser = callPackage ./library/docparser { };
+    gio-qt = callPackage ./library/gio-qt { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/gio-qt/default.nix b/pkgs/desktops/deepin/library/gio-qt/default.nix
new file mode 100644
index 000000000000..a38e89bfc5bd
--- /dev/null
+++ b/pkgs/desktops/deepin/library/gio-qt/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wrapQtAppsHook
+, glibmm
+, doxygen
+, buildDocs ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gio-qt";
+  version = "0.0.11";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dlY1CTlXywgGZUonBBe3cDwx8h2xXrPY6Ft/D59nlug=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DPROJECT_VERSION=${version}"
+  ]
+  ++ lib.optional (!buildDocs) [ "-DBUILD_DOCS=OFF" ];
+
+  buildInputs = lib.optional buildDocs doxygen;
+
+  propagatedBuildInputs = [ glibmm ];
+
+  meta = with lib; {
+    description = "Gio wrapper for Qt applications";
+    homepage = "https://github.com/linuxdeepin/gio-qt";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 70fc129915e13885caa26493da3869e86cfd94af Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 17:16:48 +0800
Subject: [PATCH 15/18] image-editor: init at 1.0.24

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/image-editor/default.nix   | 69 +++++++++++++++++++
 2 files changed, 70 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/image-editor/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 9081f1c17306..d23909bba0a1 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -15,6 +15,7 @@ let
     disomaster = callPackage ./library/disomaster { };
     docparser = callPackage ./library/docparser { };
     gio-qt = callPackage ./library/gio-qt { };
+    image-editor = callPackage ./library/image-editor { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/image-editor/default.nix b/pkgs/desktops/deepin/library/image-editor/default.nix
new file mode 100644
index 000000000000..ec5f3568fbd6
--- /dev/null
+++ b/pkgs/desktops/deepin/library/image-editor/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, fetchpatch
+, dtkwidget
+, cmake
+, qttools
+, pkg-config
+, wrapQtAppsHook
+, opencv
+, freeimage
+, libmediainfo
+, ffmpegthumbnailer
+, pcre
+}:
+
+stdenv.mkDerivation rec {
+  pname = "image-editor";
+  version = "1.0.24";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-0p/aicuBfaEyvfZomnz49IJLospWIdl23ZreDe+Bzqc=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "feat_check_PREFIX_value_before_set";
+      url = "https://github.com/linuxdeepin/image-editor/commit/dae86e848cf53ba0ece879d81e8d5335d61a7473.patch";
+      sha256 = "sha256-lxmR+nIrMWVyhl1jpA17x2yqJ40h5vnpqKKcjd8j9RY=";
+    })
+    (fetchpatch {
+      name = "feat_use_FULL_install_path";
+      url = "https://github.com/linuxdeepin/image-editor/commit/855ae53a0444ac628aa0fe893932df6263b82e2e.patch";
+      sha256 = "sha256-3Dynlwl/l/b6k6hOHjTdoDQ/VGBDfyRz9b8QY8FEsCc=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace libimageviewer/service/ffmpegvideothumbnailer.cpp \
+        --replace 'libPath("libffmpegthumbnailer.so")'  'QString("${ffmpegthumbnailer.out}/lib/libffmpegthumbnailer.so")'
+
+    substituteInPlace libimageviewer/CMakeLists.txt --replace '/usr' '$out'
+    substituteInPlace libimagevisualresult/CMakeLists.txt --replace '/usr' '$out'
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config qttools wrapQtAppsHook ];
+
+  buildInputs = [
+    dtkwidget
+    opencv
+    freeimage
+    libmediainfo
+    ffmpegthumbnailer
+    pcre
+  ];
+
+  cmakeFlags = [ "-DVERSION=${version}" ];
+
+  meta = with lib; {
+    description = "Image editor lib for dtk";
+    homepage = "https://github.com/linuxdeepin/image-editor";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From b1bda0a354c82a804e229bf23b5fdb2f4cc24dfb Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 17:20:32 +0800
Subject: [PATCH 16/18] udisks2-qt5: init at 5.0.6

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/udisks2-qt5/default.nix    | 34 +++++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/udisks2-qt5/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index d23909bba0a1..660004821345 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -16,6 +16,7 @@ let
     docparser = callPackage ./library/docparser { };
     gio-qt = callPackage ./library/gio-qt { };
     image-editor = callPackage ./library/image-editor { };
+    udisks2-qt5 = callPackage ./library/udisks2-qt5 { };
   };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/deepin/library/udisks2-qt5/default.nix b/pkgs/desktops/deepin/library/udisks2-qt5/default.nix
new file mode 100644
index 000000000000..84321809ebeb
--- /dev/null
+++ b/pkgs/desktops/deepin/library/udisks2-qt5/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, qmake
+, pkg-config
+, wrapQtAppsHook
+, udisks
+}:
+
+stdenv.mkDerivation rec {
+  pname = "udisks2-qt5";
+  version = "5.0.6";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-WS4fmqEYXi5dkn8RvyJBzy3+r+UgFcGDFFpQlbblLu4=";
+  };
+
+  nativeBuildInputs = [ qmake pkg-config wrapQtAppsHook ];
+
+  buildInputs = [ udisks ];
+
+  qmakeFlags = [ "VERSION=${version}" ];
+
+  meta = with lib; {
+    description = "UDisks2 D-Bus interfaces binding for Qt5";
+    homepage = "https://github.com/linuxdeepin/udisks2-qt5";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From b904688e476f250561250c2c32ac4594b9f408cb Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 17:23:46 +0800
Subject: [PATCH 17/18] deepin-wayland-protocols: init 1.6.0-deepin.1.2

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin-wayland-protocols/default.nix      | 31 +++++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index 660004821345..bb46234092ac 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -11,6 +11,7 @@ let
     dtkwidget = callPackage ./library/dtkwidget { };
     qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
     qt5integration = callPackage ./library/qt5integration { };
+    deepin-wayland-protocols = callPackage ./library/deepin-wayland-protocols { };
     dde-qt-dbus-factory = callPackage ./library/dde-qt-dbus-factory { };
     disomaster = callPackage ./library/disomaster { };
     docparser = callPackage ./library/docparser { };
diff --git a/pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix b/pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix
new file mode 100644
index 000000000000..ad3dce815c91
--- /dev/null
+++ b/pkgs/desktops/deepin/library/deepin-wayland-protocols/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+}:
+
+stdenv.mkDerivation rec {
+  pname = "deepin-wayland-protocols";
+  version = "1.6.0-deepin.1.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-8Im3CueC8sYA5mwRU/Z7z8HA4mPQvVSqcTD813QCYxo=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  meta = with lib; {
+    description = "XML files of the non-standard wayland protocols use in deepin";
+    homepage = "https://github.com/linuxdeepin/deepin-wayland-protocols";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}

From 69f53fac1f417c25444405ffe6f7de0a3e1ad9f4 Mon Sep 17 00:00:00 2001
From: rewine <luhongxu@deepin.org>
Date: Sat, 7 Jan 2023 17:26:03 +0800
Subject: [PATCH 18/18] dwayland: init at 5.24.3-deepin.1.4

---
 pkgs/desktops/deepin/default.nix              |  1 +
 .../deepin/library/dwayland/default.nix       | 48 +++++++++++++++++++
 2 files changed, 49 insertions(+)
 create mode 100644 pkgs/desktops/deepin/library/dwayland/default.nix

diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index bb46234092ac..9711fe514806 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -12,6 +12,7 @@ let
     qt5platform-plugins = callPackage ./library/qt5platform-plugins { };
     qt5integration = callPackage ./library/qt5integration { };
     deepin-wayland-protocols = callPackage ./library/deepin-wayland-protocols { };
+    dwayland = callPackage ./library/dwayland { };
     dde-qt-dbus-factory = callPackage ./library/dde-qt-dbus-factory { };
     disomaster = callPackage ./library/disomaster { };
     docparser = callPackage ./library/docparser { };
diff --git a/pkgs/desktops/deepin/library/dwayland/default.nix b/pkgs/desktops/deepin/library/dwayland/default.nix
new file mode 100644
index 000000000000..a1797344a0b0
--- /dev/null
+++ b/pkgs/desktops/deepin/library/dwayland/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, qtbase
+, qtwayland
+, wayland
+, wayland-protocols
+, extra-cmake-modules
+, deepin-wayland-protocols
+, qttools
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dwayland";
+  version = "5.24.3-deepin.1.4";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-/aWS4uvhxi9azxJWjRE+Bw+veURFO+mC8l9yypseclU=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    qttools
+  ];
+
+  buildInputs = [
+    qtbase
+    qtwayland
+    wayland
+    wayland-protocols
+    deepin-wayland-protocols
+  ];
+
+  dontWrapQtApps = true;
+
+  meta = with lib; {
+    description = "Qt-style API to interact with the wayland-client and wayland-server";
+    homepage = "https://github.com/linuxdeepin/dwayland";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}