This change moves binaries that are not typically invoked directly by users from the bin/
directory to the libexec/
directory in CMake installs and binary releases. The goal of the PR is to introduce a distinction between internal and external binaries so starting with #31802, we can use IPC to implement features in new binaries without adding those binaries to the CLI. The change also helps reduce clutter in bin/
, making it easier for users to identify useful tools to run. Summary of changes:
- For source builds (i.e. developer builds) — There are no changes.
- For source installs (i.e.
cmake --install
result) —test_bitcoin
,test_bitcoin-qt
, andbench_bitcoin
are installed in${CMAKE_PREFIX_PATH}/libexec
instead of${CMAKE_PREFIX_PATH}/bin
, so they are no longer on the systemPATH
. However, they can still be invoked from thelibexec/
directory, or from the CLI asbitcoin test
,bitcoin test-gui
, andbitcoin bench
, respectively. - For binary releases — Since
test_bitcoin
is the only test binary enabled in releases, the only change is movingtest_bitcoin
frombin/
tolibexec/
.
The table below shows the install location of each binary after this change, and the availability of each binary.
Binary | Location | Availability | Change |
---|---|---|---|
bitcoin |
bin/ |
📦 Binary release (since #31375) | Unchanged |
bitcoin-cli |
bin/ |
📦 Binary release | Unchanged |
bitcoind |
bin/ |
📦 Binary release | Unchanged |
bitcoin-qt |
bin/ |
📦 Binary release | Unchanged |
bitcoin-tx |
bin/ |
📦 Binary release | Unchanged |
bitcoin-util |
bin/ |
📦 Binary release | Unchanged |
bitcoin-wallet |
bin/ |
📦 Binary release | Unchanged |
bench_bitcoin |
libexec/ |
🛠 Source build only | Moved from bin/ |
bitcoin-chainstate |
libexec/ |
🛠 Source build only | Newly installed (was built) |
bitcoin-gui |
libexec/ |
🛠 Source build only (until #31802) | Moved from bin/ |
bitcoin-node |
libexec/ |
🛠 Source build only (until #31802) | Moved from bin/ |
test_bitcoin |
libexec/ |
📦 Binary release | Moved from bin/ |
test_bitcoin-qt |
libexec/ |
🛠 Source build only | Moved from bin/ |
This PR is part of the process separation project.