anchor.diff:  { stdenv, fetchurl, buildPythonPackage, pykickstart, pyparted, pyblock
  -, libselinux, cryptsetup, multipath_tools, lsof, utillinux, udev
  +, libselinux, cryptsetup, multipath_tools, lsof, utillinux
  +, useNixUdev ? true, udev ? null
  +# This is only used when useNixUdev is false
  +, udevSoMajor ? 1
   }:
  +
  +assert useNixUdev -> udev != null;
   
   let
     pyenable = { enablePython = true; };
  
positive.code:     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
    '';
  
    propagatedBuildInputs = [
      pykickstart pyparted pyblock udev selinuxWithPython cryptsetupWithPython
    ];
  
    # tests are currently _heavily_ broken upstream
    doCheck = false;
  
negative.code:   };
  
    postPatch = ''
      sed -i -e 's|"multipath"|"${multipath_tools}/sbin/multipath"|' \
        blivet/devicelibs/mpath.py blivet/devices.py
      sed -i -e '/"wipefs"/ {
  