nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
aszlig 3bf3d19759
nixpart0: Don't search for libudev using SO major.
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>
2015-10-21 17:15:17 +02:00

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;
};
}