diff --git a/README.buildserver b/README.buildserver deleted file mode 100644 index 2c2d83b4..00000000 --- a/README.buildserver +++ /dev/null @@ -1,16 +0,0 @@ - -Integrating the build server setup into the main scripts is a work in progress. Some things may -not work properly yet. Talk to CiaranG if you're trying to use this and have problems. - -Setting up a build server: - -1. Install VirtualBox, vagrant and vagrant-snap -2. Create (or get - ask CiaranG, or wait until I replace this with a download link!) a standard - Debian Squeeze vagrant-compatible base box called 'debian6-32' -3. Run makebuildserver.sh. This will take a long time. The end result is a new base box called - 'buildserver'. - -You should now be able to use the --server option on build.py and builds will -take place in the clean, secure, isolated environment of a fresh virtual -machine for each app built. - diff --git a/docs/fdroid.html b/docs/fdroid.html index b65217df..f72be7d0 100644 --- a/docs/fdroid.html +++ b/docs/fdroid.html @@ -63,6 +63,11 @@ Copyright (C) 2011 Henrik Tunedal, Michael Haas, John Sullivan
The Build Server system isolates the builds for each package within a clean, +isolated and secure throwaway virtual machine environment. + +
Building applications in this manner on a large scale, especially with the +involvement of automated and/or unattended processes, could be considered +a dangerous pastime from a security perspective. This is even more the case +when the products of the build are also distributed widely and in a +semi-automated ("you have updates available") fashion. + +
Assume that an upstream source repository is compromised. A small selection +of things that an attacker could do in such a situation: + +
Through complete isolation, the repurcussions are at least limited to the +application in question. + +
Aside from security issues, there are some applications which have strange +requirements such as custom versions of the NDK. It would be impractical (or +at least extremely messy) to start modifying and restoring the SDK on a +multi-purpose system, but within the confines of a throwaway single-use +virtual machine, anything is possible. + +
Integrating the build server setup into the main scripts is a work in progress. +Some things may not work properly yet. Talk to CiaranG if you're trying to use +this and have problems. + +
In addition to the basic setup sets previously described, you will also need +a Vagrant-compatible Debian Squeeze base box called 'debian6-32'. You can +create one of these for yourself from standard Debian installation media, as +the specification for what's required to be Vagrant-compatible is very well +defined. This is the sensible and secure way to do it, since you know what's +in it. If you insist on taking a shortcut, ask CiaranG for his on the forum +or in IRC. + +
With this base box installed, you can then do: + +
./makebuildserver.sh ++
This will take a long time - most of it spent installing the necessary parts +of the Android SDK for all the various platforms. Luckily you only need to +do it occasionally. + +
Once it's complete you'll have a new base box called 'buildserver' which is
+what's used for the actual builds. You can then build packages as normal,
+but with the addition of the --server
flag to build.py
to
+instruct it to do all the hard work within the virtual machine, which is
+reset to a completely clean state for every package built.
+