Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Sep 2013 19:05:05 GMT
From:      Dennis <dennis.noordsij@helsinki.fi>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/182049: problem with qt4 plugins and clean room builds (poudriere)
Message-ID:  <201309121905.r8CJ55QW067122@oldred.freebsd.org>
Resent-Message-ID: <201309121910.r8CJA0G9046878@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         182049
>Category:       ports
>Synopsis:       problem with qt4 plugins and clean room builds (poudriere)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 12 19:10:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Dennis
>Release:        9.2-RC3
>Organization:
>Environment:
FreeBSD [REDACTED] 9.2-RC3-p1 FreeBSD 9.2-RC3-p1 #0: Mon Sep  9 19:37:31 UTC 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
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).


>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



>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)

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201309121905.r8CJ55QW067122>