Add ARM64 build targets and release roadmap

This commit is contained in:
root
2026-05-03 08:38:55 +00:00
parent 2dcdd26c12
commit b616e06813
8 changed files with 215 additions and 60 deletions
+20
View File
@@ -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
View File
@@ -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.