1{
2 lib,
3 stdenv,
4 fetchzip,
5 pkg-config,
6 libtraceevent,
7 asciidoc,
8 xmlto,
9 docbook_xml_dtd_45,
10 docbook_xsl,
11 sourceHighlight,
12 meson,
13 flex,
14 bison,
15 ninja,
16 gitUpdater,
17}:
18
19stdenv.mkDerivation rec {
20 pname = "libtracefs";
21 version = "1.8.2";
22
23 src = fetchzip {
24 url = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/libtracefs-libtracefs-${version}.tar.gz";
25 hash = "sha256-rpZUa34HMnDMSsGGwtOriEEHDfnW8emRSHZxzRkY3c4=";
26 };
27
28 postPatch = ''
29 chmod +x samples/extract-example.sh
30 patchShebangs --build check-manpages.sh samples/extract-example.sh Documentation/install-docs.sh.in
31 '';
32
33 outputs = [
34 "out"
35 "dev"
36 "devman"
37 "doc"
38 ];
39 nativeBuildInputs = [
40 meson
41 ninja
42 pkg-config
43 asciidoc
44 xmlto
45 docbook_xml_dtd_45
46 docbook_xsl
47 sourceHighlight
48 flex
49 bison
50 ];
51 buildInputs = [ libtraceevent ];
52
53 ninjaFlags = [
54 "all"
55 "docs"
56 ];
57
58 doCheck = false; # needs root
59
60 passthru.updateScript = gitUpdater {
61 # No nicer place to find latest release.
62 url = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git";
63 rev-prefix = "libtracefs-";
64 };
65
66 meta = with lib; {
67 description = "Linux kernel trace file system library";
68 mainProgram = "sqlhist";
69 homepage = "https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/";
70 license = licenses.lgpl21Only;
71 platforms = platforms.linux;
72 maintainers = with maintainers; [ wentasah ];
73 };
74}