gitian: Make linux boost dependency completely deterministic
It appears that the output was different every time. This doesn't affect the final bitcoind/bitcoin-qt, but is confusing nevertheless. Fix it by using FAKETIME and zipping files in deterministic order.
This commit is contained in:
parent
aa9348563c
commit
aabcd11ba6
2 changed files with 7 additions and 6 deletions
|
@ -20,11 +20,14 @@ files:
|
||||||
script: |
|
script: |
|
||||||
STAGING="$HOME/install"
|
STAGING="$HOME/install"
|
||||||
export LIBRARY_PATH="$STAGING/lib"
|
export LIBRARY_PATH="$STAGING/lib"
|
||||||
|
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
||||||
|
export FAKETIME=$REFERENCE_DATETIME
|
||||||
|
export TZ=UTC
|
||||||
# Input Integrity Check
|
# Input Integrity Check
|
||||||
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c
|
echo "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 boost_1_55_0.tar.bz2" | shasum -c
|
||||||
|
|
||||||
mkdir -p "$STAGING"
|
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
|
cd boost_1_55_0
|
||||||
GCCVERSION=$(g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2)
|
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
|
# note: bjam with -d+2 reveals that -O3 is implied by default, no need to provide it in cxxflags
|
||||||
|
@ -38,6 +41,4 @@ script: |
|
||||||
./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 install
|
||||||
|
|
||||||
cd "$STAGING"
|
cd "$STAGING"
|
||||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
find -type f | sort | zip -X@ $OUTDIR/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip
|
||||||
export FAKETIME=$REFERENCE_DATETIME
|
|
||||||
zip -r $OUTDIR/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip *
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ script: |
|
||||||
cd qrencode-3.4.3
|
cd qrencode-3.4.3
|
||||||
unset FAKETIME # unset fake time during configure, as it does some clock sanity tests
|
unset FAKETIME # unset fake time during configure, as it does some clock sanity tests
|
||||||
# need --with-pic to avoid relocation error in 64 bit builds
|
# need --with-pic to avoid relocation error in 64 bit builds
|
||||||
./configure --prefix=$STAGING --enable-static --disable-shared --with-pic --without-tools --disable-dependency-tracking --without-zlib
|
./configure --prefix=$STAGING --enable-static --disable-shared --with-pic --without-tools --disable-dependency-tracking
|
||||||
# Workaround to prevent re-configuring by make; make all files have a date in the past
|
# Workaround to prevent re-configuring by make; make all files have a date in the past
|
||||||
find . -print0 | xargs -r0 touch -t 200001010000
|
find . -print0 | xargs -r0 touch -t 200001010000
|
||||||
export FAKETIME=$REFERENCE_DATETIME
|
export FAKETIME=$REFERENCE_DATETIME
|
||||||
|
@ -68,7 +68,7 @@ script: |
|
||||||
mkdir -p $STAGING/host/bin
|
mkdir -p $STAGING/host/bin
|
||||||
unset FAKETIME # unset fake time during configure, as it does some clock sanity tests
|
unset FAKETIME # unset fake time during configure, as it does some clock sanity tests
|
||||||
# need --with-pic to avoid relocation error in 64 bit builds
|
# need --with-pic to avoid relocation error in 64 bit builds
|
||||||
./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic
|
./configure --prefix=$STAGING --bindir=$STAGING/host/bin --enable-static --disable-shared --with-pic --without-zlib
|
||||||
# Workaround to prevent re-configuring by make; make all files have a date in the past
|
# Workaround to prevent re-configuring by make; make all files have a date in the past
|
||||||
find . -print0 | xargs -r0 touch -t 200001010000
|
find . -print0 | xargs -r0 touch -t 200001010000
|
||||||
export FAKETIME=$REFERENCE_DATETIME
|
export FAKETIME=$REFERENCE_DATETIME
|
||||||
|
|
Loading…
Reference in a new issue