Bug 235329

Summary: x11-toolkits/qt5-declarative thread-related configuration error
Product: Ports & Packages Reporter: Bertrand Petit <bsdpr>
Component: Individual Port(s)Assignee: freebsd-kde (group) <kde>
Status: Closed Not A Bug    
Severity: Affects Only Me CC: bsdpr, tcberner
Priority: --- Flags: tcberner: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   

Description Bertrand Petit 2019-01-30 18:23:13 UTC
On a 11.2-STABLE host, when trying to install Qt 5.12 from the ports the configuration of qt5-declarative fails with the following message:

Project ERROR: Unknown feature object thread in expression 'features.thread'.


Bellow is the failed build log:

# cd /usr/ports/devel/qt5
# make install
===>   qt5-5.12.0_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by qt5-5.12.0_1 for building
===>  Extracting for qt5-5.12.0_1
===>  Patching for qt5-5.12.0_1
===>  Configuring for qt5-5.12.0_1
===>  Staging for qt5-5.12.0_1
===>   qt5-5.12.0_1 depends on file: /usr/local/lib/qt5/libQt53DCore.so - not found
===>  License LGPL21 accepted by the user
===>   qt5-3d-5.12.0_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by qt5-3d-5.12.0_1 for building
===>  Extracting for qt5-3d-5.12.0_1
=> SHA256 Checksum OK for KDE/Qt/5.12.0/qt3d-everywhere-src-5.12.0.tar.xz.
===>  Patching for qt5-3d-5.12.0_1
===>   qt5-3d-5.12.0_1 depends on package: pkgconf>=1.3.0_1 - found
===>   qt5-3d-5.12.0_1 depends on file: /usr/local/lib/qt5/bin/moc - found
===>   qt5-3d-5.12.0_1 depends on file: /usr/local/lib/qt5/bin/qmake - found
===>   qt5-3d-5.12.0_1 depends on shared library: libassimp.so - found (/usr/local/lib/libassimp.so)
===>   qt5-3d-5.12.0_1 depends on shared library: libQt5Concurrent.so - found (/usr/local/lib/qt5/libQt5Concurrent.so)
===>   qt5-3d-5.12.0_1 depends on shared library: libQt5Core.so - found (/usr/local/lib/qt5/libQt5Core.so)
===>   qt5-3d-5.12.0_1 depends on shared library: libQt5Qml.so - not found
===>  License LGPL21 accepted by the user
===>   qt5-declarative-5.12.0_1 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by qt5-declarative-5.12.0_1 for building
===>  Extracting for qt5-declarative-5.12.0_1
=> SHA256 Checksum OK for KDE/Qt/5.12.0/qtdeclarative-everywhere-src-5.12.0.tar.xz.
===>  Patching for qt5-declarative-5.12.0_1
===>  Applying FreeBSD patches for qt5-declarative-5.12.0_1
/usr/bin/sed -i.bak '/py_out/s#python#/usr/local/bin/python2.7#g'  /usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0/qtdeclarative.pro
/usr/bin/sed -i.bak 's,python,/usr/local/bin/python2.7,g'  /usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0/src/3rdparty/masm/masm.pri
===>   qt5-declarative-5.12.0_1 depends on file: /usr/local/bin/python2.7 - found
===>   qt5-declarative-5.12.0_1 depends on package: xorgproto>=0 - found
===>   qt5-declarative-5.12.0_1 depends on file: /usr/local/lib/qt5/bin/moc - found
===>   qt5-declarative-5.12.0_1 depends on file: /usr/local/lib/qt5/bin/qmake - found
===>   qt5-declarative-5.12.0_1 depends on shared library: libGL.so - found (/usr/local/lib/libGL.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5Core.so - found (/usr/local/lib/qt5/libQt5Core.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5Gui.so - found (/usr/local/lib/qt5/libQt5Gui.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5Network.so - found (/usr/local/lib/qt5/libQt5Network.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5Sql.so - found (/usr/local/lib/qt5/libQt5Sql.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5Test.so - found (/usr/local/lib/qt5/libQt5Test.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5Widgets.so - found (/usr/local/lib/qt5/libQt5Widgets.so)
===>   qt5-declarative-5.12.0_1 depends on shared library: libQt5XmlPatterns.so - found (/usr/local/lib/qt5/libQt5XmlPatterns.so)
===>  Configuring for qt5-declarative-5.12.0_1
/bin/mkdir -p /usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0
echo 'CMAKE_MODULE_TESTS = -' > /usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0/.qmake.cache
echo 'QMAKE_LIBDIR_FLAGS = -L/usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0/lib' >> /usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0/.qmake.cache
Info: creating stash file /usr/obj/ports/usr/ports/x11-toolkits/qt5-declarative/work/qtdeclarative-everywhere-src-5.12.0/.qmake.stash

Running configuration tests...
Checking for C++14 make_unique()... yes
Project ERROR: Unknown feature object thread in expression 'features.thread'.
*** Error code 3

Stop.
make[2]: stopped in /usr/ports/x11-toolkits/qt5-declarative
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/graphics/qt5-3d
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/qt5


Here are the currently installed Qt5 ports:

# pkg info qt5\* cmake\*
qt5-buildtools-5.11.2
qt5-concurrent-5.12.0_2
qt5-core-5.12.0_1
qt5-dbus-5.12.0_2
qt5-gui-5.12.0_2
qt5-network-5.12.0_5
qt5-qmake-5.11.2
qt5-sql-5.12.0_2
qt5-testlib-5.12.0_2
qt5-widgets-5.12.0_2
qt5-xmlpatterns-5.12.0_2
cmake-3.13.3
Comment 1 Tobias C. Berner freebsd_committer freebsd_triage 2019-01-30 19:19:59 UTC
Moin moin

The problem lies here: 
qt5-buildtools-5.11.2
[..]
qt5-qmake-5.11.2

Never mix Qt versions. Upgrade all your ports and not selectively. Then the problem will go away :)



mfg Tobias
Comment 2 Bertrand Petit 2019-01-30 20:52:28 UTC
(In reply to Tobias C. Berner from comment #1)
Thank you very much, you are right. I did a package removal of qt5-core-5.11.2_1 but I should had removed qt5* instead.

May I suggest the addition of a version constrained dependency on qt5-buidtools and/or qt5-qmake somewhere in the qt5 dependency tree or all qt5 ports?
Comment 3 Tobias C. Berner freebsd_committer freebsd_triage 2019-01-31 05:10:56 UTC
(In reply to Bertrand Petit from comment #2)
A version constraint is not possible with the way stuff gets depended on mostly.

But why aren't you using poudriere/synth to build the packages and let pkg figure it out itself? 

If you do everything by hand (via simply calling make), then you are also required to figure out the dependency graph and upgrade it first.


mfg Tobias
Comment 4 Bertrand Petit 2019-01-31 06:05:29 UTC
(In reply to Tobias C. Berner from comment #3)
Unfortunately I'm quite short on storage resources, I would not be able to store all those packages for the three architectures I run FreBSD on.