Page 1 of 2

Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 4:28 am
by mcarans
Looking at this forum and GitHub issues, it seems many people including me run into the texture issue which can be solved with:

rm deps/Linux-deps/include/png.h
rm deps/Linux-deps/include/pngconf.h


I was wondering if on any modern Linux builds those two files are actually needed. If not, then should the default be to not include those files (although they could still be renamed or kept elsewhere with instructions in case anyone needs them)?

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 11:48 am
by Lone_Wolf
png is a bit tricky .

I haven't gotten deps-release working on archlinux, but have managed to get trunk(1.91) and stable (1.90) builds working with the release target.

Trunk only needs -lpng14 to link the right png libraries .

Stable also needs that and can build if png14 is the only png version present .
With multiple png versions present I have to ensure the system include files for png14 are used .

trunk patch
stable patch

The deps-* targets are meant to use the files in Linux-deps, removing stuff there will likely break them.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 1:26 pm
by MrFlibble
mcarans wrote: Sat Jul 26, 2025 4:28 am
Looking at this forum and GitHub issues, it seems many people including me run into the texture issue which can be solved with:

rm deps/Linux-deps/include/png.h
rm deps/Linux-deps/include/pngconf.h


I was wondering if on any modern Linux builds those two files are actually needed. If not, then should the default be to not include those files (although they could still be renamed or kept elsewhere with instructions in case anyone needs them)?
On my fork at the moment, I've moved deps/Linux-deps/include to deps/Linux-deps/include-old and all seems well, at least for the github runner. It seems those .h files are vanilla, and stale.
Lone_Wolf wrote: Sat Jul 26, 2025 11:48 am
png is a bit tricky .

I haven't gotten deps-release working on archlinux, but have managed to get trunk(1.91) and stable (1.90) builds working with the release target.

Trunk only needs -lpng14 to link the right png libraries .
I've just tweaked the workflow on my fork to show what version of libpng is being used...

Code: Select all

dpkg -l | grep '^ii *libpng' | awk '{print $2"-"$3}'
libpng-dev:amd64-1.6.37-3build5
libpng16-16:amd64-1.6.37-3build5

ls -al /usr/lib/x86_64-linux-gnu/libpng*  | sed 's@^[^/]*@@g'
/usr/lib/x86_64-linux-gnu/libpng.a -> libpng16.a
/usr/lib/x86_64-linux-gnu/libpng.so -> libpng16.so
/usr/lib/x86_64-linux-gnu/libpng16.a
/usr/lib/x86_64-linux-gnu/libpng16.so -> libpng16.so.16.37.0
/usr/lib/x86_64-linux-gnu/libpng16.so.16 -> libpng16.so.16.37.0
/usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0
... so I guess libpng being v14 is not critical.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 1:58 pm
by Lone_Wolf
MrFlibble wrote:
... so I guess libpng being v14 is not critical.
Not during building/linking , but at runtime it is.
All PNGs in oolite sourcecode were created with libpng14 and libpng16 can't use them.

EDIT: running ldd / lddtree on the created executable will give a definitive answer what is used at runtime.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 2:23 pm
by MrFlibble
Lone_Wolf wrote: Sat Jul 26, 2025 1:58 pm
MrFlibble wrote:
... so I guess libpng being v14 is not critical.
Not during building/linking , but at runtime it is.
All PNGs in oolite sourcecode were created with libpng14 and libpng16 can't use them.

EDIT: running ldd / lddtree on the created executable will give a definitive answer what is used at runtime.
I'd noticed that libpng16 was spitting into the log about grayscale files not being allowed to use RGB.

When I try my build on a kubuntu 25.04 VM, I see textures on the planet and station. What png's might get broken that I might see in a quick test?

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 2:43 pm
by Lone_Wolf
I build oolite trunk against libpng 16 in a clean chroot

Code: Select all

$ ldd /usr/share/oolite-git/oolite | grep png
        libpng16.so.16 => /usr/lib/libpng16.so.16 (0x00007fb53f8c5000)
$ 

Just starting oolite gave these errors and lead to no text visibile in menu , only colored blocks.
removing those 2 files didn't help.

Code: Select all

