[Development] Pending decisions on co-installation

Thiago Macieira thiago.macieira at intel.com
Thu Nov 1 04:20:18 CET 2012


On quinta-feira, 1 de novembro de 2012 11.56.25, Lincoln Ramsay wrote:
> On 01/11/12 09:41, Thiago Macieira wrote:
> > On quinta-feira, 1 de novembro de 2012 09.23.37, Lincoln Ramsay wrote:
> >> On 01/11/12 01:02, Thiago Macieira wrote:
> >>> Also, do I understand correctly that you're suggesting that multiarch
> >>> 
> >>> distributions should have *both*:
> >>> 	/usr/lib/qt5//bin/assistant		AND		/usr/lib64/qt5/bin/assistant
> >>> 	/usr/lib/qt5//bin/linguist		AND		/usr/lib64/qt5/bin/linguist
> >>> 	/usr/lib/qt5//bin/designer		AND		/usr/lib64/qt5/bin/designer
> >> 
> >> hang on... why shouldn't they have both of those?
> >> 
> >> a 32-bit assistant is different to a 64-bit assistant
> > 
> > How are they different?
> 
> Well for one thing, you can't run the 32-bit one against a 64-bit
> install or vice versa. Any plugins they load (including system style
> plugins) must be the same bit-ness. Designer used to load plugins for
> custom widgets... not sure if it still does.

Sure, you can't run against the wrong install. But the presence of the 
executable assumes that its dependencies are present and properly installed. 
So that's not an argument. This is how Linguist, Assistant, xmlpatterns, 
xmlpatternsvalidator, qglinfo, qdbus, and qdbusviewer go. Their purpose is 
completely independent of the arch.

The plugin argument for Designer has been discussed. So far, our conclusion is 
to punt the problem because QtWidgets is in Done state. We've punted the 
problem to the plugins themselves: we're requiring that the plugins be updated 
to Qt 5, along with Designer itself.

Designer's output (the .ui file) is arch-independent and even backwards 
compatible. As QtWidgets and Designer are in Done, we're not expecting any new  
features. But even if some come along, the precedent set by tools like 
Microsoft Word and Libre Office is that you simply provide an option in the Save 
dialog to save as the previous version.

Heck, I thought Designer in Qt 4 still had the option to save as a Qt 3 .ui 
file, for uic3. I can't find it, though.

Also note that, unlike uic3, uic does not load plugins, so all the information 
it needs to generate the .h file is already present in the .ui. Therefore, if 
the plugins are updated to Qt 5 and they themselves retain their compatibility 
of purpose, a file saved by Designer/Qt5 will be processed correctly by 
uic/Qt4.

> If you're on a 64-bit distro, you most likely don't want the 32-bit
> versions. If you're on a 32-bit distro, you can't use the 64-bit ones.
> That's a distro/packaging problem though. The best we could do is to
> remove these from the Qt repo and build/packge them separately (like we
> do with Creator).

Right, that's a packaging problem. But it's a problem that has been solved by 
distributions when they first came up with multiarch.

For example, for Fedora, a file may belong to both arches, but the 64-bit one 
wins:

$ rpm -qf /usr/bin/mysql_config 
mysql-5.5.28-1.fc17.x86_64
mysql-5.5.28-1.fc17.i686

$ file /usr/bin/mysql_config 
/usr/bin/mysql_config: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.32, 
BuildID[sha1]=0x815aa7c206d463b192ed09b42965796b4f2e4d05, stripped

If designer exists in one common path, outside of LIBDIR, the existing 
multiarch mechanisms kick in and fix the problem of duplication.

-- 
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/20121031/d5537fe4/attachment.sig>


More information about the Development mailing list