Heroic-Games-Launcher / HeroicGamesLauncher

A games launcher for GOG, Amazon and Epic Games for Linux, Windows and macOS.
https://heroicgameslauncher.com
GNU General Public License v3.0
8.08k stars 423 forks source link

Native linux games failing to install #2678

Closed 3vilg3nius closed 1 year ago

3vilg3nius commented 1 year ago

Describe the bug

after the 2.7.1 update when installing native linux games the install will fail, windows games install fine.

Add logs

(15:29:50) INFO:    [Gog]:              Running command: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth

(15:29:50) DEBUG:   [Backend]:          {"free":409338982400,"diskSize":488983355392,"message":"381.23 GiB / 455.4 GiB","validPath":true}

(15:29:50) INFO:    [Gog]:              Getting game metadata: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json info 1150392214 --token <redacted> --lang=en-US --os windows

(15:29:52) DEBUG:   [Backend]:          {"free":409338982400,"diskSize":488983355392,"message":"381.23 GiB / 455.4 GiB","validPath":true}

(15:30:02) DEBUG:   [Backend]:          {"free":87987875840,"diskSize":471416549376,"message":"81.95 GiB / 439.04 GiB","validPath":true}

(15:30:03) INFO:    [Gog]:              Running command: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth

(15:30:03) INFO:    [Gog]:              Getting game metadata: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json info 1150392214 --token <redacted> --lang=en-US --os linux

(15:30:04) ERROR:   [Gog]:              stdout = false and res.abort = false in getInstallInfo

(15:30:04) INFO:    [DownloadManager]:  DUSK  was added to the download queue.

(15:30:04) INFO:    [Gog]:              Running command: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth

(15:30:04) INFO:    [Gog]:              Installing 1150392214: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json download 1150392214 --platform linux --path=/home/john/mnt/SSD1/Games/Heroic --token <redacted> --with-dlcs --lang=en --max-workers 3

(15:30:04) DEBUG:   [Gog]:              Logging to file "/home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/GamesConfig/1150392214.log"

(15:30:07) INFO:    [Gog]:              Progress for DUSK: 0%/19.42MB/00:00:00 Down: 19.4MB/s / Disk: 19.4MB/s

(15:30:08) INFO:    [Gog]:              Progress for DUSK: 0.8%/29.13MB/00:04:08 Down: 9.7MB/s / Disk: 9.7MB/s

(15:30:09) INFO:    [Gog]:              Progress for DUSK: 1.2%/60.69MB/00:04:07 Down: 31.55MB/s / Disk: 31.55MB/s

(15:30:10) INFO:    [Gog]:              Progress for DUSK: 2.5%/89.83MB/00:02:36 Down: 29.1MB/s / Disk: 29.1MB/s

(15:30:12) INFO:    [Gog]:              Progress for DUSK: 4.5%/150.52MB/00:02:07 Down: 41.23MB/s / Disk: 41.23MB/s

(15:30:16) INFO:    [Gog]:              Progress for DUSK: 9.4%/257.35MB/00:01:36 Down: 29.1MB/s / Disk: 29.1MB/s

(15:30:19) INFO:    [Gog]:              Progress for DUSK: 13.5%/352.03MB/00:01:23 Down: 24.26MB/s / Disk: 24.26MB/s

(15:30:20) INFO:    [Gog]:              Progress for DUSK: 14.5%/354.46MB/00:01:22 Down: 2.43MB/s / Disk: 2.43MB/s

(15:30:21) INFO:    [Gog]:              Progress for DUSK: 14.6%/369.02MB/00:01:27 Down: 14.56MB/s / Disk: 14.56MB/s

(15:30:25) INFO:    [Gog]:              Progress for DUSK: 20.1%/502.55MB/00:01:15 Down: 14.55MB/s / Disk: 14.55MB/s

(15:30:27) INFO:    [Gog]:              Progress for DUSK: 20.8%/509.83MB/00:01:20 Down: 4.85MB/s / Disk: 4.85MB/s

