What changed, and why it matters
This commit fixes the Windows/MinGW build process for the Elements project. It renames leftover 'bitcoin' installer filenames to 'elements', corrects a path used by the installer graphics, and adjusts which internal libraries are linked and in what order so the software compiles successfully on Windows. There is no indication this changes runtime behavior or fixes a security vulnerability.
No security action required. Treat as a normal build-fix commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff is purely build-system maintenance. Changes include: (1) renaming the generated NSIS installer from bitcoin-win64-setup.nsi/exe to elements-win64-setup.nsi/exe; (2) switching two NSIS bitmap paths from the build directory to the source directory; (3) changing several CMake target_link_libraries visibility keywords from PRIVATE to PUBLIC for bitcoin_consensus, bitcoin_common, and bitcoin_node; (4) adding bitcoin_node as a private dependency of bitcoin_wallet; and (5) reordering secp256k1 in link lists. These are typical dependency-visibility and symbol-resolution fixes for a MinGW toolchain and do not alter consensus, networking, wallet, or cryptographic logic.
Changed components
Windows/MinGW build (CMake/NSIS)contrib/guix build scriptshare/setup.nsi.in installer templatesrc/CMakeLists.txtsrc/wallet/CMakeLists.txtInspect captured patch +12 / −11
diff --git a/cmake/module/GenerateSetupNsi.cmake b/cmake/module/GenerateSetupNsi.cmake
index c121fa1..f4b825a 100644
--- a/cmake/module/GenerateSetupNsi.cmake
+++ b/cmake/module/GenerateSetupNsi.cmake
@@ -14,5 +14,5 @@ function(generate_setup_nsi)
set(BITCOIN_WALLET_TOOL_NAME "elements-wallet")
set(BITCOIN_TEST_NAME "test_bitcoin")
set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
- configure_file(${PROJECT_SOURCE_DIR}/share/setup.nsi.in ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.nsi USE_SOURCE_PERMISSIONS @ONLY)
+ configure_file(${PROJECT_SOURCE_DIR}/share/setup.nsi.in ${PROJECT_BINARY_DIR}/elements-win64-setup.nsi USE_SOURCE_PERMISSIONS @ONLY)
endfunction()
diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh
old mode 100755
new mode 100644
index 98e2cbe..6888b7d
--- a/contrib/guix/libexec/build.sh
+++ b/contrib/guix/libexec/build.sh
@@ -258,7 +258,7 @@ mkdir -p "$DISTSRC"
case "$HOST" in
*mingw*)
cmake --build build -j "$JOBS" -t deploy ${V:+--verbose}
- mv build/bitcoin-win64-setup.exe "${OUTDIR}/${DISTNAME}-win64-setup-unsigned.exe"
+ mv build/elements-win64-setup.exe "${OUTDIR}/${DISTNAME}-win64-setup-unsigned.exe"
;;
esac
diff --git a/share/setup.nsi.in b/share/setup.nsi.in
index 0e13371..ae319fe 100644
--- a/share/setup.nsi.in
+++ b/share/setup.nsi.in
@@ -16,7 +16,7 @@ Unicode true
# MUI Symbol Definitions
!define MUI_ICON "@abs_top_srcdir@/src/qt/res/icons/bitcoin.ico"
-!define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_builddir@/share/pixmaps/nsis-wizard.bmp"
+!define MUI_WELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-header.bmp"
@@ -28,7 +28,7 @@ Unicode true
!define MUI_FINISHPAGE_RUN "$WINDIR\explorer.exe"
!define MUI_FINISHPAGE_RUN_PARAMETERS $INSTDIR\@BITCOIN_GUI_NAME@@EXEEXT@
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
-!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@abs_top_builddir@/share/pixmaps/nsis-wizard.bmp"
+!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@abs_top_srcdir@/share/pixmaps/nsis-wizard.bmp"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
# Included files
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1cee695..c52792e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -161,7 +161,7 @@ add_library(bitcoin_consensus STATIC EXCLUDE_FROM_ALL
uint256.cpp
)
target_link_libraries(bitcoin_consensus
- PRIVATE
+ PUBLIC
core_interface
bitcoin_crypto
elementssimplicity
@@ -234,7 +234,7 @@ add_library(bitcoin_common STATIC EXCLUDE_FROM_ALL
script/solver.cpp
)
target_link_libraries(bitcoin_common
- PRIVATE
+ PUBLIC
core_interface
bitcoin_consensus
bitcoin_util
@@ -259,10 +259,10 @@ if(ENABLE_WALLET)
add_windows_resources(elements-wallet bitcoin-wallet-res.rc)
target_link_libraries(elements-wallet
core_interface
- secp256k1
bitcoin_node
bitcoin_wallet
bitcoin_common
+ secp256k1
)
install_binary_component(elements-wallet HAS_MANPAGE)
endif()
@@ -372,7 +372,7 @@ add_library(bitcoin_node STATIC EXCLUDE_FROM_ALL
$<$<NOT:$<TARGET_EXISTS:bitcoin_wallet>>:dummywallet.cpp>
)
target_link_libraries(bitcoin_node
- PRIVATE
+ PUBLIC
core_interface
bitcoin_common
bitcoin_util
@@ -381,13 +381,13 @@ target_link_libraries(bitcoin_node
minisketch
univalue
Boost::headers
- secp256k1
elementssimplicity
$<TARGET_NAME_IF_EXISTS:libevent::libevent>
$<TARGET_NAME_IF_EXISTS:libevent::core>
$<TARGET_NAME_IF_EXISTS:libevent::extra>
$<TARGET_NAME_IF_EXISTS:libevent::pthreads>
$<TARGET_NAME_IF_EXISTS:USDT::headers>
+ secp256k1
)
@@ -401,8 +401,8 @@ if(BUILD_DAEMON)
target_link_libraries(elementsd
core_interface
bitcoin_node
- secp256k1
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
+ secp256k1
)
install_binary_component(elementsd HAS_MANPAGE)
endif()
@@ -415,8 +415,8 @@ if(WITH_MULTIPROCESS AND BUILD_DAEMON)
core_interface
bitcoin_node
bitcoin_ipc
- secp256k1
$<TARGET_NAME_IF_EXISTS:bitcoin_wallet>
+ secp256k1
)
install_binary_component(elements-node)
endif()
diff --git a/src/wallet/CMakeLists.txt b/src/wallet/CMakeLists.txt
index 7f474b8..2989aa5 100644
--- a/src/wallet/CMakeLists.txt
+++ b/src/wallet/CMakeLists.txt
@@ -38,6 +38,7 @@ target_link_libraries(bitcoin_wallet
PRIVATE
core_interface
bitcoin_common
+ bitcoin_node
univalue
Boost::headers
$<TARGET_NAME_IF_EXISTS:USDT::headers>
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.