Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
4.7.4, 4.8.0
-
None
-
pulse
-
04ca1382baae8fddc353bfba8ae7e11bf76e0319 7fd997903620bca50a4303776ef7aca8f0ea1f01
Description
In qt#master qdoc3 now depends on private header files from QML. This violates the long-standing rule that qdoc3 is supposed to be able to compile against any Qt 4.x version. What's worse is that the headers qdoc3 is using aren't even part of the public Qt API. Only other Qt libraries are permitted to use private headers - applications are never permitted to do this, and every private header includes a warning to this effect.
The packaging script builds qdoc3 against the system version of Qt, which for most Linux distros is currently 4.6.3, so the packages break. Even building the master branch's qdoc3 against Qt 4.7.2, which has the private headers doesn't work, because make install doesn't install private headers (because applications aren't supposed to use them).
Any Linux distro vendor who tries to build qt#master will run into the same problem. Distros break Qt up into smaller pieces, and usually ship qdoc3 in a separate package to the Qt libraries, so they'll have the same issue with qdoc3 using private headers.
The doc team needs to rework the qdoc3 implementation to avoid using Qt's private headers (either by changing the qdoc3 implementation, or by convincing the QML team to make those headers public).