forked from mirrors/nixpkgs
2fe9525dff
Forgot about wrapQtAppsHook only wrapping binaries that are ELF headers. So it can't wrap it if it already is.
95 lines
2.6 KiB
Nix
95 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;
|
|
}
|