16:35:58.180 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.180 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-particle-blur.png.
16:35:58.180 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.180 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-particle-flash.png.
16:35:58.206 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.206 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_barrel_diffuse.png.
16:35:58.206 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.206 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_barrel_normal.png.
16:35:58.206 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.206 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_barrel_specular.png.
16:35:58.253 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.253 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-font.png.
16:35:58.253 [script.javascript.init]: JavaScript reset successful.
16:35:58.314 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.314 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/trumblekit.png.
16:35:58.370 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.370 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_cobra3_subents.png.
16:35:58.370 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.370 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_cobra3_subents_normal.png.
16:35:58.371 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.371 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_cobra3_diffuse.png.
16:35:58.371 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.371 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.371 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_cobra3_normal.png.
16:35:58.371 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_cobra3_diffuse.png.
16:35:58.371 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.371 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_cobra3_specular.png.
16:35:58.378 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.378 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_missile_diffuse.png.
16:35:58.378 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.378 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_missile_diffuse.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-1.png.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-1-large.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-2.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-1-alt.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-4.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-3.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-6.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-5.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-7.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-8.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-9.png.
16:35:58.399 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.399 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-star-2-large.png.
16:35:58.420 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.421 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-nebula-2.png.
16:35:58.420 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.421 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.421 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.421 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-nebula-1.png.
16:35:58.421 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-nebula-3.png.
16:35:58.421 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-nebula-4.png.
16:35:58.421 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.421 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite-particle-dust.png.
16:35:58.425 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.425 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.425 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_diffuse.png.
16:35:58.425 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_diffuse.png.
16:35:58.425 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.425 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.425 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_specular.png.
16:35:58.425 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_normal.png.
16:35:58.478 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.478 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_faceplate_diffuse.png.
16:35:58.478 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.478 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_faceplate_diffuse.png.
16:35:58.478 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.478 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.478 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_faceplate_normal.png.
16:35:58.478 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_faceplate_specular.png.
16:35:58.482 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.482 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_tris_diffuse.png.
16:35:58.482 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.482 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_tris_diffuse.png.
16:35:58.482 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.482 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_tris_specular.png.
16:35:58.482 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.482 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_tris_normal.png.
16:35:58.495 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.496 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_dock_diffuse.png.
16:35:58.496 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.496 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.496 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_dock_normal.png.
16:35:58.496 [texture.load.png.setup.failed]: ***** Error preparing to read /usr/share/oolite-git/Resources/Textures/oolite_coriolis_dock_diffuse.png.
16:35:58.572 [display.initGL]: Requested a new surface of 2560 x 1440, fullscreen.
16:35:58.677 [display.initGL]: Created a new surface of 2560 x 1440, fullscreen.
16:35:58.687 [startup.complete]: ========== Loading complete in 2.23 seconds. ==========
16:35:58.874 [texture.load.png.warning]: ----- A PNG loading warning occurred for (null): Application built with libpng-1.4.7 but running with 1.6.50.
16:35:58.874 [texture.load.png.setup.failed]: ***** Error preparing to read /home/panoramix/GNUstep/Library/ApplicationSupport/Oolite/ManagedAddOns/oolite.oxp.Svengali.BGS.oxz/Images/bgs_intro.png.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Jul 26, 2025 5:30 pm
by MrFlibble
There's something odd at play here. I see no such issue.

I'm building my fork on github, using an Ubuntu 22.04 runner. Installing the resulting self-extract installer to $HOME on a kubuntu 25.04 VM.

Here's what we have on the build host:

Code: Select all

$ dpkg -l | grep '^ii *libpng' | awk '{print $2"-"$3}'
libpng-dev:amd64-1.6.37-3build5
libpng16-16:amd64-1.6.37-3build5

$ ls -al /usr/lib/x86_64-linux-gnu/libpng*  | sed 's@^[^/]*@@g'
/usr/lib/x86_64-linux-gnu/libpng.a -> libpng16.a
/usr/lib/x86_64-linux-gnu/libpng.so -> libpng16.so
/usr/lib/x86_64-linux-gnu/libpng16.a
/usr/lib/x86_64-linux-gnu/libpng16.so -> libpng16.so.16.37.0
/usr/lib/x86_64-linux-gnu/libpng16.so.16 -> libpng16.so.16.37.0
/usr/lib/x86_64-linux-gnu/libpng16.so.16.37.0
Quite a lot going on here, partly 'cos I'm pulling in the dev package.
Also we have the libpng.so on Ubuntu 22.04

Regarding libpng.so symlink, I checked on my LinuxMint 21.3, which is based on Ubuntu 22.04

Code: Select all

