1{
2 stdenv,
3 lib,
4 fetchurl,
5 meson,
6 ninja,
7 pkg-config,
8 gnome,
9 adwaita-icon-theme,
10 gtk3,
11 wrapGAppsHook3,
12 glib,
13 gobject-introspection,
14 gi-docgen,
15 webkitgtk_4_1,
16 gettext,
17 itstool,
18 gsettings-desktop-schemas,
19 shared-mime-info,
20}:
21
22stdenv.mkDerivation rec {
23 pname = "devhelp";
24 version = "43.0";
25
26 outputs = [
27 "out"
28 "devdoc"
29 ];
30
31 src = fetchurl {
32 url = "mirror://gnome/sources/devhelp/${lib.versions.major version}/devhelp-${version}.tar.xz";
33 hash = "sha256-Y87u/QU5LgIESIHvHs1yQpNVPaVzW378CCstE/6F3QQ=";
34 };
35
36 nativeBuildInputs = [
37 meson
38 ninja
39 pkg-config
40 gettext
41 itstool
42 wrapGAppsHook3
43 gobject-introspection
44 gi-docgen
45 # post install script
46 glib
47 gtk3
48 ];
49
50 buildInputs = [
51 glib
52 gtk3
53 webkitgtk_4_1
54 adwaita-icon-theme
55 gsettings-desktop-schemas
56 ];
57
58 mesonFlags = [
59 "-Dgtk_doc=true"
60 ];
61
62 doCheck = true;
63
64 preFixup = ''
65 gappsWrapperArgs+=(
66 # Fix pages being blank
67 # https://gitlab.gnome.org/GNOME/devhelp/issues/14
68 --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
69 )
70 '';
71
72 postFixup = ''
73 # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
74 moveToOutput share/doc/devhelp-3 "$devdoc"
75 '';
76
77 passthru = {
78 updateScript = gnome.updateScript {
79 packageName = "devhelp";
80 };
81 };
82
83 meta = {
84 description = "API documentation browser for GNOME";
85 mainProgram = "devhelp";
86 homepage = "https://apps.gnome.org/Devhelp/";
87 changelog = "https://gitlab.gnome.org/GNOME/devhelp/-/blob/${version}/NEWS?ref_type=tags";
88 license = lib.licenses.gpl3Plus;
89 teams = [ lib.teams.gnome ];
90 platforms = lib.platforms.linux;
91 };
92}