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 +.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.