Hello community,

here is the log from the commit of package lutris for openSUSE:Factory checked 
in at 2020-12-01 14:21:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lutris (Old)
 and      /work/SRC/openSUSE:Factory/.lutris.new.5913 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "lutris"

Tue Dec  1 14:21:57 2020 rev:8 rq:851778 version:0.5.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/lutris/lutris.changes    2020-11-17 
21:25:00.373361190 +0100
+++ /work/SRC/openSUSE:Factory/.lutris.new.5913/lutris.changes  2020-12-01 
14:22:02.413544870 +0100
@@ -1,0 +2,14 @@
+Mon Nov 30 08:37:07 UTC 2020 - Michael Vetter <mvet...@suse.com>
+
+- Update to 0.5.8.1:
+  * Remove Proton from available Wine versions
+  * Display a dialog until Lutris finishes initializing
+  * Allow to keep game files when uninstalling a game
+  * Remove custom sidebar CSS
+  * Fix popup menu not showing in list view
+  * Fix script loading for local files
+  * Fix installed at column setting name for list view
+  * Fix lutris not launching games with rungameid
+  * Fix installed Steam game for fresh lutris installs
+
+-------------------------------------------------------------------

Old:
----
  lutris_0.5.8.tar.xz

New:
----
  lutris_0.5.8.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ lutris.spec ++++++
--- /var/tmp/diff_new_pack.HNYFJf/_old  2020-12-01 14:22:03.149545667 +0100
+++ /var/tmp/diff_new_pack.HNYFJf/_new  2020-12-01 14:22:03.149545667 +0100
@@ -18,7 +18,7 @@
 
 %global appid net.lutris.Lutris
 Name:           lutris
-Version:        0.5.8
+Version:        0.5.8.1
 Release:        0
 Summary:        Manager for game installation and execution
 License:        GPL-3.0-or-later

++++++ lutris_0.5.8.tar.xz -> lutris_0.5.8.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/debian/changelog new/lutris/debian/changelog
--- old/lutris/debian/changelog 2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/debian/changelog 2020-11-27 23:23:48.000000000 +0100
@@ -1,4 +1,18 @@
-lutris (0.5.8) UNRELEASED; urgency=medium
+lutris (0.5.8.1) groovy; urgency=medium
+
+  * Remove Proton from available Wine versions
+  * Display a dialog until Lutris finishes initializing
+  * Allow to keep game files when uninstalling a game
+  * Remove custom sidebar CSS
+  * Fix popup menu not showing in list view
+  * Fix script loading for local files
+  * Fix installed at column setting name for list view
+  * Fix lutris not launching games with rungameid
+  * Fix installed Steam game for fresh lutris installs
+
+ -- Mathieu Comandon <stri...@strycore.com>  Fri, 27 Nov 2020 14:23:48 -0800
+
+lutris (0.5.8) groovy; urgency=medium
 
   * 3rd party services are now available from the main window
   * The "Import games" window has been removed. The concept of
@@ -64,7 +78,7 @@
   * Refactor of several core components. New python packages
     `lutris.database` and `lutris.gui.installer`
 
- -- Mathieu Comandon <stri...@strycore.com>  Sat, 17 Oct 2020 16:36:28 -0700
+ -- Mathieu Comandon <stri...@strycore.com>  Sat, 14 Nov 2020 15:03:28 -0700
 
 lutris (0.5.7.1) focal; urgency=medium
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/debian/control new/lutris/debian/control
--- old/lutris/debian/control   2020-10-03 13:55:57.000000000 +0200
+++ new/lutris/debian/control   2020-11-15 00:03:02.000000000 +0100
@@ -3,6 +3,7 @@
 Priority: optional
 Maintainer: Mathieu Comandon <stri...@strycore.com>
 Build-Depends: debhelper-compat (= 12),
+               appstream,
                dh-sequence-python3,
                meson,
 Rules-Requires-Root: no
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/debian/copyright new/lutris/debian/copyright
--- old/lutris/debian/copyright 2020-07-26 00:42:57.000000000 +0200
+++ new/lutris/debian/copyright 2020-11-27 16:39:50.000000000 +0100
@@ -5,6 +5,12 @@
 
 Files: *
 Copyright: 2009-2020 Mathieu Comandon <stri...@strycore.com>
-License: GPL-3
+License: GPL-3.0-or-later
  On Debian systems, the complete text of the General Public License version 3
  can be found in "/usr/share/common-licenses/GPL-3".
+
+Files: share/metainfo/net.lutris.Lutris.metainfo.xml
+Copyright: Lutris Team <stri...@lutris.net>
+License: CC0-1.0
+ On Debian systems, the complete text of the CC0-1.0 license
+ can be found in "/usr/share/common-licenses/CC0-1.0".
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/__init__.py 
new/lutris/lutris/__init__.py
--- old/lutris/lutris/__init__.py       2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/__init__.py       2020-11-27 23:23:48.000000000 +0100
@@ -1,3 +1,3 @@
 """Main Lutris package"""
 
-__version__ = "0.5.8"
+__version__ = "0.5.8.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/game.py new/lutris/lutris/game.py
--- old/lutris/lutris/game.py   2020-10-17 21:54:38.000000000 +0200
+++ new/lutris/lutris/game.py   2020-11-06 18:49:44.000000000 +0100
@@ -634,7 +634,7 @@
         logger.info("Moving %s to %s", self, new_location)
         new_config = ""
         old_location = self.directory
