-
Notifications
You must be signed in to change notification settings - Fork 2k
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
2.9.0-rc1 - AppImage #13653
Comments
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
|
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. |
Confirmed to work on debain 12! Thanks! |
New build will be for 2.9.0-rc1 |
https://github.com/probonopd/PrusaSlicer/releases/tag/mk2 mostly works on Void Linux, except for a segfault from webkit when viewing the physical printer tab (but the flathub release also does this). |
@SorrelArticulata thanks for reporting. Which operating system and version are you on? |
My segfault looks to be #13835, so I will pile on there. PrusaSlicer-2.9.0-alpha1-x86_64.AppImage from https://github.com/probonopd/PrusaSlicer/releases/tag/mk2
|
I recently updated using the new Flatpak system... I'm fine with that, but just to add/confirm to the discussion I did have to download the Gnome runtimes and that is using some extra space. I believe it was 300M for me. I have a question related to this move, also - How do I create a "personal" (unsigned) deb, appimage, or flatpak file (assuming the latter is possible without creating my own Flathub store) to compile from source? Currently, the source instructions create a large set of directories of mixed source and build files, and especially the part where it can't be moved afterward is inconvenient and somewhat messy with regards to my folders. I also can't copy it to another computer since if the user differs, the path will change. If you can share the build script(s) for making a packaged version of the software (assuming a reasonably consistent or popular OS, or that we've figured out what dependencies to get installed from our package managers) so that it can be built from source but all self-contained and transferrable between computers, I'd really appreciate it. |
@rdragonrydr If I get this right you want to be able to transfer cloned source between devices and be able to each of those? I don't think that's possible unless you setup docker or similar, and still wouldn't be sure if you could move the cloned repos between devices either and more like run the build script on each PC instead. You can see the steps to make the AppImage here. iirc the CI builds several dependencies as well. Worth noting that this appimage explicitly works on any linux distribution so that you can avoid having to do any building, also note that if you make a directory next to the appimage with the name of the appimage + |
@Samueru-sama Not the cloned source, but I'd like to be able to personally build a binary and transfer that. If you check the latest release there is no appimage anymore. I'd like to build my own from source (on one machine) and transfer that, or some other portable binary to other computers or to my quick-install scripts. It being usually located in the build folder and location locked is a problem for that plan. Would running the steps from the link be enough to build an appimage, or would I need a VM or fakeroot or similar so it doesn't install itself in strange places as a side effect of the build? I'd like to be able to run subsequent builds without it clobbering something in my system... |
You can get the AppImage here: https://github.com/probonopd/PrusaSlicer/releases/tag/continuous This issue was opened precisely because Prusa stopped making the AppImage. |
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/releases/latest
So far I have tested the AppImage on
/usr
populated) on VirtualBox ✅Please let me know your experience with using this AppImage, mentioning your Linux distribution and version.
The text was updated successfully, but these errors were encountered: