Skip to content

Commit 4b4b578

Browse files
committed
Merge pull request #3536
0425715 gitian: add explicit dependency build for linux (Wladimir J. van der Laan) 279af1a build: use Ubuntu 12.04 for linux gitian build (Wladimir J. van der Laan)
2 parents 8c31f03 + 0425715 commit 4b4b578

File tree

3 files changed

+76
-30
lines changed

3 files changed

+76
-30
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
name: "bitcoin"
3+
suites:
4+
- "precise"
5+
architectures:
6+
- "i386"
7+
- "amd64"
8+
packages:
9+
- "unzip"
10+
- "pkg-config"
11+
- "libtool"
12+
- "faketime"
13+
- "bsdmainutils"
14+
reference_datetime: "2013-06-01 00:00:00"
15+
remotes: []
16+
files:
17+
- "miniupnpc-1.8.tar.gz"
18+
- "qrencode-3.4.3.tar.bz2"
19+
- "protobuf-2.5.0.tar.bz2"
20+
- "db-4.8.30.NC.tar.gz"
21+
script: |
22+
STAGING="$HOME/install"
23+
OPTFLAGS='-O2'
24+
export LIBRARY_PATH="$STAGING/lib"
25+
# Integrity Check
26+
echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
27+
echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
28+
echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
29+
echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
30+
31+
tar xzfm miniupnpc-1.8.tar.gz
32+
cd miniupnpc-1.8
33+
# miniupnpc is always built with -fPIC
34+
INSTALLPREFIX=$STAGING make $MAKEOPTS install
35+
rm -f $STAGING/lib/libminiupnpc.so* # no way to skip shared lib build
36+
cd ..
37+
#
38+
tar xjfm qrencode-3.4.3.tar.bz2
39+
cd qrencode-3.4.3
40+
# need --with-pic to avoid relocation error in 64 bit builds
41+
./configure --prefix=$STAGING --enable-static --disable-shared -with-pic --without-tools
42+
make $MAKEOPTS install
43+
cd ..
44+
#
45+
tar xjfm protobuf-2.5.0.tar.bz2
46+
cd protobuf-2.5.0
47+
mkdir -p $STAGING/host/bin
48+
# need --with-pic to avoid relocation error in 64 bit builds
49+
./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic
50+
make $MAKEOPTS install
51+
cd ..
52+
#
53+
tar xzf db-4.8.30.NC.tar.gz
54+
cd db-4.8.30.NC/build_unix
55+
# need --with-pic to avoid relocation error in 64 bit builds
56+
../dist/configure --prefix=$STAGING --enable-cxx --disable-shared --with-pic
57+
make $MAKEOPTS library_build
58+
make install_lib install_include
59+
cd ../..
60+
#
61+
cd $STAGING
62+
tar -czf $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.tar.gz include lib bin host

contrib/gitian-descriptors/gitian.yml

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
---
22
name: "bitcoin"
33
suites:
4-
- "lucid"
4+
- "precise"
55
architectures:
66
- "i386"
77
- "amd64"
88
packages:
9-
- "libdb4.8++-dev"
109
- "qt4-qmake"
1110
- "libqt4-dev"
1211
- "libboost-system-dev"
@@ -18,7 +17,6 @@ packages:
1817
- "git-core"
1918
- "unzip"
2019
- "pkg-config"
21-
- "libpng12-dev"
2220
- "autoconf2.13"
2321
- "libtool"
2422
- "automake"
@@ -29,45 +27,29 @@ remotes:
2927
- "url": "https://github.com/bitcoin/bitcoin.git"
3028
"dir": "bitcoin"
3129
files:
32-
- "miniupnpc-1.6.tar.gz"
33-
- "qrencode-3.2.0.tar.bz2"
34-
- "protobuf-2.5.0.tar.bz2"
30+
- "bitcoin-deps-linux32-gitian-r1.tar.gz"
31+
- "bitcoin-deps-linux64-gitian-r1.tar.gz"
3532
script: |
3633
STAGING="$HOME/install"
34+
OPTFLAGS='-O2'
35+
BINDIR="${OUTDIR}/bin/${GBUILD_BITS}" # 32/64 bit build specific output directory
3736
export LIBRARY_PATH="$STAGING/lib"
38-
# Integrity Check
39-
echo "bbd6b756e6af44b5a5b0f9b93eada3fb8922ed1d6451b7d6f184d0ae0c813994 miniupnpc-1.6.tar.gz" | sha256sum -c
40-
echo "03c4bc7cd9a75747c3815d509bbe061907d615764f2357923f0db948c567068f qrencode-3.2.0.tar.bz2" | sha256sum -c
41-
echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
42-
43-
tar xzfm miniupnpc-1.6.tar.gz
44-
cd miniupnpc-1.6
45-
INSTALLPREFIX=$STAGING make $MAKEOPTS install
46-
cd ..
37+
mkdir -p ${BINDIR}
4738
#
48-
tar xjfm qrencode-3.2.0.tar.bz2
49-
cd qrencode-3.2.0
50-
sed -i 's/@LIBPTHREAD@//' libqrencode.pc.in
51-
./configure --prefix=$STAGING --enable-static --disable-shared
52-
make $MAKEOPTS install
53-
cd ..
54-
#
55-
tar xjfm protobuf-2.5.0.tar.bz2
56-
cd protobuf-2.5.0
57-
mkdir -p $STAGING/host/bin
58-
./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared
59-
make $MAKEOPTS install
60-
cd ..
39+
mkdir -p $STAGING
40+
cd $STAGING
41+
tar xzfm ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.tar.gz
42+
cd ../build
6143
#
6244
cd bitcoin
6345
export TAR_OPTIONS=--mtime=`echo $REFERENCE_DATETIME | awk '{ print $1 }'`
6446
./autogen.sh
65-
./configure --prefix=$STAGING --bindir=$OUTDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include" LDFLAGS="-L$STAGING/lib" CXXFLAGS="-frandom-seed=bitcoin"
47+
./configure --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}"
6648
make dist
6749
mkdir -p distsrc
6850
cd distsrc
6951
tar --strip-components=1 -xf ../bitcoin-*.tar.*
70-
./configure --prefix=$STAGING --bindir=$OUTDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include" LDFLAGS="-L$STAGING/lib" CXXFLAGS="-frandom-seed=bitcoin"
52+
./configure --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}"
7153
make $MAKEOPTS
7254
make $MAKEOPTS install-strip
7355
mkdir -p $OUTDIR/src

doc/release-process.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ Release Process
5151
wget 'https://download.qt-project.org/official_releases/qt/5.2/5.2.0/single/qt-everywhere-opensource-src-5.2.0.tar.gz'
5252
wget 'https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
5353
cd ..
54+
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-linux.yml
55+
mv build/out/*.tar.gz inputs/
5456
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
5557
mv build/out/boost-win32-*.zip inputs/
5658
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml

0 commit comments

Comments
 (0)