lutris / lutris

Lutris desktop client
https://lutris.net
GNU General Public License v3.0
7.9k stars 691 forks source link

Issue with 0.5.17-7 update with Protobuf version 5.28.2 and Manjaro #5669

Closed gubblukt closed 3 weeks ago

gubblukt commented 3 weeks ago

Bug description

When updating Lutris to 0.5.17-7 on a Manjaro system, Lutris does not start due to an issue with the Protobuf version, see below.

The latest version in the Manjaro repos are Protobuf 5.28.1 and 5.28.2 is required by Lutris.

How to Reproduce

Steps to reproduce the behavior: 1.Start Lutris 0.5.17-7 on Manjaro

Expected behavior

To start Lutris

Log output

lutris -d                                                                                                                                                                                                                          
2024-10-21 11:11:47,932: Unable to run command, qdbus not found
Traceback (most recent call last):
  File "/usr/bin/lutris", line 61, in <module>
    from lutris.gui.application import Application  # pylint: disable=no-name-in-module
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/lutris/gui/application.py", line 42, in <module>
    from lutris.gui.config.preferences_dialog import PreferencesDialog
  File "/usr/lib/python3.12/site-packages/lutris/gui/config/preferences_dialog.py", line 9, in <module>
    from lutris.gui.config.accounts_box import AccountsBox
  File "/usr/lib/python3.12/site-packages/lutris/gui/config/accounts_box.py", line 8, in <module>
    from lutris.gui.config.updates_box import UpdateButtonBox
  File "/usr/lib/python3.12/site-packages/lutris/gui/config/updates_box.py", line 12, in <module>
    from lutris.services.lutris import sync_media
  File "/usr/lib/python3.12/site-packages/lutris/services/__init__.py", line 7, in <module>
    from lutris.services.battlenet import BNET_ENABLED, BattleNetService
  File "/usr/lib/python3.12/site-packages/lutris/services/battlenet.py", line 22, in <module>
    from lutris.util.battlenet.product_db_pb2 import ProductDb
  File "/usr/lib/python3.12/site-packages/lutris/util/battlenet/product_db_pb2.py", line 12, in <module>
    _runtime_version.ValidateProtobufRuntimeVersion(
  File "/usr/lib/python3.12/site-packages/google/protobuf/runtime_version.py", line 106, in ValidateProtobufRuntimeVersion
    _ReportVersionError(
  File "/usr/lib/python3.12/site-packages/google/protobuf/runtime_version.py", line 47, in _ReportVersionError
    raise VersionError(msg)
google.protobuf.runtime_version.VersionError: Detected incompatible Protobuf Gencode/Runtime versions when loading product_db.proto: gencode 5.28.2 runtime 5.28.1. Runtime version cannot be older than the linked gencode version. See Protobuf version guarantees at https://protobuf.dev/support/cross-version-runtime-guarantee.

System Information

Operating System: Manjaro Linux 
KDE Plasma Version: 6.1.5
KDE Frameworks Version: 6.6.0
Qt Version: 6.7.2
Kernel Version: 6.11.2-4-MANJARO (64-bit)
Graphics Platform: Wayland
Processors: 24 × AMD Ryzen 9 7900X 12-Core Processor
Memory: 30,5 GiB of RAM
Graphics Processor: AMD Radeon RX 7800 XT
Manufacturer: ASUS

Media (optional)

No response

DerDummePunkt commented 3 weeks ago

Can confirm, I see exactly the same issue

Log output

lutris                 

(lutris:99542): Gtk-WARNING **: 12:31:46.893: Theme parsing error: gtk-contained-dark.css:2871:228: Missing closing bracket for :not()
Traceback (most recent call last):
  File "/usr/bin/lutris", line 61, in <module>
    from lutris.gui.application import Application  # pylint: disable=no-name-in-module
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/lutris/gui/application.py", line 42, in <module>
    from lutris.gui.config.preferences_dialog import PreferencesDialog
  File "/usr/lib/python3.12/site-packages/lutris/gui/config/preferences_dialog.py", line 9, in <module>
    from lutris.gui.config.accounts_box import AccountsBox
  File "/usr/lib/python3.12/site-packages/lutris/gui/config/accounts_box.py", line 8, in <module>
    from lutris.gui.config.updates_box import UpdateButtonBox
  File "/usr/lib/python3.12/site-packages/lutris/gui/config/updates_box.py", line 12, in <module>
    from lutris.services.lutris import sync_media
  File "/usr/lib/python3.12/site-packages/lutris/services/__init__.py", line 7, in <module>
    from lutris.services.battlenet import BNET_ENABLED, BattleNetService
  File "/usr/lib/python3.12/site-packages/lutris/services/battlenet.py", line 22, in <module>
    from lutris.util.battlenet.product_db_pb2 import ProductDb
  File "/usr/lib/python3.12/site-packages/lutris/util/battlenet/product_db_pb2.py", line 12, in <module>
    _runtime_version.ValidateProtobufRuntimeVersion(
  File "/usr/lib/python3.12/site-packages/google/protobuf/runtime_version.py", line 106, in ValidateProtobufRuntimeVersion
    _ReportVersionError(
  File "/usr/lib/python3.12/site-packages/google/protobuf/runtime_version.py", line 47, in _ReportVersionError
    raise VersionError(msg)
google.protobuf.runtime_version.VersionError: Detected incompatible Protobuf Gencode/Runtime versions when loading product_db.proto: gencode 5.28.2 runtime 5.28.1. Runtime version cannot be older than the linked gencode version. See Protobuf version guarantees at https://protobuf.dev/support/cross-version-runtime-guarantee.

System Information

System:
  Kernel: 6.11.2-4-MANJARO arch: x86_64 bits: 64
  Desktop: Cinnamon v: 6.2.9 Distro: Manjaro Linux
Machine:
  Type: Desktop Mobo: Gigabyte model: B550 AORUS PRO V2
    serial: <superuser required> UEFI: American Megatrends LLC. v: F16h
    date: 12/25/2023
CPU:
  Info: 12-core AMD Ryzen 9 5900X [MT MCP] speed (MHz): avg: 3593
    min/max: 550/4951
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900
    XTX/7900M] driver: amdgpu v: kernel
  Device-2: Sunplus Innovation FHD Camera Microphone
    driver: snd-usb-audio,uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 24.1.2 driver: X:
    loaded: amdgpu dri: radeonsi gpu: amdgpu resolution: 5120x1440~120Hz
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.2.4-arch1.0.1
    renderer: AMD Radeon RX 7900 XTX (radeonsi navi31 LLVM 18.1.8 DRM 3.59
    6.11.2-4-MANJARO)
Network:
  Device-1: Realtek RTL8125 2.5GbE driver: r8169
Drives:
  Local Storage: total: 2.95 TiB used: 1.77 TiB (60.0%)
Info:
  Memory: total: 64 GiB note: est. available: 62.7 GiB used: 8.41 GiB (13.4%)
  Processes: 532 Uptime: 5h 59m Shell: Zsh inxi: 3.3.36
orblazer commented 3 weeks ago

Hello, To fix this temporary issue you can simply downgrade it with something like sudo pacman -U /var/cache/pacman/pkg/lutris-0.5.17-4-any.pkg.tar.zst.

DerDummePunkt commented 3 weeks ago

Hmm, the issues seems to stem from the battle.net service integration, that is something the arch and manjaro package maintainers worked in with the last release, see https://gitlab.manjaro.org/packages/extra/lutris/-/blob/master/PKGBUILD?ref_type=heads#L81 https://gitlab.archlinux.org/archlinux/packaging/packages/lutris/-/issues/4 https://gitlab.archlinux.org/archlinux/packaging/packages/lutris/-/commit/01922715383ba58d60472e8aae6df45d25dbd1c8

seems like the fix they attempted doesnt work for some users.

I dont know if this is something that upstream lutris can or should fix.

Unfortunately, I dont have an account for https://gitlab.manjaro.org yet, so i cant open an issue there, depending on when I'll get credentials I might just email the manjaro maintainer.

Weltherrscher commented 3 weeks ago

Same on my end:

Traceback (most recent call last): File "/usr/bin/lutris", line 61, in from lutris.gui.application import Application # pylint: disable=no-name-in-module ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/lutris/gui/application.py", line 42, in from lutris.gui.config.preferences_dialog import PreferencesDialog File "/usr/lib/python3.12/site-packages/lutris/gui/config/preferences_dialog.py", line 9, in from lutris.gui.config.accounts_box import AccountsBox File "/usr/lib/python3.12/site-packages/lutris/gui/config/accounts_box.py", line 8, in from lutris.gui.config.updates_box import UpdateButtonBox File "/usr/lib/python3.12/site-packages/lutris/gui/config/updates_box.py", line 12, in from lutris.services.lutris import sync_media File "/usr/lib/python3.12/site-packages/lutris/services/init.py", line 7, in from lutris.services.battlenet import BNET_ENABLED, BattleNetService File "/usr/lib/python3.12/site-packages/lutris/services/battlenet.py", line 22, in from lutris.util.battlenet.product_db_pb2 import ProductDb File "/usr/lib/python3.12/site-packages/lutris/util/battlenet/product_db_pb2.py", line 12, in _runtime_version.ValidateProtobufRuntimeVersion( File "/usr/lib/python3.12/site-packages/google/protobuf/runtime_version.py", line 106, in ValidateProtobufRuntimeVersion _ReportVersionError( File "/usr/lib/python3.12/site-packages/google/protobuf/runtime_version.py", line 47, in _ReportVersionError raise VersionError(msg) google.protobuf.runtime_version.VersionError: Detected incompatible Protobuf Gencode/Runtime versions when loading product_db.proto: gencode 5.28.2 runtime 5.28.1. Runtime version cannot be older than the linked gencode version. See Protobuf version guarantees at https://protobuf.dev/support/cross-version-runtime-guarantee.

OS: Manjaro 24.1.1 Xahea Kernel: x86_64 Linux 6.11.2-4-MANJARO Uptime: 3m Packages: 1777 Shell: zsh 5.9 Resolution: 5120x1440 DE: GNOME 46.4 WM: Mutter WM Theme: Matcha-dark-sea GTK Theme: Adwaita [GTK2/3] Icon Theme: Papirus-Dark Font: Cantarell 11 Disk: 9,6T / 26T (39%) CPU: AMD Ryzen 9 7900X 12-Core @ 24x 4.701GHz GPU: AMD Radeon RX 6900 XT (radeonsi, navi21, LLVM 18.1.8, DRM 3.59, 6.11.2-4-MANJARO)

danieljohnson2 commented 3 weeks ago

OK, our error handling is too specific here; we're getting this VersionError from protobuf. That should prevent BattleNet from working, but no worse than that. But we're catching only a few specific things, so it gets by us.

I've broadened this catch in master, since we do not care much why it failed, only that it did. You'll still get a log message but outside of Battle.Net Lutris should work.

If you like, you can download the master branch and run the bin/lutris script within - no need to install. That should run.

danieljohnson2 commented 3 weeks ago

Mind, this doesn't fix protobuf. I don't know what's wrong, but protobuf versions have been a problem for Battle.Net for a while.

I think Lutris lacks a protobuf expert on tap.

yochananmarqos commented 3 weeks ago

This is resolved with 0.5.17-8.

danieljohnson2 commented 3 weeks ago

I think that's an Arch package, and won't help other Lutris users. Too bad the protobuf wizards over there don't send us a PR for this.