2fe9525dff
Forgot about wrapQtAppsHook only wrapping binaries that are ELF headers. So it can't wrap it if it already is.
94 lines
2.6 KiB
Nix
94 lines
2.6 KiB
Nix
{ 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";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "linuxdeepin";
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
|
|
};
|
|
|
|
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
|
|
];
|
|
|
|
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" ];
|
|
|
|
dontWrapQtApps = true;
|
|
|
|
preFixup = ''
|
|
gappsWrapperArgs+=(
|
|
"''${qtWrapperArgs[@]}"
|
|
)
|
|
'';
|
|
|
|
postFixup = ''
|
|
searchHardCodedPaths $out
|
|
'';
|
|
|
|
passthru.updateScript = deepin.updateScript { name = "${pname}-${version}"; };
|
|
|
|
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;
|
|
}
|