[Development] qt 4/5 co-installs

Thiago Macieira thiago.macieira at intel.com
Wed Jun 27 11:28:18 CEST 2012


On quarta-feira, 27 de junho de 2012 09.48.01, Jonathan Riddell wrote:
> As Thiago says it's pretty normal for libraries to keep the same names
> in different versions, the changed SONAME allows for the runtime bits
> both to be installed at the same time.  It's the development files
> which can't be installed together, but that's not unusual.
> 
> However gtk2 & 3 do differ in the actual library name
> /usr/lib/i386-linux-gnu/libgdk-3.so -> libgdk-3.so.0.504.0
> /usr/lib/i386-linux-gnu/libgdk-x11-2.0.so -> libgdk-x11-2.0.so.0.2400.10

Yes, they do, but there are many more libs that don't. I don't want to 
forcibly rename the Qt libraries now. We could add the "5" to the name in all 
platforms, such as Windows is doing right now, but I simply don't want to do 
that. I see no compelling reason to do it.

If you really, really, really want to install the two development environments 
in parallel, and considering that we already do need different prefixes, I'd say 
that the .so and .a files (if any) should be in $prefix/lib (e.g., 
/usr/lib/qt5/lib) and symlink to the actual files that live in /usr/lib. qmake 
will have the lib path hardcoded and will add the necessary -L; cmake gets the 
information from qmake.

> so changing library names is also not uncommon and allows for
> developer environments to be co-installed.  The tools are more
> important because this makes packaging fiddly.  The runtime plugin
> environment variable $QT_PLUGIN_PATH is most important because the
> runtime libraries should be co-installable.

I agree on the environment variable. Let's add a version number there.

I said I wasn't going to comment on the tools, but here's one comment: only 
qmake needs to be versioned, since it's the only tool that users run. The 
other ones like moc, uic, rcc, lconvert, lrelease, lupdate, qmlviewer, 
qmlscene can be hidden away in libexec or in $prefix/bin. And designer, 
assistant, linguist, qdbus, qdbusviewer are applications: you don't install 
two of them.

Of much greater interest is ensuring that multi-arch works properly. The Qt 
headers should be entirely platform-agnostic now, as there's no QT_ARCH 
setting in qconfig.h.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
     Intel Sweden AB - Registration Number: 556189-6027
     Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- 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/20120627/614abff4/attachment.sig>


More information about the Development mailing list