@ -20,6 +20,8 @@ lxc=true
osslTarUrl = http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
osslTarUrl = http://downloads.sourceforge.net/project/osslsigncode/osslsigncode/osslsigncode-1.7.1.tar.gz
osslPatchUrl = https://bitcoincore.org/cfields/osslsigncode-Backports-to-1.7.1.patch
osslPatchUrl = https://bitcoincore.org/cfields/osslsigncode-Backports-to-1.7.1.patch
scriptName = $( basename -- " $0 " )
scriptName = $( basename -- " $0 " )
signProg = "gpg --detach-sign"
commitFiles = true
# Help Message
# Help Message
read -d '' usage <<- EOF
read -d '' usage <<- EOF
@ -43,6 +45,8 @@ Options:
-m Memory to allocate in MiB. Default 2000
-m Memory to allocate in MiB. Default 2000
--kvm Use KVM instead of LXC
--kvm Use KVM instead of LXC
--setup Setup the gitian building environment. Uses KVM. If you want to use lxc, use the --lxc option. Only works on Debian-based systems ( Ubuntu, Debian)
--setup Setup the gitian building environment. Uses KVM. If you want to use lxc, use the --lxc option. Only works on Debian-based systems ( Ubuntu, Debian)
--detach-sign Create the assert file for detached signing. Will not commit anything.
--no-commit Do not commit anything to git
-h| --help Print this help message
-h| --help Print this help message
EOF
EOF
@ -148,6 +152,15 @@ while :; do
--kvm)
--kvm)
lxc = false
lxc = false
; ;
; ;
# Detach sign
--detach-sign)
signProg = "true"
commitFiles = false
; ;
# Commit files
--no-commit)
commitFiles = false
; ;
# Setup
# Setup
--setup)
--setup)
setup = true
setup = true
@ -214,11 +227,11 @@ echo ${COMMIT}
# Setup build environment
# Setup build environment
if [ [ $setup = true ] ]
if [ [ $setup = true ] ]
then
then
pushd ./gitian-builder
sudo apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm qemu-utils
sudo apt-get install ruby apache2 git apt-cacher-ng python-vm-builder qemu-kvm qemu-utils
git clone https://github.com/bitcoin-core/gitian.sigs.git
git clone https://github.com/bitcoin-core/gitian.sigs.git
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
git clone https://github.com/bitcoin-core/bitcoin-detached-sigs.git
git clone https://github.com/devrandom/gitian-builder.git
git clone https://github.com/devrandom/gitian-builder.git
pushd ./gitian-builder
if [ [ -n " $USE_LXC " ] ]
if [ [ -n " $USE_LXC " ] ]
then
then
sudo apt-get install lxc
sudo apt-get install lxc
@ -258,7 +271,7 @@ then
echo " Compiling ${ VERSION } Linux "
echo " Compiling ${ VERSION } Linux "
echo ""
echo ""
./bin/gbuild -j ${ proc } -m ${ mem } --commit bitcoin = ${ COMMIT } --url bitcoin = ${ url } ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gbuild -j ${ proc } -m ${ mem } --commit bitcoin = ${ COMMIT } --url bitcoin = ${ url } ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign --signer $SIGNER --release ${ VERSION } -linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
./bin/gsign -p $signProg - -signer $SIGNER --release ${ VERSION } -linux --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../bitcoin-binaries/${ VERSION }
mv build/out/bitcoin-*.tar.gz build/out/src/bitcoin-*.tar.gz ../bitcoin-binaries/${ VERSION }
fi
fi
# Windows
# Windows
@ -268,7 +281,7 @@ then
echo " Compiling ${ VERSION } Windows "
echo " Compiling ${ VERSION } Windows "
echo ""
echo ""
./bin/gbuild -j ${ proc } -m ${ mem } --commit bitcoin = ${ COMMIT } --url bitcoin = ${ url } ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gbuild -j ${ proc } -m ${ mem } --commit bitcoin = ${ COMMIT } --url bitcoin = ${ url } ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign --signer $SIGNER --release ${ VERSION } -win-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
./bin/gsign -p $signProg - -signer $SIGNER --release ${ VERSION } -win-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml
mv build/out/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
mv build/out/bitcoin-*-win-unsigned.tar.gz inputs/bitcoin-win-unsigned.tar.gz
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../bitcoin-binaries/${ VERSION }
mv build/out/bitcoin-*.zip build/out/bitcoin-*.exe ../bitcoin-binaries/${ VERSION }
fi
fi
@ -279,12 +292,14 @@ then
echo " Compiling ${ VERSION } Mac OSX "
echo " Compiling ${ VERSION } Mac OSX "
echo ""
echo ""
./bin/gbuild -j ${ proc } -m ${ mem } --commit bitcoin = ${ COMMIT } --url bitcoin = ${ url } ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gbuild -j ${ proc } -m ${ mem } --commit bitcoin = ${ COMMIT } --url bitcoin = ${ url } ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign --signer $SIGNER --release ${ VERSION } -osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
./bin/gsign -p $signProg - -signer $SIGNER --release ${ VERSION } -osx-unsigned --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx.yml
mv build/out/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
mv build/out/bitcoin-*-osx-unsigned.tar.gz inputs/bitcoin-osx-unsigned.tar.gz
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../bitcoin-binaries/${ VERSION }
mv build/out/bitcoin-*.tar.gz build/out/bitcoin-*.dmg ../bitcoin-binaries/${ VERSION }
fi
fi
popd
popd
if [ [ $commitFiles = true ] ]
then
# Commit to gitian.sigs repo
# Commit to gitian.sigs repo
echo ""
echo ""
echo " Committing ${ VERSION } Unsigned Sigs "
echo " Committing ${ VERSION } Unsigned Sigs "
@ -296,6 +311,7 @@ then
git commit -a -m " Add ${ VERSION } unsigned sigs for ${ SIGNER } "
git commit -a -m " Add ${ VERSION } unsigned sigs for ${ SIGNER } "
popd
popd
fi
fi
fi
# Verify the build
# Verify the build
if [ [ $verify = true ] ]
if [ [ $verify = true ] ]
@ -341,7 +357,7 @@ then
echo " Signing ${ VERSION } Windows "
echo " Signing ${ VERSION } Windows "
echo ""
echo ""
./bin/gbuild -i --commit signature = ${ COMMIT } ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gbuild -i --commit signature = ${ COMMIT } ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign --signer $SIGNER --release ${ VERSION } -win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
./bin/gsign -p $signProg - -signer $SIGNER --release ${ VERSION } -win-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win-signer.yml
mv build/out/bitcoin-*win64-setup.exe ../bitcoin-binaries/${ VERSION }
mv build/out/bitcoin-*win64-setup.exe ../bitcoin-binaries/${ VERSION }
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-binaries/${ VERSION }
mv build/out/bitcoin-*win32-setup.exe ../bitcoin-binaries/${ VERSION }
fi
fi
@ -352,11 +368,13 @@ then
echo " Signing ${ VERSION } Mac OSX "
echo " Signing ${ VERSION } Mac OSX "
echo ""
echo ""
./bin/gbuild -i --commit signature = ${ COMMIT } ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gbuild -i --commit signature = ${ COMMIT } ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign --signer $SIGNER --release ${ VERSION } -osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
./bin/gsign -p $signProg - -signer $SIGNER --release ${ VERSION } -osx-signed --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-osx-signer.yml
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-binaries/${ VERSION } /bitcoin-${ VERSION } -osx.dmg
mv build/out/bitcoin-osx-signed.dmg ../bitcoin-binaries/${ VERSION } /bitcoin-${ VERSION } -osx.dmg
fi
fi
popd
popd
if [ [ $commitFiles = true ] ]
then
# Commit Sigs
# Commit Sigs
pushd gitian.sigs
pushd gitian.sigs
echo ""
echo ""
@ -367,3 +385,4 @@ then
git commit -a -m " Add ${ VERSION } signed binary sigs for ${ SIGNER } "
git commit -a -m " Add ${ VERSION } signed binary sigs for ${ SIGNER } "
popd
popd
fi
fi
fi