Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[flatpak] Invalid cross-device link #219

Closed
Mershl opened this issue Oct 11, 2024 · 16 comments · Fixed by #220
Closed

[flatpak] Invalid cross-device link #219

Mershl opened this issue Oct 11, 2024 · 16 comments · Fixed by #220
Labels
bug Something isn't working

Comments

@Mershl
Copy link
Contributor

Mershl commented Oct 11, 2024

a Invalid cross-device link error pops up when trying to use the umu-launcher (cfe955f) via flatpak on a freshly installed Fedora 41, Flatpak 1.15.10 system.

this issue might be specific to umu-launcher being installed as a system instead of a user app.

$ git clone https://github.com/Open-Wine-Components/umu-launcher.git
$ cd umu-launcher/packaging/flatpak
$ sudo flatpak-builder --force-clean --install-deps-from=flathub --repo=umu-repo --install umu-launcher org.openwinecomponents.umu.umu-launcher.yml
$ flatpak run --env=GAMEID=UNKNOWN --env=WINEPREFIX=[some_prefix_path] org.openwinecomponents.umu.umu-launcher [some_exe_path]
Setting up Unified Launcher for Windows Games on Linux...
UMU-Proton is up to date
Downloading latest steamrt sniper, please wait...
SteamLinuxRuntime_sniper.tar.xz: SHA256 is OK
Traceback (most recent call last):
  File "/usr/lib/python3.11/shutil.py", line 853, in move
    os.rename(src, real_dst)
