Files
2026-05-01 14:47:24 +00:00

119 lines
2.1 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
gtk-doc,
docbook_xml_dtd_43,
python3,
gobject-introspection,
glib,
udev,
kmod,
parted,
cryptsetup,
lvm2,
util-linux,
libbytesize,
libndctl,
nss,
volume_key,
libxslt,
docbook_xsl,
gptfdisk,
libyaml,
autoconf-archive,
thin-provisioning-tools,
makeBinaryWrapper,
e2fsprogs,
libnvme,
keyutils,
libatasmart,
json-glib,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libblockdev";
version = "3.5.0";
src = fetchFromGitHub {
owner = "storaged-project";
repo = "libblockdev";
tag = finalAttrs.version;
hash = "sha256-loll5MYRXBrBSSLCIXuQ0sQCpwSn7yS1Po9ppYnEorY=";
};
outputs = [
"out"
"dev"
"devdoc"
"python"
];
postPatch = ''
patchShebangs scripts
substituteInPlace src/python/gi/overrides/Makefile.am \
--replace-fail ''\'''${exec_prefix}' '@PYTHON_EXEC_PREFIX@'
'';
configureFlags = [
"--with-python_prefix=${placeholder "python"}"
];
strictDeps = true;
nativeBuildInputs = [
autoconf-archive
autoreconfHook
docbook_xsl
docbook_xml_dtd_43
gobject-introspection
gtk-doc
libxslt
makeBinaryWrapper
pkg-config
python3
];
buildInputs = [
cryptsetup
e2fsprogs
glib
gptfdisk
json-glib
keyutils
kmod
libatasmart
libbytesize
libndctl
libnvme
libyaml
lvm2
nss
parted
udev
util-linux
volume_key
];
postInstall = ''
wrapProgram $out/bin/lvm-cache-stats --prefix PATH : \
${lib.makeBinPath [ thin-provisioning-tools ]}
'';
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/storaged-project/libblockdev/raw/${finalAttrs.src.tag}/NEWS.rst";
description = "Library for manipulating block devices";
homepage = "http://storaged.org/libblockdev/";
license = with lib.licenses; [
lgpl2Plus
gpl2Plus
]; # lgpl2Plus for the library, gpl2Plus for the utils
maintainers = with lib.maintainers; [ johnazoidberg ];
platforms = lib.platforms.linux;
};
})