Miguel Freitas
11 years ago
13 changed files with 538 additions and 379 deletions
@ -1,86 +0,0 @@
@@ -1,86 +0,0 @@
|
||||
Gavin's notes on getting gitian builds up and running using KVM: |
||||
|
||||
These instructions distilled from: |
||||
https://help.ubuntu.com/community/KVM/Installation |
||||
... see there for complete details. |
||||
|
||||
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 |
||||
# Inputs for Linux and Win32: |
||||
wget -O miniupnpc-1.6.tar.gz 'http://miniupnp.tuxfamily.org/files/download.php?file=miniupnpc-1.6.tar.gz' |
||||
wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2' |
||||
# Inputs for Win32: (Linux has packages for these) |
||||
wget 'https://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2' |
||||
wget 'http://www.openssl.org/source/openssl-1.0.1c.tar.gz' |
||||
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' |
||||
wget 'https://downloads.sourceforge.net/project/libpng/zlib/1.2.6/zlib-1.2.6.tar.gz' |
||||
wget 'https://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.9/libpng-1.5.9.tar.gz' |
||||
wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz' |
||||
cd ../.. |
||||
|
||||
cd gitian-builder |
||||
bin/make-base-vm --arch i386 |
||||
bin/make-base-vm --arch amd64 |
||||
cd .. |
||||
|
||||
# Build Linux release: |
||||
cd bitcoin |
||||
git pull |
||||
cd ../gitian-builder |
||||
git pull |
||||
./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/gitian.yml |
||||
|
||||
# Build Win32 dependencies: (only needs to be done once, or when dependency versions change) |
||||
./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/boost-win32.yml |
||||
./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/deps-win32.yml |
||||
./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/qt-win32.yml |
||||
|
||||
# Build Win32 release: |
||||
./bin/gbuild --commit bitcoin=HEAD ../bitcoin/contrib/gitian-descriptors/gitian-win32.yml |
||||
|
||||
--------------------- |
||||
|
||||
gitian-builder now also supports building using LXC. See |
||||
https://help.ubuntu.com/12.04/serverguide/lxc.html |
||||
... 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 |
@ -0,0 +1,67 @@
@@ -0,0 +1,67 @@
|
||||
### Gavin's notes on getting gitian builds up and running using KVM:### |
||||
|
||||
These instructions distilled from: |
||||
[ https://help.ubuntu.com/community/KVM/Installation]( https://help.ubuntu.com/community/KVM/Installation) |
||||
... see there for complete details. |
||||
|
||||
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 precise --arch i386 |
||||
bin/make-base-vm --suite precise --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-notes.md |
||||
... |
||||
|
||||
--------------------- |
||||
|
||||
`gitian-builder` now also supports building using LXC. See |
||||
[ https://help.ubuntu.com/12.04/serverguide/lxc.html]( https://help.ubuntu.com/12.04/serverguide/lxc.html) |
||||
... 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/](https://www.virtualbox.org/) |
||||
|
||||
2. Download the 64-bit Ubuntu Desktop 12.04 LTS .iso CD image from |
||||
[http://www.ubuntu.com/](http://www.ubuntu.com/) |
||||
|
||||
3. Run VirtualBox and create a new virtual machine, using the Ubuntu .iso (see the [VirtualBox documentation](https://www.virtualbox.org/wiki/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 |
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
--- |
||||
name: "boost" |
||||
suites: |
||||
- "precise" |
||||
architectures: |
||||
- "i386" |
||||
- "amd64" |
||||
packages: |
||||
- "g++" |
||||
- "unzip" |
||||
- "pkg-config" |
||||
- "libtool" |
||||
- "faketime" |
||||
- "bsdmainutils" |
||||
- "zip" |
||||
- "libz-dev" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "boost_1_55_0.tar.bz2" |
||||
script: | |
||||
STAGING="$HOME/install" |
||||
TEMPDIR="$HOME/tmp" |
||||
export LIBRARY_PATH="$STAGING/lib" |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
# Input Integrity Check |
||||
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c |
||||
|
||||
mkdir -p "$STAGING" |
||||
tar --warning=no-timestamp -xjf boost_1_55_0.tar.bz2 |
||||
cd boost_1_55_0 |
||||
GCCVERSION=$(g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2) |
||||
# note: bjam with -d+2 reveals that -O3 is implied by default, no need to provide it in cxxflags |
||||
echo "using gcc : $GCCVERSION : g++ |
||||
: |
||||
<cxxflags>\"-frandom-seed=boost1 -fPIC\" |
||||
;" > user-config.jam |
||||
|
||||
./bootstrap.sh --without-icu |
||||
|
||||
./bjam toolset=gcc threadapi=pthread threading=multi variant=release link=static runtime-link=shared --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 --layout=tagged --build-type=complete --prefix="$STAGING" $MAKEOPTS -d+2 install |
||||
|
||||
# post-process all generated libraries to be deterministic |
||||
# extract them to a temporary directory then re-build them deterministically |
||||
for LIB in $(find $STAGING -name \*.a); do |
||||
rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR |
||||
ar xv $LIB | cut -b5- > /tmp/list.txt |
||||
rm $LIB |
||||
ar crsD $LIB $(cat /tmp/list.txt) |
||||
done |
||||
# |
||||
cd "$STAGING" |
||||
find | sort | zip -X@ $OUTDIR/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip |
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
--- |
||||
name: "boost" |
||||
suites: |
||||
- "precise" |
||||
architectures: |
||||
- "amd64" |
||||
packages: |
||||
- "mingw-w64" |
||||
- "g++-mingw-w64" |
||||
- "faketime" |
||||
- "zip" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "boost_1_55_0.tar.bz2" |
||||
- "boost-mingw-gas-cross-compile-2013-03-03.patch" |
||||
script: | |
||||
# Defines |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
INDIR=$HOME/build |
||||
TEMPDIR=$HOME/tmp |
||||
# Input Integrity Check |
||||
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c |
||||
echo "d2b7f6a1d7051faef3c9cf41a92fa3671d905ef1e1da920d07651a43299f6268 boost-mingw-gas-cross-compile-2013-03-03.patch" | shasum -c |
||||
|
||||
for BITS in 32 64; do # for architectures |
||||
# |
||||
INSTALLPREFIX=$HOME/staging${BITS} |
||||
BUILDDIR=$HOME/build${BITS} |
||||
if [ "$BITS" == "32" ]; then |
||||
HOST=i686-w64-mingw32 |
||||
else |
||||
HOST=x86_64-w64-mingw32 |
||||
fi |
||||
# |
||||
mkdir -p $INSTALLPREFIX $BUILDDIR |
||||
cd $BUILDDIR |
||||
# |
||||
tar --warning=no-timestamp -xjf $INDIR/boost_1_55_0.tar.bz2 |
||||
cd boost_1_55_0 |
||||
GCCVERSION=$($HOST-g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2) |
||||
echo "using gcc : $GCCVERSION : $HOST-g++ |
||||
: |
||||
<rc>$HOST-windres |
||||
<archiver>$HOST-ar |
||||
<cxxflags>-frandom-seed=boost1 |
||||
<ranlib>$HOST-ranlib |
||||
;" > user-config.jam |
||||
./bootstrap.sh --without-icu |
||||
|
||||
# Workaround: Upstream boost dev refuses to include patch that would allow Free Software cross-compile toolchain to work |
||||
# This patch was authored by the Fedora package developer and ships in Fedora's mingw32-boost. |
||||
# Please obtain the exact patch that matches the above sha256sum from one of the following mirrors. |
||||
# |
||||
# Read History: https://svn.boost.org/trac/boost/ticket/7262 |
||||
# History Mirror: http://rose.makesad.us/~paulproteus/mirrors/7262%20Boost.Context%20fails%20to%20build%20using%20MinGW.html |
||||
# |
||||
# Patch: https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch |
||||
# Patch Mirror: http://wtogami.fedorapeople.org/boost-mingw-gas-cross-compile-2013-03-03.patch |
||||
# Patch Mirror: http://mindstalk.net/host/boost-mingw-gas-cross-compile-2013-03-03.patch |
||||
# Patch Mirror: http://rose.makesad.us/~paulproteus/mirrors/boost-mingw-gas-cross-compile-2013-03-03.patch |
||||
patch -p0 < $INDIR/boost-mingw-gas-cross-compile-2013-03-03.patch |
||||
|
||||
# Bug Workaround: boost-1.54.0 broke the ability to disable zlib, still broken in 1.55 |
||||
# https://svn.boost.org/trac/boost/ticket/9156 |
||||
sed -i 's^\[ ac.check-library /zlib//zlib : <library>/zlib//zlib^^' libs/iostreams/build/Jamfile.v2 |
||||
sed -i 's^<source>zlib.cpp <source>gzip.cpp \]^^' libs/iostreams/build/Jamfile.v2 |
||||
|
||||
# http://statmt.org/~s0565741/software/boost_1_52_0/libs/context/doc/html/context/requirements.html |
||||
# "For cross-compiling the lib you must specify certain additional properties at bjam command line: target-os, abi, binary-format, architecture and address-model." |
||||
./bjam toolset=gcc binary-format=pe target-os=windows threadapi=win32 address-model=$BITS threading=multi variant=release link=static runtime-link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete --prefix="$INSTALLPREFIX" $MAKEOPTS install |
||||
# post-process all generated libraries to be deterministic |
||||
# extract them to a temporary directory then re-build them deterministically |
||||
for LIB in $(find $INSTALLPREFIX -name \*.a); do |
||||
rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR |
||||
$HOST-ar xv $LIB | cut -b5- > /tmp/list.txt |
||||
rm $LIB |
||||
$HOST-ar crsD $LIB $(cat /tmp/list.txt) |
||||
done |
||||
# |
||||
cd "$INSTALLPREFIX" |
||||
find | sort | zip -X@ $OUTDIR/boost-win$BITS-1.55.0-gitian-r6.zip |
||||
done # for BITS in |
||||
|
@ -1,38 +0,0 @@
@@ -1,38 +0,0 @@
|
||||
--- |
||||
name: "boost" |
||||
suites: |
||||
- "lucid" |
||||
architectures: |
||||
- "i386" |
||||
packages: |
||||
- "mingw32" |
||||
- "faketime" |
||||
- "zip" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "boost_1_50_0.tar.bz2" |
||||
script: | |
||||
TMPDIR="$HOME/tmpdir" |
||||
mkdir -p $TMPDIR/bin/$GBUILD_BITS $TMPDIR/include |
||||
tar xjf boost_1_50_0.tar.bz2 |
||||
cd boost_1_50_0 |
||||
echo "using gcc : 4.4 : i586-mingw32msvc-g++ |
||||
: |
||||
<rc>i586-mingw32msvc-windres |
||||
<archiver>i586-mingw32msvc-ar |
||||
<cxxflags>-frandom-seed=boost1 |
||||
;" > user-config.jam |
||||
./bootstrap.sh --without-icu |
||||
./bjam toolset=gcc target-os=windows threadapi=win32 threading=multi variant=release link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete $MAKEOPTS stage |
||||
for lib in chrono date_time exception filesystem graph iostreams math_c99f math_c99l math_c99 math_tr1f math_tr1l math_tr1 prg_exec_monitor program_options random regex serialization signals system test_exec_monitor thread_win32 unit_test_framework wave wserialization; do |
||||
mkdir $lib |
||||
(cd $lib ; ar xf ../stage/lib/libboost_${lib}-mt-s.a) |
||||
mv $lib $TMPDIR/bin/$GBUILD_BITS |
||||
done |
||||
cp -a boost $TMPDIR/include |
||||
cd $TMPDIR |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
zip -r boost-win32-1.50.0-gitian2.zip * |
||||
cp boost-win32-1.50.0-gitian2.zip $OUTDIR |
@ -0,0 +1,62 @@
@@ -0,0 +1,62 @@
|
||||
--- |
||||
name: "twister" |
||||
suites: |
||||
- "precise" |
||||
architectures: |
||||
- "i386" |
||||
- "amd64" |
||||
packages: |
||||
- "g++" |
||||
- "unzip" |
||||
- "zip" |
||||
- "pkg-config" |
||||
- "libtool" |
||||
- "faketime" |
||||
- "bsdmainutils" |
||||
reference_datetime: "2013-06-01 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "openssl-1.0.1h.tar.gz" |
||||
- "db-4.8.30.NC.tar.gz" |
||||
script: | |
||||
STAGING="$HOME/install" |
||||
TEMPDIR="$HOME/tmp" |
||||
OPTFLAGS='-O2' |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
export LIBRARY_PATH="$STAGING/lib" |
||||
# Integrity Check |
||||
echo "9d1c8a9836aa63e2c6adb684186cbd4371c9e9dcc01d6e3bb447abf2d4d3d093 openssl-1.0.1h.tar.gz" | sha256sum -c |
||||
echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c |
||||
|
||||
# |
||||
tar xzf openssl-1.0.1h.tar.gz |
||||
cd openssl-1.0.1h |
||||
# need -fPIC to avoid relocation error in 64 bit builds |
||||
./config no-shared no-zlib no-dso no-krb5 --openssldir=$STAGING -fPIC |
||||
# need to build OpenSSL with faketime because a timestamp is embedded into cversion.o |
||||
make |
||||
make install_sw |
||||
cd .. |
||||
# |
||||
tar xzf db-4.8.30.NC.tar.gz |
||||
cd db-4.8.30.NC/build_unix |
||||
# need --with-pic to avoid relocation error in 64 bit builds |
||||
../dist/configure --prefix=$STAGING --enable-cxx --disable-shared --with-pic |
||||
# Workaround to prevent re-configuring by make; make all files have a date in the past |
||||
find . -print0 | xargs -r0 touch -t 200001010000 |
||||
make $MAKEOPTS library_build |
||||
make install_lib install_include |
||||
cd ../.. |
||||
# post-process all generated libraries to be deterministic |
||||
# extract them to a temporary directory then re-build them deterministically |
||||
for LIB in $(find $STAGING -name \*.a); do |
||||
rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR |
||||
ar xv $LIB | cut -b5- > /tmp/list.txt |
||||
rm $LIB |
||||
ar crsD $LIB $(cat /tmp/list.txt) |
||||
done |
||||
# |
||||
cd $STAGING |
||||
find include lib bin host | sort | zip -X@ $OUTDIR/twister-deps-linux${GBUILD_BITS}-gitian-r6.zip |
@ -0,0 +1,81 @@
@@ -0,0 +1,81 @@
|
||||
--- |
||||
name: "twister-deps" |
||||
suites: |
||||
- "precise" |
||||
architectures: |
||||
- "amd64" |
||||
packages: |
||||
- "mingw-w64" |
||||
- "g++-mingw-w64" |
||||
- "git-core" |
||||
- "zip" |
||||
- "faketime" |
||||
- "psmisc" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "openssl-1.0.1h.tar.gz" |
||||
- "db-4.8.30.NC.tar.gz" |
||||
- "zlib-1.2.8.tar.gz" |
||||
script: | |
||||
# |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
INDIR=$HOME/build |
||||
TEMPDIR=$HOME/tmp |
||||
# Input Integrity Check |
||||
echo "9d1c8a9836aa63e2c6adb684186cbd4371c9e9dcc01d6e3bb447abf2d4d3d093 openssl-1.0.1h.tar.gz" | sha256sum -c |
||||
echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c |
||||
echo "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d zlib-1.2.8.tar.gz" | sha256sum -c |
||||
|
||||
for BITS in 32 64; do # for architectures |
||||
# |
||||
INSTALLPREFIX=$HOME/staging${BITS} |
||||
BUILDDIR=$HOME/build${BITS} |
||||
if [ "$BITS" == "32" ]; then |
||||
HOST=i686-w64-mingw32 |
||||
else |
||||
HOST=x86_64-w64-mingw32 |
||||
fi |
||||
# |
||||
mkdir -p $INSTALLPREFIX $BUILDDIR |
||||
cd $BUILDDIR |
||||
# |
||||
tar xzf $INDIR/openssl-1.0.1h.tar.gz |
||||
cd openssl-1.0.1h |
||||
if [ "$BITS" == "32" ]; then |
||||
OPENSSL_TGT=mingw |
||||
else |
||||
OPENSSL_TGT=mingw64 |
||||
fi |
||||
./Configure --cross-compile-prefix=$HOST- ${OPENSSL_TGT} no-shared no-dso --openssldir=$INSTALLPREFIX |
||||
make |
||||
make install_sw |
||||
cd .. |
||||
# |
||||
tar xzf $INDIR/db-4.8.30.NC.tar.gz |
||||
cd db-4.8.30.NC/build_unix |
||||
../dist/configure --prefix=$INSTALLPREFIX --enable-mingw --enable-cxx --host=$HOST --disable-shared |
||||
make $MAKEOPTS library_build |
||||
make install_lib install_include |
||||
cd ../.. |
||||
# |
||||
tar xzf $INDIR/zlib-1.2.8.tar.gz |
||||
cd zlib-1.2.8 |
||||
CROSS_PREFIX=$HOST- ./configure --prefix=$INSTALLPREFIX --static |
||||
make |
||||
make install |
||||
cd .. |
||||
# post-process all generated libraries to be deterministic |
||||
# extract them to a temporary directory then re-build them deterministically |
||||
for LIB in $(find $INSTALLPREFIX -name \*.a); do |
||||
rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR |
||||
$HOST-ar xv $LIB | cut -b5- > /tmp/list.txt |
||||
rm $LIB |
||||
$HOST-ar crsD $LIB $(cat /tmp/list.txt) |
||||
done |
||||
# |
||||
cd $INSTALLPREFIX |
||||
find include lib | sort | zip -X@ $OUTDIR/twister-deps-win$BITS-gitian-r13.zip |
||||
done # for BITS in |
@ -1,72 +0,0 @@
@@ -1,72 +0,0 @@
|
||||
--- |
||||
name: "bitcoin-deps" |
||||
suites: |
||||
- "lucid" |
||||
architectures: |
||||
- "i386" |
||||
packages: |
||||
- "mingw32" |
||||
- "git-core" |
||||
- "zip" |
||||
- "faketime" |
||||
- "wine" |
||||
- "psmisc" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "openssl-1.0.1c.tar.gz" |
||||
- "db-4.8.30.NC.tar.gz" |
||||
- "miniupnpc-1.6.tar.gz" |
||||
- "zlib-1.2.6.tar.gz" |
||||
- "libpng-1.5.9.tar.gz" |
||||
- "qrencode-3.2.0.tar.bz2" |
||||
script: | |
||||
# |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
# |
||||
tar xzf openssl-1.0.1c.tar.gz |
||||
cd openssl-1.0.1c |
||||
./Configure --cross-compile-prefix=i586-mingw32msvc- mingw |
||||
make |
||||
cd .. |
||||
# |
||||
tar xzf db-4.8.30.NC.tar.gz |
||||
cd db-4.8.30.NC/build_unix |
||||
../dist/configure --enable-mingw --enable-cxx --host=i586-mingw32msvc CFLAGS="-I/usr/i586-mingw32msvc/include" |
||||
make $MAKEOPTS |
||||
cd ../.. |
||||
# |
||||
tar xzf miniupnpc-1.6.tar.gz |
||||
cd miniupnpc-1.6 |
||||
sed 's/dllwrap -k --driver-name gcc/$(DLLWRAP) -k --driver-name $(CC)/' -i Makefile.mingw |
||||
sed 's|wingenminiupnpcstrings $< $@|./wingenminiupnpcstrings $< $@|' -i Makefile.mingw |
||||
make -f Makefile.mingw DLLWRAP=i586-mingw32msvc-dllwrap CC=i586-mingw32msvc-gcc AR=i586-mingw32msvc-ar |
||||
cd .. |
||||
mv miniupnpc-1.6 miniupnpc |
||||
# |
||||
tar xzf zlib-1.2.6.tar.gz |
||||
cd zlib-1.2.6 |
||||
make -f win32/Makefile.gcc PREFIX=i586-mingw32msvc- $MAKEOPTS |
||||
cd .. |
||||
# |
||||
tar xzf libpng-1.5.9.tar.gz |
||||
cd libpng-1.5.9 |
||||
./configure -disable-shared CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld LDFLAGS="-L../zlib-1.2.6/" CFLAGS="-I../zlib-1.2.6/" |
||||
make $MAKEOPTS |
||||
cd .. |
||||
# |
||||
tar xjf qrencode-3.2.0.tar.bz2 |
||||
cd qrencode-3.2.0 |
||||
./configure CC=i586-mingw32msvc-cc AR=i586-mingw32msvc-ar STRIP=i586-mingw32msvc-strip RANLIB=i586-mingw32msvc-ranlib OBJDUMP=i586-mingw32msvc-objdump LD=i586-mingw32msvc-ld png_LIBS="../libpng-1.5.9/.libs/libpng15.a ../zlib-1.2.6/libz.a" png_CFLAGS="-I../libpng-1.5.9" |
||||
make $MAKEOPTS |
||||
cd .. |
||||
# |
||||
zip -r $OUTDIR/bitcoin-deps-0.0.5.zip \ |
||||
$(ls qrencode-*/{qrencode.h,.libs/libqrencode.{,l}a} | sort) \ |
||||
$(ls db-*/build_unix/{libdb_cxx.a,db.h,db_cxx.h,libdb.a,.libs/libdb_cxx-?.?.a} | sort) \ |
||||
$(find openssl-* -name '*.a' -o -name '*.h' | sort) \ |
||||
$(find miniupnpc -name '*.h' -o -name 'libminiupnpc.a' | sort) |
||||
# Kill wine processes as gitian won't figure out we are done otherwise |
||||
killall wineserver services.exe explorer.exe winedevice.exe |
@ -0,0 +1,77 @@
@@ -0,0 +1,77 @@
|
||||
--- |
||||
name: "twister" |
||||
suites: |
||||
- "precise" |
||||
architectures: |
||||
- "amd64" |
||||
packages: |
||||
- "mingw-w64" |
||||
- "g++-mingw-w64" |
||||
- "git-core" |
||||
- "unzip" |
||||
- "zip" |
||||
- "nsis" |
||||
- "faketime" |
||||
- "autoconf2.13" |
||||
- "libtool" |
||||
- "automake" |
||||
- "pkg-config" |
||||
- "bsdmainutils" |
||||
|
||||
reference_datetime: "2013-06-01 00:00:00" |
||||
remotes: |
||||
- "url": "https://github.com/miguelfreitas/twister-core.git" |
||||
"dir": "twister-core" |
||||
files: |
||||
- "boost-win32-1.55.0-gitian-r6.zip" |
||||
- "boost-win64-1.55.0-gitian-r6.zip" |
||||
- "twister-deps-win32-gitian-r13.zip" |
||||
- "twister-deps-win64-gitian-r13.zip" |
||||
script: | |
||||
# Defines |
||||
export TZ=UTC |
||||
INDIR=$HOME/build |
||||
OPTFLAGS='-O2' |
||||
TEMPDIR="$HOME/tempdir" |
||||
for BITS in 32 64; do # for architectures |
||||
# |
||||
STAGING=$HOME/staging${BITS} |
||||
BUILDDIR=$HOME/build${BITS} |
||||
BINDIR=$OUTDIR/$BITS |
||||
if [ "$BITS" == "32" ]; then |
||||
HOST=i686-w64-mingw32 |
||||
else |
||||
HOST=x86_64-w64-mingw32 |
||||
fi |
||||
export PATH=$STAGING/host/bin:$PATH |
||||
mkdir -p $STAGING $BUILDDIR $BINDIR |
||||
# |
||||
cd $STAGING |
||||
unzip $INDIR/boost-win${BITS}-1.55.0-gitian-r6.zip |
||||
unzip $INDIR/twister-deps-win${BITS}-gitian-r13.zip |
||||
# Build platform-dependent executables from source archive |
||||
cd $BUILDDIR |
||||
rm -rf distsrc |
||||
cp -a $HOME/build/twister-core distsrc |
||||
mkdir -p distsrc |
||||
cd distsrc |
||||
./bootstrap.sh --bindir=$BINDIR --prefix=$STAGING --host=$HOST --with-boost=$STAGING --with-openssl=$STAGING CPPFLAGS=-I$STAGING/include LDFLAGS=-L$STAGING/lib --without-boost-locale |
||||
#export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
#export FAKETIME=$REFERENCE_DATETIME |
||||
make $MAKEOPTS |
||||
strip .libs/twisterd.exe |
||||
cp -f .libs/twisterd.exe $BINDIR/ |
||||
unset LD_PRELOAD |
||||
unset FAKETIME |
||||
done # for BITS in |
||||
|
||||
# sort distribution tar file and normalize user/group/mtime information for deterministic output |
||||
mkdir -p $OUTDIR/src |
||||
rm -rf $TEMPDIR |
||||
mkdir -p $TEMPDIR |
||||
cd $TEMPDIR |
||||
#tar -xvf $HOME/build/twister/$DISTNAME | sort | tar --no-recursion -cT /dev/stdin --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 mtime="$REFERENCE_DATETIME" | gzip -n > $OUTDIR/src/$DISTNAME |
||||
cd $OUTDIR |
||||
find $OUTDIR | sort | zip -X@ /home/ubuntu/out/twister-win-gitian.zip |
||||
|
||||
|
@ -1,74 +0,0 @@
@@ -1,74 +0,0 @@
|
||||
--- |
||||
name: "bitcoin" |
||||
suites: |
||||
- "lucid" |
||||
architectures: |
||||
- "i386" |
||||
packages: |
||||
- "mingw32" |
||||
- "git-core" |
||||
- "unzip" |
||||
- "nsis" |
||||
- "faketime" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: |
||||
- "url": "https://github.com/bitcoin/bitcoin.git" |
||||
"dir": "bitcoin" |
||||
files: |
||||
- "qt-win32-4.8.3-gitian-r1.zip" |
||||
- "boost-win32-1.50.0-gitian2.zip" |
||||
- "bitcoin-deps-0.0.5.zip" |
||||
script: | |
||||
# |
||||
mkdir $HOME/qt |
||||
cd $HOME/qt |
||||
unzip ../build/qt-win32-4.8.3-gitian-r1.zip |
||||
cd $HOME/build/ |
||||
export PATH=$HOME/qt/bin/:$PATH |
||||
# |
||||
mkdir boost_1_50_0 |
||||
cd boost_1_50_0 |
||||
mkdir -p stage/lib |
||||
unzip ../boost-win32-1.50.0-gitian2.zip |
||||
cd bin/$GBUILD_BITS |
||||
for lib in *; do |
||||
i586-mingw32msvc-ar rc ../../stage/lib/libboost_${lib}-mt-s.a $lib/*.o |
||||
i586-mingw32msvc-ranlib ../../stage/lib/libboost_${lib}-mt-s.a |
||||
done |
||||
cd ../.. |
||||
mv include/boost . |
||||
cd .. |
||||
# |
||||
unzip bitcoin-deps-0.0.5.zip |
||||
# |
||||
find -type f | xargs touch --date="$REFERENCE_DATETIME" |
||||
# |
||||
cd bitcoin |
||||
mkdir -p $OUTDIR/src |
||||
git archive HEAD | tar -x -C $OUTDIR/src |
||||
cp $OUTDIR/src/doc/README_windows.txt $OUTDIR/readme.txt |
||||
cp $OUTDIR/src/COPYING $OUTDIR/COPYING.txt |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
$HOME/qt/src/bin/qmake -spec unsupported/win32-g++-cross MINIUPNPC_LIB_PATH=$HOME/build/miniupnpc MINIUPNPC_INCLUDE_PATH=$HOME/build/ BDB_LIB_PATH=$HOME/build/db-4.8.30.NC/build_unix BDB_INCLUDE_PATH=$HOME/build/db-4.8.30.NC/build_unix BOOST_LIB_PATH=$HOME/build/boost_1_50_0/stage/lib BOOST_INCLUDE_PATH=$HOME/build/boost_1_50_0 BOOST_LIB_SUFFIX=-mt-s BOOST_THREAD_LIB_SUFFIX=_win32-mt-s OPENSSL_LIB_PATH=$HOME/build/openssl-1.0.1c OPENSSL_INCLUDE_PATH=$HOME/build/openssl-1.0.1c/include QRENCODE_LIB_PATH=$HOME/build/qrencode-3.2.0/.libs QRENCODE_INCLUDE_PATH=$HOME/build/qrencode-3.2.0 USE_QRCODE=1 INCLUDEPATH=$HOME/build DEFINES=BOOST_THREAD_USE_LIB BITCOIN_NEED_QT_PLUGINS=1 QMAKE_LRELEASE=lrelease QMAKE_CXXFLAGS=-frandom-seed=bitcoin USE_BUILD_INFO=1 |
||||
make $MAKEOPTS |
||||
cp release/bitcoin-qt.exe $OUTDIR/ |
||||
# |
||||
cd src |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
make -f makefile.linux-mingw $MAKEOPTS DEPSDIR=$HOME/build bitcoind.exe USE_UPNP=0 DEBUGFLAGS="-frandom-seed=bitcoin" |
||||
i586-mingw32msvc-strip bitcoind.exe |
||||
mkdir $OUTDIR/daemon |
||||
cp bitcoind.exe $OUTDIR/daemon |
||||
cd .. |
||||
mkdir nsis |
||||
git archive HEAD | tar -x -C nsis |
||||
cd nsis/src |
||||
mkdir ../release |
||||
cp ../../release/* ../release/ |
||||
cp ../../src/*.exe . |
||||
makensis ../share/setup.nsi |
||||
cp ../share/bitcoin-*-win32-setup.exe $OUTDIR/ |
@ -1,55 +0,0 @@
@@ -1,55 +0,0 @@
|
||||
--- |
||||
name: "bitcoin" |
||||
suites: |
||||
- "lucid" |
||||
architectures: |
||||
- "i386" |
||||
- "amd64" |
||||
packages: |
||||
- "libdb4.8++-dev" |
||||
- "qt4-qmake" |
||||
- "libqt4-dev" |
||||
- "libboost-system-dev" |
||||
- "libboost-filesystem-dev" |
||||
- "libboost-program-options-dev" |
||||
- "libboost-thread-dev" |
||||
- "libssl-dev" |
||||
- "git-core" |
||||
- "unzip" |
||||
- "pkg-config" |
||||
- "libpng12-dev" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: |
||||
- "url": "https://github.com/bitcoin/bitcoin.git" |
||||
"dir": "bitcoin" |
||||
files: |
||||
- "miniupnpc-1.6.tar.gz" |
||||
- "qrencode-3.2.0.tar.bz2" |
||||
script: | |
||||
INSTDIR="$HOME/install" |
||||
export LIBRARY_PATH="$INSTDIR/lib" |
||||
# |
||||
tar xzf miniupnpc-1.6.tar.gz |
||||
cd miniupnpc-1.6 |
||||
INSTALLPREFIX=$INSTDIR make $MAKEOPTS install |
||||
cd .. |
||||
# |
||||
tar xjf qrencode-3.2.0.tar.bz2 |
||||
cd qrencode-3.2.0 |
||||
./configure --prefix=$INSTDIR --enable-static --disable-shared |
||||
make $MAKEOPTS install |
||||
cd .. |
||||
# |
||||
cd bitcoin |
||||
mkdir -p $OUTDIR/src |
||||
git archive HEAD | tar -x -C $OUTDIR/src |
||||
cp $OUTDIR/src/doc/README.md $OUTDIR |
||||
cp $OUTDIR/src/COPYING $OUTDIR |
||||
cd src |
||||
make -f makefile.unix STATIC=1 OPENSSL_INCLUDE_PATH="$INSTDIR/include" OPENSSL_LIB_PATH="$INSTDIR/lib" $MAKEOPTS bitcoind USE_UPNP=0 DEBUGFLAGS= |
||||
mkdir -p $OUTDIR/bin/$GBUILD_BITS |
||||
install -s bitcoind $OUTDIR/bin/$GBUILD_BITS |
||||
cd .. |
||||
qmake INCLUDEPATH="$INSTDIR/include" LIBS="-L$INSTDIR/lib" RELEASE=1 USE_QRCODE=1 |
||||
make $MAKEOPTS |
||||
install bitcoin-qt $OUTDIR/bin/$GBUILD_BITS |
@ -1,54 +0,0 @@
@@ -1,54 +0,0 @@
|
||||
--- |
||||
name: "qt" |
||||
suites: |
||||
- "lucid" |
||||
architectures: |
||||
- "i386" |
||||
packages: |
||||
- "mingw32" |
||||
- "zip" |
||||
- "faketime" |
||||
reference_datetime: "2011-01-30 00:00:00" |
||||
remotes: [] |
||||
files: |
||||
- "qt-everywhere-opensource-src-4.8.3.tar.gz" |
||||
script: | |
||||
INSTDIR="$HOME/qt/" |
||||
mkdir $INSTDIR |
||||
SRCDIR="$INSTDIR/src/" |
||||
mkdir $SRCDIR |
||||
# |
||||
tar xzf qt-everywhere-opensource-src-4.8.3.tar.gz |
||||
cd qt-everywhere-opensource-src-4.8.3 |
||||
sed 's/$TODAY/2011-01-30/' -i configure |
||||
sed 's/i686-pc-mingw32-/i586-mingw32msvc-/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
sed --posix 's|QMAKE_CFLAGS\t\t= -pipe|QMAKE_CFLAGS\t\t= -pipe -isystem /usr/i586-mingw32msvc/include/ -frandom-seed=qtbuild|' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
sed 's/QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads/QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
sed 's/QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads/QMAKE_LFLAGS_EXCEPTIONS_ON = -lmingwthrd/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
sed --posix 's/QMAKE_MOC\t\t= i586-mingw32msvc-moc/QMAKE_MOC\t\t= moc/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
sed --posix 's/QMAKE_RCC\t\t= i586-mingw32msvc-rcc/QMAKE_RCC\t\t= rcc/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
sed --posix 's/QMAKE_UIC\t\t= i586-mingw32msvc-uic/QMAKE_UIC\t\t= uic/' -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
# ar adds timestamps to every object file included in the static library |
||||
# providing -D as ar argument is supposed to solve it, but doesn't work as qmake strips off the arguments and adds -M to pass a script... |
||||
# which somehow cannot be combined with other flags. |
||||
# use faketime only for ar, as it confuses make/qmake into hanging sometimes |
||||
sed --posix "s|QMAKE_LIB\t\t= i586-mingw32msvc-ar -ru|QMAKE_LIB\t\t= $HOME/ar -Dr|" -i mkspecs/unsupported/win32-g++-cross/qmake.conf |
||||
echo '#!/bin/bash' > $HOME/ar |
||||
echo 'export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1' >> $HOME/ar |
||||
echo 'i586-mingw32msvc-ar "$@"' >> $HOME/ar |
||||
chmod +x $HOME/ar |
||||
#export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
export FAKETIME=$REFERENCE_DATETIME |
||||
export TZ=UTC |
||||
./configure -prefix $INSTDIR -confirm-license -release -opensource -static -no-qt3support -xplatform unsupported/win32-g++-cross -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend -no-declarative -no-script -no-scripttools -no-javascript-jit -no-webkit -no-svg -no-xmlpatterns -no-sql-sqlite -no-nis -no-cups -no-iconv -no-dbus -no-gif -no-libtiff -no-opengl -nomake examples -nomake demos -nomake docs -no-feature-style-plastique -no-feature-style-cleanlooks -no-feature-style-motif -no-feature-style-cde -no-feature-style-windowsce -no-feature-style-windowsmobile -no-feature-style-s60 |
||||
find . -name *.prl | xargs -l sed 's|/\.||' -i |
||||
find . -name *.prl | xargs -l sed 's|/$||' -i |
||||
make $MAKEOPTS install |
||||
cp -a bin $SRCDIR/ |
||||
cd $INSTDIR |
||||
find . -name *.prl | xargs -l sed 's|/$||' -i |
||||
#sed 's|QMAKE_PRL_LIBS.*|QMAKE_PRL_LIBS = -lQtDeclarative -lQtScript -lQtSvg -lQtSql -lQtXmlPatterns -lQtGui -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtNetwork -lQtCore -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32|' -i imports/Qt/labs/particles/qmlparticlesplugin.prl |
||||
|
||||
# as zip stores file timestamps, use faketime to intercept stat calls to set dates for all files to reference date |
||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
||||
zip -r $OUTDIR/qt-win32-4.8.3-gitian-r1.zip * |
@ -0,0 +1,110 @@
@@ -0,0 +1,110 @@
|
||||
Release Process |
||||
==================== |
||||
|
||||
* update translations (ping wumpus, Diapolo or tcatm on IRC) |
||||
* see https://github.com/bitcoin/bitcoin/blob/master/doc/translation_process.md#syncing-with-transifex |
||||
|
||||
* * * |
||||
|
||||
###update (commit) version in sources |
||||
|
||||
doc/README* |
||||
src/clientversion.h (change CLIENT_VERSION_IS_RELEASE to true) |
||||
|
||||
###tag version in git |
||||
|
||||
git tag -s v(new version, e.g. 0.8.0) |
||||
|
||||
###write release notes. git shortlog helps a lot, for example: |
||||
|
||||
git shortlog --no-merges v(current version, e.g. 0.7.2)..v(new version, e.g. 0.8.0) |
||||
|
||||
* * * |
||||
|
||||
###perform gitian builds |
||||
|
||||
From a directory containing the twister source, gitian-builder and gitian.sigs |
||||
|
||||
# export SIGNER=(your gitian key, ie bluematt, sipa, etc) |
||||
export VERSION=(new version, e.g. 0.8.0) |
||||
pushd ./twister-core |
||||
git checkout v${VERSION} |
||||
popd |
||||
pushd ./gitian-builder |
||||
|
||||
###fetch and build inputs: (first time, or when dependency versions change) |
||||
|
||||
mkdir -p inputs; cd inputs/ |
||||
|
||||
Register and download the Apple SDK: (see OSX Readme for details) |
||||
|
||||
https://developer.apple.com/downloads/download.action?path=Developer_Tools/xcode_4.6.3/xcode4630916281a.dmg |
||||
|
||||
Using a Mac, create a tarball for the 10.7 SDK and copy it to the inputs directory: |
||||
|
||||
tar -C /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ -czf MacOSX10.7.sdk.tar.gz MacOSX10.7.sdk |
||||
|
||||
Download remaining inputs, and build everything: |
||||
|
||||
wget 'https://www.openssl.org/source/openssl-1.0.1h.tar.gz' |
||||
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' |
||||
wget 'http://zlib.net/zlib-1.2.8.tar.gz' |
||||
wget 'https://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.bz2' |
||||
wget 'https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch' -O boost-mingw-gas-cross-compile-2013-03-03.patch |
||||
wget 'https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2' |
||||
wget 'https://github.com/mingwandroid/toolchain4/archive/10cc648683617cca8bcbeae507888099b41b530c.tar.gz' |
||||
wget 'http://www.opensource.apple.com/tarballs/cctools/cctools-809.tar.gz' |
||||
wget 'http://www.opensource.apple.com/tarballs/dyld/dyld-195.5.tar.gz' |
||||
wget 'http://www.opensource.apple.com/tarballs/ld64/ld64-127.2.tar.gz' |
||||
wget 'https://github.com/theuni/libdmg-hfsplus/archive/libdmg-hfsplus-v0.1.tar.gz' |
||||
wget 'http://llvm.org/releases/3.2/clang+llvm-3.2-x86-linux-ubuntu-12.04.tar.gz' -O clang-llvm-3.2-x86-linux-ubuntu-12.04.tar.gz |
||||
cd .. |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/boost-linux.yml |
||||
mv build/out/boost-*.zip inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/deps-linux.yml |
||||
mv build/out/twister-deps-*.zip inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/boost-win.yml |
||||
mv build/out/boost-*.zip inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/deps-win.yml |
||||
mv build/out/twister-deps-*.zip inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/protobuf-win.yml |
||||
mv build/out/protobuf-*.zip inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/gitian-osx-native.yml |
||||
mv build/out/osx-*.tar.gz inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/gitian-osx-depends.yml |
||||
mv build/out/osx-*.tar.gz inputs/ |
||||
./bin/gbuild ../twister-core/contrib/gitian-descriptors/gitian-osx-qt.yml |
||||
mv build/out/osx-*.tar.gz inputs/ |
||||
|
||||
The expected SHA256 hashes of the intermediate inputs are: |
||||
|
||||
f29b7d9577417333fb56e023c2977f5726a7c297f320b175a4108cf7cd4c2d29 boost-linux32-1.55.0-gitian-r1.zip |
||||
88232451c4104f7eb16e469ac6474fd1231bd485687253f7b2bdf46c0781d535 boost-linux64-1.55.0-gitian-r1.zip |
||||
60dc2d3b61e9c7d5dbe2f90d5955772ad748a47918ff2d8b74e8db9b1b91c909 boost-win32-1.55.0-gitian-r6.zip |
||||
f65fcaf346bc7b73bc8db3a8614f4f6bee2f61fcbe495e9881133a7c2612a167 boost-win64-1.55.0-gitian-r6.zip |
||||
e2e403e1a08869c7eed4d4293bce13d51ec6a63592918b90ae215a0eceb44cb4 protobuf-win32-2.5.0-gitian-r4.zip |
||||
a0999037e8b0ef9ade13efd88fee261ba401f5ca910068b7e0cd3262ba667db0 protobuf-win64-2.5.0-gitian-r4.zip |
||||
|
||||
|
||||
Build twister-core for Linux, Windows, and OS X: |
||||
|
||||
# ./bin/gbuild --commit twister-core=v${VERSION} ../twister-core/contrib/gitian-descriptors/gitian-win.yml |
||||
./bin/gbuild --commit twister-core=HEAD ../twister-core/contrib/gitian-descriptors/gitian-win.yml |
||||
# ./bin/gsign --signer $SIGNER --release ${VERSION}-win --destination ../gitian.sigs/ ../bitcoin/contrib/gitian-descriptors/gitian-win.yml |
||||
pushd build/out |
||||
zip -r bitcoin-${VERSION}-win-gitian.zip * |
||||
mv bitcoin-${VERSION}-win-gitian.zip ../../../ |
||||
popd |
||||
|
||||
Build output expected: |
||||
|
||||
# 1. linux 32-bit and 64-bit binaries + source (bitcoin-${VERSION}-linux-gitian.zip) |
||||
2. windows 32-bit and 64-bit binaries + installer + source (bitcoin-${VERSION}-win-gitian.zip) |
||||
# 3. OSX installer (Bitcoin-Qt.dmg) |
||||
# 4. Gitian signatures (in gitian.sigs/${VERSION}-<linux|win|osx>/(your gitian key)/ |
||||
|
||||
repackage gitian builds for release as stand-alone zip/tar/installer exe |
||||
|
||||
###Next steps: |
||||
|
||||
|
Loading…
Reference in new issue