aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2014-01-15 10:12:24 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2014-01-15 12:39:01 +0100
commit04257151b14da2a7dbfce8fd6f8d5d5835169ea1 (patch)
tree1cb4d9979479db0604d58af60cf2dc2334ec8c95
parent279af1a2af7ea044845da3bbf1a72660f7e520dd (diff)
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
-rw-r--r--contrib/gitian-descriptors/deps-linux.yml62
-rw-r--r--contrib/gitian-descriptors/gitian.yml48
-rw-r--r--doc/release-process.md2
3 files changed, 74 insertions, 38 deletions
diff --git a/contrib/gitian-descriptors/deps-linux.yml b/contrib/gitian-descriptors/deps-linux.yml
new file mode 100644
index 0000000000..48f2be2d65
--- /dev/null
+++ b/contrib/gitian-descriptors/deps-linux.yml
@@ -0,0 +1,62 @@
+---
+name: "bitcoin"
+suites:
+- "precise"
+architectures:
+- "i386"
+- "amd64"
+packages:
+- "unzip"
+- "pkg-config"
+- "libtool"
+- "faketime"
+- "bsdmainutils"
+reference_datetime: "2013-06-01 00:00:00"
+remotes: []
+files:
+- "miniupnpc-1.8.tar.gz"
+- "qrencode-3.4.3.tar.bz2"
+- "protobuf-2.5.0.tar.bz2"
+- "db-4.8.30.NC.tar.gz"
+script: |
+ STAGING="$HOME/install"
+ OPTFLAGS='-O2'
+ export LIBRARY_PATH="$STAGING/lib"
+ # Integrity Check
+ echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
+ echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
+ echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
+ echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
+
+ tar xzfm miniupnpc-1.8.tar.gz
+ cd miniupnpc-1.8
+ # miniupnpc is always built with -fPIC
+ INSTALLPREFIX=$STAGING make $MAKEOPTS install
+ rm -f $STAGING/lib/libminiupnpc.so* # no way to skip shared lib build
+ cd ..
+ #
+ tar xjfm qrencode-3.4.3.tar.bz2
+ cd qrencode-3.4.3
+ # need --with-pic to avoid relocation error in 64 bit builds
+ ./configure --prefix=$STAGING --enable-static --disable-shared -with-pic --without-tools
+ make $MAKEOPTS install
+ cd ..
+ #
+ tar xjfm protobuf-2.5.0.tar.bz2
+ cd protobuf-2.5.0
+ mkdir -p $STAGING/host/bin
+ # need --with-pic to avoid relocation error in 64 bit builds
+ ./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic
+ make $MAKEOPTS install
+ 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
+ make $MAKEOPTS library_build
+ make install_lib install_include
+ cd ../..
+ #
+ cd $STAGING
+ tar -czf $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.tar.gz include lib bin host
diff --git a/contrib/gitian-descriptors/gitian.yml b/contrib/gitian-descriptors/gitian.yml
index 212c6c68b5..7ba375f5e4 100644
--- a/contrib/gitian-descriptors/gitian.yml
+++ b/contrib/gitian-descriptors/gitian.yml
@@ -17,7 +17,6 @@ packages:
- "git-core"
- "unzip"
- "pkg-config"
-- "libpng12-dev"
- "autoconf2.13"
- "libtool"
- "automake"
@@ -28,56 +27,29 @@ remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
-- "miniupnpc-1.8.tar.gz"
-- "qrencode-3.4.3.tar.bz2"
-- "protobuf-2.5.0.tar.bz2"
-- "db-4.8.30.NC.tar.gz"
+- "bitcoin-deps-linux32-gitian-r1.tar.gz"
+- "bitcoin-deps-linux64-gitian-r1.tar.gz"
script: |
STAGING="$HOME/install"
OPTFLAGS='-O2'
+ BINDIR="${OUTDIR}/bin/${GBUILD_BITS}" # 32/64 bit build specific output directory
export LIBRARY_PATH="$STAGING/lib"
- # Integrity Check
- echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c
- echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c
- echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
- echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c
-
- tar xzfm miniupnpc-1.8.tar.gz
- cd miniupnpc-1.8
- INSTALLPREFIX=$STAGING make $MAKEOPTS install
- cd ..
+ mkdir -p ${BINDIR}
#
- tar xjfm qrencode-3.4.3.tar.bz2
- cd qrencode-3.4.3
- sed -i 's/@LIBPTHREAD@//' libqrencode.pc.in
- # need --with-pic to avoid relocation error in 64 bit builds
- ./configure --prefix=$STAGING --enable-static --disable-shared --with-pic
- make $MAKEOPTS install
- cd ..
- #
- tar xjfm protobuf-2.5.0.tar.bz2
- cd protobuf-2.5.0
- mkdir -p $STAGING/host/bin
- ./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic
- make $MAKEOPTS install
- cd ..
- #
- tar xzf db-4.8.30.NC.tar.gz
- cd db-4.8.30.NC/build_unix
- ../dist/configure --prefix=$STAGING --enable-cxx --disable-shared --with-pic
- make $MAKEOPTS library_build
- make install_lib install_include
- cd ../..
+ mkdir -p $STAGING
+ cd $STAGING
+ tar xzfm ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r1.tar.gz
+ cd ../build
#
cd bitcoin
export TAR_OPTIONS=--mtime=`echo $REFERENCE_DATETIME | awk '{ print $1 }'`
./autogen.sh
- ./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}"
+ ./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}"
make dist
mkdir -p distsrc
cd distsrc
tar --strip-components=1 -xf ../bitcoin-*.tar.*
- ./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}"
+ ./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}"
make $MAKEOPTS
make $MAKEOPTS install-strip
mkdir -p $OUTDIR/src
diff --git a/doc/release-process.md b/doc/release-process.md
index 2c0e2a3677..8858be397e 100644
--- a/doc/release-process.md
+++ b/doc/release-process.md
@@ -51,6 +51,8 @@ Release Process
wget 'https://download.qt-project.org/archive/qt/4.8/4.8.3/qt-everywhere-opensource-src-4.8.3.tar.gz'
wget 'https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
cd ..
+ ./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-linux.yml
+ mv build/out/*.tar.gz inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
mv build/out/boost-win32-*.zip inputs/
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml