diff --git a/lutris/installer/installer.py b/lutris/installer/installer.py index 76cbf9d25..ef2018147 100644 --- a/lutris/installer/installer.py +++ b/lutris/installer/installer.py @@ -247,7 +247,10 @@ class LutrisInstaller: # pylint: disable=too-many-instance-attributes if "system" in self.script: config["system"] = self._substitute_config(self.script["system"]) if self.script.get(self.runner): - config[self.runner] = self._substitute_config(self.script[self.runner]) + installer_runner_config = self._substitute_config(self.script[self.runner]) + import_runner(self.runner)().adjust_installer_runner_config(installer_runner_config) + config[self.runner] = installer_runner_config + launcher, launcher_config = self.get_game_launcher_config(self.interpreter.game_files) if launcher: config["game"][launcher] = launcher_config diff --git a/lutris/runners/runner.py b/lutris/runners/runner.py index 3f5c02b1b..69c0aa9dd 100644 --- a/lutris/runners/runner.py +++ b/lutris/runners/runner.py @@ -2,7 +2,7 @@ import os import signal from gettext import gettext as _ -from typing import Callable, Dict, Optional +from typing import Any, Callable, Dict, Optional from lutris import runtime, settings from lutris.api import format_runner_version, get_default_runner_version_info @@ -453,6 +453,11 @@ class Runner: # pylint: disable=too-many-public-methods def get_installer_runner_version(self, installer, use_runner_config: bool = True) -> Optional[str]: return None + def adjust_installer_runner_config(self, installer_runner_config: Dict[str, Any]) -> None: + """This is called during installation to let to run fix up in the runner's section of + the configuration before it is saved. This method should modify the dict given.""" + pass + def get_runner_version(self, version: str = None) -> Dict[str, str]: """Get the appropriate version for a runner, as with get_default_runner_version(), but this method allows the runner to apply its configuration.""" diff --git a/lutris/runners/wine.py b/lutris/runners/wine.py index c4142289e..5e5b24cd9 100644 --- a/lutris/runners/wine.py +++ b/lutris/runners/wine.py @@ -3,7 +3,7 @@ import os import shlex from gettext import gettext as _ -from typing import Dict, Optional, Tuple +from typing import Any, Dict, Optional, Tuple from lutris import runtime, settings from lutris.api import format_runner_version, normalize_version_architecture @@ -816,6 +816,11 @@ class wine(Runner): return version + def adjust_installer_runner_config(self, installer_runner_config: Dict[str, Any]) -> None: + version = installer_runner_config.get("version") + if version: + installer_runner_config["version"] = normalize_version_architecture(version) + @classmethod def get_runner_version_and_config(cls) -> Tuple[str, LutrisConfig]: runner_config = LutrisConfig(runner_slug="wine")