diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-04-08 10:55:19 +0200 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2014-04-08 10:55:34 +0200 |
commit | dac4e2aebd283a070bd810a5e7492e57561c965d (patch) | |
tree | 5018d708309144f92aaedd42e48e1701a02e94ac | |
parent | a7101b13f7256588f609a97efc05dd27f29e8fec (diff) | |
parent | ddcd1afc5fdd148cd56f257b40a12f70841bd1b3 (diff) |
Merge pull request #3914
ddcd1af gitian: add statically built variant of bitcoind/bitcoin-cli (Wladimir J. van der Laan)
-rw-r--r-- | contrib/gitian-descriptors/gitian-linux.yml | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 01a5c3c0bf..05ef5ba587 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -39,18 +39,39 @@ script: | unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r3.zip unzip ../build/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip cd ../build + + function do_configure { + ./configure "$@" --enable-upnp-default --prefix=$STAGING --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --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}" BOOST_CHRONO_EXTRALIBS="-lrt" + } # cd bitcoin ./autogen.sh - ./configure --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --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}" BOOST_CHRONO_EXTRALIBS="-lrt" + do_configure make dist DISTNAME=`echo bitcoin-*.tar.gz` + + # Build dynamic versions of everything + # (with static linking to boost and openssl as well a some non-OS deps) mkdir -p distsrc cd distsrc tar --strip-components=1 -xf ../$DISTNAME - ./configure --enable-upnp-default --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --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}" BOOST_CHRONO_EXTRALIBS="-lrt" + do_configure --bindir=$BINDIR make $MAKEOPTS make $MAKEOPTS install-strip + make $MAKEOPTS clean + + # Build fully static versions of bitcoind and bitcoin-cli for older Linux distros + STATIC_BINDIR="$HOME/bindir.static" + mkdir -p $STATIC_BINDIR + # For 32-bit, -pie cannot be used with -static, as invalid executables are generated + # For 64-bit, -pie with -static causes a link error + # Disable hardening in configure and manually pass 'static-safe' hardening flags + OPTFLAGS='-O2 -static -Wstack-protector -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now' + do_configure --bindir=$STATIC_BINDIR --disable-tests --enable-upnp-default --without-gui --disable-hardening + make $MAKEOPTS + make $MAKEOPTS install-strip + cp $STATIC_BINDIR/bitcoind $BINDIR/bitcoind.static + cp $STATIC_BINDIR/bitcoin-cli $BINDIR/bitcoin-cli.static # sort distribution tar file and normalize user/group/mtime information for deterministic output mkdir -p $OUTDIR/src |