[Development] Proposal: All Qt modules must use the same version number
Olivier Goffart
olivier at woboq.com
Mon Jun 30 10:06:12 CEST 2014
On Sunday 29 June 2014 16:19:59 Lisandro Damián Nicanor Pérez Meyer wrote:
> No if it uses private headers.
>
> I currently need to rebuild on all arches gammaray, fcitx-qt and pyqt5 each
> time I upload a new point release for this exact problem [0]. I would really
> like to avoid adding new stuff to that list, as it is a real PITA.
>
> [0] Even if API/ABI matches, there seems to be a runtime detection of
> different versions of Qt in qobjectprivate. I can really understand why that
> check is there, so the best solution is to avoid "third party" stuff to use
> private headers. Having a different release schedule will certainly make
> any package count as "third party" in my POV.
Totally off topic: I think using private header should be tried to be avoided.
In the past, we used private header inside Qt because Qt was not split that
much. But one of the goal of modularisation was to allow independent release
of different component of Qt. The problem is that we could not get rid of the
private header dependencies at the time (too much work).
But still now, every module, even new, are using the private headers. Nothing
is done to try to prevent it.
I think there should be some kind of long term goal to avoid using private
headers.
We need to find a solution so that one need not to inherit from
QObjectPrivate. (There is already QObject::setUserData, but it could be done
better i guess)
We need also to identify private APIs that could be polished and made public.
For some modules such as QtQuick this is probably too hard.
But for new modules such as WebEngine or such, it may be possible to avoid
dependency on private API.
--
Olivier
Woboq - Qt services and support - http://woboq.com - http://code.woboq.org
More information about the Development
mailing list