aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasil Dimov <vd@FreeBSD.org>2018-03-27 01:33:29 +0800
committerVasil Dimov <vd@FreeBSD.org>2018-03-27 01:33:29 +0800
commit9dc803128115d81699c2cf79d245469c00eeaf1a (patch)
treeb8bde061187d0843e7f05868dae92010b003566d
parent8bdbb6488896ed6cbbc4c88f945c05cf90c1f34d (diff)
downloadfreebsd-ports-9dc803128115d81699c2cf79d245469c00eeaf1a.tar.gz
freebsd-ports-9dc803128115d81699c2cf79d245469c00eeaf1a.tar.zst
freebsd-ports-9dc803128115d81699c2cf79d245469c00eeaf1a.zip
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)
Notes
Notes: svn path=/head/; revision=465619
-rw-r--r--net-p2p/bitcoin/Makefile17
-rw-r--r--net-p2p/bitcoin/pkg-help18
2 files changed, 32 insertions, 3 deletions
diff --git a/net-p2p/bitcoin/Makefile b/net-p2p/bitcoin/Makefile
index af38d71a3823..350976e77221 100644
--- a/net-p2p/bitcoin/Makefile
+++ b/net-p2p/bitcoin/Makefile
@@ -4,7 +4,7 @@
PORTNAME= bitcoin
PORTVERSION= 0.16.0
DISTVERSIONPREFIX= v
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= net-p2p finance
MAINTAINER= kbowling@FreeBSD.org
@@ -37,9 +37,14 @@ TESTS_PLIST_FILES= bin/test_bitcoin-qt \
.endif
OPTIONS_DEFINE?= DBUS DEBUG HARDENING QRCODES TESTS UPNP WALLET ZMQ
-OPTIONS_DEFAULT?= DBUS HARDENING QRCODES UPNP WALLET
+OPTIONS_SINGLE= BDBVER
+OPTIONS_SINGLE_BDBVER= BDB48 BDBMODERN
+OPTIONS_DEFAULT?= BDBMODERN DBUS HARDENING QRCODES UPNP WALLET
OPTIONS_SUB= yes
+BDBVER_DESC= Berkeley DB version to use for wallet
+BDB48_DESC= Use BDB 4.8 (compatible with 5.x and 6.x)
+BDBMODERN_DESC= Use BDB 5.x or 6.x (not compatible with 4.8)
HARDENING_DESC= Attempt to harden binaries (PIE for ASLR, NX Stack)
QRCODES_DESC= Display QR Codes
TESTS_DESC= Build test binary and unit tests
@@ -71,7 +76,6 @@ 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
@@ -94,6 +98,13 @@ PLIST_FILES?= bin/bitcoin-qt man/man1/bitcoin-qt.1.gz \
.include <bsd.port.pre.mk>
+.if empty(PORT_OPTIONS:MBDB48)
+WALLET_CONFIGURE_ON= --with-incompatible-bdb
+WALLET_USES= bdb:5+
+.else
+WALLET_USES= bdb:48
+.endif
+
.if ${OSVERSION} < 1100000
CONFIGURE_ARGS+=--disable-asm
.endif
diff --git a/net-p2p/bitcoin/pkg-help b/net-p2p/bitcoin/pkg-help
new file mode 100644
index 000000000000..e73a63038c07
--- /dev/null
+++ b/net-p2p/bitcoin/pkg-help
@@ -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.