Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.57k stars 35 forks source link

GUI doesn't start, instead shows error 'no such file: appmanifest' after directory transfer #252

Closed Orbenus closed 10 months ago

Orbenus commented 10 months ago

Describe the bug Using Steam Deck's SteamOS, I transferred all games from SD card to the internal NVME. After the transfer, Protontricks keeps crashing trying to access appmanifest files that used to be in the SD card directory (see error log below for missing file location) but are now located in the NVME.

After transfer, '/run/media/mmcblk0p1/steamapps/' does not contain any appmanifest files.

To Reproduce Steps to reproduce the behavior:

  1. With Steam Deck, have two Steam library locations: NVME and the SD card
  2. Use Protontricks to modify a game (e.g. install d3dx9)
  3. Transfer all games from SD card to NVME
  4. Run Protontricks from the desktop or CLI
  5. Command fails and error is displayed (No such file or directory: /run/media/mmcblk0p1/steamapps/appmanifest xyz)

Expected behavior Protontricks GUI to open without errors, populating the games list from the Steam Deck location that has games installed in.

System (please complete the following information):

Additional context

Protontricks was closed due to the following error:

Traceback (most recent call last): File "/app/lib/python3.10/site-packages/protontricks/cli/util.py", line 149, in wrapper return cli_func(self, *args, **kwargs) File "/app/lib/python3.10/site-packages/protontricks/cli/main.py", line 241, in main steam_apps = get_steam_apps( File "/app/lib/python3.10/site-packages/protontricks/steam.py", line 1253, in get_steam_apps steam_app = SteamApp.from_appmanifest( File "/app/lib/python3.10/site-packages/protontricks/steam.py", line 190, in from_appmanifest content = path.read_text(encoding="utf-8") File "/usr/lib/python3.10/pathlib.py", line 1134, in read_text with self.open(mode='r', encoding=encoding, errors=errors) as f: File "/usr/lib/python3.10/pathlib.py", line 1119, in open return self._accessor.open(self, mode, buffering, encoding, errors, FileNotFoundError: [Errno 2] No such file or directory: '/run/media/mmcblk0p1/steamapps/appmanifest_442120.acf'

=============

Please include this entire error message when making a bug report. Log messages:

Running inside Flatpak sandbox, version 1.12.4. Found Steam directory at /home/deck/.local/share/Steam Using default Steam Runtime at /home/deck/.local/share/Steam/ubuntu12_32/steam-runtime WINETRICKS environment variable is not available. Searching from $PATH. Found 2 Steam library folders

Matoking commented 10 months ago

Seems similar to #239; the Protontricks iterates appmanifest files in a directory and then reads them one by one. It wouldn't make sense for a file to "disappear" after we just found it like that, unless it's a symlink to a now non-existent location or some other weirdness such as filesystem corruption.

Could you try running these commands and checking what each of them prints?

$ ls -lh /home/deck/.local/share/Steam/steamapps
$ ls -lh /run/media/mmcblk0p1/steamapps
$ ls -lh /run/media/mmcblk0p1

I'd assume the first command should list appmanifest_442120.acf among the files? If not, what about the latter two commands?

Orbenus commented 10 months ago

I read the case [#239] you referred to, and indeed it looks similar:

(deck@Wimma ~)$ ls -lh /run/media/mmcblk0p1/steamapps ls: cannot access '/run/media/mmcblk0p1/steamapps/appmanifest_442120.acf': No such file or directory ls: cannot access '/run/media/mmcblk0p1/steamapps/appmanifest_442120.acf': No such file or directory ls: cannot access '/run/media/mmcblk0p1/steamapps/appmanifest_201870.acf': No such file or directory total 0 -????????? ? ? ? ? ? appmanifest_201870.acf -????????? ? ? ? ? ? appmanifest_442120.acf -????????? ? ? ? ? ? appmanifest_442120.acf drwxr-xr-x 1 deck deck 18 Aug 28 14:27 common drwxr-xr-x 1 deck deck 0 Aug 28 14:27 compatdata drwxr-xr-x 1 deck deck 0 Aug 28 12:14 downloading drwxr-xr-x 1 deck deck 0 Aug 28 12:14 temp (1)(deck@Wimma ~)$

I am running btrfs file system on both NVME and the SD card. Like the reporter of the other case, I too have to next investigate how to fix the file system issue. Thanks for the help!