Qt Maemo Git Process

Image:Ambox_content.png
This article is out-of-date, and needs to be updated.
Please see the talk page for discussion.

Contents

[edit] Intro

Fremantle Qt lives in gitorious. Currently there are 2 different versions of Qt:

  • Community port, based on Qt 4.5
 http://gitorious.org/+qt-maemo-developers/qt/qt-maemo
  • Official port based on Qt 4.6
  http://qt.gitorious.org/qt/x11-maemo

The pages you are browsing now are related to the community port of Qt. If you want to know more about the official Qt port, please check this page:

 http://qt.nokia.com/developer/qt-for-maemo-developers?gclid=CMDrwanfyJ0CFdQq3god12S7sA



[edit] Community Qt 4.5 port

[edit] Origin

The branches are synced with upstream Qt changes. No Maemo changes are there at all.

[edit] master

represents the latest core Qt master branch (currently 4.6)

[edit] 4.5

represents the latest core Qt branch for 4.5


[edit] Maemo master branches

[edit] 4.5-diablo

[edit] 4.5-fremantle

This branch is

  • based on 4.5
  • has all feature branches selected for maemo merged into it.
  • fairly plain Qt and should contains no packaging data and debian/* should not exist.

If an updates is made to 4.5 and 4.5 is merged into master-maemo-qt-4.5 then *all* conflicts with all feature/bug branches will be seen at once. To avoid this, 4.5 is merged into each bug/feature branch and conflicts resolved in focused feature areas. Now we need to merge the conflict-resolved features into master-maemo-qt-4.5. At this point it may seem reasonable to simply re-merge each feature branch into master-maemo-qt-4.5 however master-maemo-qt-4.5 contains all the other features from the last merge. So as soon as the first conflict-resolved feature is merged, all the conflicts from all the other features will be hit. The answer is to create a temporary local branch based on the latest 4.5 (see http://wiki.maemo.org/Mer/Build/UsingGitorious#Upstream_Updates) and merge each feature in turn into this branch. Then merge that into master-maemo-qt-4.5 (which should have no conflicts at all and, in the absence of any features/bugs is a simple fast-forward).

[edit] Maemo build branches

These branch should be built completely and used for regular release.

These are based on master-maemo-qt-45 currently.

If you are looking for building Qt from sources for a specific platform, then you have to checkout one of these branches and run

dpkg-buildpackage -rfakeroot -b

[edit] qt-diablo

Diablo branch

[edit] qt-n900

is the current Fremantle branch.

  • It's a branch of internal Qt 4.5.3 repository
  • It contains changes also available in 4.5-fremantle
  • currently it creates packages 4.5.3-maemo4.1 compatibile that can be installed into the device without overriding pre-install Qt core pacakges.
  • for more information ask to Antonio

[edit] qt-mer

Currently there is no branch.

[edit] Maemo build script and debian folder

[edit] maemo-build-generic

This branch is based on and tracks master-maemo-qt-4.5 It contains common packaging that allows Qt to build on various maemo-ish releases. A good rule is that no code is touched by non-merge commits to this branch It simply merges master-maemo-qt-4.5

[edit] maemo-build-diablo

Branched from maemo-build-generic and modified with packaging/configuration specifically used for diablo Note that maemo-build-diablo is not merged back

[edit] maemo-build-fremantle

Branched from maemo-build-generic and modified with packaging/configuration specifically used for fremantle

[edit] maemo-build-mer

Branched from maemo-build-generic and modified with packaging/configuration specifically used for Mer

[edit] maemo-qt-scripts

There are some scripts to manage maemo branches or create release pacakge etc.


[edit] Backporting 4.6 commits to our 4.5 branch

If we need to take some fixes from master 4.6 Qt branch, we have to cherry pick from our master branch to the 4.6-backports and master-qt-4.5 branches.

This branch is marked in yellow in the diagram

[edit] List of backported changes

This list make the backported changes more visible to Maemo Qt application developers.

This list is updated every time that the the backport branch is updated.

If you are a Maemo Qt developer, please update the the list with the git log output. Qt_Maemo_backported4.6Commits

[edit] Request for merging 4.6 changes in Maemo Qt

You can request it sending a mail in our ML.

[edit] Maemo fixes

These branches have each feature/ bug fix only. In the future, we will create a new maemo master branch, e.g. based on 4.6, at that time it is easy to chery-pick the modification to the new master branch.

[edit] bug-*

Representing potential bugs in Qt These branches hold fixes to specific bugs. The 4.5 branch will be merged into them to keep them up-to-date. If the bug is fixed upstream the branch will be deleted.

[edit] hildon-*

Each of these branches contain changes able to integrate Qt in the hildon environment. (Input method, menus, style). TO FIX: Actually the widget-* branches should be renamed in hildon-widget-*

[edit] hw-*

Contain changes that improve the usability of Qt with touchscreen device. Feature like right mouse button emulation, easy double click and so on. TO FIX: Actually the ts-* branches should be renamed in hw-ts-*

[edit] maemo-*

Representing features in various areas and branched from cloned 4.5 branch. Each branches adds only one feature-area.

The main covered areas are:

- maemo-build-* 
- maemo-qt-scripts
- others maemo related areas.

These branches has been created just to store the changes. We don't need to merge the changes from the 4.5 branch here if is not strictly needed. Don't merging upstream changes in these branches make more visible the Maemo changes. Then The 4.5 branch WON'T be merged into them to keep them up-to-date. The branch will be there and updated with our changes also when the feature is adopted upstream. Usually is hard to track dependencies between branches. The Diagram below should explain these dependencies.

Image:MaemoQtOnGit-Diagram-opt2.jpg