about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2022-10-03 22:45:14 +0200
committerGitHub <noreply@github.com>2022-10-03 22:45:14 +0200
commita0196c7c09754fdde5283761acd5df340349e531 (patch)
tree67372958cea77b53fafd3e9f20dd2e5fac1023c3 /pkgs
parent4bd5d432d6c5cfbc4635e34880bdfa11aca55629 (diff)
parentfc653b0ad67839a2c267690f725af06c856052f2 (diff)
Merge pull request #189672 from zseri/libzbc
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/os-specific/linux/libnvme/default.nix63
-rw-r--r--pkgs/os-specific/linux/libzbc/default.nix40
-rw-r--r--pkgs/os-specific/linux/libzbd/default.nix40
-rw-r--r--pkgs/top-level/all-packages.nix6
4 files changed, 149 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/libnvme/default.nix b/pkgs/os-specific/linux/libnvme/default.nix
new file mode 100644
index 0000000000000..6c2ece4b8cb11
--- /dev/null
+++ b/pkgs/os-specific/linux/libnvme/default.nix
@@ -0,0 +1,63 @@
+{ fetchFromGitHub
+, json_c
+, lib
+, libuuid
+, meson
+, ninja
+, openssl
+, perl
+, pkg-config
+, python3
+, stdenv
+, systemd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libnvme";
+  version = "1.1";
+
+  outputs = [ "out" "man" ];
+
+  src = fetchFromGitHub {
+    owner = "linux-nvme";
+    repo = "libnvme";
+    rev = "v${version}";
+    sha256 = "EPAPWY6/Bh8I1eLslKJAofLn0IAizmGn00Q5PJPtdRw=";
+  };
+
+  postPatch = ''
+    patchShebangs meson-vcs-tag.sh
+    chmod +x doc/kernel-doc-check
+    patchShebangs doc/kernel-doc doc/kernel-doc-check doc/list-man-pages.sh
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    perl # for kernel-doc
+    pkg-config
+  ];
+
+  buildInputs = [
+    json_c
+    libuuid
+    openssl
+    python3
+    systemd
+  ];
+
+  mesonFlags = [
+    "-Ddocs=man"
+    "-Ddocs-build=true"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "C Library for NVM Express on Linux";
+    homepage = "https://github.com/linux-nvme/libnvme";
+    maintainers = with maintainers; [ zseri ];
+    license = with licenses; [ lgpl21Plus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/libzbc/default.nix b/pkgs/os-specific/linux/libzbc/default.nix
new file mode 100644
index 0000000000000..5fa981a767f24
--- /dev/null
+++ b/pkgs/os-specific/linux/libzbc/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, autoconf-archive
+, autoreconfHook
+, fetchFromGitHub
+, gtk3
+, libtool
+, pkg-config
+, guiSupport ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libzbc";
+  version = "5.12.0";
+
+  src = fetchFromGitHub {
+    owner = "westerndigitalcorporation";
+    repo = "libzbc";
+    rev = "v${version}";
+    sha256 = "qI09dkMCwMym3j1ELrFDNbNB5hW/CzwmFmZhUNDXsfI=";
+  };
+
+  nativeBuildInputs = [
+    autoconf-archive # this can be removed with the next release
+    autoreconfHook
+    libtool
+  ] ++ lib.optionals guiSupport [ pkg-config ];
+
+  buildInputs = lib.optionals guiSupport [ gtk3 ];
+
+  configureFlags = lib.optional guiSupport "--enable-gui";
+
+  meta = with lib; {
+    description = "ZBC device manipulation library";
+    homepage = "https://github.com/westerndigitalcorporation/libzbc";
+    maintainers = with maintainers; [ zseri ];
+    license = with licenses; [ bsd2 lgpl3Plus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/libzbd/default.nix b/pkgs/os-specific/linux/libzbd/default.nix
new file mode 100644
index 0000000000000..f058e09bbd2ca
--- /dev/null
+++ b/pkgs/os-specific/linux/libzbd/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, autoconf-archive
+, autoreconfHook
+, fetchFromGitHub
+, gtk3
+, libtool
+, pkg-config
+, guiSupport ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libzbd";
+  version = "2.0.3";
+
+  src = fetchFromGitHub {
+    owner = "westerndigitalcorporation";
+    repo = "libzbd";
+    rev = "v${version}";
+    sha256 = "GoCHwuR4ylyaN/FskIqKyAPe2A2O3iFVcI3UxPlqvtk=";
+  };
+
+  nativeBuildInputs = [
+    autoconf-archive # this can be removed with the next release
+    autoreconfHook
+    libtool
+  ] ++ lib.optionals guiSupport [ pkg-config ];
+
+  buildInputs = lib.optionals guiSupport [ gtk3 ];
+
+  configureFlags = lib.optional guiSupport "--enable-gui";
+
+  meta = with lib; {
+    description = "Zoned block device manipulation library and tools";
+    homepage = "https://github.com/westerndigitalcorporation/libzbd";
+    maintainers = with maintainers; [ zseri ];
+    license = with licenses; [ lgpl3Plus gpl3Plus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8ac75534ac8fd..1f5475f0c444b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4308,8 +4308,14 @@ with pkgs;
 
   libnss-mysql = callPackage ../os-specific/linux/libnss-mysql { };
 
+  libnvme = callPackage ../os-specific/linux/libnvme { };
+
   libxnd = callPackage ../development/libraries/libxnd { };
 
+  libzbc = callPackage ../os-specific/linux/libzbc { };
+
+  libzbd = callPackage ../os-specific/linux/libzbd { };
+
   lifeograph = callPackage ../applications/editors/lifeograph { };
 
   limitcpu = callPackage ../tools/misc/limitcpu { };