Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: make builds fully reproducible across systems #881

Merged
merged 12 commits into from
Oct 24, 2024

Conversation

guggero
Copy link
Member

@guggero guggero commented Oct 23, 2024

This PR fixes a couple of issues with the release build process and also adds a couple of nice-to-haves that we added in other projects.

Replaces #880.
Replaces #852 (changes included).

Testing

Linux

Make sure you're using Go 1.22.6!

Please run:

git fetch --tags
git checkout v0.0.0-reproducible-build-test-3
make release tag=v0.0.0-reproducible-build-test-3

MacOS

Please run:

git fetch --tags
git checkout v0.0.0-reproducible-build-test-3
make docker-release tag=v0.0.0-reproducible-build-test-3

Target

You should get the following manifest if successful:

70290827730c1694a2985356472a6bd34ab2875be2e4308f2644bea085d10b58  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3.tar.gz
fe22c4d69ed079d23bd5c8084861f150cd5743ba94ffcfae4e65d63b58f1cdb5  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/frcli
737859ec8ff08a355dd0e6bb914025645e40f8b913b1e02c0fb768ac7aedd746  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/litcli
15001b480a3f1fca821678ab13539f9b4e78541ef42b4081cda763988b19688d  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/litd
15e1805b92e3018cdd5c3bce613c5be7293dc5f7c3fcb20246e507fad989db36  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/lncli
dcd87af96ec249e0fc5a556207dc8a7cfb046ee7f823ab4e0240cf65be8e731c  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/loop
44bdc768930372b42563e861ab75fdd8ebae5b3a96e6d672a9b454f67dcd4339  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/pool
cb7be37a1eaf98e9a49ade204a1d2856d07a110f1d48c94212d60a95fcf77c58  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test-3/tapcli
4dd544bddfb9b5ab9f9fdc6610e52bcfb7386613fed4945a443183c42e1ac354  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3.tar.gz
9b502da1df266d57dee303582a9fb0bd1f13b70d53cf854c5b2ef31dc702786a  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/frcli
cbfb31368b902781a1cc6e04fca59445157f7edbf02e4a91a6b3c09e08070f4a  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/litcli
addc6afae666cb30f80d6d8eb11b25f7cb332e3ff4debab77bf6398c8f8c6ef7  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/litd
d49e097f8cc7eccf75fe5c9b7938aa30bddaab7a3ec073b8c031e58458935ba3  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/lncli
8ffde44e7c59f9ec71b8d5180d993bf359a6170cec9765860d08457324b648e4  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/loop
109b150480ad1b469587a8d313bf310996d5142184a8f733eb305f1df7f2dc7c  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/pool
3f5fc0f714c3c3d8f712a43897a5ed9ea9ad9894155bcad21f5796e825ba7f2f  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test-3/tapcli
9074f018ca4ff1bf8a80bae7cdfe0a4b299c51e3760470ad22834489ce0e2f38  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3.tar.gz
6661e9544a7a2dc5805f7f7d5491655c7b81b03cd96699410f6135dd2fdf41d1  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/frcli
80d651ded0f34bbc91132711af7b7dacb0f039aa68b09e202c2167d054fe0e63  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/litcli
41e977fdd35469b6aeaf8845e384131a209e3c32b960bc523e55213bd72d875f  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/litd
308d4c4dba507edc6d8ae567bb5a5a37c5af8da0112d78561f64ffcc531d18b7  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/lncli
178167b96bafc9d9096a79adf5ecb9a90358636998932f70b6815bf3b8496a4b  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/loop
1b11508b5e68255ada48285a2642b6f9566a290ca4e53b60159d952c1e1a3817  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/pool
6c1fe348a24e6d22c65c52f0e19bd74eeb5aa7d88146db21f4575db474f39c1e  lightning-terminal-linux-386-v0.0.0-reproducible-build-test-3/tapcli
669906d245239fc90489c8c16f6c9b75d572d3bca08ef6385dbd3be9746e8ca0  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3.tar.gz
b02beb92895dee895559d60906fbdfa720a6a4019c5a05c3e48d0b4e56cb0f0f  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/frcli
9d256491c07b2877bc14212195cb5fe1bd7ba81b91e6b96553aa676bbf4ece5e  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/litcli
b466ddf728ea5a109d9acd09dda19c4e252feb192a8419dc0d3c34c14765640f  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/litd
191778f610ff39ccec313a07a5841b4e39052cd4b72363f7ac985b0738973fbe  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/lncli
5a0c399300eca75ea5f6c3a8df30ffbe17da144775f8e7e0b29b54b78d96019a  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/loop
c9395cf5eec25486f89fe94cf1be636dcf63df79ae25e3a822602daa546c3f23  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/pool
ef81886e71dc5c0ee4a5183eb6c873570bb549e4d46252427ce4e6854c8fba55  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test-3/tapcli
aca7e682b6755742e53f4f8ba881db335927b7d2515522bd3525b77a5adb9a5d  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3.tar.gz
0ca4a7d26166bef431bac4d637fe4a9741fd17f08f779cc4878dcc9e208688a7  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/frcli
b3ed82c4d6818fced4a1ee44c2e3ce81d9e9668a44f8689b404834b17ebf9fe3  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/litcli
308d87df0d3036391c62c13d0a61f6dead0f757232cc144a67db0804da7bbf79  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/litd
628b88f955df0525ccec97b42b6ea1383f9d3f30d1e964a5980400bb4e08f5a0  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/lncli
9871b3a60387b9fc4a94da35b96c2d502b070f6da2a703274cdb3ad013af0a43  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/loop
140ebde7aab7df3eee621df76be3ffe821da3905ef7d572e005995aa24ecb2d8  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/pool
c4ddf99af4af3300c3823982acf44976da3d3ec7ac71776f359c602e3c52d59f  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test-3/tapcli
196f6f17c3d0922eef8785586978e5e8d0da05b406a80b36b9cee282040921db  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3.tar.gz
75eeafd80b2363210c2148513b22bc60e1e4b45661eccc5822da9d77773987be  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/frcli
9c0b1dc32762f182f9900f10162961888524375515985476c9d09c482c6e4e5f  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/litcli
417adf7dabd2786351005e5e97e4b2c8e1d94792b6f58ffd0dae0c4580416f0e  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/litd
c38f6c64484bd694b97166aa3d80121f4670c6138753e515ed050ce449d9228a  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/lncli
3a64505c31a61622ed678103abf4bf4c98bd3bae8d1e4ec63b6e0d90302b96ea  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/loop
64244c4986ffa7197914bd695fb7440c9eacacd660669abd72dcece25211b9cb  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/pool
aad60818d8e677dc6990000bbd520c04f2d24cb258c9f38b0a175cde638c6a73  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test-3/tapcli
7a388f24e6d5438f7a470e665c6e8500b7c8c3b776a097581a45137be35846a8  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3.tar.gz
b5b708ccd1701b93d3dc1b35599262f1dd723b83b3bf45de7bb1ac513fda7a03  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/frcli
e98f81d5eec4b35f87f773d3de5d691ac6303b3844f538cf4ba6da32487fb9d6  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/litcli
32c8da75c51aa9c3ddccfda94a55a019039e03ddd71ef41bd33abd0937f59d7b  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/litd
945ee4137afa66635ae94ffcbac7c6ff614fa579ad1105b28485abad0abcdd3d  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/lncli
12459cbe462409a1b6aa412ad9edcb347c33c4f4b99a4e22f64d6dcac7a4d144  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/loop
bae4c5ea4cc552a135e26128f81d00ccd3b587944489e672f4867e1c7c66d743  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/pool
17a6b91fcd21c45c55158eebe68ed1b578de6a796a07156776457c77de876c91  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test-3/tapcli
03ccfcf66c3868220c781e94986f9f333050c9be89fa9737ba54bf9413931f04  lightning-terminal-source-v0.0.0-reproducible-build-test-3.tar.gz
dc4626bc38416944993de242375a3cb5277b9f418d55f02ae2d51f50781a42c8  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3.zip
c0760ac23da129d8c849ee0612e2e0a1a4b27e209a97f14980439b680416acf0  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/frcli.exe
4b252b65c70ebc3b31bb364ee4e3bde775c33f5638b28f83224a1ee65db0d9c6  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/litcli.exe
b1284dba384a238f8f823289b37e70c22eaddb99578e367f6b3f35790c73da05  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/litd.exe
32b193968077e242db54e16c6f895fc6cdcae95c8cb2692314411c5095e93e70  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/lncli.exe
9bfe8ad0becef713619f8630e19a20a19f5c52228e0878cdd28f2824389215c2  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/loop.exe
b09dbe1ae87a68682f857b660f449f4631143de32dbdaf1d246e9ae4cdc5a3e3  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/pool.exe
d22454c07b9b34ae5307421a147f7f9f761dd019fa8edf61cefa1f644582e9ae  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test-3/tapcli.exe
4cfeb4add030046022c0603ff801fe3fc4002dc290000ab1643d9fb130d40aaa  vendor.tar.gz

