Skip to content

Commit

Permalink
Auto merge of zcash#1637 - daira:upgrade-bdb-again, r=daira
Browse files Browse the repository at this point in the history
Fix licensing docs, and upgrade bdb again to 6.2.23

Upgrading BDB is necessary due to the security bugs listed at https://www.cvedetails.com/vulnerability-list/vendor_id-93/product_id-32070/Oracle-Berkeley-Db.html . The resulting dependency on the Affero GPL is unfortunate, but see zcash#1469.
  • Loading branch information
zkbot committed Oct 25, 2016
2 parents 6bad499 + 9cb7aba commit 07c967a
Show file tree
Hide file tree
Showing 7 changed files with 745 additions and 97 deletions.
20 changes: 20 additions & 0 deletions COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,23 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.


The MIT software license (http://www.opensource.org/licenses/mit-license.php)
above applies to the code directly included in this source distribution, with
the exception of certain files under the 'src/qt/' and 'scripts/img/' directories
which are distributed under the LGPL or GPL licenses. Dependencies downloaded
as part of the build process may be covered by other open source licenses.
For further details see 'contrib/DEBIAN/copyright'.


This product includes software developed by the OpenSSL Project for use in the
[OpenSSL Toolkit](https://www.openssl.org/). This product includes cryptographic
software written by Eric Young ([[email protected]](mailto:[email protected])),
and UPnP software written by Thomas Bernard.


Although almost all of the Zcash code is licensed under "permissive" open source
licenses, users and distributors should note that when built using the default
build options, Zcash depends on Oracle Berkeley DB 6.2.x, which is licensed
under the GNU Affero General Public License.
52 changes: 34 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,50 @@
Zcash
=====

https://z.cash/

Where do I begin?
-----------------

We have a guide for joining the public testnet: https://github.com/zcash/zcash/wiki/Beta-Guide
Zcash 1.0.0-rc2
===============

What is Zcash?
--------------

Zcash is an implementation of the "Zerocash" protocol. Based on Bitcoin's code, it intends to
offer a far higher standard of privacy and anonymity through a sophisticiated zero-knowledge
proving scheme which preserves confidentiality of transaction metadata. Technical details are
[Zcash](https://z.cash/) is an implementation of the "Zerocash" protocol.
Based on Bitcoin's code, it intends to offer a far higher standard of privacy
and anonymity through a sophisticiated zero-knowledge proving scheme that
preserves confidentiality of transaction metadata. Technical details are
available in our [Protocol Specification](https://github.com/zcash/zips/raw/master/protocol/protocol.pdf).

**Zcash is unfinished and highly experimental.** Use at your own risk.

Participation in the Zcash project is subject to a [Code of Conduct](code_of_conduct.md).
This software is the Zcash client. It downloads and stores the entire history
of Zcash transactions; depending on the speed of your computer and network
connection, the synchronization process could take a day or more once the
block chain has reached a significant size.

Security Warnings
-----------------

See important security warnings in
[doc/security-warnings.md](doc/security-warnings.md).

**Zcash is unfinished and highly experimental.** Use at your own risk.

Where do I begin?
-----------------

We have a guide for joining the public testnet:
https://github.com/zcash/zcash/wiki/Beta-Guide

### Need Help?

* See the documentation at the [Zcash Wiki](https://github.com/zcash/zcash/wiki)
for help and more information.
* Ask for help on the [Zcash](https://forum.z.cash/) forum.

Participation in the Zcash project is subject to a
[Code of Conduct](code_of_conduct.md).

Building
--------

Build Zcash along with most dependencies from source by running
./zcutil/build.sh. Currently only Linux is supported.

License
-------

Zcash is released under the terms of the MIT license. See [COPYING](COPYING) for more
information or see http://opensource.org/licenses/MIT.

For license information see the file [COPYING](COPYING).
30 changes: 15 additions & 15 deletions build-aux/m4/bitcoin_find_bdb48.m4
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
AC_DEFUN([BITCOIN_FIND_BDB53],[
AC_DEFUN([BITCOIN_FIND_BDB62],[
AC_MSG_CHECKING([for Berkeley DB C++ headers])
BDB_CPPFLAGS=
BDB_LIBS=
bdbpath=X
bdb53path=X
bdb62path=X
bdbdirlist=
for _vn in 5.3 53 5 ''; do
for _vn in 6.2 62 6 ''; do
for _pfx in b lib ''; do
bdbdirlist="$bdbdirlist ${_pfx}db${_vn}"
done
Expand All @@ -15,8 +15,8 @@ AC_DEFUN([BITCOIN_FIND_BDB53],[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !((DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR >= 3) || DB_VERSION_MAJOR > 5)
#error "failed to find bdb 5.3+"
#if !((DB_VERSION_MAJOR == 6 && DB_VERSION_MINOR >= 2) || DB_VERSION_MAJOR > 6)
#error "failed to find bdb 6.2+"
#endif
]])],[
if test "x$bdbpath" = "xX"; then
Expand All @@ -28,32 +28,32 @@ AC_DEFUN([BITCOIN_FIND_BDB53],[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <${searchpath}db_cxx.h>
]],[[
#if !(DB_VERSION_MAJOR == 5 && DB_VERSION_MINOR == 3)
#error "failed to find bdb 5.3"
#if !(DB_VERSION_MAJOR == 6 && DB_VERSION_MINOR == 2)
#error "failed to find bdb 6.2"
#endif
]])],[
bdb53path="${searchpath}"
bdb62path="${searchpath}"
break
],[])
done
if test "x$bdbpath" = "xX"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([libdb_cxx headers missing, Bitcoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality)])
elif test "x$bdb53path" = "xX"; then
elif test "x$bdb62path" = "xX"; then
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 5.3])],[
AC_MSG_WARN([Found Berkeley DB other than 5.3; wallets opened by this build will not be portable!])
AC_ARG_WITH([incompatible-bdb],[AS_HELP_STRING([--with-incompatible-bdb], [allow using a bdb version other than 6.2])],[
AC_MSG_WARN([Found Berkeley DB other than 6.2; wallets opened by this build will not be portable!])
],[
AC_MSG_ERROR([Found Berkeley DB other than 5.3, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
AC_MSG_ERROR([Found Berkeley DB other than 6.2, required for portable wallets (--with-incompatible-bdb to ignore or --disable-wallet to disable wallet functionality)])
])
else
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb53path}],db_cxx)
bdbpath="${bdb53path}"
BITCOIN_SUBDIR_TO_INCLUDE(BDB_CPPFLAGS,[${bdb62path}],db_cxx)
bdbpath="${bdb62path}"
fi
AC_SUBST(BDB_CPPFLAGS)
# TODO: Ideally this could find the library version and make sure it matches the headers being used
for searchlib in db_cxx-5.3 db_cxx; do
for searchlib in db_cxx-6.2 db_cxx; do
AC_CHECK_LIB([$searchlib],[main],[
BDB_LIBS="-l${searchlib}"
break
Expand Down
8 changes: 4 additions & 4 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -270,9 +270,9 @@ case $host in
dnl add default macports paths
CPPFLAGS="$CPPFLAGS -isystem /opt/local/include"
LIBS="$LIBS -L/opt/local/lib"
if test -d /opt/local/include/db53; then
CPPFLAGS="$CPPFLAGS -I/opt/local/include/db53"
LIBS="$LIBS -L/opt/local/lib/db53"
if test -d /opt/local/include/db62; then
CPPFLAGS="$CPPFLAGS -I/opt/local/include/db62"
LIBS="$LIBS -L/opt/local/lib/db62"
fi
fi

Expand Down Expand Up @@ -522,7 +522,7 @@ AC_SUBST(LIBMEMENV)

if test x$enable_wallet != xno; then
dnl Check for libdb_cxx only if wallet enabled
BITCOIN_FIND_BDB53
BITCOIN_FIND_BDB62
fi

dnl Check for libminiupnpc (optional)
Expand Down
Loading

0 comments on commit 07c967a

Please sign in to comment.