OSError: [Errno 18] Invalid cross-device link: '/var/home/mershl/.cache/umu/tmpl3j1fb5i/SteamLinuxRuntime_sniper/pressure-vessel' -> '/var/home/mershl/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/pressure-vessel'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/bin/umu-run", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/app/lib/python3.11/site-packages/umu/__main__.py", line 9, in main
    return umu_run()
           ^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_run.py", line 829, in main
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 204, in setup_umu
    _restore_umu(
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 515, in _restore_umu
    _install_umu(json, thread_pool, client_session)
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 177, in _install_umu
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 453, in _move
    move(src_file, dest_file)
  File "/usr/lib/python3.11/shutil.py", line 869, in move
    copytree(src, real_dst, copy_function=copy_function,
  File "/usr/lib/python3.11/shutil.py", line 573, in copytree
    return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/shutil.py", line 527, in _copytree
    raise Error(errors)
shutil.Error: [('/var/home/mershl/.cache/umu/tmpl3j1fb5i/SteamLinuxRuntime_sniper/pressure-vessel/bin/pressure-vessel-locale-gen', .................]
@R1kaB3rN
Copy link
Member

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

I'll test it as a user app later tonight. The linked issue shows a user that uses umu solely through Lutris - might be worth a look.

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

Yes, the expectation is to be installed as a user app. See https://github.com/Open-Wine-Components/umu-launcher/tree/main/packaging/flatpak#build--install-for-testing

The issue is reproducible with umu-launcher installed as an flatpak user app.

$ rm -rf ~/.local/share/Steam; rm -rf ~/.local/share/umu; rm -rf ~/.cache/umu
$ git clone https://github.com/Open-Wine-Components/umu-launcher.git
$ cd umu-launcher/packaging/flatpak
$ flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
$ flatpak-builder --force-clean --user --install-deps-from=flathub --repo=umu-repo --install umu-launcher org.openwinecomponents.umu.umu-launcher.yml
$ flatpak run --user --env=GAMEID=UNKNOWN --env=WINEPREFIX=[some_prefix_path] org.openwinecomponents.umu.umu-launcher [some_exe_path]
Setting up Unified Launcher for Windows Games on Linux...
Downloading UMU-Proton-9.0-3.sha512sum...
Downloading UMU-Proton-9.0-3.tar.gz...
Downloading latest steamrt sniper, please wait...
UMU-Proton-9.0-3.tar.gz: SHA512 is OK
Extracting UMU-Proton-9.0-3.tar.gz...
SteamLinuxRuntime_sniper.tar.xz: SHA256 is OK
'/var/home/mershl/.cache/umu/tmp4samgsu1/UMU-Proton-9.0-3' -> '/var/home/mershl/.local/share/Steam/compatibilitytools.d'
Using UMU-Proton-9.0-3
Traceback (most recent call last):
  File "/usr/lib/python3.11/shutil.py", line 853, in move
    os.rename(src, real_dst)
OSError: [Errno 18] Invalid cross-device link: '/var/home/mershl/.cache/umu/tmpdqngta9a/SteamLinuxRuntime_sniper/pressure-vessel' -> '/var/home/mershl/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/pressure-vessel'

@R1kaB3rN
Copy link
Member

Thanks for confirming. Do you mind rebuilding the Flatpak as a user at this branch https://github.com/Open-Wine-Components/umu-launcher/tree/flatpak-cross-device-link?

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

On a sidenote, from time to time this happens:

Setting up Unified Launcher for Windows Games on Linux...
Downloading UMU-Proton-9.0-3.sha512sum...
Downloading UMU-Proton-9.0-3.tar.gz...
Downloading latest steamrt sniper, please wait...
UMU-Proton-9.0-3.tar.gz: SHA512 is OK
Extracting UMU-Proton-9.0-3.tar.gz...
'/var/home/mershl/.cache/umu/tmpw_5h8rq9/UMU-Proton-9.0-3' -> '/var/home/mershl/.local/share/Steam/compatibilitytools.d'
Using UMU-Proton-9.0-3
SteamLinuxRuntime_sniper.tar.xz: SHA256 is OK
Traceback (most recent call last):
  File "/app/bin/umu-run", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/app/lib/python3.11/site-packages/umu/__main__.py", line 9, in main
    return umu_run()
           ^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_run.py", line 829, in main
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 204, in setup_umu
    _restore_umu(
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 515, in _restore_umu
    _install_umu(json, thread_pool, client_session)
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 177, in _install_umu
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/shutil.py", line 752, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib/python3.11/shutil.py", line 672, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
  File "/usr/lib/python3.11/shutil.py", line 703, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/usr/lib/python3.11/shutil.py", line 701, in _rmtree_safe_fd
    os.unlink(entry.name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'mtree.txt.gz'

@R1kaB3rN
Copy link
Member

R1kaB3rN commented Oct 11, 2024

On a sidenote, from time to time this happens:

Setting up Unified Launcher for Windows Games on Linux...
Downloading UMU-Proton-9.0-3.sha512sum...
Downloading UMU-Proton-9.0-3.tar.gz...
Downloading latest steamrt sniper, please wait...
UMU-Proton-9.0-3.tar.gz: SHA512 is OK
Extracting UMU-Proton-9.0-3.tar.gz...
'/var/home/mershl/.cache/umu/tmpw_5h8rq9/UMU-Proton-9.0-3' -> '/var/home/mershl/.local/share/Steam/compatibilitytools.d'
Using UMU-Proton-9.0-3
SteamLinuxRuntime_sniper.tar.xz: SHA256 is OK
Traceback (most recent call last):
  File "/app/bin/umu-run", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/app/lib/python3.11/site-packages/umu/__main__.py", line 9, in main
    return umu_run()
           ^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_run.py", line 829, in main
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 204, in setup_umu
    _restore_umu(
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 515, in _restore_umu
    _install_umu(json, thread_pool, client_session)
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 177, in _install_umu
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/shutil.py", line 752, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/usr/lib/python3.11/shutil.py", line 672, in _rmtree_safe_fd
    _rmtree_safe_fd(dirfd, fullname, onerror)
  File "/usr/lib/python3.11/shutil.py", line 703, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/usr/lib/python3.11/shutil.py", line 701, in _rmtree_safe_fd
    os.unlink(entry.name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'mtree.txt.gz'

From that traceback, I can tell that umu-launcher build is out off date compared to the main branch due to the number lines mismatching. I'm pretty confident that was already addressed since 976ccfa and users will get the fix in the next release,

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

!220 does not seem to fix the issue.

$ git log -1
commit ef93df170d1e7937803a1db8b0bf04652baf923e (HEAD -> flatpak-cross-device-link, origin/flatpak->
Author: R1kaB3rN <[email protected]>
Date:   Fri Oct 11 10:40:40 2024 -0700
    umu_consts: update cache path for flatpak
$ flatpak-builder --force-clean --user --install-deps-from=flathub --repo=umu-repo --install umu-launcher org.openwinecomponents.umu.umu-launcher.yml
$ rm -rf ~/.local/share/Steam; rm -rf ~/.local/share/umu; rm -rf ~/.cache/umu; rm -rf ~/.var/app/org.openwinecomponents.umu.umu-launcher
$ flatpak run --user --env=GAMEID=UNKNOWN --env=WINEPREFIX=[some_prefix_path] org.openwinecomponents.umu.umu-launcher [some_exe_path]
Setting up Unified Launcher for Windows Games on Linux...
Downloading UMU-Proton-9.0-3.sha512sum...
Downloading UMU-Proton-9.0-3.tar.gz...
Downloading latest steamrt sniper, please wait...
UMU-Proton-9.0-3.tar.gz: SHA512 is OK
Extracting UMU-Proton-9.0-3.tar.gz...
SteamLinuxRuntime_sniper.tar.xz: SHA256 is OK
'/var/home/mershl/.cache/umu/tmpi3wbkxy0/UMU-Proton-9.0-3' -> '/var/home/mershl/.local/share/Steam/compatibilitytools.d'
Using UMU-Proton-9.0-3
Traceback (most recent call last):
  File "/usr/lib/python3.11/shutil.py", line 853, in move
    os.rename(src, real_dst)
OSError: [Errno 18] Invalid cross-device link: '/var/home/mershl/.cache/umu/tmprnmk9xv3/SteamLinuxRuntime_sniper/pressure-vessel' -> '/var/home/mershl/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/pressure-vessel'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/app/bin/umu-run", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/app/lib/python3.11/site-packages/umu/__main__.py", line 9, in main
    return umu_run()
           ^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_run.py", line 829, in main
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 204, in setup_umu
    _restore_umu(
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 515, in _restore_umu
    _install_umu(json, thread_pool, client_session)
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 177, in _install_umu
    future.result()
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 453, in _move
    move(src_file, dest_file)
  File "/usr/lib/python3.11/shutil.py", line 869, in move
    copytree(src, real_dst, copy_function=copy_function,
  File "/usr/lib/python3.11/shutil.py", line 573, in copytree
    return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/shutil.py", line 527, in _copytree
    raise Error(errors)
shutil.Error: [('/var/home/mershl/.cache/umu/tmprnmk9xv3/SteamLinuxRuntime_sniper/pressure-vessel/bin/pressure-vessel-locale-gen', [.............]

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

From that traceback, I can tell that umu-launcher build is out off date compared to the main branch due to the number lines mismatching. I'm pretty confident that was already addressed since 976ccfa and users will get the fix in the next release,

that's weird. I've only been testing cfe955f and R1kaB3rN@ef93df1. I'll check if it happens again.

@R1kaB3rN
Copy link
Member

R1kaB3rN commented Oct 11, 2024

Hmm, I actually cannot reproduce this error on my system which leaves me to think this is system-specific depending on how it's configured:

> UMU_LOG=debug GAMEID=umu-2 flatpak run org.openwinecomponents.umu.umu-launcher 'Games/pc/Flowers - Le Volume Sur Automne/FLOWERS.exe' 
[umu_run] DEBUG: Connecting to '1.1.1.1'...
[umu_runtime] DEBUG: Root: /app/lib/python3.11/site-packages/umu
[umu_runtime] DEBUG: Local: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu
[umu_runtime] DEBUG: New install detected
Setting up Unified Launcher for Windows Games on Linux...
[umu_proton] DEBUG: Sending request to 'api.github.com'...
[umu_runtime] DEBUG: Acquired file lock '/home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/umu.lock'...
[umu_runtime] DEBUG: Codename: sniper
[umu_runtime] DEBUG: URL: https://repo.steampowered.com/steamrt-images-sniper/snapshots/latest-container-runtime-public-beta
send: b'GET /steamrt-images-sniper/snapshots/latest-container-runtime-public-beta/SHA256SUMS?versions=P6Rd1lk8ZLUFOMlvMNNwQg HTTP/1.1\r\nHost: repo.steampowered.com\r\nAccept-Encoding: identity\r\n\r\n'
UMU-Proton is up to date
[umu_run] DEBUG: steamuser in prefix is link: False
[umu_run] DEBUG: user in prefix is link: True
[umu_run] INFO: WINEPREFIX=/home/foo/Games/umu/umu-2
[umu_run] INFO: GAMEID=umu-2
[umu_run] INFO: PROTON_CRASH_REPORT_DIR=/tmp/umu_crashreports
[umu_run] INFO: PROTONPATH=/home/foo/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3
[umu_run] INFO: STEAM_COMPAT_APP_ID=2
[umu_run] INFO: STEAM_COMPAT_TOOL_PATHS=/home/foo/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3:/home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu
[umu_run] INFO: STEAM_COMPAT_LIBRARY_PATHS=/home/foo/Games
[umu_run] INFO: STEAM_COMPAT_MOUNTS=/home/foo/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3:/home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu
[umu_run] INFO: STEAM_COMPAT_INSTALL_PATH=/home/foo/Games/pc/Flowers - Le Volume Sur Automne
[umu_run] INFO: STEAM_COMPAT_CLIENT_INSTALL_PATH=
[umu_run] INFO: STEAM_COMPAT_DATA_PATH=/home/foo/Games/umu/umu-2
[umu_run] INFO: STEAM_COMPAT_SHADER_PATH=/home/foo/Games/umu/umu-2/shadercache
[umu_run] INFO: FONTCONFIG_PATH=
[umu_run] INFO: EXE=/home/foo/Games/pc/Flowers - Le Volume Sur Automne/FLOWERS.exe
[umu_run] INFO: SteamAppId=2
[umu_run] INFO: SteamGameId=2
[umu_run] INFO: STEAM_RUNTIME_LIBRARY_PATH=/home/foo/Games/pc/Flowers - Le Volume Sur Automne:/usr/lib64:/app/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu/GL/default/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/openh264/extra:/app/lib/i386-linux-gnu/GL/default/lib
[umu_run] INFO: STORE=
[umu_run] INFO: PROTON_VERB=waitforexitandrun
[umu_run] INFO: UMU_ID=umu-2
[umu_run] INFO: ULWGL_ID=umu-2
[umu_run] INFO: UMU_ZENITY=
[umu_run] INFO: UMU_NO_RUNTIME=
[umu_run] INFO: UMU_RUNTIME_UPDATE=
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Fri, 11 Oct 2024 18:11:41 GMT
header: Content-Type: text/plain
header: Content-Length: 267901
header: Connection: keep-alive
header: Last-Modified: Tue, 08 Oct 2024 12:53:06 GMT
header: ETag: "67052b32-4167d"
header: Cache-Control: public
header: CF-Cache-Status: MISS
header: Accept-Ranges: bytes
header: Vary: Accept-Encoding
header: Server: cloudflare
header: CF-RAY: 8d10d063e81dcb97-LAX
Downloading latest steamrt sniper, please wait...
send: b'GET /steamrt-images-sniper/snapshots/latest-container-runtime-public-beta/SteamLinuxRuntime_sniper.tar.xz?versions=P6Rd1lk8ZLUFOMlvMNNwQg HTTP/1.1\r\nHost: repo.steampowered.com\r\nAccept-Encoding: identity\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Fri, 11 Oct 2024 18:11:41 GMT
header: Content-Type: application/octet-stream
header: Content-Length: 182863832
header: Connection: keep-alive
header: Last-Modified: Tue, 08 Oct 2024 12:53:09 GMT
header: ETag: "67052b35-ae647d8"
header: Cache-Control: public
header: CF-Cache-Status: MISS
header: Accept-Ranges: bytes
header: Vary: Accept-Encoding
header: Server: cloudflare
header: CF-RAY: 8d10d066cb44cb97-LAX
SteamLinuxRuntime_sniper.tar.xz: SHA256 is OK
[umu_runtime] DEBUG: Opening: /tmp/tmpibuyhbqg/SteamLinuxRuntime_sniper.tar.xz
[umu_runtime] DEBUG: Created: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli
[umu_runtime] DEBUG: Moving: /tmp/tmpibuyhbqg/SteamLinuxRuntime_sniper.tar.xz -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli
[umu_runtime] DEBUG: Using filter for archive
[umu_runtime] DEBUG: Extracting: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper.tar.xz -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli
[umu_runtime] DEBUG: Source: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper
[umu_runtime] DEBUG: Destination: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/README.md -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/README.md
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/VERSIONS.txt -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/VERSIONS.txt
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/_v2-entry-point -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/_v2-entry-point
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/run -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/run
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/mtree.txt.gz -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/mtree.txt.gz
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/pressure-vessel -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/pressure-vessel
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/run-in-sniper -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/run-in-sniper
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/sniper_platform_0.20241008.104210 -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/sniper_platform_0.20241008.104210
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/steampipe -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/steampipe
[umu_runtime] DEBUG: Moving: /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/cache/umu/tmpfjbzptli/SteamLinuxRuntime_sniper/toolmanifest.vdf -> /home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/toolmanifest.vdf
[umu_runtime] DEBUG: Renaming: _v2-entry-point -> umu
Verifying integrity of sniper_platform_0.20241008.104210...
sniper_platform_0.20241008.104210: mtree is OK
[umu_runtime] DEBUG: Released file lock '/home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/umu.lock'
[umu_run] DEBUG: (PosixPath('/home/foo/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/umu'), '--verb', 'waitforexitandrun', '--', PosixPath('/home/foo/.local/share/Steam/compatibilitytools.d/UMU-Proton-9.0-3/proton'), 'waitforexitandrun', '/home/foo/Games/pc/Flowers - Le Volume Sur Automne/FLOWERS.exe')
[umu_run] DEBUG: prctl exited with status: 0
ProtonFixes[95] INFO: Running protonfixes
ProtonFixes[95] INFO: Running checks
ProtonFixes[95] INFO: All checks successful
ProtonFixes[95] INFO: Non-steam game UNKNOWN (umu-2)
ProtonFixes[95] INFO: No store specified, using UMU database
ProtonFixes[95] INFO: Using global defaults for UNKNOWN (umu-2)
ProtonFixes[95] INFO: Non-steam game UNKNOWN (umu-2)
ProtonFixes[95] INFO: No store specified, using UMU database
ProtonFixes[95] INFO: No global protonfix found for UNKNOWN (umu-2)
Proton: /home/foo/Games/pc/Flowers - Le Volume Sur Automne/FLOWERS.exe
Proton: Executable a unix path, launching with /unix option.
wine: using kernel write watches, use_kernel_writewatch 1.
fsync: up and running.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: using kernel write watches, use_kernel_writewatch 1.
wine: Read access denied for device L"\\??\\D:\\", FS volume label and serial are not available.
wine: Read access denied for device L"\\??\\E:\\", FS volume label and serial are not available.
/usr/lib/i386-linux-gnu/GL/default/share/libdrm/amdgpu.ids: No such file or directory
[umu_run] DEBUG: Child 11 exited with wait status: 0

In the above trace back, umu-launcher is extacting and moving files from it's private Flatpak cache where it successfully completes and proceeds to run the game.

@R1kaB3rN
Copy link
Member

And because the extraction occurs from the private Flatpak cache, presumably, it should be within the same Linux namespace and filesystem. Though perhaps my assumption is wrong there? We could revert to extracting from the tmpfs temporarily for Flatpak until I take a closer look at this, but I'd really prefer not to.

@R1kaB3rN
Copy link
Member

Also, from your traceback, the line numbers are mismatching again. At line 177, umu-launcher doesn't wait for its threads at that point .

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

Also, from your traceback, the line numbers are mismatching again. At line 177, umu-launcher doesn't wait for its threads at that point .

I really don't know what is happening here....

clean installation, fresh shell:

$ flatpak remove org.openwinecomponents.umu.umu-launcher
$ rm -rf ~/.local/share/Steam; rm -rf ~/.local/share/umu; rm -rf ~/.cache/umu; rm -rf ~/.var/app/org.openwinecomponents.umu.umu-launcher
$ flatpak run --env=GAMEID=UNKNOWN --env=WINEPREFIX=...... org.openwinecomponents.umu.umu-launcher .........
error: app/org.openwinecomponents.umu.umu-launcher/x86_64/master not installed
$ git clone https://github.com/R1kaB3rN/ULWGL-launcher.git
$ cd ULWGL-launcher/packaging/flatpak
$ git checkout flatpak-cross-device-link
$ git log -1 | head
commit ef93df170d1e7937803a1db8b0bf04652baf923e
Author: R1kaB3rN <[email protected]>
Date:   Fri Oct 11 10:40:40 2024 -0700
    umu_consts: update cache path for flatpak
$ flatpak-builder --force-clean --user --install-deps-from=flathub --repo=umu-repo --install umu-launcher org.openwinecomponents.umu.umu-launcher.yml
$ flatpak run --env=GAMEID=UNKNOWN --env=WINEPREFIX=...... org.openwinecomponents.umu.umu-launcher .........
[...]
OSError: [Errno 18] Invalid cross-device link: '/var/home/mershl/.cache/umu/tmpqi09i42g/SteamLinuxRuntime_sniper/pressure-vessel' -> '/var/home/mershl/.var/app/org.openwinecomponents.umu.umu-launcher/data/umu/pressure-vessel'
[...]
  File "/app/lib/python3.11/site-packages/umu/umu_runtime.py", line 177, in _install_umu
    future.result()

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

$ find ~ -name "umu_runtime.py" 2>/dev/null
/var/home/mershl/.local/share/flatpak/app/org.openwinecomponents.umu.umu-launcher/x86_64/master/58a57bc80657034a600b2d7832a0d599a7f3589fdad6b712a4ff0f5cfc1855c5/files/lib/python3.11/site-packages/umu/umu_runtime.py
/var/home/mershl/.local/share/flatpak/app/org.openwinecomponents.umu.umu-launcher/x86_64/master/58a57bc80657034a600b2d7832a0d599a7f3589fdad6b712a4ff0f5cfc1855c5/files/usr/lib/python3.11/site-packages/umu/umu_runtime.py
$ sed -n 175,180p /var/home/mershl/.local/share/flatpak/app/org.openwinecomponents.umu.umu-launcher/x86_64/master/58a57bc80657034a600b2d7832a0d599a7f3589fdad6b712a4ff0f5cfc1855c5/files/lib/python3.11/site-packages/umu/umu_runtime.py

            for future in futures:
                future.result()

    # Rename _v2-entry-point
    log.debug("Renaming: _v2-entry-point -> umu")
$ sed -n 175,180p /var/home/mershl/.local/share/flatpak/app/org.openwinecomponents.umu.umu-launcher/x86_64/master/58a57bc80657034a600b2d7832a0d599a7f3589fdad6b712a4ff0f5cfc1855c5/files/usr/lib/python3.11/site-packages/umu/umu_runtime.py

            for future in futures:
                future.result()

    # Rename _v2-entry-point
    log.debug("Renaming: _v2-entry-point -> umu")
$ git log -1 | head
commit ef93df170d1e7937803a1db8b0bf04652baf923e
Author: R1kaB3rN <[email protected]>
Date:   Fri Oct 11 10:40:40 2024 -0700
    umu_consts: update cache path for flatpak
$ sed -n 175,180p umu/umu_runtime.py
                log.debug("Removing: %s", var)
                # Remove the variable directory to avoid Steam Linux Runtime
                # related errors when creating it. Supposedly, it only happens
                # when going from umu-launcher 0.1-RC4 -> 1.1.1
                # See https://github.com/Open-Wine-Components/umu-launcher/issues/213#issue-2576708738
                thread_pool.submit(rmtree, str(var))

I suspect something in flatpak-builder --force-clean --user --install-deps-from=flathub --repo=umu-repo --install umu-launcher org.openwinecomponents.umu.umu-launcher.yml is using a build from flathub instead of actually building it locally.

@zocker-160
Copy link

zocker-160 commented Oct 11, 2024

Probably this needs to be changed to latest commit?

@Mershl
Copy link
Contributor Author

Mershl commented Oct 11, 2024

@zocker-160 with the big hit! that's exactly it.

quick fixing org.openwinecomponents.umu.umu-launcher.yml to

    sources:
      - type: git
        url: https://github.com/R1kaB3rN/ULWGL-launcher
        commit: ef93df170d1e7937803a1db8b0bf04652baf923e
$ flatpak-builder --force-clean --user --install-deps-from=flathub --repo=umu-repo --install umu-launcher org.openwinecomponents.umu.umu-launcher.yml
$ sed -n 175,180p /var/home/mershl/.local/share/flatpak/app/org.openwinecomponents.umu.umu-launcher/x86_64/master/8cae54d438520992a395317bf83c81c4d20b6f9205d4bd3303b5f91df9bd1a49/files/usr/lib/python3.11/site-packages/umu/umu_runtime.py
                log.debug("Removing: %s", var)
                # Remove the variable directory to avoid Steam Linux Runtime
                # related errors when creating it. Supposedly, it only happens
                # when going from umu-launcher 0.1-RC4 -> 1.1.1
                # See https://github.com/Open-Wine-Components/umu-launcher/issues/213#issue-2576708738
                thread_pool.submit(rmtree, str(var))

fixes the Invalid cross-device link issue, umu initialization, prefix creation and game is going ingame.

@R1kaB3rN
Copy link
Member

Linking the Lutris Flatpak issue below for tracking purposes.

flathub/net.lutris.Lutris#440

@Open-Wine-Components Open-Wine-Components locked and limited conversation to collaborators Oct 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants