blade-formatter: 1.42.0 -> 1.42.1 (#376873)
[NixPkgs.git] / pkgs / development / python-modules / blivet / default.nix
blob8740b3f213ee63059225ecc982ed65730ef951f3
2   lib,
3   pkgs,
4   python,
5   buildPythonPackage,
6   fetchFromGitHub,
7   pygobject3,
8   libblockdev,
9   bytesize,
10   pyudev,
11   dbus-python,
12   util-linux,
13   kmod,
14   libndctl,
15   nvme-cli,
16   dosfstools,
17   e2fsprogs,
18   hfsprogs,
19   xfsprogs,
20   f2fs-tools,
21   ntfs3g,
22   btrfs-progs,
23   reiserfsprogs,
24   mdadm,
25   lvm2,
26   gfs2-utils,
27   cryptsetup,
28   multipath-tools,
29   dracut,
30   stratisd,
33 let
34   libblockdevPython = (libblockdev.override { python3 = python; }).python;
36 buildPythonPackage rec {
37   pname = "blivet";
38   version = "3.11.0";
39   format = "setuptools";
41   src = fetchFromGitHub {
42     owner = "storaged-project";
43     repo = "blivet";
44     tag = "blivet-${version}";
45     hash = "sha256-X5U6XFmcsTfetpxwH0ONSnTasnwh2USukYtx+8HwVGc=";
46   };
48   postPatch = ''
49     find blivet -name '*.py' | while IFS= read -r i ; do
50       substituteInPlace "$i" \
51         --replace \
52           'gi.require_version("BlockDev",' \
53           'import gi.repository
54     gi.require_version("GIRepository", "2.0")
55     from gi.repository import GIRepository
56     GIRepository.Repository.prepend_search_path("${libblockdev}/lib/girepository-1.0")
57     gi.require_version("BlockDev",'
58     done
59   '';
61   propagatedBuildInputs = [
62     pygobject3
63     libblockdevPython
64     bytesize
65     pyudev
66     dbus-python
67     util-linux
68     kmod
69     libndctl
70     nvme-cli
71     pkgs.systemd
72     dosfstools
73     e2fsprogs
74     hfsprogs
75     xfsprogs
76     f2fs-tools
77     ntfs3g
78     btrfs-progs
79     reiserfsprogs
80     mdadm
81     lvm2
82     gfs2-utils
83     cryptsetup
84     multipath-tools
85     dracut
86     stratisd
87   ];
89   pythonImportsCheck = [ "blivet" ];
91   # Even unit tests require a system D-Bus.
92   # TODO: Write a NixOS VM test?
93   doCheck = false;
95   # Fails with: TypeError: don't know how to make test from:
96   # <blivet.static_data.luks_data.LUKS_Data object at 0x7ffff4a34b90>
97   dontUseSetuptoolsCheck = true;
99   meta = {
100     description = "Python module for system storage configuration";
101     homepage = "https://github.com/storaged-project/blivet";
102     license = [
103       lib.licenses.gpl2Plus
104       lib.licenses.lgpl2Plus
105     ];
106     maintainers = with lib.maintainers; [ cybershadow ];
107     platforms = lib.platforms.linux;
108   };