I've cloned the SinclairQL/sQLux repository (https://github.com/SinclairQL/sQLux.git) onto my pi Zero 32 bit Arm, and onto my Linux Mint AMD-64 bit laptop.
Both required libsdl2-dev to be installed:
Code: Select all
sudo apt install libsdl2-dev
Running './qlux -?' works fine and shows the command-line options.
Running './qlux -??' to browse the manuals falls over with a segfault. I tracked this down to the browse_manuals() function in file unixstuff.c. It calls 'loc = qm_findx ("browse_manual");' but doesn't check 'loc' for NULL on return before attempting a 'strncpy()'. It looks like 'qm_findx()' is trying to find the location of the executable to pick up a utility named browse_manual which doesn't (yet?) exist. The search paths in use appear all wrong given where the executable could be running from. (Why not save argv[0] away somewhere? (If the executable path is required?) Or why actually bother if the 'browse_manual' utility is misisng.
Anyway, here are the foibles:
On my pi Zero, it runs. the 'file' command tells me it's an ELF 32-bit executable. I can run it from the command line or in the GUI, with no problems. Other than being diabolically slow, probably due to the SDL stuff as the 2017 X11 version was miles quicker. Startup takes about 5 minutes.
On my laptop, the 'file' command says that it's an Elf 64-bit shared object. It will not run from the file manager, but will from the command line. When it runs, I can type a command, but the RETURN key doesn't get accepted so I cannot actually do anything! I think this is also an SDL foible as I have tried to use another app in the past, written in JavaFX, which I think also uses SDL, and that app has exactly the same problem.
So, in summary:
SDL looks to be a right drag on the pi Zero, better off sticking with the 2017 X11 version, which works far quicker. But can't be used in command line mode, only under the GUI - for obvious (X11) reasons.
SDL looks to be a right pita on my laptop as well!
Not a very successful day so far! But when I have more time, I'm at work now, I'll take another look.
Cheers,
Norm.