aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/ensure-reproducible-builds.sh
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-02-24 04:42:53 +0100
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-02-24 04:42:53 +0100
commit6196ec5f74faa0b783a1b3d75eadcd6cad5f651e (patch)
tree5d38c1fe5a003c2c3f333d08235bb715a9e6b0f1 /contrib/ensure-reproducible-builds.sh
parent7340682fd77fd89d38bf17cf9b194c5d2f602088 (diff)
downloadhttptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.tar.gz
httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.tar.bz2
httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.tar.lz
httptool-6196ec5f74faa0b783a1b3d75eadcd6cad5f651e.zip

fix: split bundles, reproducible builds (hopefully)

Diffstat (limited to 'contrib/ensure-reproducible-builds.sh')
-rwxr-xr-xcontrib/ensure-reproducible-builds.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/ensure-reproducible-builds.sh b/contrib/ensure-reproducible-builds.sh
new file mode 100755
index 0000000..f9b880a
--- /dev/null
+++ b/contrib/ensure-reproducible-builds.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env zsh
+set -e
+echo "First Build"
+make mozaddons
+# Zips are unstable with hashes
+cd artifacts
+ZIPNAME="$(jq -r '.name + "-" + .version + "-unsigned.zip"' ../manifest.json)"
+unzip "$ZIPNAME"
+rm "$ZIPNAME"
+HASH1="$( (find . -type f -print0 | sort -z | xargs -0 sha512sum;
+ find . \( -type f -o -type d \) -print0 | sort -z | \
+ xargs -0 stat -c '%n %a') \
+ | sha512sum)"
+cd ..
+echo "Got Hash $HASH1"
+sleep 1;
+echo "Second Build"
+make mozaddons
+# Zips are unstable with hashes
+cd artifacts
+unzip "$ZIPNAME"
+rm "$ZIPNAME"
+HASH2="$( (find . -type f -print0 | sort -z | xargs -0 sha512sum;
+ find . \( -type f -o -type d \) -print0 | sort -z | \
+ xargs -0 stat -c '%n %a') \
+ | sha512sum)"
+cd ..
+echo "Got Hash $HASH2"
+if [[ "$HASH1" != "$HASH2" ]]; then echo -e "\x1b[0;31mNot reproducible!\x1b[0m"; fi; \ No newline at end of file