1{ lib
2, stdenv
3, fetchFromGitHub
4, vala
5, meson
6, ninja
7, python3
8, pkg-config
9, wrapGAppsHook4
10, desktop-file-utils
11, gtk4
12, libadwaita
13, json-glib
14, glib
15, glib-networking
16, gtksourceview5
17, libxml2
18, libgee
19, libsoup_3
20, libsecret
21, libwebp
22, gst_all_1
23, nix-update-script
24}:
25
26stdenv.mkDerivation rec {
27 pname = "tuba";
28 version = "0.3.2";
29 src = fetchFromGitHub {
30 owner = "GeopJr";
31 repo = "Tuba";
32 rev = "v${version}";
33 hash = "sha256-PSEPpJn/lYpeI6AN2AY73NpOcDkMm0zNqeSdELn5HvY=";
34 };
35
36 nativeBuildInputs = [
37 meson
38 ninja
39 pkg-config
40 vala
41 python3
42 wrapGAppsHook4
43 desktop-file-utils
44 ];
45
46 buildInputs = [
47 glib
48 glib-networking
49 gtksourceview5
50 json-glib
51 libxml2
52 libgee
53 libsoup_3
54 gtk4
55 libadwaita
56 libsecret
57 libwebp
58 ] ++ (with gst_all_1; [
59 gstreamer
60 gst-libav
61 gst-plugins-base
62 (gst-plugins-good.override { gtkSupport = true; })
63 gst-plugins-bad
64 ]);
65
66 passthru = {
67 updateScript = nix-update-script {
68 attrPath = "tuba";
69 };
70 };
71
72 meta = with lib; {
73 description = "Browse the Fediverse";
74 homepage = "https://tuba.geopjr.dev/";
75 mainProgram = "dev.geopjr.Tuba";
76 license = licenses.gpl3Only;
77 changelog = "https://github.com/GeopJr/Tuba/releases/tag/v${version}";
78 maintainers = with maintainers; [ chuangzhu aleksana ];
79 };
80}