-
Notifications
You must be signed in to change notification settings - Fork 209
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
Improve build docs and optimize Dockerfile for Android and Linux builds #2016
base: main
Are you sure you want to change the base?
Conversation
c14b0ba
to
d07c195
Compare
I think this is all ready for review! I've tested Android and Linux builds with the new Docker image across three different hosts (a mix of x64 and arm64) and have worked with @MrCyjaneK to iron out the issues. Please double check the other guides, but I have made sure not to edit the core steps, instead focusing on syntax and formatting. |
NOTE: The output example for Linux is incorrect (shows Android right now) but I will update that when my latest Linux build completes and I can copy-paste it out :) |
Resolved in 9e19496. |
Seth, I found 1 possible problem with the Dockerfile: Does the two Anyway, I got past that - The currrent flow is:
At this stage I get:
I had to move the release key around. but then I encountered another problem. At this stage. I suppose I have to look at the new instructions and build from there. |
@xrviv Current working flow is documented here: https://github.com/sethforprivacy/cake_wallet/blob/build-docs/docs/builds/ANDROID.md#building-cake-wallet-or-monerocom Dockerfile builds just fine on my end. Can you provide us details at which point of the documentation it resulted in an error and what that error was? |
Same for me, following the new instructions the image builds properly on multiple machines and runs properly as well. |
All looks good to me, let me just spin up a macos VM to verify that iOS and macOS docs work and there are no other edge cases |
For iOS and macOS there is a requirement for extra step after installing XCode.app
and app_config.sh and build_monero_all.sh need to swap places on iOS/macOS, as app_config.sh requires monero_c dylib to be already built. brew needs extra dependencies: automake ccache go libtool pkgconfig we also need to call ./build_mwebd.sh after build_monero_all.sh on iOS after generate_new_secrets.dart we also need to run dart run tool/generate_localization.dart In addition, build failed with xcode 15.3 on macOS 14.0 -> I have tested again on Xcode 16.2 and macOS 15.3.1, so we should use these values in the docs I have followed iOS docs. but I am fairly certain that fixes should be made to both macos and iOS docs, ios build failed, I'll make a patch to fix it in a bit - it is a known issue with mwebd ios also needs |
Adding all now, please review the upcoming commit to be sure I understood it all properly. |
Changes made in 30ebcf6. |
Then install `Desktop development with C++` packages via Visual Studio 2022, or Visual Studio Build Tools 2022 including: | ||
|
||
- `C++ Build Tools core features` | ||
- `C++ 2022 Redistributable Update` | ||
- `C++ core desktop features` | ||
- `MVC v143 - VS 2022 C++ x64/x86 build tools` | ||
- `C++ CMake tools for Windows` | ||
- `Testing tools core features - Build Tools` | ||
- `C++ AddressSanitizer` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then install `Desktop development with C++` packages via Visual Studio 2022, or Visual Studio Build Tools 2022 including: | |
- `C++ Build Tools core features` | |
- `C++ 2022 Redistributable Update` | |
- `C++ core desktop features` | |
- `MVC v143 - VS 2022 C++ x64/x86 build tools` | |
- `C++ CMake tools for Windows` | |
- `Testing tools core features - Build Tools` | |
- `C++ AddressSanitizer` | |
Then install `Desktop development with C++` packages via [Visual Studio 2022](https://visualstudio.microsoft.com/downloads). |
|
||
```zsh | ||
sudo apt update | ||
sudo apt build-essential cmake gcc-mingw-w64 g++-mingw-w64 autoconf libtool pkg-config |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sudo apt build-essential cmake gcc-mingw-w64 g++-mingw-w64 autoconf libtool pkg-config | |
apt install -y build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 gperf pigz gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't test the build myself, these are copied over from monero_c mingw ci step
Download the latest release tag of Cake Wallet and enter the source code directory: | ||
|
||
```zsh | ||
git clone https://github.com/cake-tech/cake_wallet.git --branch v4.23.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
git clone https://github.com/cake-tech/cake_wallet.git --branch v4.23.0 | |
git clone https://github.com/cake-tech/cake_wallet.git --branch main |
cd cake_wallet | ||
``` | ||
|
||
NOTE: Replace `v4.23.0` with the latest release tag available at <https://github.com/cake-tech/cake_wallet/releases/latest>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NOTE: Replace `v4.23.0` with the latest release tag available at <https://github.com/cake-tech/cake_wallet/releases/latest>. | |
NOTE: Replace `main` with the latest release tag available at <https://github.com/cake-tech/cake_wallet/releases/latest>. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also there is a need to add the following details
C:\Program Files\Git\bin\
needs to be in $env:PATH, so user needs to go to start menu, search 'environment', edit environment variables, double click PATH, click new and type the path there, then reboot the computer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, I have tested that on Windows 11, so we also may want to bump that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aaaaaand we also need nugat.exe
, so we can instruct people to download https://dist.nuget.org/win-x86-commandline/latest/nuget.exe into C:\Program Files\Nugat\nugat.exe
(create the directory) and add it to PATH (same as with Git above)
To configure the application, run the following: | ||
|
||
```zsh | ||
./cakewallet.sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
./cakewallet.sh | |
.\cakewallet.bat |
With my notes above I was able to build cake wallet, on Windows11 (arm - should also work in x64 CPU as well, especially because flutter does not support arm64 on 3.24.4) |
Our docs are quite... varied in quality and detail, so I've done my best to clean them up.
In addition, I've worked to optimize @MrCyjaneK's Dockerfile for building Cake Wallet and Monero.com from source for Android and Linux in an attempt to drastically simplify the process, especially for less technical users.
This PR:
docs/builds
scripts/linux
to the root of the project