From a61083b71b5004865dfa7e3ce84a27f5d8e730f1 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Thu, 23 May 2013 11:03:38 +0100 Subject: [PATCH] Improved buildserver setup documentation --- docs/fdroid.texi | 48 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/docs/fdroid.texi b/docs/fdroid.texi index a9a17134..f8ef0390 100644 --- a/docs/fdroid.texi +++ b/docs/fdroid.texi @@ -7,7 +7,7 @@ @copying This manual is for the F-Droid repository server tools. -Copyright @copyright{} 2010, 2011, 2012 Ciaran Gultnieks +Copyright @copyright{} 2010, 2011, 2012, 2013 Ciaran Gultnieks Copyright @copyright{} 2011 Henrik Tunedal, Michael Haas, John Sullivan @quotation @@ -1091,21 +1091,53 @@ 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. +All this is in addition to the obvious advantage of having a standardised +and completely reproducible environment in which builds are made. + @section Setting up a build server In addition to the basic setup previously described, you will also need -a Vagrant-compatible Ubuntu Precise base box called 'precise32'. You can -create one of these for yourself from standard Ubuntu installation media, as -the specification for what's required to be Vagrant-compatible is very well -defined. +a Vagrant-compatible Ubuntu Raring base box called 'raring64'. + +You can use a different version or distro for the base box, so long as you +don't expect any help making it work. One thing to be aware of is that +working copies of source trees are moved from the host to the guest, so +for example, having subversion v1.6 on the host and v1.7 on the guest +would fail. + +Unless you're very trusting. you should create one of these for yourself +from verified standard Ubuntu installation media. However, you could skip +over the next few paragraphs (and sacrifice some security) by downloading +@url{https://f-droid.org/raring64.box}. Documentation for creating a base box can be found at @url{http://docs.vagrantup.com/v1/docs/base_boxes.html}. -You can use a different version or distro for the base box, so long as you -don't expect any help making it work. +In addition to carefully following the steps described there, you should +consider the following: + +@enumerate +@item +It is advisable to disable udev network device persistence, otherwise any +movement of the VM between machines, or reconfiguration, will result in +broken networking. + +For a Debian/Ubuntu default install, just +@code{touch /etc/udev/rules.d/75-persistent-net-generator.rules} to turn +off rule generation, and at the same time, get rid of any rules it's +already created in @code{/etc/udev/rules.d/70-persistent-net.rules}. +@item +Unless you want the VM to become totally inaccessible following a failed +boot, you need to set @code{GRUB_RECORDFAIL_TIMEOUT} to a value other than +-1 in @code{/etc/grub/default} and then run @code{update-grub}. +@end enumerate + +You may also want to edit @code{buildserver/Vagrantfile} - in particular +there is a path for retrieving the base box if it doesn't exist, and an +apt proxy definition, both of which may need customising for your +environment. -With this base box installed, you can then go to the @code{fdroidserver} +With this base box available, you can then go to the @code{fdroidserver} directory and run this: @example -- 2.30.2