This PR adds Ledger support into the Neblio wallet app. Here's a couple of important notes:
see doc/ledger-hw-wallet.md for a a bit more information about the Ledger integration
CI should build binaries for Windows, Linux and MacOS
GitHub actions runners were updated to Ubuntu 22.04 since the 18.04 runners have been deprecated (unavailable)
The build_scripts/CompileBoost-Linux.py seemed to be broken - the simlink to boost_build dir was not being created correctly - so we fixed the boost compile script.
CMake build fails because of the action runner being updated to Ubuntu 22.04. Ubuntu 22.04 uses openssl3 while the wallet requires openssl 1.1 and for some reason the compiled openssl is not used by the linker rather it uses the system’s openssl3 - we were not able to resolve this issue
CI docker containers have not been updated - we only extended the neblioteam/nebliod-build-ccache container to install hidapi dependencies and upload the image to our S3 bucket. The Dockerfile is here ./docker/build-cache.Dockerfile - it should be simple enough to modify the official containers in a similar manner and then the Dockerfile can be removed.
the mxe build used when building for Windows had to be rebuilt to include hidapi - we included the mxe build file in the repo.
test_win_x86_64-gui_wallet.py has not been modified since CI is not setup to run it, although the same changes done to test_win_x86-gui_wallet.py would probably work here as well.
we added a custom artifact upload step to the CI jobs - each job uploads the binary to GitHub (this may not be desired)
among the makefiles only the makefile.unix has been updated since the other ./wallet/makefiles* seem to be out of date anyways (and not used)
osx build had to be hacked around a little to work - there was an issue with linking libicu. The workaround is to include both libicu 67 and 71 binaries in the .dmg file.
We're not aware of any issues regarding the Ledger integration so please review the code and test thoroughly. We have of course tested the integration ourselves but we might have accidentally broken some unrelated features and we don't have the full context to test the whole app thoroughly.
The CI pipeline is still running for the mentioned platforms in our fork of the repo - https://github.com/vacuumlabs/neblio/actions/runs/4741911630 - the binaries will be uploaded once it finishes. (Here's a CI run from without the last commit which has the binaries already uploaded)
This PR adds Ledger support into the Neblio wallet app. Here's a couple of important notes:
build_scripts/CompileBoost-Linux.py
seemed to be broken - the simlink toboost_build
dir was not being created correctly - so we fixed the boost compile script.neblioteam/nebliod-build-ccache
container to install hidapi dependencies and upload the image to our S3 bucket. The Dockerfile is here./docker/build-cache.Dockerfile
- it should be simple enough to modify the official containers in a similar manner and then the Dockerfile can be removed.test_win_x86_64-gui_wallet.py
has not been modified since CI is not setup to run it, although the same changes done totest_win_x86-gui_wallet.py
would probably work here as well.makefile.unix
has been updated since the other./wallet/makefiles*
seem to be out of date anyways (and not used)We're not aware of any issues regarding the Ledger integration so please review the code and test thoroughly. We have of course tested the integration ourselves but we might have accidentally broken some unrelated features and we don't have the full context to test the whole app thoroughly.
The CI pipeline is still running for the mentioned platforms in our fork of the repo - https://github.com/vacuumlabs/neblio/actions/runs/4741911630 - the binaries will be uploaded once it finishes. (Here's a CI run from without the last commit which has the binaries already uploaded)