nixpkgs-suyu/pkgs/development/libraries/libblockdev/default.nix

61 lines
1.9 KiB
Nix
Raw Normal View History

2021-03-23 01:45:35 +01:00
{ lib, stdenv, fetchFromGitHub, fetchpatch, substituteAll, autoreconfHook, pkg-config, gtk-doc
, docbook_xml_dtd_43, python3, gobject-introspection, glib, udev, kmod, parted
2020-11-24 16:29:28 +01:00
, cryptsetup, lvm2, dmraid, util-linux, libbytesize, libndctl, nss, volume_key
, libxslt, docbook_xsl, gptfdisk, libyaml, autoconf-archive
, thin-provisioning-tools, makeWrapper
2018-02-25 13:52:38 +01:00
}:
stdenv.mkDerivation rec {
pname = "libblockdev";
2021-01-19 18:47:39 +01:00
version = "2.25";
2018-02-25 13:52:38 +01:00
src = fetchFromGitHub {
owner = "storaged-project";
repo = "libblockdev";
rev = "${version}-1";
2021-01-19 18:47:39 +01:00
sha256 = "sha256-eHUHTogKoNrnwwSo6JaI7NMxVt9JeMqfWyhR62bDMuQ=";
2018-02-25 13:52:38 +01:00
};
outputs = [ "out" "dev" "devdoc" ];
patches = [
(substituteAll {
src = ./fix-paths.patch;
sgdisk = "${gptfdisk}/bin/sgdisk";
})
2021-03-23 01:45:35 +01:00
# fix build with glib 2.68 (g_memdup is deprecated)
# https://github.com/storaged-project/libblockdev/pull/623
(fetchpatch {
url = "https://github.com/storaged-project/libblockdev/commit/5528baef6ccc835a06c45f9db34a2c9c3f2dd940.patch";
sha256 = "jxq4BLeyTMeNvBvY8k8QXIvYSJ2Gah0J75pq6FpG7PM=";
})
];
2018-02-25 13:52:38 +01:00
postPatch = ''
patchShebangs scripts
'';
nativeBuildInputs = [
autoreconfHook pkg-config gtk-doc libxslt docbook_xsl docbook_xml_dtd_43
python3 gobject-introspection autoconf-archive makeWrapper
2018-02-25 13:52:38 +01:00
];
buildInputs = [
2020-11-24 16:29:28 +01:00
glib udev kmod parted gptfdisk cryptsetup lvm2 dmraid util-linux libbytesize
libndctl nss volume_key libyaml
2018-02-25 13:52:38 +01:00
];
postInstall = ''
wrapProgram $out/bin/lvm-cache-stats --prefix PATH : \
${lib.makeBinPath [ thin-provisioning-tools ]}
'';
meta = with lib; {
2018-02-25 13:52:38 +01:00
description = "A library for manipulating block devices";
homepage = "http://storaged.org/libblockdev/";
license = with licenses; [ lgpl2Plus gpl2Plus ]; # lgpl2Plus for the library, gpl2Plus for the utils
maintainers = with maintainers; [ johnazoidberg ];
2018-02-25 13:52:38 +01:00
platforms = platforms.linux;
};
}