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 000000000000..b6ab01e7c2b7 --- /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 000000000000..47ec1c837b13 --- /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 000000000000..32e8ca97b6d1 --- /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 000000000000..cd73cf8dc7e0 --- /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 000000000000..6c192471525e --- /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 000000000000..ac5f5fbc7ec0 --- /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 000000000000..d07389c6646e --- /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 aed6d2317d7c..cc6b5a923cdd 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 { };