about summary refs log tree commit diff
path: root/pkgs/desktops/deepin
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2023-04-09 02:20:16 +0200
committerGitHub <noreply@github.com>2023-04-09 02:20:16 +0200
commitfecdeaabb8b83757de161c00400251163fda4f7b (patch)
tree2e8adc92230a6820cc09cb434cc36bd30033ee4c /pkgs/desktops/deepin
parent62358d7322d236bc05c73955f9f71e4f17639827 (diff)
parentcd15ccf8d0b9e569ea79ce157f4c2d1ede58bf3e (diff)
Merge pull request #224016 from wineee/dde-core
Diffstat (limited to 'pkgs/desktops/deepin')
-rw-r--r--pkgs/desktops/deepin/core/dde-app-services/default.nix56
-rw-r--r--pkgs/desktops/deepin/core/dde-clipboard/default.nix73
-rw-r--r--pkgs/desktops/deepin/core/dde-dock/default.nix89
-rw-r--r--pkgs/desktops/deepin/core/dde-launcher/default.nix73
-rw-r--r--pkgs/desktops/deepin/core/dde-network-core/default.nix78
-rw-r--r--pkgs/desktops/deepin/core/dde-session-shell/default.nix112
-rw-r--r--pkgs/desktops/deepin/core/dde-session-ui/default.nix108
-rw-r--r--pkgs/desktops/deepin/default.nix7
8 files changed, 596 insertions, 0 deletions
diff --git a/pkgs/desktops/deepin/core/dde-app-services/default.nix b/pkgs/desktops/deepin/core/dde-app-services/default.nix
new file mode 100644
index 0000000000000..b6ab01e7c2b76
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-app-services/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, cmake
+, wrapQtAppsHook
+, qtbase
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-app-services";
+  version = "0.0.20";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-M9XXNV3N4CifOXitT6+UxaGsLoVuoNGqC5SO/mF+bLw=";
+  };
+
+  postPatch = ''
+    substituteInPlace dconfig-center/dde-dconfig-daemon/services/org.desktopspec.ConfigManager.service \
+      --replace "/usr/bin/dde-dconfig-daemon" "$out/bin/dde-dconfig-daemon"
+    substituteInPlace dconfig-center/dde-dconfig/main.cpp \
+      --replace "/bin/dde-dconfig-editor" "dde-dconfig-editor"
+    substituteInPlace dconfig-center/CMakeLists.txt \
+      --replace 'add_subdirectory("example")' " " \
+      --replace 'add_subdirectory("tests")'   " "
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    qt5integration
+    qt5platform-plugins
+  ];
+
+  cmakeFlags = [
+    "-DDVERSION=${version}"
+    "-DDSG_DATA_DIR=/run/current-system/sw/share/dsg"
+  ];
+
+  meta = with lib; {
+    description = "Provids dbus service for reading and writing DSG configuration";
+    homepage = "https://github.com/linuxdeepin/dde-app-services";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-clipboard/default.nix b/pkgs/desktops/deepin/core/dde-clipboard/default.nix
new file mode 100644
index 0000000000000..47ec1c837b135
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-clipboard/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, dde-qt-dbus-factory
+, gio-qt
+, cmake
+, qttools
+, kwayland
+, pkg-config
+, wrapQtAppsHook
+, glibmm
+, gtest
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-clipboard";
+  version = "5.4.25";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-oFATOBXf4NvGxjVMlfxwfQkBffeKut8ao+X6T9twb/I=";
+  };
+
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace "/etc/xdg" "$out/etc/xdg" \
+      --replace "/lib/systemd/user" "$out/lib/systemd/user" \
+      --replace "/usr/share" "$out/share"
+
+    substituteInPlace misc/com.deepin.dde.Clipboard.service \
+      --replace "/usr/bin/qdbus" "${lib.getBin qttools}/bin/qdbus"
+
+    substituteInPlace misc/{dde-clipboard.desktop,dde-clipboard-daemon.service,com.deepin.dde.Clipboard.service} \
+      --replace "/usr" "$out"
+
+    patchShebangs translate_generation.sh generate_gtest_report.sh
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    qt5integration
+    qt5platform-plugins
+    dde-qt-dbus-factory
+    gio-qt
+    kwayland
+    glibmm
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DUSE_DEEPIN_WAYLAND=OFF"
+  ];
+
+  meta = with lib; {
+    description = "DDE optional clipboard manager componment";
+    homepage = "https://github.com/linuxdeepin/dde-clipboard";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-dock/default.nix b/pkgs/desktops/deepin/core/dde-dock/default.nix
new file mode 100644
index 0000000000000..32e8ca97b6d18
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-dock/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, dde-qt-dbus-factory
+, qt5integration
+, qt5platform-plugins
+, dde-control-center
+, deepin-desktop-schemas
+, cmake
+, qttools
+, qtx11extras
+, pkg-config
+, wrapQtAppsHook
+, wrapGAppsHook
+, gsettings-qt
+, libdbusmenu
+, xorg
+, gtest
+, qtbase
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-dock";
+  version = "5.5.81";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-x8U5QPfIykaQLjwbErZiYbZC+JyPQQ+jd6MBjDQyUjs=";
+  };
+
+  postPatch = ''
+    substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp frame/controller/dockpluginscontroller.cpp \
+      --replace "/usr/lib/dde-dock/plugins" "/run/current-system/sw/lib/dde-dock/plugins"
+
+    substituteInPlace plugins/show-desktop/showdesktopplugin.cpp frame/window/components/desktop_widget.cpp \
+      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+
+    substituteInPlace plugins/{dcc-dock-plugin/settings_module.cpp,tray/system-trays/systemtrayscontroller.cpp} \
+      --replace "/usr" "$out"
+    '';
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+    wrapGAppsHook
+  ];
+  dontWrapGApps = true;
+
+  buildInputs = [
+    dtkwidget
+    qt5platform-plugins
+    dde-qt-dbus-factory
+    dde-control-center
+    deepin-desktop-schemas
+    qtx11extras
+    gsettings-qt
+    libdbusmenu
+    xorg.libXcursor
+    xorg.libXtst
+    xorg.libXdmcp
+    gtest
+  ];
+
+  outputs = [ "out" "dev" ];
+
+  cmakeFlags = [ "-DVERSION=${version}" ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    description = "Deepin desktop-environment - dock module";
+    homepage = "https://github.com/linuxdeepin/dde-dock";
+    platforms = platforms.linux;
+    license = licenses.lgpl3Plus;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-launcher/default.nix b/pkgs/desktops/deepin/core/dde-launcher/default.nix
new file mode 100644
index 0000000000000..cd73cf8dc7e0b
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-launcher/default.nix
@@ -0,0 +1,73 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, dde-qt-dbus-factory
+, qt5integration
+, qt5platform-plugins
+, cmake
+, qttools
+, qtx11extras
+, pkg-config
+, wrapQtAppsHook
+, wrapGAppsHook
+, gsettings-qt
+, gtest
+, qtbase
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-launcher";
+  version = "5.6.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Td8R91892tgJx7FLV2IZ/aPBzDb+o6EYKpk3D8On7Ag=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/boxframe/{backgroundmanager.cpp,boxframe.cpp} \
+      --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds"
+    substituteInPlace dde-launcher.desktop dde-launcher-wapper src/dbusservices/com.deepin.dde.Launcher.service \
+      --replace "/usr" "$out"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+    wrapGAppsHook
+  ];
+  dontWrapGApps = true;
+
+  buildInputs = [
+    dtkwidget
+    qt5platform-plugins
+    dde-qt-dbus-factory
+    qtx11extras
+    gsettings-qt
+    gtest
+  ];
+
+  cmakeFlags = [ "-DVERSION=${version}" ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  meta = with lib; {
+    description = "Deepin desktop-environment - Launcher module";
+    homepage = "https://github.com/linuxdeepin/dde-launcher";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-network-core/default.nix b/pkgs/desktops/deepin/core/dde-network-core/default.nix
new file mode 100644
index 0000000000000..6c192471525ed
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-network-core/default.nix
@@ -0,0 +1,78 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, qttools
+, pkg-config
+, wrapQtAppsHook
+, dtkwidget
+, dde-dock
+, dde-control-center
+, dde-session-shell
+, dde-qt-dbus-factory
+, gsettings-qt
+, gio-qt
+, networkmanager-qt
+, glib
+, pcre
+, util-linux
+, libselinux
+, libsepol
+, dbus
+, gtest
+, qtbase
+}:
+stdenv.mkDerivation rec {
+  pname = "dde-network-core";
+  version = "1.1.8";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-ysmdB9CT7mhN/0r8CRT4FQsK12HkhjbezGXwWiNScqg=";
+  };
+
+  postPatch = ''
+    substituteInPlace dock-network-plugin/networkplugin.cpp dcc-network-plugin/dccnetworkmodule.cpp dss-network-plugin/network_module.cpp \
+      --replace "/usr/share" "$out/share"
+    substituteInPlace dss-network-plugin/notification/bubbletool.cpp \
+      --replace "/usr/share" "/run/current-system/sw/share"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    qttools
+    pkg-config
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    dde-dock
+    dde-control-center
+    dde-session-shell
+    dde-qt-dbus-factory
+    gsettings-qt
+    gio-qt
+    networkmanager-qt
+    glib
+    pcre
+    util-linux
+    libselinux
+    libsepol
+    gtest
+  ];
+
+  cmakeFlags = [
+    "-DVERSION=${version}"
+  ];
+
+  meta = with lib; {
+    description = "DDE network library framework";
+    homepage = "https://github.com/linuxdeepin/dde-network-core";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-session-shell/default.nix b/pkgs/desktops/deepin/core/dde-session-shell/default.nix
new file mode 100644
index 0000000000000..ac5f5fbc7ec0e
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-session-shell/default.nix
@@ -0,0 +1,112 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, linkFarm
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, dde-qt-dbus-factory
+, cmake
+, pkg-config
+, qttools
+, qtx11extras
+, wrapQtAppsHook
+, wrapGAppsHook
+, gsettings-qt
+, lightdm_qt
+, linux-pam
+, xorg
+, kwayland
+, gtest
+, xkeyboard_config
+, dbus
+, qtbase
+, dde-session-shell
+}:
+stdenv.mkDerivation rec {
+  pname = "dde-session-shell";
+  version = "5.6.4";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-mrdGu4t86d3No23IrnjypVLx1jxaySatr0xPMY9l5S4";
+  };
+
+  postPatch = ''
+    substituteInPlace src/lightdm-deepin-greeter/greeterworker.cpp \
+      --replace "/usr/include/shadow.h" "shadow.h"
+
+    substituteInPlace scripts/lightdm-deepin-greeter files/wayland/lightdm-deepin-greeter-wayland \
+      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+
+    substituteInPlace src/session-widgets/auth_module.h \
+      --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+
+    substituteInPlace src/global_util/plugin_manager/modules_loader.cpp \
+      --replace "/usr/lib/dde-session-shell/modules" "/run/current-system/sw/lib/dde-session-shell/modules"
+
+    substituteInPlace src/{session-widgets/{lockcontent.cpp,userinfo.cpp},widgets/fullscreenbackground.cpp} \
+      --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds"
+
+    substituteInPlace src/global_util/xkbparser.h \
+      --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
+
+    substituteInPlace files/{com.deepin.dde.shutdownFront.service,com.deepin.dde.lockFront.service} \
+      --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \
+      --replace "/usr/share" "$out/share"
+
+    substituteInPlace src/global_util/{public_func.cpp,constants.h} scripts/lightdm-deepin-greeter files/{dde-lock.desktop,lightdm-deepin-greeter.desktop,wayland/lightdm-deepin-greeter-wayland.desktop} \
+      --replace "/usr" "$out"
+
+    patchShebangs files/deepin-greeter
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    wrapQtAppsHook
+    wrapGAppsHook
+  ];
+  dontWrapGApps = true;
+
+  buildInputs = [
+    dtkwidget
+    qt5platform-plugins
+    dde-qt-dbus-factory
+    gsettings-qt
+    lightdm_qt
+    qtx11extras
+    linux-pam
+    kwayland
+    xorg.libXcursor
+    xorg.libXtst
+    xorg.libXrandr
+    xorg.libXdmcp
+    gtest
+  ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  passthru.xgreeters = linkFarm "deepin-greeter-xgreeters" [{
+    path = "${dde-session-shell}/share/xgreeters/lightdm-deepin-greeter.desktop";
+    name = "lightdm-deepin-greeter.desktop";
+  }];
+
+  meta = with lib; {
+    description = "Deepin desktop-environment - session-shell module";
+    homepage = "https://github.com/linuxdeepin/dde-session-shell";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/core/dde-session-ui/default.nix b/pkgs/desktops/deepin/core/dde-session-ui/default.nix
new file mode 100644
index 0000000000000..d07389c6646eb
--- /dev/null
+++ b/pkgs/desktops/deepin/core/dde-session-ui/default.nix
@@ -0,0 +1,108 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, dtkwidget
+, qt5integration
+, qt5platform-plugins
+, pkg-config
+, cmake
+, dde-dock
+, dde-qt-dbus-factory
+, deepin-gettext-tools
+, gsettings-qt
+, lightdm_qt
+, qttools
+, qtx11extras
+, util-linux
+, xorg
+, pcre
+, libselinux
+, libsepol
+, wrapQtAppsHook
+, gtest
+, xkeyboard_config
+, qtbase
+, dbus
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dde-session-ui";
+  version = "5.6.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-3lW/M07b6gXzGcvQYB+Ojqdq7TfJBaMIKfmfG7o3wWg=";
+  };
+
+  postPatch = ''
+    substituteInPlace widgets/fullscreenbackground.cpp \
+      --replace "/usr/share/backgrounds" "/run/current-system/sw/share/backgrounds" \
+      --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
+
+    substituteInPlace global_util/xkbparser.h \
+      --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
+
+    substituteInPlace dde-warning-dialog/com.deepin.dde.WarningDialog.service dde-osd/files/dde-osd.desktop dde-welcome/com.deepin.dde.welcome.service \
+      --replace "/usr/lib/deepin-daemon" "/run/current-system/sw/lib/deepin-daemon"
+
+    substituteInPlace dde-osd/notification/bubbletool.cpp \
+      --replace "/usr/share" "/run/current-system/sw/share"
+
+    substituteInPlace dde-osd/files/{com.deepin.dde.Notification.service,com.deepin.dde.freedesktop.Notification.service,com.deepin.dde.osd.service} \
+      --replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \
+      --replace "/usr/share" "$out/share"
+
+     substituteInPlace dde-lowpower/main.cpp dmemory-warning-dialog/main.cpp dde-touchscreen-dialog/main.cpp dnetwork-secret-dialog/main.cpp dde-suspend-dialog/main.cpp \
+    dde-warning-dialog/main.cpp dde-bluetooth-dialog/main.cpp dde-welcome/main.cpp dde-hints-dialog/main.cpp dde-osd/main.cpp dde-wm-chooser/main.cpp \
+    dde-license-dialog/{content.cpp,main.cpp} dmemory-warning-dialog/com.deepin.dde.MemoryWarningDialog.service \
+      --replace "/usr" "$out"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    qttools
+    deepin-gettext-tools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    dtkwidget
+    qt5platform-plugins
+    dde-dock
+    dde-qt-dbus-factory
+    gsettings-qt
+    qtx11extras
+    pcre
+    xorg.libXdmcp
+    util-linux
+    libselinux
+    libsepol
+    gtest
+  ];
+
+  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
+  qtWrapperArgs = [
+    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
+  ];
+
+  preFixup = ''
+    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
+  postFixup = ''
+    for binary in $out/lib/deepin-daemon/*; do
+      wrapProgram $binary "''${qtWrapperArgs[@]}"
+    done
+  '';
+
+  meta = with lib; {
+    description = "Deepin desktop-environment - Session UI module";
+    homepage = "https://github.com/linuxdeepin/dde-session-ui";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = teams.deepin.members;
+  };
+}
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index aed6d2317d7cc..cc6b5a923cddb 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -32,8 +32,15 @@ let
     util-dfm = callPackage ./library/util-dfm { };
 
     #### CORE
+    dde-app-services = callPackage ./core/dde-app-services { };
     dde-control-center = callPackage ./core/dde-control-center { };
     dde-calendar = callPackage ./core/dde-calendar { };
+    dde-clipboard = callPackage ./core/dde-clipboard { };
+    dde-dock = callPackage ./core/dde-dock { };
+    dde-launcher = callPackage ./core/dde-launcher { };
+    dde-network-core = callPackage ./core/dde-network-core { };
+    dde-session-shell = callPackage ./core/dde-session-shell { };
+    dde-session-ui = callPackage ./core/dde-session-ui { };
     dde-polkit-agent = callPackage ./core/dde-polkit-agent { };
     dpa-ext-gnomekeyring = callPackage ./core/dpa-ext-gnomekeyring { };