139 lines
3.3 KiB
Nix
139 lines
3.3 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchFromGitHub
|
|
, dtkwidget
|
|
, qt5integration
|
|
, qt5platform-plugins
|
|
, dde-qt-dbus-factory
|
|
, deepin-pw-check
|
|
, udisks2-qt5
|
|
, cmake
|
|
, qttools
|
|
, qtbase
|
|
, pkg-config
|
|
, qtx11extras
|
|
, qtmultimedia
|
|
, wrapQtAppsHook
|
|
, wrapGAppsHook
|
|
, gsettings-qt
|
|
, wayland
|
|
, kwayland
|
|
, qtwayland
|
|
, polkit-qt
|
|
, pcre
|
|
, xorg
|
|
, libselinux
|
|
, libsepol
|
|
, libxcrypt
|
|
, librsvg
|
|
, networkmanager-qt
|
|
, glib
|
|
, runtimeShell
|
|
, tzdata
|
|
, dbus
|
|
, gtest
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "dde-control-center";
|
|
version = "5.6.3";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "linuxdeepin";
|
|
repo = pname;
|
|
rev = version;
|
|
sha256 = "sha256-/gzS+IbopIDRpufsa9cEfFBOqehPUnF4IozvwW8UEbY=";
|
|
};
|
|
|
|
patches = [
|
|
# UserExperienceProgramLicenseAgreement comes from a non-open source component(deepin-deepinid-client)
|
|
# If we don't block it, only an empty page will be displayed here
|
|
# Remove this patch when dde-control-center is upgraded to 6.0.0
|
|
./dont-show-endUserLicenseAgreement-for-deepinos.patch
|
|
];
|
|
|
|
postPatch = ''
|
|
substituteInPlace src/frame/window/{mainwindow.cpp,insertplugin.cpp} com.deepin.controlcenter.develop.policy \
|
|
--replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
|
|
|
|
substituteInPlace src/frame/modules/datetime/timezone_dialog/timezone.cpp \
|
|
--replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
|
|
|
|
substituteInPlace src/frame/modules/accounts/accountsworker.cpp \
|
|
--replace "/bin/bash" "${runtimeShell}"
|
|
|
|
substituteInPlace dde-control-center-autostart.desktop \
|
|
--replace "/usr" "$out"
|
|
|
|
substituteInPlace com.deepin.dde.ControlCenter.service \
|
|
--replace "/usr/bin/dbus-send" "${dbus}/bin/dbus-send" \
|
|
--replace "/usr/share" "$out/share"
|
|
|
|
substituteInPlace include/widgets/utils.h src/{reboot-reminder-dialog/main.cpp,frame/main.cpp,reset-password-dialog/main.cpp} \
|
|
--replace "/usr/share/dde-control-center" "$out/share/dde-control-center"
|
|
|
|
substituteInPlace dde-control-center-wapper \
|
|
--replace "qdbus" "${qttools.bin}/bin/qdbus" \
|
|
--replace "/usr/share" "$out/share"
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
qttools
|
|
pkg-config
|
|
wrapQtAppsHook
|
|
wrapGAppsHook
|
|
];
|
|
dontWrapGApps = true;
|
|
|
|
buildInputs = [
|
|
dtkwidget
|
|
qt5platform-plugins
|
|
dde-qt-dbus-factory
|
|
deepin-pw-check
|
|
qtbase
|
|
qtx11extras
|
|
qtmultimedia
|
|
gsettings-qt
|
|
udisks2-qt5
|
|
wayland
|
|
kwayland
|
|
qtwayland
|
|
polkit-qt
|
|
pcre
|
|
xorg.libXdmcp
|
|
libselinux
|
|
libsepol
|
|
libxcrypt
|
|
librsvg
|
|
networkmanager-qt
|
|
gtest
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DCVERSION=${version}"
|
|
"-DDISABLE_AUTHENTICATION=YES"
|
|
"-DDISABLE_ACTIVATOR=YES"
|
|
"-DDISABLE_SYS_UPDATE=YES"
|
|
"-DDISABLE_RECOVERY=YES"
|
|
];
|
|
|
|
# qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
|
|
qtWrapperArgs = [
|
|
"--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
|
|
"--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ librsvg ]}"
|
|
];
|
|
|
|
preFixup = ''
|
|
glib-compile-schemas ${glib.makeSchemaPath "$out" "${pname}-${version}"}
|
|
qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Control panel of Deepin Desktop Environment";
|
|
homepage = "https://github.com/linuxdeepin/dde-control-center";
|
|
license = licenses.gpl3Plus;
|
|
platforms = platforms.linux;
|
|
maintainers = teams.deepin.members;
|
|
};
|
|
}
|