hi,
I want learn how to manual packaging linux binaries as AppImages.
I’m following guide at: https://docs.appimage.org/packaging-guide/manual.html
and for a my GTK3 app I created a package with all deps and deps of deps in ./lib
and hand written the AppRun script. All is available at:
On my own distro (Debian 11) this always work.
I tested on Debian 10 and do not work.
Running the CLI app work with a simple PATH and LD_LIBRARY_PATH that point to ./lib
(The CLI app depend on libm and libc only)
While running the GUI always generate the error:
*** stack smashing detected ***: terminated
I tried to use also the AppRun available at:
same result.
Running using strace I got this:
strace: relocation error: strace: symbol clock_gettime version GLIBC_2.2.5 not defined in file librt.so.1 with link time reference
Note: On Debian 11 libm depend on glibc 2.29, and should be the one packaged. I do not know why look for 2.2.5
Regarding your error, this is a version mismatch typically happening when you are trying to use binaries that were built on a system newer than the target system you want to run them on.
About the links you supplied, are you suggesting to use which packaging tools?
The one in GO or ‘linuxdeploy’ ?
About 32 bit, I want still build for x86, and I regularly build 32 bit binary. I cannot manage to generate an AppImage that work across distro (at least Debian, Fedora and Arch). How do you do that?
I don’t recommend a particular tool, they all have their use cases.
go-appimage is the one I use and develop, but the others cover specific use cases, too. So it’s best to try a few and pick the one you like best.