Merge pull request #34070 from lukeadams/prl-improve

Improve parallels-tools

Changed files
+26 -5
nixos
modules
virtualisation
pkgs
os-specific
linux
prl-tools
+22 -4
nixos/modules/virtualisation/parallels-guest.nix
···
with lib;
let
-
-
prl-tools = config.boot.kernelPackages.prl-tools;
-
+
prl-tools = config.hardware.parallels.package;
in
{
···
'';
};
+
autoMountShares = mkOption {
+
type = types.bool;
+
default = true;
+
description = ''
+
Control prlfsmountd service. When this service is running, shares can not be manually
+
mounted through `mount -t prl_fs ...` as this service will remount and trample any set options.
+
Recommended to enable for simple file sharing, but extended share use such as for code should
+
disable this to manually mount shares.
+
'';
+
};
+
+
package = mkOption {
+
type = types.package;
+
default = config.boot.kernelPackages.prl-tools;
+
defaultText = "config.boot.kernelPackages.prl-tools";
+
example = literalExample "config.boot.kernelPackages.prl-tools";
+
description = ''
+
Defines which package to use for prl-tools. Override to change the version.
+
'';
+
};
};
};
···
};
};
-
systemd.services.prlfsmountd = {
+
systemd.services.prlfsmountd = mkIf config.hardware.parallels.autoMountShares {
description = "Parallels Shared Folders Daemon";
wantedBy = [ "multi-user.target" ];
serviceConfig = rec {
+4 -1
pkgs/os-specific/linux/prl-tools/default.nix
···
, gawk, utillinux, xorg, glib, dbus-glib, zlib
, kernel ? null, libsOnly ? false
, undmg, fetchurl
+
, libelf
}:
assert (!libsOnly) -> kernel != null;
+
# Disable for kernels 4.15 and above due to compatibility issues
+
assert kernel != null -> stdenv.lib.versionOlder kernel.version "4.15";
let xorgFullVer = (builtins.parseDrvName xorg.xorgserver.name).version;
xorgVer = lib.concatStringsSep "." (lib.take 2 (lib.splitString "." xorgFullVer));
···
hardeningDisable = [ "pic" "format" ];
# also maybe python2 to generate xorg.conf
-
nativeBuildInputs = [ p7zip undmg ] ++ lib.optionals (!libsOnly) [ makeWrapper ];
+
nativeBuildInputs = [ p7zip undmg ] ++ lib.optionals (!libsOnly) [ makeWrapper ] ++ kernel.moduleBuildDependencies;
inherit libsOnly;