Compare commits

...

6 commits

Author SHA1 Message Date
Ryan Ofsky
5f55ce21dd
Merge bda7626e98 into c5e44a0435 2025-04-29 11:56:56 +02:00
merge-script
c5e44a0435
Merge bitcoin/bitcoin#32369: test: Use the correct node for doubled keypath test
Some checks are pending
CI / macOS 14 native, arm64, fuzz (push) Waiting to run
CI / Windows native, VS 2022 (push) Waiting to run
CI / Windows native, fuzz, VS 2022 (push) Waiting to run
CI / Linux->Windows cross, no tests (push) Waiting to run
CI / Windows, test cross-built (push) Blocked by required conditions
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
32d55e28af test: Use the correct node for doubled keypath test (Ava Chow)

Pull request description:

  #29124 had a silent merge conflict with #32350 which resulted in it using the wrong node. Fix the test to use the correct v22 node.

ACKs for top commit:
  maflcko:
    lgtm ACK 32d55e28af
  rkrux:
    ACK 32d55e28af
  BrandonOdiwuor:
    Code Review ACK 32d55e28af

Tree-SHA512: 1e0231985beb382b16e1d608c874750423d0502388db0c8ad450b22d17f9d96f5e16a6b44948ebda5efc750f62b60d0de8dd20131f449427426a36caf374af92
2025-04-29 09:59:42 +01:00
Ava Chow
32d55e28af test: Use the correct node for doubled keypath test 2025-04-28 14:44:17 -07:00
Ryan Ofsky
bda7626e98 doc: Add description of installed files to files.md 2025-04-14 09:29:04 -04:00
Ryan Ofsky
2f04eff3e9 doc: Add release notes describing libexec/ binaries 2025-04-09 18:04:03 -04:00
Ryan Ofsky
45bfd97ec7 cmake: Move internal binaries from bin/ to libexec/
Currently when "make install" or "cmake --install" are run, various internal
binaries that are confusing and not typically useful and installed to
`${CMAKE_INSTALL_PREFIX}/bin` and can wind up on the system PATH. This PR moves
internal binaries out of bin/ into libexec/ where they will still be accessible
but will not be automatically placed on the PATH or be confused with more
useful binaries. The PR also adds an install rule for the bitcoin-chainstate
binary. After this PR binaries installed to bin/ are:

- bitcoin-cli
- bitcoind
- bitcoin-qt
- bitcoin-tx
- bitcoin-util
- bitcoin-wallet

And binaries installed to libexec/ are:

- bench_bitcoin
- bitcoin-gui
- bitcoin-node
- test_bitcoin
- test_bitcoin-qt

In the future if #31375 gets merged, there will be a new `bitcoin` wrapper
executable in bin/ that can be used to call other binaries, and with that
present, we could consider moving other binaries from bin/ to libexec/ and
recommending that most users should use the wrapper instead of calling the
different utilities directly. But this PR should make sense with or without
#31375.
2025-02-14 08:19:12 -05:00
10 changed files with 59 additions and 11 deletions

View file

@ -145,7 +145,7 @@ if [ "$RUN_UNIT_TESTS" = "true" ]; then
fi
if [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]; then
DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" "${BASE_OUTDIR}"/bin/test_bitcoin --catch_system_errors=no -l test_suite
DIR_UNIT_TEST_DATA="${DIR_UNIT_TEST_DATA}" LD_LIBRARY_PATH="${DEPENDS_DIR}/${HOST}/lib" "${BASE_OUTDIR}"/libexec/test_bitcoin --catch_system_errors=no -l test_suite
fi
if [ "$RUN_FUNCTIONAL_TESTS" = "true" ]; then

View file

@ -8,13 +8,18 @@ include(GNUInstallDirs)
function(install_binary_component component)
cmake_parse_arguments(PARSE_ARGV 1
IC # prefix
"HAS_MANPAGE" # options
"HAS_MANPAGE;INTERNAL" # options
"" # one_value_keywords
"" # multi_value_keywords
)
set(target_name ${component})
if(IC_INTERNAL)
set(runtime_dest ${CMAKE_INSTALL_LIBEXECDIR})
else()
set(runtime_dest ${CMAKE_INSTALL_BINDIR})
endif()
install(TARGETS ${target_name}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
RUNTIME DESTINATION ${runtime_dest}
COMPONENT ${component}
)
if(INSTALL_MAN AND IC_HAS_MANPAGE)

View file