(15:30:29) INFO:    [Gog]:              Progress for DUSK: 22.6%/553.53MB/00:01:18 Down: 4.85MB/s / Disk: 4.85MB/s

(15:30:30) INFO:    [Gog]:              Progress for DUSK: 22.8%/558.39MB/00:01:21 Down: 4.85MB/s / Disk: 4.85MB/s

(15:30:31) INFO:    [Gog]:              Progress for DUSK: 23%/577.81MB/00:01:23 Down: 19.4MB/s / Disk: 19.4MB/s

(15:30:32) INFO:    [Gog]:              Progress for DUSK: 23.8%/616.66MB/00:01:23 Down: 38.8MB/s / Disk: 38.8MB/s

(15:30:33) INFO:    [Gog]:              Progress for DUSK: 25.4%/655.50MB/00:01:19 Down: 38.81MB/s / Disk: 38.81MB/s

(15:30:35) INFO:    [Gog]:              Progress for DUSK: 28.8%/747.76MB/00:01:11 Down: 48.5MB/s / Disk: 48.5MB/s

(15:30:36) INFO:    [Gog]:              Progress for DUSK: 30.8%/789.03MB/00:01:07 Down: 41.23MB/s / Disk: 41.23MB/s

(15:30:47) INFO:    [Gog]:              Progress for DUSK: 44.8%/1121.64MB/00:00:50 Down: 33.95MB/s / Disk: 33.95MB/s

(15:30:59) INFO:    [Gog]:              Progress for DUSK: 62.1%/1548.93MB/00:00:32 Down: 41.24MB/s / Disk: 41.24MB/s

(15:31:00) INFO:    [Gog]:              Progress for DUSK: 63.8%/1575.63MB/00:00:30 Down: 26.68MB/s / Disk: 26.68MB/s

(15:31:01) INFO:    [Gog]:              Progress for DUSK: 64.9%/1614.48MB/00:00:29 Down: 38.8MB/s / Disk: 38.8MB/s

(15:31:02) INFO:    [Gog]:              Progress for DUSK: 66.5%/1658.18MB/00:00:28 Down: 43.65MB/s / Disk: 43.65MB/s

(15:31:03) INFO:    [Gog]:              Progress for DUSK: 68.3%/1692.17MB/00:00:26 Down: 33.95MB/s / Disk: 33.95MB/s

(15:31:04) INFO:    [Gog]:              Progress for DUSK: 69.7%/1726.15MB/00:00:25 Down: 33.95MB/s / Disk: 33.95MB/s

(15:31:05) INFO:    [Gog]:              Progress for DUSK: 71.1%/1779.57MB/00:00:24 Down: 53.35MB/s / Disk: 53.35MB/s

(15:31:06) INFO:    [Gog]:              Progress for DUSK: 73.3%/1811.13MB/00:00:21 Down: 31.53MB/s / Disk: 31.53MB/s

(15:31:07) INFO:    [Gog]:              Progress for DUSK: 74.6%/1837.83MB/00:00:20 Down: 26.68MB/s / Disk: 26.68MB/s

(15:31:09) INFO:    [Gog]:              Progress for DUSK: 77%/1908.24MB/00:00:18 Down: 38.81MB/s / Disk: 38.81MB/s

(15:31:11) INFO:    [Gog]:              Progress for DUSK: 79.9%/1973.79MB/00:00:16 Down: 33.95MB/s / Disk: 33.95MB/s

(15:32:12) INFO:    [Gog]:              Running command: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth

(15:32:12) INFO:    [Gog]:              Getting game metadata: /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json info 1150392214 --token <redacted> --lang=en-US --os linux

(15:32:13) ERROR:   [Gog]:              stdout = false and res.abort = false in getInstallInfo

(15:32:13) ERROR:   [Gog]:              install info is undefined in GOG install

(15:32:13) ERROR:   [DownloadManager]:  Installation of 1150392214 failed with: 

(15:32:13) WARNING: [DownloadManager]:  Installation of 1150392214 failed!

(15:32:13) INFO:    [DownloadManager]:  1150392214 added to download manager finished.

