PhilipK / BoilR

Synchronize games from other platforms into your Steam library
Apache License 2.0
1.45k stars 43 forks source link

Flatpak BiolR does not add other Flatpak application to Flatpak Steam #383

Open Nitrousoxide opened 11 months ago

Nitrousoxide commented 11 months ago

Describe the bug BoilR can see the the list of Flatpaks

image

Running it apparently does not error out:

~ 
❯ flatpak run io.github.philipk.boilr
Could not load platform amazon, gave error: Unknown platform named amazon
Could not load platform playnite, gave error: Unknown platform named playnite
Could not load platform gamepass, gave error: Unknown platform named gamepass
Backed up shortcut at: "/home/Brian/.var/app/io.github.philipk.boilr/config/boilr/backup/21137060-2023-12-11-14-04-24-shortcuts.vdf"
Appid: 2941613865 name: RetroDECK
Found 1 user(s)
Found 1 shortcuts for user: 21137060
Saved 1 shortcuts
Finished synchronizing games in: 247.147µs
Checking for game images
No images needed
Saved 1 shortcuts

But it does not add the application to steam even after steam is rebooted:

image

This is the path to the common folder on my machine:

/home/Brian/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common

And the flatpak permissions for both boilr:

❯ flatpak info --show-permissions io.github.philipk.boilr
[Context]
shared=network;ipc;
sockets=x11;wayland;fallback-x11;
devices=dri;
filesystems=~/.var/app/net.lutris.Lutris:ro;xdg-data/Steam;~/.var/app/com.valvesoftware.Steam;~/GOG Games:ro;~/.config/heroic;xdg-data/flatpak:ro;~/.config/legendary:ro;~/Games/Heroic:ro;/run/media/mmcblk0p1:ro;xdg-data/lutris:ro;~/.steam;~/.config/itch:ro;~/.var/app/com.heroicgameslauncher.hgl:ro;

[Session Bus Policy]
org.freedesktop.Flatpak=talk
~ 
❯ flatpak info --show-permissions com.valvesoftware.Steam
[Context]
shared=network;ipc;
sockets=x11;wayland;pulseaudio;
devices=all;
features=devel;multiarch;bluetooth;per-app-dev-shm;
filesystems=xdg-run/app/com.discordapp.Discord:create;xdg-pictures:ro;xdg-music:ro;
persistent=.;
unset-environment=ALSA_CONFIG_PATH;TZ;STEAM_RUNTIME_PREFER_HOST_LIBRARIES;STEAM_RUNTIME;SDL_VIDEODRIVER;MESA_GLSL_CACHE_DIR;

[Session Bus Policy]
org.kde.StatusNotifierWatcher=talk
org.freedesktop.Notifications=talk
org.gnome.SettingsDaemon.MediaKeys=talk
org.freedesktop.ScreenSaver=talk
org.freedesktop.PowerManagement=talk

[System Bus Policy]
org.freedesktop.UPower=talk
org.freedesktop.UDisks2=talk

[Environment]
ALSA_CONFIG_PATH=
TZ=
STEAM_EXTRA_COMPAT_TOOLS_PATHS=/app/share/steam/compatibilitytools.d:/app/utils/share/steam/compatibilitytools.d
PYTHONPATH=/app/utils/lib/python3.10/site-packages
LC_NUMERIC=C
LC_MONETARY=C
FLATPAK_STEAM_UPDATE_SYMLINKS=0
DBUS_FATAL_WARNINGS=0
STEAM_RUNTIME_PREFER_HOST_LIBRARIES=
FLATPAK_STEAM_XDG_DIRS_PREFIX=~/.var/app/com.valvesoftware.Steam
LC_TELEPHONE=C
SSL_CERT_DIR=/etc/ssl/certs
STEAM_RUNTIME=
LC_MEASUREMENT=C
XDG_DATA_DIRS=/app/share:/usr/lib/extensions/vulkan/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share
LC_NAME=C
XDG_CONFIG_DIRS=/etc/xdg:/usr/lib/x86_64-linux-gnu/GL:/usr/lib/i386-linux-gnu/GL
LC_COLLATE=C
SDL_VIDEODRIVER=
GST_PLUGIN_SYSTEM_PATH=/app/lib/gstreamer-1.0:/app/lib32/gstreamer-1.0:/usr/lib/extensions/gstreamer-1.0:/usr/lib/x86_64-linux-gnu/gstreamer-1.0:/usr/lib/i386-linux-gnu/gstreamer-1.0
MESA_GLSL_CACHE_DIR=
LC_ADDRESS=C
PATH=/app/bin:/app/utils/bin:/usr/bin
PROTON_DEBUG_DIR=/var/tmp

I don't know if it's relevant but it did not populate a steam path in the settings

image

To Reproduce Steps to reproduce the behavior:

  1. Start BoilR
  2. Select Flatpak games to import
  3. Restart Steam
  4. No game imported

Expected behavior A clear and concise description of what you expected to happen.

Game should be imported

Desktop (please complete the following information):

Nitrousoxide commented 11 months ago

So I looked some more into this. I had (previously) had Steam installed as a system app via DNF. Though it wasn't installed when I tried to import the games. Installing Steam again via DNF again and starting it up and I saw that it had the Retrodeck shortcut.

How does BiolR determine which version of Steam is installed? Does it check the $PATH? to see if there's a steam there, and if not then it falls back to flatpak? Does it check for the common file path in the system steam directory? If it's the latter then you could end up with it thinking steam is installed when nothing is visible in the $PATH.

PhilipK commented 8 months ago

BoilR will use the steam location that is in defined in the settings first:

https://github.com/PhilipK/BoilR/blob/839da8c18fd7cb4bd999d7ad016b8f3402b85be8/src/steam/utils.rs#L110

If nothing is defined it will guess (depending on the OS): https://github.com/PhilipK/BoilR/blob/839da8c18fd7cb4bd999d7ad016b8f3402b85be8/src/steam/utils.rs#L119

On linux it will try (in this order) ~/.steam/steam ~.var/app/com.valvesoftware.Steam/.steam/steam

If none of the options exist it will report an error and cancel the sync.

So if you have 2 steams installed, or once installed steam in ~/.steam/steam, then it will use that. If you want ~.var/app/com.valvesoftware.Steam/.steam/steam to be used, you can either set it manually in the settings, or you can delete ~./steam/steam.