diff --git a/nixos/modules/tasks/filesystems/vboxsf.nix b/nixos/modules/tasks/filesystems/vboxsf.nix index 3271351a5bca..3cc4b222f755 100644 --- a/nixos/modules/tasks/filesystems/vboxsf.nix +++ b/nixos/modules/tasks/filesystems/vboxsf.nix @@ -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 diff --git a/nixos/modules/virtualisation/virtualbox-guest.nix b/nixos/modules/virtualisation/virtualbox-guest.nix index 882cdf1f0cde..2ce02175b178 100644 --- a/nixos/modules/virtualisation/virtualbox-guest.nix +++ b/nixos/modules/virtualisation/virtualbox-guest.nix @@ -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 = { };