Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c725a30
docs: add omitted "Compatibility" heading to release notes template
kwvg Oct 24, 2025
3bb0e30
partial bitcoin#29023: add historical release notes for 26.0
kwvg Jan 15, 2026
310a652
merge bitcoin#30423: simplify `test-security-check`
kwvg Jul 10, 2024
9df31ce
partial bitcoin#30454: Introduce CMake-based build system
kwvg Oct 24, 2025
140848d
partial bitcoin#30509: Add -ipcbind option to bitcoin-node
kwvg Aug 9, 2024
ce6504e
merge bitcoin#27038: test for `_FORTIFY_SOURCE` usage in release bina…
kwvg Jan 22, 2026
5515a69
partial bitcoin#30510: Add IPC wrapper for Mining interface
kwvg Jul 24, 2024
cdc411d
merge bitcoin#31048: Bump minimum supported macOS to 13.0
kwvg Oct 24, 2025
84b1e17
fix: bump `darwin_cmake_system_version` to match `OSX_MIN_VERSION`
kwvg Oct 27, 2025
29c8bd9
merge bitcoin#31099: drop macOS LLVM install instructions
kwvg Jan 15, 2026
8494bd6
partial bitcoin#31105: Update libmultiprocess library
kwvg Oct 16, 2024
e189624
merge bitcoin#31172: increase minimum supported Windows to 10.0
kwvg Jan 15, 2026
7f80572
merge bitcoin#31450: disable gcov in base-linux-gcc
kwvg Nov 20, 2024
973eca0
merge bitcoin#31608: Clarify min macOS and Xcode version
kwvg Jan 15, 2026
bfcf58a
merge bitcoin#31818: remove test-security/symbol-check scripts
kwvg Jan 15, 2026
362013a
merge bitcoin#29881: use GCC 13 to build releases
kwvg Jan 15, 2026
62cb45b
merge bitcoin#32458: move `*-check.py` scripts under `contrib/guix/`
kwvg Jan 15, 2026
369e875
merge bitcoin#32400: Use modern Windows randomness functions
kwvg Jan 22, 2026
7bf7523
merge bitcoin#32760: capnp 1.2.0
kwvg Jun 16, 2025
49f815d
partial bitcoin#32922: use notarized v28.2 binaries and fix macOS det…
kwvg Jan 15, 2026
00f46c2
merge bitcoin#33178: increase maximum allowed (runtime) GCC to 7
kwvg Aug 12, 2025
4a6de56
merge bitcoin#33312: Disable `UndefinedBinaryOperatorResult` check in…
kwvg Jan 23, 2026
f9686bb
partial bitcoin#33489: Drop support for EOL macOS 13
kwvg Jan 22, 2026
88108ac
partial bitcoin#33445: Update Clang in "tidy" job
kwvg Oct 28, 2025
e403bba
merge bitcoin#33780: disable libsanitizer in Linux GCC build
kwvg Oct 28, 2025
e6e4ad0
merge bitcoin#33181: build for Linux HOSTS with `-static-libgcc`
kwvg Sep 9, 2025
6350e93
merge bitcoin#34102: capnp 1.3.0
kwvg Dec 18, 2025
ad5c299
doc: add release notes
kwvg Jan 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 2 additions & 16 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ DIST_SHARE = \
$(top_srcdir)/share/genbuild.sh \
$(top_srcdir)/share/rpcauth

BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
$(top_srcdir)/contrib/devtools/security-check.py \
BIN_CHECKS=$(top_srcdir)/contrib/guix/symbol-check.py \
$(top_srcdir)/contrib/guix/security-check.py \
$(top_srcdir)/contrib/devtools/utils.py

WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/dash.ico \
Expand Down Expand Up @@ -321,17 +321,3 @@ clean-local: clean-docs
rm -rf coverage_percent.txt test_dash.coverage/ total.coverage/ fuzz.coverage/ test/tmp/ cache/ $(OSX_APP)
rm -rf test/functional/__pycache__ test/functional/test_framework/__pycache__ test/cache share/rpcauth/__pycache__
rm -rf dist/

test-security-check:
if TARGET_DARWIN
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_MACHO
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_MACHO
endif
if TARGET_WINDOWS
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_PE
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_PE
endif
if TARGET_LINUX
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-security-check.py TestSecurityChecks.test_ELF
$(AM_V_at) CXX='$(CXX)' CXXFLAGS='$(CXXFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' $(PYTHON) $(top_srcdir)/contrib/devtools/test-symbol-check.py TestSymbolChecks.test_ELF
endif
4 changes: 0 additions & 4 deletions ci/dash/build_src.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,3 @@ fi
if [ "${RUN_TIDY}" = "true" ] && [ "${GITHUB_ACTIONS}" != "true" ]; then
"${BASE_ROOT_DIR}/ci/dash/lint-tidy.sh"
fi

if [ "$RUN_SECURITY_TESTS" = "true" ]; then
make test-security-check
fi
1 change: 0 additions & 1 deletion ci/test/00_setup_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ export USE_BUSY_BOX=${USE_BUSY_BOX:-false}
export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-true}
export RUN_FUNCTIONAL_TESTS=${RUN_FUNCTIONAL_TESTS:-true}
export RUN_TIDY=${RUN_TIDY:-false}
export RUN_SECURITY_TESTS=${RUN_SECURITY_TESTS:-false}
# By how much to scale the test_runner timeouts (option --timeout-factor).
# This is needed because some ci machines have slow CPU or disk, so sanitizers
# might be slow or a reindex might be waiting on disk IO.
Expand Down
2 changes: 0 additions & 2 deletions ci/test/00_setup_env_mac_native_x86_64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,3 @@ export CI_OS_NAME="macos"
export NO_DEPENDS=1
export OSX_SDK=""
export CCACHE_MAXSIZE=300M

