[Development] Compatibility between Qt4 and Qt5 APIs

Rick Stockton rickstockton at reno-computerhelp.com
Fri Dec 21 20:31:07 CET 2012

On 12/21/2012 05:31 AM, Andrey Ponomarenko wrote:
> Hi,
> Here are useful reports about binary and source compatibility between
> Qt4 and Qt5 APIs:
> Binary compatibility:
> http://upstream-tracker.org/compat_reports/qt/4.8.4_to_5.0.0/abi_compat_report.html
> Source compatibility:
> http://upstream-tracker.org/compat_reports/qt/4.8.4_to_5.0.0/src_compat_report.html

Thank you for the links! It is wonderful that Rosa makes such work
public, I am delighted to see it!

However, I noticed immediately that source compatibility 'problems' are
significantly over-counted. For example, I looked at my own change to
Qt::MouseButton and Qt::MouseButtons. This is binary incompatible,
because the size of the field has been widened to 32 bits. But it is
source compatible: Any source code use (e.g., checking which button was
responsible for causing the event) of a Qt::MouseButton or
Qt::Mousebuttons value which exists in a 4.8.4 Program will compile
correctly, because I have not eliminated or changed any of the Enum
values or names which did exist in 4.8.4. I only added new values.

The report generator is definitely making an incorrect assessment in
such cases. Or, is the report intended to require compatibility in both
directions? (If so, then it is of very little use for Qt users- they
already know that they MUST recompile/rebuild in order to run with the
Qt 5.x library versions).

More information about the Development mailing list