itchio / itch

🎮 The best way to play your itch.io games
https://itch.io/app
MIT License
2.34k stars 206 forks source link

Linux games with single executable non-zipped cannot be installed through itch app #2701

Open akien-mga opened 3 years ago

akien-mga commented 3 years ago

I see this every now and then for Godot-made games when they use the export option that gives them a single executable (some game data is packed into the executable).

Such a Linux binary is typically named mygame.x86_64, and uploading it on itch without zipping it causes issues for the itch app on Linux, which seems unable to decide how to install it.

This happens for example with the current build of One last Slime: https://chaoswitchnikol.itch.io/one-last-slime (One last Slime a.3.1.x86_64)

Another example with a 32-bit Linux build for Killing Words: https://otter-games.itch.io/killing-words (Linux_KillingWords_1.2.1.x86)

Log output:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Log
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

August 20, 2021, 12:02:39 [INFO] Queuing install for One last Slime - https://chaoswitchnikol.itch.io/one-last-slime
August 20, 2021, 12:02:39 [INFO] Generated fresh cave 3ec66b3a-5f8e-4156-86e9-61c1d54f2c8a
August 20, 2021, 12:02:39 [INFO] Upload specified:
August 20, 2021, 12:02:39 [INFO]   ☁ One last Slime a.3.1.x86_64 :: 71.84 MiB :: #4330465
August 20, 2021, 12:02:39 [INFO]     Executable :: Linux all
August 20, 2021, 12:02:39 [INFO] Upload is not wharf-enabled
August 20, 2021, 12:02:39 [INFO] → Performing install for One last Slime - https://chaoswitchnikol.itch.io/one-last-slime
August 20, 2021, 12:02:39 [INFO]     to (/media/data/Games/Itch/one-last-slime)
August 20, 2021, 12:02:39 [INFO]     via (/media/data/Games/Itch/downloads/gently-poetic-serval)
August 20, 2021, 12:02:39 [DEBUG] Locking (/media/data/Games/Itch/one-last-slime/.itch/runlock.json) for install
August 20, 2021, 12:02:39 [INFO] No receipt found.
August 20, 2021, 12:02:39 [INFO] → Starting fresh download session (c3628d44-6dcd-4c27-9ef2-7ccbcfd0fe9a)
August 20, 2021, 12:02:39 [INFO] ← No previous install info (no recorded upload or build)
August 20, 2021, 12:02:39 [INFO] → To be installed:
August 20, 2021, 12:02:39 [INFO]   ☁ One last Slime a.3.1.x86_64 :: 71.84 MiB :: #4330465
August 20, 2021, 12:02:39 [INFO]     Executable :: Linux all
August 20, 2021, 12:02:40 [INFO] (opening file took 250.322612ms)
August 20, 2021, 12:02:40 [INFO] Determining source information...
August 20, 2021, 12:02:40 [INFO] ↝ For source (One last Slime a.3.1.x86_64)
August 20, 2021, 12:02:40 [WARN]   No mapping for file extension (.x86_64)
August 20, 2021, 12:02:40 [INFO] Estimated disk usage (accuracy: guess)
August 20, 2021, 12:02:40 [INFO]   ✓ 165.22 MiB needed free space
August 20, 2021, 12:02:40 [INFO]   ✓ 93.39 MiB final disk usage
August 20, 2021, 12:02:40 [INFO] Will use installer unknown
August 20, 2021, 12:02:40 [ERROR] No manager for installer unknown
github.com/itchio/butler/cmd/operate.doInstallPerformInner.func1
    /builds/itchio/butler/cmd/operate/install_perform.go:266
github.com/itchio/butler/cmd/operate.InstallPrepare
    /builds/itchio/butler/cmd/operate/install_prepare.go:264
github.com/itchio/butler/cmd/operate.doInstallPerformInner
    /builds/itchio/butler/cmd/operate/install_perform.go:202
github.com/itchio/butler/cmd/operate.doInstallPerform
    /builds/itchio/butler/cmd/operate/install_perform.go:137
github.com/itchio/butler/cmd/operate.InstallPerform
    /builds/itchio/butler/cmd/operate/install_perform.go:40
github.com/itchio/butler/endpoints/downloads.performOne.func8
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:331
github.com/itchio/butler/endpoints/downloads.performOne
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:336
github.com/itchio/butler/endpoints/downloads.DownloadsDrive
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:76
github.com/itchio/butler/butlerd/messages.(*DownloadsDriveType).Register.func1
    /builds/itchio/butler/butlerd/messages/messages.go:2582
github.com/itchio/butler/butlerd.(*Router).HandleRequest.func2
    /builds/itchio/butler/butlerd/router.go:306
