-
-
Notifications
You must be signed in to change notification settings - Fork 261
Linux/AppImage: Manually download the runtime to fix build error #731
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
Conversation
This manually downloads the old AppImage runtime (now marked as obsolete), to prevent appimage-builder v1.1.0 from failing to make the AppImage. The download URL appimage-builder v1.1.0 uses for the AppImage runtime is hardcoded into the tool, and unfortunately it's been recently removed, so this is merely a workaround, until hopefully a future appimage-builder release fixes this. See: https://redirect.github.com/AppImageCrafters/appimage-builder/issues/375
04f5741 to
be6899a
Compare
|
Sorry for the force push, I had to fix a grammar mistake in the commit message. Also, this isn't supposed to be a permanent fix: It's meant just to unblock the CI/CD workflow for now. I'll work on replacing the current tool that makes the AppImage, because it's way outdated. |
|
Hello, Hmm, I see. Yeah, this came up during conversation in #730. Apparently https://github.com/AppImage/AppImageTool is the new repository for the builder, but I'm not sure if that's true or not - might be worth checking it out. Thank you for the fix =) |
Yeah, I'll definitely check that out. What saddens me about this, is that this was a deliberate disruption by AppImage devs to, apparently, force us into using their new runtime. Anyway, I'll evaluate how difficult it will be to switch to their new shiny thing, but if such deliberate breakage ever happens again, feel free to completely remove the AppImage package from your repo and CI, no questions asked. |
If you read the rationale here you will see this was done so that you can choose between the old and new runtime, you are not forced to update.
Might wanna hurry in doing it because the appimage doesn't work at all in ubuntu 20.04, which was one of the few last distros that shipped fuse2 by default. log
Also why is the appimage released in a zip file? the documentation for years has very explicitly said that this cannot be done This just shows that this the right way of making people aware of changes, nobody reads anything... |
This entire project is released in a zip file, regardless of the underlying form of the executable. This includes not only the executable itself, but also any additional files released together with it. Right now, it's just the |
That's literally the response I linked in my post... The deliberate renaming of runtime binaries literally broke how appimage-builder works: That's not giving us a choice. Giving us a choice would be: "Hey, we will keep the old runtime name with the name it has had forever, but if you want to switch to the new runtime, just prefix it with a And no one cares if that's the "best solution", what I want is a reliable packaging tool that doesn't cause my CI to break out of nowhere...
That was a deliberate and conscious choice made a year ago: #423 Besides, 20.04 is EOL now, so even today I wouldn't personally support it anyway.
There's nothing wrong about it, though. A single distribution guideline was ignored because it doesn't fit the app's distribution model. I would only consider it 'wrong' if the resulting AppImage didn't work, which is not the case.
Yeah, and it's also a great way of making developers turn away from AppImages forever. So call me crazy, but that doesn't seem like a good strategy when your end goal is to make developers, you know, use your packaging format... |
|
@guihkx The change was intended as a warning to developers, "Hey, the tool you're using is obsolete. Try using the latest It was certainly a harsh warning, but what choice did they have? I tried to suggest replacing The fact is, now you know about the problem with ...assuming you distribute the AppImage as a standalone package, not in a zip archive. |
No, you said "apparently, force us into using their new runtime" when that is bullshit, you are not being forced, you can still use the old link.
Alright where would that message be given? by appimagetool? Any message in the CI that doesn't cause it to fail is likely to just never be read. A better solution would have been to update the old dynamic runtime to give the message to all users that it is deprecated (similar to how flatpak works with EOL runtimes) and they then go and open issues about it. but this would have meant that the runtime itself had to be updated and replaced in place. which sounds like being forced... And also it is an unnecessary over complication to add version checking on the appimage runtime, which means it needs to connect to the internet.
yeah and still make no sense to ship an appimage that requires libfuse2 when the last distro that had this installed by default was dropped deliberately. AppImage is meant to be download and run, having to install a dependency is anything but that.
If you are going to keep making broken appimages nothing of value is lost lol |
That would have forced the new appimagetool onto people, which is a no no here 😆 |
|
I think we're going in circles with the arguments, so the discussion about whether this breakage was intentional or not is pointless (even though the main developer said so himself).
Um, no? Because AppImage runtimes are misleadingly tagged as 'continuous', they would just need to release an update to the old runtime with the warning included, and eventually all AppImages using that old runtime would pick it up. After all, not all of us have an infinite amount of time to keep up with AppImage changes.
Gotcha, so what you're saying is that the ideal solution was to shift the complication to downstream developers, even though it was not a problem created by them.
That is, once again, a self-dunk. Since the very beginning, AppImage has depended on libfuse2, and while attempting to improve upon that situation is valid, deliberately breaking projects that have not adapted to it yet, is definitely not.
The AppImage currently being made here should run just fine on any distro that has at least glibc 2.35 (and libfuse2, but that's hardly our fault). As far as I'm concerned, that's completely acceptable given the current app requirements. But I guess we could do what some people seem to think is good packaging: Bundle all kinds of crap with the AppImage (including the glibc), making it so bloated that you immediately lose 500 MB of RAM just by running it... lol |
|
So sad you cannot acknowledge that you said bullshit of being forced to adopt something when that was never the case.
You haven't had time in 3 years???
It is now after you decided to keep using the old runtime after being made aware of it.
That's going to be the practice in the future, and believe it or not if done right the final appimage is actually smaller than what usually gets done right now. Don't believe me? check CPU-X. Their old appimage that depended on the host glibc used to be +30 MiB. Now it is 26 MiB and truly works everywhere, musl distros and ubuntu 14.04 included. So yeah, time update on a lot of stuff my man. |
Then you try to make an AppImage using appimage-builder 1.1.0 (which is still a recommended tool on appimage.org, by the way), without this workaround I had to find myself.
No no, I've had it. It's just that I didn't think I would have to unbreak things (as opposed to upgrade), while I was using a runtime literally named continuous. Silly me for expecting words to have meaning. But then again, in your universe that word could have a different meaning, so that's my fault.
Yippee, now the 6 users of these distros can feel relieved! lol @DevilXD I'm sorry for contributing to the spam here. I won't be posting here again, but feel free to lock this if you want, as this is resolved. |
|
I mean, this PR is closed and I normally try to limit off-topic discussion, but this felt on-topic enough for me to just let it be. In my opinion, the "why no update in 3 years" argument isn't really valid here, because that's barking up the wrong tree. This project uses Anyway, it's over for now. I guess we're waiting for the |

This manually downloads the old AppImage runtime (now marked as obsolete), to prevent appimage-builder v1.1.0 from failing to make the AppImage.
The download URL appimage-builder v1.1.0 uses for the AppImage runtime is hardcoded into the tool, and unfortunately it's been recently removed, so this is merely a workaround, until hopefully a future appimage-builder release fixes this.
See: AppImageCrafters/appimage-builder#375