Samueru_sama

joined 6 months ago
[–] Samueru_sama@programming.dev 1 points 22 hours ago* (last edited 22 hours ago)

Alright be aware that AM not only can manage appimages, it also manages other portable formats and has access to over a 1000 static binaries from soarpkgs repo.

And it can do all of this at user level when used as appman, that is elevated rights are never needed to install anything and I can just take my HOME and drop it on any distro and be ready to go.

It made me get rid of flatpak all together and become an appimage contributor lol

[–] Samueru_sama@programming.dev 1 points 1 day ago (2 children)

what

Is topgrade used to update all the package managers at once? how many stuff are you using that you need that???

[–] Samueru_sama@programming.dev 1 points 1 day ago* (last edited 1 day ago)

but I would have expected Fedora to come with something like this preinstalled tbh

Fedora is just plagued with poor decisions, and that's expected, it is the testing ground of redhat and not something that regular users should be using, they even go as far as repacking existing flatpaks just because and then break them.

A while back they pulled this nonsense that not even upstream approves of: https://gitlab.com/gnuwget/wget2/-/issues/661

iirc fedora also enabled wayland by default on gnome in 2016 when pretty much nothing worked.

Rhino linux lets you install AM thru its GUI installer btw.

I'm not, it's a vm that I use to test.

There is quite a lot of systems still stuck on kernel 2.6 that can't be updated, so it is always nice to make sure what I do can work on such.

So, I would say the primary complaint should be a lack of package management.

https://github.com/ivan-hc/AM

[–] Samueru_sama@programming.dev 1 points 1 day ago (4 children)

So, I would say the primary complaint should be a lack of package management.

https://github.com/ivan-hc/AM

[–] Samueru_sama@programming.dev 3 points 1 day ago* (last edited 1 day ago) (3 children)

it allows the same packages to run on any Linux kernel (any Linux distro). That is pretty useful.

flatpak itself depends on namespaces, so saying that it works on any kernel is quite a stretch.

Can flatpak do this? This is a GIMP3 appimage running on ubuntu 10.04 without any container:

The kernel is so old that even the appimage runtime itself complains of missing functions and has to fallback to a workaround.

UPDATE: flatpak can't work because bubblewrap itself can't:

PR_SET_NO_NEW_PRIVS is only available since kernel 3.5

The issue is arch and not us. They are building fastfetch without SQLITE3 and then we get people asking why the package count of fastfetch doesn't display soar pkgs... All we can do is just tell people to not use fastfetch from the arch repos.

All archlinux has to do is change this line from OFF to ON

[–] Samueru_sama@programming.dev 8 points 2 days ago* (last edited 2 days ago) (1 children)
[–] Samueru_sama@programming.dev 5 points 2 days ago (2 children)

omg I cannot fucking believe that while I was typing this I just saw another distro package nonsense:

There is this very good tool called soar which I use for static binaries. (It also has support for appimages but to be honest it is not as good as AM rn).

Well we just got a complain that fastfetch is not displaying the package count of soar, which fastfetch is able to do.

Turns out this is because the archlinux package is built without SQLITE3 which is needed for that feature to work 😫

And what's worse is that account registrations are disabled in the archlinux gitlab, so I have to jump thru some hoops to get a basic bug report filed...

I want full-scale applications that are so big they have to use system libraries to keep their disk size down

Linux is in such sad state that dynamic linking is abused to the point that it actually increases the storage usage. Just to name a few examples I know:

most distros ship a full blown libLLVM.so, this library is a massive monolith used for a bunch of stuff, it is also used for compiling and here comes the issue, by default distros build this lib with support for the following targets:

-- Targeting AArch64
-- Targeting AMDGPU
-- Targeting ARM
-- Targeting AVR
-- Targeting BPF
-- Targeting Hexagon
-- Targeting Lanai
-- Targeting LoongArch
-- Targeting Mips
-- Targeting MSP430
-- Targeting NVPTX
-- Targeting PowerPC
-- Targeting RISCV
-- Targeting Sparc
-- Targeting SystemZ
-- Targeting VE
-- Targeting WebAssembly
-- Targeting X86
-- Targeting XCore

Gentoo used to offer you the option to limit the targets and make libLLVM.so much smaller, but now rust applications that link to llvm have issues with this with caused them to remove that feature...

Another is libicudata, that's a 30 MiB lib that all GTK applications end up linking to for nothing, because it is a dependency of libxml2, which distros override to build with icu support (by default this lib does not link to libicudata) and what's more sad is that the depenency to libxml2 comes because of transitive dependency to libappstream, yes that appstream that I don't even know why most applications would need to link to this.

And then there is archlinux that for some reason builds libopus to be 5 MiB when most other distros have this lib <500 KiB

Sure dynamic linking in the case of something like the coreutils, where you are going to have a bunch of small binaries makes sense, except you now have stuff like busybox which is a single static bin that acts as each of the different tools by checking the name of the symlink that launched it and it is very tiny at 1 MiB and it provides all your basic unix tools including a very good shell.

Even Linus was surprised by how much dynamic linking is abused today: https://lore.kernel.org/lkml/CAHk-=whs8QZf3YnifdLv57+FhBi5_WeNTG1B-suOES=RcUSmQg@mail.gmail.com/

To pick how I’m going to install something,

https://github.com/ivan-hc/AM

I have all these applications using 3.2 GIB of storage while the flatpak equivalent actually uses 14 GiB 💀: https://i.imgur.com/lvxjkTI.png

flatpak is actually sold on the idea that shared dependencies are good, you have flatpak runtimes and different flatpaks can share, the problem here is that those runtimes are huge on their own, the gnome runtime is like 2.5 GiB which is very close to all those 57 applications I have as appimage and static binaries.

but it doesn’t actually make it easier for me, it just makes it easier for the packager of the software

Well I no longer have to worry about the following issue:

  • My application breaking because of a distro update, I actually now package kdeconnect as an appimage because a while ago it was broken for 2 months on archlinux. The only app I heavily rely from my distro now is distrobox.

  • I also get the latest updates and fixes as soon as upstream releases a new update, with distro packaging you are waiting a week at best to get updates. And I also heard some horror stories before from a dev where they were told that they had to wait to push an update for their distro package and the only way to speed it up was if it was a security fix.

  • And not only you have to make sure the app is available in your distro packages, you also have to make sure it is not abandoned, I had this issue with voidlinux when I discovered the deadbeef package was insanely out of date.

  • Another issue I have with distro packages in general is that everything needs elevated rights to be installed, I actually often hear this complains from linux newbies that they need to type sudo for everything and it doesn't have to be this way, AM itself can be installed as appman which makes it able to work on your HOME with all its features. And you can take your HOME and drop it in any other distro and be ready to go as well.

AppImage is meant to be updated using the embedded zsync info the runtime, that is the user should never have to open the app to update it.

The user needs to have something like AM, appimagelauncher or appimaged that is then able to parse the info and update the appimages using appimageupdatetool

This method also provides delta updates, meaning it doesn't download the entire app but only a diff, see this test with CPU-X where it downloaded 2.65 MiB to update the app:

TLDR: https://github.com/ivan-hc/AM

view more: next ›