1{ stdenv
2, lib
3, fetchFromGitHub
4, docbook_xml_dtd_43
5, docbook-xsl-nons
6, glib
7, gobject-introspection
8, gtk-doc
9, meson
10, ninja
11, pkg-config
12, python3
13, shared-mime-info
14, nixosTests
15, xz
16, zstd
17}:
18
19stdenv.mkDerivation rec {
20 pname = "libxmlb";
21 version = "0.3.19";
22
23 outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
24
25 src = fetchFromGitHub {
26 owner = "hughsie";
27 repo = "libxmlb";
28 rev = version;
29 hash = "sha256-gXLWHkT+h/wvmmi7PyIx16gbeYznVOT7CwuBgF3bjOY=";
30 };
31
32 patches = [
33 ./installed-tests-path.patch
34 ];
35
36 nativeBuildInputs = [
37 docbook_xml_dtd_43
38 docbook-xsl-nons
39 gobject-introspection
40 gtk-doc
41 meson
42 ninja
43 pkg-config
44 python3
45 shared-mime-info
46 ];
47
48 buildInputs = [
49 glib
50 xz
51 zstd
52 ];
53
54 mesonFlags = [
55 "--libexecdir=${placeholder "out"}/libexec"
56 "-Dgtkdoc=true"
57 "-Dinstalled_test_prefix=${placeholder "installedTests"}"
58 ];
59
60 preCheck = ''
61 export XDG_DATA_DIRS=$XDG_DATA_DIRS:${shared-mime-info}/share
62 '';
63
64 doCheck = true;
65
66 passthru = {
67 tests = {
68 installed-tests = nixosTests.installed-tests.libxmlb;
69 };
70 };
71
72 meta = with lib; {
73 description = "A library to help create and query binary XML blobs";
74 mainProgram = "xb-tool";
75 homepage = "https://github.com/hughsie/libxmlb";
76 license = licenses.lgpl21Plus;
77 maintainers = with maintainers; [ ];
78 platforms = platforms.unix;
79 };
80}