nixos/vms: Extract vfio-pci-bind to separate package

This commit is contained in:
Jack O'Sullivan 2023-12-09 21:14:31 +00:00
parent 027cf2af6b
commit 9268256309
3 changed files with 25 additions and 25 deletions

View File

@ -48,29 +48,6 @@ let
asyncio.run(main()) asyncio.run(main())
''; '';
# TODO: Upstream or something...
vfio-pci-bind = pkgs.stdenv.mkDerivation rec {
pname = "vfio-pci-bind";
version = "b41e4545b21de434fc51a34a9bf1d72e3ac66cc8";
src = fetchGit {
url = "https://github.com/andre-richter/vfio-pci-bind";
rev = version;
};
prePatch = ''
substituteInPlace vfio-pci-bind.sh \
--replace modprobe ${pkgs.kmod}/bin/modprobe
substituteInPlace 25-vfio-pci-bind.rules \
--replace vfio-pci-bind.sh "$out"/bin/vfio-pci-bind.sh
'';
installPhase = ''
mkdir -p "$out"/bin/ "$out"/lib/udev/rules.d
cp vfio-pci-bind.sh "$out"/bin/
cp 25-vfio-pci-bind.rules "$out"/lib/udev/rules.d/
'';
};
cfg = config.my.vms; cfg = config.my.vms;
netOpts = with lib.types; { name, iName, ... }: { netOpts = with lib.types; { name, iName, ... }: {
@ -226,7 +203,7 @@ in
optionals optionals
(any (d: d.bindVFIO) allHostDevs) (any (d: d.bindVFIO) allHostDevs)
[ [
vfio-pci-bind pkgs.vfio-pci-bind
(pkgs.writeTextDir (pkgs.writeTextDir
"etc/udev/rules.d/20-vfio-tags.rules" "etc/udev/rules.d/20-vfio-tags.rules"
(concatMapStringsSep (concatMapStringsSep

View File

@ -5,4 +5,5 @@ in
{ {
# yeah turns out this is in nixpkgs now... we'll leave it as a sample i guess lol # yeah turns out this is in nixpkgs now... we'll leave it as a sample i guess lol
monocraft' = callPackage ./monocraft.nix { }; monocraft' = callPackage ./monocraft.nix { };
} vfio-pci-bind = callPackage ./vfio-pci-bind.nix { };
}

22
pkgs/vfio-pci-bind.nix Normal file
View File

@ -0,0 +1,22 @@
{ stdenv, kmod, ... }:
stdenv.mkDerivation rec {
pname = "vfio-pci-bind";
version = "b41e4545b21de434fc51a34a9bf1d72e3ac66cc8";
src = fetchGit {
url = "https://github.com/andre-richter/vfio-pci-bind";
rev = version;
};
prePatch = ''
substituteInPlace vfio-pci-bind.sh \
--replace modprobe ${kmod}/bin/modprobe
substituteInPlace 25-vfio-pci-bind.rules \
--replace vfio-pci-bind.sh "$out"/bin/vfio-pci-bind.sh
'';
installPhase = ''
mkdir -p "$out"/bin/ "$out"/lib/udev/rules.d
cp vfio-pci-bind.sh "$out"/bin/
cp 25-vfio-pci-bind.rules "$out"/lib/udev/rules.d/
'';
}