aboutsummaryrefslogtreecommitdiff
path: root/contrib/gitian-descriptors/gitian-linux.yml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gitian-descriptors/gitian-linux.yml')
-rw-r--r--contrib/gitian-descriptors/gitian-linux.yml31
1 files changed, 26 insertions, 5 deletions
diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml
index 01a5c3c0bf..018b6fb26f 100644
--- a/contrib/gitian-descriptors/gitian-linux.yml
+++ b/contrib/gitian-descriptors/gitian-linux.yml
@@ -21,8 +21,8 @@ remotes:
- "url": "https://github.com/bitcoin/bitcoin.git"
"dir": "bitcoin"
files:
-- "bitcoin-deps-linux32-gitian-r3.zip"
-- "bitcoin-deps-linux64-gitian-r3.zip"
+- "bitcoin-deps-linux32-gitian-r5.zip"
+- "bitcoin-deps-linux64-gitian-r5.zip"
- "boost-linux32-1.55.0-gitian-r1.zip"
- "boost-linux64-1.55.0-gitian-r1.zip"
script: |
@@ -36,21 +36,42 @@ script: |
#
mkdir -p $STAGING
cd $STAGING
- unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r3.zip
+ unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r5.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