Update build docs for current depends baseline
This commit is contained in:
+5
-4
@@ -52,10 +52,11 @@ instead of being required as Ubuntu system development packages.
|
||||
|
||||
The Linux Qt wallet option also installs Ubuntu desktop development headers
|
||||
needed by Qt's xcb platform plugin, including fontconfig, freetype, xcb, and
|
||||
xkbcommon packages. The wallet helper uses the matching `protoc` built by
|
||||
`depends/`, so a system protobuf compiler is not required. It also clears stale
|
||||
Qt work directories before rebuilding, because failed CMake feature checks can
|
||||
otherwise be cached between attempts.
|
||||
xkbcommon packages. Expat 2.8.0 and FreeType 2.13.3 are built through
|
||||
`depends/` for the Linux Qt/font stack. The wallet helper uses the matching
|
||||
`protoc` built by `depends/`, so a system protobuf compiler is not required. It
|
||||
also clears stale Qt work directories before rebuilding, because failed CMake
|
||||
feature checks can otherwise be cached between attempts.
|
||||
|
||||
Defaults
|
||||
--------
|
||||
|
||||
+22
-5
@@ -23,12 +23,21 @@ Install the native daemon build dependencies:
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
build-essential pkg-config autoconf automake libtool bsdmainutils \
|
||||
cmake ninja-build python3 curl git
|
||||
cmake ninja-build python3 curl git make tar patch bzip2 xz-utils
|
||||
|
||||
For a headless Qt wallet smoke test, also install:
|
||||
For a native Qt wallet build and headless Qt smoke test, also install:
|
||||
|
||||
sudo apt-get install -y \
|
||||
xvfb
|
||||
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
|
||||
|
||||
Daemon build
|
||||
------------
|
||||
@@ -49,8 +58,9 @@ For the desktop wallet, use:
|
||||
JOBS=1 ./contrib/build-linux-wallet.sh
|
||||
|
||||
The wallet helper builds/restores the native depends prefix first, including
|
||||
Qt 6.8.3, OpenSSL 3.5.6, and Boost 1.91.0. It then configures the project with
|
||||
the generated depends `config.site` and builds the Ubuntu Qt wallet.
|
||||
Qt 6.8.3, OpenSSL 3.5.6, Boost 1.91.0, Expat 2.8.0, FreeType 2.13.3, and the
|
||||
Linux Qt font/xcb support libraries. It then configures the project with the
|
||||
generated depends `config.site` and builds the Ubuntu Qt wallet.
|
||||
|
||||
Defaults:
|
||||
|
||||
@@ -83,6 +93,13 @@ OpenSSL 3
|
||||
|
||||
The deterministic depends build currently uses OpenSSL 3.5.6.
|
||||
|
||||
Expat and FreeType
|
||||
------------------
|
||||
|
||||
The native Ubuntu Qt wallet path uses Expat 2.8.0 through fontconfig and
|
||||
FreeType 2.13.3 for Qt 6 static font support. Keep those in the deterministic
|
||||
depends graph; do not satisfy them with ad hoc system-library fallbacks.
|
||||
|
||||
Berkeley DB
|
||||
-----------
|
||||
|
||||
|
||||
+2
-1
@@ -27,7 +27,8 @@ STANDARD BUILD WITH DEPENDS
|
||||
make install (optional)
|
||||
|
||||
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.
|
||||
Boost 1.91.0, Expat 2.8.0, FreeType 2.13.3, protobuf, Berkeley DB, and
|
||||
supporting libraries.
|
||||
|
||||
For a daemon-only build:
|
||||
|
||||
|
||||
+12
-3
@@ -33,7 +33,16 @@ Ubuntu package baseline
|
||||
For the native Ubuntu wallet:
|
||||
|
||||
sudo apt-get install -y \
|
||||
cmake ninja-build xvfb
|
||||
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:
|
||||
|
||||
@@ -50,8 +59,8 @@ Why the helpers exist
|
||||
|
||||
The wallet build is sensitive to tool version mismatches:
|
||||
|
||||
* Native Ubuntu uses the deterministic depends Qt6, OpenSSL, Boost, protobuf,
|
||||
and supporting libraries.
|
||||
* 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.
|
||||
|
||||
|
||||
+16
-1
@@ -153,13 +153,18 @@ Manual equivalent:
|
||||
--with-qt-libdir=$PWD/depends/x86_64-w64-mingw32/lib \
|
||||
--with-qt-plugindir=$PWD/depends/x86_64-w64-mingw32/plugins \
|
||||
--with-qt-translationdir=$PWD/depends/x86_64-w64-mingw32/translations \
|
||||
--with-qt-bindir=$PWD/depends/x86_64-w64-mingw32/native/bin
|
||||
--with-qt-bindir=$PWD/depends/build/x86_64-pc-linux-gnu/bin \
|
||||
--with-protoc-bindir=$PWD/depends/build/x86_64-pc-linux-gnu/bin
|
||||
make
|
||||
|
||||
============================================================
|
||||
BUILDING FOR 32-BIT WINDOWS
|
||||
============================================================
|
||||
|
||||
The current verified 2.0 Windows path is x86_64. The 32-bit instructions below
|
||||
are retained as a legacy cross-build reference and should be revalidated before
|
||||
release use.
|
||||
|
||||
Install toolchain:
|
||||
|
||||
sudo apt install g++-mingw-w64-i686 mingw-w64-i686-dev
|
||||
@@ -234,6 +239,16 @@ The Windows cross-build helper targets the Qt 6.8 LTS depends path. Keep the
|
||||
helper's Qt host tools (`moc`, `uic`, `rcc`) staged from the matching depends
|
||||
build to avoid mixing host Qt tools with target Qt libraries.
|
||||
|
||||
============================================================
|
||||
DEPENDS BASELINE NOTE
|
||||
============================================================
|
||||
|
||||
The 2.0 branch currently verifies Windows x86_64 builds against the same
|
||||
modernized core dependency baseline as Linux: OpenSSL 3.5.6, Boost 1.91.0,
|
||||
Qt 6.8.3, Berkeley DB 4.8.30, protobuf 2.6.1, libevent 2.1.8-stable, and GMP
|
||||
6.1.2. Expat 2.8.0 and FreeType 2.13.3 are part of the Linux Qt/font depends
|
||||
path and are documented in `doc/dependencies.md`.
|
||||
|
||||
============================================================
|
||||
END OF DOCUMENT
|
||||
============================================================
|
||||
|
||||
+14
-3
@@ -1,6 +1,17 @@
|
||||
Installer (Ubuntu)
|
||||
==================
|
||||
|
||||
Status
|
||||
---------------------
|
||||
The preferred fresh-host workflow for the 2.0 branch is currently
|
||||
`contrib/agrarian-build-menu.sh`, with the direct helper scripts
|
||||
`contrib/build-linux.sh`, `contrib/build-linux-wallet.sh`, and
|
||||
`contrib/build-win64-wallet.sh` used for repeatable scripted builds. This
|
||||
installer document is retained for the older `installer/agrarian-installer.sh`
|
||||
CLI and should be treated as secondary until that installer is revalidated
|
||||
against the current Qt 6.8.3/OpenSSL 3.5.6/Boost 1.91.0/Expat 2.8.0/FreeType
|
||||
2.13.3 depends baseline.
|
||||
|
||||
Overview
|
||||
---------------------
|
||||
The Agrarian installer is `installer/agrarian-installer.sh`. It automates the Ubuntu build steps by:
|
||||
@@ -110,14 +121,14 @@ Troubleshooting
|
||||
---------------------
|
||||
Boost library naming/layout (the `-mt` suffix)
|
||||
|
||||
- Depends builds may produce Boost libs with suffixes like `libboost_thread-gcc-mt-1_64.a`.
|
||||
- Depends builds may produce Boost libs with suffixes like `libboost_thread-gcc-mt-1_91.a`.
|
||||
- The installer checks for `libboost_thread*.a` and `libboost_system*.a`, so it tolerates `-mt` and versioned names.
|
||||
- If you are configuring manually, keep `--with-boost=<depends-prefix>` (the installer sets this for you) to avoid system Boost fallback.
|
||||
|
||||
`config.site` and PATH pitfalls
|
||||
|
||||
- The installer configures with `CONFIG_SITE=depends/<host>/share/config.site`.
|
||||
- That `config.site` prepends `depends/<host>/native/bin` to `PATH`. Do not overwrite `PATH` with a minimal value; ensure `/usr/bin` and other system paths remain available.
|
||||
- Current helper builds use native host tools from `depends/build/<build-host>/bin`. Do not overwrite `PATH` with a minimal value; ensure `/usr/bin` and other system paths remain available.
|
||||
- If `config.site` is missing, rebuild depends:
|
||||
|
||||
```bash
|
||||
@@ -153,7 +164,7 @@ Qt Cross-Compilation Packages (Ubuntu/Debian)
|
||||
Install the common Linux build tools (from `depends/README.md`):
|
||||
|
||||
```bash
|
||||
sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch
|
||||
sudo apt-get install make automake cmake curl git g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch bzip2 xz-utils
|
||||
```
|
||||
|
||||
Then install toolchains per target:
|
||||
|
||||
@@ -14,6 +14,8 @@ The current deterministic `depends/` baseline is:
|
||||
- Qt 6.8.3 LTS
|
||||
- OpenSSL 3.5.6 LTS
|
||||
- Boost 1.91.0
|
||||
- Expat 2.8.0 for the Linux Qt/font stack
|
||||
- FreeType 2.13.3 for Qt 6 static font support
|
||||
- Berkeley DB 4.8.30 for portable legacy wallet compatibility
|
||||
- protobuf 2.6.1 for the existing Qt payment request sources
|
||||
- libevent 2.1.8-stable
|
||||
|
||||
Reference in New Issue
Block a user