-
-
Notifications
You must be signed in to change notification settings - Fork 42
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
Add support for AppBundle, FlatImage... and other formats! #1099
Comments
@xplshn @Azathothas and @Samueru-sama , with participation request of @ruanformigoni , welcome everyone. Please read carefully what I am about to tell you. Now that the 9.1 release supports Toolpacks, it is good to explain how they are installed with "AM". This is the function that is used:
as you can see, an Well, the scripts (authored by @Samueru-sama) if you look closely, are pretty much identical:
what changes is the final part. The AppImage script ends with this:
...the other script has nothing, as it is meant to be completed via the Why am I telling you this?If you want, the Archives script can also be used for AppImages, with the only difference that that piece should be added at the end. If the script is not unique it is because of the creation of an What interests us is that it is possible to use a That said, keep in mind that little piece I posted here, and made by @Samueru-sama, in the AppImage scripts, and try to adapt it to AppBundle and FlatImage. You will have a much better integration of apps installed via Toolpacks or other repositories that you will want to implement in the future. |
AppBundle could just implement |
I don't want to keep compatibility with bugs and end up writting Xorg but in shell. If such a compatibility option were to be added, it'd have to use I'll invest some time, hopefully tomorrow, to test AM and try and integrate my format to it. |
You can just make a squashfs-root symlink, which is what the uruntime does already. This is linux where |
It's best if we stop attributing other formats to be similar to Appimages. Each format is its own thing, and deserves the extra code that would be needed to be written to integrate that format. There's going to be more and more of these formats in the future, and not all of them will be easy as Appimage or hard (unless @ruanformigoni adds a way to embed the desktop.json and icon files directly within the flatimage at creation time) as flatimage. The current way of extracting DirIcon, desktop will have to be changed for any script that aims to install/integrate based on the specific format. |
@Azathothas In truth, I know practically nothing about AppBundle and FlatImage, but I find them very interesting. If it is possible to extract in any way an icon and a .desktop file from the bundle (or script, I have seen the content of an AppBundle) then I can dedicate a function in AppImage style that however uses the commands for AppBundle. Nothing simpler. In fact... if it were necessary to download such files from external sources, it would be good to add additional columns to the file you provided, in which there are the URLs to the icon and the .desktop file. We can do whatever you want, just tell me how to do these things, and the Archive script will be compiled on the fly. |
I forked and made a simple modification to the AppImage template, its however, not yet tested. I've yet to fire up a container and change the rest of the code, in theory, integrating AppBundles is much easier than AppImages, since a flag is specifically provided to extract the icon, the desktop file, and etc, and you can even do all of these at once if you use Also, for actual integration, there's a program named Anyways, I'll spin up a container, set up AM (since I don't have most of the deps of AM installed, and don't plan to use |
@ruanformigoni as you can see in my previous comment, I was able to handle AppBundles thanks to the template that @xplshn has provided here #1102 and in my test the app is 100% integrated Basically, the differences between ...and... is this, for AppImages the end of the script is this
for AppBundles instead is this
plus two extension references that change from In your case the tw extension references should change from All we really need is the final step, to have the icon and the launcher. Would you like to try? |
Hello! Yes, I'll give it a shot. |
New release is out https://github.com/ivan-hc/AM/releases/tag/9.1.1 ...I hope to improve support for these new package formats in the next release. |
Hey, I was looking into Flatpak format, as many application developers prefer it over providing AppImages. There are some Flatpak applications I'd like to install with am (I don't like the Flatpak manager). There's a discussion about the possibility of running Flatpak without installation. Someone has developed a Rust program that might achieve this. Also, that discussion turned into another about repacking Flatpak into AppImage format (which could then be used in the conventional way). And another person has created a PoC script that does this conversion. My technical knowledge isn't sufficient to fully grasp how these programs function. If you could somehow integrate Flatpak into am, it would be an incredible feature to have. |
hi @sandboiii , "AM" is "limited" to the installation of portable programs and is intended for portable programs. But as you saw, through installation scripts and in the same way I approached AppBundle here, creating them on the fly, I could handle any other packaging format. It is enough to create a dedicated template, with creation of dedicated scripts for updating and removing into it. However, I don't want to install or touch a single Flatpak on my system. I had them and used them time ego, even with pleasure to tell the truth... but they adopt an installation scheme that I had little opportunity to study, and that was enough for me to avoid them. It is difficult to completely remove them once installed. Years later I still had directories scattered throughout the system because of that model. Here, I wrote "AM" specifically to avoid that model. But if you were to think of creating a template like the ones already existing, I could consider an approach like the one in AppBundle. It's not a problem for me. |
I find it funny that probono commented that "Flatpak is optimized for other aspects, e.g., download size efficiency." when this is no longer the case, multiple flatpaks use different runtimes and the user is likely to end up with different runtimes and even different versions of the same runtime, and that explodes the storage usage of flatpak compared to appimage.
There is already NixAppImage which is very similar, and I think you can find every single app under the sun in nix. |
Nix is too fat, I made an alternative that generates AppDirs of any Alpine Linux package, but using it for |
Just added NixAppImage support f12b5f4 |
Since there is just simplescreenrecorder-2024-11-22_21.52.00.mkv.mp4 |
No demand for |
This new release is an example of how AM would keep have new apps out od its own database, in case I'll can't keep maintain it https://github.com/ivan-hc/AM/releases/tag/9.1.3 the reason I did this is that AppBundle are now only on a dedicated database. Toolpacks may have portable binaries that may already exist in AM. This is the difference. |
@Azathothas I contacted you on Discord, when you have time I left some messages EDIT: it is urgent |
Hi, I won't be able to view discord messages as I am no longer there. |
As stated in #1079 (comment) If you want me to remove them, I will have to exclude the entire |
Maybe the missing ones deserve a separated list I guess... but in the meantime its better you exclude them. Thanks. |
pkgforge/pkgcache@8485365 now excludes the entire |
thank you @Azathothas It's strange to see so few programs compared to before, but since they are divided into families, they should have deserved a separate extension to be distinguished from each other (I would have removed the extension during installation). But for now it's better that we solved it like this. Thanks again. |
The way AM is designed, I don't see how pkg_family could be supported easily. This is how it's done in rust: https://github.com/pkgforge/soar/blob/main/src/registry/fetcher.rs#L46 |
I normally rely on extensions for this, as I did with AppBundle, I also have packages like I started writing this program more than 3 years ago. If I had known that one day I would implement third-party databases, I would have structured it differently. |
@Azathothas can you show me the URLs of (for example) all I just got an idea, but I'm notsure if it will work. I need to do some tests. |
Hi, please for the last time, join telegram: https://t.me/official_loonix GitHub Issues shouldn't be used as chat, and this is going offtopic now. |
OK, never mind. Thanks anyway. |
Originally posted by @xplshn in #1079 (comment)
The text was updated successfully, but these errors were encountered: