1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 gettext,
7 itstool,
8 glib,
9 gtk-layer-shell,
10 gtk3,
11 libmateweather,
12 libwnck,
13 librsvg,
14 libxml2,
15 dconf,
16 dconf-editor,
17 mate-desktop,
18 mate-menus,
19 hicolor-icon-theme,
20 wayland,
21 gobject-introspection,
22 wrapGAppsHook3,
23 marco,
24 mateUpdateScript,
25}:
26
27stdenv.mkDerivation rec {
28 pname = "mate-panel";
29 version = "1.28.4";
30
31 src = fetchurl {
32 url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
33 hash = "sha256-AvCesDFMKsGXtvCJlQpXHNujm/0D1sOguP13JSqWiHQ=";
34 };
35
36 nativeBuildInputs = [
37 gobject-introspection
38 gettext
39 itstool
40 libxml2 # xmllint
41 pkg-config
42 wrapGAppsHook3
43 ];
44
45 buildInputs = [
46 gtk-layer-shell
47 libmateweather
48 libwnck
49 librsvg
50 dconf
51 mate-desktop
52 mate-menus
53 hicolor-icon-theme
54 wayland
55 ];
56
57 propagatedBuildInputs = [
58 glib
59 gtk3
60 # Optionally for the ca.desrt.dconf-editor.Settings schema
61 # This is propagated for mate_panel_applet_settings_new and applet's wrapGAppsHook3
62 dconf-editor
63 ];
64
65 # Needed for Wayland support.
66 configureFlags = [ "--with-in-process-applets=all" ];
67
68 env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
69
70 makeFlags = [
71 "INTROSPECTION_GIRDIR=$(out)/share/gir-1.0/"
72 "INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0"
73 ];
74
75 preFixup = ''
76 gappsWrapperArgs+=(
77 # Workspace switcher settings, works only when passed after gtk3 schemas in the wrapper for some reason
78 --prefix XDG_DATA_DIRS : "${glib.getSchemaDataDirPath marco}"
79 )
80 '';
81
82 enableParallelBuilding = true;
83
84 passthru.updateScript = mateUpdateScript { inherit pname; };
85
86 meta = with lib; {
87 description = "MATE panel";
88 homepage = "https://github.com/mate-desktop/mate-panel";
89 license = with licenses; [
90 gpl2Plus
91 lgpl2Plus
92 fdl11Plus
93 ];
94 platforms = platforms.unix;
95 teams = [ teams.mate ];
96 };
97}