exquo / signal-libs-build

Automatic compilation of native libraries for the Signal messenger
GNU General Public License v3.0
33 stars 9 forks source link

`boring`'s armv7-linux builds fail #13

Closed exquo closed 1 year ago

exquo commented 1 year ago

After the BoringSSL lib has been added as a dependency of libsignal, cross-compiling the latter fails for target armv7-linux-gnueabihf: https://github.com/exquo/signal-libs-build/actions/runs/3411284904/jobs/5675310584

However, building the boring library itself for the same target in the same environment succeeds.. https://github.com/exquo/signal-libs-build/actions/runs/3411698940/jobs/5676237923

Asked upstream: https://github.com/signalapp/libsignal/issues/481#issuecomment-1306017143

morph027 commented 1 year ago

Probably have a look here: https://github.com/signalapp/libsignal/issues/481

exquo commented 1 year ago

Thanks, yes, I have used the advice from https://github.com/signalapp/libsignal/issues/481#issuecomment-1220904129. Following it, the builds succeed for the aarch64-linux-gnu and i686-linux-gnu targets. However, for armv7-linux-gnueabihf it still fails..

The QEMU approach discussed there is apparently viable. But it's a very different path from a straightforward cross-compilation. I would like to try resolve this without using emulation, since Rust should be "cross-compilation native".

skynet2982 commented 1 year ago

Any updates on this ?

morph027 commented 1 year ago

I've added a pull request to upstream boring ssl. Should be in the next libsignal release: https://github.com/signalapp/libsignal/labels/awaiting%20release

exquo commented 1 year ago

Thanks @morph027! I'll close this issue when the workflow automatically builds everything successfully on picking up the next upstream release. In the meantime, I'll try to also add the armv7 build object to the current release.

bitboy85 commented 1 year ago

Do you have a release?

I currently added the older 0.18.1 version to the 0.21.1 jar file. seems to work, at least for sending

2 things for the documentation I have a raspberry 4 and it uses arm7 platform (not aarch like described in the readme) to get the old version into the jar file, use zip command WITHOUT u parameter

morph027 commented 1 year ago

You can try the artifact from https://gitlab.com/packaging/libsignal-client/-/issues/2#note_1224620739

exquo commented 1 year ago

Thank you very much @morph027 for submitting the fix upstream! With it the new releases build for ARMv7 target again! I've also ran a workflow that added the armv7-unknown-linux-gnueabihf file to the v0.21.1 release.