Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Mar 2018 17:52:54 +0000 (UTC)
From:      Vasil Dimov <vd@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r465909 - in head/net-p2p: bitcoin bitcoin-daemon bitcoin-utils
Message-ID:  <201803291752.w2THqs4Z030787@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vd
Date: Thu Mar 29 17:52:54 2018
New Revision: 465909
URL: https://svnweb.freebsd.org/changeset/ports/465909

Log:
  net-p2p/bitcoin: Add an option to use newer BDB
  
  Make the new option the default, so that when the port is recompiled it
  will link against BDB 5.x or 6.x (whichever is the default in the system).
  This will keep old wallet files readable and will not automatically
  convert them in an incompatible with BDB 4.8 way. Newly created wallet
  files will not be readable by Bitcoin Core versions linked with BDB 4.8.
  
  Next thing to consider is to remove the option to link against BDB 4.8 as
  this will remove the net-p2p/bitcoin -> databases/db48 dependency and will
  make it possible to ditch the latter, which is scheduled for removal from
  the ports collection on Apr 30 2018.
  
  PR:		226527
  Approved by:	kbowling (maintainer), antoine

Added:
  head/net-p2p/bitcoin/pkg-help   (contents, props changed)
Modified:
  head/net-p2p/bitcoin-daemon/Makefile
  head/net-p2p/bitcoin-utils/Makefile
  head/net-p2p/bitcoin/Makefile

Modified: head/net-p2p/bitcoin-daemon/Makefile
==============================================================================
--- head/net-p2p/bitcoin-daemon/Makefile	Thu Mar 29 17:52:06 2018	(r465908)
+++ head/net-p2p/bitcoin-daemon/Makefile	Thu Mar 29 17:52:54 2018	(r465909)
@@ -10,8 +10,10 @@ SLAVE_PORT=	yes
 NOT_FOR_ARCHS=		powerpc powerpc64 sparc64
 NOT_FOR_ARCHS_REASON=	does not support big-endian architectures
 
-OPTIONS_DEFINE=		DEBUG HARDENING TESTS UPNP WALLET ZMQ
-OPTIONS_DEFAULT=	HARDENING UPNP WALLET
+OPTIONS_DEFINE=		DEBUG HARDENING TESTS UPNP ZMQ
+# WALLET_BDBMODERN is a choice for WALLET, introduced via OPTIONS_RADIO=WALLET
+# from ${MASTERDIR}/Makefile
+OPTIONS_DEFAULT=	HARDENING UPNP WALLET_BDBMODERN
 
 USERS=		bitcoin
 GROUPS=		bitcoin

Modified: head/net-p2p/bitcoin-utils/Makefile
==============================================================================
--- head/net-p2p/bitcoin-utils/Makefile	Thu Mar 29 17:52:06 2018	(r465908)
+++ head/net-p2p/bitcoin-utils/Makefile	Thu Mar 29 17:52:54 2018	(r465909)
@@ -10,7 +10,10 @@ NOT_FOR_ARCHS=		powerpc powerpc64 sparc64
 NOT_FOR_ARCHS_REASON=	does not support big-endian architectures
 
 OPTIONS_DEFINE=		DEBUG HARDENING TESTS
+OPTIONS_RADIO=
 OPTIONS_DEFAULT=	HARDENING TESTS
+
+PKGHELP=	${NONEXISTENT}
 
 CONFIGURE_ARGS=	--without-daemon \
 		--without-gui \

Modified: head/net-p2p/bitcoin/Makefile
==============================================================================
--- head/net-p2p/bitcoin/Makefile	Thu Mar 29 17:52:06 2018	(r465908)
+++ head/net-p2p/bitcoin/Makefile	Thu Mar 29 17:52:54 2018	(r465909)
@@ -4,7 +4,7 @@
 PORTNAME=	bitcoin
 PORTVERSION=	0.16.0
 DISTVERSIONPREFIX=	v
-PORTREVISION?=	0
+PORTREVISION?=	1
 CATEGORIES=	net-p2p finance
 
 MAINTAINER=	kbowling@FreeBSD.org
@@ -36,14 +36,18 @@ TESTS_PLIST_FILES=	bin/test_bitcoin-qt \
 			bin/test_bitcoin
 .endif
 
