bitcoin/contrib/gitian-descriptors
Cory Fields 9d25362087 build: add armhf/aarch64 gitian builds
- create a script to handle split debug. This will also eventually need to check
  targets, and use dsymutil for osx.
- update config.guess/config.sub for bdb for aarch64.
- temporarily disable symbol checks for arm/aarch64
- quit renaming to linux32/linux64 and use the host directly

This also adds a hack to work around an Ubuntu bug in the gcc-multilib package:
https://bugs.launchpad.net/ubuntu/+source/gcc-defaults-armhf-cross/+bug/1347820

The problem is that gcc-multilib conflicts with the aarch toolchain.
gcc-multilib installs a symlink that points
/usr/include/asm -> /usr/include/x86_64-linux-gnu/asm.

Without this link, gcc -m32 can't find asm/errno.h (and others), since
/usr/include/x86_64-linux-gnu isn't in its default include path. But
/usr/include/i386-linux-gnu is (though it doesn't exist on disk).

So work around the problem by linking
/usr/include/i386-linux-gnu/asm -> /usr/include/x86_64-linux-gnu/asm.

The symlink fix is actually quite reasonable, but echoing the password into
sudo is nasty, and should probably be addressed in gitian itself. It makes more
sense to enable passwordless sudo for the build user by default.
2016-06-10 05:34:50 -04:00
..
README.md contrib: Del. gitian downloader config and update gitian README 2015-11-30 16:34:11 +01:00
gitian-linux.yml build: add armhf/aarch64 gitian builds 2016-06-10 05:34:50 -04:00
gitian-osx-signer.yml Merge #7283: [gitian] Default reference_datetime to commit author date 2016-06-09 11:14:20 +02:00
gitian-osx.yml Merge #7283: [gitian] Default reference_datetime to commit author date 2016-06-09 11:14:20 +02:00
gitian-win-signer.yml Merge #7283: [gitian] Default reference_datetime to commit author date 2016-06-09 11:14:20 +02:00
gitian-win.yml Merge #7283: [gitian] Default reference_datetime to commit author date 2016-06-09 11:14:20 +02:00

README.md

Gavin's notes on getting gitian builds up and running using KVM

These instructions distilled from https://help.ubuntu.com/community/KVM/Installation.

You need the right hardware: you need a 64-bit-capable CPU with hardware virtualization support (Intel VT-x or AMD-V). Not all modern CPUs support hardware virtualization.

You probably need to enable hardware virtualization in your machine's BIOS.

You need to be running a recent version of 64-bit-Ubuntu, and you need to install several prerequisites:

sudo apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm

Sanity checks:

sudo service apt-cacher-ng status  # Should return apt-cacher-ng is running
ls -l /dev/kvm   # Should show a /dev/kvm device

Once you've got the right hardware and software:

git clone git://github.com/bitcoin/bitcoin.git
git clone git://github.com/devrandom/gitian-builder.git
mkdir gitian-builder/inputs
cd gitian-builder/inputs

# Create base images
cd gitian-builder
bin/make-base-vm --suite trusty --arch amd64
cd ..

# Get inputs (see doc/release-process.md for exact inputs needed and where to get them)
...

# For further build instructions see doc/release-process.md
...

gitian-builder now also supports building using LXC. See help.ubuntu.com for how to get LXC up and running under Ubuntu.

If your main machine is a 64-bit Mac or PC with a few gigabytes of memory and at least 10 gigabytes of free disk space, you can gitian-build using LXC running inside a virtual machine.

Here's a description of Gavin's setup on OSX 10.6:

  1. Download and install VirtualBox from https://www.virtualbox.org/

  2. Download the 64-bit Ubuntu Desktop 12.04 LTS .iso CD image from http://www.ubuntu.com/

  3. Run VirtualBox and create a new virtual machine, using the Ubuntu .iso (see the VirtualBox documentation for details). Create it with at least 2 gigabytes of memory and a disk that is at least 20 gigabytes big.

  4. Inside the running Ubuntu desktop, install:

    sudo apt-get install debootstrap lxc ruby apache2 git apt-cacher-ng python-vm-builder

  5. Still inside Ubuntu, tell gitian-builder to use LXC, then follow the "Once you've got the right hardware and software" instructions above:

    export USE_LXC=1 git clone git://github.com/bitcoin/bitcoin.git ... etc