A2 not booting in latest Linux Fedora 37
I have been running A2 on Linux Fedora without problems for several years. After I have switched to latest Fedora 37 OS, A2 stopped booting. All it does is opening white window and then hangs. Console output says:
zdenek@fedora work]$ a2
[zdenek@fedora work]$ GC mode : metadata
WORK: mounted
X11 Display depth = 24
and then it stops.
Normally it should continue with following line: OpenType 0.45 BBPort /3.12.2004 eos, pl
This error happens only on Fedora 37. I have traced the problem down to module Unix.KbdMouse.Mod where in procedure 'Init' there is call to nested procedure 'Rebind' and inside this procedure there is call to linux Xlib function: X11.RebindKeysym( disp.xdisp, oldkeysym, modifiers, nofmod, ADDRESSOF( newkeystr ), 1 ); In Linux this function is called ‘XRebindKeysym’.
This is the place where A2 stops. When I comment out this Xlib call A2 is booting again. Of course without this Xlib call it will have some problems with key codes but it runs.
Strange thing is that when I call this Xlib function after A2 has already booted, it runs fine without any visible problems.
So I have created temporary fix for this error where this module KbdMouse.Mod has been compiled with mentioned Xlib call commented out and with another procedure added to this module called 'Init2'. Procedure 'Init2' is identical to procedure 'Init' only that call to mentioned Xlib function is NOT commented out. After A2 finishes booting I manually run KbdMouse.Init2 ~ and keys behave normally again. Placing compiled object files for module KbdMouse in work directory makes it possible to run A2 on Fedora 37 without recompiling whole A2 source.
Again, this problem only happens on Fedora 37. Fedora 37 has new kernel 6.0 but running on kernel 6.0 in Fedora 36 does NOT cause this error. Fedora 37 also has new Gnome. I have been looking on Linux header files for Xlib and they seem to be the same like in Fedora 36. Function XRebindKeysym has not changed. So I am perplexed what is causing this error in Fedora 37.
Described solution is of course only temporary fix so I would like to know:
-
why calling Xlib function 'XRebindKeysym' hangs only during A2 booting process and why does it not hang when called later after booting process has ended?
-
Also I would like to know what causes A2 to stop execution at this point when Xlib function 'XRebindKeysym' apparently has not changed in Fedora 37?
Zdenek