[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: appimage with 24.04


On 8/8/25 10:48, Benoît Minisini wrote:
Le 08/08/2025 à 19:29, Brian G a écrit :
Little more progress.

      I built the debug version of the AppRun app.
      I tracked it down specifically to gbr3->gbx3 generating the error when the version of libc6 is the one being used from the bundle.       Trying to track down if some lib path or ld path is being set incorrectly. Now if someone knows how to debug the       gbr3->gbx3 or somehow turn on debug messages, would be very very helpful!

     Ben is it possible to turn on debug messages at runtime in those apps?  would have to be very early during startup.


I don't understand what you are talking about. Can you explain?

Ok,

AppRun, that is the part that starts the appimage actual user app.

Here is what I understand

It does a number of things when the appimage is started, one of the main things it does is set a diversion so to speak in regards to the libc library.

If the version in the appimage bundle as reported by the .env file is less than the System version libc then AppRun creates diversion to use the system version of the
libc library.

But when the bundle version of libc is equal or greater than the system version of libc then AppRun sets the diversion to use the version of libc contained inside the
bundle. that is the general mechanics of the thing.

Now when the version set by AppRun is the system version of libc then gbr3->gbx3 runs correctly. It is when the AppRun sets the diversion to the bundle version of libc
that the gbr3->gbx3 exits with file not found.

It looks like right now that gbx3 is looking for some library and getting confused where it is... this at this point is supposition.

If it were possible to trace the startup of gbx3 then perhaps it would be possible to see what is happening, and maybe set an env variable to fix the issue.

So the question is how to turn on the internal trace for gbx3?

here is a sample output from the AppRun trace

This works, ignore the bytecode error my fault

APPRUN_DEBUG: APPRUN_PATH=/tmp/.mount_hello_e9O4MQ/AppRun
APPRUN_DEBUG: set env ORIGIN=/tmp/.mount_hello_e9O4MQ
APPRUN_DEBUG: Looking for .env file at: /tmp/.mount_hello_e9O4MQ/AppRun.env
APPRUN_DEBUG: set env APPDIR=/tmp/.mount_hello_e9O4MQ
APPRUN_DEBUG: set env APPIMAGE_UUID=SN6Ut7w
APPRUN_DEBUG: set env APPDIR_EXEC_PATH=/tmp/.mount_hello_e9O4MQ/usr/bin/gbr3
APPRUN_DEBUG: set env APPDIR_EXEC_ARGS=/tmp/.mount_hello_e9O4MQ/usr/bin/hello_world APPRUN_DEBUG: set env XDG_DATA_DIRS=/tmp/.mount_hello_e9O4MQ/usr/local/share:/tmp/.mount_hello_e9O4MQ/usr/share:/usr/share/mate:/home/brian/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share APPRUN_DEBUG: set env XDG_CONFIG_DIRS=/tmp/.mount_hello_e9O4MQ/etc/xdg:/etc/xdg/xdg-mate:/etc/xdg APPRUN_DEBUG: set env APPDIR_LIBRARY_PATH=/tmp/.mount_hello_e9O4MQ/usr/lib/gambas3:/tmp/.mount_hello_e9O4MQ/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_e9O4MQ/lib/x86_64 APPRUN_DEBUG: set env PATH=/tmp/.mount_hello_e9O4MQ/usr/bin:/tmp/.mount_hello_e9O4MQ/bin:/home/brian/vars/scripts:/usr/share/gsh/scripts:/usr/lib/git-core:/home/brian/.config/emacs/bin:/home/brian/.local/bin:/home/brian/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/thinlinc/bin:/opt/thinlinc/sbin
APPRUN_DEBUG: set env GTK_EXE_PREFIX=/tmp/.mount_hello_e9O4MQ/usr
APPRUN_DEBUG: set env GTK_DATA_PREFIX=/tmp/.mount_hello_e9O4MQ/usr
APPRUN_DEBUG: set env APPDIR_LIBC_LIBRARY_PATH=/tmp/.mount_hello_e9O4MQ/runtime/compat/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_e9O4MQ/runtime/compat/usr/lib/x86_64-linux-gnu/gconv:/tmp/.mount_hello_e9O4MQ/runtime/compat/usr/lib64
APPRUN_DEBUG: set env APPDIR_LIBC_VERSION=2.35
APPRUN_DEBUG: set env GB_PATH=/tmp/.mount_hello_e9O4MQ/usr/bin/gbr3
APPRUN_DEBUG: set env APPDIR_PATH_MAPPINGS=/home/brian/.var/tmp/AppImage/AppDir:/tmp/.mount_hello_e9O4MQ;
APPRUN_DEBUG: set env APPDIR_LIBC_LINKER_PATH={'lib64/ld-linux-x86-64.so.2'}
APPRUN_DEBUG: interpreter "{'lib64/ld-linux-x86-64.so.2'}"
APPRUN_DEBUG: system ld(2.39), appdir ld(2.35)
APPRUN_DEBUG: using system libc
APPRUN_DEBUG: set env LD_LIBRARY_PATH=/tmp/.mount_hello_e9O4MQ/usr/lib/gambas3:/tmp/.mount_hello_e9O4MQ/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_e9O4MQ/lib/x86_64:
APPRUN_DEBUG: set env LD_PRELOAD=libapprun_hooks.so
APPRUN_DEBUG: set env APPRUN_RUNTIME=/tmp/.mount_hello_e9O4MQ/runtime/default APPRUN_DEBUG: executing "/tmp/.mount_hello_e9O4MQ/usr/bin/gbr3" "/tmp/.mount_hello_e9O4MQ/usr/bin/hello_world" ERROR: #2: Cannot load class 'Main': Bytecode too recent. Please upgrade Gambas.

Here is the failing run

APPRUN_DEBUG: APPRUN_PATH=/tmp/.mount_hello_z3tIiS/AppRun
APPRUN_DEBUG: set env ORIGIN=/tmp/.mount_hello_z3tIiS
APPRUN_DEBUG: Looking for .env file at: /tmp/.mount_hello_z3tIiS/AppRun.env
APPRUN_DEBUG: set env APPDIR=/tmp/.mount_hello_z3tIiS
APPRUN_DEBUG: set env APPIMAGE_UUID=SN6Ut7w
APPRUN_DEBUG: set env APPDIR_EXEC_PATH=/tmp/.mount_hello_z3tIiS/usr/bin/gbr3
APPRUN_DEBUG: set env APPDIR_EXEC_ARGS=/tmp/.mount_hello_z3tIiS/usr/bin/hello_world APPRUN_DEBUG: set env XDG_DATA_DIRS=/tmp/.mount_hello_z3tIiS/usr/local/share:/tmp/.mount_hello_z3tIiS/usr/share:/usr/share/mate:/home/brian/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share APPRUN_DEBUG: set env XDG_CONFIG_DIRS=/tmp/.mount_hello_z3tIiS/etc/xdg:/etc/xdg/xdg-mate:/etc/xdg APPRUN_DEBUG: set env APPDIR_LIBRARY_PATH=/tmp/.mount_hello_z3tIiS/usr/lib/gambas3:/tmp/.mount_hello_z3tIiS/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_z3tIiS/lib/x86_64 APPRUN_DEBUG: set env PATH=/tmp/.mount_hello_z3tIiS/usr/bin:/tmp/.mount_hello_z3tIiS/bin:/home/brian/vars/scripts:/usr/share/gsh/scripts:/usr/lib/git-core:/home/brian/.config/emacs/bin:/home/brian/.local/bin:/home/brian/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/thinlinc/bin:/opt/thinlinc/sbin
APPRUN_DEBUG: set env GTK_EXE_PREFIX=/tmp/.mount_hello_z3tIiS/usr
APPRUN_DEBUG: set env GTK_DATA_PREFIX=/tmp/.mount_hello_z3tIiS/usr
APPRUN_DEBUG: set env APPDIR_LIBC_LIBRARY_PATH=/tmp/.mount_hello_z3tIiS/runtime/compat/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_z3tIiS/runtime/compat/usr/lib/x86_64-linux-gnu/gconv:/tmp/.mount_hello_z3tIiS/runtime/compat/usr/lib64
APPRUN_DEBUG: set env APPDIR_LIBC_VERSION=2.39
APPRUN_DEBUG: set env GB_PATH=/tmp/.mount_hello_z3tIiS/usr/bin/gbr3
APPRUN_DEBUG: set env APPDIR_PATH_MAPPINGS=/home/brian/.var/tmp/AppImage/AppDir:/tmp/.mount_hello_z3tIiS;
APPRUN_DEBUG: set env APPDIR_LIBC_LINKER_PATH={'lib64/ld-linux-x86-64.so.2'}
APPRUN_DEBUG: interpreter "{'lib64/ld-linux-x86-64.so.2'}"
APPRUN_DEBUG: system ld(2.39), appdir ld(2.39)
APPRUN_DEBUG: using appdir libc
APPRUN_DEBUG: set env LD_LIBRARY_PATH=/tmp/.mount_hello_z3tIiS/usr/lib/gambas3:/tmp/.mount_hello_z3tIiS/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_z3tIiS/lib/x86_64:/tmp/.mount_hello_z3tIiS/runtime/compat/usr/lib/x86_64-linux-gnu:/tmp/.mount_hello_z3tIiS/runtime/compat/usr/lib/x86_64-linux-gnu/gconv:/tmp/.mount_hello_z3tIiS/runtime/compat/usr/lib64:
APPRUN_DEBUG: set env LD_PRELOAD=libapprun_hooks.so
APPRUN_DEBUG: set env APPRUN_RUNTIME=/tmp/.mount_hello_z3tIiS/runtime/compat
APPRUN_DEBUG: executing "/tmp/.mount_hello_z3tIiS/usr/bin/gbr3" "/tmp/.mount_hello_z3tIiS/usr/bin/hello_world"
APPRUN_ERROR: No such file or directory

That is what i have so far. Maybe you can spot something, but a trace from gbr3 would be nice!

--
~~~~ Brian

Attachment: OpenPGP_0x78BFB26402F48419.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


References:
Re: appimage with 24.04Linus <olivier.cruilles@xxxxxxxx>
Re: appimage with 24.04Brian G <brian@xxxxxxxxxxxxxxxx>
Re: appimage with 24.04Benoît Minisini <benoit.minisini@xxxxxxxxxxxxxxxx>