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.
Atemu
November 6, 2022, 2:57pm
2
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: pkg2appimage/excludelist at 33690a213ede3db00dd9ee7f403706dca8f8e63b · AppImageCommunity/pkg2appimage · GitHub
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?
Atemu
November 6, 2022, 3:12pm
4
They might exist but not necessarily and most certainly not at the location a dynamic linker would expect …if there even was one.
tni
November 6, 2022, 5:08pm
5
I found this comment relevant when researching this:
NixOS:master
← tilpner:appimage-run
opened 05:13PM - 09 Jun 18 UTC
###### Motivation for this change
This adds a best-effort hack to run AppImag… es, which currently don't
work out-of-the-box on NixOS. This is not preferable to using packaged
applications, but may help users if the application they want to run
is not in nixpkgs.
It uses the package list from the Steam chroot, but without Steam
packages.
As with steam-run, this does little sandboxing. I have an alternative
expression that uses bubblewrap to isolate the users data from
the to-be-run AppImage.
###### Things done
- [x] Tested using sandboxing ([nix.useSandbox](http://nixos.org/nixos/manual/options.html#opt-nix.useSandbox) on NixOS, or option `sandbox` in [`nix.conf`](http://nixos.org/nix/manual/#sec-conf-file) on non-NixOS)
- Built on platform(s)
- [x] NixOS
- [ ] macOS
- [ ] other Linux distributions
- [ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- [x] Tested compilation of all pkgs that depend on this change using `nix-shell -p nox --run "nox-review wip"`
- [x] Tested execution of all binary files (usually in `./result/bin/`)
- [x] Fits [CONTRIBUTING.md](https://github.com/NixOS/nixpkgs/blob/master/.github/CONTRIBUTING.md).
---