@ -16,7 +16,7 @@
- [Legacy subdirectories and files](#legacy-subdirectories-and-files)
- [Notes](#notes)
- [Installed Files](#installed-files)
## Data directory location
@ -123,8 +123,39 @@ Path | Description | Repository notes
`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/bitcoin/bitcoin/pull/1198), [`928d3a01`](https://github.com/bitcoin/bitcoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc)
`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/bitcoin/bitcoin/pull/19954)
## Notes
### Notes
<a name="note1">1</a>. The `/` (slash, U+002F) is used as the platform-independent path component separator in this document.
<a name="note2">2</a>. `NNNNN` matches `[0-9]{5}` regex.
## Installed Files
This table describes the files installed by Bitcoin across different platforms.
| **Path** | **Description** |
|----------|-----------------|
| [README.md](README.md) or [readme.txt](README_windows.txt) | Project information and instructions |
| bitcoin.conf | [Generated](../contrib/devtools/gen-bitcoin-conf.sh) configuration file |
| bin/bitcoin-cli | Command-line tool to interact with the Bitcoin node over RPC |
| bin/bitcoin-qt | Bitcoin node and wallet GUI |
| bin/bitcoin-tx | Tool for creating and modifying transactions |
| bin/bitcoin-util | Miscellaneous utilities |
| bin/bitcoin-wallet | Bitcoin wallet tool |
| bin/bitcoind | Bitcoin node and wallet daemon |
| *lib/libbitcoinkernel.so* | Shared library containing core consensus and validation code |
| *lib/pkgconfig/libbitcoinkernel.pc* | Pkg-config metadata for linking to `libbitcoinkernel` |
| *libexec/bench_bitcoin* | Benchmarking tool for measuring node performance |
| *libexec/bitcoin-chainstate* | Tool to validate and connect blocks |
| *libexec/bitcoin-gui* | IPC-enabled alternative to `bitcoin-qt` |
| *libexec/bitcoin-node* | IPC-enabled alternative to `bitcoind` |
| libexec/test_bitcoin | Unit test binary |
| *libexec/test_bitcoin-qt* | GUI-specific unit tests |
| share/man/man1/ | Man pages for command-line tools like `bitcoin-cli`, `bitcoind`, and others |
| share/rpcauth/ | Documentation and scripts for RPC authentication setup |
### Notes
- *Italicized* files are installed in source builds but not included in binary releases.
- README and bitcoin.conf files included in binary releases but not installed in source builds.
- On Windows, binaries have a `.exe` suffix (e.g., `bitcoin-cli.exe`).

View file

@ -0,0 +1,11 @@
Install changes
---------------
The `test_bitcoin`, `test_bitcoin-qt`, `bench_bitcoin`, `bitcoin-chainstate`,
`bitcoin-node`, and `bitcoin-wallet` binaries are now installed in
`$PREFIX/libexec` rather than `$PREFIX/bin`. If you are using a binary release
or building from source with default build options, most of these programs are
not built by default anyway so these changes may not be noticable.
Goal of this change is to organize binaries better and not add binaries that
rarely need to be executed directly on the system PATH.

View file

@ -357,7 +357,7 @@ if(ENABLE_IPC AND BUILD_DAEMON)
bitcoin_ipc
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
)
install_binary_component(bitcoin-node)
install_binary_component(bitcoin-node INTERNAL)
endif()
if(ENABLE_IPC AND BUILD_TESTS)
@ -456,6 +456,7 @@ if(BUILD_UTIL_CHAINSTATE)
core_interface
bitcoinkernel
)
install_binary_component(bitcoin-chainstate INTERNAL)
endif()

View file

@ -83,4 +83,4 @@ add_test(NAME bench_sanity_check
COMMAND bench_bitcoin -sanity-check
)
install_binary_component(bench_bitcoin)
install_binary_component(bench_bitcoin INTERNAL)

View file

@ -281,7 +281,7 @@ if(ENABLE_IPC)
bitcoin_ipc
)
import_plugins(bitcoin-gui)
install_binary_component(bitcoin-gui)
install_binary_component(bitcoin-gui INTERNAL)
if(WIN32)
set_target_properties(bitcoin-gui PROPERTIES WIN32_EXECUTABLE TRUE)
endif()

View file

@ -45,4 +45,4 @@ if(WIN32 AND VCPKG_TARGET_TRIPLET)
)
endif()
install_binary_component(test_bitcoin-qt)
install_binary_component(test_bitcoin-qt INTERNAL)

View file

@ -210,4 +210,4 @@ endfunction()
add_all_test_targets()
install_binary_component(test_bitcoin)
install_binary_component(test_bitcoin INTERNAL)

View file

@ -87,7 +87,7 @@ class BackwardsCompatibilityTest(BitcoinTestFramework):
# 0.21.x and 22.x would both produce bad derivation paths when topping up an inactive hd chain
# Make sure that this is being automatically cleaned up by migration
node_master = self.nodes[1]
node_v22 = self.nodes[self.num_nodes - 5]
node_v22 = self.nodes[self.num_nodes - 3]
wallet_name = "bad_deriv_path"
node_v22.createwallet(wallet_name=wallet_name, descriptors=False)
bad_deriv_wallet = node_v22.get_wallet_rpc(wallet_name)