github.com/itchio/butler/butlerd.(*Router).HandleRequest
    /builds/itchio/butler/butlerd/router.go:315
github.com/itchio/butler/butlerd.(*gatedHandler).HandleRequest
    /builds/itchio/butler/butlerd/butlerd.go:159
github.com/itchio/butler/butlerd/jsonrpc2.(*connImpl).handleIncomingMessage.func1
    /builds/itchio/butler/butlerd/jsonrpc2/jsonrpc2.go:250
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1373

Error stack:
No manager for installer unknown
github.com/itchio/butler/cmd/operate.doInstallPerformInner.func1
    /builds/itchio/butler/cmd/operate/install_perform.go:266
github.com/itchio/butler/cmd/operate.InstallPrepare
    /builds/itchio/butler/cmd/operate/install_prepare.go:264
github.com/itchio/butler/cmd/operate.doInstallPerformInner
    /builds/itchio/butler/cmd/operate/install_perform.go:202
github.com/itchio/butler/cmd/operate.doInstallPerform
    /builds/itchio/butler/cmd/operate/install_perform.go:137
github.com/itchio/butler/cmd/operate.InstallPerform
    /builds/itchio/butler/cmd/operate/install_perform.go:40
github.com/itchio/butler/endpoints/downloads.performOne.func8
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:331
github.com/itchio/butler/endpoints/downloads.performOne
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:336
github.com/itchio/butler/endpoints/downloads.DownloadsDrive
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:76
github.com/itchio/butler/butlerd/messages.(*DownloadsDriveType).Register.func1
    /builds/itchio/butler/butlerd/messages/messages.go:2582
github.com/itchio/butler/butlerd.(*Router).HandleRequest.func2
    /builds/itchio/butler/butlerd/router.go:306
github.com/itchio/butler/butlerd.(*Router).HandleRequest
    /builds/itchio/butler/butlerd/router.go:315
github.com/itchio/butler/butlerd.(*gatedHandler).HandleRequest
    /builds/itchio/butler/butlerd/butlerd.go:159
github.com/itchio/butler/butlerd/jsonrpc2.(*connImpl).handleIncomingMessage.func1
    /builds/itchio/butler/butlerd/jsonrpc2/jsonrpc2.go:250
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1373
github.com/itchio/butler/cmd/operate.InstallPerform
    /builds/itchio/butler/cmd/operate/install_perform.go:43
github.com/itchio/butler/endpoints/downloads.performOne.func8
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:331
github.com/itchio/butler/endpoints/downloads.performOne
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:336
github.com/itchio/butler/endpoints/downloads.DownloadsDrive
    /builds/itchio/butler/endpoints/downloads/downloads_drive.go:76
github.com/itchio/butler/butlerd/messages.(*DownloadsDriveType).Register.func1
    /builds/itchio/butler/butlerd/messages/messages.go:2582
github.com/itchio/butler/butlerd.(*Router).HandleRequest.func2
    /builds/itchio/butler/butlerd/router.go:306
github.com/itchio/butler/butlerd.(*Router).HandleRequest
    /builds/itchio/butler/butlerd/router.go:315
github.com/itchio/butler/butlerd.(*gatedHandler).HandleRequest
    /builds/itchio/butler/butlerd/butlerd.go:159
github.com/itchio/butler/butlerd/jsonrpc2.(*connImpl).handleIncomingMessage.func1
    /builds/itchio/butler/butlerd/jsonrpc2/jsonrpc2.go:250
runtime.goexit
    /usr/local/go/src/runtime/asm_amd64.s:1373

Related issue: #2541, #2480.

What itch should do with such binaries is:

System info ``` { "cpu": { "manufacturer": "Intel®", "brand": "Core™ i7-8705G", "vendor": "GenuineIntel", "speed": 3.1, "cores": 8 }, "graphics": { "controllers": [ { "model": "HD Graphics 630 ", "vendor": "Intel Corporation", "vram": 256 } ] }, "osInfo": { "platform": "linux", "arch": "x64", "distro": "Mageia", "release": "9", "codename": "mga9", "logofile": "mageia" }, "broth": { "itch": { "stage": "idle", "version": "25.5.1" }, "butler": { "stage": "idle", "version": "15.21.0" }, "itch-setup": { "stage": "idle", "version": "1.26.0" } } } ```
jpenguin commented 3 years ago

Super annoying! Happen with appimages to, https://supertux.itch.io/supertux

Patola commented 1 year ago

no fix yet?

Quoates commented 2 months ago

Bumping this thread, is there any new information on this? Published .x86_64 executable for linux, error received is

butler No mapping for file extension .x86_64 No manager for installer unknown