This guide covers deterministic build process for AXE binaries on macOS. axe-gitian is a Vagrant box, provisioned with Ansible and deployed in VirtualBox environment. Gitian affords a way to be assured that AXE binaries are built from the exact source, provided on GitHub.
Install Git and set it up with your GitHub account.
Download and install the latest version of GPG Suite from here.
Download and install the latest version of Vagrant from here.
Download and install the latest version of VirtualBox from here.
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew doctor brew install git sudo easy_install pip
sudo pip install ansible
Download Xcode 7.3.1 dmg and mount it. Then pack a tarball by executing following in Terminal:
tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.11.sdk.tar.gz MacOSX10.11.sdk
git clone https://github.com/AXErunners/axe-gitian cd axe-gitian
# URL of repository containing AXE source code. axe_git_repo_url: 'https://github.com/AXErunners/axe' # Specific tag or branch you want to build. axe_version: 'v1.1.8' # The name@ in the e-mail address of your GPG key, alternatively a key ID. gpg_key_name: 'F16219F4C23F91112E9C734A8DFCBF8E5A4D8019' # OPTIONAL set to import your SSH key into the VM. Example: id_rsa, id_ed25519. Assumed to reside in ~/.ssh ssh_key_name: ''
Place Apple SDK tarball (
Start the build with
vagrant up --provision axe-build.
Then connect to the box with
vagrant ssh axe-build.
Prepare the container and start building with:
#replace $SIGNER and $VERSION to match your gitian.yml ./gitian-build.py --setup $signer $version ./gitian-build.py -B $SIGNER $VERSION
Commit assertions from the box using
git or use
vagrant scp plugin to transfer data between the box and the host.