1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 gettext,
7 itstool,
8 libxml2,
9 accountsservice,
10 caja,
11 dbus-glib,
12 libxklavier,
13 libcanberra-gtk3,
14 libgtop,
15 libmatekbd,
16 librsvg,
17 libayatana-appindicator,
18 glib,
19 desktop-file-utils,
20 dconf,
21 gtk3,
22 polkit,
23 marco,
24 mate-desktop,
25 mate-menus,
26 mate-panel,
27 mate-settings-daemon,
28 udisks2,
29 systemd,
30 hicolor-icon-theme,
31 wrapGAppsHook3,
32 mateUpdateScript,
33}:
34
35stdenv.mkDerivation rec {
36 pname = "mate-control-center";
37 version = "1.28.0";
38
39 src = fetchurl {
40 url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
41 sha256 = "6/LHBP1SSNwvmDb/KQKIae8p1QVJB8xhVzS2ODp5FLw=";
42 };
43
44 nativeBuildInputs = [
45 pkg-config
46 gettext
47 itstool
48 desktop-file-utils
49 wrapGAppsHook3
50 ];
51
52 buildInputs = [
53 accountsservice
54 libxml2
55 dbus-glib
56 libxklavier
57 libcanberra-gtk3
58 libgtop
59 libmatekbd
60 librsvg
61 libayatana-appindicator
62 gtk3
63 dconf
64 polkit
65 hicolor-icon-theme
66 marco
67 mate-desktop
68 mate-menus
69 mate-panel # for org.mate.panel schema, see m-c-c#678
70 mate-settings-daemon
71 udisks2
72 systemd
73 ];
74
75 postPatch = ''
76 substituteInPlace capplets/system-info/mate-system-info.c \
77 --replace-fail "/usr/bin/mate-about" "${mate-desktop}/bin/mate-about"
78 '';
79
80 configureFlags = [ "--disable-update-mimedb" ];
81
82 preFixup = ''
83 gappsWrapperArgs+=(
84 # WM keyboard shortcuts
85 --prefix XDG_DATA_DIRS : "${marco}/share"
86 # Desktop font, works only when passed after gtk3 schemas in the wrapper for some reason
87 --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath caja}"
88 )
89 '';
90
91 enableParallelBuilding = true;
92
93 passthru.updateScript = mateUpdateScript { inherit pname; };
94
95 meta = with lib; {
96 description = "Utilities to configure the MATE desktop";
97 homepage = "https://github.com/mate-desktop/mate-control-center";
98 license = licenses.gpl2Plus;
99 platforms = platforms.unix;
100 teams = [ teams.mate ];
101 };
102}