itch icon indicating copy to clipboard operation
itch copied to clipboard

"Nothing that can be launched was found" for tar.gz archives

Open dos1 opened this issue 6 years ago • 8 comments

Due to itchio/butler#48, I'm pushing my GNU/Linux builds as tar.gz archives with butler to itch.io.

One example: https://dos.itch.io/odlot

However, since v25, the Itch app can't handle it.

screenshot_20181023_161817

Clicking "Show in file manager" reveals that there's just one unpacked tar.gz file placed into the game directory.

Launching the game works fine on Itch v23. Also, tar.gz builds uploaded manually via the Web work fine on both versions, only butler ones are problematic.

dos1 avatar Oct 23 '18 14:10 dos1

So, here's the situation:

  • v23 was overzealous in extracting nested archives: it was happy to extract a .rar in a .zip, for example, and that caused problems further down the line
  • v25 tries not to do that - it has one exception: a windows setup program in an archive will get run, not just extracted
  • for the situation you describe (which I really, really don't recommend as a workaround - pushing a .tar.gz defeats patching almost completely - but then again I haven't implemented .tar.gz generation server-side yet, so..), itch v25 should notice that a single file has been pushed, download that instead, notice that it's a .tar.gz, and extract it.

If it doesn't do that, then it's a bug and that should be investigated. I'm thinking maybe it does that on initial install, but not when upgrading? I'll have to dig into this.

fasterthanlime avatar Oct 23 '18 15:10 fasterthanlime

This was a fresh install - today was the first time I launched Itch client since that game was released ;)

dos1 avatar Oct 23 '18 18:10 dos1

itch v25 should notice that a single file has been pushed, download that instead, notice that it's a .tar.gz, and extract it.

It still doesn't work :(

dos1 avatar Feb 07 '19 04:02 dos1

Just encountered this issue with a different game. Selecting install in the itch app downloaded the tar.gz but did not extract the contents.

Running version 25.4.0 on an up-to-date Arch Linux install. If there are any other details I can provide, please let me know.

apinksmurfette avatar May 14 '19 05:05 apinksmurfette

@hugga-bean I had to revert those changes - it broke other functionality.

My hope is to enable generation of .tar.gz archives in the backend soon, and then seamlessly extract .tar.gz archive while pushing (like we do .zip).

In the meantime, pushing .tar.gz files with butler will 1) serve .tar.gz files to web downloaders 2) make it impossible to launch from the itch app.

fasterthanlime avatar May 15 '19 16:05 fasterthanlime

Me and 1 other person are seeing this issue on itch 25.4.0, butler 15.17.3 and itch-setup 1.18.0 for one of the games I uploaded to itch. We're both running macOS.

Screen Shot 2020-02-25 at 9 24 44 PM

Here's the .itch/receipt.json.gz if it's any help:

   "game":{
      "id":571621,
      "url":"https://jontopielski.itch.io/portalbot",
      "title":"Portal Bot",
      "shortText":"challenging platformer about shooting portals",
      "type":"html",
      "classification":"game",
      "embed":{
         "gameId":0,
         "width":960,
         "height":540,
         "fullscreen":true
      },
      "coverUrl":"https://img.itch.zone/aW1nLzMwMjE5OTkuZ2lm/315x250%23c/iERjAA.gif",
      "stillCoverUrl":"https://img.itch.zone/aW1nLzMwMjE5OTkuZ2lm/315x250%23cm/zvcVVA.gif",
      "createdAt":"2020-02-19T06:58:51Z",
      "publishedAt":"2020-02-23T07:46:14Z",
      "platforms":{
         "windows":"all",
         "linux":"all",
         "osx":"all"
      },
      "user":{
         "id":1525436,
         "username":"jontopielski",
         "displayName":"Jon Topielski",
         "developer":false,
         "pressUser":false,
         "url":"https://jontopielski.itch.io",
         "coverUrl":"https://img.itch.zone/aW1nLzI4NjcxNzAucG5n/100x100%23/c4ykaR.png",
         "stillCoverUrl":""
      }
   },
   "upload":{
      "id":1982418,
      "storage":"hosted",
      "filename":"PortalBot.dmg.zip",
      "displayName":"PortalBotMac.dmg.zip",
      "size":23315960,
      "channelName":"",
      "build":null,
      "type":"default",
      "preorder":false,
      "demo":false,
      "platforms":{
         "osx":"all"
      },
      "createdAt":"2020-02-23T07:37:52Z",
      "updatedAt":"2020-02-23T07:39:56Z"
   },
   "build":null,
   "files":[
      "PortalBot.dmg",
      "__MACOSX/._PortalBot.dmg"
   ],
   "installerName":"archive"
}```

jontopielski avatar Feb 26 '20 05:02 jontopielski

@jontopielski This is not an itch bug. A .dmg file is already a single-file archive, and you compressed it as a zip, so there's two layers of archives there, which itch no longer handles (it used to, and it was brittle, so it was removed).

Speaking of .dmg, itch v26 will remove support for those, along with Windows installers. But it'll have a gentler failure mode: instead of showing a "No launch targets found" dialog like that, it'll just open the install folder in the File Explorer / Finder / etc., and hopefully users will double-click their way to having a working copy of the game. "Launch" still won't do the right thing the next time, but there's no way to automatically detect that, so.

What I recommend to upload macOS app bundles is:

  • Don't bother with a .dmg, or .pkg, or .tar.gz, or .7z, or .rar, or anything
  • Just use butler push as recommended

fasterthanlime avatar Feb 26 '20 08:02 fasterthanlime

This is still relevant... I push tar.gzs because I'm fairly certain that most downloads of my games happen via browser, so I optimize for that case. That said, the experience for GNU/Linux users in the app is very poor and has been for years now - you have to extract the archive manually, essentially breaking auto-updates as the user has to notice and extract updated versions by themselves.

This is pretty much the only pain point I'm having with itch, but it's so tremendous and it makes me sad that my users on my primary platform that I develop on have to go though such crazy hurdles :(:(:(

Either generating a tar.gz server-side (itchio/butler#48) or making the itch app do the right thing on its own (this issue) would make this a non-issue for me. itchio/butler#47 would be nice too, but it's not required as I can easily adjust my push workflow - right now its the users who often have to adjust theirs regardless of whether I push zips or tar.gzs, which is unacceptable.

dos1 avatar Jul 21 '22 21:07 dos1