Closed kem-a closed 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.
@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.
For example in
AppRun
I have set environmental variable forexport 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 ofelisa
audio player libs are inelisa
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 variableexport 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.