[Development] Summary of renaming changes

Thiago Macieira thiago.macieira at intel.com
Fri Oct 19 19:07:07 CEST 2012


On sexta-feira, 19 de outubro de 2012 11.54.36, Joerg Bornemann wrote:
> On 18/10/2012 19:09, Thiago Macieira wrote:
> > Let me be very clear: the distributions aren't fixing the distribution's
> > problem. They'd be fixing *ours*.
> 
> Putting every binary into one directory excludes installing different
> versions of one binary. Obviously the coinstallation problem is unsolved
> for Linux distributions. Everyone is forced to do nasty workarounds
> where this could be solved in a proper way by agreeing on a standard.

Different versions of one binary but that retain backwards compatibility and 
purpose is not an issue. Those are rare cases anyway and, sure, tricks are 
often needed.

One case people keep bringing up is GCC. So let's talk about GCC.

When I last upgraded GCC from 4.6 to 4.7, it still compiled my programs. Where 
it didn't, it was usually broken code anyway. GCC developers reserve the right 
to fix bugs with their compliance with the C++ standard, just like we do 
reserve the right to fix bugs and change behaviour so long as we're still 
following our documentation.

So when I last upgraded GCC, it simply replaced the old one. "gcc" used to be 
4.6, now it is 4.7. The purpose is still the same: compile C and C++ programs.

The same can be said of, for example, CMake. Whenever there's an upgrade, from 
2.6 to 2.8, to 2.8.8, etc., it still performs the same functions. It still 
parses the same .txt files and loads the same scripts from  /usr/share/cmake. 
Their developers are actually quite careful about changing even small 
behaviour changes, which are triggered only by setting options (the policies).

But that can't be said of qmake. Upgrading qmake from Qt 4's version to Qt 5's 
changes it completely. It does not parse the same .prf files, they're not even 
in the same location! It does not serve the same purpose: that of compiling an 
application for Qt 4.

The qmake that comes with Qt 5 is serving an entirely different *purpose* than 
the one that came with Qt 3 or Qt 4. That's why it needs to be allowed to co-
exist with those others.

>    This *is* the problem of Linux distributions. FHS doesn't cover this
> problem properly and this is the point where it should be fixed.
>    You're making life harder for every platform - not only Linux - by
> fixing their problem.

You may argue that case, but they'll argue back that this solution has worked 
quite well for almost all packages for over a decade.

But I think that discussion is irrelevant and moot. The distributions will not 
change. If we fail to apply the fixes to our build, they will patch Qt and 
they've said as much on this mailing list. The end result of that is that they 
change *our* product, which means our documentation no longer applies to 
people who develop from packages, the help we give in #qt or other forums 
isn't entirely accurate.

What's more, they may introduce subtle bugs that may take a long time to be 
discovered. When tools like lrelease and lupdate fail to work, who will the 
users blame? Distributions or us?

-- 
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/20121019/3e9038f5/attachment.sig>


More information about the Development mailing list