$ dpkg -S /usr/lib/x86_64-linux-gnu/libpng.so
libpng-dev:amd64: /usr/lib/x86_64-linux-gnu/libpng.so
So that symlink is put there by the dev package on Ubuntu. I've left it that way in the source, to give one less thing to edit when libpng gets an upgrade to >16.

Here's what we get from the installed Oolite on the kubuntu 25.04 target:

Code: Select all

$ ldd $HOME/GNUstep/Applications/Oolite/oolite.app/oolite | grep png
              libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x0000777256e7d000)

$ dpkg -l | grep '^ii *libpng' | awk '{print $2"-"$3}' 
libpng16-16t64:amd64-1.6.47-1.1

$ ls -al /usr/lib/x86_64-linux-gnu/libpng*  | sed 's@^[^/]*@@g'
/usr/lib/x86_64-linux-gnu/libpng16.so.16 -> libpng16.so.16.47.0
/usr/lib/x86_64-linux-gnu/libpng16.so.16.47.0
As discovered above, Ubuntu will not have the libpng.so symlink without the dev package.

So even though on the github runner it built against libpng-dev-1.6.37-3build5 it's working fine with the newer one here.

I proceed to test the game, albeit slowly in the VM. I'm running it with the wrapper scripts.

Code: Select all

$ $HOME/GNUstep/Applications/Oolite/oolite
Configuration contains unknown keys - ("GNUSTEP_FILESYSTEM_LAYOUT")
Add them in the comma separated list GNUSTEP_EXTRA=... if required.

Unable to create time zone for name: 'Europe/London'
(source '(null)').

You can override the timezone name by setting the 'Local Time Zone'
NSUserDefault via the 'defaults' command line utility, a Preferences
application, or some other utility.
eg "defaults write NSGlobalDomain 'Local Time Zone' 'Africa/Nairobi'"
See '(null)'
for the standard timezones such as 'GB-Eire' or 'America/Chicago'.
No problem seeing menu, and on previous longer runs, launching etc. I'll check the log.

Code: Select all

$ grep -i png $HOME/.Oolite/Logs/Latest.log 
14:21:56.526 [texture.load.png.warning]: ----- A PNG loading warning occurred for /home/damien/GNUstep/Applications/Oolite/oolite.app/Resources/Textures/trumblekit.png: iCCP: profile 'ICC Profile': 'RGB ': RGB color space not permitted on grayscale PNG.
14:22:11.550 [texture.load.png.warning]: ----- A PNG loading warning occurred for /home/damien/GNUstep/Applications/Oolite/oolite.app/Resources/Textures/trumblekit.png: iCCP: profile 'ICC Profile': 'RGB ': RGB color space not permitted on grayscale PNG.
14:22:11.550 [texture.load.png.warning]: ----- A PNG loading warning occurred for /home/damien/GNUstep/Applications/Oolite/oolite.app/Resources/Textures/trumblekit.png: iCCP: profile 'ICC Profile': 'RGB ': RGB color space not permitted on grayscale PNG.
14:24:26.587 [texture.load.png.warning]: ----- A PNG loading warning occurred for /home/damien/GNUstep/Applications/Oolite/oolite.app/Resources/Textures/trumblekit.png: iCCP: profile 'ICC Profile': 'RGB ': RGB color space not permitted on grayscale PNG.
14:24:35.948 [texture.load.png.warning]: ----- A PNG loading warning occurred for /home/damien/GNUstep/Applications/Oolite/oolite.app/Resources/Textures/trumblekit.png: iCCP: profile 'ICC Profile': 'RGB ': RGB color space not permitted on grayscale PNG.
So it 'can' work with libpng16.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Wed Jul 30, 2025 12:13 pm
by Lone_Wolf
If I understood correctly you disable everything in deps/Linux-deps but don't change upstream GNUMakefile ?

If so, I'll have to try that.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Wed Jul 30, 2025 12:38 pm
by MrFlibble
In my fork, I've moved deps/Linux-deps/include to deps/Linux-deps/include-old (effectively deleting it).

Not the whole of Linux-deps.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Aug 02, 2025 3:32 pm
by Lone_Wolf
Fails on archlinux with

Code: Select all

In file included from src/Core/Entities/OOEntityWithDrawable.m:28:
src/Core/Universe.h:43:10: fatal error: espeak/speak_lib.h: No such file or directory
   43 | #include <espeak/speak_lib.h>
      |          ^~~~~~~~~~~~~~~~~~~~
