Skip to content

Commit fa42a67

Browse files
author
MarcoFalke
committed
[gitian] hardcode datetime for depends
1 parent fa58c76 commit fa42a67

File tree

3 files changed

+49
-14
lines changed

3 files changed

+49
-14
lines changed

contrib/gitian-descriptors/gitian-linux.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,36 +41,47 @@ script: |
4141
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
4242
fi
4343
44-
# Create global faketime wrappers
44+
function create_global_faketime_wrappers {
4545
for prog in ${FAKETIME_PROGS}; do
4646
echo '#!/bin/bash' > ${WRAP_DIR}/${prog}
4747
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
4848
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
49-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
49+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
5050
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
5151
chmod +x ${WRAP_DIR}/${prog}
5252
done
53+
}
5354
54-
# Create per-host faketime wrappers
55+
function create_per-host_faketime_wrappers {
5556
for i in $HOSTS; do
5657
for prog in ${FAKETIME_HOST_PROGS}; do
5758
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog}
5859
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
5960
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
60-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${i}-${prog}
61+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
6162
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
6263
chmod +x ${WRAP_DIR}/${i}-${prog}
6364
done
6465
done
66+
}
67+
6568
export PATH=${WRAP_DIR}:${PATH}
6669
70+
# Faketime for depends so intermediate results are comparable
71+
create_global_faketime_wrappers "2000-01-01 12:00:00"
72+
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
73+
6774
cd bitcoin
6875
BASEPREFIX=`pwd`/depends
6976
# Build dependencies for each host
7077
for i in $HOSTS; do
7178
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
7279
done
7380
81+
# Faketime for binaries
82+
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
83+
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
84+
7485
# Create the release tarball using (arbitrarily) the first host
7586
./autogen.sh
7687
./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`

contrib/gitian-descriptors/gitian-osx.yml

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,29 +53,36 @@ script: |
5353
5454
export ZERO_AR_DATE=1
5555
56-
# Create global faketime wrappers
56+
function create_global_faketime_wrappers {
5757
for prog in ${FAKETIME_PROGS}; do
5858
echo '#!/bin/bash' > ${WRAP_DIR}/${prog}
5959
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
6060
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
61-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
61+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
6262
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
6363
chmod +x ${WRAP_DIR}/${prog}
6464
done
65+
}
6566
66-
# Create per-host faketime wrappers
67+
function create_per-host_faketime_wrappers {
6768
for i in $HOSTS; do
6869
for prog in ${FAKETIME_HOST_PROGS}; do
6970
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog}
7071
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
7172
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
72-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${i}-${prog}
73+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
7374
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
7475
chmod +x ${WRAP_DIR}/${i}-${prog}
7576
done
7677
done
78+
}
79+
7780
export PATH=${WRAP_DIR}:${PATH}
7881
82+
# Faketime for depends so intermediate results are comparable
83+
create_global_faketime_wrappers "2000-01-01 12:00:00"
84+
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
85+
7986
cd bitcoin
8087
BASEPREFIX=`pwd`/depends
8188
@@ -87,6 +94,10 @@ script: |
8794
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
8895
done
8996
97+
# Faketime for binaries
98+
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
99+
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
100+
90101
# Create the release tarball using (arbitrarily) the first host
91102
./autogen.sh
92103
./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`

contrib/gitian-descriptors/gitian-win.yml

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,29 +44,31 @@ script: |
4444
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
4545
fi
4646
47-
# Create global faketime wrappers
47+
function create_global_faketime_wrappers {
4848
for prog in ${FAKETIME_PROGS}; do
4949
echo '#!/bin/bash' > ${WRAP_DIR}/${prog}
5050
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
5151
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
52-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
52+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
5353
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
5454
chmod +x ${WRAP_DIR}/${prog}
5555
done
56+
}
5657
57-
# Create per-host faketime wrappers
58+
function create_per-host_faketime_wrappers {
5859
for i in $HOSTS; do
5960
for prog in ${FAKETIME_HOST_PROGS}; do
6061
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog}
6162
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
6263
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
63-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${i}-${prog}
64+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
6465
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
6566
chmod +x ${WRAP_DIR}/${i}-${prog}
6667
done
6768
done
69+
}
6870
69-
# Create per-host linker wrapper
71+
function create_per-host_linker_wrapper {
7072
# This is only needed for trusty, as the mingw linker leaks a few bytes of
7173
# heap, causing non-determinism. See discussion in https://github.com/bitcoin/bitcoin/pull/6900
7274
for i in $HOSTS; do
@@ -82,22 +84,33 @@ script: |
8284
echo '#!/bin/bash' > ${WRAP_DIR}/${i}-${prog}
8385
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
8486
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
85-
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${i}-${prog}
87+
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
8688
echo "export COMPILER_PATH=${WRAP_DIR}/${i}" >> ${WRAP_DIR}/${i}-${prog}
8789
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
8890
chmod +x ${WRAP_DIR}/${i}-${prog}
8991
done
9092
done
93+
}
9194
9295
export PATH=${WRAP_DIR}:${PATH}
9396
97+
# Faketime for depends so intermediate results are comparable
98+
create_global_faketime_wrappers "2000-01-01 12:00:00"
99+
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
100+
create_per-host_linker_wrapper "2000-01-01 12:00:00"
101+
94102
cd bitcoin
95103
BASEPREFIX=`pwd`/depends
96104
# Build dependencies for each host
97105
for i in $HOSTS; do
98106
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
99107
done
100108
109+
# Faketime for binaries
110+
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
111+
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
112+
create_per-host_linker_wrapper "${REFERENCE_DATETIME}"
113+
101114
# Create the release tarball using (arbitrarily) the first host
102115
./autogen.sh
103116
./configure --prefix=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`

0 commit comments

Comments
 (0)