1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 gettext,
7 xtrans,
8 dbus-glib,
9 systemd,
10 libSM,
11 libXtst,
12 glib,
13 gtk3,
14 libepoxy,
15 polkit,
16 hicolor-icon-theme,
17 mate-desktop,
18 mate-screensaver,
19 wrapGAppsHook3,
20 fetchpatch,
21 mateUpdateScript,
22}:
23
24stdenv.mkDerivation rec {
25 pname = "mate-session-manager";
26 version = "1.28.0";
27
28 src = fetchurl {
29 url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
30 sha256 = "0yzkWVuh2mUpB3cgPyvIK9lzshSjoECAoe9caJkKLXs=";
31 };
32
33 patches = [
34 # allow turning on debugging from environment variable
35 (fetchpatch {
36 url = "https://github.com/mate-desktop/mate-session-manager/commit/3ab6fbfc811d00100d7a2959f8bbb157b536690d.patch";
37 sha256 = "0yjaklq0mp44clymyhy240kxlw95z3azmravh4f5pfm9dys33sg0";
38 })
39 ];
40
41 nativeBuildInputs = [
42 pkg-config
43 gettext
44 xtrans
45 wrapGAppsHook3
46 ];
47
48 buildInputs = [
49 dbus-glib
50 systemd
51 libSM
52 libXtst
53 gtk3
54 mate-desktop
55 mate-screensaver # for gsm_manager_init
56 hicolor-icon-theme
57 libepoxy
58 polkit
59 ];
60
61 enableParallelBuilding = true;
62
63 env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
64
65 postFixup = ''
66 substituteInPlace $out/share/xsessions/mate.desktop \
67 --replace-fail "Exec=mate-session" "Exec=$out/bin/mate-session"
68 '';
69
70 passthru.providedSessions = [ "mate" ];
71
72 passthru.updateScript = mateUpdateScript { inherit pname; };
73
74 meta = with lib; {
75 description = "MATE Desktop session manager";
76 homepage = "https://github.com/mate-desktop/mate-session-manager";
77 license = with licenses; [
78 gpl2Plus
79 lgpl2Plus
80 ];
81 platforms = platforms.unix;
82 teams = [ teams.mate ];
83 };
84}