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

For discussion of ports to POSIX based systems, especially using GNUStep.

Moderators: winston, another_commander, Getafix

User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 373
Joined: Sun Jun 20, 2010 6:00 pm

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

Post 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)?
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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.
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 461
Joined: Sun Feb 18, 2024 12:13 pm

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

Post 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.
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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.
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 461
Joined: Sun Feb 18, 2024 12:13 pm

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

Post 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?
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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.
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 461
Joined: Sun Feb 18, 2024 12:13 pm

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

Post 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.
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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.
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 461
Joined: Sun Feb 18, 2024 12:13 pm

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

Post 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.
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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.
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 461
Joined: Sun Feb 18, 2024 12:13 pm

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

Post 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>
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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 .
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
User avatar
MrFlibble
---- E L I T E ----
---- E L I T E ----
Posts: 461
Joined: Sun Feb 18, 2024 12:13 pm

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

Post 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
User avatar
Lone_Wolf
---- E L I T E ----
---- E L I T E ----
Posts: 594
Joined: Wed Aug 08, 2007 10:59 pm
Location: Netherlands

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

Post 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/
OS : Arch Linux 64-bit - rolling release

From: The Netherlands, Europe

OXPs : My user page
(needs updating)

Retired, occasionally active
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6917
Joined: Wed Feb 28, 2007 7:54 am

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

Post 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[
Post Reply