guggero and others added 4 commits October 23, 2024 09:44
This uses the more reliable way to restore the file in git after a
build, preventing differences in line endings to cause the file to be
seen as dirty in some situations.
This update modifies the release.sh script to ensure that release files
are reproducible, generating identical hashes when rebuilt. Previously,
the script did not set fixed timestamps for the files, resulting in
different hashes across rebuilds.

Additionally, the release.sh script has been updated to align more
closely with the behavior of the lnd release script, ensuring
consistency and coherence across repositories for users.
Dockerfile Outdated Show resolved Hide resolved
@ViktorTigerstrom
Copy link
Contributor

Thanks a lot for this @guggero 🔥, a really nice addition!

Hmmm when running this I'm unfortunately getting hash mismatches for all "lightning-terminal-darwin-ENV-v0.0.0-reproducible-build-test.tar.gz" & "lightning-terminal-darwin-ENV-v0.0.0-reproducible-build-test/litd" builds.

Here's my result:

45d2ae1cdbd9b841997fbd5bb4cadbd8d2832c15daa285b2612da508ba4e12ee  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test.tar.gz
87ea198fe4cf7e2857b97263f4b5139b320640db413b9adb492f17024c3aad55  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/frcli
f2eeef4fe6a363d604e690f66926b63a42d81742f2581a948e8c7cf12c1d8879  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/litcli
b35a0a2e6dd138de0c58d1bf1cfd277570f1704f9175a222c2d6ceea704299de  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/litd
02f3db88b0d50db26757eee64c016f1fd1e80b9377c8eb081ca49c8e1a234461  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/lncli
99f3b30ca377fb034fcf8a8a39cf6732990e2004912d8d9b29d0161135ea1a42  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/loop
64d3d3cc6b6bdcab66d3ccdc3b24e717b8b472f8688fdd2ec27bac96321bfc45  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/pool
a150be5ce461912f2f79eb3c86a0f7501645f04e71602f1e87f6b075e7a10327  lightning-terminal-darwin-amd64-v0.0.0-reproducible-build-test/tapcli
6c4d001463f4c0595c4f1673238188620f42b6233d1ec2077f2a8cbe6078a726  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test.tar.gz
4aa10103a4025534d2c93beee2a9dc0437a3bccaf70eaea52e826034995d7475  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/frcli
01fe9cb3de7e3f4dd1e697c5ce9871bec4d30d9989590a60ed740614adb6a390  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/litcli
298bd35a4ae883a49342739d4371a3f09b969f9ffab943e4c41d79609ea84aea  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/litd
45fe27a5629de8aa0d848e60f1137114c04d93fe067d8d3028229d0955f8d3cc  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/lncli
e562773a67549af284bc796508e2241169ad0c4e8859048f836560488fd637ef  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/loop
15949374e4b5d852549eccfe53d27d3a470e266dc804268c36406bce9eba5696  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/pool
387466b448fe7e76fb9c9da33f523bfa8fd0a01c8ad5a2b745a504f229a460fd  lightning-terminal-darwin-arm64-v0.0.0-reproducible-build-test/tapcli
c3721bdf1d84016acda5042052284f7b35163122e31a380fcced3abe0cd22a02  lightning-terminal-linux-386-v0.0.0-reproducible-build-test.tar.gz
6e51ee6fd7e131c31e4a0673b547c1cd02e0f166f473825f4b76c1eb1621acca  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/frcli
025eb618efa6b884ca7d899274d6f9cfef7195b76ca1047f2469cc3acdd51dd8  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/litcli
963d2976b983d339f19040f11fb460b94adc274608c4f73dbf3989a78e662f0d  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/litd
8b5705da76feec8f6f389a6512405d811193e6ba3e93828b063d8c6d841771ed  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/lncli
7b39b10a2f40e6de484cabc34da6dfc4dde380c5e282bd276bf658fbfbc9d56d  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/loop
014c748171f03835a8a806609fd6887cb03d8b4c095dd84c955793c7226080a0  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/pool
52c54788fe127cf0e5ab16a2b65463218b377100389c87b82b059cb019208498  lightning-terminal-linux-386-v0.0.0-reproducible-build-test/tapcli
588ded1ba0c29ac22cbf8e05e7aaf03ae0e91781259f5f26bf08ddb197201a48  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test.tar.gz
a83afd8083252ab06d540daab592feb166635f94dede1d4684309317081bfb87  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/frcli
e27617ac3863e160a35edaa600b7c27597a4affc31f3cca7b2e0b89d5f11bc7f  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/litcli
eaca07226f6c1c3ea9144b026ef667715c824f12552b7c646ada8f1edf974a19  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/litd
14a1c1f334ae14f49cfe657a61497829eefab885178327ceb50463439512a9fb  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/lncli
8ce95b5368100fa0436ed127cb139cb8bb3d31a6e62175612aebc530659fc6b9  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/loop
162ce69d31f7f9a41126e6c12eb02e66a64261c305e1c2dce26d484ffc5616d3  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/pool
91a3be176fe48d05d8439f3a23e34a4043a1b16ba47193b0d294fe225ec2882c  lightning-terminal-linux-amd64-v0.0.0-reproducible-build-test/tapcli
3ffe611dcb552da621e39f08719691888f330a976e45c21c749e7a051bb77eba  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test.tar.gz
54f1fa14ad289065c84f4591a65dcdca371296148604ed6edc7353cf0cbe7374  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/frcli
8824e7924826b8d91e44df2e0862f35703b7d3760ee19df296ce7c90281cf5b0  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/litcli
0e566695b0b3550109f3e5c8588f41fba6d138a8940407503de003427013c86c  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/litd
eb31b05342495782e97b03ac55ff17772d3ab3c737d9fa65a97af8f2ec45d574  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/lncli
b16cba08dbdec92088ec5f29b4b57f90f859a6389bb74ab22e411b42a2f7157a  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/loop
68caffb1eb9c8d058b1033e68d743fe8a0e77632b7ca24e6796d9465a41ac0c1  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/pool
b7afd3e64ff37458185ad0f668bb5d3a08114e4c547bd7864d03247f36973aaf  lightning-terminal-linux-arm64-v0.0.0-reproducible-build-test/tapcli
9f46caf121d14a35f8b6b0afa20885ae682bf87c560b1527d63224ab426f7efb  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test.tar.gz
6423af2375cdcf01d3969478edef6c475c45967d4a0e120c61cc937d5eacc31d  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/frcli
a8c6057ef4247057fa24cd4930dac3ccb03010feb133554aae1bf2f048770a37  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/litcli
32fe638559c9a1ce13ef6404290737cf18d6db5eecbb5d5cd84dd9bdb219e452  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/litd
15367ea083a149ed76127065c9000a81d3b716748e97ce2d064440c2aab7ff62  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/lncli
64de1a271a47487bc5de42f3b2576605373b16285ea6aa10e0473ecf58b64deb  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/loop
ee1484976cb87d3d7b43f1b5f83a0bb4399948ea383d405ec207555ec0125d93  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/pool
b0eac7f42f429727a7ab84d67e33d597d669224f06d5c72e9dc17ccfdd98e328  lightning-terminal-linux-armv6-v0.0.0-reproducible-build-test/tapcli
a55567bb708ca3f112acb0100a7b7ccf03b6b05ef1daff44fce3e76f6a386c68  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test.tar.gz
4e0ce451c0f5db142297619fb05985c7834235df1f05a76eedfaff93215897b9  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/frcli
50ec7a5a537581e7c061fcc9d3127a9fd1f201cb928675c8e44e50fe8b409288  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/litcli
b052c8501cf3b78a50c0d0f4437390a82f6c6c13b92bdeacd8d95371f244368b  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/litd
e455f8792f94a581637ccbf46cab45d4c4ec923718796900b0a3b2f3c0cb8371  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/lncli
adaf78518c2f70c4f7eaef3ab5f566baa530dbe060447b3b084236078e1ed3b4  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/loop
9a0c1b8527b1198571c5c79e34c9c4249a84fe0eadbadf92d62085e1879f268c  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/pool
09dc46cb61a6eac316724a6970296790770529060443d0d4bc68a14d34330f1d  lightning-terminal-linux-armv7-v0.0.0-reproducible-build-test/tapcli
ad34ebd9cc22850c59ed8ffe2080984a1cb956b2274d23ca52bd6986ad302898  lightning-terminal-source-v0.0.0-reproducible-build-test.tar.gz
25a67c255723374ab4f1d77981100e6787a4822ccb13ea70dd71d5f5ce3af693  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test.zip
197952265a28057be32c5bc0ea81b743d44431d0ed2fab171a1c020b1f22025d  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/frcli.exe
8e515683a7d6816d31d72feeee39439feb9f27eb34889a3efb163253ba455cff  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/litcli.exe
994ca824c3bde8eb2e434fbd15a1ee970116c24d8c740d5cbb60c97fd11da245  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/litd.exe
efff4acd6d8564ccab7f34972a56adf337e7dae29a00dfbf4538d72cabc1404c  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/lncli.exe
adaa275f105bc761f1b6e05b8e43ab0cea4b3bc32cba5025c5fa696f83f4dc15  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/loop.exe
dd7d20ddc28f43728726a7323e827e3d6cf1ea798c456f77310a9d243f72bc6a  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/pool.exe
4f0e03d51ccb91310530bcfe5e81388ed01b1408c69c9090f6a71177f1295b54  lightning-terminal-windows-amd64-v0.0.0-reproducible-build-test/tapcli.exe
fa6e25da701fce5314d6caa5ecab40c98e549ecf5d867b0bc0dae34793a292d7  vendor.tar.gz

