I appreciate your focus.
Lone_Wolf wrote: ↑Thu Dec 11, 2025 11:27 am
MrFlibble, I have a hard time following the commits in your fork and feel you tried to do to much.
I did have a brief skim through the file diffs between my fork and master yesterday.. Much easier to see what's happening than looking at the plethora of commits I did in order to test build on github. There's a lot of do, try, undo, redo, which are not easily purged from the commit history.
Lone_Wolf wrote: ↑Thu Dec 11, 2025 11:27 am
If I were to tackle this issue, I'd follow something like this and only change what's absolutely necessary
Setup atleast 2 test systems with different distros
I'd use my own bare-metal workstation running archlinux and a VM running debian stable .
Arch Linux package versions are typically the newest stable versions, while debian stable is often used as a baseline to determine minimum required versions ((ubuntu does to many non-standard things to be used as baseline))
If something builds and runs on both it will likely run fine on the vast majority of distros.
Using the latest stuff is great, but not if you want the resulting binaries to ALSO work on older 'current stable' distros using their system libraries. I might develop on arch/gentoo/debian latest, but would still use "oldest current" to build for most compatibility. I do test stuff on other distro's in VMs.
In fact, these days I'm lazy, and mostly stick to LinuxMint for desktop and dev, with debian, arch and alpine for leaner server-type setups.
Lone_Wolf wrote: ↑Thu Dec 11, 2025 11:27 am
Main goal : use external system provided libraries for linux instead of oolite provided libs were possible
Secondary goal : update the libs to current versions
Main goal.. YES. That's what I set out to do.
Secondary goal... NO. Not exactly. The resulting installers on Github releases should aim to be as compatible with 'oldest current' distros as possible. If I build with "ubuntu latest", it won't run on older still supported distros... even IF libraries get bundled. That said, I see no harm in testing that it'll build with newest libraries on newest distros, and perhaps even build deb packages using all ubuntu and deb 'workers' currently available on github. A single deb using older minimal library versions might be more convenient.
Perhaps secondary goal might be better defined as a corollary of the first.. Where system libraries can be available, even if it means user must install them (or apt pull them in), do not have stale versions of those libraries in the Oolite source tree., thus whatever the build host, the latest libraries might get used.
Lone_Wolf wrote: ↑Thu Dec 11, 2025 11:27 am
test procedure
- release target runtime
- test build of other targets
- runtime test of posix-pkg
Task 1
1. switch from espeak to espeak-ng system library
test
create PR
Task 2
1. switch from libpng 1.4 to 1.6
test
create PR
Task 3
use sdl12-compat (runs on sdl2 )
test
create PR
One by one tackle all remaining external deps
I did all that, without a PR in between, as it was in iterative process covering all those bases with a lot of trial and error.
A lot of poking around went on over quite a while. I would have done more PR's along the way but wanted to get to a sane and stable point which would build functionally for as many current systems as possible using the oldest available github Ubuntu 'worker' for max compatibility and least effort. I have ideas to do chroot/proot builds.
I figured too many flaky PR's would be "just noise". I suppose I could re-do it all, in those stages with PR's between, but don't have time right now.
Perhaps another approach (at this point) would be for me to do a "summary commit", with a final summary list of changes for the PR. If I choose to do that, I'll merge master changes first and re-test.
Either way.. Ignore the commits when looking at my fork vs. master.. Look at the file diffs!!!
Re: workflows/build-all.yml It can be mostly ignored when looking at what I've done to help clean up the library mess. I've chopped out all the windows stuff to speed-up Linux tests while I work, and I'll likely put those back to normal ASAP, however the changes to the doxygen build phase, and some of the other cleanups to the Linux build process there may prove worthwhile.