In over a year of my work as AArch64 porter I saw a lot of patches. But Qt one has the most interesting history.

Around year ago when I was building whatever possible during my Linaro work we got to the point when Qt jumped into a queue. Build failed but fixing was quite easy — all I had to do was to take “webkitgtk” patch written by Riku Voipio and apply it to Qt 4. Resulting file landed in “meta-aarch64” layer of OpenEmbedded and is still there.

Time passed. More common distributions like Debian, Fedora, OpenSUSE, Ubuntu (alphabetical order) started working on their AArch64 ports. And one day Fedora and Ubuntu started working on building Qt 4. I do not know who wrote QAtomic stuff but I saw few versions/iterations of it and it took me quite long time (first on model, then on real hardware) to get it fully working in Fedora — used Ubuntu version of patches.

Up to this moment it was over 9 months and still no upstreaming was done. So one day I decided to go for it and opened QTBUG #35442. Then reopened issue #33 in “double-conversion” project (which is used in few places in Qt) as they got good fix and merged wrong one (but it is fixed now). For that one I opened a request to update to newer version of “double-conversion” as QTBUG #35528.

But story did not end there. As Qt 4 development is more or less ended I was asked to provide fixes for Qt 5. Took me a while. Had to create a graph of build time dependencies between Qt 5 components (had to break few in meantime) and slowly module after module I got most of it built.

There were 3 components which required patching:

First one is solved upstream and waits for Qt guys. I was told that 5.3 will get it updated. Second one is already reviewed and merged. Last one left and here is a problem as it looks like the only person who does QtWebKit code reviews is Allan Sandfeld Jensen but he can not review code he sent. I am not able to do that due to Qt Contributor License Agreement which needs to be signed and (due to legal stuff) I can not do that.

So how it looks now? I would say that quite good. One 3rd party project needs update (in two places of Qt 5) and one patch needs to get through code review. I still need to send package updates to Fedora bug tracker. Ubuntu will need to merge patches when they move to 5.2 version.

The story of Qt/AArch64 patching

7 thoughts on “The story of Qt/AArch64 patching

  • 21st January 2014 at 08:23

    due to Qt Contributor License Agreement which needs to be signed and (due to legal stuff) I can not do that.

    This is not entirely related, but given the current discussions going on everywhere about CLAs (in the Debian init-system debate, on the Google+ pages and blogs of a few prominent Linux kernel and userspace developers), it would be a very interesting data point if you could elaborate what kind of “legal stuff” prevents you from signing one.

    In another blog post maybe, as I wouldn’t want to derail this one. 🙂

      • 22nd January 2014 at 14:27

        But just a few that ship/have AARch64: Red Hat, Ubuntu, Debian (this last two name it arm64) and maybe some more. On the other hand, getting the attention of some of the maintainers in those three distros might be enough.

        • 25th January 2014 at 17:54

          I work at Red Hat and Fedora bug reports were reported. Ubuntu maintainers were notified about patches before I submitted them and also got urls to Fedora bugs. I do not know how far Debian is with bootstrapping AArch64 but iirc they still do it in fast model so probably not even started with Qt (needs days to build in model).

  • Pingback:Xulrunner/AArch64 on a way to upstream | Marcin Juszkiewicz

Comments are closed.