What is a pinned-manifest.xml?
A pinned-manifest.xml is a Android manifest that allows a build to be recreated exactly. It does this by listing the HEAD commit id of a git after it has been cloned. For instance, the source manifest for build 47 of landing-panda  lists:
<project path="kernel" name="kernel/omap-omapzoom" revision="linaro_android_4.0.3">
...as the kernel to get. After its cloned, repo creates a pinned-manifest.xml by reading the head of each git and writes this line into the pinned-manifest.xml:
<project name="kernel/omap-omapzoom" path="kernel" revision="54475e6fbc4c841ae6c473c0a6993969e10589cc">
How to Reproduce a Build Exactly
Assume you want to reproduce https://releases.linaro.org/13.07/android/panda exactly use these instructions/steps:
=== Get artifacts ====
Scroll down to the 'Downloads’ section. Save linaro_android_build_cmds.sh to where you’d like to make your build. Also save the pinned-manifest.xml. Run the build script
The linaro_android_build_cmds.sh script will download the source and create the build.
- $ chmod +x linaro_android_build_cmds.sh
$ ./linaro_android_build_cmds.sh -m <pinned_manifest> -o <overlay> #To reproduce an exact build from pinned manifest
One may optionally need to provide login information if the code being accesses is from restricted git location. $ ./linaro_android_build_cmds.sh -t -l <login-id> #Provide login/access ID to clone and build code from linaro-private repositories
Platform/Android/ReproduceABuildExactly (last modified 2013-08-07 06:44:12)