Merge PR #374: Change reference version of Berkeley DB to 5.1
This breaks forward compatibility of old clients. You can downgrade your wallet though with "db5.1_dump wallet.dat.old | db4.8_load wallet.dat"
This commit is contained in:
parent
c730403b17
commit
112c5c95a7
|
@ -233,7 +233,7 @@ case $host in
|
||||||
if test x$BREW = xbrew; then
|
if test x$BREW = xbrew; then
|
||||||
dnl add default homebrew paths
|
dnl add default homebrew paths
|
||||||
openssl_prefix=`$BREW --prefix openssl`
|
openssl_prefix=`$BREW --prefix openssl`
|
||||||
bdb_prefix=`$BREW --prefix berkeley-db4`
|
bdb_prefix=`$BREW --prefix berkeley-db5`
|
||||||
export PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
|
export PKG_CONFIG_PATH="$openssl_prefix/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
|
CPPFLAGS="$CPPFLAGS -I$bdb_prefix/include"
|
||||||
LIBS="$LIBS -L$bdb_prefix/lib"
|
LIBS="$LIBS -L$bdb_prefix/lib"
|
||||||
|
@ -359,7 +359,7 @@ AC_SUBST(LIBMEMENV)
|
||||||
|
|
||||||
if test x$enable_wallet != xno; then
|
if test x$enable_wallet != xno; then
|
||||||
dnl Check for libdb_cxx only if wallet enabled
|
dnl Check for libdb_cxx only if wallet enabled
|
||||||
BITCOIN_FIND_BDB48
|
BITCOIN_FIND_BDB51
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl Check for libminiupnpc (optional)
|
dnl Check for libminiupnpc (optional)
|
||||||
|
|
|
@ -23,7 +23,7 @@ for the build process to succeed.
|
||||||
name default path download
|
name default path download
|
||||||
--------------------------------------------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------------------------------------------
|
||||||
OpenSSL \openssl-1.0.1c-mgw http://www.openssl.org/source/
|
OpenSSL \openssl-1.0.1c-mgw http://www.openssl.org/source/
|
||||||
Berkeley DB \db-4.8.30.NC-mgw http://www.oracle.com/technology/software/products/berkeley-db/index.html
|
Berkeley DB \db-5.1.29.NC-mgw http://www.oracle.com/technology/software/products/berkeley-db/index.html
|
||||||
Boost \boost-1.55.0-mgw http://www.boost.org/users/download/
|
Boost \boost-1.55.0-mgw http://www.boost.org/users/download/
|
||||||
miniupnpc \miniupnpc-1.6-mgw http://miniupnp.tuxfamily.org/files/
|
miniupnpc \miniupnpc-1.6-mgw http://miniupnp.tuxfamily.org/files/
|
||||||
qt http://download.qt-project.org/official_releases/qt/5.2/5.2.1/
|
qt http://download.qt-project.org/official_releases/qt/5.2/5.2.1/
|
||||||
|
@ -45,7 +45,7 @@ Their licenses:
|
||||||
Versions used in this release:
|
Versions used in this release:
|
||||||
|
|
||||||
OpenSSL 1.0.1c
|
OpenSSL 1.0.1c
|
||||||
Berkeley DB 4.8.30.NC
|
Berkeley DB 5.1.29.NC
|
||||||
Boost 1.55.0
|
Boost 1.55.0
|
||||||
miniupnpc 1.6
|
miniupnpc 1.6
|
||||||
qt 4.8.3
|
qt 4.8.3
|
||||||
|
@ -69,7 +69,7 @@ Berkeley DB
|
||||||
-----------
|
-----------
|
||||||
MSYS shell:
|
MSYS shell:
|
||||||
|
|
||||||
cd /c/db-4.8.30.NC-mgw/build_unix
|
cd /c/db-5.1.29.NC-mgw/build_unix
|
||||||
sh ../dist/configure --enable-mingw --enable-cxx
|
sh ../dist/configure --enable-mingw --enable-cxx
|
||||||
make
|
make
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ Instructions: MacPorts
|
||||||
|
|
||||||
Installing the dependencies using MacPorts is very straightforward.
|
Installing the dependencies using MacPorts is very straightforward.
|
||||||
|
|
||||||
sudo port install boost db48@+no_java openssl miniupnpc autoconf pkgconfig automake
|
sudo port install boost db51@+no_java openssl miniupnpc autoconf pkgconfig automake
|
||||||
|
|
||||||
Optional: install Qt4
|
Optional: install Qt4
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ Instructions: Homebrew
|
||||||
|
|
||||||
#### Install dependencies using Homebrew
|
#### Install dependencies using Homebrew
|
||||||
|
|
||||||
brew install autoconf automake berkeley-db4 boost miniupnpc openssl pkg-config protobuf qt
|
brew install autoconf automake berkeley-db5 boost miniupnpc openssl pkg-config protobuf qt
|
||||||
|
|
||||||
Note: After you have installed the dependencies, you should check that the Homebrew installed version of OpenSSL is the one available for compilation. You can check this by typing
|
Note: After you have installed the dependencies, you should check that the Homebrew installed version of OpenSSL is the one available for compilation. You can check this by typing
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ Dependencies
|
||||||
Library | Purpose | Description
|
Library | Purpose | Description
|
||||||
------------|------------------|----------------------
|
------------|------------------|----------------------
|
||||||
libssl | SSL Support | Secure communications
|
libssl | SSL Support | Secure communications
|
||||||
libdb4.8 | Berkeley DB | Wallet storage
|
libdb5.1 | Berkeley DB | Wallet storage
|
||||||
libboost | Boost | C++ Library
|
libboost | Boost | C++ Library
|
||||||
miniupnpc | UPnP Support | Optional firewall-jumping support
|
miniupnpc | UPnP Support | Optional firewall-jumping support
|
||||||
qt | GUI | GUI toolkit
|
qt | GUI | GUI toolkit
|
||||||
|
@ -45,7 +45,7 @@ Licenses of statically linked libraries:
|
||||||
- Versions used in this release:
|
- Versions used in this release:
|
||||||
- GCC 4.3.3
|
- GCC 4.3.3
|
||||||
- OpenSSL 1.0.1c
|
- OpenSSL 1.0.1c
|
||||||
- Berkeley DB 4.8.30.NC
|
- Berkeley DB 5.1.29.NC
|
||||||
- Boost 1.55
|
- Boost 1.55
|
||||||
- miniupnpc 1.6
|
- miniupnpc 1.6
|
||||||
- qt 4.8.3
|
- qt 4.8.3
|
||||||
|
@ -62,36 +62,16 @@ Build requirements:
|
||||||
|
|
||||||
for Ubuntu 12.04 and later:
|
for Ubuntu 12.04 and later:
|
||||||
|
|
||||||
sudo apt-get install libboost-all-dev
|
sudo apt-get install libboost-all-dev libdb5.1-dev libdb5.1++-dev
|
||||||
|
|
||||||
db4.8 packages are available [here](https://launchpad.net/~bitcoin/+archive/bitcoin).
|
|
||||||
You can add the repository using the following command:
|
|
||||||
|
|
||||||
sudo add-apt-repository ppa:bitcoin/bitcoin
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
Ubuntu 12.04 and later have packages for libdb5.1-dev and libdb5.1++-dev,
|
|
||||||
but using these will break binary wallet compatibility, and is not recommended.
|
|
||||||
|
|
||||||
for Ubuntu 13.10:
|
for Ubuntu 13.10:
|
||||||
libboost1.54 will not work,
|
libboost1.54 will not work,
|
||||||
remove libboost1.54-all-dev and install libboost1.53-all-dev instead.
|
remove libboost1.54-all-dev and install libboost1.53-all-dev instead.
|
||||||
|
|
||||||
for Debian 7 (Wheezy) and later:
|
|
||||||
The oldstable repository contains db4.8 packages.
|
|
||||||
Add the following line to /etc/apt/sources.list,
|
|
||||||
replacing [mirror] with any official debian mirror.
|
|
||||||
|
|
||||||
deb http://[mirror]/debian/ oldstable main
|
|
||||||
|
|
||||||
To enable the change run
|
|
||||||
|
|
||||||
sudo apt-get update
|
|
||||||
|
|
||||||
for other Ubuntu & Debian:
|
for other Ubuntu & Debian:
|
||||||
|
|
||||||
sudo apt-get install libdb4.8-dev
|
sudo apt-get install libdb5.1-dev
|
||||||
sudo apt-get install libdb4.8++-dev
|
sudo apt-get install libdb5.1++-dev
|
||||||
sudo apt-get install libboost1.55-all-dev
|
sudo apt-get install libboost1.55-all-dev
|
||||||
|
|
||||||
Optional:
|
Optional:
|
||||||
|
@ -138,7 +118,7 @@ miniupnpc
|
||||||
|
|
||||||
Berkeley DB
|
Berkeley DB
|
||||||
-----------
|
-----------
|
||||||
You need Berkeley DB 4.8. If you have to build Berkeley DB yourself:
|
You need Berkeley DB 5.1. If you have to build Berkeley DB yourself:
|
||||||
|
|
||||||
cd build_unix/
|
cd build_unix/
|
||||||
../dist/configure --enable-cxx
|
../dist/configure --enable-cxx
|
||||||
|
@ -229,7 +209,7 @@ disable-wallet mode with:
|
||||||
|
|
||||||
./configure --disable-wallet
|
./configure --disable-wallet
|
||||||
|
|
||||||
In this case there is no dependency on Berkeley DB 4.8.
|
In this case there is no dependency on Berkeley DB 5.1.
|
||||||
|
|
||||||
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
|
Mining is also possible in disable-wallet mode, but only using the `getblocktemplate` RPC
|
||||||
call not `getwork`.
|
call not `getwork`.
|
||||||
|
|
|
@ -41,7 +41,7 @@ Release Process
|
||||||
mkdir -p inputs; cd inputs/
|
mkdir -p inputs; cd inputs/
|
||||||
wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz' -O miniupnpc-1.8.tar.gz
|
wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz' -O miniupnpc-1.8.tar.gz
|
||||||
wget 'https://www.openssl.org/source/openssl-1.0.1e.tar.gz'
|
wget 'https://www.openssl.org/source/openssl-1.0.1e.tar.gz'
|
||||||
wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz'
|
wget 'http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz'
|
||||||
wget 'http://zlib.net/zlib-1.2.8.tar.gz'
|
wget 'http://zlib.net/zlib-1.2.8.tar.gz'
|
||||||
wget 'ftp://ftp.simplesystems.org/pub/png/src/history/libpng16/libpng-1.6.8.tar.gz'
|
wget 'ftp://ftp.simplesystems.org/pub/png/src/history/libpng16/libpng-1.6.8.tar.gz'
|
||||||
wget 'https://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.bz2'
|
wget 'https://fukuchi.org/works/qrencode/qrencode-3.4.3.tar.bz2'
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
AC_DEFUN([BITCOIN_FIND_BDB48],[
|
AC_DEFUN([BITCOIN_FIND_BDB51],[
|
||||||
AC_MSG_CHECKING([for Berkeley DB C++ headers])
|
AC_MSG_CHECKING([for Berkeley DB C++ headers])
|
||||||
BDB_CPPFLAGS=
|
BDB_CPPFLAGS=
|
||||||
BDB_LIBS=
|
BDB_LIBS=
|
||||||
bdbpath=X
|
bdbpath=X
|
||||||
bdb48path=X
|
bdb51path=X
|
||||||
bdbdirlist=
|
bdbdirlist=
|
||||||
for _vn in 4.8 48 4 5 ''; do
|
for _vn in 5.1 51 5 ''; do
|
||||||
for _pfx in b lib ''; do
|
for _pfx in b lib ''; do
|
||||||
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
|
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
|
||||||
done
|
done
|
||||||
|
@ -15,8 +15,8 @@ AC_DEFUN([BITCOIN_FIND_BDB48],[
|
||||||
AC_TRY_COMPILE([
|
AC_TRY_COMPILE([
|
||||||
#include <${searchpath}db_cxx.h>
|
#include <${searchpath}db_cxx.h>
|
||||||
],[
|
],[
|
||||||
#if !((DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 8) || DB_VERSION_MAJOR > 4)
|
#if !((DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR > 5)
|
||||||
#error "failed to find bdb 4.8+"
|
#error "failed to find bdb 5.1+"
|
||||||
#endif
|
#endif
|
||||||
],[
|
],[
|
||||||
if test "x$bdbpath" = "xX"; then
|
if test "x$bdbpath" = "xX"; then
|
||||||
|
@ -28,32 +28,32 @@ AC_DEFUN([BITCOIN_FIND_BDB48],[
|
||||||
AC_TRY_COMPILE([
|
AC_TRY_COMPILE([
|
||||||
#include <${searchpath}db_cxx.h>
|
#include <${searchpath}db_cxx.h>
|
||||||
],[
|
],[
|
||||||
#if !(DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8)
|
#if !(DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR == 1)
|
||||||
#error "failed to find bdb 4.8"
|
#error "failed to find bdb 5.1"
|
||||||
#endif
|
#endif
|
||||||
],[
|
],[
|
||||||
bdb48path="${searchpath}"
|
bdb51path="${searchpath}"
|
||||||
break
|
break
|
||||||
])
|
])
|
||||||
done
|
done
|
||||||
if test "x$bdbpath" = "xX"; then
|
if test "x$bdbpath" = "xX"; then
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
AC_MSG_ERROR(libdb_cxx headers missing)
|
AC_MSG_ERROR(libdb_cxx headers missing)
|
||||||
elif test "x$bdb48path" = "xX"; then
|
elif test "x$bdb51path" = "xX"; then
|
||||||
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
|
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdbpath}],db_cxx)
|
||||||
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 4.8])],[
|
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 5.1])],[
|
||||||
AC_MSG_WARN([Found Berkeley DB other than 4.8; wallets opened by this build will not be portable!])
|
AC_MSG_WARN([Found Berkeley DB other than 5.1; wallets opened by this build will not be portable!])
|
||||||
],[
|
],[
|
||||||
AC_MSG_ERROR([Found Berkeley DB other than 4.8, required for portable wallets (--with-incompatible-bdb to ignore)])
|
AC_MSG_ERROR([Found Berkeley DB other than 5.1, required for portable wallets (--with-incompatible-bdb to ignore)])
|
||||||
])
|
])
|
||||||
else
|
else
|
||||||
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb48path}],db_cxx)
|
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb51path}],db_cxx)
|
||||||
bdbpath="${bdb48path}"
|
bdbpath="${bdb51path}"
|
||||||
fi
|
fi
|
||||||
AC_SUBST(BDB_CPPFLAGS)
|
AC_SUBST(BDB_CPPFLAGS)
|
||||||
|
|
||||||
# TODO: Ideally this could find the library version and make sure it matches the headers being used
|
# TODO: Ideally this could find the library version and make sure it matches the headers being used
|
||||||
for searchlib in db_cxx-4.8 db_cxx; do
|
for searchlib in db_cxx-5.1 db_cxx; do
|
||||||
AC_CHECK_LIB([$searchlib],[main],[
|
AC_CHECK_LIB([$searchlib],[main],[
|
||||||
BDB_LIBS="-l${searchlib}"
|
BDB_LIBS="-l${searchlib}"
|
||||||
break
|
break
|
Loading…
Reference in a new issue