-        if old_location:
+        if os.path.exists(old_location):
             game_directory = os.path.basename(old_location)
             target_directory = os.path.join(new_location, game_directory)
         else:
@@ -656,7 +656,7 @@
 
         if not system.path_exists(old_location):
             logger.warning("Location %s doesn't exist, files already moved?", 
old_location)
-            return
+            return target_directory
         if new_location.startswith(old_location):
             logger.warning("Can't move %s to one of its children %s", 
old_location, new_location)
             return target_directory
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/application.py 
new/lutris/lutris/gui/application.py
--- old/lutris/lutris/gui/application.py        2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/gui/application.py        2020-11-27 23:23:48.000000000 
+0100
@@ -36,7 +36,7 @@
 from lutris.database import games as games_db
 from lutris.game import Game
 from lutris.installer import get_installers
-from lutris.gui.dialogs import ErrorDialog, InstallOrPlayDialog
+from lutris.gui.dialogs import ErrorDialog, InstallOrPlayDialog, 
LutrisInitDialog
 from lutris.gui.dialogs.issue import IssueReportWindow
 from lutris.gui.installerwindow import InstallerWindow
 from lutris.gui.widgets.status_icon import LutrisStatusIcon
@@ -44,11 +44,9 @@
 from lutris.startup import init_lutris, run_all_checks
 from lutris.util import datapath, log
 from lutris.util.http import HTTPError, Request
-from lutris.util.jobs import AsyncCall
 from lutris.util.log import logger
 from lutris.util.steam.appmanifest import AppManifest, get_appmanifests
 from lutris.util.steam.config import get_steamapps_paths
-from lutris.util.wine.dxvk import init_dxvk_versions
 from lutris.services import get_services
 from lutris.database.services import ServiceGameCollection
 
@@ -71,11 +69,8 @@
         GLib.set_application_name(_("Lutris"))
         self.window = None
 
-        try:
-            init_lutris()
-        except RuntimeError as ex:
-            ErrorDialog(str(ex))
-            return
+        init_dialog = LutrisInitDialog(init_lutris)
+        init_dialog.run()
 
         self.running_games = Gio.ListStore.new(Game)
         self.app_windows = {}
@@ -319,7 +314,6 @@
         logger.info("Lutris %s", settings.VERSION)
         migrate()
         run_all_checks()
-        AsyncCall(init_dxvk_versions, None)
 
         # List game
         if options.contains("list-games"):
@@ -462,7 +456,7 @@
                     self.do_shutdown()
                 return 0
             game = Game(db_game["id"])
-            self.on_game_start(game)
+            self.on_game_launch(game)
         return 0
 
     def on_game_launch(self, game):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/dialogs/__init__.py 
new/lutris/lutris/gui/dialogs/__init__.py
--- old/lutris/lutris/gui/dialogs/__init__.py   2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/gui/dialogs/__init__.py   2020-11-27 23:18:53.000000000 
+0100
@@ -7,13 +7,14 @@
 
 import gi
 gi.require_version("WebKit2", "4.0")
-from gi.repository import GObject, Gtk, WebKit2
+from gi.repository import GObject, Gtk, WebKit2, GLib
 
 from lutris import api, settings
 from lutris.database import sources as sources_db
 from lutris.gui.widgets.log_text_view import LogTextView
 from lutris.util import datapath
 from lutris.util.log import logger
+from lutris.util.jobs import AsyncCall
 
 
 class Dialog(Gtk.Dialog):
@@ -168,6 +169,35 @@
         self.destroy()
 
 
+class LutrisInitDialog(Gtk.Dialog):
+    def __init__(self, init_lutris):
+        super().__init__()
+        self.set_size_request(320, 60)
+        self.set_border_width(24)
+        vbox = Gtk.Box.new(Gtk.Orientation.VERTICAL, 12)
+        label = Gtk.Label("Lutris is starting...")
+        vbox.add(label)
+        self.progress = Gtk.ProgressBar(visible=True)
+        self.progress.set_pulse_step(0.1)
+        vbox.add(self.progress)
+        self.get_content_area().add(vbox)
+        GLib.timeout_add(125, self.show_progress)
+        self.show_all()
+        AsyncCall(self.initialize, self.init_cb, init_lutris)
+
+    def show_progress(self):
+        self.progress.pulse()
+        return True
+
+    def initialize(self, init_lutris, *args):
+        init_lutris()
+
+    def init_cb(self, _result, error):
+        if error:
+            ErrorDialog(str(error))
+        self.destroy()
+
+
 class InstallOrPlayDialog(Gtk.Dialog):
 
     def __init__(self, game_name):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/dialogs/uninstall_game.py 
new/lutris/lutris/gui/dialogs/uninstall_game.py
--- old/lutris/lutris/gui/dialogs/uninstall_game.py     2020-10-18 
01:36:28.000000000 +0200
+++ new/lutris/lutris/gui/dialogs/uninstall_game.py     2020-11-27 
23:18:53.000000000 +0100
@@ -30,7 +30,6 @@
 
         self.folder_label = Gtk.Label(visible=True)
         self.folder_label.set_alignment(0, 0.5)
-        self.folder_label.set_margin_bottom(30)
 
         self.delete_button = Gtk.Button(_("Uninstall"), visible=True)
         self.delete_button.connect("clicked", self.on_delete_clicked)
