1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 desktop-file-utils,
6 meson,
7 ninja,
8 pkg-config,
9 vala,
10 wrapGAppsHook4,
11 evolution-data-server-gtk4,
12 glib,
13 glib-networking,
14 gst_all_1,
15 gtk4,
16 gtksourceview5,
17 gxml,
18 json-glib,
19 libadwaita,
20 libgee,
21 libical,
22 libportal-gtk4,
23 libsecret,
24 libsoup_3,
25 pantheon,
26 sqlite,
27 webkitgtk_6_0,
28}:
29
30stdenv.mkDerivation rec {
31 pname = "planify";
32 version = "4.13.0";
33
34 src = fetchFromGitHub {
35 owner = "alainm23";
36 repo = "planify";
37 rev = version;
38 hash = "sha256-4fsgXyIt5bhdbG0DRFYv6vrGagTyH5SAFcOaAV3uq0g=";
39 };
40
41 nativeBuildInputs = [
42 desktop-file-utils
43 meson
44 ninja
45 pkg-config
46 vala
47 wrapGAppsHook4
48 ];
49
50 buildInputs = [
51 evolution-data-server-gtk4
52 glib
53 glib-networking
54 # Needed for GtkMediaStream creation with success.ogg, see #311295.
55 gst_all_1.gst-plugins-base
56 gst_all_1.gst-plugins-good
57 gtk4
58 gtksourceview5
59 gxml
60 json-glib
61 libadwaita
62 libgee
63 libical
64 libportal-gtk4
65 libsecret
66 libsoup_3
67 pantheon.granite7
68 sqlite
69 webkitgtk_6_0
70 ];
71
72 meta = with lib; {
73 description = "Task manager with Todoist support designed for GNU/Linux";
74 homepage = "https://github.com/alainm23/planify";
75 license = licenses.gpl3Plus;
76 teams = [ teams.pantheon ];
77 platforms = platforms.linux;
78 mainProgram = "io.github.alainm23.planify";
79 };
80}