1{
2 lib,
3 stdenv,
4 fetchurl,
5 vala,
6 pkg-config,
7 gtk3,
8 glib,
9 gpgme,
10 json-glib,
11 wrapGAppsHook3,
12 libpeas,
13 bash,
14 gobject-introspection,
15 gtksourceview4,
16 gsettings-desktop-schemas,
17 gnome,
18 gspell,
19 gvfs,
20 shared-mime-info,
21 libgee,
22 libgit2-glib,
23 libhandy,
24 libsecret,
25 libxml2,
26 meson,
27 ninja,
28 python3,
29 libdazzle,
30}:
31
32stdenv.mkDerivation rec {
33 pname = "gitg";
34 version = "44";
35
36 src = fetchurl {
37 url = "mirror://gnome/sources/gitg/${lib.versions.majorMinor version}/gitg-${version}.tar.xz";
38 hash = "sha256-NCoxaE2rlnHNNBvT485mWtzuBGDCoIHdxJPNvAMTJTA=";
39 };
40
41 nativeBuildInputs = [
42 gobject-introspection
43 meson
44 ninja
45 pkg-config
46 python3
47 vala
48 wrapGAppsHook3
49 ];
50
51 buildInputs = [
52 glib
53 gpgme
54 gsettings-desktop-schemas
55 gtk3
56 gtksourceview4
57 gspell
58 gvfs
59 json-glib
60 libdazzle
61 libgee
62 libgit2-glib
63 libhandy
64 libpeas
65 libsecret
66 libxml2
67 ];
68
69 doCheck = true;
70
71 postPatch = ''
72 patchShebangs meson_post_install.py
73
74 substituteInPlace tests/libgitg/test-commit.vala --replace-fail "/bin/bash" "${bash}/bin/bash"
75 '';
76
77 preFixup = ''
78 gappsWrapperArgs+=(
79 # Thumbnailers
80 --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
81 )
82 '';
83
84 passthru = {
85 updateScript = gnome.updateScript {
86 packageName = "gitg";
87 };
88 };
89
90 strictDeps = true;
91
92 meta = {
93 homepage = "https://gitlab.gnome.org/GNOME/gitg";
94 changelog = "https://gitlab.gnome.org/GNOME/gitg/-/blob/v${version}/NEWS?ref_type=tags";
95 description = "GNOME GUI client to view git repositories";
96 mainProgram = "gitg";
97 maintainers = with lib.maintainers; [
98 Luflosi
99 ];
100 license = lib.licenses.gpl2Plus;
101 platforms = lib.platforms.linux;
102 };
103}