[Development] Qt6/Qt5 coinstallability (Linux distributions)

Thiago Macieira thiago.macieira at intel.com
Tue Nov 13 23:56:29 CET 2018


On Tuesday, 13 November 2018 13:43:20 PST Lisandro Damián Nicanor Pérez Meyer 
wrote:
> a) Qt 5 and Qt 6 binaries should be coinstalable both in a developer
> (libraries + binaries + build tools) and in a user's (only required
> libraries and binaries) perspective. For example: a user should not need
> qmake to be present.

This does not apply for "application" executables that retain backwards 
compatibility functionality. There's no need to version linguist, designer, 
assistant or qdbus, qdbusviewer, so long as those applications can still be 
used while developing Qt 5 applications.

The other extreme are development tools that almost never need to be run 
directly by directly the user, at all. That's the case for rcc, uic, moc, 
lupdate, lrelease, qmlcachegen, etc. Those should not be in the $bindir in the 
first place: they should live in $libexecdir and ought to be found by way of 
the .cmake and .pc files, as in:
	pkg-config --variable=libexecdir Qt6Core

That only leaves front-end tools that are intricately tied to the Qt version 
that need renaming. The only two I can think of that fits this description are 
the "qml" and "qmlscene" pair. If we're feeling nice, we can do it too for 
diagnostic tools, like qtdiag, qtpaths, qtplugininfo.

And then there's qmake. I'd really love if it were a backwards-compatible tool 
that worked for both Qt 5 and 6. It's unlikely to happen, since choosing the 
Qt version has always been done by selecting the proper qmake. So I imagine it 
will be one of the renamed ones.

$ ls -1 `qmake -qt5-installed -query QT_INSTALL_BINS`
assistant
canbusutil
designer
fixqt4headers.pl
lconvert
linguist
lrelease
lupdate
moc
pixeltool
qdbus
qdbuscpp2xml
qdbusviewer
qdbusxml2cpp
qdistancefieldgenerator
qdoc
qgltf
qhelpgenerator
qlalr
qmake
qml
qmlcachegen
qmleasing
qmlimportscanner
qmljs
qmllint
qmlmin
qmlplugindump
qmlpreview
qmlprofiler
qmlscene
qmltestrunner
qscxmlc
qtattributionsscanner
qtcreator
qtcreator.sh
qtdiag
qtpaths
qtplugininfo
qtwaylandscanner
qvkgen
rcc
repc
sdpscanner
syncqt.pl
uic
xmlpatterns
xmlpatternsvalidator


-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center






More information about the Development mailing list