(15:32:13) INFO:    [DownloadManager]:  1150392214 removed from download manager.

Steps to reproduce

  1. start installing a native linux game
  2. after a while a popup will state installation failed.

Expected behavior

game installs.

Screenshots

No response

Heroic Version

Latest Stable

System Information

Additional information

No response

av-dx commented 1 year ago

Can you attach the gogdl log output? I am having the same issue on Arch Linux. Here is the log of the error from my end:

[5/3/2023, 6:22:42 PM] /opt/Heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/aashwin/.config/heroic/gog_store/auth.json info 1503950763 --token <redacted> --lang=en-US --os linux
[API] INFO: Getting info from products endpoint for id: 1503950763
[LINUX] INFO: Getting folder name from windows manifest
Traceback (most recent call last):
  File "gogdl/cli.py", line 51, in <module>
  File "gogdl/cli.py", line 47, in main
  File "gogdl/dl/manager.py", line 36, in calculate_download_size
  File "gogdl/dl/manager.py", line 98, in get_download_metadata
  File "gogdl/dl/linux_native.py", line 39, in download
AttributeError: 'Namespace' object has no attribute 'path'
[34667] Failed to execute script 'cli' due to unhandled exception!

It seems the function called for "info" command is expecting a "path" argument?

3vilg3nius commented 1 year ago

sorry for the delayed response I have tried on my laptop as well with the same issue here is the gogdl log from my laptop

