1{
2 lib,
3 mkXfceDerivation,
4 fetchpatch,
5 polkit,
6 exo,
7 libxfce4util,
8 libxfce4ui,
9 libxfce4windowing,
10 xfconf,
11 iceauth,
12 gtk3,
13 gtk-layer-shell,
14 glib,
15 libwnck,
16 xfce4-session,
17}:
18
19mkXfceDerivation {
20 category = "xfce";
21 pname = "xfce4-session";
22 version = "4.20.2";
23
24 sha256 = "sha256-wd+8W9Z0dH7bqILBUNG9YxpRf8TnRJ/7b3QviM1HVnY=";
25
26 patches = [
27 # Use syntax compatible with most sh shells
28 # The `**` syntax is a bash extension
29 (fetchpatch {
30 url = "https://gitlab.xfce.org/xfce/xfce4-session/-/commit/53d6e20a29948ae7aa179447cef0704786b77f8b.patch";
31 hash = "sha256-c8IU1VOcEYdZJy8Eq2wqSL5tTXt7gKfGOs7jxb8npOE=";
32 })
33
34 # wayland: start a D-Bus session only if there isn't one already
35 # https://gitlab.xfce.org/xfce/xfce4-session/-/issues/218
36 (fetchpatch {
37 url = "https://gitlab.xfce.org/xfce/xfce4-session/-/commit/f6e2805b8a7742172f399d78618313bcb28bf095.patch";
38 hash = "sha256-EViVialDbdLH2SGUtcroo5iGc+B4HVJajV7PMl5q6vs=";
39 })
40 ];
41
42 buildInputs = [
43 exo
44 gtk3
45 gtk-layer-shell
46 glib
47 libxfce4ui
48 libxfce4util
49 libxfce4windowing
50 libwnck
51 xfconf
52 polkit
53 iceauth
54 ];
55
56 configureFlags = [
57 "--with-xsession-prefix=${placeholder "out"}"
58 "--with-wayland-session-prefix=${placeholder "out"}"
59 ];
60
61 passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc";
62
63 meta = with lib; {
64 description = "Session manager for Xfce";
65 teams = [ teams.xfce ];
66 };
67}