The x11-toolkits/qt4-gui and devel/qt4-corelib Makefiles define: USES=pkgconfig (a build-time dependency on pkg-config) The configure script detects the existence of pkg-config, and creates the build key as follows: "x86_64 usr/local/share/qt4/mkspecs/freebsd g++-4 full-config" Note the "full-config". (The build key is an identifier Qt uses to determine wether plugins were compiled with the same settings, architecture, and so on. Bear with me) Then: graphics/qt4-imageformats and graphics/qt4-iconengines do NOT define USES=pkgconfig The result is that when building these in a clean room build environment such as poudriere, the binary package for x11-toolkits/qt4-gui is installed as one of the dependencies, however, pkg-config is _not_ installed. The configure script detects the absence of pkg-config, and creates the build key as follows: "x86_64 usr/local/share/qt4/mkspecs/freebsd g++-4 no-pkg-config" Note the "no-pkg-config" The result is that Qt refuses to load the built plugins with the following message: The plugin '/usr/local/lib/qt4/plugins/imageformats/libqtiff.so' uses incompatible Qt library. Expected build key "x86_64 usr/local/share/qt4/mkspecs/freebsd g++-4 full-config", got "x86_64 usr/local/share/qt4/mkspecs/freebsd g++-4 no-pkg-config" If one does not use a clean room build, one usually installs the plugins after having built qt4-gui, and then pkg-config will still be installed as a requirement for qt4-gui, so the plugins are built with the correct build key (i.e. the same configuration). Fix: Add USES=pkgconfig to /usr/ports/graphics/qt4-imageformats/Makefile, and /usr/ports/graphics/qt4-iconengines/Makefile (Note: there may be more qt4 plugin ports, the same would apply to them) How-To-Repeat: Build x11-toolkits/qt4-gui in poudriere, then build graphics/qt4-imageformats in poudriere. A good output (note absence of "no-pkg-config"): Configuration .......... release shared dll largefile stl mmx 3dnow sse sse2 sse3 ssse3 minimal-config small-config medium-config large-config full-config qt3support phonon accessibility reduce_exports ipv6 clock-gettime clock-monotonic getaddrinfo ipv6ifname getifaddrs system-jpeg system-mng system-png png system-tiff system-freetype system-zlib nis gnu-libiconv glib openssl x11sm xshape xsync xrender mitshm fontconfig xkb icu concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release A bad output (note presence of "no-pkg-config"): Configuration .......... release shared dll largefile stl mmx 3dnow sse sse2 sse3 ssse3 minimal-config small-config medium-config large-config full-config no-pkg-config qt3support phonon accessibility reduce_exports ipv6 clock-gettime clock-monotonic getaddrinfo ipv6ifname getifaddrs system-jpeg system-mng system-png png system-tiff system-freetype system-zlib nis gnu-libiconv openssl x11sm xshape xsync xrender mitshm fontconfig xkb icu concurrent xmlpatterns multimedia audio-backend svg script scripttools declarative release
Responsible Changed From-To: freebsd-ports-bugs->kde Apparently applies to both graphics/qt4-imageformats and graphics/qt4-iconengines.
State Changed From-To: open->patched It has been fixed in our area51 repository (r9501), and will be part of our 4.8.5 update hopefully soon.
State Changed From-To: patched->closed Committed. Thanks!
Sorry, I thought the commit filter would be smarter. This was committed in r330266: http://svnweb.freebsd.org/changeset/ports/330266