Update build documentation

This commit is contained in:
root
2026-04-30 06:48:22 +00:00
parent 49ac41045b
commit 099316b662
17 changed files with 145 additions and 55 deletions
+2 -1
View File
@@ -36,6 +36,8 @@ Building
The following are developer notes on how to build Agrarian Core on your native platform. They are not complete guides, but include notes on the necessary libraries, compile flags, etc.
- [Dependencies](dependencies.md)
- [Ubuntu 24.04 Build Notes](build-ubuntu-24.md)
- [Desktop Wallet Build Quick Start](build-wallets.md)
- [macOS Build Notes](build-osx.md)
- [Unix Build Notes](build-unix.md)
- [Windows Build Notes](build-windows.md)
@@ -46,7 +48,6 @@ Development
The Agrarian repo's [root README](/README.md) contains relevant information on the development process and automated testing.
- [Developer Notes](developer-notes.md)
- [Multiwallet Qt Development](multiwallet-qt.md)
- [Release Notes](release-notes.md)
- [Release Process](release-process.md)
- [Source Code Documentation (External Link)](https://www.fuzzbawls.pw/agrarian/doxygen/)
+4 -1
View File
@@ -20,6 +20,10 @@ Dependencies
See [dependencies.md](dependencies.md) for a complete overview.
Status note: this macOS system-library path is legacy and has not been part of
the current Qt6/OpenSSL3/Boost modernization smoke-test pass. The verified
modern desktop wallet path is native Ubuntu via `contrib/build-linux-wallet.sh`.
If you want to build the disk image with `make deploy` (.dmg / optional), you need RSVG:
brew install librsvg
@@ -207,4 +211,3 @@ build process to remain somewhat deterministic. Here's how it works:
using the script that is also included there. Detached signatures are available from this [repository](https://github.com/bitcoin-core/bitcoin-detached-sigs).
- Builders feed the unsigned app + detached signature back into Gitian. It
uses the pre-built tools to recombine the pieces into a deterministic dmg.
+2
View File
@@ -13,6 +13,8 @@ Use at least 2 GB RAM for a reliable build. A 512 MB host with 2 GB swap can
configure successfully, but compilation is extremely slow and may time out while
building large translation units.
Use `JOBS=1` on small hosts. On an 8-core, 16 GB host, `JOBS=8` is reasonable.
Packages
--------
+34 -11
View File
@@ -3,6 +3,8 @@ Copyright (c) 2026 Agrarian Developers
UNIX Build Notes
These notes describe how to build Agrarian Core on Unix-based systems.
For Ubuntu 24.04, prefer the shorter and tested path in
`doc/build-ubuntu-24.md`.
IMPORTANT
@@ -16,14 +18,24 @@ Example:
$BDB_PREFIX must be an absolute path. Using $(pwd) ensures an absolute
path is used.
STANDARD BUILD
STANDARD BUILD WITH DEPENDS
make -C depends HOST=x86_64-pc-linux-gnu NO_QT=0 -j$(nproc)
./autogen.sh
./configure
make
CONFIG_SITE=$PWD/depends/x86_64-pc-linux-gnu/share/config.site ./configure
make -j$(nproc)
make install (optional)
If dependencies are satisfied, this will build agrarian-qt as well.
The native depends wallet path currently builds Qt 6.8.3, OpenSSL 3.5.6,
Boost 1.91.0, protobuf, Berkeley DB, and supporting libraries.
For a daemon-only build:
JOBS=1 ./contrib/build-linux.sh
For a native Ubuntu desktop wallet build:
JOBS=1 ./contrib/build-linux-wallet.sh
DEPENDENCIES
@@ -50,15 +62,15 @@ UBUNTU / DEBIAN
Build tools:
sudo apt-get install build-essential libtool bsdmainutils autotools-dev autoconf pkg-config automake python3
sudo apt-get install build-essential libtool bsdmainutils autotools-dev autoconf pkg-config automake cmake ninja-build python3 curl git
Libraries:
System libraries are needed only for non-depends builds. The deterministic
depends build should be preferred for reproducibility.
Libraries for a system-library build:
sudo apt-get install libssl-dev libgmp-dev libevent-dev libboost-all-dev
OpenSSL Note: For Ubuntu >= 18.04 or Debian >= Stretch use
libssl1.0-dev. OpenSSL 1.1 is not officially supported.
Berkeley DB 4.8 (wallet support):
sudo apt-get install software-properties-common
@@ -73,7 +85,9 @@ Optional:
Qt GUI:
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler
Use the native depends wallet helper for Qt6:
JOBS=1 ./contrib/build-linux-wallet.sh
Disable GUI:
@@ -91,7 +105,8 @@ Optional:
Qt:
sudo dnf install qt5-qttools-devel qt5-qtbase-devel protobuf-devel
Native Qt6 builds are currently tested through the Ubuntu depends path.
Fedora system-Qt builds are not part of the current verified path.
HARDENING
@@ -121,3 +136,11 @@ ARM CROSS COMPILATION
./autogen.sh
./configure --prefix=$PWD/depends/arm-linux-gnueabihf --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++
make
SMOKE TESTS
After a native build, run:
./contrib/smoke-test-daemon.sh
./contrib/smoke-test-wallet.sh
./contrib/smoke-test-qt.sh
+4 -2
View File
@@ -19,7 +19,8 @@ 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.
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
-----------------------
@@ -52,7 +53,8 @@ The wallet build is sensitive to tool version mismatches:
* Native Ubuntu uses the deterministic depends Qt6, OpenSSL, Boost, protobuf,
and supporting libraries.
* Cross-target wallets must use the matching Qt host tools staged by depends.
* Windows cross-target wallets currently use the existing Qt5 cross 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.
+9 -1
View File
@@ -56,7 +56,7 @@ INSTALLING WSL
3. Complete Setup
- Open command prompt
- Run: Ubuntu1804
- Launch the installed Ubuntu distribution
- Create a UNIX user account
Once WSL is active, continue with cross-compilation instructions below.
@@ -223,6 +223,14 @@ The Windows depends build uses protobuf 2.6.1 headers and libraries. Do not use
a newer system `protoc` to regenerate wallet sources for this target. The helper
builds and stages a matching native `protoc` when needed.
============================================================
QT NOTE
============================================================
The current Windows cross-build helper still targets the existing Qt5 cross
path. The native Ubuntu wallet path has moved to Qt6. Keep those paths separate
until the Windows Qt6 cross-build is explicitly modernized and smoke-tested.
============================================================
END OF DOCUMENT
============================================================
+4 -4
View File
@@ -128,10 +128,10 @@ Qt pkg-config files missing in the depends prefix
The installer requires these `.pc` files in `depends/<host>/(lib|share)/pkgconfig`:
- `Qt5Core.pc`
- `Qt5Gui.pc`
- `Qt5Network.pc`
- `Qt5Widgets.pc`
- Native Ubuntu Qt6 path: `Qt6Core.pc`, `Qt6Gui.pc`, `Qt6Network.pc`,
`Qt6Widgets.pc`
- Windows cross-build Qt5 path: `Qt5Core.pc`, `Qt5Gui.pc`, `Qt5Network.pc`,
`Qt5Widgets.pc`
Fix by rebuilding depends with Qt enabled: