mirror of
https://github.com/lutris/lutris
synced 2024-07-03 07:28:41 +00:00
Deprecate usage of $WINESTEAM locations
This commit is contained in:
parent
78a094d0ce
commit
c86eee1ac2
|
@ -190,7 +190,7 @@ Example: ``main_file: game.rom``.
|
|||
Can also be used to pass the URL for web based games: ``main_file: http://www...``
|
||||
|
||||
``args``: Pass additional arguments to the command.
|
||||
Can be used with linux, wine, winesteam, dosbox, scummvm, pico8 and zdoom runners.
|
||||
Can be used with linux, wine, dosbox, scummvm, pico8 and zdoom runners.
|
||||
Example: ``args: -c $GAMEDIR/exult.cfg``
|
||||
|
||||
``working_dir``: Set the working directory for the game executable.
|
||||
|
@ -199,21 +199,18 @@ the executable resides in.
|
|||
This directive can be used for Linux, Wine and Dosbox installers.
|
||||
Example: ``$GAMEDIR/path/to/game``
|
||||
|
||||
Wine and other wine based runners like WineSteam
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Wine and other wine based runners
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``arch``: Sets the architecture of a Wine prefix. By default it is set to ``win64``,
|
||||
the value can be set to ``win32`` to setup the game in a 32-bit prefix.
|
||||
|
||||
``prefix``: Path to the Wine prefix. For Wine games, it should be set to
|
||||
``$GAMEDIR``. For WineSteam games, set it to ``$GAMEDIR/prefix`` to isolate the
|
||||
prefix files from the game files. This is only needed if the Steam game
|
||||
needs customization. If not provided, Lutris will use WineSteam's default prefix
|
||||
where Steam for Windows is installed.
|
||||
``$GAMEDIR``.
|
||||
|
||||
|
||||
DRM free Steam and WineSteam
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
DRM free Steam
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
Lutris has the ability to run Steam games without launching the Steam client.
|
||||
This is only possible with certain games lacking the Steam DRM.
|
||||
|
@ -368,8 +365,8 @@ Examples::
|
|||
referer: www.mywebsite.com
|
||||
|
||||
|
||||
If the game makes use of (Windows) Steam data, the value should be
|
||||
``$WINESTEAM:appid:path/to/data``. This will check that the data is available
|
||||
If the game makes use of Steam data, the value should be
|
||||
``$STEAM:appid:path/to/data``. This will check that the data is available
|
||||
or install it otherwise.
|
||||
|
||||
|
||||
|
@ -602,8 +599,8 @@ with ``wine.wineexec`` as the task's ``name``)
|
|||
|
||||
Currently, the following tasks are implemented:
|
||||
|
||||
* wine / winesteam: ``create_prefix`` Creates an empty Wine prefix at the
|
||||
specified path. The other wine/winesteam directives below include the
|
||||
* wine: ``create_prefix`` Creates an empty Wine prefix at the
|
||||
specified path. The other wine directives below include the
|
||||
creation of the prefix, so in most cases you won't need to use the
|
||||
create_prefix command. Parameters are:
|
||||
|
||||
|
@ -626,7 +623,7 @@ Currently, the following tasks are implemented:
|
|||
name: create_prefix
|
||||
arch: win64
|
||||
|
||||
* wine / winesteam: ``wineexec`` Runs a windows executable. Parameters are
|
||||
* wine: ``wineexec`` Runs a windows executable. Parameters are
|
||||
``executable`` (``file ID`` or path), ``args`` (optional arguments passed
|
||||
to the executable), ``prefix`` (optional WINEPREFIX),
|
||||
``arch`` (optional WINEARCH, required when you created win64 prefix), ``blocking`` (if true, do not run the process in a thread), ``working_dir`` (optional working directory), ``include_processes`` (optional space-separated list of processes to include to
|
||||
|
@ -641,7 +638,7 @@ Currently, the following tasks are implemented:
|
|||
executable: drive_c/Program Files/Game/Game.exe
|
||||
args: --windowed
|
||||
|
||||
* wine / winesteam: ``winetricks`` Runs winetricks with the ``app`` argument.
|
||||
* wine: ``winetricks`` Runs winetricks with the ``app`` argument.
|
||||
``prefix`` is an optional WINEPREFIX path. You can run many tricks at once by adding more to the ``app`` parameter (space-separated).
|
||||
|
||||
By default Winetricks will run in silent mode but that can cause issues
|
||||
|
@ -656,7 +653,7 @@ Currently, the following tasks are implemented:
|
|||
|
||||
For a full list of available ``winetricks`` see here: https://github.com/Winetricks/winetricks/tree/master/files/verbs
|
||||
|
||||
* wine / winesteam: ``eject_disk`` runs eject_disk in your ``prefix`` argument. Parameters are
|
||||
* wine: ``eject_disk`` runs eject_disk in your ``prefix`` argument. Parameters are
|
||||
``prefix`` (optional wineprefix path).
|
||||
|
||||
Example:
|
||||
|
@ -666,7 +663,7 @@ Currently, the following tasks are implemented:
|
|||
- task:
|
||||
name: eject_disc
|
||||
|
||||
* wine / winesteam: ``set_regedit`` Modifies the Windows registry. Parameters
|
||||
* wine: ``set_regedit`` Modifies the Windows registry. Parameters
|
||||
are ``path`` (the registry path, use backslashes), ``key``, ``value``,
|
||||
``type`` (optional value type, default is REG_SZ (string)), ``prefix``
|
||||
(optional WINEPREFIX), ``arch``
|
||||
|
@ -683,7 +680,7 @@ Currently, the following tasks are implemented:
|
|||
value: '00000000'
|
||||
type: REG_DWORD
|
||||
|
||||
* wine / winesteam: ``delete_registry_key`` Deletes registry key in the Windows registry. Parameters
|
||||
* wine: ``delete_registry_key`` Deletes registry key in the Windows registry. Parameters
|
||||
are ``key``, ``prefix``
|
||||
(optional WINEPREFIX), ``arch`` (optional architecture of the prefix, required when you created win64 prefix).
|
||||
|
||||
|
@ -698,7 +695,7 @@ Currently, the following tasks are implemented:
|
|||
value: '00000000'
|
||||
type: REG_DWORD
|
||||
|
||||
* wine / winesteam: ``set_regedit_file`` Apply a regedit file to the
|
||||
* wine: ``set_regedit_file`` Apply a regedit file to the
|
||||
registry, Parameters are ``filename`` (regfile name),
|
||||
``arch`` (optional architecture of the prefix, required when you created win64 prefix).
|
||||
|
||||
|
@ -709,7 +706,7 @@ Currently, the following tasks are implemented:
|
|||
name: set_regedit_file
|
||||
filename: myregfile
|
||||
|
||||
* wine / winesteam: ``winekill`` Stops processes running in Wine prefix. Parameters
|
||||
* wine: ``winekill`` Stops processes running in Wine prefix. Parameters
|
||||
are ``prefix`` (optional WINEPREFIX),
|
||||
``arch`` (optional architecture of the prefix, required when you created win64 prefix).
|
||||
|
||||
|
|
|
@ -1,16 +1,13 @@
|
|||
"""Dialog used to install versions of a runner"""
|
||||
import gettext
|
||||
# Standard Library
|
||||
# pylint: disable=no-member
|
||||
import gettext
|
||||
import os
|
||||
import random
|
||||
from collections import defaultdict
|
||||
from gettext import gettext as _
|
||||
|
||||
# Third Party Libraries
|
||||
from gi.repository import GLib, Gtk
|
||||
|
||||
# Lutris Modules
|
||||
from lutris import api, settings
|
||||
from lutris.database.games import get_games_by_runner
|
||||
from lutris.game import Game
|
||||
|
@ -242,8 +239,6 @@ class RunnerInstallDialog(Dialog):
|
|||
def get_usage_stats(self):
|
||||
"""Return the usage for each version"""
|
||||
runner_games = get_games_by_runner(self.runner)
|
||||
if self.runner == "wine":
|
||||
runner_games += get_games_by_runner("winesteam")
|
||||
version_usage = defaultdict(list)
|
||||
for db_game in runner_games:
|
||||
if not db_game["installed"]:
|
||||
|
|
|
@ -86,15 +86,14 @@ class InstallerFileBox(Gtk.VBox):
|
|||
if self.provider == "steam":
|
||||
steam_installer = SteamInstaller(self.installer_file.url,
|
||||
self.installer_file.id)
|
||||
steam_installer.connect("game-installed", self.on_download_complete)
|
||||
steam_installer.connect("state-changed", self.on_state_changed)
|
||||
steam_installer.connect("steam-game-installed", self.on_download_complete)
|
||||
steam_installer.connect("steam-state-changed", self.on_state_changed)
|
||||
self.start_func = steam_installer.install_steam_game
|
||||
self.stop_func = steam_installer.stop_func
|
||||
|
||||
steam_box = Gtk.HBox(spacing=6)
|
||||
info_box = Gtk.VBox(spacing=6)
|
||||
steam_label = InstallerLabel(_("Steam game for {platform} (appid: <b>{appid}</b>)").format(
|
||||
platform=steam_installer.platform,
|
||||
steam_label = InstallerLabel(_("Steam game <b>{appid}</b>").format(
|
||||
appid=steam_installer.appid
|
||||
))
|
||||
info_box.add(steam_label)
|
||||
|
@ -277,6 +276,7 @@ class InstallerFileBox(Gtk.VBox):
|
|||
|
||||
def on_download_complete(self, widget, _data=None):
|
||||
"""Action called on a completed download."""
|
||||
logger.info("Download completed")
|
||||
if isinstance(widget, SteamInstaller):
|
||||
self.installer_file.dest_file = widget.get_steam_data_path()
|
||||
self.emit("file-available")
|
||||
|
|
|
@ -40,8 +40,10 @@ class InstallerFile:
|
|||
if self.uses_pga_cache() and os.path.isdir(self.cache_path):
|
||||
return self.cached_filename
|
||||
return ""
|
||||
if self.url.startswith(("$STEAM", "$WINESTEAM")):
|
||||
if self.url.startswith("$STEAM"):
|
||||
return self.url
|
||||
if self.url.startswith("$WINESTEAM"):
|
||||
raise ScriptingError("Usage of $WINESTEAM location is deprecated")
|
||||
return os.path.basename(self._file_meta)
|
||||
|
||||
@property
|
||||
|
@ -89,7 +91,7 @@ class InstallerFile:
|
|||
@property
|
||||
def provider(self):
|
||||
"""Return file provider used"""
|
||||
if self.url.startswith(("$WINESTEAM", "$STEAM")):
|
||||
if self.url.startswith("$STEAM"):
|
||||
return "steam"
|
||||
if self.is_cached:
|
||||
return "pga"
|
||||
|
@ -103,7 +105,7 @@ class InstallerFile:
|
|||
def providers(self):
|
||||
"""Return all supported providers"""
|
||||
_providers = set()
|
||||
if self.url.startswith(("$WINESTEAM", "$STEAM")):
|
||||
if self.url.startswith("$STEAM"):
|
||||
_providers.add("steam")
|
||||
if self.is_cached:
|
||||
_providers.add("pga")
|
||||
|
|
|
@ -16,19 +16,15 @@ class SteamInstaller(GObject.Object):
|
|||
"""Handles installation of Steam games"""
|
||||
|
||||
__gsignals__ = {
|
||||
"game-installed": (GObject.SIGNAL_RUN_FIRST, None, (str, )),
|
||||
"state-changed": (GObject.SIGNAL_RUN_FIRST, None, (str, )),
|
||||
"steam-game-installed": (GObject.SIGNAL_RUN_FIRST, None, (str, )),
|
||||
"steam-state-changed": (GObject.SIGNAL_RUN_FIRST, None, (str, )),
|
||||
}
|
||||
|
||||
def __init__(self, steam_uri, file_id):
|
||||
"""
|
||||
Params:
|
||||
steam_uri: Colon separated game info containing:
|
||||
- $STEAM or $WINESTEAM depending on the version of Steam
|
||||
Since Steam for Linux can download games for any
|
||||
platform, using $WINESTEAM has little value except in
|
||||
some cases where the game needs to be started by Steam
|
||||
in order to get a CD key (ie. Doom 3 or UT2004)
|
||||
- $STEAM
|
||||
- The Steam appid
|
||||
- The relative path of files to retrieve
|
||||
file_id: The lutris installer internal id for the game files
|
||||
|
@ -51,19 +47,8 @@ class SteamInstaller(GObject.Object):
|
|||
|
||||
self.appid = appid
|
||||
self.path = path
|
||||
if runner_id == "$WINESTEAM":
|
||||
self.platform = "windows"
|
||||
else:
|
||||
self.platform = "linux"
|
||||
|
||||
@property
|
||||
def runner(self):
|
||||
"""Return the runner instance used by this install"""
|
||||
if not self._runner:
|
||||
if self.platform == "windows":
|
||||
self._runner = winesteam.winesteam()
|
||||
self._runner = steam.steam()
|
||||
return self._runner
|
||||
self.platform = "linux"
|
||||
self.runner = steam.steam()
|
||||
|
||||
@property
|
||||
def steam_rel_path(self):
|
||||
|
@ -114,8 +99,9 @@ class SteamInstaller(GObject.Object):
|
|||
)
|
||||
if states and states != self.prev_states:
|
||||
self.state = states[-1].split(",")[-1]
|
||||
self.emit("state-changed", self.state) # Broadcast new state to listeners
|
||||
logger.debug("Steam installation status: %s", states)
|
||||
self.emit("state-changed", self.state) # Broadcast new state to listeners
|
||||
|
||||
self.prev_states = states
|
||||
if self.state == "Fully Installed":
|
||||
logger.info("Steam game %s has been installed successfully", self.appid)
|
||||
|
|
|
@ -109,7 +109,7 @@ class SteamService(BaseService):
|
|||
return steam_games
|
||||
|
||||
def get_installer_files(self, installer, installer_file_id):
|
||||
steam_uri = "$WINESTEAM:%s:." if installer.runner == "winesteam" else "$STEAM:%s:."
|
||||
steam_uri = "$STEAM:%s:."
|
||||
appid = str(installer.script["game"]["appid"])
|
||||
return [
|
||||
InstallerFile(installer.game_slug, "steam_game", {
|
||||
|
|
Loading…
Reference in New Issue
Block a user