forked from mirrors/nixpkgs
3bf3d19759
The SO major is going to change in the upcoming update of the Hetzner rescue system, which will cause NixOps to break because it's statically using the SO major 0 while the new rescue system will have the major number 1. I'm still keeping the udevSoMajor attribute to retain backwards- compatibility with older NixOps versions. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
50 lines
1.6 KiB
Nix
50 lines
1.6 KiB
Nix
{ stdenv, fetchurl, buildPythonPackage, pykickstart, pyparted, pyblock
|
|
, libselinux, cryptsetup, multipath_tools, lsof, utillinux
|
|
, useNixUdev ? true, udev ? null
|
|
}:
|
|
|
|
assert useNixUdev -> udev != null;
|
|
|
|
buildPythonPackage rec {
|
|
name = "blivet-${version}";
|
|
version = "0.17-1";
|
|
|
|
src = fetchurl {
|
|
url = "https://git.fedorahosted.org/cgit/blivet.git/snapshot/"
|
|
+ "${name}.tar.bz2";
|
|
sha256 = "1k3mws2q0ryb7422mml6idmaasz2i2v6ngyvg6d976dx090qnmci";
|
|
};
|
|
|
|
patches = [ ./blivet.patch ];
|
|
|
|
postPatch = ''
|
|
sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
|
|
blivet/devicelibs/mpath.py blivet/devices.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 '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py
|
|
'' + stdenv.lib.optionalString useNixUdev ''
|
|
sed -i -e '/find_library/,/find_library/ {
|
|
c libudev = "${udev}/lib/libudev.so.1"
|
|
}' blivet/pyudev.py
|
|
'';
|
|
|
|
propagatedBuildInputs = [
|
|
pykickstart pyparted pyblock libselinux cryptsetup
|
|
] ++ stdenv.lib.optional useNixUdev udev;
|
|
|
|
# tests are currently _heavily_ broken upstream
|
|
doCheck = false;
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = "https://fedoraproject.org/wiki/Blivet";
|
|
description = "Module for management of a system's storage configuration";
|
|
license = with licenses; [ gpl2Plus lgpl21Plus ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|