Hi, I am currently working on finishing a patch to add the AppImage format to guix pack. Everything is working fine, but a problem arises with the elf interpreter section contained in the executable.
AppImages are made of an executable runtime that is attached a squashfs image of the application to run. As any other linux executable it needs to specify an interpreter path to run, on guix this could be /gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35/lib/ld-linux-x86-64.so.2 but on other distros it will be /lib64/ld-linux-x86-64.so.2. This is often why you can’t run external binaries on guix without using patchelf to set the correct interpreter. This means AppImages built on Guix can’t be distributed to other distros, and vice-versa. This is why I propose that we set a symlink to /lib64/ld-linux-x86-64.so.2, the interpreter path used on all the other distros (I think) the same way /usr/bin/env is used to make scripts function. In this way, I could build the AppImages with the portable path and have the AppImage work both on guix and other distros. Another solution is to build the AppImages statically with musl libc, but that is much more complicated. Tell me what you think, Noé Lopez