hiran wrote: ↑Wed Nov 01, 2023 5:38 am
Is it possible that you have the executable but no complete installation and now the resource files are missing?
There's no issue with the Oolite resource files - they appear without issue. What doesn't appear are the GNUstep folders, which ought to be created on a first run. That and the messages in the latest.log leads to my suspicion that something is wrong with my GNUstep build. Possible avenues of investigation that occurred to me after a good night's sleep include:
- Building with the patched GNUstep version 1.20.1, which I'd originally avoiding doing because I wanted to try building with up-to-date libraries that hopefully had our bugfixes/patches in already, and as it was early on in my attempts I hadn't worked out an easy way to script edits or use patches yet. Now I have that experience I could give it a go.
- Building libobjc2 and then building GNUstep with that, rather than using the provided gcc. When dabbling early on I couldn't get this to work so moved on...
hiran wrote: ↑Wed Nov 01, 2023 5:38 am
Nevertheless I an now confused wheher you are building on arch, on Windows or using the Windows build environment in arch.
I'm building on Windows, using MSYS2
https://www.msys2.org/ and the MINGW64 environment. I've reproduced my successful steps so far with the shell script
https://github.com/Bzomak/oolite-msys2/ ... mingw64.sh, which also has some comments reminding me what I'm trying to do and why. I've also managed to duplicate this to work with GitHub actions, both by simply calling the shell script, and also by splitting everything down into separate jobs, as seen at
https://github.com/Bzomak/oolite-msys2/ ... -split.yml
Regarding my issue building on Arch Linux, it was a few months ago, so I can't guarantee precise details, but if I recall correctly, I tried building from the AUR
https://aur.archlinux.org/packages/oolite, but ran into a build error for something that had already been fixed in the repositories. I looked to see if I could edit the PKGBUILD to build from the latest pre-release (off topic, but having a latest release released with a fixed name, i.e. latest, meant there was a predictable download link that scripts can use, which is not the case with the current situation when released with the build as the name) rather than the release of 1.90.4, but we don't as of yet provide the full source code in the download (again, I might be wrong, but I think that when I looked, the attached Source.zip only contains the source code for the Oolite repository, and not any of the submodules). I then moved to just checking out the Oolite repository and building myself, which worked, apart from the issues with libpng. These have been documented by others elsewhere, but it involves a mismatch between libpng14 and libpng16 (building with one and running with the other). As mentioned elsewhere on the boards and on the AUR, removing the png headers worked. However, in theory, the solution ought to have been to be able to make a deps-release, rather than a release, so that it builds
and runs with the provided libpng14. But for some reason the Makefiles were not setting the HOST_ARCH variable and so it couldn't find the deps. So then I thought I'd have a look on Windows, since I already had the downloadable working build environment there, and then got distracted and went down this rabbit hole! At some point I'll go back and have a look and see if I can figure out what to do to fix it, now I've learnt/re-learnt a lot about building and libraries and Makefiles and such, and if I get anywhere, I'll file a bug report/fix at the appropriate location. In the meantime, I've got rather invested in this Windows build attempt!
hiran wrote: ↑Wed Nov 01, 2023 5:38 am
I'm familiar with the current build systems. I've been studying them in great detail (as well as the ones for the various GNUstep libraries and all their respective HOW-TOs, READMEs and installation instructions). If anything actually comes of this project then the hope is that they'd eventually become obsolete.
The end goal here is to have an up-to-date and reproducible build environment, rather than using the current system
https://github.com/OoliteProject/oolite ... -build-env which is essentially a mirror of an ancient system on a_c's computer that's been in use for so long that we're unable to set it up from scratch (or at least, not without considerable effort) and so must copy it. When you managed to set this up on GitHub Actions it was a massive step up from where we previously were - having Oolite automatically build and released for each new commit is absolutely fantastic. I'm attempting to build on your concept and hard work, but by taking out the pre-built stuff and the old environment, and by setting up each dependency as a clear and separate job, which would then hopefully make it easier to update and test those as well. If it's not present in the repositories, such as GNUstep, then as you can see the aim is to build it from source.
(For any kind of distribution, then even if a library is present in the repositories, we may need to be careful about versioning, as the MSYS2 repositories do update. I believe that it's possible to install older versions from the archives, but I haven't experimented with that yet. But that sort of thing is a
long way in the future, and only worth looking into
if this project manages to go anywhere.)
Hope that makes things a little clearer! Until yesterday, I didn't have anything tangible to show for my efforts. Since I now have a way of making Oolite run, albeit not fully and only under certain conditions, I thought I'd share my work and see if the experts who
actually know what they are doing can offer any tips! It seems to have attracted a_c's interest; I'll sit back and patiently wait for him to find some time to see if he can make head or tail out of what I've done. And if it ultimately all comes to naught, then no worries, as I've definitely learnt a lot!