[LINUX] INFO: Checking available disk space warning [/home/john/.var/app/com.heroicgameslauncher.hgl/cache/heroicGOGdl/dusk_1_8_1_linux_51317.s]: 855562 extra bytes at beginning or within zipfile (attempting to process anyway) [LINUX] INFO: Looks fine continuing [LINUX] INFO: Unpacking game files [LINUX] INFO: Unpacking installer using unzip warning [/home/john/.var/app/com.heroicgameslauncher.hgl/cache/heroicGOGdl/dusk_1_8_1_linux_51317.s]: 855562 extra bytes at beginning or within zipfile (attempting to process anyway) [LINUX] INFO: Moving game files Traceback (most recent call last): File "urllib3/connectionpool.py", line 703, in urlopen File "urllib3/connectionpool.py", line 449, in _make_request File "", line 3, in raise_from File "urllib3/connectionpool.py", line 444, in _make_request File "http/client.py", line 1377, in getresponse File "http/client.py", line 320, in begin File "http/client.py", line 281, in _read_status File "socket.py", line 704, in readinto File "ssl.py", line 1242, in recv_into File "ssl.py", line 1100, in read ConnectionResetError: [Errno 104] Connection reset by peer

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "requests/adapters.py", line 489, in send File "urllib3/connectionpool.py", line 787, in urlopen File "urllib3/util/retry.py", line 550, in increment File "urllib3/packages/six.py", line 769, in reraise File "urllib3/connectionpool.py", line 703, in urlopen File "urllib3/connectionpool.py", line 449, in _make_request File "", line 3, in raise_from File "urllib3/connectionpool.py", line 444, in _make_request File "http/client.py", line 1377, in getresponse File "http/client.py", line 320, in begin File "http/client.py", line 281, in _read_status File "socket.py", line 704, in readinto File "ssl.py", line 1242, in recv_into File "ssl.py", line 1100, in read urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "gogdl/cli.py", line 51, in File "gogdl/cli.py", line 47, in main File "gogdl/dl/manager.py", line 26, in download File "gogdl/dl/manager.py", line 98, in get_download_metadata File "gogdl/dl/linux_native.py", line 69, in download File "gogdl/dl/linux_native.py", line 109, in download_installer File "requests/sessions.py", line 600, in get File "requests/sessions.py", line 587, in request File "requests/sessions.py", line 701, in send File "requests/adapters.py", line 547, in send requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) [230] Failed to execute script 'cli' due to unhandled exception! [06/05/2023, 10:06:07] /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth {"access_token": "B5rCdUarYtsamxjhWuF5F1MGi-60b-hUJBel5mhLN60w-Fll8Lomhwx69CkxcB3oN_sCHzKqIVyGK9pv6NtkLK2OgAv71xaE3a8VG7dCeMlNxmGmwP_HmXb8hm3yjXRyJQxXoFAdM4DYwQkVIIPqTMM-wdxCE0pOcjimT4p4YojPPw1QxRIsukuX1tL1IKS1", "expires_in": 3600, "token_type": "bearer", "scope": "", "session_id": "7215944513693737128", "refresh_token": "Hgyp9InML5ITxWkRLR9Tg81-0x5aL7zHFy9TEUvo82xSGwKCLJczs7Wtp7avykOg", "user_id": "47236422207237825", "loginTime": 1683363333.4797862} [06/05/2023, 10:06:07] /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json info 1150392214 --token --lang=en-US --os linux [API] INFO: Getting info from products endpoint for id: 1150392214 [LINUX] INFO: Getting folder name from windows manifest Traceback (most recent call last): File "gogdl/cli.py", line 51, in File "gogdl/cli.py", line 47, in main File "gogdl/dl/manager.py", line 36, in calculate_download_size File "gogdl/dl/manager.py", line 98, in get_download_metadata File "gogdl/dl/linux_native.py", line 39, in download AttributeError: 'Namespace' object has no attribute 'path' [263] Failed to execute script 'cli' due to unhandled exception! [06/05/2023, 10:06:08] /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth {"access_token": "B5rCdUarYtsamxjhWuF5F1MGi-60b-hUJBel5mhLN60w-Fll8Lomhwx69CkxcB3oN_sCHzKqIVyGK9pv6NtkLK2OgAv71xaE3a8VG7dCeMlNxmGmwP_HmXb8hm3yjXRyJQxXoFAdM4DYwQkVIIPqTMM-wdxCE0pOcjimT4p4YojPPw1QxRIsukuX1tL1IKS1", "expires_in": 3600, "token_type": "bearer", "scope": "", "session_id": "7215944513693737128", "refresh_token": "Hgyp9InML5ITxWkRLR9Tg81-0x5aL7zHFy9TEUvo82xSGwKCLJczs7Wtp7avykOg", "user_id": "47236422207237825", "loginTime": 1683363333.4797862} [06/05/2023, 10:06:19] /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/john/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth {"access_token": "B5rCdUarYtsamxjhWuF5F1MGi-60b-hUJBel5mhLN60w-Fll8Lomhwx69CkxcB3oN_sCHzKqIVyGK9pv6NtkLK2OgAv71xaE3a8VG7dCeMlNxmGmwP_HmXb8hm3yjXRyJQxXoFAdM4DYwQkVIIPqTMM-wdxCE0pOcjimT4p4YojPPw1QxRIsukuX1tL1IKS1", "expires_in": 3600, "token_type": "bearer", "scope": "", "session_id": "7215944513693737128", "refresh_token": "Hgyp9InML5ITxWkRLR9Tg81-0x5aL7zHFy9TEUvo82xSGwKCLJczs7Wtp7avykOg", "user_id": "47236422207237825", "loginTime": 1683363333.4797862}

3vilg3nius commented 1 year ago

Same on my steamdeck as well.

av-dx commented 1 year ago

This seems to confirm the error with "info" command. Not sure about the 104 error, though. It didn't happen with any of the games I tested. Can you confirm if it happens with other games, or over multiple install attempts? (There are some free games on GOG for Linux, that have a small download size that you can use to check).

keros commented 1 year ago

Same problem here with Project Zomboid

WolfMad commented 1 year ago

hi I am getting the same error I tried to install Soma and I got the failure to install error I opened the folder where the game was to be installed too and it looked like the game was installed then I checked the size of the folder the size I got was 22.1 GB and the information for the game page had the installed size of 20.59 GiB

there may be two errors 1 Heroic fails to start the installer for the game 2 Heroic runs the installer but then Heroic fails to detect that the game has been installed

imLinguin commented 1 year ago