export RUN_SECURITY_TESTS="true"
1 change: 0 additions & 1 deletion ci/test/00_setup_env_win64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ export HOST=x86_64-w64-mingw32
export DPKG_ADD_ARCH="i386"
export PACKAGES="python3 nsis g++-mingw-w64-x86-64-posix wine-binfmt wine64 wine32 file"
export RUN_FUNCTIONAL_TESTS=false
export RUN_SECURITY_TESTS="false"
export GOAL="deploy"
# Prior to 11.0.0, the mingw-w64 headers were missing noreturn attributes, causing warnings when
# cross-compiling for Windows. https://sourceforge.net/p/mingw-w64/bugs/306/
Expand Down
13 changes: 8 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -815,7 +815,7 @@ case $host in
AC_MSG_ERROR([windres not found])
fi

CORE_CPPFLAGS="$CORE_CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0601 -D_WIN32_IE=0x0501 -DWIN32_LEAN_AND_MEAN"
CORE_CPPFLAGS="$CORE_CPPFLAGS -D_MT -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0A00 -D_WIN32_IE=0x0A00 -DWIN32_LEAN_AND_MEAN"
dnl Prevent the definition of min/max macros.
dnl We always want to use the standard library.
CORE_CPPFLAGS="$CORE_CPPFLAGS -DNOMINMAX"
Expand All @@ -828,8 +828,10 @@ case $host in
archive_cmds_CXX="\$CC -shared \$libobjs \$deplibs \$compiler_flags -static -o \$output_objdir/\$soname \${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker \$lib"
postdeps_CXX=

dnl We require Windows 7 (NT 6.1) or later
AX_CHECK_LINK_FLAG([-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1], [CORE_LDFLAGS="$CORE_LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,1"], [], [$LDFLAG_WERROR])
dnl We support Windows 10+, however it's not possible to set these values accordingly,
dnl due to a bug in mingw-w64. See https://sourceforge.net/p/mingw-w64/bugs/968/.
dnl As a best effort, target Windows 8.
AX_CHECK_LINK_FLAG([-Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,2], [CORE_LDFLAGS="$CORE_LDFLAGS -Wl,--major-subsystem-version -Wl,6 -Wl,--minor-subsystem-version -Wl,2"], [], [$LDFLAG_WERROR])

dnl Avoid the use of aligned vector instructions when building for Windows.
dnl See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54412.
Expand Down Expand Up @@ -1073,8 +1075,7 @@ if test "$use_hardening" != "no"; then

case $host in
*mingw*)
dnl stack-clash-protection doesn't compile with GCC 10 and earlier.
dnl In any case, it is a no-op for Windows.
dnl stack-clash-protection is a no-op for Windows.
dnl See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90458 for more details.
;;
*)
Expand Down Expand Up @@ -2054,6 +2055,8 @@ AM_COND_IF([HAVE_DOXYGEN], [AC_CONFIG_FILES([doc/Doxyfile])])
AC_CONFIG_LINKS([contrib/filter-lcov.py:contrib/filter-lcov.py])
AC_CONFIG_LINKS([src/.bear-tidy-config:src/.bear-tidy-config])
AC_CONFIG_LINKS([src/.clang-tidy:src/.clang-tidy])
AC_CONFIG_LINKS([src/ipc/.clang-tidy:src/ipc/.clang-tidy])
AC_CONFIG_LINKS([src/test/.clang-tidy:src/test/.clang-tidy])
AC_CONFIG_LINKS([test/functional/test_runner.py:test/functional/test_runner.py])
AC_CONFIG_LINKS([test/fuzz/test_runner.py:test/fuzz/test_runner.py])
AC_CONFIG_LINKS([test/util/test_runner.py:test/util/test_runner.py])
Expand Down
29 changes: 0 additions & 29 deletions contrib/devtools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,35 +171,6 @@ optimize-pngs.py
A script to optimize png files in the dash
repository (requires pngcrush).

security-check.py and test-security-check.py
============================================

Perform basic security checks on a series of executables.

symbol-check.py
===============

A script to check that release executables only contain
certain symbols and are only linked against allowed libraries.

For Linux this means checking for allowed gcc, glibc and libstdc++ version symbols.
This makes sure they are still compatible with the minimum supported distribution versions.

For macOS and Windows we check that the executables are only linked against libraries we allow.

Example usage:

find ../path/to/executables -type f -executable | xargs python3 contrib/devtools/symbol-check.py

If no errors occur the return value will be 0 and the output will be empty.

If there are any errors the return value will be 1 and output like this will be printed:

.../64/test_dash: symbol memcpy from unsupported version GLIBC_2.14
.../64/test_dash: symbol __fdelt_chk from unsupported version GLIBC_2.15
.../64/test_dash: symbol std::out_of_range::~out_of_range() from unsupported version GLIBCXX_3.4.15
.../64/test_dash: symbol _ZNSt8__detail15_List_nod from unsupported version GLIBCXX_3.4.15

update-translations.py
======================

Expand Down
149 changes: 0 additions & 149 deletions contrib/devtools/test-security-check.py

This file was deleted.

Loading
Loading