← Back to team overview

checkbox-dev team mailing list archive

Fwd: [Ubuntu-phone] SDK Tools - creating fat packages



---------- Forwarded message ----------
From: Zoltán Balogh <zoltan.balogh@xxxxxxxxxxxxx>
Date: Wed, Feb 4, 2015 at 1:35 PM
Subject: [Ubuntu-phone] SDK Tools - creating fat packages
To: ubuntu-phone <ubuntu-phone@xxxxxxxxxxxxxxxxxxx>

Hi all,

here is the detailed feature description of the fat packages support
in the SDK Tools

User story:
As an application developer I want to create .click package what can
be installed on armhf phone, amd64 desktop or  i386 emulator and the
same application will just work the same way on all platforms.

Technical  requirement:
 - Developer environment has all (amd64, i386 and armhf) click chroots
[1] available.
 - Build process is initiated for each target architecture one by one
 - Build artefacts are collected to a single location
 - Combined build directory is packaged up to .click with a single command

Developer experience:
The developer opens the application project and does the magic. The
application can be tested the known way: a target Kit is selected and
clicking the Run button deploys the application either on the desktop,
emulator or phone. On this path an arch specific .click package is
created and deployed on the target what is assigned to the Kit.
When the application is ready to be published the developer should go
to the Publish page and hit the "Create multiarch package" [3]. This
will open a dialogue with a multi-selection list of the available
Kits. The developer selects the targets and hits the "Create" button.
This will trigger the build and packaging chain. The click build will
be fired up for each target one by one with a common installation
The non compiled build artifacts (qlm files, media content, etc) are
expected to be identical for each architecture and the compiled
binaries are installed to an arch specific path. So the merge is
expected to be trivial [4]
The click packaging of the merged build/install directory is identical
to the arch specific builds.

To implement this feature we will need 2-3 weeks with testing and
whatsoever. Our plate is far from empty but I expect this feature to
land before 15.04 is released.

Questions, ideas?



[1] Right now there is no way to guarantee that the chroots are in
sync. The chroots made for stable frameworks like 14.04 and 14.10 are
expected to be on the same page, but chroots made for the development
release can diverge as it is up to the developer to keep the chroots
up to date.
[2] The QtCreator's internal Build/Run frontend can not be used for
doing multiarch builds. The reason is simple that QtCreator can build
against single Kits and Kits have only one sysroot.
[3] The text is for sure subject of change. That button might be the
actuall "Create package" button.
[4] We can not stop the developers to break this trivial merge. It is
technically possible to mess around with the qmake/cmake project files
in a way that the merge might not be trivial. But from developers who
are smart enough to mess around with the cmake/qmake files we can
expect to fix the problems they cause to themselves.

Mailing list: https://launchpad.net/~ubuntu-phone
Post to     : ubuntu-phone@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~ubuntu-phone
More help   : https://help.launchpad.net/ListHelp