1{
2 fetchFromGitHub,
3 cinnamon-desktop,
4 cinnamon-settings-daemon,
5 cinnamon-translations,
6 glib,
7 gsettings-desktop-schemas,
8 gtk3,
9 libcanberra,
10 libxslt,
11 meson,
12 ninja,
13 pkg-config,
14 python3,
15 lib,
16 stdenv,
17 systemd,
18 wrapGAppsHook3,
19 xapp,
20 xorg,
21 libexecinfo,
22 pango,
23}:
24
25let
26 pythonEnv = python3.withPackages (
27 pp: with pp; [
28 python-xapp
29 pygobject3
30 setproctitle
31 ]
32 );
33in
34stdenv.mkDerivation rec {
35 pname = "cinnamon-session";
36 version = "6.4.0";
37
38 src = fetchFromGitHub {
39 owner = "linuxmint";
40 repo = "cinnamon-session";
41 rev = version;
42 hash = "sha256-4uTKcmwfEytoAy4CFiOedYJqmPtBFBHk0P1gEGgm6pU=";
43 };
44
45 buildInputs = [
46 # meson.build
47 cinnamon-desktop
48 gtk3
49 glib
50 libcanberra
51 pango
52 xorg.libX11
53 xorg.libXext
54 xapp
55 xorg.libXau
56 xorg.libXcomposite
57
58 systemd
59
60 xorg.libXtst
61 xorg.libXrender
62 xorg.xtrans
63
64 # other (not meson.build)
65 cinnamon-settings-daemon
66 gsettings-desktop-schemas
67 pythonEnv # for cinnamon-session-quit
68 ];
69
70 nativeBuildInputs = [
71 meson
72 ninja
73 wrapGAppsHook3
74 libexecinfo
75 python3
76 pkg-config
77 libxslt
78 ];
79
80 mesonFlags = [
81 # use locales from cinnamon-translations
82 "--localedir=${cinnamon-translations}/share/locale"
83 ];
84
85 postPatch = ''
86 # patchShebangs requires executable file
87 chmod +x data/meson_install_schemas.py
88 patchShebangs data/meson_install_schemas.py
89 '';
90
91 preFixup = ''
92 gappsWrapperArgs+=(
93 --prefix XDG_DATA_DIRS : "${cinnamon-desktop}/share"
94 --prefix XDG_CONFIG_DIRS : "${cinnamon-settings-daemon}/etc/xdg"
95 )
96 '';
97
98 meta = with lib; {
99 homepage = "https://github.com/linuxmint/cinnamon-session";
100 description = "Cinnamon session manager";
101 license = licenses.gpl2;
102 platforms = platforms.linux;
103 teams = [ teams.cinnamon ];
104 };
105}