aboutsummaryrefslogtreecommitdiffstats
path: root/net-p2p
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p')
-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.