Skip to content

Commit 0425715

Browse files
committed
gitian: add explicit dependency build for linux
Create a dependency file per architecture: - bitcoin-deps-linux32-gitian-r1.tar.gz - bitcoin-deps-linux64-gitian-r1.tar.gz
1 parent 279af1a commit 0425715

File tree

3 files changed

+74
-38
lines changed

3 files changed

+74
-38
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: 10 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ packages:
1717
- "git-core"
1818
- "unzip"
1919
- "pkg-config"
20-
- "libpng12-dev"
2120
- "autoconf2.13"
2221
- "libtool"
2322
- "automake"
@@ -28,56 +27,29 @@ remotes:
2827
- "url": "https://github.com/bitcoin/bitcoin.git"
2928
"dir": "bitcoin"
3029
files:
31-
- "miniupnpc-1.8.tar.gz"
32-
- "qrencode-3.4.3.tar.bz2"
33-
- "protobuf-2.5.0.tar.bz2"
34-
- "db-4.8.30.NC.tar.gz"
30+
- "bitcoin-deps-linux32-gitian-r1.tar.gz"
31+
- "bitcoin-deps-linux64-gitian-r1.tar.gz"
3532
script: |
3633
STAGING="$HOME/install"
3734
OPTFLAGS='-O2'
35+
BINDIR="${OUTDIR}/bin/${GBUILD_BITS}" # 32/64 bit build specific output directory
3836
export LIBRARY_PATH="$STAGING/lib"
39-
# Integrity Check
40-
echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
41-
echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
42-
echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
43-
echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
44-
45-
tar xzfm miniupnpc-1.8.tar.gz
46-
cd miniupnpc-1.8
47-
INSTALLPREFIX=$STAGING make $MAKEOPTS install
48-
cd ..
37+
mkdir -p ${BINDIR}
4938
#
50-
tar xjfm qrencode-3.4.3.tar.bz2
51-
cd qrencode-3.4.3
52-
sed -i 's/@LIBPTHREAD@//' libqrencode.pc.in
53-
# need --with-pic to avoid relocation error in 64 bit builds
54-
./configure --prefix=$STAGING --enable-static --disable-shared --with-pic
55-
make $MAKEOPTS install
56-
cd ..
57-
#
58-
tar xjfm protobuf-2.5.0.tar.bz2
59-
cd protobuf-2.5.0
60-
mkdir -p $STAGING/host/bin
61-
./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic
62-
make $MAKEOPTS install
63-
cd ..
64-
#
65-
tar xzf db-4.8.30.NC.tar.gz
66-
cd db-4.8.30.NC/build_unix
67-
../dist/configure --prefix=$STAGING --enable-cxx --disable-shared --with-pic
68-
make $MAKEOPTS library_build
69-
make install_lib install_include
70-
cd ../..
39+
mkdir -p $STAGING
40+
cd $STAGING
41+
tar xzfm ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.tar.gz
42+
cd ../build
7143
#
7244
cd bitcoin
7345
export TAR_OPTIONS=--mtime=`echo $REFERENCE_DATETIME | awk '{ print $1 }'`
7446
./autogen.sh
75-
./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 ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}"
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}"
7648
make dist
7749
mkdir -p distsrc
7850
cd distsrc
7951
tar --strip-components=1 -xf ../bitcoin-*.tar.*
80-
./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 ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}"
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}"
8153
make $MAKEOPTS
8254
make $MAKEOPTS install-strip
8355
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/archive/qt/4.8/4.8.3/qt-everywhere-opensource-src-4.8.3.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)