@@ -49,7 +48,12 @@
             )
         container.pack_start(self.folder_label, False, False, 4)
 
+        self.confirm_delete_button = Gtk.CheckButton()
+        self.confirm_delete_button.set_active(True)
+        container.pack_start(self.confirm_delete_button, False, False, 4)
+
         button_box = Gtk.HBox(visible=True)
+        button_box.set_margin_top(30)
         style_context = button_box.get_style_context()
         style_context.add_class("linked")
         cancel_button = Gtk.Button(_("Cancel"), visible=True)
@@ -65,8 +69,10 @@
             return
         self.delete_files = True
         self.delete_button.set_sensitive(True)
-        self.folder_label.set_markup(
-            "This will delete all contents from <b>%s</b> (%s)" % (
+        self.folder_label.hide()
+        self.confirm_delete_button.show()
+        self.confirm_delete_button.set_label(
+            "Delete %s (%s)" % (
                 reverse_expanduser(self.game.directory),
                 human_size(folder_size)
             )
@@ -77,6 +83,8 @@
 
     def on_delete_clicked(self, button):
         button.set_sensitive(False)
+        if not self.confirm_delete_button.get_active():
+            self.delete_files = False
         if self.delete_files and not hasattr(self.game.runner, 
"no_game_remove_warning"):
             dlg = QuestionDialog(
                 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/lutriswindow.py 
new/lutris/lutris/gui/lutriswindow.py
--- old/lutris/lutris/gui/lutriswindow.py       2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/gui/lutriswindow.py       2020-11-27 23:18:53.000000000 
+0100
@@ -25,7 +25,6 @@
 from lutris.gui.widgets.gi_composites import GtkTemplate
 from lutris.gui.widgets.sidebar import LutrisSidebar
 from lutris.gui.widgets.utils import load_icon_theme, open_uri
-from lutris.runtime import RuntimeUpdater
 from lutris.services.base import BaseService
 from lutris.services.lutris import LutrisBanner, LutrisIcon, LutrisService
 from lutris.util import datapath
@@ -66,6 +65,7 @@
             default_width=width,
             default_height=height,
             window_position=Gtk.WindowPosition.NONE,
+            name="lutris",
             icon_name="lutris",
             application=application,
             **kwargs
@@ -73,7 +73,7 @@
         update_desktop_icons()
         load_icon_theme()
         self.application = application
-        self.runtime_updater = RuntimeUpdater()
+
         self.threads_stoppers = []
         self.window_size = (width, height)
         self.maximized = settings.read_setting("maximized") == "True"
@@ -106,7 +106,7 @@
         self.sidebar.connect("selected-rows-changed", self.on_sidebar_changed)
         self.sidebar_scrolled.add(self.sidebar)
 
-        self.sidebar_revealer.set_reveal_child(self.left_side_panel_visible)
+        self.sidebar_revealer.set_reveal_child(self.side_panel_visible)
         self.sidebar_revealer.set_transition_duration(300)
         self.tabs_box.hide()
 
@@ -146,10 +146,10 @@
                 default=self.view_sorting_ascending,
             ),
             "use-dark-theme": Action(self.on_dark_theme_state_change, 
type="b", default=self.use_dark_theme),
-            "show-left-side-panel": Action(
-                self.on_left_side_panel_state_change,
+            "show-side-panel": Action(
+                self.on_side_panel_state_change,
                 type="b",
-                default=self.left_side_panel_visible,
+                default=self.side_panel_visible,
                 accel="F9",
             ),
             "show-hidden-games": Action(
@@ -194,7 +194,6 @@
         self._bind_zoom_adjustment()
         self.view.grab_focus()
         self.view.contextual_menu = 
ContextualMenu(self.game_actions.get_game_actions())
-        self.update_runtime()
 
     def load_filters(self):
         """Load the initial filters when creating the view"""
@@ -223,9 +222,8 @@
         return settings.read_setting("filter_installed").lower() == "true"
 
     @property
-    def left_side_panel_visible(self):
-        show_left_panel = 
(settings.read_setting("left_side_panel_visible").lower() != "false")
-        return show_left_panel
+    def side_panel_visible(self):
+        return settings.read_setting("side_panel_visible").lower() != "false"
 
     @property
     def use_dark_theme(self):
@@ -347,13 +345,13 @@
         service_name = self.filters.get("service")
         self.tabs_box.hide()
         if service_name in services.get_services():
-            if self.service.online and not self.service.is_authenticated():
-                self.show_label(_("Connect your %s account to access your 
games") % self.service.name)
-                return []
             if service_name == "lutris":
                 self.tabs_box.show()  # Only the lutris service has the 
ability to search through all games.
                 if self.website_button.props.active:
                     return self.get_api_games()
+            if self.service.online and not self.service.is_authenticated():
+                self.show_label(_("Connect your %s account to access your 
games") % self.service.name)
+                return []
             return self.get_service_games(service_name)
         dynamic_categories = {
             "recent": self.get_recent_games,
@@ -439,7 +437,7 @@
         self.view.service = self.service.id if self.service else None
         GLib.idle_add(self.update_revealer)
         for game in games:
-            GLib.idle_add(self.game_store.add_game, game)
+            self.game_store.add_game(game)
         if not games:
             self.show_empty_label()
         self.search_timer_id = None
@@ -579,11 +577,6 @@
     def set_viewtype_icon(self, view_type):
         self.viewtype_icon.set_from_icon_name("view-%s-symbolic" % view_type, 
Gtk.IconSize.BUTTON)
 
-    def update_runtime(self):
-        """Check that the runtime is up to date"""
-        runtime_sync = AsyncCall(self.runtime_updater.update, None)
-        self.threads_stoppers.append(runtime_sync.stop_request.set)
-
     def set_show_installed_state(self, filter_installed):
         """Shows or hide uninstalled games"""
         settings.write_setting("filter_installed", bool(filter_installed))
@@ -722,12 +715,12 @@
         settings.write_setting("view_sorting_ascending", bool(value))
         self.emit("view-updated")
 
-    def on_left_side_panel_state_change(self, action, value):
-        """Callback to handle left side panel toggle"""
+    def on_side_panel_state_change(self, action, value):
+        """Callback to handle side panel toggle"""
         action.set_state(value)
-        left_side_panel_visible = value.get_boolean()
-        settings.write_setting("left_side_panel_visible", 
bool(left_side_panel_visible))
-        self.sidebar_revealer.set_reveal_child(left_side_panel_visible)
+        side_panel_visible = value.get_boolean()
+        settings.write_setting("side_panel_visible", bool(side_panel_visible))
+        self.sidebar_revealer.set_reveal_child(side_panel_visible)
 
     def on_sidebar_changed(self, widget):
         row = widget.get_selected_row()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/views/__init__.py 
new/lutris/lutris/gui/views/__init__.py
--- old/lutris/lutris/gui/views/__init__.py     2020-05-30 04:31:36.000000000 
+0200
+++ new/lutris/lutris/gui/views/__init__.py     2020-11-27 23:18:53.000000000 
+0100
@@ -23,6 +23,6 @@
     COL_RUNNER_HUMAN_NAME: "runner",
     COL_PLATFORM: "platform",
     COL_LASTPLAYED_TEXT: "lastplayed",
-    COL_INSTALLED_AT_TEXT: "installed_at",
+    COL_INSTALLED_AT_TEXT: "installedat",
     COL_PLAYTIME_TEXT: "playtime",
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/views/base.py 
new/lutris/lutris/gui/views/base.py
--- old/lutris/lutris/gui/views/base.py 2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/gui/views/base.py 2020-11-27 23:18:53.000000000 +0100
@@ -31,7 +31,7 @@
         view.current_path = view.get_path_at_pos(event.x, event.y)
         if view.current_path:
             view.select()
-            _iter = self.get_model().get_iter(view.current_path)
+            _iter = self.get_model().get_iter(view.current_path[0])
             if not _iter:
                 return
             selected_id = self.get_selected_id(_iter)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/views/store.py 
new/lutris/lutris/gui/views/store.py
--- old/lutris/lutris/gui/views/store.py        2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/gui/views/store.py        2020-11-10 09:20:36.000000000 
+0100
@@ -21,8 +21,6 @@
     COL_NAME, COL_PLATFORM, COL_PLAYTIME, COL_PLAYTIME_TEXT, COL_RUNNER, 
COL_RUNNER_HUMAN_NAME, COL_SLUG, COL_YEAR
 )
 
-PGA_DB = settings.PGA_DB
-
 
 def try_lower(value):
     try:
@@ -178,14 +176,22 @@
 
     def on_game_updated(self, game):
         if self.service:
-            db_games = sql.filtered_query(PGA_DB, "service_games", filters=({
-                "service": self.service_media.service,
-                "appid": game.appid
-            }))
+            db_games = sql.filtered_query(
+                settings.PGA_DB,
+                "service_games",
+                filters=({
+                    "service": self.service_media.service,
+                    "appid": game.appid
+                })
+            )
         else:
-            db_games = sql.filtered_query(PGA_DB, "games", filters=({
-                "id": game.id
-            }))
+            db_games = sql.filtered_query(
+                settings.PGA_DB,
+                "games",
+                filters=({
+                    "id": game.id
+                })
+            )
 
         for db_game in db_games:
             GLib.idle_add(self.update, db_game)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/gui/widgets/sidebar.py 
new/lutris/lutris/gui/widgets/sidebar.py
--- old/lutris/lutris/gui/widgets/sidebar.py    2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/gui/widgets/sidebar.py    2020-11-27 16:39:50.000000000 
+0100
@@ -8,11 +8,11 @@
 from lutris.database import games as games_db
 from lutris.game import Game
 from lutris.gui.config.runner import RunnerConfigDialog
+from lutris.gui.dialogs import ErrorDialog
 from lutris.gui.dialogs.runner_install import RunnerInstallDialog
 from lutris.gui.dialogs.runners import RunnersDialog
 from lutris.services.base import BaseService
 from lutris.util.jobs import AsyncCall
-from lutris.util.log import logger
 
 TYPE = 0
 SLUG = 1
@@ -135,9 +135,11 @@
         self.service.wipe_game_cache()
         AsyncCall(self.service.load, self.service_load_cb)
 
-    def service_load_cb(self, _result, error):
+    def service_load_cb(self, games, error):
+        if not error and not games:
+            error = _("Failed to load games. Check that your profile is set to 
public during the sync.")
         if error:
-            logger.error("Service reload failed")
+            ErrorDialog(error)
         GLib.timeout_add(5000, self.enable_refresh_button)
 
     def enable_refresh_button(self):
@@ -222,6 +224,7 @@
             manage_runners_button.props.relief = Gtk.ReliefStyle.NONE
             manage_runners_button.set_margin_right(16)
             
manage_runners_button.get_style_context().add_class("sidebar-button")
+            manage_runners_button.set_tooltip_text(_('Manage Runners'))
             box.add(manage_runners_button)
         self.add(Gtk.Separator())
         self.show_all()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/installer/__init__.py 
new/lutris/lutris/installer/__init__.py
--- old/lutris/lutris/installer/__init__.py     2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/installer/__init__.py     2020-11-27 23:18:53.000000000 
+0100
@@ -35,12 +35,12 @@
 def read_script(filename):
     """Return scripts from a local file"""
     logger.debug("Loading script(s) from %s", filename)
-    scripts = yaml.safe_load(open(filename, "r").read())
-    if isinstance(scripts, list):
-        return scripts
-    if "results" in scripts:
-        return scripts["results"]
-    return scripts
+    script = yaml.safe_load(open(filename, "r").read())
+    if isinstance(script, list):
+        return script
+    if "results" in script:
+        return script["results"]
+    return [script]
 
 
 def get_installers(game_slug, installer_file=None, revision=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/installer/commands.py 
new/lutris/lutris/installer/commands.py
--- old/lutris/lutris/installer/commands.py     2020-10-06 09:17:27.000000000 
+0200
+++ new/lutris/lutris/installer/commands.py     2020-11-10 04:47:52.000000000 
+0100
@@ -469,7 +469,7 @@
 
     def write_config(self, params):
         """Write a key-value pair into an INI type config file."""
-        if params.get("data", None):
+        if params.get("data"):
             self._check_required_params(["file", "data"], params, 
"write_config")
         else:
             self._check_required_params(["file", "section", "key", "value"], 
params, "write_config")
@@ -489,7 +489,7 @@
             parser.read(config_file_path)
 
         data = {}
-        if params.get("data", None):
+        if params.get("data"):
             data = params["data"]
         else:
             data[params["section"]] = {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/installer/installer.py 
new/lutris/lutris/installer/installer.py
--- old/lutris/lutris/installer/installer.py    2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/installer/installer.py    2020-11-10 05:05:40.000000000 
+0100
@@ -139,6 +139,9 @@
         if not self.files:
             return
         if self.service:
+            if self.service.online and not self.service.is_connected():
+                logger.info("Not authenticated to %s", self.service.id)
+                return
             installer_file_id = self.pop_user_provided_file()
             if not installer_file_id:
                 logger.warning("Could not find a file for this service")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/installer/interpreter.py 
new/lutris/lutris/installer/interpreter.py
--- old/lutris/lutris/installer/interpreter.py  2020-10-16 23:47:59.000000000 
+0200
+++ new/lutris/lutris/installer/interpreter.py  2020-11-10 04:47:52.000000000 
+0100
@@ -377,7 +377,7 @@
 
     def _substitute(self, template_string):
         """Replace path aliases with real paths."""
-        if not template_string:
+        if template_string is None:
             logger.warning("No template string given")
             return ""
         replacements = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/migrations/migrate_steam_appids.py 
new/lutris/lutris/migrations/migrate_steam_appids.py
--- old/lutris/lutris/migrations/migrate_steam_appids.py        2020-10-03 
13:55:57.000000000 +0200
+++ new/lutris/lutris/migrations/migrate_steam_appids.py        2020-11-27 
23:18:53.000000000 +0100
@@ -5,7 +5,7 @@
 def migrate():
     """Run migration"""
     for game in get_games():
-        if not game["steamid"]:
+        if not game.get("steamid"):
             continue
         if game["runner"] and game["runner"] != "steam":
             continue
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/runners/wine.py 
new/lutris/lutris/runners/wine.py
--- old/lutris/lutris/runners/wine.py   2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/runners/wine.py   2020-11-27 23:18:53.000000000 +0100
@@ -26,8 +26,8 @@
 from lutris.util.wine.wine import (
     POL_PATH, WINE_DIR, WINE_PATHS, detect_arch, display_vulkan_error, 
esync_display_limit_warning,
     esync_display_version_warning, fsync_display_support_warning, 
fsync_display_version_warning, get_default_version,
-    get_overrides_env, get_proton_paths, get_real_executable, 
get_system_wine_version, get_wine_versions,
-    is_esync_limit_set, is_fsync_supported, is_version_esync, is_version_fsync
+    get_overrides_env, get_real_executable, get_system_wine_version, 
get_wine_versions, is_esync_limit_set,
+    is_fsync_supported, is_version_esync, is_version_fsync
 )
 from lutris.util.wine.x360ce import X360ce
 
@@ -626,10 +626,6 @@
         # logger.debug("Getting path for Wine %s", version)
         if version in WINE_PATHS.keys():
             return system.find_executable(WINE_PATHS[version])
-        if "Proton" in version:
-            for proton_path in get_proton_paths():
-                if os.path.isfile(os.path.join(proton_path, version, 
"dist/bin/wine")):
-                    return os.path.join(proton_path, version, "dist/bin/wine")
         if version.startswith("PlayOnLinux"):
             version, arch = version.split()[1].rsplit("-", 1)
             return os.path.join(POL_PATH, "wine", "linux-" + arch, version, 
"bin/wine")
@@ -913,15 +909,8 @@
         wine_root = None
         if WINE_DIR:
             wine_root = os.path.dirname(os.path.dirname(wine_path))
-        for proton_path in get_proton_paths():
-            if proton_path in wine_path:
-                wine_root = os.path.dirname(os.path.dirname(wine_path))
-        if "-4." in wine_path or "/4." in wine_path:
-            version = "Ubuntu-18.04"
-        else:
-            version = "legacy"
         return runtime.get_env(
-            version=version,
+            version="Ubuntu-18.04",
             prefer_system_libs=self.system_config.get("prefer_system_libs", 
True),
             wine_path=wine_root,
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/runtime.py new/lutris/lutris/runtime.py
--- old/lutris/lutris/runtime.py        2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/runtime.py        2020-11-27 23:18:53.000000000 +0100
@@ -177,7 +177,6 @@
 
 
 class RuntimeUpdater:
-
     """Class handling the runtime updates"""
 
     current_updates = 0
@@ -191,18 +190,14 @@
         """Launch the update process"""
         if RUNTIME_DISABLED:
             logger.debug("Runtime disabled, not updating it.")
-            return []
-
-        if self.is_updating():
-            logger.debug("Runtime already updating")
-            return []
+            return 0
 
         for remote_runtime in self._iter_remote_runtimes():
             runtime = Runtime(remote_runtime["name"], self)
             downloader = runtime.download(remote_runtime)
             if downloader:
                 self.current_updates += 1
-        return None
+        return self.current_updates
 
     @staticmethod
     def _iter_remote_runtimes():
@@ -243,7 +238,7 @@
         logger.debug("Runtime %s is now updated and available", runtime.name)
         self.current_updates -= 1
         if self.current_updates == 0:
-            logger.info("Runtime updated")
+            logger.info("Runtime is fully updated.")
 
 
 def get_env(version=None, prefer_system_libs=False, wine_path=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/services/gog.py 
new/lutris/lutris/services/gog.py
--- old/lutris/lutris/services/gog.py   2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/services/gog.py   2020-11-10 10:00:49.000000000 +0100
@@ -140,6 +140,7 @@
         self.match_games()
         self.is_loading = False
         self.emit("service-games-loaded")
+        return games
 
     def request_token(self, url="", refresh_token=""):
         """Get authentication token from GOG"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/services/humblebundle.py 
new/lutris/lutris/services/humblebundle.py
--- old/lutris/lutris/services/humblebundle.py  2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/services/humblebundle.py  2020-11-10 10:00:35.000000000 
+0100
@@ -110,6 +110,7 @@
             game.save()
         self.is_loading = False
         self.emit("service-games-loaded")
+        return humble_games
 
     def make_api_request(self, url):
         """Make an authenticated request to the Humble API"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/services/lutris.py 
new/lutris/lutris/services/lutris.py
--- old/lutris/lutris/services/lutris.py        2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/lutris/services/lutris.py        2020-11-10 10:01:26.000000000 
+0100
@@ -126,7 +126,8 @@
             return
         self.emit("service-games-load")
         self.is_loading = True
-        for game in self.get_library():
+        lutris_games = self.get_library()
+        for game in lutris_games:
             lutris_game = LutrisGame.new_from_api(game)
             lutris_game.save()
         logger.debug("Matching with already installed games")
@@ -134,6 +135,7 @@
         self.is_loading = False
         logger.debug("Lutris games loaded")
         self.emit("service-games-loaded")
+        return lutris_games
 
     def install(self, db_game):
         if isinstance(db_game, dict):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/services/steam.py 
new/lutris/lutris/services/steam.py
--- old/lutris/lutris/services/steam.py 2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/services/steam.py 2020-11-27 23:18:53.000000000 +0100
@@ -105,15 +105,16 @@
             logger.error("Unable to find SteamID from Steam config")
             self.emit("service-games-loaded")
             return
-
-        for steam_game in get_steam_library(steamid):
+        steam_games = get_steam_library(steamid)
+        for steam_game in steam_games:
             game = SteamGame.new_from_steam_game(steam_game)
             game.save()
 
         self.match_games()
         self.is_loading = False
-        logger.debug("Steam games loaded")
+        logger.debug("%d Steam games loaded", len(steam_games))
         self.emit("service-games-loaded")
+        return steam_games
 
     def get_installer_files(self, installer, installer_file_id):
         steam_uri = "$WINESTEAM:%s:." if installer.runner == "winesteam" else 
"$STEAM:%s:."
@@ -141,7 +142,7 @@
 
     def install(self, db_game):
         appid = db_game["appid"]
-        db_games = get_games(filters={"steamid": appid, "installed": "1"})
+        db_games = get_games(filters={"service_id": appid, "installed": "1", 
"service": "steam"})
         existing_game = self.match_existing_game(db_games, appid)
         if existing_game:
             logger.debug("Found steam game: %s", existing_game)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/startup.py new/lutris/lutris/startup.py
--- old/lutris/lutris/startup.py        2020-10-08 08:16:49.000000000 +0200
+++ new/lutris/lutris/startup.py        2020-11-27 23:23:48.000000000 +0100
@@ -1,6 +1,7 @@
 """Check to run at program start"""
 import os
 import sqlite3
+import time
 from gettext import gettext as _
 
 from lutris import runners, settings
@@ -9,10 +10,12 @@
 from lutris.game import Game
 from lutris.gui.dialogs import DontShowAgainDialog
 from lutris.runners.json import load_json_runners
+from lutris.runtime import RuntimeUpdater
 from lutris.util.graphics import drivers, vkquery
 from lutris.util.linux import LINUX_SYSTEM
 from lutris.util.log import logger
 from lutris.util.system import create_folder
+from lutris.util.wine.dxvk import init_dxvk_versions
 
 
 def init_dirs():
@@ -37,21 +40,6 @@
         create_folder(directory)
 
 
-def init_lutris():
-    """Run full initialization of Lutris"""
-    runners.inject_runners(load_json_runners())
-    # Load runner names
-    runners.RUNNER_NAMES = runners.get_runner_names()
-    init_dirs()
-    try:
-        syncdb()
-    except sqlite3.DatabaseError:
-        raise RuntimeError(
-            "Failed to open database file in %s. Try renaming this file and 
relaunch Lutris" %
-            settings.PGA_DB
-        )
-
-
 def check_driver():
     """Report on the currently running driver"""
     driver_info = {}
@@ -153,3 +141,28 @@
     check_libs()
     check_vulkan()
     fill_missing_platforms()
+
+
+def init_lutris():
+    """Run full initialization of Lutris"""
+    logger.info("Initializing lutris")
+    runners.inject_runners(load_json_runners())
+    # Load runner names
+    runners.RUNNER_NAMES = runners.get_runner_names()
+    init_dirs()
+    try:
+        syncdb()
+    except sqlite3.DatabaseError:
+        raise RuntimeError(
+            "Failed to open database file in %s. Try renaming this file and 
relaunch Lutris" %
+            settings.PGA_DB
+        )
+    runtime_updater = RuntimeUpdater()
+    components_to_update = runtime_updater.update()
+    if not components_to_update:
+        logger.info("Runtime up-to-date. Initialization complete.")
+        return
+    while runtime_updater.current_updates:
+        time.sleep(0.3)
+    init_dxvk_versions()
+    logger.info("Runtime updated. Initialization complete.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/util/display.py 
new/lutris/lutris/util/display.py
--- old/lutris/lutris/util/display.py   2020-10-03 13:55:57.000000000 +0200
+++ new/lutris/lutris/util/display.py   2020-11-27 23:18:53.000000000 +0100
@@ -297,21 +297,25 @@
     """Return the appropriate screen saver inhibitor instance.
     Returns None if the required interface isn't available."""
     desktop_environment = get_desktop_environment()
+    # Candidates are triples (name, path, interface)
+    candidates = [("org.freedesktop.ScreenSaver",
+                   "/org/freedesktop/ScreenSaver",
+                   "org.freedesktop.ScreenSaver")]
     if desktop_environment is DesktopEnvironment.MATE:
-        name = "org.mate.ScreenSaver"
-        path = "/"
+        candidates.append(("org.mate.ScreenSaver",
+                           "/",
+                           "org.mate.ScreenSaver"))
     elif desktop_environment is DesktopEnvironment.XFCE:
-        name = "org.xfce.ScreenSaver"
-        path = "/"
-    else:
-        name = "org.freedesktop.ScreenSaver"
-        path = "/org/freedesktop/ScreenSaver"
-    interface = name
-    try:
-        return DBusScreenSaverInhibitor(name, path, interface)
-    except GLib.Error as err:
-        logger.error("Error during creation of DBusScreenSaverInhibitor: %s", 
err.message)  # pylint: disable=no-member
-        return None
+        candidates.append(("org.xfce.ScreenSaver",
+                           "/",
+                           "org.xfce.ScreenSaver"))
+    for (name, path, interface) in candidates:
+        try:
+            return DBusScreenSaverInhibitor(name, path, interface)
+        except GLib.Error as err:
+            logger.warning("Failed to create DBusScreenSaverInhibitor for name 
%s, path %s, "
+                           "interface %s: %s", name, path, interface, str(err))
+    return None
 
 
 SCREEN_SAVER_INHIBITOR = _get_screen_saver_inhibitor()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/util/graphics/displayconfig.py 
new/lutris/lutris/util/graphics/displayconfig.py
--- old/lutris/lutris/util/graphics/displayconfig.py    2020-10-14 
07:23:25.000000000 +0200
+++ new/lutris/lutris/util/graphics/displayconfig.py    2020-11-27 
16:39:50.000000000 +0100
@@ -113,12 +113,12 @@
     @property
     def width(self):
         """width in physical pixels"""
-        return self.mode_info[2]
+        return int(self.mode_info[2])
 
     @property
     def height(self):
         """height in physical pixels"""
-        return self.mode_info[3]
+        return int(self.mode_info[3])
 
     @property
     def frequency(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris/util/wine/wine.py 
new/lutris/lutris/util/wine/wine.py
--- old/lutris/lutris/util/wine/wine.py 2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris/util/wine/wine.py 2020-11-27 23:18:53.000000000 +0100
@@ -201,7 +201,6 @@
     versions = []
     versions += get_system_wine_versions()
     versions += get_lutris_wine_versions()
-    versions += get_proton_versions()
     versions += get_pol_wine_versions()
     return versions
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/lutris.spec new/lutris/lutris.spec
--- old/lutris/lutris.spec      2020-10-18 01:36:28.000000000 +0200
+++ new/lutris/lutris.spec      2020-11-27 23:23:48.000000000 +0100
@@ -6,7 +6,7 @@
 %global appid net.lutris.Lutris
 
 Name:           lutris
-Version:        0.5.8
+Version:        0.5.8.1
 Release:        7%{?dist}
 Summary:        Install and play any video game easily
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/share/applications/net.lutris.Lutris.desktop 
new/lutris/share/applications/net.lutris.Lutris.desktop
--- old/lutris/share/applications/net.lutris.Lutris.desktop     2020-10-18 
01:36:28.000000000 +0200
+++ new/lutris/share/applications/net.lutris.Lutris.desktop     2020-11-10 
04:47:52.000000000 +0100
@@ -1,7 +1,6 @@
 [Desktop Entry]
-Version=1.0
 Name=Lutris
-Comment=Open gaming platform
+Comment=open source gaming platform
 Categories=Game;
 Keywords=gaming;wine;emulator;
 Exec=lutris %U
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/share/lutris/ui/lutris-window.ui 
new/lutris/share/lutris/ui/lutris-window.ui
--- old/lutris/share/lutris/ui/lutris-window.ui 2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/share/lutris/ui/lutris-window.ui 2020-11-08 01:58:29.000000000 
+0100
@@ -72,8 +72,8 @@
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="receives_default">False</property>
-            <property name="action_name">win.show-left-side-panel</property>
-            <property name="text" translatable="yes">Show _Left Side 
Panel</property>
+            <property name="action_name">win.show-side-panel</property>
+            <property name="text" translatable="yes">Show Side 
_Panel</property>
             <accelerator key="0xffffff" signal="clicked"/>
           </object>
           <packing>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/share/lutris/ui/lutris.css 
new/lutris/share/lutris/ui/lutris.css
--- old/lutris/share/lutris/ui/lutris.css       2020-10-18 01:36:28.000000000 
+0200
+++ new/lutris/share/lutris/ui/lutris.css       2020-11-27 23:18:53.000000000 
+0100
@@ -32,9 +32,6 @@
     font-weight: normal;
 }
 
-row:selected {
-  border-radius: 30px;
-}
-row:hover {
+.sidebar row:hover {
   background: rgba(0, 0, 0, 0.1);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/share/man/man1/lutris.1 
new/lutris/share/man/man1/lutris.1
--- old/lutris/share/man/man1/lutris.1  2020-07-26 00:42:57.000000000 +0200
+++ new/lutris/share/man/man1/lutris.1  2020-11-06 18:21:50.000000000 +0100
@@ -36,6 +36,9 @@
 \fB\-i\fR, \fB\-\-install\fR
 Install a game from a yml file
 .TP
+\fB\-b\fR, \fB\-\-output\-script\fR
+Generate a bash script to run a game without the client
+.TP
 \fB\-e\fR, \fB\-\-exec\fR
 Execute a program with the lutris runtime
 .TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lutris/share/metainfo/net.lutris.Lutris.metainfo.xml 
new/lutris/share/metainfo/net.lutris.Lutris.metainfo.xml
--- old/lutris/share/metainfo/net.lutris.Lutris.metainfo.xml    2020-10-18 
01:36:28.000000000 +0200
+++ new/lutris/share/metainfo/net.lutris.Lutris.metainfo.xml    2020-11-27 
23:23:48.000000000 +0100
@@ -2,8 +2,8 @@
 <!-- Copyright 2020 Lutris -->
 <component type="desktop">
   <id>net.lutris.Lutris</id>
-  <project_license>GPL-3.0</project_license>
-  <metadata_license>GPL-3.0</metadata_license>
+  <project_license>GPL-3.0-or-later</project_license>
+  <metadata_license>CC0-1.0</metadata_license>
   <translation type="gettext">lutris</translation>
   <developer_name translatable="no">Lutris Team</developer_name>
   <update_contact>stri...@lutris.net</update_contact>
@@ -15,7 +15,7 @@
       <image>https://lutris.net/static/images/lutris-window.png</image>
     </screenshot>
   </screenshots>
-  <description><p></p>Lutris is an Open Source gaming platform. It installs 
and launches games so you can start playing without the hassle of setting up 
your games. Get your games from GOG, Steam, Battle.net, Origin, Uplay and many 
other sources running on any Linux powered gaming machine.</description>
+  <description><p>Lutris is an Open Source gaming platform. It installs and 
launches games so you can start playing without the hassle of setting up your 
games. Get your games from GOG, Steam, Battle.net, Origin, Uplay and many other 
sources running on any Linux powered gaming machine.</p></description>
   <url type="homepage">https://lutris.net</url>
   <url type="donation">https://lutris.net/donate</url>
   <url type="help">https://forums.lutris.net</url>
@@ -24,7 +24,7 @@
   <url type="bugtracker">https://github.com/lutris/lutris/issues</url>
   <launchable type="desktop-id">net.lutris.Lutris.desktop</launchable>
   <releases>
-    <release date="2020-10-19" version="0.5.8" />
+    <release date="2020-11-27" version="0.5.8.1" />
   </releases>
   <content_rating type="oars-1.1" />
 </component>
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to