[Development] [Interest] Current status of the co-installation

Thiago Macieira thiago.macieira at intel.com
Mon Oct 29 23:20:20 CET 2012


Hello again

Here's the current status:

* Qt Quick 1 and 2 de-conflicting:
The Qt Quick 1 library is renamed and the patches are in. The library is 
called QtDeclarative again.

Qt Quick 1 retains its import paths in QLibraryInfo::ImportsPath / 
$$[QT_INSTALL_IMPORTS], with no subdir. Qt Quick 2 instead goes to 
QLibraryInfo::Qml2ImportsPath / $$[QT_INSTALL_QML]. The patches for both 
pending, with a -1 from ossi due to an upcoming conflict with a new feature in 
mkspecs/features.

I propose that the tools for Qt Quick 1 retain their exact naming from Qt 4 
(qmlplugindump and qmlviewer). The tools from Qt Quick 2 should be prefixed 
with "qml2". 

Question: qml2scene or qml2viewer? If no one speaks up, it will be qml2scene. 
The patches for that are ready, pending approval.

* Default paths:
 The defaults on a regular Unix or Windows installs are:
 -bindir		$prefix/bin [unchanged]
 -libdir		$prefix/lib [unchanged]
 -libexecdir	$prefix/lib/qt5/libexec [new]
 -docdir		[1]
 -headerdir		$prefix/include
 -importdir		$prefix/lib/qt5/imports [changed]
 -qmldir		$prefix/lib/qt5/qml [new]
 -datadir		$prefix/lib/qt5 [2]
 -translationdir	$prefix/lib/qt5/translations [changed]
 -sysconfdir	$prefix/etc/xdg [changed]
 -examplesdir	$prefix/examples [unchanged]
 -testsdir		$prefix/tests [unchanged]

[1] docdir is $prefix/share/qt5/doc for installed builds, but remains 
$prefix/doc for non-installed builds as well as when qt.conf is found. Unless 
someone speaks in support of this staying, I am going to drop the patch. Linux 
distributions will change the dir to /usr/share/doc/qt5 anyway..

[2] for non-installed builds, datadir is $prefix, which makes the mkspecs be 
found at $prefix/mkspecs.

The patches for all of the above are pending. There's a -1 on one patch 
because it probably breaks cross compilations from Linux to Windows -- 
considering I will not test this configuration, I will only fix it if someone 
sends me an exact patch of what to do.

The patches that add libexecdir and qmldir have negative scores. The qmldir 
one has the -1 for the qml1_plugin.prf feature, whereas the libexec one has a 
-2 on disagreement on the principle. We need an agreement on the mailing list 
to decide what to do there.

* Library names:

All libraries get a 5 in their name in all platforms, except Mac when building 
frameworks. The 5 is placed after "Qt", so the libraries are now 
"libQt5Core.so" and "Qt5Core.dll", which makes for an unfortunate "Qt53D.dll" 
(but no more "QtV85.dll").

Patch is pending approval.

* Tooling:

The build for most tools is completely unchanged. For those, the ones that are 
from outside qtbase place themselves into the new libexec dir without changes. 
The ones in qtbase place themselves into bin, but install into libexec.

A few tools I've modified to install into the bin dir. They are:
	assistant
	designer
	linguist
	macdeployqt
	makeqpf
	pixeltool
	qdbus
	qdbusviewer
	qtconfig (installs as qt5config)
	xmlpatterns
	xmlpatternsvalidator
	qglinfo
They're all in qttools.git except for the two xmlpatterns tools and qglinfo.

I've also added the wrapper tool, called "toolwrapper", which is *also* placed 
in the libexec dir. However, its install rule will create a symlink to itself 
as $bindir/qmake.

This tool is bootstrapped and unit-tested. It's inside qtbase. I decided 
against modifying qmake because it was way too complex.

All the patches are pending approval, except for the one that creates libexec 
(-2 from ossi).


The relevant changes are:
 Qt Quick 1 & 2:
	https://codereview.qt-project.org/37104 (QQ1's imports with no subdir)
	https://codereview.qt-project.org/37242 (adds -qmldir)
	https://codereview.qt-project.org/37431 (renames qml1plugindump back)
	https://codereview.qt-project.org/37434 (renames QQ2 tools to qml2*)
	https://codereview.qt-project.org/37539 (use the Qml2ImportPath)
	https://codereview.qt-project.org/35521 (changes QQ2 examples dir)
	https://codereview.qt-project.org/36711 (doc update about the examples)
	https://codereview.qt-project.org/37555 (updates Qt Creator)

 Default paths:
	https://codereview.qt-project.org/37252 (requirement, breaks Mac 
		build and I need help)
	https://codereview.qt-project.org/37244 (changes datadir)
	https://codereview.qt-project.org/35495 (change plugindir, importsdir, 
		translationsdir and settingsdir)
	https://codereview.qt-project.org/37253 (docdir change, I'll abandon)	

 Library names with 5:
	https://codereview.qt-project.org/37256

 Tooling:
	https://codereview.qt-project.org/38223 (qglinfo)
	https://codereview.qt-project.org/38224 (xmlpatterns*)
	https://codereview.qt-project.org/38464 (qt5config)
	https://codereview.qt-project.org/38465 (qttools apps)
	
	https://codereview.qt-project.org/38342 (requirement, breaks Mac build
		and I need help)
	https://codereview.qt-project.org/38225 (creates libexec)
	https://codereview.qt-project.org/38344 (the toolwrapper)

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20121029/603bde73/attachment.sig>


More information about the Development mailing list