aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/gitian-descriptors/boost-linux.yml14
-rw-r--r--contrib/gitian-descriptors/deps-linux.yml11
2 files changed, 22 insertions, 3 deletions
diff --git a/contrib/gitian-descriptors/boost-linux.yml b/contrib/gitian-descriptors/boost-linux.yml
index d752a906a2..a538ff30a8 100644
--- a/contrib/gitian-descriptors/boost-linux.yml
+++ b/contrib/gitian-descriptors/boost-linux.yml
@@ -19,6 +19,7 @@ files:
- "boost_1_55_0.tar.bz2"
script: |
STAGING="$HOME/install"
+ TEMPDIR="$HOME/tmp"
export LIBRARY_PATH="$STAGING/lib"
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
@@ -38,7 +39,16 @@ script: |
./bootstrap.sh --without-icu
- ./bjam toolset=gcc threadapi=pthread threading=multi variant=release link=static runtime-link=shared --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 --layout=tagged --build-type=complete --prefix="$STAGING" $MAKEOPTS install
+ ./bjam toolset=gcc threadapi=pthread threading=multi variant=release link=static runtime-link=shared --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 --layout=tagged --build-type=complete --prefix="$STAGING" $MAKEOPTS -d+2 install
+ # post-process all generated libraries to be deterministic
+ # extract them to a temporary directory then re-build them deterministically
+ for LIB in $(find $STAGING -name \*.a); do
+ rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR
+ ar xv $LIB | cut -b5- > /tmp/list.txt
+ rm $LIB
+ ar crsD $LIB $(cat /tmp/list.txt)
+ done
+ #
cd "$STAGING"
- find -type f | sort | zip -X@ $OUTDIR/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip
+ find | sort | zip -X@ $OUTDIR/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip
diff --git a/contrib/gitian-descriptors/deps-linux.yml b/contrib/gitian-descriptors/deps-linux.yml
index 8585661458..908f9321a4 100644
--- a/contrib/gitian-descriptors/deps-linux.yml
+++ b/contrib/gitian-descriptors/deps-linux.yml
@@ -23,6 +23,7 @@ files:
- "db-4.8.30.NC.tar.gz"
script: |
STAGING="$HOME/install"
+ TEMPDIR="$HOME/tmp"
OPTFLAGS='-O2'
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
export FAKETIME=$REFERENCE_DATETIME
@@ -84,6 +85,14 @@ script: |
make $MAKEOPTS library_build
make install_lib install_include
cd ../..
+ # post-process all generated libraries to be deterministic
+ # extract them to a temporary directory then re-build them deterministically
+ for LIB in $(find $STAGING -name \*.a); do
+ rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR
+ ar xv $LIB | cut -b5- > /tmp/list.txt
+ rm $LIB
+ ar crsD $LIB $(cat /tmp/list.txt)
+ done
#
cd $STAGING
- find include lib bin host -type f | sort | zip -X@ $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r3.zip
+ find include lib bin host | sort | zip -X@ $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r3.zip