1{
2 lib,
3 fetchFromGitHub,
4 python3Packages,
5 intltool,
6 mate,
7 libnotify,
8 gtk3,
9 gdk-pixbuf,
10 gobject-introspection,
11 wrapGAppsHook3,
12 glib,
13 gitUpdater,
14}:
15
16python3Packages.buildPythonApplication rec {
17 pname = "mate-tweak";
18 version = "22.10.0";
19 format = "setuptools";
20
21 src = fetchFromGitHub {
22 owner = "ubuntu-mate";
23 repo = pname;
24 rev = version;
25 sha256 = "emeNgCzMhHMeLOyUkXe+8OzQMEWuwNdD4xkGXIFgbh4=";
26 };
27
28 nativeBuildInputs = [
29 wrapGAppsHook3
30 intltool
31 python3Packages.distutils-extra
32 gobject-introspection
33 ];
34
35 buildInputs = [
36 gtk3
37 gdk-pixbuf
38 libnotify
39 glib
40 mate.mate-applets
41 mate.mate-panel
42 mate.marco
43 mate.libmatekbd
44 mate.mate-session-manager
45 ];
46
47 propagatedBuildInputs = with python3Packages; [
48 distro
49 pygobject3
50 psutil
51 setproctitle
52 ];
53
54 strictDeps = false;
55
56 dontWrapGApps = true;
57
58 postPatch = ''
59 # mate-tweak hardcodes absolute paths everywhere. Nuke from orbit.
60 find . -type f -exec sed -i \
61 -e s,/usr/lib/mate-tweak,$out/lib/mate-tweak,g \
62 {} +
63
64 sed -i 's,{prefix}/,,g' setup.py
65 '';
66
67 # Arguments to be passed to `makeWrapper`, only used by buildPython*
68 preFixup = ''
69 makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
70 '';
71
72 postFixup = ''
73 for i in bin/.mate-tweak-wrapped lib/mate-tweak/mate-tweak-helper; do
74 sed -i "s,usr,run/current-system/sw,g" $out/$i
75 done
76 '';
77
78 passthru.updateScript = gitUpdater { };
79
80 meta = with lib; {
81 description = "Tweak tool for the MATE Desktop";
82 homepage = "https://github.com/ubuntu-mate/mate-tweak";
83 changelog = "https://github.com/ubuntu-mate/mate-tweak/releases/tag/${version}";
84 license = [ licenses.gpl2Plus ];
85 platforms = platforms.linux;
86 teams = [ teams.mate ];
87 };
88}