← Back to team overview

ubuntu-phone team mailing list archive

Qt 5.2 info, fixes and rebuilds needed



It is now possible to experiment with final Qt 5.2.0 via PPA and start
fixing bugs related to it. You need to use Ubuntu 14.04 development
version (trusty).

All bug fixes should be made so that the software continues to work
also against Qt 5.0.2 - #ifdef:s etc. as needed. You can see examples
from packages that already have needed fixes and done so like
ubuntu-ui-toolkit and unity8.

== Qt 5.2.0 final and library transition, rebuilds needed ==

Qt 5.2 is now at ppa:canonical-qt5-edgers/qt5-beta2 [1] - updates to
Qt will come, but for example most synchronizations of packaging with
Debian have been done already.

[1] https://launchpad.net/~canonical-qt5-edgers/+archive/qt5-beta2/+packages

It is important to note that Qt 5.2 has ABI breakage [2] so all Qt
depending packages need a rebuilt. It is partially forced by the
library rename "libqt5core5" to "libqt5core5a", which conflict. When
upgrading to this PPA, you will need to remove any packages that have
not successfully rebuilt there, which is as of this moment most of
them because I only just copied the final Qt packages over, and
because any problem at the top of the dependency chain prevents others
from getting built.

[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731261

=== Daily build recipes and the dependency chain ===

I have so far created Launchpad daily build recipes (if new commits)
for 67 packages [3] where the Launchpad project name and code
repository (lp:foo) matches the source package name. Furthermore I've
hacked the build-rdeps command to get a possibly non-complete list of
95 packages altogether depending on Qt 5 that need to be rebuilt when
approaching landing of Qt 5.2 to archives [4].

[3] http://pastebin.ubuntu.com/6598468/
[4] http://pastebin.ubuntu.com/6598302/

The [4] is reshaped in a pad at [5] to list the rough order of
dependencies and what's currently blocking from going further.
Automation of the dependency chain visualization would be welcome if
someone knows how (I've seen graphs on the web, but this may be more
complex, and we would need to mark down notes).

[5] http://pad.ubuntu.com/qt52-dependencies

The recipes and the PPA are technically under ~canonical-qt5-edgers so
you need someone from that team to kick a rebuild of either the whole
recipe or a single failed build. The recipes can be found via
https://code.launchpad.net/[project] -> trunk -> "Related source
package recipes". Do note that Launchpad is extremely slow to load the
recipe pages or do actions, so be prepared for waiting and reloads in
case of errors.

If you commit a new commit and you don't find the package rebuild
attempt in a day in the PPA, it's possible the recipe preparation
build has failed because of dependencies, in which case the package
upload is not done to the PPA. The failure will be visible on the
recipe page.

=== Getting bugs fixed to build everything ===

You can check the [1] later for your package and if it still fails to
build. The failures may be explained by [5] or if the latest build is
older than today (19.12.2013) in which case it built against older
version of Qt. The scope is big, so even though I plan to file bugs
against packages that fail to build, the more people who actively
start looking at the issues, looking at the dependency chain and
filing bugs the better. See also the bottom at this e-mail for the Qt
5.2 RC1 instructions where you don't need to necessarily remove
non-rebuilt packages - that way you can "skip" in the dependency chain
while things at the top are still broken.

Do not seek for permission from me to file bugs, triage bugs, find
patches, fix bugs etc :) Also merge proposals for patch cherry-picks
from upstream to Qt packaging branches
lp:~kubuntu-packagers/kubuntu-packaging/qtxxxx-opensource-src are
welcome. The tag to use for Qt 5.2 related bugs is "qt5.2" [6]

[6] https://bugs.launchpad.net/bugs/+bugs?field.tag=qt5.2

== Landing plan ==

There are at least four requirements I know of for landing Qt 5.2 into trusty:

1. All packages need to build against it.
2. All critical bugs filed at [6] need to be fixed.
3. QA team needs to build Touch image using the PPA, and the image
testing results need to achieve the levels of current Qt 5.0.2 builds
4. The app store situation needs to be resolved, ie. apps shouldn't
start breaking for users of 13.10 release after rebuilds (I don't know
the details of this one).

[7] http://ci.ubuntu.com/smokeng/trusty/touch/

Contributions will be needed from all directions to achieve these four

== Older Qt test versions (may be useful for testing) ==

A possibly useful shortcut way to give Qt 5.2 a try is to use the
older RC1 packages from ppa:canonical-qt5-edgers/qt5-beta-proper [8] -
the package rename was not yet made there, so it's easier to do
partial upgrade but of course things may be broken. With this PPA you
can, however, run Qt Creator with Qt 5.2 on the desktop, and Unity 8
sort of works on device.

[8] https://launchpad.net/~canonical-qt5-edgers/+archive/qt5-beta-proper?field.series_filter=trusty

For the curious, Qt 5.1.1 for trusty is preserved [9]

[9] https://launchpad.net/~canonical-qt5-edgers/+archive/backup-qt511

-Timo (soon away for a while, back in January)

Follow ups