-OPTIONS_DEFINE?=	DBUS DEBUG HARDENING QRCODES TESTS UPNP WALLET ZMQ
-OPTIONS_DEFAULT?=	DBUS HARDENING QRCODES UPNP WALLET
+OPTIONS_DEFINE?=	DBUS DEBUG HARDENING QRCODES TESTS UPNP ZMQ
+OPTIONS_RADIO?=		WALLET
+OPTIONS_RADIO_WALLET?=	WALLET_BDB48 WALLET_BDBMODERN
+OPTIONS_DEFAULT?=	DBUS HARDENING QRCODES UPNP WALLET_BDBMODERN
 OPTIONS_SUB=		yes
 
 HARDENING_DESC=	Attempt to harden binaries (PIE for ASLR, NX Stack)
 QRCODES_DESC=	Display QR Codes
 TESTS_DESC=	Build test binary and unit tests
 WALLET_DESC=	Wallet Management Support
+WALLET_BDB48_DESC=	Wallet using BDB 4.8
+WALLET_BDBMODERN_DESC=	Wallet using modern BDB 5.x or 6.x
 ZMQ_DESC=	Block and transaction broadcasting with ZeroMQ
 
 DBUS_CONFIGURE_WITH=	dbus
@@ -68,11 +72,6 @@ UPNP_LIBS=		-L${LOCALBASE}/lib
 QRCODES_CONFIGURE_WITH=	qrencode
 QRCODES_LIB_DEPENDS=	libqrencode.so:graphics/libqrencode
 
-WALLET_CONFIGURE_ENABLE=	wallet
-WALLET_CXXFLAGS=		-I${BDB_INCLUDE_DIR}
-WALLET_LIBS=			-L${BDB_LIB_DIR}
-WALLET_USES=			bdb:48
-
 ZMQ_CONFIGURE_ENABLE=	zmq
 ZMQ_BUILD_DEPENDS=	libzmq4>0:net/libzmq4
 ZMQ_RUN_DEPENDS=	libzmq4>0:net/libzmq4
@@ -92,7 +91,24 @@ MAKE_ENV+=	V=1
 PLIST_FILES?=	bin/bitcoin-qt man/man1/bitcoin-qt.1.gz \
 		share/applications/bitcoin-qt.desktop share/pixmaps/bitcoin128.png
 
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MWALLET_BDB48}
+CONFIGURE_ARGS+=	--enable-wallet
+USES+=			bdb:48
+.elif ${PORT_OPTIONS:MWALLET_BDBMODERN}
+CONFIGURE_ARGS+=	--enable-wallet --with-incompatible-bdb
+USES+=			bdb:5+
+.else
+CONFIGURE_ARGS+=	--disable-wallet
+.endif
+
 .include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MWALLET_BDB48} || ${PORT_OPTIONS:MWALLET_BDBMODERN}
+CPPFLAGS+=	-I${BDB_INCLUDE_DIR}
+LIBS+=		-L${BDB_LIB_DIR}
+.endif
 
 .if ${OSVERSION} < 1100000
 CONFIGURE_ARGS+=--disable-asm

Added: head/net-p2p/bitcoin/pkg-help
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-p2p/bitcoin/pkg-help	Thu Mar 29 17:52:54 2018	(r465909)
@@ -0,0 +1,18 @@
+The wallet is stored in a Berkeley database file (BDB) (usually
+~/.bitcoin/wallets/wallet.dat).
+
+Bitcoin Core can use either BDB 4.8, 5.x or 6.x to create and access the
+wallet file.
+
+Wallets created using BDB 4.8 are also accessible by BDB 5.x and 6.x.
+
+Wallets created using BDB 5.x or 6.x are not accessible by BDB 4.8.
+
+Opening and using a wallet created by 4.8 with a higher major version (5.x
+or 6.x) does not change its format, so it will still be accessible to 4.8
+afterwards. But encrypting an unencrypted wallet recreates it, so encrypting
+a 4.8 wallet with Bitcoin Core linked against BDB 5.x or 6.x will render it
+unreadable for Bitcoin Core linked against BDB 4.8.
+
+If you do not plan on copying the wallet file to another machine that uses
+BDB 4.8 then it is recommended to use the modern versions of BDB 5.x or 6.x.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201803291752.w2THqs4Z030787>