aboutsummaryrefslogtreecommitdiff
path: root/contrib/gitian-descriptors/protobuf-win.yml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gitian-descriptors/protobuf-win.yml')
-rw-r--r--contrib/gitian-descriptors/protobuf-win.yml15
1 files changed, 12 insertions, 3 deletions
diff --git a/contrib/gitian-descriptors/protobuf-win.yml b/contrib/gitian-descriptors/protobuf-win.yml
index 7fcac72fea..543f20b394 100644
--- a/contrib/gitian-descriptors/protobuf-win.yml
+++ b/contrib/gitian-descriptors/protobuf-win.yml
@@ -17,6 +17,7 @@ script: |
#
export TZ=UTC
INDIR=$HOME/build
+ TEMPDIR=$HOME/tmp
OPTFLAGS="-O2"
# Integrity Check
echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c
@@ -44,13 +45,21 @@ script: |
# Now recompile with the mingw cross-compiler:
make distclean
./configure --prefix=$INSTALLPREFIX --enable-shared=no --disable-dependency-tracking --with-protoc=$INSTALLPREFIX/host/bin/protoc --host=$HOST CXXFLAGS="-frandom-seed=11 ${OPTFLAGS}"
+ export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+ export FAKETIME=$REFERENCE_DATETIME
make
make install
+ # post-process all generated libraries to be deterministic
+ # extract them to a temporary directory then re-build them deterministically
+ for LIB in $(find $INSTALLPREFIX -name \*.a); do
+ rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR
+ $HOST-ar xv $LIB | cut -b5- > /tmp/list.txt
+ rm $LIB
+ $HOST-ar crsD $LIB $(cat /tmp/list.txt)
+ done
#
cd $INSTALLPREFIX
- export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
- export FAKETIME=$REFERENCE_DATETIME
- zip -r $OUTDIR/protobuf-win$BITS-2.5.0-gitian-r4.zip include lib host
+ find include lib host | sort | zip -X@ $OUTDIR/protobuf-win$BITS-2.5.0-gitian-r4.zip
unset LD_PRELOAD
unset FAKETIME
done # for BITS in