diff options
author | José Romildo Malaquias <malaquias@gmail.com> | 2019-05-02 16:20:01 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-02 16:20:01 -0300 |
commit | ea1d5959ff65adba36a101dc1e21e1c4b417d397 (patch) | |
tree | f492df334a2246267002af6e38d12956316b8b9e | |
parent | 58c3930a4f50deb282e8a0171bd5898524cc07aa (diff) | |
parent | 3ed9e690a153fda8a18719ee16c654a3eedf303f (diff) | |
download | nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.tar nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.tar.gz nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.tar.bz2 nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.tar.lz nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.tar.xz nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.tar.zst nixlib-ea1d5959ff65adba36a101dc1e21e1c4b417d397.zip |
Merge pull request #59244 from romildo/upd.deepin.dde-dock
deepin.dde-dock: init at 4.9.8
-rw-r--r-- | pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch | 39 | ||||
-rw-r--r-- | pkgs/desktops/deepin/dde-dock/default.nix | 87 | ||||
-rw-r--r-- | pkgs/desktops/deepin/dde-dock/wrapper.nix | 21 | ||||
-rw-r--r-- | pkgs/desktops/deepin/default.nix | 3 |
4 files changed, 149 insertions, 1 deletions
diff --git a/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch b/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch new file mode 100644 index 000000000000..87b76045b43d --- /dev/null +++ b/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch @@ -0,0 +1,39 @@ +From c48867b73485b34b95f14e9b9bbb54507fc77648 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com> +Date: Fri, 19 Apr 2019 18:21:49 -0300 +Subject: [PATCH] Use an environment variable for the plugins directory + +--- + frame/controller/dockpluginscontroller.cpp | 2 +- + plugins/tray/system-trays/systemtrayscontroller.cpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/frame/controller/dockpluginscontroller.cpp b/frame/controller/dockpluginscontroller.cpp +index 32a5885..efd53c8 100644 +--- a/frame/controller/dockpluginscontroller.cpp ++++ b/frame/controller/dockpluginscontroller.cpp +@@ -126,7 +126,7 @@ void DockPluginsController::startLoader() + { + QString pluginsDir("../plugins"); + if (!QDir(pluginsDir).exists()) { +- pluginsDir = "/usr/lib/dde-dock/plugins"; ++ pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins"); + } + qDebug() << "using dock plugins dir:" << pluginsDir; + +diff --git a/plugins/tray/system-trays/systemtrayscontroller.cpp b/plugins/tray/system-trays/systemtrayscontroller.cpp +index 0c8ca88..7c47d25 100644 +--- a/plugins/tray/system-trays/systemtrayscontroller.cpp ++++ b/plugins/tray/system-trays/systemtrayscontroller.cpp +@@ -159,7 +159,7 @@ void SystemTraysController::startLoader() + { + QString pluginsDir("../plugins/system-trays"); + if (!QDir(pluginsDir).exists()) { +- pluginsDir = "/usr/lib/dde-dock/plugins/system-trays"; ++ pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins") + "/system-trays"; + } + qDebug() << "using system tray plugins dir:" << pluginsDir; + +-- +2.21.0 + diff --git a/pkgs/desktops/deepin/dde-dock/default.nix b/pkgs/desktops/deepin/dde-dock/default.nix new file mode 100644 index 000000000000..30ec61f73c3a --- /dev/null +++ b/pkgs/desktops/deepin/dde-dock/default.nix @@ -0,0 +1,87 @@ +{ stdenv, fetchFromGitHub, cmake, pkgconfig, qttools, qtx11extras, + qtsvg, libsForQt5, polkit, gsettings-qt, dtkcore, dtkwidget, + dde-qt-dbus-factory, dde-network-utils, dde-daemon, + deepin-desktop-schemas, xorg, glib, wrapGAppsHook, deepin, + plugins ? [], symlinkJoin, makeWrapper }: + +let +unwrapped = stdenv.mkDerivation rec { + name = "${pname}-${version}"; + pname = "dde-dock"; + version = "4.9.9"; + + src = fetchFromGitHub { + owner = "linuxdeepin"; + repo = pname; + rev = version; + sha256 = "0vscm808q63bbl84q9l3vhhd8mw86wfjdh55rvyj42qpa5q4mvlz"; + }; + + nativeBuildInputs = [ + cmake + pkgconfig + qttools + wrapGAppsHook + deepin.setupHook + ]; + + buildInputs = [ + dde-daemon + dde-network-utils + dde-qt-dbus-factory + deepin-desktop-schemas + dtkcore + dtkwidget + glib.bin + gsettings-qt + libsForQt5.libdbusmenu + polkit + qtsvg + qtx11extras + xorg.libXdmcp + xorg.libXtst + xorg.libpthreadstubs + ]; + + 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 + + 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" ]; + + postFixup = '' + searchHardCodedPaths $out + ''; + + passthru.updateScript = deepin.updateScript { inherit name; }; + + 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; + } diff --git a/pkgs/desktops/deepin/dde-dock/wrapper.nix b/pkgs/desktops/deepin/dde-dock/wrapper.nix new file mode 100644 index 000000000000..8f6d8a67b1a9 --- /dev/null +++ b/pkgs/desktops/deepin/dde-dock/wrapper.nix @@ -0,0 +1,21 @@ +{ makeWrapper, symlinkJoin, dde-dock, plugins }: + +symlinkJoin { + name = "dde-dock-with-plugins-${dde-dock.version}"; + + paths = [ dde-dock ] ++ plugins; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/dde-dock \ + --set DDE_DOCK_PLUGINS_DIR "$out/lib/dde-dock/plugins" + + rm $out/share/dbus-1/services/com.deepin.dde.Dock.service + + substitute ${dde-dock}/share/dbus-1/services/com.deepin.dde.Dock.service $out/share/dbus-1/services/com.deepin.dde.Dock.service \ + --replace ${dde-dock} $out + ''; + + inherit (dde-dock) meta; +} diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix index 10e25cedc4b3..6a1fb5d97b7b 100644 --- a/pkgs/desktops/deepin/default.nix +++ b/pkgs/desktops/deepin/default.nix @@ -10,8 +10,9 @@ let dde-api = callPackage ./dde-api { }; dde-calendar = callPackage ./dde-calendar { }; dde-daemon = callPackage ./dde-daemon { }; - dde-polkit-agent = callPackage ./dde-polkit-agent { }; + dde-dock = callPackage ./dde-dock { }; dde-network-utils = callPackage ./dde-network-utils { }; + dde-polkit-agent = callPackage ./dde-polkit-agent { }; dde-qt-dbus-factory = callPackage ./dde-qt-dbus-factory { }; dde-session-ui = callPackage ./dde-session-ui { }; deepin-desktop-base = callPackage ./deepin-desktop-base { }; |