Skip to content

Commit 99d1a3b

Browse files
authored
Merge pull request #54 from TheBlueMatt/main
v0.0.103.0
2 parents db55d4e + 2f3cf99 commit 99d1a3b

File tree

350 files changed

+28693
-10969
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

350 files changed

+28693
-10969
lines changed

.github/workflows/build.yml

Lines changed: 65 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
run: |
1818
apt-get update
1919
apt-get -y dist-upgrade
20-
apt-get -y install cargo libstd-rust-dev-wasm32 valgrind lld git g++ clang openjdk-11-jdk maven faketime zip unzip llvm
20+
apt-get -y install cargo libstd-rust-dev-wasm32 valgrind lld git g++ clang openjdk-11-jdk maven faketime zip unzip llvm curl
2121
- name: Checkout source code
2222
uses: actions/checkout@v2
2323
with:
@@ -35,7 +35,7 @@ jobs:
3535
cd ..
3636
git clone https://github.com/lightningdevkit/ldk-c-bindings
3737
cd ldk-c-bindings
38-
git checkout 0.0.102
38+
git checkout 0.0.103
3939
- name: Rebuild C bindings without STD for WASM
4040
run: |
4141
cd ldk-c-bindings
@@ -60,7 +60,16 @@ jobs:
6060
- name: Checkout latest MacOS binaries
6161
run: |
6262
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
63-
git clone --depth 1 https://git.bitcoin.ninja/ldk-java-bins
63+
echo "Fetching deterministic binaries for LDK-GC ${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
64+
# Gitweb only allows snapshots of folders by providing the object hash, which we have to extract:
65+
SNAPSHOT_LINK="$(curl "https://git.bitcoin.ninja/index.cgi?p=ldk-java-bins;a=tree;f=${LDK_GARBAGECOLLECTED_GIT_OVERRIDE};hb=refs/heads/main" | grep snapshot | grep -o 'href="[a-zA-Z0-9/?\.=;\-]*"' | sed 's/href="//' | tr -d '"' | grep snapshot)"
66+
curl -o bins-snapshot.tgz "https://git.bitcoin.ninja${SNAPSHOT_LINK}"
67+
mkdir -p ldk-java-bins/"${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
68+
cd ldk-java-bins/"${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
69+
tar xvvf ../../bins-snapshot.tgz
70+
mv ldk-java-bins-*/* ./
71+
rm -r ldk-java-bins-*
72+
cd ../..
6473
mkdir -p src/main/resources/
6574
cp "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/liblightningjni_MacOSX-"* src/main/resources/
6675
- name: Build Java/TS Release Bindings
@@ -76,24 +85,23 @@ jobs:
7685
- name: Check latest library and jars are in bins repo
7786
run: |
7887
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
79-
rm "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"*.jar
80-
rm "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"liblightningjni_Linux*.nativelib
81-
cp src/main/resources/liblightningjni_Linux-amd64.nativelib "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
82-
cp ldk-java-sources.jar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
83-
cp ldk-java.jar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
84-
cp ldk-java-classes.jar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
85-
cp ldk-java-javadoc.jar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
86-
cd ldk-java-bins
88+
mkdir ldk-java-bins/new/
89+
cp "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"liblightningjni_Mac*.nativelib ldk-java-bins/new/
90+
cp "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"LDK-release.aar ldk-java-bins/new/
8791
# ldk-java-leaktracking is only for debug purposes and we don't bother with determinism
88-
git checkout "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-leaktracking.jar"
89-
if ! git diff --exit-code; then
90-
mv "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"* ./
91-
git checkout "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
92+
cp "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"ldk-java-leaktracking.jar ldk-java-bins/new/
93+
cp src/main/resources/liblightningjni_Linux-amd64.nativelib ldk-java-bins/new/
94+
cp ldk-java-sources.jar ldk-java-bins/new/
95+
cp ldk-java.jar ldk-java-bins/new/
96+
cp ldk-java-classes.jar ldk-java-bins/new/
97+
cp ldk-java-javadoc.jar ldk-java-bins/new/
98+
cd ldk-java-bins
99+
if ! diff -r "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/" new/; then
92100
apt-get -y install diffoscope
93-
diffoscope ldk-java-sources.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-sources.jar" || echo
94-
diffoscope ldk-java-javadoc.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-javadoc.jar" || echo
95-
diffoscope ldk-java-classes.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-classes.jar" || echo
96-
diffoscope ldk-java.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java.jar" || echo
101+
diffoscope new/ldk-java-sources.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-sources.jar" || echo
102+
diffoscope new/ldk-java-javadoc.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-javadoc.jar" || echo
103+
diffoscope new/ldk-java-classes.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java-classes.jar" || echo
104+
diffoscope new/ldk-java.jar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/ldk-java.jar" || echo
97105
exit 1
98106
fi
99107
- name: Run Java Tests against built release jar
@@ -153,9 +161,31 @@ jobs:
153161
cd ..
154162
git clone https://github.com/lightningdevkit/ldk-c-bindings
155163
cd ldk-c-bindings
156-
git checkout 0.0.102
164+
git checkout 0.0.103
157165
- name: Checkout Android AAR binaries and artifacts
158-
run: git clone --depth 1 https://git.bitcoin.ninja/ldk-java-bins
166+
run: |
167+
# Gitweb only allows snapshots of folders by providing the object hash, which we have to extract:
168+
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
169+
echo "Fetching deterministic binaries for LDK-GC ${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
170+
RELEASE_PAGE="https://git.bitcoin.ninja/index.cgi?p=ldk-java-bins;a=tree;f=${LDK_GARBAGECOLLECTED_GIT_OVERRIDE};hb=refs/heads/main"
171+
SNAPSHOT_LINK="$(curl "$RELEASE_PAGE" | grep snapshot | grep -o 'href="[a-zA-Z0-9/?\.=;\-]*"' | sed 's/href="//' | tr -d '"' | grep snapshot)"
172+
curl -o bins-snapshot.tgz "https://git.bitcoin.ninja${SNAPSHOT_LINK}"
173+
174+
ANDROID_PAGE="https://git.bitcoin.ninja/index.cgi?p=ldk-java-bins;a=tree;f=android-artifacts;hb=refs/heads/main"
175+
SNAPSHOT_LINK="$(curl "$ANDROID_PAGE" | grep snapshot | grep -o 'href="[a-zA-Z0-9/?\.=;\-]*"' | sed 's/href="//' | tr -d '"' | grep snapshot)"
176+
curl -o android-snapshot.tgz "https://git.bitcoin.ninja${SNAPSHOT_LINK}"
177+
178+
mkdir -p ldk-java-bins/"${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
179+
cd ldk-java-bins/"${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
180+
tar xvvf ../../bins-snapshot.tgz
181+
mv ldk-java-bins-*/* ./
182+
rm -r ldk-java-bins-*
183+
184+
mkdir -p ../android-artifacts
185+
cd ../android-artifacts
186+
tar xvvf ../../android-snapshot.tgz
187+
mv ldk-java-bins-*/* ./
188+
rm -r ldk-java-bins-*
159189
- name: Build Android aar
160190
run: |
161191
. $HOME/.cargo/env
@@ -167,14 +197,9 @@ jobs:
167197
- name: Check latest library and jars are in bins repo
168198
run: |
169199
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
170-
rm "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/LDK-release.aar"
171-
cp LDK-release.aar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
172-
cd ldk-java-bins
173-
if ! git diff --exit-code; then
174-
mv "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/LDK-release.aar" ./
175-
git checkout "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/LDK-release.aar"
200+
if ! diff LDK-release.aar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"LDK-release.aar; then
176201
apt-get -y install diffoscope
177-
diffoscope LDK-release.aar "${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/LDK-release.aar"
202+
diffoscope LDK-release.aar "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/LDK-release.aar"
178203
exit 1
179204
fi
180205
@@ -218,7 +243,7 @@ jobs:
218243
cd ..
219244
git clone https://github.com/lightningdevkit/ldk-c-bindings
220245
cd ldk-c-bindings
221-
git checkout 0.0.102
246+
git checkout 0.0.103
222247
- name: Rebuild C bindings with upstream clang, and check the sample app builds + links
223248
run: |
224249
cd ldk-c-bindings
@@ -238,7 +263,15 @@ jobs:
238263
- name: Checkout latest Linux binaries
239264
run: |
240265
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
241-
git clone --depth 1 https://git.bitcoin.ninja/ldk-java-bins
266+
echo "Fetching deterministic binaries for LDK-GC ${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
267+
# Gitweb only allows snapshots of folders by providing the object hash, which we have to extract:
268+
SNAPSHOT_LINK="$(wget -O /dev/stdout "https://git.bitcoin.ninja/index.cgi?p=ldk-java-bins;a=tree;f=${LDK_GARBAGECOLLECTED_GIT_OVERRIDE};hb=refs/heads/main" | grep snapshot | grep -o 'href="[a-zA-Z0-9/?\.=;\-]*"' | sed 's/href="//' | tr -d '"' | grep snapshot)"
269+
wget -O bins-snapshot.tgz "https://git.bitcoin.ninja${SNAPSHOT_LINK}"
270+
mkdir -p ldk-java-bins/"${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
271+
cd ldk-java-bins/"${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}"
272+
tar xvvf ../../bins-snapshot.tgz
273+
mv ldk-java-bins-*/* ./
274+
cd ../..
242275
mkdir -p src/main/resources/
243276
cp "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/liblightningjni_Linux-"* src/main/resources/
244277
- name: Build Java/TS Release Bindings
@@ -280,11 +313,9 @@ jobs:
280313
run: |
281314
if [ "${{ matrix.platform }}" = "macos-11" ]; then
282315
export LDK_GARBAGECOLLECTED_GIT_OVERRIDE="$(git describe --tag HEAD)"
283-
rm "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"liblightningjni_MacOSX-{x86_64,aarch64}.nativelib
284-
cp src/main/resources/liblightningjni_MacOSX-*.nativelib "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"
285-
cd ldk-java-bins
286316
# Sadly, OSX binaries are not currently deterministic, more debugging is needed.
287-
#git diff --exit-code
317+
diff "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"liblightningjni_MacOSX-x86_64.nativelib src/main/resources/liblightningjni_MacOSX-x86_64.nativelib || echo
318+
diff "ldk-java-bins/${LDK_GARBAGECOLLECTED_GIT_OVERRIDE}/"liblightningjni_MacOSX-aarch64.nativelib src/main/resources/liblightningjni_MacOSX-aarch64.nativelib || echo
288319
fi
289320
- name: Run Java Tests against release bins
290321
run: |

0 commit comments

Comments
 (0)