Calligra 3.0 for Qt 5.1?

Boudewijn Rempt boud at valdyas.org
Mon Jul 29 11:11:25 BST 2013


I want to propose that we start porting Calligra to Qt 5.1 now that 2.7 is 
released. Jolla is funding KO GmbH to work on porting the core, so this is 
a good moment to get started. On the other hand, we're in the middle of 
gsoc and users still want new features and bug fixes. And there is quite a 
large number of (Krita) users who actually use git master for their daily 
work.

I see the following options:

* git master becomes the Qt5 branch. Work on gsoc, features and bug fixes 
can go on in Qt4 based branches, and the patches need to be ported to Qt5 
when merging to master.

* we keep a qt5 branch and regularly merge master to the qt5 branch. Big 
refactorings (komvc, build system changes) should only happen in the Qt5 
branch. New features and bug fixes and gsoc results can be merged to 
master.

For the porting approach, there are also some issues and options:

* Jolla is Qt 5.1 based with some patches from Qt 5.2
* KF5 is Qt 5.2 based
* KF5 is not ready yet

As an example, I wanted to figure out the easiest way to get at the xmlgui 
framework, without building all of KF5 but just the libraries we need. The 
process went like this:

Build dependencies manually (there is no depedency tracking inside KF5):

1. libkdeqt5staging
2. tier1/kcoreaddons
3. tier1/kconfig
4. tier1/kcodecs
5. tier1/kwidgetsaddons
6. staging/kwidgets

And here the system broke down, because staging/kwidgets couldn't find 
kfontchooser.h , even when it's installed already from kwidgetsaddons.

7 staging/itemviews -- and itemviews/tests depends on staging/kiconthemes, 
which depends on itemviews.

Finally, I never got staging/xmlgui built.

My conclusion: depending on KF5 is not yet possible because KF5 needs Qt 
5.2 which hasn't been released yet and it is itself not yet usable. 
Depending on KF5 will make working on Calligra 3.0 a lot harder for 
everyone involved.

One option is to follow the ideas I outlined earlier:

* Port Calligra to Qt 5.1
* Create a temporary, local kdefakes library that has the bare necessities 
to make Calligra run.
* Where possible (i.e., karchive) use the relevant KF5 framework library. 
Maybe we should make a local copy in those cases, though, to make building 
easier for ourselves.
* After finishing the port, start depending on the relevant KF5 libraries 
when they get done.

As I said, we have some funding for porting the core parts of Calligra: 
the libraries, words, sheets and stage. The various utilities don't need a 
lot of porting. I'm going to pick up porting Krita in copious spare time. 
As for, Flow, Karbon, Plan, Kexi, Braindump and Active -- whenever porting 
by script works, they will tag along. But it will take some community 
effort to really port those applications!

I'll prepare another mail with a list of technical issues I've 
encountered.


Boud



More information about the calligra-devel mailing list