nixpkgs/pkgs/desktops/deepin/dde-control-center/default.nix

151 lines
2.9 KiB
Nix

{ stdenv
, mkDerivation
, fetchFromGitHub
, pkgconfig
, cmake
, deepin
, qttools
, qtdeclarative
, networkmanager
, qtsvg
, qtx11extras
, dtkcore
, dtkwidget
, geoip
, gsettings-qt
, dde-network-utils
, networkmanager-qt
, xorg
, mtdev
, fontconfig
, freetype
, dde-api
, dde-daemon
, qt5integration
, deepin-desktop-base
, deepin-desktop-schemas
, dbus
, systemd
, dde-qt-dbus-factory
, qtmultimedia
, qtbase
, glib
, gnome3
, which
, substituteAll
, tzdata
, wrapGAppsHook
}:
mkDerivation rec {
pname = "dde-control-center";
version = "5.0.0";
src = fetchFromGitHub {
owner = "linuxdeepin";
repo = pname;
rev = version;
sha256 = "10bx8bpvi3ib32a3l4nyb1j0iq3bch8jm9wfm6d5v0ym1zb92x3b";
};
nativeBuildInputs = [
cmake
deepin.setupHook
pkgconfig
wrapGAppsHook
];
buildInputs = [
dde-api
dde-daemon
dde-network-utils
dde-qt-dbus-factory
deepin-desktop-base
deepin-desktop-schemas
dtkcore
dtkwidget
fontconfig
freetype
geoip
glib
gnome3.networkmanager-l2tp
gnome3.networkmanager-openconnect
gnome3.networkmanager-openvpn
gnome3.networkmanager-vpnc
gsettings-qt
mtdev
networkmanager-qt
qt5integration
qtbase
qtdeclarative
qtmultimedia
qtsvg
qttools
qtx11extras
xorg.libX11
xorg.libXext
xorg.libXrandr
xorg.libxcb
];
cmakeFlags = [
"-DDISABLE_SYS_UPDATE=YES"
"-DDCC_DISABLE_GRUB=YES"
];
patches = [
(substituteAll {
src = ./fix-paths.patch;
nmcli = "${networkmanager}/bin/nmcli";
which = "${which}/bin/which";
# not packaged
# dman = "${deepin-manual}/bin/dman";
inherit tzdata;
# exclusive to deepin linux?
# allows to synchronize configuration files to cloud networks
# deepin_sync = "${deepin-sync}";
})
];
postPatch = ''
searchHardCodedPaths
patchShebangs translate_ts2desktop.sh
patchShebangs translate_generation.sh
patchShebangs translate_desktop2ts.sh
fixPath $out /usr dde-control-center-autostart.desktop \
com.deepin.dde.ControlCenter.service \
src/frame/widgets/utils.h
substituteInPlace dde-control-center.desktop \
--replace "dbus-send" "${dbus}/bin/dbus-send"
substituteInPlace com.deepin.controlcenter.addomain.policy \
--replace "/bin/systemctl" "/run/current-system/sw/bin/systemctl"
'';
dontWrapQtApps = true;
preFixup = ''
gappsWrapperArgs+=(
"''${qtWrapperArgs[@]}"
)
'';
postFixup = ''
# debuging
searchForUnresolvedDLL $out
searchHardCodedPaths $out
'';
passthru.updateScript = deepin.updateScript { inherit pname version src; };
meta = with stdenv.lib; {
description = "Control panel of Deepin Desktop Environment";
homepage = "https://github.com/linuxdeepin/dde-control-center";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ romildo worldofpeace ];
};
}