at this moment we can't predict the size of Linux native games, since they are in one zip archive. So currently displayed size is what windows manifest states. This however is unrelated to this issue @WolfMad

WolfMad commented 1 year ago

hi I have tested some more games Beneath a Steel Sky FTL: Advanced Edition Jill of the Jungle: The Complete Trilogy OpenTTD clicking install then I get the failure to install error then click clicking install -> import Game the game runs without a problem there is one game that did not work with Dragonsphere I think there is more than one problem

1) Heroic runs the installer but then Heroic fails to detect that the game has been installed Note the game's files are getting installed 2) how Heroic detects the game files are installed

DeWir3 commented 1 year ago

Just had the same with Shovel Knight: King of Cards on my Steam Deck. The install "failed", but the game is there when I check the install folder. It launches fine as well and I could then import it in Heroic and add it to steam. So everything works, just Heroic thinks the install failed even though it worked.

av-dx commented 1 year ago

By the same idea as @imLinguin mentioned, I have added a workaround to use windows manifest instead of linux, since GOG API could not return builds for Linux.

sluedecke commented 1 year ago

Same here, install fails for Encased: A Sci-Fi Post-Apocalyptic RPG and Edna & Harvey: The Breakout - Anniversary Edition, but importing the game into heroic works fine afterwards.

This is what gogdl logs for Encased:

[LINUX] INFO: Checking available disk space
warning [/home/deck/.var/app/com.heroicgameslauncher.hgl/cache/heroicGOGdl/encased_rpg_run_and_gun_kit_1_3_1517_1645_55620.s]:  931505 extra bytes at beginning or within zipfile
  (attempting to process anyway)
[LINUX] INFO: Looks fine continuing
[LINUX] INFO: Unpacking game files
[LINUX] INFO: Unpacking installer using unzip
warning [/home/deck/.var/app/com.heroicgameslauncher.hgl/cache/heroicGOGdl/encased_rpg_run_and_gun_kit_1_3_1517_1645_55620.s]:  931505 extra bytes at beginning or within zipfile
  (attempting to process anyway)
[LINUX] INFO: Moving game files
[LINUX] INFO: Cleaning up
[LINUX] INFO: Done
[5/11/2023, 11:15:14 AM] /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json auth
{"access_token": "<redacted>", "expires_in": 3600, "token_type": "bearer", "scope": "", "session_id": "<redacted>", "refresh_token": "<redacted>", "user_id": "<redacted>", "loginTime": 1683794766.8725433}
[5/11/2023, 11:15:14 AM] /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl --auth-config-path /home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/gog_store/auth.json info 1988363275 --token <redacted> --lang=en-US --os linux
[API] INFO: Getting info from products endpoint for id: 1988363275
[LINUX] INFO: Getting folder name from windows manifest
Traceback (most recent call last):
  File "gogdl/cli.py", line 51, in <module>
  File "gogdl/cli.py", line 47, in main
  File "gogdl/dl/manager.py", line 36, in calculate_download_size
  File "gogdl/dl/manager.py", line 98, in get_download_metadata
  File "gogdl/dl/linux_native.py", line 39, in download
AttributeError: 'Namespace' object has no attribute 'path'
[531] Failed to execute script 'cli' due to unhandled exception!
arvindhmani commented 1 year ago

On a somewhat related note, is there a way to have Heroic download the installer blobs of Linux native games - such as The Witcher 2, which comes up to around 17 GB - to the SD card rather than /home? It is just a little too big for my 64 GB Steam Deck where I'm usually at only around 5 GB free space in the built-in storage drive.

av-dx commented 1 year ago

@arvindhmani Perhaps your issue is closer to #1704 than this one?

arvindhmani commented 1 year ago

Thank you, that seems to be the exact same issue!

ndegruchy commented 1 year ago

I get the same issue. Any Linux native games I try to install get an error, anything that I mark to install the Windows version download just fine.

arielj commented 1 year ago

this is already fixed in the development branch, the fix will be include in the next release (I understand it's going to happen this week)

arielj commented 1 year ago

closing, native GOG games installation should be fixed