Repository navigation
AppImage for 2.9.0 and later #15714
Replies: 163 comments 7 replies
DetailsPrusa Research has been offering PrusaSlicer for Windows, Mac, and Linux from their own download page and from GiHub Actions for quite some while. For Linux, Prusa has been using the AppImage format for years, as it provides a way to have one convenient download for various Linux distributions. This has has been working well for many happy users over the years. However, the release notes for PrusaSlicer 2.9.0-alpha1 state that Flatpak will be used as an official way to distribute PrusaSlicer for Linux in the future.
The release notes for PrusaSlicer 2.9.0-alpha1 also state some downsides of using Flatpak:
This is not necessary with AppImage. The AppImage format is specifically designed so that users don't need to install anything else first, and do not need to have root permissions.
With AppImage, builds can be published immediately as part of the regular build pipeline. The builds are available immediately.
"Better" is subjective. Some users want one single file which can be downoaded and run, without the need to install anything, and without affecting any other versions that may already be on the system. Some users might be running a Linux Live ISO which is not even installed on the machine. Some users don't even have root permissions on the system they are using. AppImage delivers in these situations. AppImageUpdate allows for very efficient delta updates. And with AppImage, sandboxing is optional but possible for users who want it.
According to a scientific experiment, installing PrusaSlicer using Flatpak downloads 854 MB. Flatpak download sizes are enormous, because whole runtimes (e.g., the entirety of GNOME) are downloaded even though only a tiny fraction of it might be required by the application. In contrast, with AppImage the developer can bundle only the few files the application actually needs to run and not rely on monolithic third-party runtimes. An AppImage bundling PrusaSlicer with all dependencies it needs to run is 201 MB, so 1/4 the size of the same application installed by Flatpak and the dependencies it pulls in.
Luckily, it's not either-or: AppImage and Flatpak serve different purposes for different target groups (portable single-file applications vs. installed applications). So why not have both? References
|
|
I want to add this to show how huge flatpak download sizes are: Flatpak with deduplication and all of that ended up using 9.85 GiB, while the same apps as AppImage used 2.0 GiB. And I was not able to find all the apps that I have appimages of as flatpak, like lite-xl or deadbeef. |
|
https://github.com/probonopd/PrusaSlicer/releases/tag/mk1 works for me on Gentoo ( I do not have a system installation of webkitgtk, so this is a great improvement compared to: from the previous 2.8.1 releases. |
|
Honestly, the replacement of AppImage to Flatpak has been a long time coming, The following quotes are paraphrased in the way I understood them:
First, it's not the early 2000s anymore, we can spare a couple gigs of space
Then we would just end up inflating the package now would we, otherwise we would just end up requiring to test for any individual distro out there and pray they all play nice.
Security by default is a good option, yes, that includes sandboxing a slicer And to finish this comment of mine off, anytime I had involvement with AppImages, it has always been dreadful to work with them if they didn't feel like coorperating with me and didn't "just work", this was even the case with PrusaSlicer, where thankfully, most of this for me could be avoided by It has always been a headache universally, pretty much regardless of what AppImage I came across, you could blame it on the packager or the user, but at this point I couldn't be bothered. |
Nope, you can see it in my comparison, some of the AppImages I have there (like the Steam appimage) already bundle everything and work on any distro. I recently made this appimage of cromite that bundles everything and works on any distro, and the appimage is smaller than the tar.gz that cromite offers for linux which isn't really portable as it depends on glibc. The difference here being that we bundle everything we need and no more. The flatpak runtimes are more like taking a AppImage and using distrobox to spin a container to run them that's compatible with it. Anyways, none of this matters like you said, however if one option will use many times less storage than the other and gives me the same thing, I will pick the one that uses less storage.
I do have a problem with not having a way to disable it, even snap provides a method to disable the sandbox, because not all apps play nicely with it. Also in the case of firefox browsers, the sandbox is bad for its security. The cromite the dev doesn't want to provide a flatpak of it because of these issues. (Edit: And the later is a chromium based browser where this issue isn't as bad). With that said I'm not sure what the implications could with in the case of PrusaSlicer, no idea if webkitgtk even has the ability to use namespaces to create its own sandbox.
Sad to hear, and I get it I also know some appimages that broken. My story flatpak isn't great though, mine was short and a nightmare with yuzu being broken as flatpak because of the outdated mesa they shipped which was out of their control, then I found out how much storage I was wasting with all the flatpak runtimes I had and just stopped bothering with it.
In any case, please note that the AppImage that probono linked fixes these common issues for good. |
|
@Souliboi there is a huge difference between
It won't be "present anyway" on many systems. Especially since you need a matching version for each PrusaSlicer version you want to keep around. (And some users want to keep around many versions, including historical ones. Not even sure whether Flatpak supports this at all.) |
|
@madpipeline I am trying to address the issue you mentioned there regarding Can you please post the output of Thanks. |
|
Thanks @Samueru-sama for bringing my attention to this. Currently PrusaSlicer installs as part of For reasons unbeknownst to me, Prusa are using The |
Looks like the perfect scenario for this library. |
|
Let's see what @madpipeline responds regarding #13653 (comment). Then we can retest in an environment similar to his. |
|
Thanks for keeping this alive and showing that it's perfectly achieveable. Haven't used PS in a while but just grabbed your build to test while I try Nobara linux (light fork of Fedora 40) + KDE, seems to be working fine. Only just looked through basic functions though, did not go through and slice anything. Infamous web interface seems to work fine, as does the new printables integration |
|
|
Thanks @madpipeline I can reproduce the issue and am working on an AppImage that fixes it. |
|
@madpipeline please retry with https://github.com/probonopd/PrusaSlicer/releases/tag/mk2. |
|
It works ok. Thank you. |
|
This issues has been labeled legacy. It means that it has been created before the release of PrusaSlicer 3.0.0 alpha version. In an attempt to clean up the GitHub issues tracker any legacy issue with no new user comments after this message will be automatically closed after 3 weeks. In two weeks from now, one more warning will be provided before finally closing the issue. According to the PrusaSlicer GitHub policy, any issue that is not a reproducible bug, will be closed in GitHub issue tracker. See the GitHub issue tacker cleanup announcement for a detailed description of what this means for your issue. |
|
OK, to keep ist open just this message |
@gneiss15 I totally understand, which was why I was curious how you were feeling about the new 3.0 rewrite. It's really a pain to see this move to a packaging system that is by far not the Linux standard, not that AppImage is either but it doesn't require the overhead of Flatpacks. I have no desire to burden my Ubuntu-based system with Flatpacks/Flathub garbage. |
|
I agree that this long thread deserves a different reaction that an automated bot. We currently do not plan to move away from Flatpak, nor to provide an AppImage. While I am not going to say that Flatpak has no downsides, it serves the goal well - it takes care of distributing our application to pretty much any Linux distro, while providing the same environment that we tested the application in. And it gives us ARM builds for free. It has been two years since the 2.8.1 which started all this, and nothing I wrote then has really changed. While I admire @probonopd who proved that the AppImage can be created, the hackish nature of it makes me worry about a possible maintenance trap. The fact that the proof required the author of the AppImage himself, is a strong flag. Yes, the same problem can happen with Flatpak, but based on my experience with both (and we used AppImage for quite a long time), I consider it less likely, at least at this time.
This actually hits the nail on the head. There is no Linux standard. There are several vastly different options, and people who strongly love them or hate them. Unless we support deb/rpm/Snap/Flatpak and AppImage at the same time, someone will be unhappy. Please understand that we have a complex application to maintain, and that less than 5 % of our users runs Linux in the first place. We really need to keep the pipeline simple. We may reconsider this decision in future if we find a strong technical reason to do so. We do not see it now. All that being said, this is AGPLv3 application on Linux where freedom is paramount. THe community is completely free to maintaining any other distribution channel unofficially. Or to compile the application from source, which is what actually was the "Linux standard" once. I am moving this to discussions, where it belongs. |
Where does this number come from? |
|
We agree to disagree on that. I've been building PS from source since the unfortunate AppImage pivot, and the thing brings in tons of its own dependencies to the point I think the complexity of managing AppImage (or DEB, RPM, etc. for that matter) feels overstated and stubborn. Plenty of other projects do this and largely because they setup an automated build pipeline that builds the packages as part of CI/CD. Not to name drop forks; but OrcaSlicer, BambuSlicer, SuperSlicer and Slic3r all offer AppImage support as of the time that I am writing this. The information you need already exists in public space such that the arguments, to me, never held water and they still don't. If Prusa doesn't want to maintain AppImage, I think that's fine! There is nothing wrong with focusing but the above reads like a veiled insult. It sounds like you're justifying the reasoning behind a supposed small userbase (even though I question that figure) and manufactured complexity. Talk about feeling minimized despite having purchased many Prusas over the years (they make up more than half my print farm). These feel less like truths and more like, frankly, Bambu-like hand waiving. It's not a good look on Prusa. It sounds like I'm being scolded for running an operating system that seems to hit the points Prusa himself sells as part of your printers (offline capable, non-cloud, secure, etc.). I take issue with the thin reasoning behind removing Appimage given all of the above, as it doesn't feel transparent and, I think, runs against the ethos that built this company in the first place. Digging the hole deeper isn't doing to make people change their minds or cease to point out the flaws in the logic either. |
|
thankfully the AI bots have been kind enough to build into whatever format I have been asking them for AppImage is still my preferred as It works on any Linux distro and I can just have them sitting in my home |
Slic3r's last release was 8 years ago. SuperSlicer's 2 years ago. OrcaSlicer's AppImage does not run on Ubuntu 22.04 - a supported LTS. BambuStudio provides two different AppImages to ensure it does (that is my hack from 2.8.0-rc2, which I refused to keep doing). And OrcaSlicer's issue tracker has multiple AppImage-related open issues (OrcaSlicer/OrcaSlicer#10990 and others). That is what we wanted to avoid exactly. If it was as simple as "setup an automated pipeline", we would have done it. Regarding your other points. You are absolutely not being minimized, and we are grateful if you are running our printers. You are also not being scolded for running Linux (it would be weird if I did that from my Linux workstation I run daily) or for anything else. You are more than welcome to use our slicer after you install it from Flathub (which we support officially, and I assume that so does your distro) or build it yourself if that is what you choose.
I publicly stated my real opinion without lying or hiding anything. It is as transparent as it gets. My opinion may be wrong, but that does not count as "not transparent". As a maintainer, it is my responsibility to keep our pipelines stable and simple, and to ensure that things that work do not get fixed needlessly. I have actually pushed back against the suggestion to switch to Flatpak or the idea of taking over maintenance of distro packages for exactly those reasons in the past. We need to allocate resources to the slicer, not on maintaining dependency chains on 30 different platforms. The short version is that Prusa has decided to not reintroduce AppImage and keep supporting Flatpak. And I am glad that you agree that focusing is fine, because that is exactly what we are doing with it. I feel that I now explained our reasons as transparently as I could. I will be stepping back from this thread now, but I genuinely appreciate the feedback. |
|
Hi @m00dawg, I would just like to comment further as I must admit I am a bit triggered right now and would like to rant for my own sake. It might be a bit unprofessional and I apologize for that. I agree with your points about CI and you are not wrong, but I feel like we are talking past one another. It is not like we are unable to do what you are suggesting. The point is that we are unwilling to maintain and bugfix all the possible options forever, hence we converged on one approach that promises a sandbox with as minimal individual platform differences as possible. AFAIK flatpak does this really well at the expense of other things. I must admit your points personally sadden me greatly for the following reasons:
Finally, I feel like it needs to be stated where developer time is actually allocated. We do not have infinite resources and if you commit to maintaining something, you commit to it "forever" (whatever "forever" might be - for an individual it might be until you burn out/until you retire/until you are not interested anymore, for a company it might be decades). Introducing features, technologies, distirubution methods is always comparatively cheap to maintaining them given enough time. You can see an example of this right in this thread. @gneiss15 committed to maintaining appimage (without any promises), for which we are actually very grateful and think is an admirable thing to do. Yet, now he or she is not sure if he wants to continue as it takes his precious time. It is quite understandable and as a individual, he or she can very well afford to do that. We as a company, where our "forever" is decades to come do not have such a luxury. |
|
As my repo demonstrates, it is quite easy to build an AppImage from a PrusaSlicer release. There has been only one exception so far, where an additional library was required; once I added it, all Prusa releases were automatically generated as AppImages again. So, the effort involved is minimal. If—or since—Prusa can no longer (or chooses not to) provide support, things can simply continue via my repo. |
probono made that appimage because you lied horribly in the release notes saying absolute nonsense about appimage that to this day I still see people repeating and I have to correct. That reality is that you people chose to force webkit2gtk4 despite complains about it #12968 webkit is totally broken, even tauri plans to offer cef due to its issues: tauri-apps/tauri#14963 And when faced with that nonsense you people decided to lie and hurt the image of appimage with those release notes.
What maintenance trap is in here? We even provide woulds of webkit2gtk4 with support for WEBKITT_EXEC_PATH which is the reason you had that many issues with appimage in the first place. |
|
Everyone, let's calm down a bit. An AppImage is just a self mounting disk image that executes whatever is inside it. There is nothing particular complex about AppImages. In fact, it is quite simple. If anything, it is the software inside the AppImage that is complex, e.g., due to a high number of dependencies, which in turn can bring in even more dependencies, which... can get complex. The perceived complexity is in fact not about creating AppImages (putting whatever into a self-mounting disk image is easy), but is really about managing the complexities of deploying an application with many dependencies cleanly without relying on distribution package managers or runtimes (collections of libraries someone else manages). You would have the exact same complexity if you wanted to make a zip file containing an application that can run everywhere. For that, too, one would need to deploy into the zip file everything the application needs to run. It can be done by basic tools like Going forward, one can probably leave much of that work to LLMs. Just tell them to "turn this application into a self-standing application directory (AppDir) that can run on all Linux distributions by bundling everything". If Prusa Research doesn't want to do it, anyone else can do it. That's the nature of the license. This, however, misses the important point: AppImages are meant for "upstream packaging", allowing application authors to be in full control over the entire software stack. Unlike with other distribution methods (including Flatpak) where an application author has little influence over which exact versions of each dependency get shipped (usually defined by the distribution or runtimes), the application author has full control over the whole stack with AppImages, and can ensure proper testing, integration, and certification. Some AppImages ship a finely tuned and patched stack of all of their dependencies. There are even projects like archlinux-pkgs-debloated that contain versions of libraries that minimize unwanted dependencies. |
During that time, it was also the standard that applications used fairly simple build processes, and had un-bloated and reasonable dependency lists. AppImages are the crutch we use now that this is no longer the case. |
|
+1 from another longtime Prusa and Linux user. I want to add my voice to the Linux users for whom Flatpak is not a suitable replacement. I don't want a sandboxed runtime, I don't want to install a packaging system just to run a slicer, and I don't want hundreds of MB of runtime pulled in for a single application. For my workflow, the AppImage was the right solution: one file, no root, no daemons, works on any distro. I understand Prusa's decision to focus resources, and I respect that the community can maintain an unofficial AppImage (thanks to @probonopd and @gneiss15 for keeping the AppImage alive). Please just don't make changes that would break the community AppImage effort. |
I wonder if this is really true and if you (assuming the "we" is Prusa Research) aren't assuming responsibility that ideally might not even be yours to bear. People will be unhappy if they aren't able to use the slicer on their preferred Linux system their preferred way, that's the nature of Linux. It does not necessarily mean that all those preferred ways to install and use PrusaSlicer need to be supported by this repo and its authors. If it is easy for the community to provide and maintain those alternate distribution and installation formats, users might get what they want even if you don't provide and support it directly. Could this be more about "how to make maintainers of Linux builds happy and maintain good relationship with them" than "how to make Linux users happy directly"? This might include at least acknowledging valid pull requests, even if your development model does not seem to allow for proper review and merge workflow, and some basic guidance about things that those maintainers might want to do, like using system dynamic libraries wherever possible. There seems to be a wealth of technical knowledge that can benefit PrusaSlicer there, and in my idealistic view, this should actually remove some of the maintenance burden from you because you will be able to point out that other ways to consume the software are also available. Full disclosure: |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The release notes for PrusaSlicer 2.8.1 state
tl;dr: By using a static runtime and by bundling all dependencies inside the AppImage, the stated goals can be achieved at the cost of a larger download size (although not as extreme as Flatpak where all of GNOME gets downloaded even on non-GNOME systems). A version for testing is linked below.
According to the release notes for PrusaSlicer 2.9.0-alpha1, Prusa is considering to move away from the AppImage format for Linux, and is anticipating that this change might not be welcomed by all users. According to the release notes, Prusa would want a PrusaSlicer AppImage to:
Version for testing
https://github.com/probonopd/PrusaSlicer.AppImage/releases/latest
So far I have tested the AppImage on
/usrpopulated) on VirtualBox ✅Please let me know your experience with using this AppImage, mentioning your Linux distribution and version.
All reactions