nixpkgs/pkgs/desktops/deepin/dde-dock/default.nix
worldofpeace 2fe9525dff deepin.dde-dock: use gapps wrapper
Forgot about wrapQtAppsHook only wrapping
binaries that are ELF headers. So it can't wrap
it if it already is.
2020-01-07 20:13:27 -05:00

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;
}