1. Install either Debian testing (or stable, if it's new enough, but see the note about sbuild below) or the latest Ubuntu release. The build server must be installed with free space in an LVM volume group. The build chroots consume 4GB each. As of Oct 2012, we're using Precise, and we should prefer an Ubuntu LTS to Debian testing or unstable or experimental, per Ops' preferences. 2. Install debathena-login as per the the instructions in http://debathena.mit.edu/install. add the apt-key (though 3. apt-key add /afs/sipb.mit.edu/project/debathena/apt/debathena-archive-keyring.asc For maximum paranoia, run apt-key export on the old build server and then apt-key add on the new one. 4. Install the packages listed in scripts/build-server/packages (using "aptitude install"). Or apt-get install, until aptitude becomes less stupid about Multiarch support. Note that currently the build system uses the latest version of sbuild, so if you have not installed Debian testing, you'll need to set up apt pinning to grab sbuild from there. See the apt_preferences man page. You'll also need to grab schroot from Debian experimental. Also, WTF, why are these not part of debathena-build-depends or debathena-debian-dev or whatever? 5. Install the aufs-modules-2.6-amd64 package. No, we now use overlayfs. Also, both overlayfs and aufs are in the standard kernel packages. 6. Append to /etc/approx/approx.conf the contents of scripts/build-server/approx.conf.tail. Run: /etc/init.d/approx restart Nope, approx is now run from inetd. Restart that instead 7. Apply scripts/build-server/mount-defaults.patch and No, just add the AFS line: /afs /afs none rw,bind 0 0 scripts/build-server/pam-schroot.patch. Unneeded, schroot ships with the correct pam config. Ensure that schroot's pam-config is sane (Specifically, that it includes the usual pam stack, e.g. @include common-auth @include common-account @include common-session TODO: Deal with the /run mess once that's finalized. 8. For each supported DIST (see scripts/debian-versions.sh) run: scripts/build-server/make-chroot DIST i386 scripts/build-server/make-chroot DIST amd64 Example: scripts/build-server/make-chroot intrepid i386 9. Create a local account for builder with: adduser --uid 1047 --disabled-password builder Make the home directory mode 700. Install a daemon/linux-build-10.mit.edu keytab in the home directory as "keytab". Install a copy of the secret repository-signing key (debathena@mit.edu) in the home directory's keyring with something like: kinit builder gpg --export-secret-keys debathena@mit.edu | \ ssh -l builder machinename gpg --import Create a file named .sbuildrc in builder's homedir containing: $mailto = undef; $log_dir = '/tmp/sbuild-logs'; $maintainer_name = 'Debathena Project '; $force_orig_source = 1; $sbuild_mode = "user"; 1; Create a file named .ssh/config in builder's homedir containing: Host svn.mit.edu User debuildsvn Add builder to the sbuild group in /etc/group. Ensure that daemon.(build-server) exists in Kerberos and has a pts id. Add it to debathena-build-server-acl Ensure daemon.(build-server) exists in -c sipb (assuming the debathena locker is still in -c sipb) Copy scripts/build-server/autodebathenify to builder's homedir. Create a file named autodebathenify.config in builder's homedir containing: error_addr=debathena-root@mit.edu scripts_dir=/mit/debathena/bin build_dir=/mit/debathena/packages/third packages="lprng openafs" export DEBATHENA_APT=/mit/debathena/apt Copy scripts/build-server/autodebathenify.cron to builder's homedir and install it with "crontab autodebathenify.cron". Copy scripts/build-server/autolivebuilder to builder's homedir. Create a file called autolivebuilder.config in builder's homedir containing: error_addr=debathena-root@mit.edu release_version='9.04' release='jaunty' arch='i386' mirror='mirrors.mit.edu' gpg_opts=("-u" "0D8A9E8F") live_dir=/net/sipb-isilon-sc.mit.edu/ifs/mirror/sipb/debathena/livecd Create a file named .devscripts in builder's homedir containing: DEBUILD_DPKG_BUILDPACKAGE_OPTS="-sa -us -uc -i -I.svn" In builder's homedir, append to .bashrc: add debathena export PATH=$PATH:~/bin export DEBATHENA_APT=/mit/debathena/apt blah blah copy ~/bin too