wrong build order in 2.38.0: gdk-pixbuf-query-loaders before loaders
One of my machines failed to build gdk-pixbuf 2.38.0. So ninja can run gdk-pixbuf-query-loaders before it builds some of the loaders. If this happens with zero loaders, then loaders.cache will have no MIME types, and this will cause a build failure. I can't reproduce the problem with git master, so it might have been fixed after 2.38.0.
The problem has a random chance to happen. I deleted my failed build, then my next build succeeded. I can always reproduce the problem (in 2.38.0) if I ask ninja to generate the thumbnailer first. (I run OpenBSD, so I passed some -D flags to meson to prevent link errors.)
$ git checkout 2.38.0
$ meson build -Db_lundef=false -Dc_link_args=-L/usr/local/lib
$ ninja -C build thumbnailer/gdk-pixbuf-thumbnailer.thumbnailer
...
[30/31] Generating loaders.cache with a meson_exe.py custom command.
g_module_open() failed for /home/kernigh/park/gdk-pixbuf/build/gdk-pixbuf/libpix
bufloader-png.so: File not found
...
[31/31] Generating thumbnailer with a custom command.
FAILED: thumbnailer/gdk-pixbuf-thumbnailer.thumbnailer
...
There is a pile of g_module_open() warnings for the missing loaders, then build-aux/gen-thumbnailer.py fails without an error message, here:
mimetypes_out = subprocess.Popen(...).communicate()[0]
if not mimetypes_out:
sys.exit(1)
mimetypes_out has no MIME types: it is b'' so sys.exit(1).