AppImage / AppImageKit

Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
http://appimage.org
Other
8.78k stars 563 forks source link

AppImage does not search in subdirs defined by env variables #1253

Closed kem-a closed 1 year ago

kem-a commented 1 year ago

For example in AppRun I have set environmental variable for export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}". In some cases when apps have subfolders there, like in case of elisa audio player libs are in elisa subfolder then those libs are ignored, not accessed during runtime. Sometimes it can be fixed by symlinking, but not always.

Another example is Midnight Commander. For MC to work I have to set env variable export MC_DATADIR="${HERE}/usr/share/mc/" but then it also looks for syntax folder in /usr/share/mc/syntax/ which is ignored and I can only set one variable.

probonopd commented 1 year ago

Hello @AI-ien, this is correct. There is no way we could make one AppRun that does everything for every application. For cases like those you could write your own AppRun script or binary instead of the default AppRun.c one. Let us know if this does not work for you. Thanks.

kem-a commented 1 year ago

@probonopd the thing is that I'm working currently on a project to create AppImages directly from rpms using dnf. So instead of looking for pre-built AppImages you can install them directly using already existing infrastructure. This is particularly interesting for immutable systems like Kinoite. Additionally package is built against host system just like traditional dnf thus reducing package size, deduping libs and increasing launch speed.

But, the biggest problem I face right now is that many of apps fail to built, because of scrappy or weird packaging mechanism involved, like hard coded paths or ignoring global environmental variables. Of course I could apply postscript patch for each app that fails, but that seems ineffective and huge work.