Skip to content

Commit

Permalink
Merge pull request NixOS#332346 from MatthewCash/fix/hyperv-deamons-f…
Browse files Browse the repository at this point in the history
…copy

hyperv-daemons: fix fcopy build and nixfmt-rfc-style
  • Loading branch information
JohnRTitor authored Aug 17, 2024
2 parents 1a51b7b + 64e18ca commit 34146ed
Showing 1 changed file with 36 additions and 10 deletions.
46 changes: 36 additions & 10 deletions pkgs/os-specific/linux/hyperv-daemons/default.nix
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
{ stdenv, lib, python2, python3, kernel, makeWrapper, writeText
, gawk, iproute2 }:
{
stdenv,
lib,
python2,
python3,
kernel,
makeWrapper,
writeText,
gawk,
iproute2,
}:

let
libexec = "libexec/hypervkvpd";

fcopy_name = (if lib.versionOlder kernel.version "6.10" then "fcopy" else "fcopy_uio");

daemons = stdenv.mkDerivation rec {
pname = "hyperv-daemons-bin";
inherit (kernel) src version;
Expand All @@ -26,7 +37,7 @@ let
installPhase = ''
runHook preInstall
for f in fcopy kvp vss ; do
for f in ${fcopy_name} kvp vss ; do
install -Dm755 hv_''${f}_daemon -t $out/bin
done
Expand All @@ -39,11 +50,17 @@ let

postFixup = ''
wrapProgram $out/bin/hv_kvp_daemon \
--prefix PATH : $out/bin:${lib.makeBinPath [ gawk iproute2 ]}
--prefix PATH : $out/bin:${
lib.makeBinPath [
gawk
iproute2
]
}
'';
};

service = bin: title: check:
service =
bin: title: check:
writeText "hv-${bin}.service" ''
[Unit]
Description=Hyper-V ${title} daemon
Expand All @@ -61,21 +78,30 @@ let
WantedBy=hyperv-daemons.target
'';

in stdenv.mkDerivation {
in
stdenv.mkDerivation {
pname = "hyperv-daemons";
inherit (kernel) version;

# we just stick the bins into out as well as it requires "out"
outputs = [ "bin" "lib" "out" ];
outputs = [
"bin"
"lib"
"out"
];

buildInputs = [ daemons ];

buildCommand = ''
system=$lib/lib/systemd/system
install -Dm444 ${service "fcopy" "file copy (FCOPY)" "hv_fcopy" } $system/hv-fcopy.service
install -Dm444 ${service "kvp" "key-value pair (KVP)" "hv_kvp" } $system/hv-kvp.service
install -Dm444 ${service "vss" "volume shadow copy (VSS)" "hv_vss" } $system/hv-vss.service
install -Dm444 ${
service "${
fcopy_name
}" "file copy (FCOPY)" "/sys/bus/vmbus/devices/eb765408-105f-49b6-b4aa-c123b64d17d4/uio"
} $system/hv-fcopy.service
install -Dm444 ${service "kvp" "key-value pair (KVP)" "hv_kvp"} $system/hv-kvp.service
install -Dm444 ${service "vss" "volume shadow copy (VSS)" "hv_vss"} $system/hv-vss.service
cat > $system/hyperv-daemons.target <<EOF
[Unit]
Expand Down

0 comments on commit 34146ed

Please sign in to comment.