Add ARM64 build targets and release roadmap
This commit is contained in:
@@ -8,6 +8,8 @@ for common Agrarian targets:
|
||||
- Linux Qt GUI wallet
|
||||
- Windows daemon and CLI tools
|
||||
- Windows Qt GUI wallet
|
||||
- Linux ARM64 daemon and CLI tools
|
||||
- Linux ARM64 Qt GUI wallet
|
||||
|
||||
The script clones the Agrarian repository if the selected checkout directory
|
||||
does not exist. If the checkout already exists, it fetches, checks out the
|
||||
@@ -58,6 +60,16 @@ obsolete BIP70 payment request support was removed. The helper also clears
|
||||
stale Qt work directories before rebuilding, because failed CMake
|
||||
feature checks can otherwise be cached between attempts.
|
||||
|
||||
The Linux ARM64 daemon option cross-compiles the daemon and CLI tools from an
|
||||
x86_64 Ubuntu host when the `g++-aarch64-linux-gnu` and
|
||||
`binutils-aarch64-linux-gnu` packages are available. On an ARM64 Ubuntu host it
|
||||
uses the normal native Linux daemon path.
|
||||
|
||||
The Linux ARM64 Qt wallet option is native-only. Run it on an ARM64 Ubuntu
|
||||
desktop/server with the Qt/XCB development packages installed. The current Qt 6
|
||||
Linux wallet build depends on target-system XCB/font pkg-config metadata, so the
|
||||
menu does not advertise a fragile x86_64-to-ARM64 Qt GUI cross-build path.
|
||||
|
||||
Defaults
|
||||
--------
|
||||
|
||||
@@ -97,3 +109,11 @@ Windows Build Output
|
||||
For Windows targets, the script prints the `.exe` artifact paths when the build
|
||||
finishes. Copy the generated files from `src/` and `src/qt/` to the Windows
|
||||
machine and run either `agrariand.exe` or `agrarian-qt.exe`.
|
||||
|
||||
ARM64 Build Output
|
||||
------------------
|
||||
|
||||
For ARM64 daemon targets, the script prints the generated Linux binaries in
|
||||
`src/`. Copy them to the ARM64 machine if the build was cross-compiled. For the
|
||||
ARM64 Qt wallet target, the build should be run directly on the ARM64 machine
|
||||
and the wallet binary is `src/qt/agrarian-qt`.
|
||||
|
||||
+10
-10
@@ -20,13 +20,13 @@ The Agrarian installer is `installer/agrarian-installer.sh`. It automates the Ub
|
||||
- Configuring the project with the depends `config.site` and prefix.
|
||||
- Building the daemon and CLI utilities (via `--action daemon` or `--action all`).
|
||||
- Building the Qt wallet on Linux hosts (via `--action qt`, or `--action all` when Qt is enabled).
|
||||
- Cross-compiling Qt wallets for Windows and Linux ARM targets (via `--action qt --qt-target ...`).
|
||||
- Cross-compiling Qt wallets for Windows targets (via `--action qt --qt-target ...`).
|
||||
|
||||
It does not:
|
||||
|
||||
- Install system packages (it only checks for required toolchains and prints an `apt-get` command if missing).
|
||||
- Run `make install` or copy binaries into `/usr/local`.
|
||||
- Package platform installers (e.g., Windows/macOS/ARM Qt wallet bundles).
|
||||
- Package platform installers (e.g., Windows/macOS wallet bundles).
|
||||
- Run or configure the daemon after the build.
|
||||
|
||||
Quick Start (Ubuntu/Debian)
|
||||
@@ -56,11 +56,13 @@ Build Qt wallets for cross targets (examples):
|
||||
```bash
|
||||
./installer/agrarian-installer.sh --action qt --qt-target win64
|
||||
./installer/agrarian-installer.sh --action qt --qt-target win32
|
||||
./installer/agrarian-installer.sh --action qt --qt-target armhf
|
||||
./installer/agrarian-installer.sh --action qt --qt-target aarch64
|
||||
./installer/agrarian-installer.sh --action qt --qt-target all
|
||||
```
|
||||
|
||||
Use `contrib/agrarian-build-menu.sh` for the current ARM64 daemon and native
|
||||
ARM64 Qt wallet flows. The legacy installer document is kept as secondary
|
||||
reference and should not be treated as the release authority for ARM builds.
|
||||
|
||||
Expected outputs:
|
||||
|
||||
- Depends prefix: `depends/<host-triplet>/`
|
||||
@@ -84,14 +86,12 @@ Common Installer Options
|
||||
- `qt` builds the Qt wallet (`src/qt/agrarian-qt`). If depends are missing, the installer builds them first.
|
||||
- `all` builds depends and then runs top-level `make` in the repo root.
|
||||
|
||||
`--qt-target <native|win64|win32|armhf|aarch64|all>`
|
||||
`--qt-target <native|win64|win32|all>`
|
||||
|
||||
- `native` uses `--host` as-is (default).
|
||||
- `win64` maps to `x86_64-w64-mingw32`.
|
||||
- `win32` maps to `i686-w64-mingw32`.
|
||||
- `armhf` maps to `arm-linux-gnueabihf`.
|
||||
- `aarch64` maps to `aarch64-unknown-linux-gnu`.
|
||||
- `all` builds native + all cross targets listed above.
|
||||
- `all` builds native + the Windows cross targets listed above.
|
||||
|
||||
`--host <triplet>`
|
||||
|
||||
@@ -171,7 +171,7 @@ Then install toolchains per target:
|
||||
|
||||
- win64: `g++-mingw-w64-x86-64` (see `doc/build-windows.md`)
|
||||
- win32: `g++-mingw-w64-i686` (see `doc/build-windows.md`)
|
||||
- armhf: `g++-arm-linux-gnueabihf` and `binutils-arm-linux-gnueabihf`
|
||||
- aarch64: `g++-aarch64-linux-gnu` and `binutils-aarch64-linux-gnu`
|
||||
- aarch64 daemon builds through `contrib/agrarian-build-menu.sh` use
|
||||
`g++-aarch64-linux-gnu` and `binutils-aarch64-linux-gnu`
|
||||
|
||||
If any toolchain binaries are missing, the installer prints a single `apt-get install` command that includes the required packages for the selected Qt targets.
|
||||
|
||||
Reference in New Issue
Block a user