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