diff options
author | Kevin Bowling <kbowling@FreeBSD.org> | 2025-05-09 20:31:15 -0700 |
---|---|---|
committer | Kevin Bowling <kbowling@FreeBSD.org> | 2025-05-10 01:00:07 -0700 |
commit | 1813f80d00439fc904940b154e3fb5bb44cddd9f (patch) | |
tree | d554a48e4dcbe32a55056683c584e50a1be1c19f | |
parent | textproc/p5-Perl-MinimumVersion: update to 1.44 (diff) |
net-p2p/bitcoin[-daemon,-utils]: Update to 29.0
IMPORTANT:
29.x is the last release series that will support the legacy BDB wallet
format. We are already doing this awkwardly since the format is BDB 4.8
and we are building with BDB 5. This will be removed in 30.0 later this
year.
Instructions:
https://github.com/bitcoin/bitcoin/blob/29.x/doc/managing-wallets.md#migrating-legacy-wallets-to-descriptor-wallets
This release switches to CMake which results in a major refacoring of
the port and underlying build. The result seems good, but please
provide feedback if there are any unexpected changes or problems.
This release dropped UPnP support due to security concerns. NAT-PMP is
implemented as an alternative.
Reviewed by: arrowd (previous revision)
Differential Revision: https://reviews.freebsd.org/D50265
-rw-r--r-- | UPDATING | 21 | ||||
-rw-r--r-- | net-p2p/bitcoin-daemon/Makefile | 29 | ||||
-rw-r--r-- | net-p2p/bitcoin-utils/Makefile | 32 | ||||
-rw-r--r-- | net-p2p/bitcoin/Makefile | 107 | ||||
-rw-r--r-- | net-p2p/bitcoin/distinfo | 6 | ||||
-rw-r--r-- | net-p2p/bitcoin/files/patch-CMakeLists.txt | 11 | ||||
-rw-r--r-- | net-p2p/bitcoin/files/patch-src_qt_trafficgraphwidget.h | 10 |
7 files changed, 114 insertions, 102 deletions
@@ -5,6 +5,27 @@ they are unavoidable. You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +20250510: + AFFECTS: users of net-p2p/bitcoin and/or net-p2p/bitcoin-daemon + AUTHOR: kbowling@FreeBSD.org + + 29.x is the last release series that will support the legacy BDB wallet + format. We are already doing this awkwardly since the format is BDB 4.8 + and we are building with BDB 5. This will be removed in 30.0 later this + year. + + You should upgrade your wallet now if you are still using a legacy wallet. + + Instructions: + https://github.com/bitcoin/bitcoin/blob/29.x/doc/managing-wallets.md#migrating-legacy-wallets-to-descriptor-wallets + + This release switches to CMake which results in a major refacoring of + the port and underlying build. The result seems good, but please + provide feedback if there are any unexpected changes or problems. + + This release dropped UPnP support due to security concerns. NAT-PMP is + implemented as an alternative. + 20250506: AFFECTS: users of databases/postgresql* and other software using PostgreSQL to run AUTHOR: kbowling@FreeBSD.org diff --git a/net-p2p/bitcoin-daemon/Makefile b/net-p2p/bitcoin-daemon/Makefile index 48b7037240c2..6d5b32515f90 100644 --- a/net-p2p/bitcoin-daemon/Makefile +++ b/net-p2p/bitcoin-daemon/Makefile @@ -1,27 +1,30 @@ -MASTERDIR= ${.CURDIR}/../bitcoin PKGNAMESUFFIX= -daemon COMMENT= Virtual Peer-to-Peer Currency (Daemon) SLAVE_PORT= yes -OPTIONS_DEFINE= DEBUG HARDENING TESTS UPNP WALLET ZMQ -OPTIONS_DEFAULT= HARDENING UPNP WALLET ZMQ +USE_RC_SUBR= bitcoind + +CMAKE_ARGS= -DBUILD_DAEMON=ON \ + -DBUILD_CLI=OFF \ + -DBUILD_GUI=OFF \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_TX=OFF \ + -DBUILD_UTIL=OFF \ + -DBUILD_WALLET_TOOL=OFF + +MASTERDIR= ${.CURDIR}/../bitcoin USERS= bitcoin GROUPS= bitcoin -CONFIGURE_ARGS= --with-daemon \ - --without-gui \ - --without-libs \ - --without-qrencode \ - --without-utils - -PLIST_FILES= bin/bitcoind \ - share/man/man1/bitcoind.1.gz \ - "@sample %%ETCDIR%%.conf.sample" +PLIST_FILES= "@sample %%ETCDIR%%.conf.sample" \ + bin/bitcoind \ + share/man/man1/bitcoind.1.gz -USE_RC_SUBR= bitcoind +OPTIONS_DEFINE= DEBUG HARDENING TESTS WALLET ZMQ +OPTIONS_DEFAULT= HARDENING WALLET ZMQ post-install: ${INSTALL_DATA} ${FILESDIR}/bitcoin.conf ${STAGEDIR}${PREFIX}/etc/bitcoin.conf.sample diff --git a/net-p2p/bitcoin-utils/Makefile b/net-p2p/bitcoin-utils/Makefile index c9e58a91c339..2ea5b0eb7303 100644 --- a/net-p2p/bitcoin-utils/Makefile +++ b/net-p2p/bitcoin-utils/Makefile @@ -1,22 +1,30 @@ -MASTERDIR= ${.CURDIR}/../bitcoin PKGNAMESUFFIX= -utils COMMENT= Virtual Peer-to-Peer Currency (CLI and Utilities) + SLAVE_PORT= yes -OPTIONS_DEFINE= DEBUG HARDENING TESTS -OPTIONS_DEFAULT= HARDENING TESTS +CMAKE_ARGS= -DBUILD_CLI=ON \ + -DBUILD_TX=ON \ + -DBUILD_UTIL=ON \ + -DBUILD_DAEMON=OFF \ + -DBUILD_GUI=OFF \ + -DBUILD_SHARED_LIBS=OFF -CONFIGURE_ARGS= --without-daemon \ - --without-gui \ - --without-libs \ - --without-qrencode \ - --without-miniupnpc \ - --with-utils \ - --disable-wallet +MASTERDIR= ${.CURDIR}/../bitcoin -PLIST_FILES= bin/bitcoin-cli bin/bitcoin-tx bin/bitcoin-util \ - share/man/man1/bitcoin-cli.1.gz share/man/man1/bitcoin-tx.1.gz \ +PLIST_FILES= bin/bitcoin-cli \ + bin/bitcoin-tx \ + bin/bitcoin-util \ + share/man/man1/bitcoin-cli.1.gz \ + share/man/man1/bitcoin-tx.1.gz \ share/man/man1/bitcoin-util.1.gz +OPTIONS_DEFINE= DEBUG HARDENING TESTS WALLET +OPTIONS_DEFAULT= HARDENING TESTS WALLET + +WALLET_CMAKE_BOOL+= ENABLE_WALLET_TOOL +WALLET_PLIST_FILES+= bin/bitcoin-wallet \ + share/man/man1/bitcoin-wallet.1.gz + .include "${MASTERDIR}/Makefile" diff --git a/net-p2p/bitcoin/Makefile b/net-p2p/bitcoin/Makefile index 30cc6a5930e4..76c1f2562dda 100644 --- a/net-p2p/bitcoin/Makefile +++ b/net-p2p/bitcoin/Makefile @@ -1,10 +1,10 @@ PORTNAME= bitcoin -PORTVERSION= 28.1 -PORTREVISION= 1 +PORTVERSION= 29.0 CATEGORIES= net-p2p finance MASTER_SITES= https://bitcoincore.org/bin/bitcoin-core-${PORTVERSION}/ \ LOCAL/swills:icon -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} bitcoin128.png:icon +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ + bitcoin128.png:icon DIST_SUBDIR= ${PORTNAME} EXTRACT_ONLY= ${_DISTFILES:N*.png} @@ -19,28 +19,31 @@ LICENSE= MIT LIB_DEPENDS= libboost_date_time.so:devel/boost-libs \ libevent.so:devel/libevent -USES= autoreconf compiler:c++20-lang cpe gmake libtool pkgconfig qt:5 shebangfix - -GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share - SLAVE_PORT?= no +USES= cmake compiler:c++20-lang cpe pkgconfig .if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no" -USES+= desktop-file-utils -USE_QT= core gui network widgets \ - buildtools:build linguisttools:build qmake:build - -BUILD_DEPENDS+= protoc:devel/protobuf -LIB_DEPENDS+= libprotobuf.so:devel/protobuf - -TESTS_USE= QT=testlib -TESTS_PLIST_FILES= bin/test_bitcoin-qt \ - bin/test_bitcoin +USES+= desktop-file-utils qt:5 +USE_QT= core gui network widgets buildtools:build linguisttools:build \ + qmake:build .endif +GH_ACCOUNT= bitcoin -OPTIONS_DEFINE?= DBUS DEBUG HARDENING QRCODES TESTS UPNP WALLET ZMQ -OPTIONS_DEFAULT?= DBUS HARDENING QRCODES UPNP WALLET ZMQ +CMAKE_ARGS?= -DBUILD_GUI=ON \ + -DBUILD_CLI=OFF \ + -DBUILD_DAEMON=OFF \ + -DBUILD_SHARED_LIBS=OFF \ + -DBUILD_TX=OFF \ + -DBUILD_UTIL=OFF \ + -DBUILD_WALLET_TOOL=OFF + +PLIST_FILES?= bin/bitcoin-qt \ + share/applications/bitcoin-qt.desktop \ + share/man/man1/bitcoin-qt.1.gz \ + share/pixmaps/bitcoin128.png + +OPTIONS_DEFINE?= DBUS DEBUG HARDENING QRCODES TESTS WALLET ZMQ +OPTIONS_DEFAULT?= DBUS HARDENING QRCODES WALLET ZMQ OPTIONS_SUB= yes HARDENING_DESC= Attempt to harden binaries (PIE for ASLR, NX Stack) @@ -49,54 +52,36 @@ TESTS_DESC= Build test binary and unit tests WALLET_DESC= Wallet Management Support ZMQ_DESC= Block and transaction broadcasting with ZeroMQ -DBUS_CONFIGURE_WITH= dbus DBUS_USE= QT=dbus +DBUS_CMAKE_BOOL= WITH_DBUS -DEBUG_CONFIGURE_ENABLE= debug -DEBUG_INSTALL_TARGET_OFF= install-strip - -HARDENING_CONFIGURE_ENABLE= hardening - -TESTS_CONFIGURE_ENABLE= tests bench -.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "yes" -TESTS_PLIST_FILES= bin/test_bitcoin -.endif -TESTS_PLIST_FILES+= bin/bench_bitcoin +DEBUG_CMAKE_ON= -DCMAKE_BUILD_TYPE=Debug +DEBUG_CMAKE_OFF= -DCMAKE_BUILD_TYPE=Release -UPNP_CONFIGURE_WITH= miniupnpc -UPNP_LIB_DEPENDS= libminiupnpc.so:net/miniupnpc -UPNP_CPPFLAGS= -I${LOCALBASE}/include -UPNP_LIBS= -L${LOCALBASE}/lib +HARDENING_CMAKE_BOOL= ENABLE_HARDENING -QRCODES_CONFIGURE_WITH= qrencode QRCODES_LIB_DEPENDS= libqrencode.so:graphics/libqrencode +QRCODES_CMAKE_BOOL= WITH_QRENCODE + +.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no" +TESTS_USE= QT=testlib +.endif +TESTS_CMAKE_BOOL= BUILD_BENCH BUILD_TESTS SECP256K1_BUILD_TESTS +TESTS_PLIST_FILES= bin/bench_bitcoin \ + bin/test_bitcoin +.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no" +TESTS_PLIST_FILES+= bin/test_bitcoin-qt +.endif -WALLET_CONFIGURE_OFF= --disable-wallet -WALLET_CONFIGURE_ON= --enable-wallet \ - --with-incompatible-bdb \ - --with-sqlite=yes \ - BDB_CFLAGS=-I${BDB_INCLUDE_DIR} \ - BDB_LIBS="-L${BDB_LIB_DIR} \ - -Wl,-rpath=${BDB_LIB_DIR} \ - -l${BDB_LIB_CXX_NAME}" WALLET_USES= bdb:5+ sqlite:3 +WALLET_CMAKE_ON= -DENABLE_WALLET=ON \ + -DWARN_INCOMPATIBLE_BDB=OFF \ + -DWITH_BDB=ON +WALLET_CMAKE_OFF= -DENABLE_WALLET=OFF -ZMQ_CONFIGURE_ENABLE= zmq ZMQ_BUILD_DEPENDS= libzmq4>0:net/libzmq4 ZMQ_RUN_DEPENDS= libzmq4>0:net/libzmq4 - -GH_ACCOUNT= bitcoin - -CONFIGURE_ARGS?= --without-libs \ - --with-gui=qt5 \ - --without-daemon \ - --without-utils - -CONFIGURE_ENV= OBJCXX="${CXX}" OBJCXXFLAGS="${CXXFLAGS}" -MAKE_ENV+= V=1 - -PLIST_FILES?= bin/bitcoin-qt share/man/man1/bitcoin-qt.1.gz \ - share/applications/bitcoin-qt.desktop share/pixmaps/bitcoin128.png +ZMQ_CMAKE_BOOL= WITH_ZMQ .include <bsd.port.pre.mk> @@ -110,10 +95,4 @@ post-install: .endif -regression-test: build - # To use this sucessfully, remove --without-daemon and --without-utils - # from CONFIGURE_ARGS above. - - @cd ${WRKSRC} && ${GMAKE} check - .include <bsd.port.post.mk> diff --git a/net-p2p/bitcoin/distinfo b/net-p2p/bitcoin/distinfo index 0754292984f4..35bb005936ac 100644 --- a/net-p2p/bitcoin/distinfo +++ b/net-p2p/bitcoin/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1744000680 -SHA256 (bitcoin/bitcoin-28.1.tar.gz) = c5ae2dd041c7f9d9b7c722490ba5a9d624f7e9a089c67090615e1ba4ad0883ba -SIZE (bitcoin/bitcoin-28.1.tar.gz) = 12596371 +TIMESTAMP = 1745116296 +SHA256 (bitcoin/bitcoin-29.0.tar.gz) = 882c782c34a3bf2eacd1fae5cdc58b35b869883512f197f7d6dc8f195decfdaa +SIZE (bitcoin/bitcoin-29.0.tar.gz) = 12935061 SHA256 (bitcoin/bitcoin128.png) = ad880c8459ecfdb96abe6a4689af06bdd27906e0edcd39d0915482f2da91e722 SIZE (bitcoin/bitcoin128.png) = 10639 diff --git a/net-p2p/bitcoin/files/patch-CMakeLists.txt b/net-p2p/bitcoin/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..7c47fb838701 --- /dev/null +++ b/net-p2p/bitcoin/files/patch-CMakeLists.txt @@ -0,0 +1,11 @@ +--- CMakeLists.txt.orig 2025-05-09 20:40:59 UTC ++++ CMakeLists.txt +@@ -153,7 +153,7 @@ endif() + set(USE_QRCODE TRUE) + endif() + +-cmake_dependent_option(WITH_DBUS "Enable DBus support." ON "CMAKE_SYSTEM_NAME STREQUAL \"Linux\" AND BUILD_GUI" OFF) ++cmake_dependent_option(WITH_DBUS "Enable DBus support." ON "CMAKE_SYSTEM_NAME STREQUAL \"FreeBSD\" AND BUILD_GUI" OFF) + + option(WITH_MULTIPROCESS "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental." OFF) + if(WITH_MULTIPROCESS) diff --git a/net-p2p/bitcoin/files/patch-src_qt_trafficgraphwidget.h b/net-p2p/bitcoin/files/patch-src_qt_trafficgraphwidget.h deleted file mode 100644 index 94030b4e20bb..000000000000 --- a/net-p2p/bitcoin/files/patch-src_qt_trafficgraphwidget.h +++ /dev/null @@ -1,10 +0,0 @@ ---- src/qt/trafficgraphwidget.h.orig 2020-05-18 18:05:29 UTC -+++ src/qt/trafficgraphwidget.h -@@ -7,6 +7,7 @@ - - #include <QWidget> - #include <QQueue> -+#include <QPainterPath> - - class ClientModel; - |