doc: Clarify build docs about `pkgconf` / `pkg-config` requirements
What changed, and why it matters
This commit only updates documentation. It moves the pkgconf/pkg-config package from the 'always required' dependency list to the 'only needed if you enable ZMQ' list, because ZMQ packages sometimes need it to be found by the build system. There is no code change and no security issue.
No security action needed. This is a routine documentation clarification.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch modifies four build documentation files (doc/build-freebsd.md, doc/build-netbsd.md, doc/build-osx.md, doc/build-unix.md). It removes pkgconf/pkg-config from the base dependency install commands and adds it to the ZMQ-specific install commands, plus adds a footnote explaining that some ZMQ packages lack vendored CMake config files and require pkgconf/pkg-config. No source code, build scripts, or cryptographic logic is changed.
Changed components
doc/build-freebsd.mddoc/build-netbsd.mddoc/build-osx.mddoc/build-unix.mdInspect captured patch +13 / −11
diff --git a/doc/build-freebsd.md b/doc/build-freebsd.md
index 11f53e08..436b57c9 100644
--- a/doc/build-freebsd.md
+++ b/doc/build-freebsd.md
@@ -10,7 +10,7 @@ This guide describes how to build bitcoind, command-line utilities, and GUI on F
Run the following as root to install the base dependencies for building.
```bash
-pkg install boost-libs cmake git pkgconf
+pkg install boost-libs cmake git
```
SQLite is required for the wallet:
@@ -66,7 +66,7 @@ Otherwise, if you don't need QR encoding support, use the `-DWITH_QRENCODE=OFF`
Bitcoin Core can provide notifications via ZeroMQ. To compile ZMQ support, install the following dependency and pass `-DWITH_ZMQ=ON` when configuring.
```bash
-pkg install libzmq4
+pkg install libzmq4 pkgconf
```
#### Test Suite Dependencies
diff --git a/doc/build-netbsd.md b/doc/build-netbsd.md
index b1b9e461..c269d2a1 100644
--- a/doc/build-netbsd.md
+++ b/doc/build-netbsd.md
@@ -12,7 +12,7 @@ Install the required dependencies the usual way you [install software on NetBSD]
The example commands below use `pkgin`.
```bash
-pkgin install git cmake pkg-config boost
+pkgin install git cmake boost
```
NetBSD currently ships with an older version of `gcc` than is needed to build. You should upgrade your `gcc` and then pass this new version to the CMake configuration.
@@ -84,7 +84,7 @@ Otherwise, if you don't need QR encoding support, use the `-DWITH_QRENCODE=OFF`
Bitcoin Core can provide notifications via ZeroMQ. To compile ZMQ support, install the following dependency and pass `-DWITH_ZMQ=ON` when configuring.
```bash
-pkgin install zeromq
+pkgin install zeromq pkg-config
```
#### Test Suite Dependencies
diff --git a/doc/build-osx.md b/doc/build-osx.md
index f895ce88..bf55fda3 100644
--- a/doc/build-osx.md
+++ b/doc/build-osx.md
@@ -50,7 +50,7 @@ See [dependencies.md](dependencies.md) for a complete overview.
To install, run the following from your terminal:
``` bash
-brew install cmake boost pkgconf capnp
+brew install cmake boost capnp
```
#### Wallet Dependencies
@@ -110,7 +110,7 @@ Support for ZMQ notifications requires the following dependency.
Skip if you do not need ZMQ functionality.
``` bash
-brew install zeromq
+brew install zeromq pkgconf
```
Check out the [further configuration](#further-configuration) section for more information.
diff --git a/doc/build-unix.md b/doc/build-unix.md
index e1d2364e..b1dd5422 100644
--- a/doc/build-unix.md
+++ b/doc/build-unix.md
@@ -44,12 +44,14 @@ You can either build from self-compiled [depends](/depends/README.md) or
install the dependencies from your distribution package manager. Dependencies
for additional features in later columns are optional.
-| Package manager | Required build dependencies | SQLite (wallet) | Cap'n Proto (IPC) | ZMQ | USDT | Qt and libqrencode (GUI) |
+| Package manager | Required build dependencies | SQLite (wallet) | Cap'n Proto (IPC) | ZMQ <sup><a href="#note1">[1]</a></sup> | USDT | Qt and libqrencode (GUI) |
| ----------------------- | --------------------------- | --------------- | ----------------- | --- | ---- | ------------------------ |
-| Debian / Ubuntu (`apt`) | `build-essential cmake pkgconf python3 libboost-dev` | `libsqlite3-dev` | `libcapnp-dev capnproto` | `libzmq3-dev` | `systemtap-sdt-dev` | `qt6-base-dev qt6-tools-dev qt6-l10n-tools qt6-tools-dev-tools libgl-dev qt6-wayland libqrencode-dev` |
-| Fedora (`dnf`) | `gcc-c++ cmake make python3 boost-devel` | `sqlite-devel` | `capnproto capnproto-devel` | `zeromq-devel` | `systemtap-sdt-devel` | `qt6-qtbase-devel qt6-qttools-devel qt6-qtwayland qrencode-devel` |
-| Alpine (`apk`) | `build-base cmake linux-headers pkgconf python3 boost-dev` | `sqlite-dev` | `capnproto capnproto-dev` | `zeromq-dev` | Not supported | `qt6-qtbase-dev qt6-qttools-dev libqrencode-dev` |
-| Arch (`pacman`) | `gcc make cmake pkgconf python boost` | `sqlite` | `capnproto` | `zeromq` | `systemtap` | `qt6-base qt6-tools qt6-wayland qrencode` |
+| Debian / Ubuntu (`apt`) | `build-essential cmake python3 libboost-dev` | `libsqlite3-dev` | `libcapnp-dev capnproto` | `libzmq3-dev pkgconf` | `systemtap-sdt-dev` | `qt6-base-dev qt6-tools-dev qt6-l10n-tools qt6-tools-dev-tools libgl-dev qt6-wayland libqrencode-dev` |
+| Fedora (`dnf`) | `gcc-c++ cmake make python3 boost-devel` | `sqlite-devel` | `capnproto capnproto-devel` | `zeromq-devel pkgconf` | `systemtap-sdt-devel` | `qt6-qtbase-devel qt6-qttools-devel qt6-qtwayland qrencode-devel` |
+| Alpine (`apk`) | `build-base cmake linux-headers python3 boost-dev` | `sqlite-dev` | `capnproto capnproto-dev` | `zeromq-dev` | Not supported | `qt6-qtbase-dev qt6-qttools-dev libqrencode-dev` |
+| Arch (`pacman`) | `gcc make cmake python boost` | `sqlite` | `capnproto` | `zeromq` | `systemtap` | `qt6-base qt6-tools qt6-wayland qrencode` |
+
+<a id="note1"></a>1. Some ZMQ packages do not vendor the CMake config files, which requires `pkgconf` or `pkg-config` to be installed.
For Debian "oldstable", or earlier Ubuntu LTS releases, you may need to pick a
later compiler version, according to the [dependencies](/doc/dependencies.md)
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.