1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 pkg-config,
6 libsForQt5,
7 dtkwidget,
8 dde-qt-dbus-factory,
9 xorg,
10 xscreensaver,
11}:
12
13stdenv.mkDerivation rec {
14 pname = "deepin-screensaver";
15 version = "5.0.18";
16
17 src = fetchFromGitHub {
18 owner = "linuxdeepin";
19 repo = pname;
20 rev = version;
21 hash = "sha256-7lyHPE/x7rmwh7FtCPkuA8JgYpy90jRXhUWoaeZpVag=";
22 };
23
24 postPatch = ''
25 patchShebangs {src,customscreensaver/deepin-custom-screensaver}/{generate_translations.sh,update_translations.sh}
26
27 substituteInPlace src/{dbusscreensaver.cpp,com.deepin.ScreenSaver.service,src.pro} \
28 customscreensaver/deepin-custom-screensaver/deepin-custom-screensaver.pro \
29 --replace "/usr" "$out" \
30 --replace "/etc" "$out/etc"
31
32 substituteInPlace tools/preview/main.cpp \
33 --replace "/usr/lib/xscreensaver" "${xscreensaver}/libexec/xscreensaver"
34 '';
35
36 nativeBuildInputs = [
37 libsForQt5.qmake
38 libsForQt5.qttools
39 pkg-config
40 libsForQt5.wrapQtAppsHook
41 ];
42
43 buildInputs = [
44 libsForQt5.qtbase
45 libsForQt5.qtx11extras
46 libsForQt5.qtdeclarative
47 dtkwidget
48 dde-qt-dbus-factory
49 xorg.libXScrnSaver
50 ];
51
52 qmakeFlags = [
53 "XSCREENSAVER_DATA_PATH=${xscreensaver}/libexec/xscreensaver"
54 "COMPILE_ON_V23=true"
55 ];
56
57 meta = with lib; {
58 description = "Screensaver service developed by deepin";
59 mainProgram = "deepin-screensaver";
60 homepage = "https://github.com/linuxdeepin/deepin-screensaver";
61 license = licenses.gpl3Plus;
62 platforms = platforms.linux;
63 teams = [ teams.deepin ];
64 };
65}