This wikipage shall serve as a base for further detailled discussion.
To automate builds of the Ubuntu Touch android layer on cdimage we need to firstly build it from the git tree on phablet.ubuntu.com.
Since the initial idea of (ab)using the livefs builders for cross building the tree did not work out (the machines are not designed to compile anything from source and get massively overloaded) we will need to do the building in a different style.
Livefs builders are designed to assemble images from precompiled binaries so instead of using the machines that were designed for handling existing binaries in a way they were not intended to be used we will do the actual building on the package builders wich are actually designed to create binaries from source to achieve this the source tree needs to be rolled into a debian source package.
The tree at phablet.ubuntu.com is 15G big, this introduces a slight problem for the building developer, since whoever uploads the source package for it will have to firstly pull 15G down from the git tree, do an export and then upload the compressed export as a source package with the packaging bits added. This procedure would have to happen for each change in the git tree which is a rather non-feasible process.
Since the git tree carries many bits to enable porting to new devices we will not need for actual builds of the four supported architectures a lot can be stripped out in advance also we can provide ready made and compressed exports in advance from phablet.ubuntu.com/export/ to ease the process.
To strip down the exported tarball the following has to (or already has) happen(ed):
- Strip out the kernels into their own packages. For image builds we only need the kernel binaries and module tree. (done for mako and grouper already, maguro and manta still pending)
- Drop superfluous sources from the tree. (partially done for docs, demos, extra toolchain bits that are not used at all (i.e. mips))
- Move the toolchain completely out of the tree into an android-cross-toolchain package (including the compiler and bionic)
- Build binary packages of the in-tree libhybris and ubuntu-platform-api parts for android using the above cross toolchain during the regular ubuntu package builds of both (decouple from android tree, tie to already existing ubuntu packages).
Start autobuilding a package regulary from http://phablet.ubuntu.com/export/phablet-ubuntu-latest.tar.xz with the above toolchain as a build dependency once this archive get below 1G in size. To easy the upload pain, diffs can be created based on the previous tarball.
- In later iterations we should try to split the source into even smaller binary packages.