nixpkgs/pkgs/development/python-modules/blivet/default.nix
aszlig cff26e2d38
nixos: Add VM test for blivet.
I'm really not sure whether these tests are actually run upstream,
because there are quite a few oddities which either are my fault by just
missing something important or upstream really doesn't bother to run
those tests.

One example of this are testDiskChunk1 and testDiskChunk2, which create
two non-existing partitions and tries to allocate them. Now, in
allocatePartitions(), the partedPartition attributes are reset to None
and shortly afterwards a for loop is expecting it to be NOT None.

So, for now I'm disabling these tests and will see if we stumble on them
during work on nixpart 1.0, so we're really sure whether it's my fault
or a real bug in blivet.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-10-22 08:22:58 +02:00

49 lines
1.4 KiB
Nix

{ stdenv, fetchFromGitHub, buildPythonPackage, pykickstart, pyparted, pyblock
, pyudev, six, libselinux, cryptsetup, multipath_tools, lsof, utillinux
}:
let
pyenable = { enablePython = true; };
selinuxWithPython = libselinux.override pyenable;
cryptsetupWithPython = cryptsetup.override pyenable;
in buildPythonPackage rec {
name = "blivet-${version}";
version = "0.67";
src = fetchFromGitHub {
owner = "dwlehman";
repo = "blivet";
rev = name;
sha256 = "1gk94ghjrxfqnx53hph1j2s7qcv86fjz48is7l099q9c24rjv8ky";
};
postPatch = ''
sed -i \
-e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
-e '/^def set_friendly_names/a \ return False' \
blivet/devicelibs/mpath.py
sed -i -e '/"wipefs"/ {
s|wipefs|${utillinux}/sbin/wipefs|
s/-f/--force/
}' blivet/formats/__init__.py
sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
sed -i -r -e 's|"(u?mount)"|"${utillinux}/bin/\1"|' blivet/util.py
sed -i -e '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py
'';
propagatedBuildInputs = [
pykickstart pyparted pyblock pyudev selinuxWithPython cryptsetupWithPython
six
];
# Tests are in <nixos/tests/blivet.nix>.
doCheck = false;
meta = {
homepage = "https://fedoraproject.org/wiki/Blivet";
description = "Module for management of a system's storage configuration";
license = [ "GPLv2+" "LGPLv2.1+" ];
platforms = stdenv.lib.platforms.linux;
};
}