Files
agrarian/doc/build-wallets.md
T

99 lines
2.9 KiB
Markdown

Copyright (c) 2022-2036 Agrarian Developers
Desktop Wallet Build Quick Start
================================
This page records the repeatable desktop wallet build flow for the modernized
Agrarian tree.
Supported targets
-----------------
The currently tested desktop wallet targets are:
* Ubuntu 24.04 native x86_64: `src/qt/agrarian-qt`
* Windows x86_64 cross build from Ubuntu: `src/qt/agrarian-qt.exe`
Use one job on small servers:
JOBS=1 ./contrib/build-linux-wallet.sh
JOBS=1 ./contrib/build-win64-wallet.sh
Use more jobs only when the host has enough memory. On an 8-core, 16 GB host,
`JOBS=8` is reasonable. On very small VPS instances, prefer `JOBS=1` and swap.
Ubuntu package baseline
-----------------------
sudo apt-get update
sudo apt-get install -y \
build-essential pkg-config autoconf automake libtool bsdmainutils \
curl git make tar patch
For the native Ubuntu wallet:
sudo apt-get install -y \
cmake ninja-build xvfb libfontconfig1-dev libfreetype-dev \
libharfbuzz-dev libbrotli-dev libbz2-dev libexpat1-dev \
libglib2.0-dev libgraphite2-dev libpng-dev zlib1g-dev \
libx11-xcb-dev libxcb1-dev libxcb-cursor-dev libxcb-icccm4-dev \
libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev \
libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev \
libxcb-shm0-dev libxcb-sync-dev libxcb-util-dev \
libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-xkb-dev \
libxau-dev libxdmcp-dev libxext-dev libxi-dev libxrender-dev \
libxkbcommon-dev libxkbcommon-x11-dev
For the Windows wallet:
sudo apt-get install -y \
mingw-w64 g++-mingw-w64-x86-64 g++-mingw-w64-x86-64-posix
Then select POSIX Mingw-w64 threading:
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
Why the helpers exist
---------------------
The wallet build is sensitive to tool version mismatches:
* Native Ubuntu uses the deterministic depends Qt6, OpenSSL, Boost, Expat,
FreeType, protobuf, and supporting libraries.
* Windows cross-target wallets use the deterministic depends Qt6 path and
matching Qt host tools staged by depends.
The helper scripts keep those rules in one place so the build is repeatable on a
fresh server.
Expected artifacts
------------------
After the Ubuntu wallet build:
src/qt/agrarian-qt
src/agrariand
src/agrarian-cli
src/agrarian-tx
After the Windows wallet build:
src/qt/agrarian-qt.exe
src/agrariand.exe
src/agrarian-cli.exe
src/agrarian-tx.exe
Version checks
--------------
On Ubuntu, use the smoke tests:
./contrib/smoke-test-daemon.sh
./contrib/smoke-test-wallet.sh
./contrib/smoke-test-qt.sh
For Windows binaries from the Linux build host:
file src/qt/agrarian-qt.exe src/agrariand.exe src/agrarian-cli.exe src/agrarian-tx.exe