1{ lib, stdenv, fetchFromGitHub, pkg-config
2, meson
3, ninja
4, libnvme
5, json_c
6, zlib
7, python3Packages
8}:
9
10stdenv.mkDerivation rec {
11 pname = "nvme-cli";
12 version = "2.4";
13
14 src = fetchFromGitHub {
15 owner = "linux-nvme";
16 repo = "nvme-cli";
17 rev = "v${version}";
18 hash = "sha256-vnhvVVfEDnmEIdIkfTRoiLB7dZ1rJV3U4PmUUoaxTUs=";
19 };
20
21 mesonFlags = [
22 "-Dversion-tag=${version}"
23 ];
24
25 nativeBuildInputs = [
26 meson
27 ninja
28 pkg-config
29 python3Packages.nose2
30 ];
31 buildInputs = [
32 libnvme
33 json_c
34 zlib
35 ];
36
37 meta = with lib; {
38 inherit (src.meta) homepage; # https://nvmexpress.org/
39 description = "NVM-Express user space tooling for Linux";
40 longDescription = ''
41 NVM-Express is a fast, scalable host controller interface designed to
42 address the needs for not only PCI Express based solid state drives, but
43 also NVMe-oF(over fabrics).
44 This nvme program is a user space utility to provide standards compliant
45 tooling for NVM-Express drives. It was made specifically for Linux as it
46 relies on the IOCTLs defined by the mainline kernel driver.
47 '';
48 license = licenses.gpl2Plus;
49 platforms = platforms.linux;
50 maintainers = with maintainers; [ mic92 ];
51 mainProgram = "nvme";
52 };
53}