archlinux espeak-ng package does provide /usr/include/espeak-ng/speak_lib.h but that's a different path then what is searched for.

espeak-ng upstream states they're not compatible with espeak. That makes convincing distro devs to include compatibility files in espeak-ng hard.
Switching oolite to use speech-dispatcher (and let users choose their own backend) seems a cleaner method to get rid of espeak.

Code: Select all

  mv deps/Linux-deps/include/vorbis deps/Linux-deps/include/old-vorbis
  mv deps/Linux-deps/include/AL deps/Linux-deps/include/old-AL
Do work, so it looks like reducing the files/folders in Linux-deps/include on a case-by-case base is needed.

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Aug 02, 2025 3:39 pm
by MrFlibble
Lone_Wolf wrote: Sat Aug 02, 2025 3:32 pm
Fails on archlinux with
I confess I edited it in my fork...

Code: Select all

$ grep -r "include <espeak"
src/Core/Universe.h:#include <espeak-ng/speak_lib.h>

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Aug 02, 2025 4:02 pm
by Lone_Wolf
src/oolite-git/deps/Windows-deps/x86_64/include/espeak has the same file .

IT's probably better to remove the path part from the include line in src/Core/Universe.h and add an env var for it to GNUmakefile .

Something like ESPEAK_INCLUDE_DIR .
If not-empty GNUmakefile will use the var, if empty it should set sensible default valuest ( for linux that could be /usr/include/espeak-ng ).

$ESPEAK_INCLUDE_DIR would then be added to the ADDITIONAL_INCLUDE_DIRS lines .

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Aug 02, 2025 4:17 pm
by MrFlibble
Lone_Wolf wrote: Sat Aug 02, 2025 4:02 pm
src/oolite-git/deps/Windows-deps/x86_64/include/espeak has the same file .

IT's probably better to remove the path part from the include line in src/Core/Universe.h and add an env var for it to GNUmakefile .

Something like ESPEAK_INCLUDE_DIR .
If not-empty GNUmakefile will use the var, if empty it should set sensible default valuest ( for linux that could be /usr/include/espeak-ng ).

$ESPEAK_INCLUDE_DIR would then be added to the ADDITIONAL_INCLUDE_DIRS lines .
Apologies. My previous response was too terse. I've changed stuff in quite a few places. Would you mind casting an eye over the diffs between my fork and 'master'?

Click on the "Files Changed" tab, and search around for espeak. Perhaps you could suggest improvements.

Note also .gitmodules line 61, I've clobbered Linux-deps/include

Code: Select all

# -Ideps/Linux-deps/include

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Aug 02, 2025 5:00 pm
by Lone_Wolf
I've never used github workflow or apple macs, so can't comment on changes for those parts.

Some of the changes look cosmetic/white-space removal like one in Makefile .
Those are best separated from actual code changes.

Overall you probably should group commits into multiple MRs instead of one huge MR..

The build instructions advocate overwriting .gitmodules with .absolute_gitmodules .
Unless there's a very good reason to keep .absolute_gitmodules, it should be removed and its content put in .gitmodules .

I often prefer to see whole file contents , where is your fork located ?
EDIT : found it at https://github.com/OoMrFlibble/oolite/

Re: Exclude png.h and pngconf.h by default on Linux?

Posted: Sat Aug 02, 2025 5:12 pm
by another_commander
Lone_Wolf wrote: Sat Aug 02, 2025 5:00 pm
The build instructions advocate overwriting .gitmodules with .absolute_gitmodules .
Unless there's a very good reason to keep .absolute_gitmodules, it should be removed and its content put in .gitmodules .
The reason is mentioned at the end of the Readme.md:
Readme.md wrote:
The Oolite source is available from github. Use git clone https://github.com/OoliteProject/oolite to retrieve. Then git submodule update --init to fetch the various submodules.

If you've cloned the source from a forked repository instead, this may not work - due to relative directory paths in .gitmodules, git tries to download the submodules from the fork instead of the original oolite repository. A workaround is to copy the file .absolute_gitmodules onto .gitmodules, then perform the submodules init, then replace .gitmodules with the relative path version. eg, on Unix:

$ cp .absolute_gitmodules .gitmodules
$ git submodule update --init
$ git checkout -- .gitmodules
You should now have access to the submodules, without git complaining that .gitmodules has changed or including .gitmodules in pull requests.[/quote[