Why does nix need to wrap AppImages

As in the title, why?

Aren’t AppImages supposed to run on every distro because all their deps are put into one filesystem and the application in the AppDir doesn’t need to go around looking for them? Why don’t they work out of the box?

I’d like to have an explanation so that I can:

  • learn
  • add it to the wiki
  • add it to the nixpkgs tools either as README or right in the code

The later are so that it’s documented and people can understand what’s going on and why.

As it turns out, that’s not true. AppImages have lots of external dependencies.

Here’s a whole list of stuff that AppImages assume to exist: https://github.com/AppImageCommunity/pkg2appimage/blob/33690a213ede3db00dd9ee7f403706dca8f8e63b/excludelist

More importantly though, they require a dynamic linker to be present under some arbitrary FHS directory I can’t remember.

2 Likes

So the problem is that is assumes these file exist and in nixOS they might exist but they just can’t be found because they aren’t in the expected location?

They might exist but not necessarily and most certainly not at the location a dynamic linker would expect …if there even was one.

I found this comment relevant when researching this:

https://github.com/NixOS/nixpkgs/pull/41762#issuecomment-396138984