I'm also getting this during the release process:
Cannot start a process, the working directory '/REPLACED_EXAMPLE_LOCAL_PATH_TO_WORKING_DIR/lightning-terminal/lightning-terminal-v0.0.0-reproducible-build-test/lightning-terminal-source/tools' does not exist

@ViktorTigerstrom
Copy link
Contributor

The -dirty suffix is sufficiently gone though 🚀🎉!

@dstadulis
Copy link

dstadulis commented Oct 23, 2024

@ViktorTigerstrom
Issue was identified as inconsistencies in the app/build/* files

  • guggero will add the frontend build to the docker build

guggero and others added 6 commits October 23, 2024 14:32
Because the "make release" command collided with the release.sh script,
make thought it needed to do something with that file.
We fix that problem in two ways: We move the file into the scripts sub
folder and also tell make that all our defined goals don't correspond to
folders or files.
To make sure we use the same Golang version everywhere, we add a new
linter step with scripts copied from lnd.
This commit updates `scripts/release.sh` to include a check for the
correct Go version before executing the release build. This ensures that
the release binaries are built with the specified Go version,
maintaining consistency and integrity for developer signatures.
@guggero
Copy link
Member Author

guggero commented Oct 23, 2024

@dstadulis and @ViktorTigerstrom I updated the digests in the commit body and also pushed a new tag: v0.0.0-reproducible-build-test-2. Can you please try again?

We dockerize the app build and use that for both the docker build _AND_
the normal build to make sure the static content is fully reproducible
across different systems.
This was discovered while debugging the reproducible build. We used the
wrong group ID. And the environment variables aren't super portable so
we use the correct command to get the numeric user and group IDs.
@guggero guggero force-pushed the reproducible-build branch from 5ac1234 to ea33903 Compare October 24, 2024 09:24
@guggero
Copy link
Member Author

guggero commented Oct 24, 2024

We debugged the MacOS issues and found a solution. Pushed a new tag v0.0.0-reproducible-build-test-3 and updated the build digests in the PR body.

@ViktorTigerstrom
Copy link
Contributor

ViktorTigerstrom commented Oct 24, 2024

Hashes are matching on my end 🎉🔥!!

@ellemouton
Copy link
Member

All hashes matching on my side 🏅

Copy link
Member

@ellemouton ellemouton left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really great work 🎖️

@@ -8,7 +8,7 @@
"start": "BROWSER=none react-scripts start",
"develop": "REACT_APP_USE_SAMPLE_DATA=true yarn start",
"build": "react-scripts build",
"postbuild": "echo '# Keep directory in git.' > build/.gitkeep",
"postbuild": "git restore build/.gitkeep",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

@dstadulis dstadulis added this to the tapd v0.4.2 milestone Oct 24, 2024
Copy link
Contributor

@ViktorTigerstrom ViktorTigerstrom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much for this @guggero! tACK LGTM 🚀🔥

@dstadulis dstadulis dismissed their stale review October 24, 2024 19:13

Two reviewers assigned already

@guggero guggero merged commit 9e5685f into master Oct 24, 2024
14 checks passed
@guggero guggero deleted the reproducible-build branch October 24, 2024 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

5 participants