1{ lib, stdenv, fetchFromGitHub, autoreconfHook
2, asciidoc, pkg-config, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
3, json_c, kmod, which, util-linux, udev, keyutils
4}:
5
6stdenv.mkDerivation rec {
7 pname = "libndctl";
8 version = "71.1";
9
10 src = fetchFromGitHub {
11 owner = "pmem";
12 repo = "ndctl";
13 rev = "v${version}";
14 sha256 = "sha256-osux3DiKRh8ftHwyfFI+WSFx20+yJsg1nVx5nuoKJu4=";
15 };
16
17 outputs = [ "out" "lib" "man" "dev" ];
18
19 nativeBuildInputs =
20 [ autoreconfHook asciidoc pkg-config xmlto docbook_xml_dtd_45 docbook_xsl libxslt
21 which
22 ];
23
24 buildInputs =
25 [ json_c kmod util-linux udev keyutils
26 ];
27
28 configureFlags =
29 [ "--without-bash"
30 "--without-systemd"
31 "--disable-asciidoctor" # depends on ruby 2.7, use asciidoc instead
32 ];
33
34 patchPhase = ''
35 patchShebangs test
36
37 substituteInPlace git-version --replace /bin/bash ${stdenv.shell}
38 substituteInPlace git-version-gen --replace /bin/sh ${stdenv.shell}
39
40 echo "m4_define([GIT_VERSION], [${version}])" > version.m4;
41 '';
42
43 meta = with lib; {
44 description = "Tools for managing the Linux Non-Volatile Memory Device sub-system";
45 homepage = "https://github.com/pmem/ndctl";
46 license = licenses.lgpl21;
47 maintainers = with maintainers; [ thoughtpolice ];
48 platforms = platforms.linux;
49 };
50}