Bug 234784 - graphics/gdk-pixbuf2: Does not build with only one make job
Summary: graphics/gdk-pixbuf2: Does not build with only one make job
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: i386 Any
: --- Affects Many People
Assignee: freebsd-gnome mailing list
Depends on:
Reported: 2019-01-09 14:08 UTC by Thomas Zander
Modified: 2019-01-11 14:48 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (gnome)

Build error log from poudriere (125.31 KB, text/plain)
2019-01-10 11:57 UTC, Thomas Zander
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Zander freebsd_committer 2019-01-09 14:08:56 UTC
Now here's an interesting one.

I can reproduce the build error quoted by gergely.czuczy@harmless.hu in bug #231969 under the following circumstances:

Host: 12.0 amd64
Build jail: 12.0 i386

gdk-pixbuf2 reproducibly fails to build with

generated_.._resources.c.o' -MF 'tests/tests@@cve-2015-4491@exe/meson-generated_.._resources.c.o.d' -o 'tests/tests@@cve-2015-4491@exe/meson-generated_.._resources.c.o' -c tests/resources.c
cc: error: no such file or directory: 'tests/resources.c'
cc: error: no input files
ninja: build stopped: subcommand failed.
*** Error code 1

if it is restricted to a single make job.
I *have* to set ALLOW_MAKE_JOBS_PACKAGES="gdk-pixbuf2" in poudriere.conf to obtain a successful bulk build.

To confirm, "poudriere testport" builds fail reproducibly if adding MAKE_JOBS_UNSAFE=yes in gdk-pixbuf2's port Makefile.
Comment 1 John Hein 2019-01-09 14:59:37 UTC
Can you attach a full build log showing the failure?
Comment 2 Thomas Zander freebsd_committer 2019-01-10 11:57:19 UTC
Created attachment 200984 [details]
Build error log from poudriere
Comment 3 Thomas Zander freebsd_committer 2019-01-10 11:57:58 UTC
(In reply to John Hein from comment #1)

Sure, no problem. See attachment 200984 [details]
Comment 4 John Hein 2019-01-11 14:48:26 UTC
If you look up a little bit from the end of your build log you'll see:

failed to load "/wrkdirs/usr/ports/graphics/gdk-pixbuf2/work/gdk-pixbuf-2.36.12/tests/icc-profile.png": Couldn't recognize the image file format for file '/wrkdirs/usr/ports/graphics/gdk-pixbuf2/work/gdk-pixbuf-2.36.12/tests/icc-profile.png'

It's funny that someone else is seeing this error - I hit this last month locally.  In my case, it was a failure of devel/glib20's glib-compile-resources program (it is called by the gdk-pixbuf2 build - specifically gen-resources.py) to find the mime data to identify a file as a png file - it didn't know how to look in share/ and find mime/image/png.xml because of a local problem.  I'd be surprised that a build in a stock poudriere tree would have this issue.  I wound up poking into the source for glib-compile-resources to find the issue.

Hmm... even further up in your log is:

g_module_open() failed for /wrkdirs/usr/ports/graphics/gdk-pixbuf2/work/gdk-pixbuf-2.36.12/_build/gdk-pixbuf/libpixbufloader-png.so: Cannot open "/wrkdirs/usr/ports/graphics/gdk-pixbuf2/work/gdk-pixbuf-2.36.12/_build/gdk-pixbuf/libpixbufloader-png.so"
-g_module_open() failed for /wrkdirs/usr/ports/graphics/gdk-pixbuf2/work/gdk-pixbuf-2.36.12/_build/gdk-pixbuf/libpixbufloader-bmp.so: Cannot open "/wrkdirs/usr/ports/graphics/gdk-pixbuf2/work/gdk-pixbuf-2.36.12/_build/gdk-pixbuf/libpixbufloader-bmp.so"

I didn't see that problem.  Do those .so files exist in your build tree?  If so, then it does look like it could be a build jobs ordering issue where it tries to link with those .so's before they are built - it's somewhat unexpected to see an ordering build failure when you have explicitly disabled parallel building.  Whether that is directly related to the glib-compile-resources (gen-resources.py) failure to identify the .png file or not is not clear - at least I don't understand the connection yet.