ubuntu-phone team mailing list archive
-
ubuntu-phone team
-
Mailing list archive
-
Message #10981
SDK Tools - creating fat packages
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 path.
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.
Schedule:
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?
cheers,
Zoltan
[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.
Follow ups