[Backport release-26.05] nixos/virtualbox-guest: add package option (#566746)

This commit is contained in:
Leona Maroni
2026-09-26 07:49:35 +00:00
committed by GitHub
2 changed files with 9 additions and 6 deletions

View File

@@ -13,7 +13,7 @@ let
package = pkgs.runCommand "mount.vboxsf" { preferLocalBuild = true; } ''
mkdir -p $out/bin
cp ${pkgs.linuxPackages.virtualboxGuestAdditions}/bin/mount.vboxsf $out/bin
cp ${config.virtualisation.virtualbox.guest.package}/bin/mount.vboxsf $out/bin
'';
in

View File

@@ -7,7 +7,6 @@
}:
let
cfg = config.virtualisation.virtualbox.guest;
kernel = config.boot.kernelPackages;
mkVirtualBoxUserService = serviceArgs: verbose: {
description = "VirtualBox Guest User Services ${serviceArgs}";
@@ -25,7 +24,7 @@ let
preStart = "${pkgs.bash}/bin/bash -c \"if [ -z $DISPLAY ]; then exit 1; fi\"";
serviceConfig = {
ExecStart =
"@${kernel.virtualboxGuestAdditions}/bin/VBoxClient"
"@${cfg.package}/bin/VBoxClient"
+ (lib.strings.optionalString verbose " --verbose")
+ " --foreground ${serviceArgs}";
# Wait after a failure, hoping that the display environment is ready after waiting
@@ -66,6 +65,10 @@ in
description = "Whether to enable the VirtualBox service and other guest additions.";
};
package = lib.mkPackageOption config.boot.kernelPackages "virtualboxGuestAdditions" {
pkgsText = "config.boot.kernelPackages";
};
clipboard = lib.mkOption {
default = true;
type = lib.types.bool;
@@ -115,9 +118,9 @@ in
}
];
environment.systemPackages = [ kernel.virtualboxGuestAdditions ];
environment.systemPackages = [ cfg.package ];
boot.extraModulePackages = lib.mkIf cfg.use3rdPartyModules [ kernel.virtualboxGuestAdditions ];
boot.extraModulePackages = lib.mkIf cfg.use3rdPartyModules [ cfg.package ];
systemd.services.virtualbox = {
description = "VirtualBox Guest Services";
@@ -128,7 +131,7 @@ in
unitConfig.ConditionVirtualization = "oracle";
serviceConfig.ExecStart = "@${kernel.virtualboxGuestAdditions}/bin/VBoxService VBoxService --foreground";
serviceConfig.ExecStart = "@${cfg.package}/bin/VBoxService VBoxService --foreground";
};
users.groups.vboxuserdev = { };