aboutsummaryrefslogtreecommitdiff
path: root/contrib/gitian-descriptors/boost-linux.yml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gitian-descriptors/boost-linux.yml')
-rw-r--r--contrib/gitian-descriptors/boost-linux.yml22
1 files changed, 17 insertions, 5 deletions
diff --git a/contrib/gitian-descriptors/boost-linux.yml b/contrib/gitian-descriptors/boost-linux.yml
index 48b27aa26d..bd35346337 100644
--- a/contrib/gitian-descriptors/boost-linux.yml
+++ b/contrib/gitian-descriptors/boost-linux.yml
@@ -13,18 +13,23 @@ packages:
- "faketime"
- "bsdmainutils"
- "zip"
+- "libz-dev"
reference_datetime: "2011-01-30 00:00:00"
remotes: []
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
+ export TZ=UTC
# Input Integrity Check
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c
mkdir -p "$STAGING"
- tar xjf boost_1_55_0.tar.bz2
+ tar --warning=no-timestamp -xjf boost_1_55_0.tar.bz2
cd boost_1_55_0
GCCVERSION=$(g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2)
# note: bjam with -d+2 reveals that -O3 is implied by default, no need to provide it in cxxflags
@@ -35,9 +40,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"
- export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
- export FAKETIME=$REFERENCE_DATETIME
- zip -r $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