Merge branch 'beta' into mergemaster
# Conflicts: # src/main.cpp
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -114,3 +114,9 @@ libzcashconsensus.pc
|
||||
src/fiat/-usd
|
||||
contrib/debian/files
|
||||
contrib/debian/substvars
|
||||
|
||||
src/rpcmisc~.cpp
|
||||
src/komodo-cli
|
||||
src/komodod
|
||||
src/komodo-tx
|
||||
src/komodo-test
|
||||
|
||||
0
.gitmodules
vendored
Normal file
0
.gitmodules
vendored
Normal file
82
.travis.yml
82
.travis.yml
@@ -1,3 +1,4 @@
|
||||
<<<<<<< HEAD
|
||||
language: cpp
|
||||
|
||||
compiler:
|
||||
@@ -21,3 +22,84 @@ notifications:
|
||||
- "Alt Message : %{repository_slug} - (%{commit} - %{author}): %{message}, Build Time: %{duration}"
|
||||
- "Change view : %{compare_url}"
|
||||
- "Build details : %{build_url}"
|
||||
=======
|
||||
# errata:
|
||||
# - A travis bug causes caches to trample eachother when using the same
|
||||
# compiler key (which we don't use anyway). This is worked around for now by
|
||||
# replacing the "compilers" with a build name prefixed by the no-op ":"
|
||||
# command. See: https://github.com/travis-ci/travis-ci/issues/4393
|
||||
# - sudo/dist/group are set so as to get Blue Box VMs, necessary for [loopback]
|
||||
# IPv6 support
|
||||
|
||||
sudo: required
|
||||
dist: precise
|
||||
group: legacy
|
||||
|
||||
os: linux
|
||||
language: cpp
|
||||
compiler: gcc
|
||||
env:
|
||||
global:
|
||||
- MAKEJOBS=-j3
|
||||
- RUN_TESTS=false
|
||||
- BOOST_TEST_RANDOM=1$TRAVIS_BUILD_ID
|
||||
- CCACHE_SIZE=100M
|
||||
- CCACHE_TEMPDIR=/tmp/.ccache-temp
|
||||
- CCACHE_COMPRESS=1
|
||||
- BASE_OUTDIR=$TRAVIS_BUILD_DIR/out
|
||||
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
|
||||
- PYTHON_DEBUG=1
|
||||
- WINEDEBUG=fixme-all
|
||||
cache:
|
||||
apt: true
|
||||
directories:
|
||||
- depends/built
|
||||
- depends/sdk-sources
|
||||
- $HOME/.ccache
|
||||
matrix:
|
||||
fast_finish: true
|
||||
include:
|
||||
- compiler: ": ARM"
|
||||
env: HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="" GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
||||
- compiler: ": Win32"
|
||||
env: HOST=i686-w64-mingw32 PACKAGES="nsis gcc-mingw-w64-i686 g++-mingw-w64-i686 binutils-mingw-w64-i686 mingw-w64-dev wine bc" RUN_TESTS=true GOAL="deploy" BITCOIN_CONFIG="--enable-reduce-exports" MAKEJOBS="-j2"
|
||||
- compiler: ": 32-bit + dash"
|
||||
env: HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc python-zmq" PPA="ppa:chris-lea/zeromq" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
|
||||
- compiler: ": Win64"
|
||||
env: HOST=x86_64-w64-mingw32 PACKAGES="nsis gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64 mingw-w64-dev wine bc" RUN_TESTS=true GOAL="deploy" BITCOIN_CONFIG="--enable-reduce-exports" MAKEJOBS="-j2"
|
||||
- compiler: ": bitcoind"
|
||||
env: HOST=x86_64-unknown-linux-gnu PACKAGES="bc python-zmq" PPA="ppa:chris-lea/zeromq" DEP_OPTS="DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
|
||||
- compiler: ": No wallet"
|
||||
env: HOST=x86_64-unknown-linux-gnu DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
|
||||
- compiler: ": Cross-Mac"
|
||||
env: HOST=x86_64-apple-darwin11 PACKAGES="cmake libcap-dev libz-dev libbz2-dev" BITCOIN_CONFIG="--enable-reduce-exports" OSX_SDK=10.9 GOAL="deploy"
|
||||
exclude:
|
||||
- compiler: gcc
|
||||
install:
|
||||
- if [ -n "$PACKAGES" ]; then sudo rm -f /etc/apt/sources.list.d/travis_ci_zeromq3-source.list; fi
|
||||
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
|
||||
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
|
||||
before_script:
|
||||
- unset CC; unset CXX
|
||||
- mkdir -p depends/SDKs depends/sdk-sources
|
||||
- if [ -n "$OSX_SDK" -a ! -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then curl --location --fail $SDK_URL/MacOSX${OSX_SDK}.sdk.tar.gz -o depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
|
||||
- if [ -n "$OSX_SDK" -a -f depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz ]; then tar -C depends/SDKs -xf depends/sdk-sources/MacOSX${OSX_SDK}.sdk.tar.gz; fi
|
||||
- make $MAKEJOBS -C depends HOST=$HOST $DEP_OPTS
|
||||
script:
|
||||
- if [ -n "$USE_SHELL" ]; then export CONFIG_SHELL="$USE_SHELL"; fi
|
||||
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
|
||||
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
|
||||
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
|
||||
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export CCACHE_READONLY=1; fi
|
||||
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
|
||||
- ./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
|
||||
- make distdir PACKAGE=bitcoin VERSION=$HOST
|
||||
- cd bitcoin-$HOST
|
||||
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
|
||||
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
|
||||
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
|
||||
- if [ "$RUN_TESTS" = "true" ]; then make check; fi
|
||||
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/rpc-tests.sh; fi
|
||||
after_script:
|
||||
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then (echo "Upload goes here. Something like: scp -r $BASE_OUTDIR server" || echo "upload failed"); fi
|
||||
>>>>>>> zcash/master
|
||||
|
||||
3
COPYING
3
COPYING
@@ -28,8 +28,7 @@ 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 (eay@cryptsoft.com),
|
||||
and UPnP software written by Thomas Bernard.
|
||||
software written by Eric Young (eay@cryptsoft.com).
|
||||
|
||||
|
||||
Although almost all of the Zcash code is licensed under "permissive" open source
|
||||
|
||||
12
Dockerfile
12
Dockerfile
@@ -1,5 +1,13 @@
|
||||
FROM kolobus/ubuntu:komodo
|
||||
MAINTAINER Mihail Fedorov <tech@fedorov.net>
|
||||
FROM ubuntu:16.04
|
||||
MAINTAINER Mihail Fedorov <kolo@komodoplatform.com>
|
||||
|
||||
RUN apt-get -y update && \
|
||||
apt-get -y upgrade && \
|
||||
apt-get -y install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev \
|
||||
unzip python zlib1g-dev wget bsdmainutils automake libssl-dev libprotobuf-dev \
|
||||
protobuf-compiler libqrencode-dev libdb++-dev software-properties-common libcurl4-openssl-dev curl && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
ADD ./ /komodo
|
||||
ENV HOME /komodo
|
||||
|
||||
24
Makefile.am
24
Makefile.am
@@ -12,6 +12,7 @@ pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libzcashconsensus.pc
|
||||
endif
|
||||
|
||||
|
||||
BITCOIND_BIN=$(top_builddir)/src/zcashd$(EXEEXT)
|
||||
BITCOIN_CLI_BIN=$(top_builddir)/src/zcash-cli$(EXEEXT)
|
||||
BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EXEEXT)
|
||||
@@ -33,6 +34,7 @@ DIST_DOCS = $(wildcard doc/*.md) $(wildcard doc/release-notes/*.md)
|
||||
BIN_CHECKS=$(top_srcdir)/contrib/devtools/symbol-check.py \
|
||||
$(top_srcdir)/contrib/devtools/security-check.py
|
||||
|
||||
|
||||
WINDOWS_PACKAGING = $(top_srcdir)/share/pixmaps/bitcoin.ico \
|
||||
$(top_srcdir)/share/pixmaps/nsis-header.bmp \
|
||||
$(top_srcdir)/share/pixmaps/nsis-wizard.bmp
|
||||
@@ -54,7 +56,7 @@ COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
|
||||
else
|
||||
COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
|
||||
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
|
||||
baseline_filtered.info block_test_filtered.info \
|
||||
baseline_filtered.info \
|
||||
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info \
|
||||
#zcash-gtest.info zcash-gtest_filtered.info zcash-gtest_coverage.info
|
||||
endif
|
||||
@@ -72,14 +74,6 @@ distcheck-hook:
|
||||
distcleancheck:
|
||||
@:
|
||||
|
||||
$(BITCOIN_WIN_INSTALLER): all-recursive
|
||||
$(MKDIR_P) $(top_builddir)/release
|
||||
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIND_BIN) $(top_builddir)/release
|
||||
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIN_CLI_BIN) $(top_builddir)/release
|
||||
@test -f $(MAKENSIS) && $(MAKENSIS) -V2 $(top_builddir)/share/setup.nsi || \
|
||||
echo error: could not build $@
|
||||
@echo built $@
|
||||
|
||||
$(if $(findstring src/,$(MAKECMDGOALS)),$(MAKECMDGOALS), none): FORCE
|
||||
$(MAKE) -C src $(patsubst src/%,%,$@)
|
||||
|
||||
@@ -256,6 +250,7 @@ test_bitcoin_filtered.info: test_bitcoin.info
|
||||
-o $@
|
||||
endif
|
||||
|
||||
|
||||
block_test.info: test_bitcoin_filtered.info
|
||||
$(MKDIR_P) qa/tmp
|
||||
-@TIMEOUT=15 qa/pull-tester/run-bitcoind-for-test.sh $(JAVA) -jar $(JAVA_COMPARISON_TOOL) qa/tmp/compTool 0
|
||||
@@ -289,6 +284,7 @@ block_test_filtered.info: block_test.info
|
||||
-o $@
|
||||
endif
|
||||
|
||||
|
||||
test_bitcoin_coverage.info: baseline_filtered_combined.info test_bitcoin_filtered.info
|
||||
$(LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -o $@
|
||||
|
||||
@@ -329,12 +325,6 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
if USE_COMPARISON_TOOL
|
||||
check-local:
|
||||
$(MKDIR_P) qa/tmp
|
||||
@qa/pull-tester/run-bitcoind-for-test.sh $(JAVA) -jar $(JAVA_COMPARISON_TOOL) qa/tmp/compTool $(COMPARISON_TOOL_REORG_TESTS) 2>&1
|
||||
endif
|
||||
|
||||
dist_bin_SCRIPTS = zcutil/fetch-params.sh
|
||||
dist_noinst_SCRIPTS = autogen.sh zcutil/build-debian-package.sh zcutil/build.sh
|
||||
|
||||
@@ -343,11 +333,9 @@ EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/rpc-tests.sh qa/pull
|
||||
install-exec-hook:
|
||||
mv $(DESTDIR)$(bindir)/fetch-params.sh $(DESTDIR)$(bindir)/zcash-fetch-params
|
||||
|
||||
CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER)
|
||||
|
||||
.INTERMEDIATE: $(COVERAGE_INFO)
|
||||
|
||||
DISTCHECK_CONFIGURE_FLAGS = --enable-man
|
||||
|
||||
clean-local:
|
||||
rm -rf test_bitcoin.coverage/ zcash-gtest.coverage/ total.coverage/ $(OSX_APP)
|
||||
rm -rf test_bitcoin.coverage/ zcash-gtest.coverage/ total.coverage/
|
||||
|
||||
15
README.md
15
README.md
@@ -1,3 +1,4 @@
|
||||
Komodo 1.0.15
|
||||
|
||||
## Komodod
|
||||
This software is Komodo client, generally you will use this if you want to mine KMD or setup a full node.
|
||||
@@ -33,7 +34,7 @@ Dependencies
|
||||
|
||||
```
|
||||
#The following packages are needed:
|
||||
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget libcurl3-gnutls-dev bsdmainutils automake
|
||||
sudo apt-get install build-essential pkg-config libc6-dev m4 g++-multilib autoconf libtool ncurses-dev unzip git python python-zmq zlib1g-dev wget libcurl4-openssl-dev bsdmainutils automake curl
|
||||
```
|
||||
|
||||
Komodo
|
||||
@@ -63,6 +64,18 @@ cd komodo
|
||||
#This can take some time.
|
||||
```
|
||||
|
||||
|
||||
**komodo is experimental and a work-in-progress.** Use at your own risk.
|
||||
|
||||
Deprecation Policy
|
||||
------------------
|
||||
|
||||
This release is considered deprecated one year after the release day. There
|
||||
is an automatic deprecation shutdown feature which will halt the node some
|
||||
time after this one year period. The automatic feature is based on block
|
||||
height and can be explicitly disabled.
|
||||
|
||||
|
||||
# to update an existing version, git checkout dPoW if not on that branch already
|
||||
git pull
|
||||
./zcutil/fetch-params.sh
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 23
|
||||
#serial 26
|
||||
|
||||
AC_DEFUN([AX_BOOST_BASE],
|
||||
[
|
||||
@@ -95,8 +95,8 @@ if test "x$want_boost" = "xyes"; then
|
||||
x86_64)
|
||||
libsubdirs="lib64 libx32 lib lib64"
|
||||
;;
|
||||
ppc64|s390x|sparc64|aarch64)
|
||||
libsubdirs="lib64 lib lib64"
|
||||
ppc64|s390x|sparc64|aarch64|ppc64le)
|
||||
libsubdirs="lib64 lib lib64 ppc64le"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -170,7 +170,7 @@ if test "x$want_boost" = "xyes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
succeeded=yes
|
||||
found_system=yes
|
||||
],[:
|
||||
],[
|
||||
])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
@@ -179,6 +179,10 @@ if test "x$want_boost" = "xyes"; then
|
||||
dnl if we found no boost with system layout we search for boost libraries
|
||||
dnl built and installed without the --layout=system option or for a staged(not installed) version
|
||||
if test "x$succeeded" != "xyes"; then
|
||||
CPPFLAGS="$CPPFLAGS_SAVED"
|
||||
LDFLAGS="$LDFLAGS_SAVED"
|
||||
BOOST_CPPFLAGS=
|
||||
BOOST_LDFLAGS=
|
||||
_version=0
|
||||
if test "$ac_boost_path" != ""; then
|
||||
if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
|
||||
@@ -191,6 +195,12 @@ if test "x$want_boost" = "xyes"; then
|
||||
VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
|
||||
BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
|
||||
done
|
||||
dnl if nothing found search for layout used in Windows distributions
|
||||
if test -z "$BOOST_CPPFLAGS"; then
|
||||
if test -d "$ac_boost_path/boost" && test -r "$ac_boost_path/boost"; then
|
||||
BOOST_CPPFLAGS="-I$ac_boost_path"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if test "$cross_compiling" != yes; then
|
||||
@@ -253,7 +263,7 @@ if test "x$want_boost" = "xyes"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
succeeded=yes
|
||||
found_system=yes
|
||||
],[:
|
||||
],[
|
||||
])
|
||||
AC_LANG_POP([C++])
|
||||
fi
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 22
|
||||
#serial 24
|
||||
|
||||
AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
|
||||
[
|
||||
@@ -63,9 +63,9 @@ AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
|
||||
AC_CACHE_CHECK([whether the Boost::Program_Options library is available],
|
||||
ax_cv_boost_program_options,
|
||||
[AC_LANG_PUSH(C++)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/program_options.hpp>
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/program_options/errors.hpp>
|
||||
]],
|
||||
[[boost::program_options::options_description generic("Generic options");
|
||||
[[boost::program_options::error err("Error message");
|
||||
return 0;]])],
|
||||
ax_cv_boost_program_options=yes, ax_cv_boost_program_options=no)
|
||||
AC_LANG_POP([C++])
|
||||
@@ -74,7 +74,6 @@ AC_DEFUN([AX_BOOST_PROGRAM_OPTIONS],
|
||||
AC_DEFINE(HAVE_BOOST_PROGRAM_OPTIONS,,[define if the Boost::PROGRAM_OPTIONS library is available])
|
||||
BOOSTLIBDIR=`echo $BOOST_LDFLAGS | sed -e 's/@<:@^\/@:>@*//'`
|
||||
if test "x$ax_boost_user_program_options_lib" = "x"; then
|
||||
ax_lib=
|
||||
for libextension in `ls $BOOSTLIBDIR/libboost_program_options*.so* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_program_options.*\)\.so.*$;\1;'` `ls $BOOSTLIBDIR/libboost_program_options*.dylib* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_program_options.*\)\.dylib.*$;\1;'` `ls $BOOSTLIBDIR/libboost_program_options*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_program_options.*\)\.a.*$;\1;'` ; do
|
||||
ax_lib=${libextension}
|
||||
AC_CHECK_LIB($ax_lib, exit,
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 17
|
||||
#serial 18
|
||||
|
||||
AC_DEFUN([AX_BOOST_SYSTEM],
|
||||
[
|
||||
@@ -68,9 +68,10 @@ AC_DEFUN([AX_BOOST_SYSTEM],
|
||||
ax_cv_boost_system,
|
||||
[AC_LANG_PUSH([C++])
|
||||
CXXFLAGS_SAVE=$CXXFLAGS
|
||||
CXXFLAGS=
|
||||
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <boost/system/error_code.hpp>]],
|
||||
[[boost::system::system_category]])],
|
||||
[[boost::system::error_category *a = 0;]])],
|
||||
ax_cv_boost_system=yes, ax_cv_boost_system=no)
|
||||
CXXFLAGS=$CXXFLAGS_SAVE
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
@@ -19,6 +19,8 @@
|
||||
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||
# force the compiler to issue an error when a bad flag is given.
|
||||
#
|
||||
# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
|
||||
#
|
||||
@@ -53,19 +55,19 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
#serial 4
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
|
||||
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||
AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
AS_VAR_IF(CACHEVAR,yes,
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
@@ -19,6 +19,8 @@
|
||||
# EXTRA-FLAGS FLAG". This can for example be used to force the linker to
|
||||
# issue an error when a bad flag is given.
|
||||
#
|
||||
# INPUT gives an alternative input source to AC_LINK_IFELSE.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG.
|
||||
#
|
||||
@@ -53,18 +55,19 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
#serial 4
|
||||
|
||||
AC_DEFUN([AX_CHECK_LINK_FLAG],
|
||||
[AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
|
||||
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$LDFLAGS
|
||||
LDFLAGS="$LDFLAGS $4 $1"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
|
||||
AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
LDFLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
AS_VAR_IF(CACHEVAR,yes,
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_PREPROC_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS])
|
||||
# AX_CHECK_PREPROC_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
@@ -19,6 +19,8 @@
|
||||
# "CPPFLAGS EXTRA-FLAGS FLAG". This can for example be used to force the
|
||||
# preprocessor to issue an error when a bad flag is given.
|
||||
#
|
||||
# INPUT gives an alternative input source to AC_PREPROC_IFELSE.
|
||||
#
|
||||
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||
# macro in sync with AX_CHECK_{COMPILE,LINK}_FLAG.
|
||||
#
|
||||
@@ -53,19 +55,19 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 2
|
||||
#serial 4
|
||||
|
||||
AC_DEFUN([AX_CHECK_PREPROC_FLAG],
|
||||
[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX
|
||||
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
|
||||
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]cppflags_$4_$1])dnl
|
||||
AC_CACHE_CHECK([whether _AC_LANG preprocessor accepts $1], CACHEVAR, [
|
||||
ax_check_save_flags=$CPPFLAGS
|
||||
CPPFLAGS="$CPPFLAGS $4 $1"
|
||||
AC_PREPROC_IFELSE([AC_LANG_PROGRAM()],
|
||||
AC_PREPROC_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||
[AS_VAR_SET(CACHEVAR,[no])])
|
||||
CPPFLAGS=$ax_check_save_flags])
|
||||
AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
|
||||
AS_VAR_IF(CACHEVAR,yes,
|
||||
[m4_default([$2], :)],
|
||||
[m4_default([$3], :)])
|
||||
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||
|
||||
568
build-aux/m4/ax_cxx_compile_stdcxx.m4
Normal file
568
build-aux/m4/ax_cxx_compile_stdcxx.m4
Normal file
@@ -0,0 +1,568 @@
|
||||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check for baseline language coverage in the compiler for the specified
|
||||
# version of the C++ standard. If necessary, add switches to CXX and
|
||||
# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard)
|
||||
# or '14' (for the C++14 standard).
|
||||
#
|
||||
# The second argument, if specified, indicates whether you insist on an
|
||||
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
|
||||
# -std=c++11). If neither is specified, you get whatever works, with
|
||||
# preference for an extended mode.
|
||||
#
|
||||
# The third argument, if specified 'mandatory' or if left unspecified,
|
||||
# indicates that baseline support for the specified C++ standard is
|
||||
# required and that the macro should error out if no mode with that
|
||||
# support is found. If specified 'optional', then configuration proceeds
|
||||
# regardless, after defining HAVE_CXX${VERSION} if and only if a
|
||||
# supporting mode is found.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
|
||||
# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
|
||||
# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
|
||||
# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
|
||||
# Copyright (c) 2015 Paul Norman <penorman@mac.com>
|
||||
# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 4
|
||||
|
||||
dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
|
||||
dnl (serial version number 13).
|
||||
|
||||
AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
|
||||
m4_if([$1], [11], [],
|
||||
[$1], [14], [],
|
||||
[$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
|
||||
[m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
|
||||
m4_if([$2], [], [],
|
||||
[$2], [ext], [],
|
||||
[$2], [noext], [],
|
||||
[m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
|
||||
m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
|
||||
[$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
|
||||
[$3], [optional], [ax_cxx_compile_cxx$1_required=false],
|
||||
[m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
|
||||
m4_if([$4], [], [ax_cxx_compile_cxx$1_try_default=true],
|
||||
[$4], [default], [ax_cxx_compile_cxx$1_try_default=true],
|
||||
[$4], [nodefault], [ax_cxx_compile_cxx$1_try_default=false],
|
||||
[m4_fatal([invalid fourth argument `$4' to AX_CXX_COMPILE_STDCXX])])
|
||||
AC_LANG_PUSH([C++])dnl
|
||||
ac_success=no
|
||||
|
||||
m4_if([$4], [nodefault], [], [dnl
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
|
||||
ax_cv_cxx_compile_cxx$1,
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[ax_cv_cxx_compile_cxx$1=yes],
|
||||
[ax_cv_cxx_compile_cxx$1=no])])
|
||||
if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
|
||||
ac_success=yes
|
||||
fi])
|
||||
|
||||
m4_if([$2], [noext], [], [dnl
|
||||
if test x$ac_success = xno; then
|
||||
for switch in -std=gnu++$1 -std=gnu++0x; do
|
||||
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
|
||||
$cachevar,
|
||||
[ac_save_CXX="$CXX"
|
||||
CXX="$CXX $switch"
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[eval $cachevar=yes],
|
||||
[eval $cachevar=no])
|
||||
CXX="$ac_save_CXX"])
|
||||
if eval test x\$$cachevar = xyes; then
|
||||
CXX="$CXX $switch"
|
||||
if test -n "$CXXCPP" ; then
|
||||
CXXCPP="$CXXCPP $switch"
|
||||
fi
|
||||
ac_success=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi])
|
||||
|
||||
m4_if([$2], [ext], [], [dnl
|
||||
if test x$ac_success = xno; then
|
||||
dnl HP's aCC needs +std=c++11 according to:
|
||||
dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
|
||||
dnl Cray's crayCC needs "-h std=c++11"
|
||||
for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
|
||||
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
|
||||
$cachevar,
|
||||
[ac_save_CXX="$CXX"
|
||||
CXX="$CXX $switch"
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[eval $cachevar=yes],
|
||||
[eval $cachevar=no])
|
||||
CXX="$ac_save_CXX"])
|
||||
if eval test x\$$cachevar = xyes; then
|
||||
CXX="$CXX $switch"
|
||||
if test -n "$CXXCPP" ; then
|
||||
CXXCPP="$CXXCPP $switch"
|
||||
fi
|
||||
ac_success=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi])
|
||||
AC_LANG_POP([C++])
|
||||
if test x$ax_cxx_compile_cxx$1_required = xtrue; then
|
||||
if test x$ac_success = xno; then
|
||||
AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
|
||||
fi
|
||||
fi
|
||||
if test x$ac_success = xno; then
|
||||
HAVE_CXX$1=0
|
||||
AC_MSG_NOTICE([No compiler with C++$1 support was found])
|
||||
else
|
||||
HAVE_CXX$1=1
|
||||
AC_DEFINE(HAVE_CXX$1,1,
|
||||
[define if the compiler supports basic C++$1 syntax])
|
||||
fi
|
||||
AC_SUBST(HAVE_CXX$1)
|
||||
])
|
||||
|
||||
|
||||
dnl Test body for checking C++11 support
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
|
||||
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
|
||||
)
|
||||
|
||||
|
||||
dnl Test body for checking C++14 support
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
|
||||
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
|
||||
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
|
||||
)
|
||||
|
||||
|
||||
dnl Tests for new features in C++11
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
|
||||
|
||||
// If the compiler admits that it is not ready for C++11, why torture it?
|
||||
// Hopefully, this will speed up the test.
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#error "This is not a C++ compiler"
|
||||
|
||||
#elif __cplusplus < 201103L
|
||||
|
||||
#error "This is not a C++11 compiler"
|
||||
|
||||
#else
|
||||
|
||||
namespace cxx11
|
||||
{
|
||||
|
||||
namespace test_static_assert
|
||||
{
|
||||
|
||||
template <typename T>
|
||||
struct check
|
||||
{
|
||||
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
namespace test_final_override
|
||||
{
|
||||
|
||||
struct Base
|
||||
{
|
||||
virtual void f() {}
|
||||
};
|
||||
|
||||
struct Derived : public Base
|
||||
{
|
||||
virtual void f() override {}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
namespace test_double_right_angle_brackets
|
||||
{
|
||||
|
||||
template < typename T >
|
||||
struct check {};
|
||||
|
||||
typedef check<void> single_type;
|
||||
typedef check<check<void>> double_type;
|
||||
typedef check<check<check<void>>> triple_type;
|
||||
typedef check<check<check<check<void>>>> quadruple_type;
|
||||
|
||||
}
|
||||
|
||||
namespace test_decltype
|
||||
{
|
||||
|
||||
int
|
||||
f()
|
||||
{
|
||||
int a = 1;
|
||||
decltype(a) b = 2;
|
||||
return a + b;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_type_deduction
|
||||
{
|
||||
|
||||
template < typename T1, typename T2 >
|
||||
struct is_same
|
||||
{
|
||||
static const bool value = false;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
struct is_same<T, T>
|
||||
{
|
||||
static const bool value = true;
|
||||
};
|
||||
|
||||
template < typename T1, typename T2 >
|
||||
auto
|
||||
add(T1 a1, T2 a2) -> decltype(a1 + a2)
|
||||
{
|
||||
return a1 + a2;
|
||||
}
|
||||
|
||||
int
|
||||
test(const int c, volatile int v)
|
||||
{
|
||||
static_assert(is_same<int, decltype(0)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(c)>::value == false, "");
|
||||
static_assert(is_same<int, decltype(v)>::value == false, "");
|
||||
auto ac = c;
|
||||
auto av = v;
|
||||
auto sumi = ac + av + 'x';
|
||||
auto sumf = ac + av + 1.0;
|
||||
static_assert(is_same<int, decltype(ac)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(av)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(sumi)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(sumf)>::value == false, "");
|
||||
static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|
||||
return (sumf > 0.0) ? sumi : add(c, v);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_noexcept
|
||||
{
|
||||
|
||||
int f() { return 0; }
|
||||
int g() noexcept { return 0; }
|
||||
|
||||
static_assert(noexcept(f()) == false, "");
|
||||
static_assert(noexcept(g()) == true, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_constexpr
|
||||
{
|
||||
|
||||
template < typename CharT >
|
||||
unsigned long constexpr
|
||||
strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|
||||
{
|
||||
return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|
||||
}
|
||||
|
||||
template < typename CharT >
|
||||
unsigned long constexpr
|
||||
strlen_c(const CharT *const s) noexcept
|
||||
{
|
||||
return strlen_c_r(s, 0UL);
|
||||
}
|
||||
|
||||
static_assert(strlen_c("") == 0UL, "");
|
||||
static_assert(strlen_c("1") == 1UL, "");
|
||||
static_assert(strlen_c("example") == 7UL, "");
|
||||
static_assert(strlen_c("another\0example") == 7UL, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_rvalue_references
|
||||
{
|
||||
|
||||
template < int N >
|
||||
struct answer
|
||||
{
|
||||
static constexpr int value = N;
|
||||
};
|
||||
|
||||
answer<1> f(int&) { return answer<1>(); }
|
||||
answer<2> f(const int&) { return answer<2>(); }
|
||||
answer<3> f(int&&) { return answer<3>(); }
|
||||
|
||||
void
|
||||
test()
|
||||
{
|
||||
int i = 0;
|
||||
const int c = 0;
|
||||
static_assert(decltype(f(i))::value == 1, "");
|
||||
static_assert(decltype(f(c))::value == 2, "");
|
||||
static_assert(decltype(f(0))::value == 3, "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_uniform_initialization
|
||||
{
|
||||
|
||||
struct test
|
||||
{
|
||||
static const int zero {};
|
||||
static const int one {1};
|
||||
};
|
||||
|
||||
static_assert(test::zero == 0, "");
|
||||
static_assert(test::one == 1, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_lambdas
|
||||
{
|
||||
|
||||
void
|
||||
test1()
|
||||
{
|
||||
auto lambda1 = [](){};
|
||||
auto lambda2 = lambda1;
|
||||
lambda1();
|
||||
lambda2();
|
||||
}
|
||||
|
||||
int
|
||||
test2()
|
||||
{
|
||||
auto a = [](int i, int j){ return i + j; }(1, 2);
|
||||
auto b = []() -> int { return '0'; }();
|
||||
auto c = [=](){ return a + b; }();
|
||||
auto d = [&](){ return c; }();
|
||||
auto e = [a, &b](int x) mutable {
|
||||
const auto identity = [](int y){ return y; };
|
||||
for (auto i = 0; i < a; ++i)
|
||||
a += b--;
|
||||
return x + identity(a + b);
|
||||
}(0);
|
||||
return a + b + c + d + e;
|
||||
}
|
||||
|
||||
int
|
||||
test3()
|
||||
{
|
||||
const auto nullary = [](){ return 0; };
|
||||
const auto unary = [](int x){ return x; };
|
||||
using nullary_t = decltype(nullary);
|
||||
using unary_t = decltype(unary);
|
||||
const auto higher1st = [](nullary_t f){ return f(); };
|
||||
const auto higher2nd = [unary](nullary_t f1){
|
||||
return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|
||||
};
|
||||
return higher1st(nullary) + higher2nd(nullary)(unary);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_variadic_templates
|
||||
{
|
||||
|
||||
template <int...>
|
||||
struct sum;
|
||||
|
||||
template <int N0, int... N1toN>
|
||||
struct sum<N0, N1toN...>
|
||||
{
|
||||
static constexpr auto value = N0 + sum<N1toN...>::value;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct sum<>
|
||||
{
|
||||
static constexpr auto value = 0;
|
||||
};
|
||||
|
||||
static_assert(sum<>::value == 0, "");
|
||||
static_assert(sum<1>::value == 1, "");
|
||||
static_assert(sum<23>::value == 23, "");
|
||||
static_assert(sum<1, 2>::value == 3, "");
|
||||
static_assert(sum<5, 5, 11>::value == 21, "");
|
||||
static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
|
||||
|
||||
}
|
||||
|
||||
// http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|
||||
// Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|
||||
// because of this.
|
||||
namespace test_template_alias_sfinae
|
||||
{
|
||||
|
||||
struct foo {};
|
||||
|
||||
template<typename T>
|
||||
using member = typename T::member_type;
|
||||
|
||||
template<typename T>
|
||||
void func(...) {}
|
||||
|
||||
template<typename T>
|
||||
void func(member<T>*) {}
|
||||
|
||||
void test();
|
||||
|
||||
void test() { func<foo>(0); }
|
||||
|
||||
}
|
||||
|
||||
} // namespace cxx11
|
||||
|
||||
#endif // __cplusplus >= 201103L
|
||||
|
||||
]])
|
||||
|
||||
|
||||
dnl Tests for new features in C++14
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
|
||||
|
||||
// If the compiler admits that it is not ready for C++14, why torture it?
|
||||
// Hopefully, this will speed up the test.
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#error "This is not a C++ compiler"
|
||||
|
||||
#elif __cplusplus < 201402L
|
||||
|
||||
#error "This is not a C++14 compiler"
|
||||
|
||||
#else
|
||||
|
||||
namespace cxx14
|
||||
{
|
||||
|
||||
namespace test_polymorphic_lambdas
|
||||
{
|
||||
|
||||
int
|
||||
test()
|
||||
{
|
||||
const auto lambda = [](auto&&... args){
|
||||
const auto istiny = [](auto x){
|
||||
return (sizeof(x) == 1UL) ? 1 : 0;
|
||||
};
|
||||
const int aretiny[] = { istiny(args)... };
|
||||
return aretiny[0];
|
||||
};
|
||||
return lambda(1, 1L, 1.0f, '1');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_binary_literals
|
||||
{
|
||||
|
||||
constexpr auto ivii = 0b0000000000101010;
|
||||
static_assert(ivii == 42, "wrong value");
|
||||
|
||||
}
|
||||
|
||||
namespace test_generalized_constexpr
|
||||
{
|
||||
|
||||
template < typename CharT >
|
||||
constexpr unsigned long
|
||||
strlen_c(const CharT *const s) noexcept
|
||||
{
|
||||
auto length = 0UL;
|
||||
for (auto p = s; *p; ++p)
|
||||
++length;
|
||||
return length;
|
||||
}
|
||||
|
||||
static_assert(strlen_c("") == 0UL, "");
|
||||
static_assert(strlen_c("x") == 1UL, "");
|
||||
static_assert(strlen_c("test") == 4UL, "");
|
||||
static_assert(strlen_c("another\0test") == 7UL, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_lambda_init_capture
|
||||
{
|
||||
|
||||
int
|
||||
test()
|
||||
{
|
||||
auto x = 0;
|
||||
const auto lambda1 = [a = x](int b){ return a + b; };
|
||||
const auto lambda2 = [a = lambda1(x)](){ return a; };
|
||||
return lambda2();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_digit_seperators
|
||||
{
|
||||
|
||||
constexpr auto ten_million = 100'000'000;
|
||||
static_assert(ten_million == 100000000, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_return_type_deduction
|
||||
{
|
||||
|
||||
auto f(int& x) { return x; }
|
||||
decltype(auto) g(int& x) { return x; }
|
||||
|
||||
template < typename T1, typename T2 >
|
||||
struct is_same
|
||||
{
|
||||
static constexpr auto value = false;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
struct is_same<T, T>
|
||||
{
|
||||
static constexpr auto value = true;
|
||||
};
|
||||
|
||||
int
|
||||
test()
|
||||
{
|
||||
auto x = 0;
|
||||
static_assert(is_same<int, decltype(f(x))>::value, "");
|
||||
static_assert(is_same<int&, decltype(g(x))>::value, "");
|
||||
return x;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} // namespace cxx14
|
||||
|
||||
#endif // __cplusplus >= 201402L
|
||||
|
||||
]])
|
||||
@@ -31,6 +31,7 @@
|
||||
# cold
|
||||
# const
|
||||
# constructor
|
||||
# constructor_priority for constructor attribute with priority
|
||||
# deprecated
|
||||
# destructor
|
||||
# dllexport
|
||||
@@ -73,7 +74,7 @@
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 2
|
||||
#serial 3
|
||||
|
||||
AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
|
||||
AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
|
||||
@@ -103,6 +104,9 @@ AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
|
||||
[const], [
|
||||
int foo( void ) __attribute__(($1));
|
||||
],
|
||||
[constructor_priority], [
|
||||
int foo( void ) __attribute__((__constructor__(65535/2)));
|
||||
],
|
||||
[constructor], [
|
||||
int foo( void ) __attribute__(($1));
|
||||
],
|
||||
@@ -180,6 +184,8 @@ AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
|
||||
[visibility], [
|
||||
int foo_def( void ) __attribute__(($1("default")));
|
||||
int foo_hid( void ) __attribute__(($1("hidden")));
|
||||
int foo_int( void ) __attribute__(($1("internal")));
|
||||
int foo_pro( void ) __attribute__(($1("protected")));
|
||||
],
|
||||
[warning], [
|
||||
int foo( void ) __attribute__(($1("")));
|
||||
|
||||
123
build-aux/m4/ax_openmp.m4
Normal file
123
build-aux/m4/ax_openmp.m4
Normal file
@@ -0,0 +1,123 @@
|
||||
# ===========================================================================
|
||||
# https://www.gnu.org/software/autoconf-archive/ax_openmp.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_OPENMP([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro tries to find out how to compile programs that use OpenMP a
|
||||
# standard API and set of compiler directives for parallel programming
|
||||
# (see http://www-unix.mcs/)
|
||||
#
|
||||
# On success, it sets the OPENMP_CFLAGS/OPENMP_CXXFLAGS/OPENMP_F77FLAGS
|
||||
# output variable to the flag (e.g. -omp) used both to compile *and* link
|
||||
# OpenMP programs in the current language.
|
||||
#
|
||||
# NOTE: You are assumed to not only compile your program with these flags,
|
||||
# but also link it with them as well.
|
||||
#
|
||||
# If you want to compile everything with OpenMP, you should set:
|
||||
#
|
||||
# CFLAGS="$CFLAGS $OPENMP_CFLAGS"
|
||||
# #OR# CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"
|
||||
# #OR# FFLAGS="$FFLAGS $OPENMP_FFLAGS"
|
||||
#
|
||||
# (depending on the selected language).
|
||||
#
|
||||
# The user can override the default choice by setting the corresponding
|
||||
# environment variable (e.g. OPENMP_CFLAGS).
|
||||
#
|
||||
# ACTION-IF-FOUND is a list of shell commands to run if an OpenMP flag is
|
||||
# found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it is
|
||||
# not found. If ACTION-IF-FOUND is not specified, the default action will
|
||||
# define HAVE_OPENMP.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
# Copyright (c) 2015 John W. Peterson <jwpeterson@gmail.com>
|
||||
# Copyright (c) 2016 Nick R. Papior <nickpapior@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 13
|
||||
|
||||
AC_DEFUN([AX_OPENMP], [
|
||||
AC_PREREQ([2.69]) dnl for _AC_LANG_PREFIX
|
||||
|
||||
AC_CACHE_CHECK([for OpenMP flag of _AC_LANG compiler], ax_cv_[]_AC_LANG_ABBREV[]_openmp, [save[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
ax_cv_[]_AC_LANG_ABBREV[]_openmp=unknown
|
||||
# Flags to try: -fopenmp (gcc), -mp (SGI & PGI),
|
||||
# -qopenmp (icc>=15), -openmp (icc),
|
||||
# -xopenmp (Sun), -omp (Tru64),
|
||||
# -qsmp=omp (AIX),
|
||||
# none
|
||||
ax_openmp_flags="-fopenmp -openmp -qopenmp -mp -xopenmp -omp -qsmp=omp none"
|
||||
if test "x$OPENMP_[]_AC_LANG_PREFIX[]FLAGS" != x; then
|
||||
ax_openmp_flags="$OPENMP_[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flags"
|
||||
fi
|
||||
for ax_openmp_flag in $ax_openmp_flags; do
|
||||
case $ax_openmp_flag in
|
||||
none) []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[] ;;
|
||||
*) []_AC_LANG_PREFIX[]FLAGS="$save[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flag" ;;
|
||||
esac
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||
@%:@include <omp.h>
|
||||
|
||||
static void
|
||||
parallel_fill(int * data, int n)
|
||||
{
|
||||
int i;
|
||||
@%:@pragma omp parallel for
|
||||
for (i = 0; i < n; ++i)
|
||||
data[i] = i;
|
||||
}
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
int arr[100000];
|
||||
omp_set_num_threads(2);
|
||||
parallel_fill(arr, 100000);
|
||||
return 0;
|
||||
}
|
||||
]])],[ax_cv_[]_AC_LANG_ABBREV[]_openmp=$ax_openmp_flag; break],[])
|
||||
done
|
||||
[]_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[]FLAGS
|
||||
])
|
||||
if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" = "xunknown"; then
|
||||
m4_default([$2],:)
|
||||
else
|
||||
if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" != "xnone"; then
|
||||
OPENMP_[]_AC_LANG_PREFIX[]FLAGS=$ax_cv_[]_AC_LANG_ABBREV[]_openmp
|
||||
fi
|
||||
m4_default([$1], [AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])])
|
||||
fi
|
||||
])dnl AX_OPENMP
|
||||
@@ -19,10 +19,10 @@
|
||||
# is necessary on AIX to use the special cc_r compiler alias.)
|
||||
#
|
||||
# NOTE: You are assumed to not only compile your program with these flags,
|
||||
# but also link it with them as well. e.g. you should link with
|
||||
# but also to link with them as well. For example, you might link with
|
||||
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
|
||||
#
|
||||
# If you are only building threads programs, you may wish to use these
|
||||
# If you are only building threaded programs, you may wish to use these
|
||||
# variables in your default LIBS, CFLAGS, and CC:
|
||||
#
|
||||
# LIBS="$PTHREAD_LIBS $LIBS"
|
||||
@@ -30,8 +30,8 @@
|
||||
# CC="$PTHREAD_CC"
|
||||
#
|
||||
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
|
||||
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
|
||||
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||
# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
|
||||
# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
|
||||
#
|
||||
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
|
||||
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
|
||||
@@ -82,35 +82,40 @@
|
||||
# modified version of the Autoconf Macro, you may extend this special
|
||||
# exception to the GPL to apply to your modified version as well.
|
||||
|
||||
#serial 21
|
||||
#serial 22
|
||||
|
||||
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
|
||||
AC_DEFUN([AX_PTHREAD], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([AC_PROG_SED])
|
||||
AC_LANG_PUSH([C])
|
||||
ax_pthread_ok=no
|
||||
|
||||
# We used to check for pthread.h first, but this fails if pthread.h
|
||||
# requires special compiler flags (e.g. on True64 or Sequent).
|
||||
# requires special compiler flags (e.g. on Tru64 or Sequent).
|
||||
# It gets checked for in the link test anyway.
|
||||
|
||||
# First of all, check if the user has set any of the PTHREAD_LIBS,
|
||||
# etcetera environment variables, and if threads linking works using
|
||||
# them:
|
||||
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
|
||||
save_CFLAGS="$CFLAGS"
|
||||
if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
|
||||
ax_pthread_save_CC="$CC"
|
||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_save_LIBS="$LIBS"
|
||||
AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
|
||||
AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
|
||||
AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
|
||||
AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
|
||||
AC_MSG_RESULT([$ax_pthread_ok])
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
if test "x$ax_pthread_ok" = "xno"; then
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
fi
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
CC="$ax_pthread_save_CC"
|
||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||
LIBS="$ax_pthread_save_LIBS"
|
||||
fi
|
||||
|
||||
# We must check for the threads library under a number of different
|
||||
@@ -123,7 +128,7 @@ fi
|
||||
# which indicates that we try without any flags at all, and "pthread-config"
|
||||
# which is a program returning the flags for the Pth emulation library.
|
||||
|
||||
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
||||
ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
|
||||
|
||||
# The ordering *is* (sometimes) important. Some notes on the
|
||||
# individual items follow:
|
||||
@@ -132,82 +137,225 @@ ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt
|
||||
# none: in case threads are in libc; should be tried before -Kthread and
|
||||
# other compiler flags to prevent continual compiler warnings
|
||||
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
|
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
|
||||
# -pthreads: Solaris/gcc
|
||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
|
||||
# (Note: HP C rejects this with "bad form for `-t' option")
|
||||
# -pthreads: Solaris/gcc (Note: HP C also rejects)
|
||||
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
|
||||
# doesn't hurt to check since this sometimes defines pthreads too;
|
||||
# also defines -D_REENTRANT)
|
||||
# ... -mt is also the pthreads flag for HP/aCC
|
||||
# doesn't hurt to check since this sometimes defines pthreads and
|
||||
# -D_REENTRANT too), HP C (must be checked before -lpthread, which
|
||||
# is present but should not be used directly; and before -mthreads,
|
||||
# because the compiler interprets this as "-mt" + "-hreads")
|
||||
# -mthreads: Mingw32/gcc, Lynx/gcc
|
||||
# pthread: Linux, etcetera
|
||||
# --thread-safe: KAI C++
|
||||
# pthread-config: use pthread-config program (for GNU Pth library)
|
||||
|
||||
case ${host_os} in
|
||||
case $host_os in
|
||||
|
||||
freebsd*)
|
||||
|
||||
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
|
||||
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
|
||||
|
||||
ax_pthread_flags="-kthread lthread $ax_pthread_flags"
|
||||
;;
|
||||
|
||||
hpux*)
|
||||
|
||||
# From the cc(1) man page: "[-mt] Sets various -D flags to enable
|
||||
# multi-threading and also sets -lpthread."
|
||||
|
||||
ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
|
||||
;;
|
||||
|
||||
openedition*)
|
||||
|
||||
# IBM z/OS requires a feature-test macro to be defined in order to
|
||||
# enable POSIX threads at all, so give the user a hint if this is
|
||||
# not set. (We don't define these ourselves, as they can affect
|
||||
# other portions of the system API in unpredictable ways.)
|
||||
|
||||
AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
|
||||
[
|
||||
# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
|
||||
AX_PTHREAD_ZOS_MISSING
|
||||
# endif
|
||||
],
|
||||
[AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
|
||||
;;
|
||||
|
||||
solaris*)
|
||||
|
||||
# On Solaris (at least, for some versions), libc contains stubbed
|
||||
# (non-functional) versions of the pthreads routines, so link-based
|
||||
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
|
||||
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
|
||||
# a function called by this macro, so we could check for that, but
|
||||
# who knows whether they'll stub that too in a future libc.) So,
|
||||
# we'll just look for -pthreads and -lpthread first:
|
||||
# tests will erroneously succeed. (N.B.: The stubs are missing
|
||||
# pthread_cleanup_push, or rather a function called by this macro,
|
||||
# so we could check for that, but who knows whether they'll stub
|
||||
# that too in a future libc.) So we'll check first for the
|
||||
# standard Solaris way of linking pthreads (-mt -lpthread).
|
||||
|
||||
ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
|
||||
;;
|
||||
|
||||
darwin*)
|
||||
ax_pthread_flags="-pthread $ax_pthread_flags"
|
||||
ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Clang doesn't consider unrecognized options an error unless we specify
|
||||
# -Werror. We throw in some extra Clang-specific options to ensure that
|
||||
# this doesn't happen for GCC, which also accepts -Werror.
|
||||
# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
|
||||
|
||||
AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
|
||||
save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_extra_flags="-Werror"
|
||||
CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[ax_pthread_extra_flags=
|
||||
AC_MSG_RESULT([no])])
|
||||
CFLAGS="$save_CFLAGS"
|
||||
AS_IF([test "x$GCC" = "xyes"],
|
||||
[ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"])
|
||||
|
||||
if test x"$ax_pthread_ok" = xno; then
|
||||
for flag in $ax_pthread_flags; do
|
||||
# The presence of a feature test macro requesting re-entrant function
|
||||
# definitions is, on some systems, a strong hint that pthreads support is
|
||||
# correctly enabled
|
||||
|
||||
case $flag in
|
||||
case $host_os in
|
||||
darwin* | hpux* | linux* | osf* | solaris*)
|
||||
ax_pthread_check_macro="_REENTRANT"
|
||||
;;
|
||||
|
||||
aix* | freebsd*)
|
||||
ax_pthread_check_macro="_THREAD_SAFE"
|
||||
;;
|
||||
|
||||
*)
|
||||
ax_pthread_check_macro="--"
|
||||
;;
|
||||
esac
|
||||
AS_IF([test "x$ax_pthread_check_macro" = "x--"],
|
||||
[ax_pthread_check_cond=0],
|
||||
[ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
|
||||
|
||||
# Are we compiling with Clang?
|
||||
|
||||
AC_CACHE_CHECK([whether $CC is Clang],
|
||||
[ax_cv_PTHREAD_CLANG],
|
||||
[ax_cv_PTHREAD_CLANG=no
|
||||
# Note that Autoconf sets GCC=yes for Clang as well as GCC
|
||||
if test "x$GCC" = "xyes"; then
|
||||
AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
|
||||
[/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
|
||||
# if defined(__clang__) && defined(__llvm__)
|
||||
AX_PTHREAD_CC_IS_CLANG
|
||||
# endif
|
||||
],
|
||||
[ax_cv_PTHREAD_CLANG=yes])
|
||||
fi
|
||||
])
|
||||
ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
|
||||
|
||||
ax_pthread_clang_warning=no
|
||||
|
||||
# Clang needs special handling, because older versions handle the -pthread
|
||||
# option in a rather... idiosyncratic way
|
||||
|
||||
if test "x$ax_pthread_clang" = "xyes"; then
|
||||
|
||||
# Clang takes -pthread; it has never supported any other flag
|
||||
|
||||
# (Note 1: This will need to be revisited if a system that Clang
|
||||
# supports has POSIX threads in a separate library. This tends not
|
||||
# to be the way of modern systems, but it's conceivable.)
|
||||
|
||||
# (Note 2: On some systems, notably Darwin, -pthread is not needed
|
||||
# to get POSIX threads support; the API is always present and
|
||||
# active. We could reasonably leave PTHREAD_CFLAGS empty. But
|
||||
# -pthread does define _REENTRANT, and while the Darwin headers
|
||||
# ignore this macro, third-party headers might not.)
|
||||
|
||||
PTHREAD_CFLAGS="-pthread"
|
||||
PTHREAD_LIBS=
|
||||
|
||||
ax_pthread_ok=yes
|
||||
|
||||
# However, older versions of Clang make a point of warning the user
|
||||
# that, in an invocation where only linking and no compilation is
|
||||
# taking place, the -pthread option has no effect ("argument unused
|
||||
# during compilation"). They expect -pthread to be passed in only
|
||||
# when source code is being compiled.
|
||||
#
|
||||
# Problem is, this is at odds with the way Automake and most other
|
||||
# C build frameworks function, which is that the same flags used in
|
||||
# compilation (CFLAGS) are also used in linking. Many systems
|
||||
# supported by AX_PTHREAD require exactly this for POSIX threads
|
||||
# support, and in fact it is often not straightforward to specify a
|
||||
# flag that is used only in the compilation phase and not in
|
||||
# linking. Such a scenario is extremely rare in practice.
|
||||
#
|
||||
# Even though use of the -pthread flag in linking would only print
|
||||
# a warning, this can be a nuisance for well-run software projects
|
||||
# that build with -Werror. So if the active version of Clang has
|
||||
# this misfeature, we search for an option to squash it.
|
||||
|
||||
AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
|
||||
[ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
|
||||
[ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
|
||||
# Create an alternate version of $ac_link that compiles and
|
||||
# links in two steps (.c -> .o, .o -> exe) instead of one
|
||||
# (.c -> exe), because the warning occurs only in the second
|
||||
# step
|
||||
ax_pthread_save_ac_link="$ac_link"
|
||||
ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
|
||||
ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
|
||||
ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
|
||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||
for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
|
||||
AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
|
||||
CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
|
||||
ac_link="$ax_pthread_save_ac_link"
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
|
||||
[ac_link="$ax_pthread_2step_ac_link"
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
|
||||
[break])
|
||||
])
|
||||
done
|
||||
ac_link="$ax_pthread_save_ac_link"
|
||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||
AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
|
||||
ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
|
||||
])
|
||||
|
||||
case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
|
||||
no | unknown) ;;
|
||||
*) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
|
||||
esac
|
||||
|
||||
fi # $ax_pthread_clang = yes
|
||||
|
||||
if test "x$ax_pthread_ok" = "xno"; then
|
||||
for ax_pthread_try_flag in $ax_pthread_flags; do
|
||||
|
||||
case $ax_pthread_try_flag in
|
||||
none)
|
||||
AC_MSG_CHECKING([whether pthreads work without any flags])
|
||||
;;
|
||||
|
||||
-mt,pthread)
|
||||
AC_MSG_CHECKING([whether pthreads work with -mt -lpthread])
|
||||
PTHREAD_CFLAGS="-mt"
|
||||
PTHREAD_LIBS="-lpthread"
|
||||
;;
|
||||
|
||||
-*)
|
||||
AC_MSG_CHECKING([whether pthreads work with $flag])
|
||||
PTHREAD_CFLAGS="$flag"
|
||||
AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
|
||||
PTHREAD_CFLAGS="$ax_pthread_try_flag"
|
||||
;;
|
||||
|
||||
pthread-config)
|
||||
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
|
||||
if test x"$ax_pthread_config" = xno; then continue; fi
|
||||
AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
|
||||
PTHREAD_CFLAGS="`pthread-config --cflags`"
|
||||
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
|
||||
;;
|
||||
|
||||
*)
|
||||
AC_MSG_CHECKING([for the pthreads library -l$flag])
|
||||
PTHREAD_LIBS="-l$flag"
|
||||
AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
|
||||
PTHREAD_LIBS="-l$ax_pthread_try_flag"
|
||||
;;
|
||||
esac
|
||||
|
||||
save_LIBS="$LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
|
||||
|
||||
# Check for various functions. We must include pthread.h,
|
||||
# since some functions may be macros. (On the Sequent, we
|
||||
@@ -218,7 +366,11 @@ for flag in $ax_pthread_flags; do
|
||||
# pthread_cleanup_push because it is one of the few pthread
|
||||
# functions on Solaris that doesn't have a non-functional libc stub.
|
||||
# We try pthread_create on general principles.
|
||||
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
|
||||
# if $ax_pthread_check_cond
|
||||
# error "$ax_pthread_check_macro must be defined"
|
||||
# endif
|
||||
static void routine(void *a) { a = 0; }
|
||||
static void *start_routine(void *a) { return a; }],
|
||||
[pthread_t th; pthread_attr_t attr;
|
||||
@@ -230,13 +382,11 @@ for flag in $ax_pthread_flags; do
|
||||
[ax_pthread_ok=yes],
|
||||
[])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||
LIBS="$ax_pthread_save_LIBS"
|
||||
|
||||
AC_MSG_RESULT([$ax_pthread_ok])
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
break;
|
||||
fi
|
||||
AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
|
||||
|
||||
PTHREAD_LIBS=""
|
||||
PTHREAD_CFLAGS=""
|
||||
@@ -244,62 +394,65 @@ done
|
||||
fi
|
||||
|
||||
# Various other checks:
|
||||
if test "x$ax_pthread_ok" = xyes; then
|
||||
save_LIBS="$LIBS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
save_CFLAGS="$CFLAGS"
|
||||
if test "x$ax_pthread_ok" = "xyes"; then
|
||||
ax_pthread_save_CFLAGS="$CFLAGS"
|
||||
ax_pthread_save_LIBS="$LIBS"
|
||||
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
|
||||
LIBS="$PTHREAD_LIBS $LIBS"
|
||||
|
||||
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
|
||||
AC_MSG_CHECKING([for joinable pthread attribute])
|
||||
attr_name=unknown
|
||||
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||
AC_CACHE_CHECK([for joinable pthread attribute],
|
||||
[ax_cv_PTHREAD_JOINABLE_ATTR],
|
||||
[ax_cv_PTHREAD_JOINABLE_ATTR=unknown
|
||||
for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
|
||||
[int attr = $attr; return attr /* ; */])],
|
||||
[attr_name=$attr; break],
|
||||
[int attr = $ax_pthread_attr; return attr /* ; */])],
|
||||
[ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
|
||||
[])
|
||||
done
|
||||
AC_MSG_RESULT([$attr_name])
|
||||
if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
|
||||
AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
|
||||
])
|
||||
AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
|
||||
test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
|
||||
test "x$ax_pthread_joinable_attr_defined" != "xyes"],
|
||||
[AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
|
||||
[$ax_cv_PTHREAD_JOINABLE_ATTR],
|
||||
[Define to necessary symbol if this constant
|
||||
uses a non-standard name on your system.])
|
||||
fi
|
||||
ax_pthread_joinable_attr_defined=yes
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING([if more special flags are required for pthreads])
|
||||
flag=no
|
||||
case ${host_os} in
|
||||
aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
|
||||
osf* | hpux*) flag="-D_REENTRANT";;
|
||||
AC_CACHE_CHECK([whether more special flags are required for pthreads],
|
||||
[ax_cv_PTHREAD_SPECIAL_FLAGS],
|
||||
[ax_cv_PTHREAD_SPECIAL_FLAGS=no
|
||||
case $host_os in
|
||||
solaris*)
|
||||
if test "$GCC" = "yes"; then
|
||||
flag="-D_REENTRANT"
|
||||
else
|
||||
# TODO: What about Clang on Solaris?
|
||||
flag="-mt -D_REENTRANT"
|
||||
fi
|
||||
ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT([$flag])
|
||||
if test "x$flag" != xno; then
|
||||
PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
|
||||
fi
|
||||
])
|
||||
AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
|
||||
test "x$ax_pthread_special_flags_added" != "xyes"],
|
||||
[PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
|
||||
ax_pthread_special_flags_added=yes])
|
||||
|
||||
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT], [
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT],
|
||||
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
|
||||
[[int i = PTHREAD_PRIO_INHERIT;]])],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
|
||||
[ax_cv_PTHREAD_PRIO_INHERIT=no])
|
||||
])
|
||||
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
|
||||
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
|
||||
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
|
||||
test "x$ax_pthread_prio_inherit_defined" != "xyes"],
|
||||
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
|
||||
ax_pthread_prio_inherit_defined=yes
|
||||
])
|
||||
|
||||
LIBS="$save_LIBS"
|
||||
CFLAGS="$save_CFLAGS"
|
||||
CFLAGS="$ax_pthread_save_CFLAGS"
|
||||
LIBS="$ax_pthread_save_LIBS"
|
||||
|
||||
# More AIX lossage: compile with *_r variant
|
||||
if test "x$GCC" != xyes; then
|
||||
if test "x$GCC" != "xyes"; then
|
||||
case $host_os in
|
||||
aix*)
|
||||
AS_CASE(["x/$CC"],
|
||||
@@ -321,7 +474,7 @@ AC_SUBST([PTHREAD_CFLAGS])
|
||||
AC_SUBST([PTHREAD_CC])
|
||||
|
||||
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
|
||||
if test x"$ax_pthread_ok" = xyes; then
|
||||
if test "x$ax_pthread_ok" = "xyes"; then
|
||||
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
|
||||
:
|
||||
else
|
||||
|
||||
40
build-aux/m4/l_atomic.m4
Normal file
40
build-aux/m4/l_atomic.m4
Normal file
@@ -0,0 +1,40 @@
|
||||
# Some versions of gcc/libstdc++ require linking with -latomic if
|
||||
# using the C++ atomic library.
|
||||
#
|
||||
# Sourced from http://bugs.debian.org/797228
|
||||
|
||||
m4_define([_CHECK_ATOMIC_testbody], [[
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
|
||||
int main() {
|
||||
std::atomic<int64_t> a{};
|
||||
|
||||
int64_t v = 5;
|
||||
int64_t r = a.fetch_add(v);
|
||||
return static_cast<int>(r);
|
||||
}
|
||||
]])
|
||||
|
||||
AC_DEFUN([CHECK_ATOMIC], [
|
||||
|
||||
AC_LANG_PUSH(C++)
|
||||
|
||||
AC_MSG_CHECKING([whether std::atomic can be used without link library])
|
||||
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_ATOMIC_testbody])],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
LIBS="$LIBS -latomic"
|
||||
AC_MSG_CHECKING([whether std::atomic needs -latomic])
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE([_CHECK_ATOMIC_testbody])],[
|
||||
AC_MSG_RESULT([yes])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_FAILURE([cannot figure our how to use std::atomic])
|
||||
])
|
||||
])
|
||||
|
||||
AC_LANG_POP
|
||||
])
|
||||
@@ -41,19 +41,19 @@ is deemed necessary and appropriate to the circumstances. Maintainers are
|
||||
obligated to maintain confidentiality with regard to the reporter of an
|
||||
incident.
|
||||
|
||||
You may send reports to [our Conduct email](mailto:conduct@z.cash).
|
||||
You may send reports to [our Conduct email](mailto:developer@komodoplatform.com).
|
||||
|
||||
If you wish to contact specific maintainers directly, the following have made
|
||||
themselves available for conduct issues:
|
||||
|
||||
- Daira Hopwood (daira at z.cash)
|
||||
- Sean Bowe (sean at z.cash)
|
||||
|
||||
- Benny Fairbank (benny at komodoplatform.com)
|
||||
- Support Team (support at komodoplatform.com)
|
||||
- ca333 (ca333 at komodoplatform.com)
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 1.3.0, available at
|
||||
[http://contributor-covenant.org/version/1/3/0/][version]
|
||||
[https://www.contributor-covenant.org/version/1/3/0/][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/3/0/
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[version]: https://www.contributor-covenant.org/version/1/3/0/
|
||||
|
||||
|
||||
379
configure.ac
379
configure.ac
@@ -2,7 +2,7 @@ dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
|
||||
AC_PREREQ([2.60])
|
||||
define(_CLIENT_VERSION_MAJOR, 1)
|
||||
define(_CLIENT_VERSION_MINOR, 0)
|
||||
define(_CLIENT_VERSION_REVISION, 8)
|
||||
define(_CLIENT_VERSION_REVISION, 15)
|
||||
define(_CLIENT_VERSION_BUILD, 50)
|
||||
define(_ZC_BUILD_VAL, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, m4_incr(_CLIENT_VERSION_BUILD), m4_eval(_CLIENT_VERSION_BUILD < 50), 1, m4_eval(_CLIENT_VERSION_BUILD - 24), m4_eval(_CLIENT_VERSION_BUILD == 50), 1, , m4_eval(_CLIENT_VERSION_BUILD - 50)))
|
||||
define(_CLIENT_VERSION_SUFFIX, m4_if(m4_eval(_CLIENT_VERSION_BUILD < 25), 1, _CLIENT_VERSION_REVISION-beta$1, m4_eval(_CLIENT_VERSION_BUILD < 50), 1, _CLIENT_VERSION_REVISION-rc$1, m4_eval(_CLIENT_VERSION_BUILD == 50), 1, _CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION-$1)))
|
||||
@@ -14,6 +14,16 @@ AC_CONFIG_HEADERS([src/config/bitcoin-config.h])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_CONFIG_MACRO_DIR([build-aux/m4])
|
||||
|
||||
BITCOIN_DAEMON_NAME=zcashd
|
||||
BITCOIN_CLI_NAME=zcash-cli
|
||||
BITCOIN_TX_NAME=zcash-tx
|
||||
|
||||
dnl Unless the user specified ARFLAGS, force it to be cr
|
||||
AC_ARG_VAR(ARFLAGS, [Flags for the archiver, defaults to <cr> if not set])
|
||||
if test "x${ARFLAGS+set}" != "xset"; then
|
||||
ARFLAGS="cr"
|
||||
fi
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
AH_TOP([#ifndef BITCOIN_CONFIG_H])
|
||||
@@ -24,7 +34,7 @@ dnl faketime breaks configure and is only needed for make. Disable it here.
|
||||
unset FAKETIME
|
||||
|
||||
dnl Automake init set-up and checks
|
||||
AM_INIT_AUTOMAKE([no-define subdir-objects foreign])
|
||||
AM_INIT_AUTOMAKE([no-define subdir-objects foreign tar-pax])
|
||||
|
||||
dnl faketime messes with timestamps and causes configure to be re-run.
|
||||
dnl --disable-maintainer-mode can be used to bypass this.
|
||||
@@ -40,9 +50,6 @@ else
|
||||
CXXFLAGS_overridden=no
|
||||
fi
|
||||
|
||||
# Zcash requries C++11 compatibility; set it early:
|
||||
CXXFLAGS="-std=c++11 $CXXFLAGS"
|
||||
|
||||
AC_PROG_CXX
|
||||
m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCXX])
|
||||
|
||||
@@ -54,6 +61,11 @@ case $host in
|
||||
lt_cv_deplibs_check_method="pass_all"
|
||||
;;
|
||||
esac
|
||||
dnl Require C++11 compiler (no GNU extensions)
|
||||
AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory], [nodefault])
|
||||
dnl Check if -latomic is required for <std::atomic>
|
||||
CHECK_ATOMIC
|
||||
|
||||
dnl Libtool init checks.
|
||||
LT_INIT([pic-only])
|
||||
|
||||
@@ -63,7 +75,6 @@ AC_PATH_TOOL(RANLIB, ranlib)
|
||||
AC_PATH_TOOL(STRIP, strip)
|
||||
AC_PATH_TOOL(GCOV, gcov)
|
||||
AC_PATH_PROG(LCOV, lcov)
|
||||
AC_PATH_PROG(JAVA, java)
|
||||
AC_PATH_PROG(GENHTML, genhtml)
|
||||
AC_PATH_PROG([GIT], [git])
|
||||
AC_PATH_PROG(CCACHE,ccache)
|
||||
@@ -72,9 +83,6 @@ AC_PATH_PROG(HEXDUMP,hexdump)
|
||||
AC_PATH_TOOL(READELF,readelf)
|
||||
AC_PATH_TOOL(CPPFILT,c++filt)
|
||||
|
||||
dnl pkg-config check.
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
# Enable wallet
|
||||
AC_ARG_ENABLE([wallet],
|
||||
[AS_HELP_STRING([--enable-wallet],
|
||||
@@ -94,32 +102,28 @@ AC_ARG_ENABLE([rust],
|
||||
[enable_rust=$enableval],
|
||||
[enable_rust=yes])
|
||||
|
||||
AC_ARG_WITH([miniupnpc],
|
||||
[AS_HELP_STRING([--with-miniupnpc],
|
||||
[enable UPNP (default is yes if libminiupnpc is found)])],
|
||||
[use_upnp=$withval],
|
||||
[use_upnp=auto])
|
||||
|
||||
AC_ARG_ENABLE([upnp-default],
|
||||
[AS_HELP_STRING([--enable-upnp-default],
|
||||
[if UPNP is enabled, turn it on at startup (default is no)])],
|
||||
[use_upnp_default=$enableval],
|
||||
[use_upnp_default=no])
|
||||
AC_ARG_ENABLE([proton],
|
||||
[AS_HELP_STRING([--disable-proton],
|
||||
[disable Proton (AMQP messaging)])],
|
||||
[use_proton=$enableval],
|
||||
[use_proton=yes])
|
||||
|
||||
AC_ARG_ENABLE(tests,
|
||||
AS_HELP_STRING([--enable-tests],[compile tests (default is yes)]),
|
||||
[use_tests=$enableval],
|
||||
[use_tests=yes])
|
||||
|
||||
AC_ARG_WITH([comparison-tool],
|
||||
AS_HELP_STRING([--with-comparison-tool],[path to java comparison tool (requires --enable-tests)]),
|
||||
[use_comparison_tool=$withval],
|
||||
[use_comparison_tool=no])
|
||||
AC_ARG_ENABLE([asan],
|
||||
[AS_HELP_STRING([--enable-asan],
|
||||
[instrument the executables with asan (default is no)])],
|
||||
[use_asan=$enableval],
|
||||
[use_asan=no])
|
||||
|
||||
AC_ARG_ENABLE([comparison-tool-reorg-tests],
|
||||
AS_HELP_STRING([--enable-comparison-tool-reorg-tests],[enable expensive reorg tests in the comparison tool (default no)]),
|
||||
[use_comparison_tool_reorg_tests=$enableval],
|
||||
[use_comparison_tool_reorg_tests=no])
|
||||
AC_ARG_ENABLE([tsan],
|
||||
[AS_HELP_STRING([--enable-tsan],
|
||||
[instrument the executables with tsan (default is no)])],
|
||||
[use_tsan=$enableval],
|
||||
[use_tsan=no])
|
||||
|
||||
if test x$TARGET_OS = xdarwin; then
|
||||
AC_ARG_ENABLE([hardening],
|
||||
@@ -180,6 +184,16 @@ AC_ARG_ENABLE([debug],
|
||||
[enable_debug=$enableval],
|
||||
[enable_debug=no])
|
||||
|
||||
# Turn warnings into errors
|
||||
AC_ARG_ENABLE([werror],
|
||||
[AS_HELP_STRING([--enable-werror],
|
||||
[Treat all compiler warnings as errors (default is no)])],
|
||||
[enable_werror=$enableval],
|
||||
[enable_werror=no])
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
AX_CHECK_COMPILE_FLAG([-Werror],[CXXFLAG_WERROR="-Werror"],[CXXFLAG_WERROR=""])
|
||||
|
||||
if test "x$enable_debug" = xyes; then
|
||||
CPPFLAGS="$CPPFLAGS -DDEBUG -DDEBUG_LOCKORDER"
|
||||
if test "x$GCC" = xyes; then
|
||||
@@ -191,11 +205,28 @@ if test "x$enable_debug" = xyes; then
|
||||
fi
|
||||
fi
|
||||
|
||||
## TODO: Remove these hard-coded paths and flags. They are here for the sake of
|
||||
## compatibility with the legacy buildsystem.
|
||||
##
|
||||
ERROR_CXXFLAGS=
|
||||
if test "x$enable_werror" = "xyes"; then
|
||||
if test "x$CXXFLAG_WERROR" = "x"; then
|
||||
AC_MSG_ERROR("enable-werror set but -Werror is not usable")
|
||||
fi
|
||||
ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror"
|
||||
fi
|
||||
|
||||
if test "x$CXXFLAGS_overridden" = "xno"; then
|
||||
CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wformat -Wformat-security -Wno-unused-parameter -Wno-self-assign"
|
||||
AX_CHECK_COMPILE_FLAG([-Wall],[CXXFLAGS="$CXXFLAGS -Wall"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wextra],[CXXFLAGS="$CXXFLAGS -Wextra"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat],[CXXFLAGS="$CXXFLAGS -Wformat"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wvla],[CXXFLAGS="$CXXFLAGS -Wvla"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat-security],[CXXFLAGS="$CXXFLAGS -Wformat-security"],,[[$CXXFLAG_WERROR]])
|
||||
|
||||
## Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
|
||||
## unknown options if any other warning is produced. Test the -Wfoo case, and
|
||||
## set the -Wno-foo case if it works.
|
||||
AX_CHECK_COMPILE_FLAG([-Wunused-parameter],[CXXFLAGS="$CXXFLAGS -Wno-unused-parameter"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wself-assign],[CXXFLAGS="$CXXFLAGS -Wno-self-assign"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wunused-local-typedef],[CXXFLAGS="$CXXFLAGS -Wno-unused-local-typedef"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wdeprecated-register],[CXXFLAGS="$CXXFLAGS -Wno-deprecated-register"],,[[$CXXFLAG_WERROR]])
|
||||
fi
|
||||
CPPFLAGS="$CPPFLAGS -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS"
|
||||
|
||||
@@ -217,8 +248,6 @@ AC_ARG_WITH([daemon],
|
||||
[build_bitcoind=$withval],
|
||||
[build_bitcoind=yes])
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
|
||||
use_pkgconfig=yes
|
||||
case $host in
|
||||
*mingw*)
|
||||
@@ -343,6 +372,7 @@ dnl fi
|
||||
|
||||
AX_CHECK_LINK_FLAG([[-Wl,-headerpad_max_install_names]], [LDFLAGS="$LDFLAGS -Wl,-headerpad_max_install_names"])
|
||||
CPPFLAGS="$CPPFLAGS -DMAC_OSX"
|
||||
OBJCXXFLAGS="$CXXFLAGS"
|
||||
;;
|
||||
*linux*)
|
||||
TARGET_OS=linux
|
||||
@@ -351,20 +381,14 @@ dnl fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if test x$use_comparison_tool != xno; then
|
||||
if test x$JAVA = x; then
|
||||
AC_MSG_ERROR("comparison tool set but java not found")
|
||||
if test x$use_pkgconfig = xyes; then
|
||||
m4_ifndef([PKG_PROG_PKG_CONFIG], [AC_MSG_ERROR(PKG_PROG_PKG_CONFIG macro not found. Please install pkg-config and re-run autogen.sh.)])
|
||||
m4_ifdef([PKG_PROG_PKG_CONFIG], [
|
||||
PKG_PROG_PKG_CONFIG
|
||||
if test x"$PKG_CONFIG" = "x"; then
|
||||
AC_MSG_ERROR(pkg-config not found.)
|
||||
fi
|
||||
AC_SUBST(JAVA_COMPARISON_TOOL, $use_comparison_tool)
|
||||
fi
|
||||
|
||||
if test x$use_comparison_tool_reorg_tests != xno; then
|
||||
if test x$use_comparison_tool = x; then
|
||||
AC_MSG_ERROR("comparison tool reorg tests but comparison tool was not specified")
|
||||
fi
|
||||
AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 1)
|
||||
else
|
||||
AC_SUBST(COMPARISON_TOOL_REORG_TESTS, 0)
|
||||
])
|
||||
fi
|
||||
|
||||
if test x$use_lcov = xyes; then
|
||||
@@ -374,15 +398,9 @@ if test x$use_lcov = xyes; then
|
||||
if test x$GCOV = x; then
|
||||
AC_MSG_ERROR("lcov testing requested but gcov not found")
|
||||
fi
|
||||
if test x$JAVA = x; then
|
||||
AC_MSG_ERROR("lcov testing requested but java not found")
|
||||
fi
|
||||
if test x$GENHTML = x; then
|
||||
AC_MSG_ERROR("lcov testing requested but genhtml not found")
|
||||
fi
|
||||
if test x$use_comparison_tool = x; then
|
||||
AC_MSG_ERROR("lcov testing requested but comparison tool was not specified")
|
||||
fi
|
||||
LCOV="$LCOV --gcov-tool=$GCOV --rc lcov_branch_coverage=1"
|
||||
GENHTML="$GENHTML --branch-coverage"
|
||||
AX_CHECK_COMPILE_FLAG([--coverage],[CXXFLAGS="$CXXFLAGS --coverage"],
|
||||
@@ -443,6 +461,34 @@ else
|
||||
AC_SEARCH_LIBS([clock_gettime],[rt])
|
||||
fi
|
||||
|
||||
if test x$TARGET_OS != xwindows; then
|
||||
# All windows code is PIC, forcing it on just adds useless compile warnings
|
||||
AX_CHECK_COMPILE_FLAG([-fPIC],[PIC_FLAGS="-fPIC"])
|
||||
fi
|
||||
|
||||
#asan and tsan cannot be used together
|
||||
if test x$use_asan$use_tsan == xyesyes; then
|
||||
AC_MSG_ERROR(asan and tsan cannot be simultaneously enabled)
|
||||
fi
|
||||
|
||||
# using asan flag to enable address sanitizer and undefined behavior sanitizer
|
||||
if test x$use_asan == xyes; then
|
||||
AX_CHECK_LINK_FLAG([-static-libstdc++],[SAN_LDFLAGS="$SAN_LDFLAGS -static-libstdc++"],[AC_MSG_ERROR(Cannot statically link -static-libstdc++)])
|
||||
AX_CHECK_LINK_FLAG([-static-libasan],[SAN_LDFLAGS="$SAN_LDFLAGS -static-libasan"],[AC_MSG_ERROR(Cannot statically link -static-libasan)])
|
||||
AX_CHECK_COMPILE_FLAG([-fsanitize=address],[SAN_CXXFLAGS="$SAN_CXXFLAGS -fsanitize=address"],[AC_MSG_ERROR(Cannot enable -fsanitize=address)])
|
||||
AX_CHECK_COMPILE_FLAG([-fsanitize=undefined],[SAN_CXXFLAGS="$SAN_CXXFLAGS -fsanitize=undefined"],[AC_MSG_ERROR(Cannot enable -fsanitize=undefined)])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer],[SAN_CXXFLAGS="$SAN_CXXFLAGS -fno-omit-frame-pointer"],[AC_MSG_ERROR(Cannot enable -fno-omit-frame-pointer)])
|
||||
fi
|
||||
|
||||
# using tsan flag to enable address thread sanitizer
|
||||
# TSAN is supported on Linux x84_64 and tested on Ubuntu 12.04
|
||||
# Non-position-independent executables are not supported. Use with -fPIE and -pie flags
|
||||
# libc/libstdc++ static linking is not supported
|
||||
if test x$use_tsan == xyes; then
|
||||
AX_CHECK_COMPILE_FLAG([-fsanitize=thread],[SAN_CXXFLAGS="$SAN_CXXFLAGS -fsanitize=thread"],[AC_MSG_ERROR(Cannot enable -fsanitize=thread)])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer],[SAN_CXXFLAGS="$SAN_CXXFLAGS -fno-omit-frame-pointer"],[AC_MSG_ERROR(Cannot enable -fno-omit-frame-pointer)])
|
||||
fi
|
||||
|
||||
if test x$use_hardening != xno; then
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wformat"],[AC_MSG_ERROR(Cannot enable -Wformat)])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat-security],[HARDENED_CXXFLAGS="$HARDENED_CXXFLAGS -Wformat-security"],[AC_MSG_ERROR(Cannot enable -Wformat-security)],[-Wformat])
|
||||
@@ -469,6 +515,7 @@ if test x$use_hardening != xno; then
|
||||
# These are only available on Windows.
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--dynamicbase]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--dynamicbase"],[AC_MSG_ERROR(Cannot enable --dynamicbase)])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--nxcompat]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--nxcompat"],[AC_MSG_ERROR(Cannot enable --nxcompat)])
|
||||
AX_CHECK_LINK_FLAG([[-Wl,--high-entropy-va]], [HARDENED_LDFLAGS="$HARDENED_LDFLAGS -Wl,--high-entropy-va"],[AC_MSG_ERROR(Cannot enable ASLR)])
|
||||
fi
|
||||
|
||||
case $host in
|
||||
@@ -476,11 +523,6 @@ if test x$use_hardening != xno; then
|
||||
AC_CHECK_LIB([ssp], [main],, AC_MSG_ERROR(lib missing))
|
||||
;;
|
||||
esac
|
||||
|
||||
CXXFLAGS="$CXXFLAGS $HARDENED_CXXFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $HARDENED_CPPFLAGS"
|
||||
LDFLAGS="$LDFLAGS $HARDENED_LDFLAGS"
|
||||
OBJCXXFLAGS="$CXXFLAGS"
|
||||
fi
|
||||
|
||||
dnl this flag screws up non-darwin gcc even when the check fails. special-case it.
|
||||
@@ -549,13 +591,21 @@ if test x$enable_wallet != xno; then
|
||||
BITCOIN_FIND_BDB62
|
||||
fi
|
||||
|
||||
dnl Check for libminiupnpc (optional)
|
||||
if test x$use_upnp != xno; then
|
||||
AC_CHECK_HEADERS(
|
||||
[miniupnpc/miniwget.h miniupnpc/miniupnpc.h miniupnpc/upnpcommands.h miniupnpc/upnperrors.h],
|
||||
[AC_CHECK_LIB([miniupnpc], [main],[MINIUPNPC_LIBS=-lminiupnpc], [have_miniupnpc=no])],
|
||||
[have_miniupnpc=no]
|
||||
)
|
||||
dnl Check Qpid Proton headers and library exist
|
||||
if test x$use_proton = xyes; then
|
||||
AC_CHECK_HEADERS([proton/connection.hpp],
|
||||
[],
|
||||
[AC_MSG_WARN([Proton headers not found, disabling Proton support])
|
||||
use_proton=no])
|
||||
AC_CHECK_LIB([qpid-proton-cpp], [main],
|
||||
[PROTON_LIBS="-lqpid-proton-cpp -lqpid-proton"],
|
||||
[AC_MSG_WARN([Proton libraries not found, disabling Proton support])
|
||||
use_proton=no])
|
||||
fi
|
||||
if test x$use_proton = xyes; then
|
||||
AC_DEFINE(ENABLE_PROTON, 1, [Define to 1 to enable Proton functions])
|
||||
else
|
||||
AC_DEFINE(ENABLE_PROTON, 0, [Define to 1 to enable Proton functions])
|
||||
fi
|
||||
|
||||
if test x$build_bitcoin_utils$build_bitcoind$use_tests = xnonono; then
|
||||
@@ -567,33 +617,14 @@ fi
|
||||
if test x$use_boost = xyes; then
|
||||
|
||||
dnl Check for boost libs
|
||||
AX_BOOST_BASE
|
||||
dnl We need Boost >= 1.62 to fix a potential security bug (https://github.com/zcash/zcash/issues/1241)
|
||||
AX_BOOST_BASE([1.62])
|
||||
AX_BOOST_SYSTEM
|
||||
AX_BOOST_FILESYSTEM
|
||||
AX_BOOST_PROGRAM_OPTIONS
|
||||
AX_BOOST_THREAD
|
||||
AX_BOOST_CHRONO
|
||||
|
||||
|
||||
if test x$use_reduce_exports = xyes; then
|
||||
AC_MSG_CHECKING([for working boost reduced exports])
|
||||
TEMP_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$BOOST_CPPFLAGS $CPPFLAGS"
|
||||
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
|
||||
@%:@include <boost/version.hpp>
|
||||
]], [[
|
||||
#if BOOST_VERSION >= 104900
|
||||
// Everything is okay
|
||||
#else
|
||||
# error Boost version is too old
|
||||
#endif
|
||||
]])],[
|
||||
AC_MSG_RESULT(yes)
|
||||
],[
|
||||
AC_MSG_ERROR([boost versions < 1.49 are known to be broken with reduced exports. Use --disable-reduce-exports.])
|
||||
])
|
||||
CPPFLAGS="$TEMP_CPPFLAGS"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test x$use_reduce_exports = xyes; then
|
||||
@@ -634,69 +665,11 @@ if test x$use_tests = xyes; then
|
||||
fi
|
||||
|
||||
if test x$use_boost = xyes; then
|
||||
|
||||
BOOST_LIBS="$BOOST_LDFLAGS $BOOST_SYSTEM_LIB $BOOST_FILESYSTEM_LIB $BOOST_PROGRAM_OPTIONS_LIB $BOOST_THREAD_LIB $BOOST_CHRONO_LIB"
|
||||
|
||||
dnl Boost >= 1.50 uses sleep_for rather than the now-deprecated sleep, however
|
||||
dnl it was broken from 1.50 to 1.52 when backed by nanosleep. Use sleep_for if
|
||||
dnl a working version is available, else fall back to sleep. sleep was removed
|
||||
dnl after 1.56.
|
||||
dnl If neither is available, abort.
|
||||
TEMP_LIBS="$LIBS"
|
||||
LIBS="$BOOST_LIBS $LIBS"
|
||||
TEMP_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <boost/thread/thread.hpp>
|
||||
#include <boost/version.hpp>
|
||||
]],[[
|
||||
#if BOOST_VERSION >= 105000 && (!defined(BOOST_HAS_NANOSLEEP) || BOOST_VERSION >= 105200)
|
||||
boost::this_thread::sleep_for(boost::chrono::milliseconds(0));
|
||||
#else
|
||||
choke me
|
||||
#endif
|
||||
]])],
|
||||
[boost_sleep=yes;
|
||||
AC_DEFINE(HAVE_WORKING_BOOST_SLEEP_FOR, 1, [Define this symbol if boost sleep_for works])],
|
||||
[boost_sleep=no])
|
||||
LIBS="$TEMP_LIBS"
|
||||
CPPFLAGS="$TEMP_CPPFLAGS"
|
||||
|
||||
if test x$boost_sleep != xyes; then
|
||||
TEMP_LIBS="$LIBS"
|
||||
LIBS="$BOOST_LIBS $LIBS"
|
||||
TEMP_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <boost/version.hpp>
|
||||
#include <boost/thread.hpp>
|
||||
#include <boost/date_time/posix_time/posix_time_types.hpp>
|
||||
]],[[
|
||||
#if BOOST_VERSION <= 105600
|
||||
boost::this_thread::sleep(boost::posix_time::milliseconds(0));
|
||||
#else
|
||||
choke me
|
||||
#endif
|
||||
]])],
|
||||
[boost_sleep=yes; AC_DEFINE(HAVE_WORKING_BOOST_SLEEP, 1, [Define this symbol if boost sleep works])],
|
||||
[boost_sleep=no])
|
||||
LIBS="$TEMP_LIBS"
|
||||
CPPFLAGS="$TEMP_CPPFLAGS"
|
||||
fi
|
||||
|
||||
if test x$boost_sleep != xyes; then
|
||||
AC_MSG_ERROR(No working boost sleep implementation found.)
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
if test x$use_pkgconfig = xyes; then
|
||||
|
||||
if test x"$PKG_CONFIG" = "x"; then
|
||||
AC_MSG_ERROR(pkg-config not found.)
|
||||
fi
|
||||
|
||||
: #NOP
|
||||
: dnl
|
||||
m4_ifdef(
|
||||
[PKG_CHECK_MODULES],
|
||||
[
|
||||
@@ -785,7 +758,8 @@ echo 'Hunting for libsnark include directory...'
|
||||
if test -d "$LIBSNARK_INCDIR"; then
|
||||
echo "Found libsnark include directory: $LIBSNARK_INCDIR"
|
||||
else
|
||||
AC_MSG_ERROR(libsnark include directory not found)
|
||||
#AC_MSG_ERROR(libsnark include directory not found)
|
||||
echo "libsnark include directory not found ($LIBSNARK_INCDIR)"
|
||||
fi
|
||||
|
||||
CPPFLAGS="-I$LIBSNARK_INCDIR $CPPFLAGS"
|
||||
@@ -803,15 +777,29 @@ if test x$enable_rust != xno; then
|
||||
RUST_LIBS="-lrustzcash"
|
||||
fi
|
||||
|
||||
LIBZCASH_LIBS="-lsnark -lgmp -lgmpxx -lboost_system-mt -lcrypto -lsodium -fopenmp $RUST_LIBS"
|
||||
dnl Check for OpenMP support
|
||||
AX_OPENMP(
|
||||
[AC_DEFINE(HAVE_OPENMP, 1, [Define if OpenMP is enabled])
|
||||
AM_CONDITIONAL([HAVE_OPENMP], [true])
|
||||
CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS"],
|
||||
[AC_MSG_WARN([OpenMP not supported, disabling multithreading])
|
||||
AC_DEFINE(HAVE_OPENMP, 0, [Define if OpenMP is enabled])
|
||||
AM_CONDITIONAL([HAVE_OPENMP], [false])])
|
||||
|
||||
CXXFLAGS_TEMP="$CXXFLAGS"
|
||||
LIBS_TEMP="$LIBS"
|
||||
CXXFLAGS="$CXXFLAGS $SSL_CFLAGS $CRYPTO_CFLAGS"
|
||||
LIBS="$LIBS $SSL_LIBS $CRYPTO_LIBS $GMP_LIBS $GMPXX_LIBS"
|
||||
AC_CHECK_HEADER([openssl/ec.h],, AC_MSG_ERROR(OpenSSL ec header missing),)
|
||||
CXXFLAGS="$CXXFLAGS_TEMP"
|
||||
LIBS="$LIBS_TEMP"
|
||||
# Gitian uses a config.site that sets depends_prefix, and then sets --prefix=/
|
||||
# build.sh just uses --prefix
|
||||
if test x$depends_prefix != x; then
|
||||
LIBSNARK_DEPINST="$depends_prefix"
|
||||
else
|
||||
LIBSNARK_DEPINST="$prefix"
|
||||
fi
|
||||
|
||||
# Additional Zcash flags
|
||||
AX_CHECK_COMPILE_FLAG([-fwrapv],[CXXFLAGS="$CXXFLAGS -fwrapv"])
|
||||
AX_CHECK_COMPILE_FLAG([-fno-strict-aliasing],[CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wno-builtin-declaration-mismatch],[CXXFLAGS="$CXXFLAGS -Wno-builtin-declaration-mismatch"],,[[$CXXFLAG_WERROR]])
|
||||
|
||||
LIBZCASH_LIBS="-lgmp -lgmpxx -lboost_system -lcrypto -lsodium $RUST_LIBS"
|
||||
|
||||
AC_MSG_CHECKING([whether to build bitcoind])
|
||||
AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
|
||||
@@ -881,35 +869,10 @@ else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
|
||||
dnl enable upnp support
|
||||
AC_MSG_CHECKING([whether to build with support for UPnP])
|
||||
if test x$have_miniupnpc = xno; then
|
||||
if test x$use_upnp = xyes; then
|
||||
AC_MSG_ERROR("UPnP requested but cannot be built. use --without-miniupnpc")
|
||||
fi
|
||||
AC_MSG_RESULT(no)
|
||||
else
|
||||
if test x$use_upnp != xno; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_MSG_CHECKING([whether to build with UPnP enabled by default])
|
||||
use_upnp=yes
|
||||
upnp_setting=0
|
||||
if test x$use_upnp_default != xno; then
|
||||
use_upnp_default=yes
|
||||
upnp_setting=1
|
||||
fi
|
||||
AC_MSG_RESULT($use_upnp_default)
|
||||
AC_DEFINE_UNQUOTED([USE_UPNP],[$upnp_setting],[UPnP support not compiled if undefined, otherwise value (0 or 1) determines default state])
|
||||
if test x$TARGET_OS = xwindows; then
|
||||
MINIUPNPC_CPPFLAGS="-DSTATICLIB -DMINIUPNP_STATICLIB"
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([ENABLE_ZMQ], [test "x$use_zmq" = "xyes"])
|
||||
|
||||
AM_CONDITIONAL([ENABLE_PROTON], [test "x$use_proton" = "xyes"])
|
||||
|
||||
AC_MSG_CHECKING([whether to build test_bitcoin])
|
||||
if test x$use_tests = xyes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
@@ -938,10 +901,10 @@ AM_CONDITIONAL([ENABLE_MINING],[test x$enable_mining = xyes])
|
||||
AM_CONDITIONAL([ENABLE_RUST],[test x$enable_rust = xyes])
|
||||
AM_CONDITIONAL([ENABLE_TESTS],[test x$BUILD_TEST = xyes])
|
||||
AM_CONDITIONAL([USE_LCOV],[test x$use_lcov = xyes])
|
||||
AM_CONDITIONAL([USE_COMPARISON_TOOL],[test x$use_comparison_tool != xno])
|
||||
AM_CONDITIONAL([USE_COMPARISON_TOOL_REORG_TESTS],[test x$use_comparison_tool_reorg_test != xno])
|
||||
AM_CONDITIONAL([GLIBC_BACK_COMPAT],[test x$use_glibc_compat = xyes])
|
||||
AM_CONDITIONAL([HARDEN],[test x$use_hardening = xyes])
|
||||
AM_CONDITIONAL([ASAN],[test x$use_asan = xyes])
|
||||
AM_CONDITIONAL([TSAN],[test x$use_tsan = xyes])
|
||||
|
||||
AC_DEFINE(CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MAJOR, [Major version])
|
||||
AC_DEFINE(CLIENT_VERSION_MINOR, _CLIENT_VERSION_MINOR, [Minor version])
|
||||
@@ -955,20 +918,34 @@ AC_SUBST(CLIENT_VERSION_REVISION, _CLIENT_VERSION_REVISION)
|
||||
AC_SUBST(CLIENT_VERSION_BUILD, _CLIENT_VERSION_BUILD)
|
||||
AC_SUBST(CLIENT_VERSION_IS_RELEASE, _CLIENT_VERSION_IS_RELEASE)
|
||||
AC_SUBST(COPYRIGHT_YEAR, _COPYRIGHT_YEAR)
|
||||
AC_SUBST(BITCOIN_DAEMON_NAME)
|
||||
AC_SUBST(BITCOIN_CLI_NAME)
|
||||
AC_SUBST(BITCOIN_TX_NAME)
|
||||
|
||||
AC_SUBST(RELDFLAGS)
|
||||
AC_SUBST(ERROR_CXXFLAGS)
|
||||
AC_SUBST(SAN_CXXFLAGS)
|
||||
AC_SUBST(SAN_LDFLAGS)
|
||||
AC_SUBST(HARDENED_CXXFLAGS)
|
||||
AC_SUBST(HARDENED_CPPFLAGS)
|
||||
AC_SUBST(HARDENED_LDFLAGS)
|
||||
AC_SUBST(PIC_FLAGS)
|
||||
AC_SUBST(PIE_FLAGS)
|
||||
AC_SUBST(LIBTOOL_APP_LDFLAGS)
|
||||
AC_SUBST(USE_UPNP)
|
||||
AC_SUBST(BOOST_LIBS)
|
||||
AC_SUBST(TESTDEFS)
|
||||
AC_SUBST(LEVELDB_TARGET_FLAGS)
|
||||
AC_SUBST(MINIUPNPC_CPPFLAGS)
|
||||
AC_SUBST(MINIUPNPC_LIBS)
|
||||
AC_SUBST(CRYPTO_LIBS)
|
||||
AC_SUBST(SSL_LIBS)
|
||||
AC_SUBST(EVENT_LIBS)
|
||||
AC_SUBST(EVENT_PTHREADS_LIBS)
|
||||
AC_SUBST(ZMQ_LIBS)
|
||||
AC_SUBST(GMP_LIBS)
|
||||
AC_SUBST(GMPXX_LIBS)
|
||||
AC_SUBST(LIBSNARK_LIBS)
|
||||
AC_SUBST(LIBSNARK_DEPINST)
|
||||
AC_SUBST(LIBZCASH_LIBS)
|
||||
AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile share/setup.nsi src/test/buildenv.py])
|
||||
AC_SUBST(PROTON_LIBS)
|
||||
AC_CONFIG_FILES([Makefile src/Makefile doc/man/Makefile src/test/buildenv.py])
|
||||
AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
|
||||
AC_CONFIG_FILES([qa/pull-tester/tests-config.sh],[chmod +x qa/pull-tester/tests-config.sh])
|
||||
|
||||
@@ -995,8 +972,8 @@ PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
|
||||
unset PKG_CONFIG_LIBDIR
|
||||
PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
|
||||
|
||||
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no"
|
||||
AC_CONFIG_SUBDIRS([src/secp256k1 src/univalue])
|
||||
ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no --enable-module-recovery"
|
||||
AC_CONFIG_SUBDIRS([src/secp256k1 src/snark src/univalue src/cryptoconditions])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -1010,3 +987,25 @@ case $host in
|
||||
chmod 755 libtool
|
||||
;;
|
||||
esac
|
||||
|
||||
echo
|
||||
echo "Options used to compile and link:"
|
||||
echo " with wallet = $enable_wallet"
|
||||
echo " with rust = $enable_rust"
|
||||
echo " with proton = $use_proton"
|
||||
echo " with zmq = $use_zmq"
|
||||
echo " with test = $use_tests"
|
||||
echo " debug enabled = $enable_debug"
|
||||
echo " werror = $enable_werror"
|
||||
echo
|
||||
echo " target os = $TARGET_OS"
|
||||
echo " build os = $BUILD_OS"
|
||||
echo
|
||||
echo " CC = $CC"
|
||||
echo " CFLAGS = $CFLAGS"
|
||||
echo " CPPFLAGS = $CPPFLAGS"
|
||||
echo " CXX = $CXX"
|
||||
echo " CXXFLAGS = $CXXFLAGS"
|
||||
echo " LDFLAGS = $LDFLAGS"
|
||||
echo " ARFLAGS = $ARFLAGS"
|
||||
echo
|
||||
|
||||
48
contrib/amqp/amqp_sub.py
Normal file
48
contrib/amqp/amqp_sub.py
Normal file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python2
|
||||
# Copyright (c) 2017 The Zcash developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
# Requirements:
|
||||
# pip install python-qpid-proton
|
||||
|
||||
import binascii
|
||||
from proton.handlers import MessagingHandler
|
||||
from proton.reactor import Container
|
||||
|
||||
port = 5672
|
||||
|
||||
class Server(MessagingHandler):
|
||||
def __init__(self, url):
|
||||
super(Server, self).__init__()
|
||||
self.url = url
|
||||
self.senders = {}
|
||||
|
||||
def on_start(self, event):
|
||||
print "Listening on:", self.url
|
||||
self.container = event.container
|
||||
self.acceptor = event.container.listen(self.url)
|
||||
|
||||
def on_message(self, event):
|
||||
m = event.message
|
||||
topic = m.subject
|
||||
body = m.body
|
||||
sequence = str( m.properties['x-opt-sequence-number'] )
|
||||
if topic == "hashablock":
|
||||
print '- HASH BLOCK ('+sequence+') -'
|
||||
print binascii.hexlify(body)
|
||||
elif topic == "hashtx":
|
||||
print '- HASH TX ('+sequence+') -'
|
||||
print binascii.hexlify(body)
|
||||
elif topic == "rawblock":
|
||||
print '- RAW BLOCK HEADER ('+sequence+') -'
|
||||
print binascii.hexlify(body[:80])
|
||||
elif topic == "rawtx":
|
||||
print '- RAW TX ('+sequence+') -'
|
||||
print binascii.hexlify(body)
|
||||
|
||||
try:
|
||||
Container(Server("127.0.0.1:%i" % port)).run()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
62
contrib/ci-workers/README.md
Normal file
62
contrib/ci-workers/README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Zcash CI workers
|
||||
|
||||
This folder contains the Ansible playbooks for configuring a fresh OS
|
||||
installation for use as a Buildbot worker in Zcash's CI.
|
||||
|
||||
# Criteria for Adding Workers
|
||||
|
||||
a. Don't add workers until users complain about a problem on a platform
|
||||
that doesn't yet have workers or if we anticipate many users will use
|
||||
a platform, we may pre-emptively add an unsupported worker for it.
|
||||
|
||||
b. Prioritize the platforms that seem to have the most users.
|
||||
|
||||
c. When adding workers start by adding workers for the "most common"
|
||||
variant of any distro, then if users later encounter problems with a
|
||||
sub-variant, we can consider adding new workers at that point.
|
||||
Example: add Ubuntu Desktop before Xubuntu, on the assumption the
|
||||
former has a larger population base.
|
||||
|
||||
# Setting up a latent worker on Amazon EC2
|
||||
|
||||
- Add a regular (non-latent) worker to the master.cfg for dev-ci.z.cash, and
|
||||
deploy the changes.
|
||||
- This enables the Ansible playbook to run to completion, ending in the worker
|
||||
connecting to the master.
|
||||
|
||||
- Start a basic EC2 instance using the template AMI for the target OS.
|
||||
- Choose the smallest instance size, it won't be used for building Zcash.
|
||||
|
||||
- Figure out which user to log into the instance with.
|
||||
- E.g. for the Ubuntu template, use "ubuntu" instead of "root"
|
||||
- If you get an Ansible error later with a message like "Failed to connect to
|
||||
the host via ssh: Received message too long 1349281121\r\n", that means the
|
||||
instance is sending a text string in response to the SSH connection, and the
|
||||
Ansible protocol is balking. Try manually logging in with the same
|
||||
credentials to diagnose.
|
||||
|
||||
- Create `inventory/hosts` containing the following:
|
||||
|
||||
[zcash-ci-worker-unix]
|
||||
some-name ansible_host=<INSTANCE_IP> ansible_ssh_user=<USERNAME>
|
||||
|
||||
- Run `ansible-playbook -e buildbot_worker_host_template=templates/host.ec2.j2 -i inventory/hosts unix.yml`,
|
||||
passing in the worker's Buildbot name and password.
|
||||
- After a successful run, the worker should be connected to dev-ci.z.cash and
|
||||
visible in its worker list.
|
||||
|
||||
- Create an AMI from the instance. This is the worker AMI to put into the
|
||||
master.cfg for dev-ci.z.cash.
|
||||
- 16 GB of storage should be sufficient.
|
||||
|
||||
- SSH into the instance, and edit the worker config to connect to ci.z.cash.
|
||||
|
||||
- Create an AMI from the instance. This is the worker AMI to put into the
|
||||
master.cfg for ci.z.cash.
|
||||
- 16 GB of storage should be sufficient.
|
||||
|
||||
- Delete the instance (it is no longer needed).
|
||||
|
||||
- Edit the master.cfg to turn the new worker into a latent (using the new AMI
|
||||
IDs), add it to the appropriate worker groups, set up new builders etc.
|
||||
- Deploy this via the normal PR review process.
|
||||
2
contrib/ci-workers/ansible.cfg
Normal file
2
contrib/ci-workers/ansible.cfg
Normal file
@@ -0,0 +1,2 @@
|
||||
[ssh_connection]
|
||||
pipelining = True
|
||||
27
contrib/ci-workers/grind.yml
Normal file
27
contrib/ci-workers/grind.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
# Configure a Buildbot worker
|
||||
- include: unix.yml
|
||||
|
||||
- name: Install grind-specific worker dependencies
|
||||
hosts: zcash-ci-worker-unix
|
||||
become: true
|
||||
|
||||
vars_files:
|
||||
- vars/default.yml
|
||||
|
||||
tasks:
|
||||
- name: Get dependencies for distribution
|
||||
include_vars: "{{ item }}"
|
||||
with_first_found:
|
||||
- files:
|
||||
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
|
||||
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version | int }}.yml"
|
||||
- "vars/{{ ansible_distribution }}.yml"
|
||||
- "vars/{{ ansible_os_family }}.yml"
|
||||
skip: true
|
||||
|
||||
- name: Install required packages
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items: "{{ grind_deps }}"
|
||||
8
contrib/ci-workers/tasks/install-pip.yml
Normal file
8
contrib/ci-workers/tasks/install-pip.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Fetch pip installer
|
||||
get_url:
|
||||
url: https://bootstrap.pypa.io/get-pip.py
|
||||
dest: /tmp/get-pip.py
|
||||
|
||||
- name: Install pip
|
||||
command: "{{ ansible_python.executable }} /tmp/get-pip.py"
|
||||
17
contrib/ci-workers/templates/buildbot-worker.service.j2
Normal file
17
contrib/ci-workers/templates/buildbot-worker.service.j2
Normal file
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Buildbot worker
|
||||
Wants=network.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
PIDFile=/home/{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/twistd.pid
|
||||
WorkingDirectory=/home/{{ buildbot_worker_user }}
|
||||
ExecStart={{ pip_bin_dir }}/buildbot-worker start {{ buildbot_worker_name }}
|
||||
ExecReload={{ pip_bin_dir }}/buildbot-worker restart {{ buildbot_worker_name }}
|
||||
ExecStop={{ pip_bin_dir }}/buildbot-worker stop {{ buildbot_worker_name }}
|
||||
Restart=always
|
||||
User={{ buildbot_worker_user }}
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
1
contrib/ci-workers/templates/host.ec2.j2
Normal file
1
contrib/ci-workers/templates/host.ec2.j2
Normal file
@@ -0,0 +1 @@
|
||||
OS: {{ ansible_distribution }} {{ ansible_distribution_version }}
|
||||
3
contrib/ci-workers/templates/host.j2
Normal file
3
contrib/ci-workers/templates/host.j2
Normal file
@@ -0,0 +1,3 @@
|
||||
OS: {{ ansible_distribution }} {{ ansible_distribution_version }}
|
||||
Memory: {{ ansible_memtotal_mb }} MB
|
||||
CPU: {{ ansible_processor[1] }}
|
||||
152
contrib/ci-workers/unix.yml
Normal file
152
contrib/ci-workers/unix.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
- name: Configure a Buildbot worker for Zcash CI
|
||||
hosts: zcash-ci-worker-unix
|
||||
become: true
|
||||
gather_facts: False
|
||||
|
||||
vars_files:
|
||||
- vars/default.yml
|
||||
- vars/buildbot.yml
|
||||
|
||||
vars_prompt:
|
||||
- name: "buildbot_worker_admin"
|
||||
prompt: "Admin details"
|
||||
default: "Zcash <sysadmin@z.cash>"
|
||||
- name: "buildbot_worker_name"
|
||||
prompt: "Buildbot worker name (provided by ZECC)"
|
||||
private: no
|
||||
- name: "buildbot_worker_password"
|
||||
prompt: "Buildbot worker password (provided by ZECC)"
|
||||
|
||||
pre_tasks:
|
||||
- name: Install Python 2.7 for Ansible and Buildbot
|
||||
raw: test -e /usr/bin/python || test -e /usr/bin/python2 || test -e /usr/bin/python2.7 || test -e /usr/local/bin/python2.7 || (test -e /usr/bin/apt && apt -qqy update && apt install -qqy python) || (test -e /usr/bin/dnf && dnf install -qqy python2) || (test -e /usr/sbin/pkg && pkg install -qqy python2)
|
||||
register: output
|
||||
changed_when:
|
||||
- output.stdout != ""
|
||||
- output.stdout != "\r\n"
|
||||
|
||||
- name: Check if Python is in the configured location
|
||||
raw: test -e {{ ansible_python_interpreter }}
|
||||
ignore_errors: true
|
||||
register: python_check
|
||||
when: ansible_python_interpreter is defined
|
||||
|
||||
- name: Fail if configured Python is unavailable
|
||||
fail:
|
||||
msg: "Python is not accessible at {{ ansible_python_interpreter }} on this host! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2.7 binary."
|
||||
when: ansible_python_interpreter is defined and python_check.rc == 1
|
||||
|
||||
- name: Check if Python is in the default location
|
||||
raw: test -e /usr/bin/python
|
||||
ignore_errors: true
|
||||
register: python_check
|
||||
when: ansible_python_interpreter is undefined
|
||||
|
||||
- name: Fail if default Python is unavailable
|
||||
fail:
|
||||
msg: Python is not accessible at /usr/bin/python on this host! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2.7 binary.
|
||||
when: ansible_python_interpreter is undefined and python_check.rc == 1
|
||||
|
||||
- name: Gathering Facts
|
||||
setup:
|
||||
|
||||
- name: Fail if Python is the wrong version
|
||||
fail:
|
||||
msg: "The Python binary at {{ ansible_python.executable }} is version {{ ansible_python_version }}! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2.7 binary."
|
||||
when: ansible_python.version.major != 2 or ansible_python.version.minor != 7
|
||||
|
||||
tasks:
|
||||
- name: Get dependencies for distribution
|
||||
include_vars: "{{ item }}"
|
||||
with_first_found:
|
||||
- files:
|
||||
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
|
||||
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version | int }}.yml"
|
||||
- "vars/{{ ansible_distribution }}.yml"
|
||||
- "vars/{{ ansible_os_family }}.yml"
|
||||
skip: true
|
||||
|
||||
- name: Collate dependencies
|
||||
set_fact:
|
||||
package_deps: "{{ buildbot_deps + fetch_deps + conf_deps + build_deps + link_deps + dist_deps }}"
|
||||
python_modules: "{{ buildbot_modules + rpc_test_modules }}"
|
||||
|
||||
- name: Update rolling release [Arch Linux]
|
||||
pacman:
|
||||
update_cache: yes
|
||||
upgrade: yes
|
||||
when: ansible_distribution == 'Archlinux'
|
||||
|
||||
- name: Install required packages
|
||||
package:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
with_items: "{{ package_deps }}"
|
||||
|
||||
- name: Install pip [CentOS]
|
||||
include: tasks/install-pip.yml
|
||||
when: ansible_distribution == 'CentOS'
|
||||
|
||||
- name: Install required Python modules
|
||||
pip:
|
||||
name: "{{ item }}"
|
||||
state: latest
|
||||
with_items: "{{ python_modules }}"
|
||||
notify: restart buildbot-worker
|
||||
|
||||
- name: Set up the Buildbot worker user
|
||||
user:
|
||||
name: "{{ buildbot_worker_user }}"
|
||||
comment: Buildbot worker
|
||||
shell: /bin/bash
|
||||
state: present
|
||||
|
||||
- name: Create Buildbot worker
|
||||
command: >
|
||||
buildbot-worker create-worker ~/{{ buildbot_worker_name }}
|
||||
{{ buildbot_master_host }}:{{ buildbot_master_port }}
|
||||
{{ buildbot_worker_name|quote }} {{ buildbot_worker_password|quote }}
|
||||
args:
|
||||
creates: "~/{{ buildbot_worker_name }}/buildbot.tac"
|
||||
become_user: "{{ buildbot_worker_user }}"
|
||||
|
||||
- name: Set admin details for Buildbot worker
|
||||
copy:
|
||||
content: "{{ buildbot_worker_admin }}"
|
||||
dest: "~{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/info/admin"
|
||||
owner: "{{ buildbot_worker_user }}"
|
||||
group: "{{ buildbot_worker_user }}"
|
||||
mode: "0644"
|
||||
|
||||
- name: Set host details for Buildbot worker
|
||||
template:
|
||||
src: "{{ buildbot_worker_host_template }}"
|
||||
dest: "~{{ buildbot_worker_user }}/{{ buildbot_worker_name }}/info/host"
|
||||
owner: "{{ buildbot_worker_user }}"
|
||||
group: "{{ buildbot_worker_user }}"
|
||||
mode: "0644"
|
||||
|
||||
- name: Copy Buildbot worker systemd service unit
|
||||
template:
|
||||
src: templates/buildbot-worker.service.j2
|
||||
dest: "/etc/systemd/system/buildbot-worker.service"
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0644"
|
||||
notify: reload systemd
|
||||
|
||||
- name: Start Buildbot worker.
|
||||
service:
|
||||
name: buildbot-worker
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
handlers:
|
||||
- name: restart buildbot-worker
|
||||
service:
|
||||
name: buildbot-worker
|
||||
state: restarted
|
||||
|
||||
- name: reload systemd
|
||||
command: /bin/systemctl daemon-reload
|
||||
7
contrib/ci-workers/vars/Archlinux.yml
Normal file
7
contrib/ci-workers/vars/Archlinux.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
buildbot_deps:
|
||||
- python2-pip
|
||||
build_deps:
|
||||
- multilib/gcc
|
||||
- make
|
||||
pip_bin_dir: /usr/bin
|
||||
13
contrib/ci-workers/vars/CentOS.yml
Normal file
13
contrib/ci-workers/vars/CentOS.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
buildbot_deps: [] # Empty to remove python-pip
|
||||
build_deps:
|
||||
- bzip2
|
||||
- gcc
|
||||
- gcc-c++
|
||||
- make
|
||||
- patch
|
||||
dist_deps:
|
||||
- pkgconfig # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
|
||||
- python-devel
|
||||
- redhat-rpm-config
|
||||
pip_bin_dir: /usr/bin
|
||||
6
contrib/ci-workers/vars/Debian.yml
Normal file
6
contrib/ci-workers/vars/Debian.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
build_deps:
|
||||
- build-essential # Depends on g++, libc6-dev, make
|
||||
dist_deps:
|
||||
- pkg-config # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
|
||||
- python-dev
|
||||
10
contrib/ci-workers/vars/Fedora.yml
Normal file
10
contrib/ci-workers/vars/Fedora.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
build_deps:
|
||||
- gcc
|
||||
- gcc-c++
|
||||
- make
|
||||
- patch
|
||||
dist_deps:
|
||||
- pkgconfig # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
|
||||
- python-devel
|
||||
- redhat-rpm-config
|
||||
9
contrib/ci-workers/vars/FreeBSD.yml
Normal file
9
contrib/ci-workers/vars/FreeBSD.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
buildbot_deps:
|
||||
- py27-pip
|
||||
build_deps:
|
||||
- gcc
|
||||
- gmake
|
||||
dist_deps:
|
||||
- bash
|
||||
- pkgconf # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
|
||||
5
contrib/ci-workers/vars/Ubuntu.yml
Normal file
5
contrib/ci-workers/vars/Ubuntu.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
build_deps:
|
||||
- build-essential # Depends on g++, libc6-dev, make
|
||||
dist_deps:
|
||||
- pkg-config # Required until b556beda264308e040f8d88aca4f2f386a0183d9 is pulled in
|
||||
5
contrib/ci-workers/vars/buildbot.yml
Normal file
5
contrib/ci-workers/vars/buildbot.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
buildbot_worker_user: zcbbworker
|
||||
buildbot_master_host: dev-ci.z.cash
|
||||
buildbot_master_port: 9899
|
||||
buildbot_worker_host_template: templates/host.j2
|
||||
49
contrib/ci-workers/vars/default.yml
Normal file
49
contrib/ci-workers/vars/default.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
# These variables can be overridden in distribution files.
|
||||
|
||||
# Dependencies required to install Buildbot
|
||||
buildbot_deps:
|
||||
- python-pip # So we can install Python modules
|
||||
|
||||
# Dependencies required to download files
|
||||
fetch_deps:
|
||||
- git
|
||||
- wget # For zcutil/fetch-params.sh
|
||||
|
||||
# Dependencies required to configure Zcash
|
||||
conf_deps:
|
||||
- autoconf
|
||||
- automake
|
||||
- m4
|
||||
|
||||
# Dependencies required to compile Zcash
|
||||
build_deps:
|
||||
- g++
|
||||
- gcc
|
||||
- make
|
||||
|
||||
# Dependencies required to link Zcash
|
||||
link_deps:
|
||||
- libtool
|
||||
|
||||
# Additional distribution-specific dependencies
|
||||
dist_deps: []
|
||||
|
||||
# Additional grind-specific dependencies
|
||||
grind_deps:
|
||||
- lcov
|
||||
- valgrind
|
||||
|
||||
# Python modules required for a Zcash Buildbot worker
|
||||
buildbot_modules:
|
||||
- pip # Needs to be updated first so Buildbot installs
|
||||
- buildbot-worker
|
||||
- pyflakes
|
||||
|
||||
# Python modules required to run the Zcash RPC test suite
|
||||
rpc_test_modules:
|
||||
- pyblake2
|
||||
- pyzmq
|
||||
|
||||
# Environment variables
|
||||
pip_bin_dir: /usr/local/bin
|
||||
@@ -1,3 +1,93 @@
|
||||
zcash (1.0.15) stable; urgency=medium
|
||||
|
||||
* 1.0.15 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Wed, 28 Feb 2018 16:58:19 +0000
|
||||
|
||||
zcash (1.0.15~rc1) stable; urgency=medium
|
||||
|
||||
* 1.0.15-rc1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Sat, 24 Feb 2018 04:20:05 +0000
|
||||
|
||||
zcash (1.0.14) stable; urgency=medium
|
||||
|
||||
* 1.0.14 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Wed, 03 Jan 2018 23:54:16 +0100
|
||||
|
||||
zcash (1.0.14~rc1) stable; urgency=medium
|
||||
|
||||
* 1.0.14-rc1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Fri, 22 Dec 2017 10:12:41 +0000
|
||||
|
||||
zcash (1.0.13) stable; urgency=medium
|
||||
|
||||
* 1.0.13 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Mon, 20 Nov 2017 12:31:53 +0000
|
||||
|
||||
zcash (1.0.13~rc2) stable; urgency=medium
|
||||
|
||||
* 1.0.13-rc2 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Fri, 17 Nov 2017 18:01:08 +0000
|
||||
|
||||
zcash (1.0.13~rc1) stable; urgency=medium
|
||||
|
||||
* 1.0.13-rc1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Wed, 15 Nov 2017 00:02:21 +0000
|
||||
|
||||
zcash (1.0.12) stable; urgency=medium
|
||||
|
||||
* 1.0.12 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Thu, 28 Sep 2017 01:26:44 +0100
|
||||
|
||||
zcash (1.0.12~rc1) stable; urgency=medium
|
||||
|
||||
* 1.0.12-rc1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Sat, 23 Sep 2017 10:51:36 +0100
|
||||
|
||||
zcash (1.0.11) stable; urgency=medium
|
||||
|
||||
* 1.0.11 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Tue, 15 Aug 2017 10:06:25 +0100
|
||||
|
||||
zcash (1.0.11~rc1) stable; urgency=medium
|
||||
|
||||
* 1.0.11-rc1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Tue, 01 Aug 2017 17:12:52 +0200
|
||||
|
||||
zcash (1.0.10+1) stable; urgency=medium
|
||||
|
||||
* 1.0.10-1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Fri, 23 Jun 2017 19:50:41 -0700
|
||||
|
||||
zcash (1.0.10) stable; urgency=medium
|
||||
|
||||
* 1.0.10 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Thu, 22 Jun 2017 15:13:04 +1200
|
||||
|
||||
zcash (1.0.9) stable; urgency=medium
|
||||
|
||||
* 1.0.9 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Wed, 24 May 2017 12:51:06 -0700
|
||||
|
||||
zcash (1.0.8+1) jessie; urgency=high
|
||||
|
||||
* 1.0.8-1 release.
|
||||
|
||||
-- Zcash Company <team@z.cash> Thu, 13 Apr 2017 20:20:37 -0700
|
||||
|
||||
zcash (1.0.8) jessie; urgency=medium
|
||||
|
||||
* 1.0.8 release.
|
||||
|
||||
@@ -38,10 +38,6 @@ Files: depends/sources/openssl-*.tar.gz
|
||||
Copyright: 1998-2016 The OpenSSL Project and 1995-1998 Eric Young
|
||||
License: OpenSSL+SSLeay
|
||||
|
||||
Files: depends/sources/miniupnpc-*.tar.gz
|
||||
Copyright: 2005-2016 Thomas BERNARD
|
||||
License: BSD-3clause
|
||||
|
||||
Files: depends/sources/zeromq-*.tar.gz
|
||||
Copyright:
|
||||
1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
|
||||
@@ -59,6 +55,18 @@ Files: depends/sources/google*.tar.gz
|
||||
Copyright: 2008 Google Inc.
|
||||
License: BSD-3clause-Google
|
||||
|
||||
Files: depends/sources/qpid-proton-*.tar.gz
|
||||
Copyright: 2012-2017 The Apache Software Foundation
|
||||
License: Apache-Qpid-Proton-with-BSD-Subcomponents
|
||||
|
||||
Files: src/secp256k1/build-aux/m4/ax_jni_include_dir.m4
|
||||
Copyright: 2008 Don Anderson <dda@sleepycat.com>
|
||||
License: GNU-All-permissive-License
|
||||
|
||||
Files: src/secp256k1/build-aux/m4/ax_prog_cc_for_build.m4
|
||||
Copyright: 2008 Paolo Bonzini <bonzini@gnu.org>
|
||||
License: GNU-All-permissive-License
|
||||
|
||||
License: Boost-Software-License-1.0
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
@@ -1091,3 +1099,226 @@ License: LGPL-with-ZeroMQ-exception
|
||||
Comment:
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
License: Apache-Qpid-Proton-with-BSD-Subcomponents
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
.
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
.
|
||||
1. Definitions.
|
||||
.
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
.
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
.
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
.
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
.
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
.
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
.
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
.
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
.
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
.
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
.
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
.
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
.
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
.
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
.
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
.
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
.
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
.
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
.
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
.
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
.
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
.
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
.
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
.
|
||||
END OF TERMS AND CONDITIONS
|
||||
.
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
.
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
.
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
.
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
.
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
.
|
||||
.
|
||||
PROTON SUBCOMPONENTS:
|
||||
.
|
||||
Proton includes freegetopt with a separate BSD license. Your use
|
||||
of the source code for freegetopt is subject to the terms and
|
||||
conditions of its license in examples/include/pncompat/internal/LICENSE.
|
||||
.
|
||||
The setup scripts for the python bindings include files derived by
|
||||
PyZMQ and are licensed with a separate Modified BSD license. Use of
|
||||
the source code in these setup files are subject to the terms and
|
||||
conditions in the license:
|
||||
proton-c/bindings/python/setuputils/PYZMQ_LICENSE.BSD.
|
||||
|
||||
License: GNU-All-permissive-License
|
||||
Copying and distribution of this file, with or without modification, are
|
||||
permitted in any medium without royalty provided the copyright notice
|
||||
and this notice are preserved. This file is offered as-is, without any
|
||||
warranty.
|
||||
|
||||
|
||||
@@ -4,25 +4,25 @@ TOPDIR=${TOPDIR:-$(git rev-parse --show-toplevel)}
|
||||
SRCDIR=${SRCDIR:-$TOPDIR/src}
|
||||
MANDIR=${MANDIR:-$TOPDIR/doc/man}
|
||||
|
||||
ZCASHD=${ZCASHD:-$SRCDIR/zcashd}
|
||||
ZCASHCLI=${ZCASHCLI:-$SRCDIR/zcash-cli}
|
||||
ZCASHTX=${ZCASHTX:-$SRCDIR/zcash-tx}
|
||||
KOMODOD=${KOMODOD:-$SRCDIR/komodod}
|
||||
KOMODOCLI=${KOMODOCLI:-$SRCDIR/komodo-cli}
|
||||
KOMODOTX=${KOMODOTX:-$SRCDIR/komodo-tx}
|
||||
|
||||
[ ! -x $ZCASHD ] && echo "$ZCASHD not found or not executable." && exit 1
|
||||
[ ! -x $KOMODOD ] && echo "$KOMODOD not found or not executable." && exit 1
|
||||
|
||||
# The autodetected version git tag can screw up manpage output a little bit
|
||||
ZECVER=($($ZCASHCLI --version | head -n1 | awk -F'[ -]' '{ print $5, $6 }'))
|
||||
KMDVER=($($KOMODOCLI --version | head -n1 | awk -F'[ -]' '{ print $5, $6 }'))
|
||||
|
||||
# Create a footer file with copyright content.
|
||||
# This gets autodetected fine for zcashd if --version-string is not set,
|
||||
# but has different outcomes for zcash-cli.
|
||||
# This gets autodetected fine for komodod if --version-string is not set,
|
||||
# but has different outcomes for komodo-cli.
|
||||
echo "[COPYRIGHT]" > footer.h2m
|
||||
$ZCASHD --version | sed -n '1!p' >> footer.h2m
|
||||
$KOMODOD --version | sed -n '1!p' >> footer.h2m
|
||||
|
||||
for cmd in $ZCASHD $ZCASHCLI $ZCASHTX; do
|
||||
for cmd in $KOMODOD $KOMODOCLI $KOMODOTX; do
|
||||
cmdname="${cmd##*/}"
|
||||
help2man -N --version-string=${ZECVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd}
|
||||
sed -i "s/\\\-${ZECVER[1]}//g" ${MANDIR}/${cmdname}.1
|
||||
help2man -N --version-string=${KMDVER[0]} --include=footer.h2m -o ${MANDIR}/${cmdname}.1 ${cmd}
|
||||
sed -i "s/\\\-${KMDVER[1]}//g" ${MANDIR}/${cmdname}.1
|
||||
done
|
||||
|
||||
rm -f footer.h2m
|
||||
|
||||
@@ -12,6 +12,7 @@ import os
|
||||
|
||||
READELF_CMD = os.getenv('READELF', '/usr/bin/readelf')
|
||||
OBJDUMP_CMD = os.getenv('OBJDUMP', '/usr/bin/objdump')
|
||||
NONFATAL = {'HIGH_ENTROPY_VA'} # checks which are non-fatal for now but only generate a warning
|
||||
|
||||
def check_ELF_PIE(executable):
|
||||
'''
|
||||
@@ -94,7 +95,7 @@ def check_ELF_RELRO(executable):
|
||||
raise IOError('Error opening file')
|
||||
for line in stdout.split(b'\n'):
|
||||
tokens = line.split()
|
||||
if len(tokens)>1 and tokens[1] == b'(BIND_NOW)' or (len(tokens)>2 and tokens[1] == b'(FLAGS)' and b'BIND_NOW' in tokens[2]):
|
||||
if len(tokens)>1 and tokens[1] == b'(BIND_NOW)' or (len(tokens)>2 and tokens[1] == b'(FLAGS)' and b'BIND_NOW' in tokens[2:]):
|
||||
have_bindnow = True
|
||||
return have_gnu_relro and have_bindnow
|
||||
|
||||
@@ -114,26 +115,50 @@ def check_ELF_Canary(executable):
|
||||
|
||||
def get_PE_dll_characteristics(executable):
|
||||
'''
|
||||
Get PE DllCharacteristics bits
|
||||
Get PE DllCharacteristics bits.
|
||||
Returns a tuple (arch,bits) where arch is 'i386:x86-64' or 'i386'
|
||||
and bits is the DllCharacteristics value.
|
||||
'''
|
||||
p = subprocess.Popen([OBJDUMP_CMD, '-x', executable], stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
|
||||
(stdout, stderr) = p.communicate()
|
||||
if p.returncode:
|
||||
raise IOError('Error opening file')
|
||||
arch = ''
|
||||
bits = 0
|
||||
for line in stdout.split('\n'):
|
||||
tokens = line.split()
|
||||
if len(tokens)>=2 and tokens[0] == 'architecture:':
|
||||
arch = tokens[1].rstrip(',')
|
||||
if len(tokens)>=2 and tokens[0] == 'DllCharacteristics':
|
||||
return int(tokens[1],16)
|
||||
return 0
|
||||
bits = int(tokens[1],16)
|
||||
return (arch,bits)
|
||||
|
||||
IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA = 0x0020
|
||||
IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040
|
||||
IMAGE_DLL_CHARACTERISTICS_NX_COMPAT = 0x0100
|
||||
|
||||
def check_PE_PIE(executable):
|
||||
def check_PE_DYNAMIC_BASE(executable):
|
||||
'''PIE: DllCharacteristics bit 0x40 signifies dynamicbase (ASLR)'''
|
||||
return bool(get_PE_dll_characteristics(executable) & 0x40)
|
||||
(arch,bits) = get_PE_dll_characteristics(executable)
|
||||
reqbits = IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE
|
||||
return (bits & reqbits) == reqbits
|
||||
|
||||
# On 64 bit, must support high-entropy 64-bit address space layout randomization in addition to DYNAMIC_BASE
|
||||
# to have secure ASLR.
|
||||
def check_PE_HIGH_ENTROPY_VA(executable):
|
||||
'''PIE: DllCharacteristics bit 0x20 signifies high-entropy ASLR'''
|
||||
(arch,bits) = get_PE_dll_characteristics(executable)
|
||||
if arch == 'i386:x86-64':
|
||||
reqbits = IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
|
||||
else: # Unnecessary on 32-bit
|
||||
assert(arch == 'i386')
|
||||
reqbits = 0
|
||||
return (bits & reqbits) == reqbits
|
||||
|
||||
def check_PE_NX(executable):
|
||||
'''NX: DllCharacteristics bit 0x100 signifies nxcompat (DEP)'''
|
||||
return bool(get_PE_dll_characteristics(executable) & 0x100)
|
||||
(arch,bits) = get_PE_dll_characteristics(executable)
|
||||
return (bits & IMAGE_DLL_CHARACTERISTICS_NX_COMPAT) == IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
|
||||
|
||||
CHECKS = {
|
||||
'ELF': [
|
||||
@@ -143,7 +168,8 @@ CHECKS = {
|
||||
('Canary', check_ELF_Canary)
|
||||
],
|
||||
'PE': [
|
||||
('PIE', check_PE_PIE),
|
||||
('DYNAMIC_BASE', check_PE_DYNAMIC_BASE),
|
||||
('HIGH_ENTROPY_VA', check_PE_HIGH_ENTROPY_VA),
|
||||
('NX', check_PE_NX)
|
||||
]
|
||||
}
|
||||
@@ -168,12 +194,18 @@ if __name__ == '__main__':
|
||||
continue
|
||||
|
||||
failed = []
|
||||
warning = []
|
||||
for (name, func) in CHECKS[etype]:
|
||||
if not func(filename):
|
||||
if name in NONFATAL:
|
||||
warning.append(name)
|
||||
else:
|
||||
failed.append(name)
|
||||
if failed:
|
||||
print('%s: failed %s' % (filename, ' '.join(failed)))
|
||||
retval = 1
|
||||
if warning:
|
||||
print('%s: warning %s' % (filename, ' '.join(warning)))
|
||||
except IOError:
|
||||
print('%s: cannot open' % filename)
|
||||
retval = 1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: "zcash-1.0.8"
|
||||
name: "zcash-1.0.15"
|
||||
enable_cache: true
|
||||
distro: "debian"
|
||||
suites:
|
||||
@@ -85,7 +85,7 @@ script: |
|
||||
BASEPREFIX=`pwd`/depends
|
||||
# Build dependencies for each host
|
||||
for i in $HOSTS; do
|
||||
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
|
||||
NO_PROTON="x" make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
|
||||
done
|
||||
|
||||
# Faketime for binaries
|
||||
|
||||
160
contrib/komodo-cli.bash-completion
Normal file
160
contrib/komodo-cli.bash-completion
Normal file
@@ -0,0 +1,160 @@
|
||||
# bash programmable completion for komodo-cli(1)
|
||||
# Copyright (c) 2012-2016 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
# call $komodo-cli for RPC
|
||||
_komodo_rpc() {
|
||||
# determine already specified args necessary for RPC
|
||||
local rpcargs=()
|
||||
for i in ${COMP_LINE}; do
|
||||
case "$i" in
|
||||
-conf=*|-datadir=*|-regtest|-rpc*|-testnet)
|
||||
rpcargs=( "${rpcargs[@]}" "$i" )
|
||||
;;
|
||||
esac
|
||||
done
|
||||
$komodo_cli "${rpcargs[@]}" "$@"
|
||||
}
|
||||
|
||||
# Add wallet accounts to COMPREPLY
|
||||
_komodo_accounts() {
|
||||
local accounts
|
||||
# Accounts are deprecated in komodo
|
||||
#accounts=$(_komodo_rpc listaccounts | awk -F '"' '{ print $2 }')
|
||||
accounts="\\\"\\\""
|
||||
COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "$accounts" -- "$cur" ) )
|
||||
}
|
||||
|
||||
_komodo_cli() {
|
||||
local cur prev words=() cword
|
||||
local komodo_cli
|
||||
|
||||
# save and use original argument to invoke komodo-cli for -help, help and RPC
|
||||
# as komodo-cli might not be in $PATH
|
||||
komodo_cli="$1"
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n = cur prev words cword
|
||||
|
||||
if ((cword > 5)); then
|
||||
case ${words[cword-5]} in
|
||||
sendtoaddress)
|
||||
COMPREPLY=( $( compgen -W "true false" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if ((cword > 4)); then
|
||||
case ${words[cword-4]} in
|
||||
importaddress|listtransactions|setban)
|
||||
COMPREPLY=( $( compgen -W "true false" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
signrawtransaction)
|
||||
COMPREPLY=( $( compgen -W "ALL NONE SINGLE ALL|ANYONECANPAY NONE|ANYONECANPAY SINGLE|ANYONECANPAY" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if ((cword > 3)); then
|
||||
case ${words[cword-3]} in
|
||||
addmultisigaddress)
|
||||
_komodo_accounts
|
||||
return 0
|
||||
;;
|
||||
getbalance|gettxout|importaddress|importpubkey|importprivkey|listreceivedbyaccount|listreceivedbyaddress|listsinceblock)
|
||||
COMPREPLY=( $( compgen -W "true false" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if ((cword > 2)); then
|
||||
case ${words[cword-2]} in
|
||||
addnode)
|
||||
COMPREPLY=( $( compgen -W "add remove onetry" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
setban)
|
||||
COMPREPLY=( $( compgen -W "add remove" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
fundrawtransaction|getblock|getblockheader|getmempoolancestors|getmempooldescendants|getrawtransaction|gettransaction|listaccounts|listreceivedbyaccount|listreceivedbyaddress|sendrawtransaction)
|
||||
COMPREPLY=( $( compgen -W "true false" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
z_importkey|z_importviewingkey)
|
||||
COMPREPLY=( $( compgen -W "yes no whenkeyisnew" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
move|setaccount)
|
||||
_komodo_accounts
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
case "$prev" in
|
||||
backupwallet|dumpwallet|importwallet|z_exportwallet|z_importwallet)
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
getaddednodeinfo|getrawmempool|lockunspent|setgenerate)
|
||||
COMPREPLY=( $( compgen -W "true false" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
getaccountaddress|getaddressesbyaccount|getbalance|getnewaddress|getreceivedbyaccount|listtransactions|move|sendfrom|sendmany)
|
||||
_komodo_accounts
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$cur" in
|
||||
-conf=*)
|
||||
cur="${cur#*=}"
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
-datadir=*)
|
||||
cur="${cur#*=}"
|
||||
_filedir -d
|
||||
return 0
|
||||
;;
|
||||
-*=*) # prevent nonsense completions
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
local helpopts commands
|
||||
|
||||
# only parse -help if senseful
|
||||
if [[ -z "$cur" || "$cur" =~ ^- ]]; then
|
||||
helpopts=$($komodo_cli -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
|
||||
fi
|
||||
|
||||
# only parse help if senseful
|
||||
if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then
|
||||
commands=$(_komodo_rpc help 2>/dev/null | awk '$1 ~ /^[a-z]/ { print $1; }')
|
||||
fi
|
||||
|
||||
COMPREPLY=( $( compgen -W "$helpopts $commands" -- "$cur" ) )
|
||||
|
||||
# Prevent space if an argument is desired
|
||||
if [[ $COMPREPLY == *= ]]; then
|
||||
compopt -o nospace
|
||||
fi
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
} &&
|
||||
complete -F _komodo_cli komodo-cli
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-basic-offset: 4
|
||||
# sh-indent-comment: t
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
# ex: ts=4 sw=4 et filetype=sh
|
||||
@@ -1,15 +1,15 @@
|
||||
# bash programmable completion for bitcoin-tx(1)
|
||||
# bash programmable completion for komodo-tx(1)
|
||||
# Copyright (c) 2016 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
_bitcoin_tx() {
|
||||
_komodo_tx() {
|
||||
local cur prev words=() cword
|
||||
local bitcoin_tx
|
||||
local komodo_tx
|
||||
|
||||
# save and use original argument to invoke bitcoin-tx for -help
|
||||
# save and use original argument to invoke komodo-tx for -help
|
||||
# it might not be in $PATH
|
||||
bitcoin_tx="$1"
|
||||
komodo_tx="$1"
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n =: cur prev words cword
|
||||
@@ -27,15 +27,15 @@ _bitcoin_tx() {
|
||||
|
||||
if [[ "$cword" == 1 || ( "$prev" != "-create" && "$prev" == -* ) ]]; then
|
||||
# only options (or an uncompletable hex-string) allowed
|
||||
# parse bitcoin-tx -help for options
|
||||
# parse komodo-tx -help for options
|
||||
local helpopts
|
||||
helpopts=$($bitcoin_tx -help | sed -e '/^ -/ p' -e d )
|
||||
helpopts=$($komodo_tx -help | sed -e '/^ -/ p' -e d )
|
||||
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
|
||||
else
|
||||
# only commands are allowed
|
||||
# parse -help for commands
|
||||
local helpcmds
|
||||
helpcmds=$($bitcoin_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d )
|
||||
helpcmds=$($komodo_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d )
|
||||
COMPREPLY=( $( compgen -W "$helpcmds" -- "$cur" ) )
|
||||
fi
|
||||
|
||||
@@ -46,7 +46,7 @@ _bitcoin_tx() {
|
||||
|
||||
return 0
|
||||
} &&
|
||||
complete -F _bitcoin_tx zcash-tx
|
||||
complete -F _komodo_tx komodo-tx
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
57
contrib/komodod.bash-completion
Normal file
57
contrib/komodod.bash-completion
Normal file
@@ -0,0 +1,57 @@
|
||||
# bash programmable completion for komodod(1)
|
||||
# Copyright (c) 2012-2017 The Bitcoin Core developers
|
||||
# Copyright (c) 2016-2017 The komodo developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
_komodod() {
|
||||
local cur prev words=() cword
|
||||
local komodod
|
||||
|
||||
# save and use original argument to invoke komodod for -help
|
||||
# it might not be in $PATH
|
||||
komodod="$1"
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n = cur prev words cword
|
||||
|
||||
case "$cur" in
|
||||
-conf=*|-pid=*|-loadblock=*|-rpccookiefile=*|-wallet=*)
|
||||
cur="${cur#*=}"
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
-datadir=*|-exportdir=*)
|
||||
cur="${cur#*=}"
|
||||
_filedir -d
|
||||
return 0
|
||||
;;
|
||||
-*=*) # prevent nonsense completions
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
|
||||
# only parse -help if senseful
|
||||
if [[ -z "$cur" || "$cur" =~ ^- ]]; then
|
||||
local helpopts
|
||||
helpopts=$($komodod -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
|
||||
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
|
||||
fi
|
||||
|
||||
# Prevent space if an argument is desired
|
||||
if [[ $COMPREPLY == *= ]]; then
|
||||
compopt -o nospace
|
||||
fi
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
} &&
|
||||
complete -F _komodod komodod
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-basic-offset: 4
|
||||
# sh-indent-comment: t
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
# ex: ts=4 sw=4 et filetype=sh
|
||||
@@ -1,9 +1,9 @@
|
||||
# bash programmable completion for bitcoin-cli(1)
|
||||
# bash programmable completion for zcash-cli(1)
|
||||
# Copyright (c) 2012-2016 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
# call $bitcoin-cli for RPC
|
||||
# call $zcash-cli for RPC
|
||||
_zcash_rpc() {
|
||||
# determine already specified args necessary for RPC
|
||||
local rpcargs=()
|
||||
@@ -14,7 +14,7 @@ _zcash_rpc() {
|
||||
;;
|
||||
esac
|
||||
done
|
||||
$bitcoin_cli "${rpcargs[@]}" "$@"
|
||||
$zcash_cli "${rpcargs[@]}" "$@"
|
||||
}
|
||||
|
||||
# Add wallet accounts to COMPREPLY
|
||||
@@ -28,11 +28,11 @@ _zcash_accounts() {
|
||||
|
||||
_zcash_cli() {
|
||||
local cur prev words=() cword
|
||||
local bitcoin_cli
|
||||
local zcash_cli
|
||||
|
||||
# save and use original argument to invoke bitcoin-cli for -help, help and RPC
|
||||
# as bitcoin-cli might not be in $PATH
|
||||
bitcoin_cli="$1"
|
||||
# save and use original argument to invoke zcash-cli for -help, help and RPC
|
||||
# as zcash-cli might not be in $PATH
|
||||
zcash_cli="$1"
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n = cur prev words cword
|
||||
@@ -82,10 +82,14 @@ _zcash_cli() {
|
||||
COMPREPLY=( $( compgen -W "add remove" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
fundrawtransaction|getblock|getblockheader|getmempoolancestors|getmempooldescendants|getrawtransaction|gettransaction|listaccounts|listreceivedbyaccount|listreceivedbyaddress|sendrawtransaction|z_importkey)
|
||||
fundrawtransaction|getblock|getblockheader|getmempoolancestors|getmempooldescendants|getrawtransaction|gettransaction|listaccounts|listreceivedbyaccount|listreceivedbyaddress|sendrawtransaction)
|
||||
COMPREPLY=( $( compgen -W "true false" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
z_importkey|z_importviewingkey)
|
||||
COMPREPLY=( $( compgen -W "yes no whenkeyisnew" -- "$cur" ) )
|
||||
return 0
|
||||
;;
|
||||
move|setaccount)
|
||||
_zcash_accounts
|
||||
return 0
|
||||
@@ -127,7 +131,7 @@ _zcash_cli() {
|
||||
|
||||
# only parse -help if senseful
|
||||
if [[ -z "$cur" || "$cur" =~ ^- ]]; then
|
||||
helpopts=$($bitcoin_cli -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
|
||||
helpopts=$($zcash_cli -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
|
||||
fi
|
||||
|
||||
# only parse help if senseful
|
||||
57
contrib/zcash-tx.bash-completion
Normal file
57
contrib/zcash-tx.bash-completion
Normal file
@@ -0,0 +1,57 @@
|
||||
# bash programmable completion for zcash-tx(1)
|
||||
# Copyright (c) 2016 The Bitcoin Core developers
|
||||
# Distributed under the MIT software license, see the accompanying
|
||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
_zcash_tx() {
|
||||
local cur prev words=() cword
|
||||
local zcash_tx
|
||||
|
||||
# save and use original argument to invoke zcash-tx for -help
|
||||
# it might not be in $PATH
|
||||
zcash_tx="$1"
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n =: cur prev words cword
|
||||
|
||||
case "$cur" in
|
||||
load=*:*)
|
||||
cur="${cur#load=*:}"
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
*=*) # prevent attempts to complete other arguments
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "$cword" == 1 || ( "$prev" != "-create" && "$prev" == -* ) ]]; then
|
||||
# only options (or an uncompletable hex-string) allowed
|
||||
# parse zcash-tx -help for options
|
||||
local helpopts
|
||||
helpopts=$($zcash_tx -help | sed -e '/^ -/ p' -e d )
|
||||
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
|
||||
else
|
||||
# only commands are allowed
|
||||
# parse -help for commands
|
||||
local helpcmds
|
||||
helpcmds=$($zcash_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d )
|
||||
COMPREPLY=( $( compgen -W "$helpcmds" -- "$cur" ) )
|
||||
fi
|
||||
|
||||
# Prevent space if an argument is desired
|
||||
if [[ $COMPREPLY == *= ]]; then
|
||||
compopt -o nospace
|
||||
fi
|
||||
|
||||
return 0
|
||||
} &&
|
||||
complete -F _zcash_tx zcash-tx
|
||||
|
||||
# Local variables:
|
||||
# mode: shell-script
|
||||
# sh-basic-offset: 4
|
||||
# sh-indent-comment: t
|
||||
# indent-tabs-mode: nil
|
||||
# End:
|
||||
# ex: ts=4 sw=4 et filetype=sh
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
_zcashd() {
|
||||
local cur prev words=() cword
|
||||
local bitcoind
|
||||
local zcashd
|
||||
|
||||
# save and use original argument to invoke zcashd for -help
|
||||
# it might not be in $PATH
|
||||
bitcoind="$1"
|
||||
zcashd="$1"
|
||||
|
||||
COMPREPLY=()
|
||||
_get_comp_words_by_ref -n = cur prev words cword
|
||||
@@ -21,7 +21,7 @@ _zcashd() {
|
||||
_filedir
|
||||
return 0
|
||||
;;
|
||||
-datadir=*)
|
||||
-datadir=*|-exportdir=*)
|
||||
cur="${cur#*=}"
|
||||
_filedir -d
|
||||
return 0
|
||||
@@ -34,7 +34,7 @@ _zcashd() {
|
||||
# only parse -help if senseful
|
||||
if [[ -z "$cur" || "$cur" =~ ^- ]]; then
|
||||
local helpopts
|
||||
helpopts=$($bitcoind -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
|
||||
helpopts=$($zcashd -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' )
|
||||
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
|
||||
fi
|
||||
|
||||
@@ -74,9 +74,9 @@ include packages/packages.mk
|
||||
|
||||
rust_packages_$(NO_RUST) = $(rust_packages)
|
||||
wallet_packages_$(NO_WALLET) = $(wallet_packages)
|
||||
upnp_packages_$(NO_UPNP) = $(upnp_packages)
|
||||
proton_packages_$(NO_PROTON) = $(proton_packages)
|
||||
|
||||
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(rust_packages_) $(wallet_packages_) $(upnp_packages_)
|
||||
packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages) $(rust_packages_) $(proton_packages_) $(wallet_packages_)
|
||||
native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
|
||||
all_packages = $(packages) $(native_packages)
|
||||
|
||||
@@ -113,7 +113,6 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
|
||||
-e 's|@CPPFLAGS@|$(strip $(host_CPPFLAGS) $(host_$(release_type)_CPPFLAGS))|' \
|
||||
-e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \
|
||||
-e 's|@no_wallet@|$(NO_WALLET)|' \
|
||||
-e 's|@no_upnp@|$(NO_UPNP)|' \
|
||||
-e 's|@debug@|$(DEBUG)|' \
|
||||
$< > $@
|
||||
$(AT)touch $@
|
||||
|
||||
@@ -33,9 +33,8 @@ The following can be set when running make: make FOO=bar
|
||||
SOURCES_PATH: downloaded sources will be placed here
|
||||
BASE_CACHE: built packages will be placed here
|
||||
SDK_PATH: Path where sdk's can be found (used by OSX)
|
||||
FALLBACK_DOWNLOAD_PATH: If a source file can't be fetched, try here before giving up
|
||||
PRIORITY_DOWNLOAD_PATH: Try fetching source files from here before using their own URLs
|
||||
NO_WALLET: Don't download/build/cache libs needed to enable the wallet
|
||||
NO_UPNP: Don't download/build/cache packages needed for enabling upnp
|
||||
DEBUG: disable some optimizations and enable more runtime checking
|
||||
|
||||
If some packages are not built, for example `make NO_WALLET=1`, the appropriate
|
||||
|
||||
@@ -7,11 +7,19 @@ build_darwin_OTOOL: = $(shell xcrun -f otool)
|
||||
build_darwin_NM: = $(shell xcrun -f nm)
|
||||
build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
|
||||
build_darwin_SHA256SUM = shasum -a 256
|
||||
build_darwin_DOWNLOAD = curl --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -f -o
|
||||
#<<<<<<< HEAD
|
||||
##build_darwin_DOWNLOAD = curl --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -L -f -o
|
||||
|
||||
#darwin host on darwin builder. overrides darwin host preferences.
|
||||
darwin_CC= gcc-5
|
||||
darwin_CXX= g++-5
|
||||
#darwin_CC= gcc-5
|
||||
#darwin_CXX= g++-5
|
||||
#=======
|
||||
build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
|
||||
|
||||
#darwin host on darwin builder. overrides darwin host preferences.
|
||||
darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION)
|
||||
darwin_CXX:=$(shell xcrun -f clang++) -mmacosx-version-min=$(OSX_MIN_VERSION) -stdlib=libc++
|
||||
#>>>>>>> zcash/master
|
||||
darwin_AR:=$(shell xcrun -f ar)
|
||||
darwin_RANLIB:=$(shell xcrun -f ranlib)
|
||||
darwin_STRIP:=$(shell xcrun -f strip)
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
build_linux_SHA256SUM = sha256sum
|
||||
build_linux_DOWNLOAD = wget --timeout=$(DOWNLOAD_CONNECT_TIMEOUT) --tries=$(DOWNLOAD_RETRIES) -nv -O
|
||||
build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
|
||||
|
||||
@@ -7,20 +7,12 @@ ac_tool_prefix=${host_alias}-
|
||||
if test -z $with_boost; then
|
||||
with_boost=$depends_prefix
|
||||
fi
|
||||
# Disable comparison utility (#592)
|
||||
#if test -z $with_comparison_tool; then
|
||||
# with_comparison_tool=$depends_prefix/native/share/BitcoindComparisonTool_jar/BitcoindComparisonTool.jar
|
||||
#fi
|
||||
|
||||
|
||||
if test -z $enable_wallet && test -n "@no_wallet@"; then
|
||||
enable_wallet=no
|
||||
fi
|
||||
|
||||
if test -z $with_miniupnpc && test -n "@no_upnp@"; then
|
||||
with_miniupnpc=no
|
||||
fi
|
||||
|
||||
if test x@host_os@ = xdarwin; then
|
||||
BREW=no
|
||||
PORT=no
|
||||
|
||||
@@ -22,7 +22,8 @@ endef
|
||||
define fetch_file
|
||||
(test -f $$($(1)_source_dir)/$(4) || \
|
||||
( mkdir -p $$($(1)_download_dir) && echo Fetching $(1)... && \
|
||||
( $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" ) && \
|
||||
( $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(PRIORITY_DOWNLOAD_PATH)/$(4)" || \
|
||||
$(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" ) && \
|
||||
echo "$(5) $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \
|
||||
$(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \
|
||||
mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \
|
||||
@@ -42,6 +43,10 @@ $(eval $(1)_build_id_long:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_ty
|
||||
$(eval $(1)_build_id:=$(shell echo -n "$($(1)_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
|
||||
final_build_id_long+=$($(package)_build_id_long)
|
||||
|
||||
#override platform specific files and hashes
|
||||
$(eval $(1)_file_name=$(if $($(1)_file_name_$(host_os)),$($(1)_file_name_$(host_os)),$($(1)_file_name)))
|
||||
$(eval $(1)_sha256_hash=$(if $($(1)_sha256_hash_$(host_os)),$($(1)_sha256_hash_$(host_os)),$($(1)_sha256_hash)))
|
||||
|
||||
#compute package-specific paths
|
||||
$(1)_build_subdir?=.
|
||||
$(1)_download_file?=$($(1)_file_name)
|
||||
@@ -124,9 +129,9 @@ $(1)_config_env+=$($(1)_config_env_$(host_arch)_$(host_os)) $($(1)_config_env_$(
|
||||
|
||||
$(1)_config_env+=PKG_CONFIG_LIBDIR=$($($(1)_type)_prefix)/lib/pkgconfig
|
||||
$(1)_config_env+=PKG_CONFIG_PATH=$($($(1)_type)_prefix)/share/pkgconfig
|
||||
$(1)_config_env+=PATH=$(build_prefix)/bin:$(PATH)
|
||||
$(1)_build_env+=PATH=$(build_prefix)/bin:$(PATH)
|
||||
$(1)_stage_env+=PATH=$(build_prefix)/bin:$(PATH)
|
||||
$(1)_config_env+=PATH="$(build_prefix)/bin:$(PATH)"
|
||||
$(1)_build_env+=PATH="$(build_prefix)/bin:$(PATH)"
|
||||
$(1)_stage_env+=PATH="$(build_prefix)/bin:$(PATH)"
|
||||
$(1)_autoconf=./configure --host=$($($(1)_type)_host) --disable-dependency-tracking --prefix=$($($(1)_type)_prefix) $$($(1)_config_opts) CC="$$($(1)_cc)" CXX="$$($(1)_cxx)"
|
||||
|
||||
ifneq ($($(1)_nm),)
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
OSX_MIN_VERSION=10.7
|
||||
OSX_SDK_VERSION=10.9
|
||||
OSX_MIN_VERSION=10.8
|
||||
OSX_SDK_VERSION=10.11
|
||||
OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
|
||||
LD64_VERSION=241.9
|
||||
darwin_CC=gcc-5 -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
darwin_CXX=g++-5 -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
#<<<<<<< HEAD
|
||||
#LD64_VERSION=241.9
|
||||
#darwin_CC=gcc-5 -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
#darwin_CXX=g++-5 -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
#=======
|
||||
LD64_VERSION=253.9
|
||||
darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION)
|
||||
darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++
|
||||
#>>>>>>> zcash/master
|
||||
|
||||
darwin_CFLAGS=-pipe
|
||||
darwin_CXXFLAGS=$(darwin_CFLAGS)
|
||||
|
||||
@@ -9,6 +9,12 @@ define $(package)_set_vars
|
||||
$(package)_config_opts=--disable-shared --enable-cxx --disable-replication
|
||||
$(package)_config_opts_mingw32=--enable-mingw
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
$(package)_cxxflags=-std=c++11
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
sed -i.old 's/__atomic_compare_exchange\\(/__atomic_compare_exchange_db(/' src/dbinc/atomic.h && \
|
||||
sed -i.old 's/atomic_init/atomic_init_db/' src/dbinc/atomic.h src/mp/mp_region.c src/mp/mp_mvcc.c src/mp/mp_fget.c src/mutex/mut_method.c src/mutex/mut_tas.c
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
|
||||
@@ -9,7 +9,7 @@ define $(package)_set_vars
|
||||
$(package)_config_opts_release=variant=release
|
||||
$(package)_config_opts_debug=variant=debug
|
||||
$(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam
|
||||
$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
|
||||
$(package)_config_opts+=link=static -sNO_BZIP2=1 -sNO_ZLIB=1
|
||||
$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
|
||||
$(package)_config_opts_darwin=--toolset=gcc threadapi=pthread runtime-link=shared
|
||||
$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
|
||||
@@ -21,7 +21,7 @@ $(package)_archiver_$(host_os)=$($(package)_ar)
|
||||
$(package)_toolset_darwin=gcc
|
||||
$(package)_archiver_darwin=$($(package)_ar)
|
||||
$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test
|
||||
$(package)_cxxflags=-fvisibility=hidden
|
||||
$(package)_cxxflags=-std=c++11 -fvisibility=hidden
|
||||
$(package)_cxxflags_linux=-fPIC
|
||||
endef
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ package=googlemock
|
||||
$(package)_version=1.7.0
|
||||
$(package)_dependencies=googletest
|
||||
|
||||
$(package)_download_path=https://github.com/google/$(package)/archive/
|
||||
$(package)_download_path=https://github.com/google/$(package)/archive
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_download_file=release-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=3f20b6acb37e5a98e8c4518165711e3e35d47deb6cdb5a4dd4566563b5efd232
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package=googletest
|
||||
$(package)_version=1.7.0
|
||||
$(package)_version=1.8.0
|
||||
$(package)_download_path=https://github.com/google/$(package)/archive/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_download_file=release-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc
|
||||
$(package)_sha256_hash=58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8
|
||||
|
||||
ifeq ($(build_os),darwin)
|
||||
define $(package)_set_vars
|
||||
@@ -19,11 +19,15 @@ endef
|
||||
else
|
||||
$(package)_install=install
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) -C make CXXFLAGS=-fPIC gtest.a
|
||||
$(MAKE) -C googlemock/make CXXFLAGS=-fPIC gmock.a && \
|
||||
$(MAKE) -C googletest/make CXXFLAGS=-fPIC gtest.a
|
||||
endef
|
||||
endif
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$($(package)_install) -D ./make/gtest.a $($(package)_staging_dir)$(host_prefix)/lib/libgtest.a && \
|
||||
cp -a ./include $($(package)_staging_dir)$(host_prefix)/include
|
||||
mkdir -p $($(package)_staging_dir)$(host_prefix)/lib && \
|
||||
install ./googlemock/make/gmock.a $($(package)_staging_dir)$(host_prefix)/lib/libgmock.a && \
|
||||
install ./googletest/make/gtest.a $($(package)_staging_dir)$(host_prefix)/lib/libgtest.a && \
|
||||
cp -a ./googlemock/include $($(package)_staging_dir)$(host_prefix)/ && \
|
||||
cp -a ./googletest/include $($(package)_staging_dir)$(host_prefix)/
|
||||
endef
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package=libsnark
|
||||
$(package)_version=0.1
|
||||
$(package)_download_path=https://supernetorg.bintray.com/misc/
|
||||
$(package)_download_path=https://supernetorg.bintray.com/misc
|
||||
$(package)_file_name=$(package)-$($(package)_git_commit).tar.gz
|
||||
$(package)_download_file=$(package)-$($(package)_git_commit).tar.gz
|
||||
$(package)_sha256_hash=47478adc2ae88c448dc736d59dfe007de6478e41e88d2d4d2ff4135a17ee6f90
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
package=libsodium
|
||||
$(package)_version=1.0.11
|
||||
$(package)_download_path=https://supernetorg.bintray.com/misc
|
||||
$(package)_file_name=libsodium-1.0.11.tar.gz
|
||||
$(package)_sha256_hash=a14549db3c49f6ae2170cbbf4664bd48ace50681045e8dbea7c8d9fb96f9c765
|
||||
#<<<<<<< HEAD
|
||||
#$(package)_version=1.0.11
|
||||
#$(package)_download_path=https://supernetorg.bintray.com/misc
|
||||
#$(package)_file_name=libsodium-1.0.11.tar.gz
|
||||
#$(package)_sha256_hash=a14549db3c49f6ae2170cbbf4664bd48ace50681045e8dbea7c8d9fb96f9c765
|
||||
#=======
|
||||
$(package)_version=1.0.15
|
||||
$(package)_download_path=https://download.libsodium.org/libsodium/releases/
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=fb6a9e879a2f674592e4328c5d9f79f082405ee4bb05cb6e679b90afe9e178f4
|
||||
#>>>>>>> zcash/master
|
||||
$(package)_dependencies=
|
||||
$(package)_config_opts=
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
package=miniupnpc
|
||||
$(package)_version=2.0
|
||||
$(package)_download_path=http://miniupnp.free.fr/files
|
||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=d434ceb8986efbe199c5ca53f90ed53eab290b1e6d0530b717eb6fa49d61f93b
|
||||
$(package)_patches=fix-solaris-compilation.patch strlen-before-memcmp.patch patch-strlen-patch.patch
|
||||
|
||||
define $(package)_set_vars
|
||||
$(package)_build_opts=CC="$($(package)_cc)"
|
||||
$(package)_build_opts_darwin=OS=Darwin
|
||||
$(package)_build_opts_mingw32=-f Makefile.mingw
|
||||
$(package)_build_env+=CFLAGS="$($(package)_cflags) $($(package)_cppflags)" AR="$($(package)_ar)"
|
||||
endef
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
mkdir dll && \
|
||||
sed -e 's|MINIUPNPC_VERSION_STRING \"version\"|MINIUPNPC_VERSION_STRING \"$($(package)_version)\"|' -e 's|OS/version|$(host)|' miniupnpcstrings.h.in > miniupnpcstrings.h && \
|
||||
sed -i.old "s|miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings|miniupnpcstrings.h: miniupnpcstrings.h.in|" Makefile.mingw && \
|
||||
patch -p2 < $($(package)_patch_dir)/fix-solaris-compilation.patch && \
|
||||
patch -p2 < $($(package)_patch_dir)/strlen-before-memcmp.patch && \
|
||||
patch -p2 < $($(package)_patch_dir)/patch-strlen-patch.patch
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) libminiupnpc.a $($(package)_build_opts)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_staging_prefix_dir)/include/miniupnpc $($(package)_staging_prefix_dir)/lib &&\
|
||||
install *.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\
|
||||
install libminiupnpc.a $($(package)_staging_prefix_dir)/lib
|
||||
endef
|
||||
@@ -85,6 +85,7 @@ $(package)_config_opts_arm_linux=linux-generic32
|
||||
$(package)_config_opts_aarch64_linux=linux-generic64
|
||||
$(package)_config_opts_mipsel_linux=linux-generic32
|
||||
$(package)_config_opts_mips_linux=linux-generic32
|
||||
$(package)_config_opts_powerpc_linux=linux-generic32
|
||||
$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
|
||||
$(package)_config_opts_x86_64_mingw32=mingw64
|
||||
$(package)_config_opts_i686_mingw32=mingw
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
rust_packages := rust librustzcash
|
||||
zcash_packages := libsnark libgmp libsodium
|
||||
|
||||
proton_packages := proton
|
||||
zcash_packages := libgmp libsodium
|
||||
ifeq ($(host_os),linux)
|
||||
packages := boost openssl libevent zeromq $(zcash_packages) googletest googlemock
|
||||
packages := boost openssl libevent zeromq $(zcash_packages) googletest #googlemock
|
||||
else
|
||||
packages := boost openssl libevent zeromq $(zcash_packages) googletest googlemock libcurl
|
||||
packages := boost openssl libevent zeromq $(zcash_packages) libcurl googletest #googlemock
|
||||
endif
|
||||
|
||||
|
||||
native_packages := native_ccache
|
||||
|
||||
wallet_packages=bdb
|
||||
|
||||
upnp_packages=miniupnpc
|
||||
|
||||
24
depends/packages/proton.mk
Normal file
24
depends/packages/proton.mk
Normal file
@@ -0,0 +1,24 @@
|
||||
package=proton
|
||||
$(package)_version=0.17.0
|
||||
$(package)_download_path=http://apache.cs.utah.edu/qpid/proton/$($(package)_version)
|
||||
$(package)_file_name=qpid-proton-$($(package)_version).tar.gz
|
||||
$(package)_sha256_hash=6ffd26d3d0e495bfdb5d9fefc5349954e6105ea18cc4bb191161d27742c5a01a
|
||||
$(package)_patches=minimal-build.patch
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 < $($(package)_patch_dir)/minimal-build.patch && \
|
||||
mkdir -p build/proton-c/src
|
||||
endef
|
||||
|
||||
define $(package)_config_cmds
|
||||
cd build; cmake .. -DCMAKE_CXX_STANDARD=11 -DCMAKE_INSTALL_PREFIX=/ -DSYSINSTALL_BINDINGS=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_PYTHON=OFF -DBUILD_PHP=OFF -DBUILD_JAVA=OFF -DBUILD_PERL=OFF -DBUILD_RUBY=OFF -DBUILD_JAVASCRIPT=OFF -DBUILD_GO=OFF
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
cd build; $(MAKE) VERBOSE=1
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
cd build; $(MAKE) VERBOSE=1 DESTDIR=$($(package)_staging_prefix_dir) install
|
||||
endef
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
package=rust
|
||||
$(package)_version=1.16.0
|
||||
$(package)_download_path=https://static.rust-lang.org/dist
|
||||
ifeq ($(build_os),darwin)
|
||||
$(package)_file_name=rust-$($(package)_version)-x86_64-apple-darwin.tar.gz
|
||||
$(package)_sha256_hash=2d08259ee038d3a2c77a93f1a31fc59e7a1d6d1bbfcba3dba3c8213b2e5d1926
|
||||
else ifeq ($(host_os),mingw32)
|
||||
$(package)_file_name=rust-$($(package)_version)-i686-unknown-linux-gnu.tar.gz
|
||||
$(package)_sha256_hash=b5859161ebb182d3b75fa14a5741e5de87b088146fb0ef4a30f3b2439c6179c5
|
||||
else
|
||||
$(package)_file_name=rust-$($(package)_version)-x86_64-unknown-linux-gnu.tar.gz
|
||||
$(package)_sha256_hash=48621912c242753ba37cad5145df375eeba41c81079df46f93ffb4896542e8fd
|
||||
endif
|
||||
#<<<<<<< HEAD
|
||||
#ifeq ($(build_os),darwin)
|
||||
#$(package)_file_name=rust-$($(package)_version)-x86_64-apple-darwin.tar.gz
|
||||
#$(package)_sha256_hash=2d08259ee038d3a2c77a93f1a31fc59e7a1d6d1bbfcba3dba3c8213b2e5d1926
|
||||
#else ifeq ($(host_os),mingw32)
|
||||
#$(package)_file_name=rust-$($(package)_version)-i686-unknown-linux-gnu.tar.gz
|
||||
#$(package)_sha256_hash=b5859161ebb182d3b75fa14a5741e5de87b088146fb0ef4a30f3b2439c6179c5
|
||||
#else
|
||||
#$(package)_file_name=rust-$($(package)_version)-x86_64-unknown-linux-gnu.tar.gz
|
||||
#$(package)_sha256_hash=48621912c242753ba37cad5145df375eeba41c81079df46f93ffb4896542e8fd
|
||||
#endif
|
||||
#=======
|
||||
$(package)_file_name_linux=rust-$($(package)_version)-x86_64-unknown-linux-gnu.tar.gz
|
||||
$(package)_sha256_hash_linux=48621912c242753ba37cad5145df375eeba41c81079df46f93ffb4896542e8fd
|
||||
$(package)_file_name_darwin=rust-$($(package)_version)-x86_64-apple-darwin.tar.gz
|
||||
$(package)_sha256_hash_darwin=2d08259ee038d3a2c77a93f1a31fc59e7a1d6d1bbfcba3dba3c8213b2e5d1926
|
||||
#>>>>>>> zcash/master
|
||||
|
||||
define $(package)_stage_cmds
|
||||
./install.sh --destdir=$($(package)_staging_dir) --prefix=$(host_prefix)/native --disable-ldconfig
|
||||
|
||||
@@ -22,6 +22,7 @@ $(package)_sha256_hash=27d1e82a099228ee85a7ddb2260f40830212402c605a4a10b5e5498a7
|
||||
define $(package)_set_vars
|
||||
$(package)_config_opts=--without-documentation --disable-shared --disable-curve
|
||||
$(package)_config_opts_linux=--with-pic
|
||||
$(package)_cxxflags=-std=c++11
|
||||
endef
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
From 71ce1d6dfa5424f8fe8633e23494c7638ea2c79e Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bernard <miniupnp@free.fr>
|
||||
Date: Thu, 10 Nov 2016 21:55:33 +0100
|
||||
Subject: [PATCH] fix for Solaris 11 compilation
|
||||
|
||||
see #216
|
||||
---
|
||||
miniupnpc/Makefile | 2 ++
|
||||
miniupnpc/minissdpc.c | 3 +++
|
||||
2 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/miniupnpc/Makefile b/miniupnpc/Makefile
|
||||
index 5c23000..72cdc0f 100644
|
||||
--- a/miniupnpc/Makefile
|
||||
+++ b/miniupnpc/Makefile
|
||||
@@ -43,10 +43,12 @@ CFLAGS += -D_NETBSD_SOURCE
|
||||
endif
|
||||
ifneq ($(OS), FreeBSD)
|
||||
ifneq ($(OS), Darwin)
|
||||
+ifneq ($(OS), SunOS)
|
||||
#CFLAGS += -D_POSIX_C_SOURCE=200112L
|
||||
CFLAGS += -D_XOPEN_SOURCE=600
|
||||
endif
|
||||
endif
|
||||
+endif
|
||||
#CFLAGS += -ansi
|
||||
# -DNO_GETADDRINFO
|
||||
INSTALL = install
|
||||
diff --git a/miniupnpc/minissdpc.c b/miniupnpc/minissdpc.c
|
||||
index f200f07..263160e 100644
|
||||
--- a/miniupnpc/minissdpc.c
|
||||
+++ b/miniupnpc/minissdpc.c
|
||||
@@ -73,6 +73,9 @@ struct sockaddr_un {
|
||||
|
||||
#if !defined(HAS_IP_MREQN) && !defined(_WIN32)
|
||||
#include <sys/ioctl.h>
|
||||
+#if defined(__sun)
|
||||
+#include <sys/sockio.h>
|
||||
+#endif
|
||||
#endif
|
||||
|
||||
#if defined(HAS_IP_MREQN) && defined(NEED_STRUCT_IP_MREQN)
|
||||
@@ -1,22 +0,0 @@
|
||||
From 0aa7c46227acd8ddb135c577674ad454bf2fba86 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bernard <miniupnp@free.fr>
|
||||
Date: Fri, 11 Nov 2016 17:53:21 +0100
|
||||
Subject: [PATCH] remove unsigned/signed comparison
|
||||
|
||||
---
|
||||
miniupnpc/portlistingparse.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/miniupnpc/portlistingparse.c b/miniupnpc/portlistingparse.c
|
||||
index 1bed763..07f3f87 100644
|
||||
--- a/miniupnpc/portlistingparse.c
|
||||
+++ b/miniupnpc/portlistingparse.c
|
||||
@@ -55,7 +55,7 @@ startelt(void * d, const char * name, int l)
|
||||
pdata->curelt = PortMappingEltNone;
|
||||
for(i = 0; elements[i].str; i++)
|
||||
{
|
||||
- if(strlen(elements[i].str) == l && memcmp(name, elements[i].str, l) == 0)
|
||||
+ if(strlen(elements[i].str) == (size_t)l && memcmp(name, elements[i].str, l) == 0)
|
||||
{
|
||||
pdata->curelt = elements[i].code;
|
||||
break;
|
||||
@@ -1,23 +0,0 @@
|
||||
From ec1c49bb0cd5e448e6f0adee7de3a831c4869bdd Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bernard <miniupnp@free.fr>
|
||||
Date: Fri, 11 Nov 2016 17:24:39 +0100
|
||||
Subject: [PATCH] check strlen before memcmp
|
||||
|
||||
1st try to fix #220
|
||||
---
|
||||
miniupnpc/portlistingparse.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/miniupnpc/portlistingparse.c b/miniupnpc/portlistingparse.c
|
||||
index 0e09278..1bed763 100644
|
||||
--- a/miniupnpc/portlistingparse.c
|
||||
+++ b/miniupnpc/portlistingparse.c
|
||||
@@ -55,7 +55,7 @@ startelt(void * d, const char * name, int l)
|
||||
pdata->curelt = PortMappingEltNone;
|
||||
for(i = 0; elements[i].str; i++)
|
||||
{
|
||||
- if(memcmp(name, elements[i].str, l) == 0)
|
||||
+ if(strlen(elements[i].str) == l && memcmp(name, elements[i].str, l) == 0)
|
||||
{
|
||||
pdata->curelt = elements[i].code;
|
||||
break;
|
||||
288
depends/patches/proton/minimal-build.patch
Normal file
288
depends/patches/proton/minimal-build.patch
Normal file
@@ -0,0 +1,288 @@
|
||||
From 03f5fc0826115edbfca468261b70c0daf627f488 Mon Sep 17 00:00:00 2001
|
||||
From: Simon <simon@bitcartel.com>
|
||||
Date: Thu, 27 Apr 2017 17:15:59 -0700
|
||||
Subject: [PATCH] Enable C++11, build static library and cpp bindings with minimal dependencies.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 13 +++++++------
|
||||
examples/cpp/CMakeLists.txt | 1 +
|
||||
proton-c/CMakeLists.txt | 32 +++++++++++++++----------------
|
||||
proton-c/bindings/CMakeLists.txt | 6 +++---
|
||||
proton-c/bindings/cpp/CMakeLists.txt | 24 +++++++++++------------
|
||||
proton-c/bindings/cpp/docs/CMakeLists.txt | 2 +-
|
||||
proton-c/docs/api/CMakeLists.txt | 2 +-
|
||||
7 files changed, 41 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b538ffd..4a5e787 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -18,14 +18,15 @@
|
||||
#
|
||||
cmake_minimum_required (VERSION 2.8.7)
|
||||
|
||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
project (Proton C)
|
||||
|
||||
# Enable C++ now for examples and bindings subdirectories, but make it optional.
|
||||
enable_language(CXX OPTIONAL)
|
||||
|
||||
# Enable testing
|
||||
-enable_testing()
|
||||
-include (CTest)
|
||||
+#enable_testing()
|
||||
+#include (CTest)
|
||||
|
||||
# Pull in local cmake modules
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/tools/cmake/Modules/")
|
||||
@@ -141,7 +142,7 @@ set (BINDINGS_DIR ${LIB_INSTALL_DIR}/proton/bindings)
|
||||
|
||||
set (SYSINSTALL_BINDINGS OFF CACHE BOOL "If SYSINSTALL_BINDINGS is OFF then proton bindings will be installed underneath ${BINDINGS_DIR} and each user will need to modify their interpreter configuration to load the appropriate binding. If SYSINSTALL_BINDINGS is ON, then each language interpreter will be queried for the appropriate directory and proton bindings will be installed and available system wide with no additional per user configuration.")
|
||||
|
||||
-set (BINDING_LANGS PERL PHP PYTHON RUBY)
|
||||
+#set (BINDING_LANGS PERL PHP PYTHON RUBY)
|
||||
|
||||
foreach (LANG ${BINDING_LANGS})
|
||||
set (SYSINSTALL_${LANG} OFF CACHE BOOL "Install ${LANG} bindings into interpreter specified location.")
|
||||
@@ -156,10 +157,10 @@ set (PROTON_SHARE ${SHARE_INSTALL_DIR}/proton-${PN_VERSION})
|
||||
# End of variables used during install
|
||||
|
||||
# Check for valgrind here so tests under proton-c/ and examples/ can use it.
|
||||
-find_program(VALGRIND_EXE valgrind DOC "Location of the valgrind program")
|
||||
+#find_program(VALGRIND_EXE valgrind DOC "Location of the valgrind program")
|
||||
mark_as_advanced (VALGRIND_EXE)
|
||||
|
||||
-option(ENABLE_VALGRIND "Use valgrind to detect run-time problems" ON)
|
||||
+#option(ENABLE_VALGRIND "Use valgrind to detect run-time problems" ON)
|
||||
if (ENABLE_VALGRIND)
|
||||
if (NOT VALGRIND_EXE)
|
||||
message(STATUS "Can't locate the valgrind command; no run-time error detection")
|
||||
@@ -171,7 +172,7 @@ if (ENABLE_VALGRIND)
|
||||
endif (ENABLE_VALGRIND)
|
||||
|
||||
add_subdirectory(proton-c)
|
||||
-add_subdirectory(examples)
|
||||
+#add_subdirectory(examples)
|
||||
|
||||
install (FILES LICENSE README.md
|
||||
DESTINATION ${PROTON_SHARE})
|
||||
diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt
|
||||
index 304d899..f4877b4 100644
|
||||
--- a/examples/cpp/CMakeLists.txt
|
||||
+++ b/examples/cpp/CMakeLists.txt
|
||||
@@ -17,6 +17,7 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
find_package(ProtonCpp REQUIRED)
|
||||
|
||||
include_directories(${ProtonCpp_INCLUDE_DIRS})
|
||||
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
|
||||
index 8edb661..dc7b99c 100644
|
||||
--- a/proton-c/CMakeLists.txt
|
||||
+++ b/proton-c/CMakeLists.txt
|
||||
@@ -22,24 +22,24 @@ include(CheckSymbolExists)
|
||||
|
||||
include(soversion.cmake)
|
||||
|
||||
-add_custom_target(docs)
|
||||
-add_custom_target(doc DEPENDS docs)
|
||||
+#add_custom_target(docs)
|
||||
+#add_custom_target(doc DEPENDS docs)
|
||||
|
||||
# Set the default SSL/TLS implementation
|
||||
-find_package(OpenSSL)
|
||||
+#find_package(OpenSSL)
|
||||
find_package(PythonInterp REQUIRED)
|
||||
-find_package(SWIG)
|
||||
+#find_package(SWIG)
|
||||
# FindSwig.cmake "forgets" make its outputs advanced like a good citizen
|
||||
mark_as_advanced(SWIG_DIR SWIG_EXECUTABLE SWIG_VERSION)
|
||||
|
||||
# See if Cyrus SASL is available
|
||||
-find_library(CYRUS_SASL_LIBRARY sasl2)
|
||||
-find_path(CYRUS_SASL_INCLUDE_DIR sasl/sasl.h PATH_SUFFIXES include)
|
||||
-find_package_handle_standard_args(CyrusSASL DEFAULT_MSG CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
|
||||
+#find_library(CYRUS_SASL_LIBRARY sasl2)
|
||||
+#find_path(CYRUS_SASL_INCLUDE_DIR sasl/sasl.h PATH_SUFFIXES include)
|
||||
+#find_package_handle_standard_args(CyrusSASL DEFAULT_MSG CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
|
||||
mark_as_advanced(CYRUS_SASL_LIBRARY CYRUS_SASL_INCLUDE_DIR)
|
||||
|
||||
# Find saslpasswd2 executable to generate test config
|
||||
-find_program(SASLPASSWD_EXE saslpasswd2 DOC "Program used to make SASL user db for testing")
|
||||
+#find_program(SASLPASSWD_EXE saslpasswd2 DOC "Program used to make SASL user db for testing")
|
||||
mark_as_advanced(SASLPASSWD_EXE)
|
||||
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
@@ -315,8 +315,8 @@ pn_absolute_install_dir(EXEC_PREFIX "." ${CMAKE_INSTALL_PREFIX})
|
||||
pn_absolute_install_dir(LIBDIR ${LIB_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX})
|
||||
pn_absolute_install_dir(INCLUDEDIR ${INCLUDE_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
-add_subdirectory(docs/api)
|
||||
-add_subdirectory(../tests/tools/apps/c ../tests/tools/apps/c)
|
||||
+#add_subdirectory(docs/api)
|
||||
+#add_subdirectory(../tests/tools/apps/c ../tests/tools/apps/c)
|
||||
|
||||
# for full source distribution:
|
||||
set (qpid-proton-platform-all
|
||||
@@ -507,7 +507,7 @@ if (BUILD_WITH_CXX)
|
||||
endif (BUILD_WITH_CXX)
|
||||
|
||||
add_library (
|
||||
- qpid-proton-core SHARED
|
||||
+ qpid-proton-core STATIC
|
||||
${qpid-proton-core}
|
||||
${qpid-proton-layers}
|
||||
${qpid-proton-platform}
|
||||
@@ -527,7 +527,7 @@ set_target_properties (
|
||||
)
|
||||
|
||||
add_library(
|
||||
- qpid-proton SHARED
|
||||
+ qpid-proton STATIC
|
||||
# Proton Core
|
||||
${qpid-proton-core}
|
||||
${qpid-proton-layers}
|
||||
@@ -629,7 +629,7 @@ install (FILES
|
||||
|
||||
# c tests:
|
||||
|
||||
-add_subdirectory(src/tests)
|
||||
+#add_subdirectory(src/tests)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
|
||||
# No change needed for windows already use correct separator
|
||||
@@ -712,7 +712,7 @@ if (BUILD_PYTHON)
|
||||
|
||||
endif (BUILD_PYTHON)
|
||||
|
||||
-find_program(RUBY_EXE "ruby")
|
||||
+#find_program(RUBY_EXE "ruby")
|
||||
if (RUBY_EXE AND BUILD_RUBY)
|
||||
set (rb_root "${pn_test_root}/ruby")
|
||||
set (rb_src "${CMAKE_CURRENT_SOURCE_DIR}/bindings/ruby")
|
||||
@@ -751,8 +751,8 @@ if (RUBY_EXE AND BUILD_RUBY)
|
||||
else (DEFAULT_RUBY_TESTING)
|
||||
message(STATUS "Skipping Ruby tests: missing dependencies")
|
||||
endif (DEFAULT_RUBY_TESTING)
|
||||
-else (RUBY_EXE)
|
||||
- message (STATUS "Cannot find ruby, skipping ruby tests")
|
||||
+#else (RUBY_EXE)
|
||||
+# message (STATUS "Cannot find ruby, skipping ruby tests")
|
||||
endif()
|
||||
|
||||
mark_as_advanced (RUBY_EXE RSPEC_EXE)
|
||||
diff --git a/proton-c/bindings/CMakeLists.txt b/proton-c/bindings/CMakeLists.txt
|
||||
index 6b88384..d1a50a5 100644
|
||||
--- a/proton-c/bindings/CMakeLists.txt
|
||||
+++ b/proton-c/bindings/CMakeLists.txt
|
||||
@@ -19,14 +19,14 @@
|
||||
|
||||
# Add bindings that do not require swig here - the directory name must be the same as the binding name
|
||||
# See below for swig bindings
|
||||
-set(BINDINGS javascript cpp go)
|
||||
+set(BINDINGS cpp)
|
||||
|
||||
# Prerequisites for javascript.
|
||||
#
|
||||
# It uses a C/C++ to JavaScript cross-compiler called emscripten (https://github.com/kripken/emscripten). Emscripten takes C/C++
|
||||
# and compiles it into a highly optimisable subset of JavaScript called asm.js (http://asmjs.org/) that can be
|
||||
# aggressively optimised and run at near-native speed (usually between 1.5 to 10 times slower than native C/C++).
|
||||
-find_package(Emscripten)
|
||||
+#find_package(Emscripten)
|
||||
if (EMSCRIPTEN_FOUND)
|
||||
set (DEFAULT_JAVASCRIPT ON)
|
||||
endif (EMSCRIPTEN_FOUND)
|
||||
@@ -37,7 +37,7 @@ if (CMAKE_CXX_COMPILER)
|
||||
endif (CMAKE_CXX_COMPILER)
|
||||
|
||||
# Prerequisites for Go
|
||||
-find_program(GO_EXE go)
|
||||
+#find_program(GO_EXE go)
|
||||
mark_as_advanced(GO_EXE)
|
||||
if (GO_EXE)
|
||||
if(WIN32)
|
||||
diff --git a/proton-c/bindings/cpp/CMakeLists.txt b/proton-c/bindings/cpp/CMakeLists.txt
|
||||
index 0cc4024..796fe29 100644
|
||||
--- a/proton-c/bindings/cpp/CMakeLists.txt
|
||||
+++ b/proton-c/bindings/cpp/CMakeLists.txt
|
||||
@@ -16,7 +16,7 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
-
|
||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
include(cpp.cmake) # Compiler checks
|
||||
|
||||
include_directories(
|
||||
@@ -89,7 +89,7 @@ set_source_files_properties (
|
||||
COMPILE_FLAGS "${LTO}"
|
||||
)
|
||||
|
||||
-add_library(qpid-proton-cpp SHARED ${qpid-proton-cpp-source})
|
||||
+add_library(qpid-proton-cpp STATIC ${qpid-proton-cpp-source})
|
||||
|
||||
target_link_libraries (qpid-proton-cpp ${PLATFORM_LIBS} qpid-proton)
|
||||
|
||||
@@ -120,8 +120,8 @@ endif (MSVC)
|
||||
|
||||
install (DIRECTORY "include/proton" DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.hpp")
|
||||
|
||||
-add_subdirectory(docs)
|
||||
-add_subdirectory(${CMAKE_SOURCE_DIR}/tests/tools/apps/cpp ${CMAKE_BINARY_DIR}/tests/tools/apps/cpp)
|
||||
+#add_subdirectory(docs)
|
||||
+#add_subdirectory(${CMAKE_SOURCE_DIR}/tests/tools/apps/cpp ${CMAKE_BINARY_DIR}/tests/tools/apps/cpp)
|
||||
|
||||
# Pkg config file
|
||||
configure_file(
|
||||
@@ -171,12 +171,12 @@ macro(add_cpp_test test)
|
||||
endif ()
|
||||
endmacro(add_cpp_test)
|
||||
|
||||
-add_cpp_test(codec_test)
|
||||
+#add_cpp_test(codec_test)
|
||||
#add_cpp_test(engine_test)
|
||||
-add_cpp_test(thread_safe_test)
|
||||
-add_cpp_test(interop_test ${CMAKE_SOURCE_DIR}/tests)
|
||||
-add_cpp_test(message_test)
|
||||
-add_cpp_test(scalar_test)
|
||||
-add_cpp_test(value_test)
|
||||
-add_cpp_test(container_test)
|
||||
-add_cpp_test(url_test)
|
||||
+#add_cpp_test(thread_safe_test)
|
||||
+#add_cpp_test(interop_test ${CMAKE_SOURCE_DIR}/tests)
|
||||
+#add_cpp_test(message_test)
|
||||
+#add_cpp_test(scalar_test)
|
||||
+#add_cpp_test(value_test)
|
||||
+#add_cpp_test(container_test)
|
||||
+#add_cpp_test(url_test)
|
||||
diff --git a/proton-c/bindings/cpp/docs/CMakeLists.txt b/proton-c/bindings/cpp/docs/CMakeLists.txt
|
||||
index d512d15..8576867 100644
|
||||
--- a/proton-c/bindings/cpp/docs/CMakeLists.txt
|
||||
+++ b/proton-c/bindings/cpp/docs/CMakeLists.txt
|
||||
@@ -17,7 +17,7 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
-find_package(Doxygen)
|
||||
+#find_package(Doxygen)
|
||||
|
||||
if (DOXYGEN_FOUND)
|
||||
configure_file (
|
||||
diff --git a/proton-c/docs/api/CMakeLists.txt b/proton-c/docs/api/CMakeLists.txt
|
||||
index 7756e48..71ebb93 100644
|
||||
--- a/proton-c/docs/api/CMakeLists.txt
|
||||
+++ b/proton-c/docs/api/CMakeLists.txt
|
||||
@@ -17,7 +17,7 @@
|
||||
# under the License.
|
||||
#
|
||||
|
||||
-find_package(Doxygen)
|
||||
+#find_package(Doxygen)
|
||||
if (DOXYGEN_FOUND)
|
||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/user.doxygen.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/user.doxygen)
|
||||
--
|
||||
2.7.4
|
||||
|
||||
123
doc/amqp.md
Normal file
123
doc/amqp.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Block and Transaction Broadcasting With AMQP 1.0 (Experimental Feature)
|
||||
|
||||
[AMQP](https://www.amqp.org/) is an enterprise-level message queuing
|
||||
protocol for the reliable passing of real-time data and business
|
||||
transactions between applications. AMQP supports both broker and
|
||||
brokerless messaging. AMQP 1.0 is an open standard and has been
|
||||
ratified as ISO/IEC 19464.
|
||||
|
||||
The Zcash daemon can be configured to act as a trusted "border
|
||||
router", implementing the Zcash P2P protocol and relay, making
|
||||
consensus decisions, maintaining the local blockchain database,
|
||||
broadcasting locally generated transactions into the network, and
|
||||
providing a queryable RPC interface to interact on a polled basis for
|
||||
requesting blockchain related data. However, there exists only a
|
||||
limited service to notify external software of events like the arrival
|
||||
of new blocks or transactions.
|
||||
|
||||
The AMQP facility implements a notification interface through a set
|
||||
of specific notifiers. Currently there are notifiers that publish
|
||||
blocks and transactions. This read-only facility requires only the
|
||||
connection of a corresponding AMQP subscriber port in receiving
|
||||
software.
|
||||
|
||||
Currently the facility is not authenticated nor is there any two-way
|
||||
protocol involvement. Therefore, subscribers should validate the
|
||||
received data since it may be out of date, incomplete or even invalid.
|
||||
|
||||
Because AMQP is message oriented, subscribers receive transactions
|
||||
and blocks all-at-once and do not need to implement any sort of
|
||||
buffering or reassembly.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
The AMQP feature in Zcash requires [Qpid Proton](https://qpid.apache.org/proton/)
|
||||
version 0.17 or newer, which you will need to install if you are not
|
||||
using the depends system. Typically, it is packaged by distributions as
|
||||
something like *libqpid-proton*. The C++ wrapper for AMQP *is* required.
|
||||
|
||||
In order to run the example Python client scripts in contrib/ one must
|
||||
also install *python-qpid-proton*, though this is not necessary for
|
||||
daemon operation.
|
||||
|
||||
## Enabling
|
||||
|
||||
By default, the AMQP feature is automatically compiled in if the
|
||||
necessary prerequisites are found. To disable, use --disable-proton
|
||||
during the *configure* step of building zcashd:
|
||||
|
||||
$ ./configure --disable-proton (other options)
|
||||
|
||||
To actually enable operation, one must set the appropriate options on
|
||||
the commandline or in the configuration file.
|
||||
|
||||
## Usage
|
||||
|
||||
AMQP support is currently an experimental feature, so you must pass
|
||||
the option:
|
||||
|
||||
-experimentalfeatures
|
||||
|
||||
Currently, the following notifications are supported:
|
||||
|
||||
-amqppubhashtx=address
|
||||
-amqppubhashblock=address
|
||||
-amqppubrawblock=address
|
||||
-amqppubrawtx=address
|
||||
|
||||
The address must be a valid AMQP address, where the same address can be
|
||||
used in more than notification. Note that SSL and SASL addresses are
|
||||
not currently supported.
|
||||
|
||||
Launch zcashd like this:
|
||||
|
||||
$ zcashd -amqppubhashtx=amqp://127.0.0.1:5672
|
||||
|
||||
Or this:
|
||||
|
||||
$ zcashd -amqppubhashtx=amqp://127.0.0.1:5672 \
|
||||
-amqppubrawtx=amqp://127.0.0.1:5672 \
|
||||
-amqppubrawblock=amqp://127.0.0.1:5672 \
|
||||
-amqppubhashblock=amqp://127.0.0.1:5672 \
|
||||
-debug=amqp
|
||||
|
||||
The debug category `amqp` enables AMQP-related logging.
|
||||
|
||||
Each notification has a topic and body, where the header corresponds
|
||||
to the notification type. For instance, for the notification `-amqpubhashtx`
|
||||
the topic is `hashtx` (no null terminator) and the body is the hexadecimal
|
||||
transaction hash (32 bytes). This transaction hash and the block hash
|
||||
found in `hashblock` are in RPC byte order.
|
||||
|
||||
These options can also be provided in zcash.conf.
|
||||
|
||||
Please see `contrib/amqp/amqp_sub.py` for a working example of an
|
||||
AMQP server listening for messages.
|
||||
|
||||
## Remarks
|
||||
|
||||
From the perspective of zcashd, the local end of an AMQP link is write-only.
|
||||
|
||||
No information is broadcast that wasn't already received from the public
|
||||
P2P network.
|
||||
|
||||
No authentication or authorization is done on peers that zcashd connects
|
||||
to; it is assumed that the AMQP link is exposed only to trusted entities,
|
||||
using other means such as firewalling.
|
||||
|
||||
TLS support may be added once OpenSSL has been removed from the Zcash
|
||||
project and alternative TLS implementations have been evaluated.
|
||||
|
||||
SASL support may be added in a future update for secure communication.
|
||||
|
||||
Note that when the block chain tip changes, a reorganisation may occur
|
||||
and just the tip will be notified. It is up to the subscriber to
|
||||
retrieve the chain from the last known block to the new tip.
|
||||
|
||||
At present, zcashd does not try to resend a notification if there was
|
||||
a problem confirming receipt. Support for delivery guarantees such as
|
||||
*at-least-once* and *exactly-once* will be added in in a future update.
|
||||
|
||||
Currently, zcashd appends an up-counting sequence number to each notification
|
||||
which allows listeners to detect lost notifications.
|
||||
|
||||
@@ -1,68 +1,93 @@
|
||||
Zcash Contributors
|
||||
==================
|
||||
|
||||
Jack Grigg (392)
|
||||
Simon Liu (254)
|
||||
Sean Bowe (185)
|
||||
Daira Hopwood (80)
|
||||
Jack Grigg (601)
|
||||
Simon Liu (297)
|
||||
Sean Bowe (193)
|
||||
Daira Hopwood (102)
|
||||
Wladimir J. van der Laan (71)
|
||||
Taylor Hornby (65)
|
||||
Wladimir J. van der Laan (58)
|
||||
Jonas Schnelli (48)
|
||||
Jay Graber (47)
|
||||
Jay Graber (61)
|
||||
Nathan Wilcox (56)
|
||||
Jonas Schnelli (49)
|
||||
Kevin Gallagher (38)
|
||||
Cory Fields (15)
|
||||
Pieter Wuille (14)
|
||||
Nathan Wilcox (10)
|
||||
Cory Fields (30)
|
||||
Pieter Wuille (24)
|
||||
syd (15)
|
||||
nomnombtc (9)
|
||||
fanquake (5)
|
||||
Paige Peterson (5)
|
||||
MarcoFalke (5)
|
||||
Paige Peterson (9)
|
||||
Matt Corallo (9)
|
||||
fanquake (8)
|
||||
MarcoFalke (7)
|
||||
Luke Dashjr (6)
|
||||
Johnathan Corgan (5)
|
||||
Gregory Maxwell (5)
|
||||
Ariel Gabizon (5)
|
||||
kozyilmaz (4)
|
||||
Philip Kaufmann (4)
|
||||
Peter Todd (4)
|
||||
Patrick Strateman (4)
|
||||
Matt Corallo (4)
|
||||
Karl-Johan Alm (4)
|
||||
Jorge Timón (4)
|
||||
Jeff Garzik (4)
|
||||
David Mercer (4)
|
||||
Daniel Cousens (4)
|
||||
lpescher (3)
|
||||
Suhas Daftuar (3)
|
||||
Pavel Janík (3)
|
||||
João Barbosa (3)
|
||||
Ariel (3)
|
||||
Alfie John (3)
|
||||
str4d (2)
|
||||
paveljanik (2)
|
||||
kpcyrd (2)
|
||||
aniemerg (2)
|
||||
Scott (2)
|
||||
Robert C. Seacord (2)
|
||||
Luke Dashjr (2)
|
||||
João Barbosa (2)
|
||||
Per Grön (2)
|
||||
Pavel Vasin (2)
|
||||
Joe Turgeon (2)
|
||||
Jason Davies (2)
|
||||
Jack Gavigan (2)
|
||||
ITH4Coinomia (2)
|
||||
Gavin Andresen (2)
|
||||
Daniel Kraft (2)
|
||||
Bjorn Hjortsberg (2)
|
||||
Amgad Abdelhafez (2)
|
||||
zathras-crypto (1)
|
||||
unsystemizer (1)
|
||||
practicalswift (1)
|
||||
mruddy (1)
|
||||
mrbandrews (1)
|
||||
kazcw (1)
|
||||
jc (1)
|
||||
isle2983 (1)
|
||||
instagibbs (1)
|
||||
emilrus (1)
|
||||
dexX7 (1)
|
||||
daniel (1)
|
||||
calebogden (1)
|
||||
ayleph (1)
|
||||
Tom Ritter (1)
|
||||
Stephen (1)
|
||||
S. Matthew English (1)
|
||||
Pavel Vasin (1)
|
||||
Ross Nicoll (1)
|
||||
René Nyffenegger (1)
|
||||
Paul Georgiou (1)
|
||||
Paragon Initiative Enterprises, LLC (1)
|
||||
Nicolas DORIER (1)
|
||||
Nathaniel Mahieu (1)
|
||||
Murilo Santana (1)
|
||||
Maxwell Gubler (1)
|
||||
Matt Quinn (1)
|
||||
Mark Friedenbach (1)
|
||||
Marius Kjærstad (1)
|
||||
Louis Nyffenegger (1)
|
||||
Leo Arias (1)
|
||||
Lars-Magnus Skog (1)
|
||||
Jorge Timón (1)
|
||||
Kevin Pan (1)
|
||||
Jonathan "Duke" Leto (1)
|
||||
Jonas Nick (1)
|
||||
Jeffrey Walton (1)
|
||||
Ian Kelling (1)
|
||||
Gaurav Rana (1)
|
||||
@@ -70,17 +95,23 @@ Forrest Voight (1)
|
||||
Florian Schmaus (1)
|
||||
Ethan Heilman (1)
|
||||
Eran Tromer (1)
|
||||
Daniel Kraft (1)
|
||||
Duke Leto (1)
|
||||
Christian von Roques (1)
|
||||
Chirag Davé (1)
|
||||
Casey Rodarmor (1)
|
||||
Cameron Boehmer (1)
|
||||
Bryan Stitt (1)
|
||||
Bruno Arueira (1)
|
||||
Boris Hajduk (1)
|
||||
Bob McElrath (1)
|
||||
Bitcoin Error Log (1)
|
||||
Ashley Holman (1)
|
||||
Anthony Towns (1)
|
||||
Allan Niemerg (1)
|
||||
Alex van der Peet (1)
|
||||
Alex Morcos (1)
|
||||
Alex (1)
|
||||
Adam Weiss (1)
|
||||
Adam Brown (1)
|
||||
4ZEC (1)
|
||||
21E14 (1)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
* zcash.conf: contains configuration settings for zcashd
|
||||
* zcashd.pid: stores the process id of zcashd while running
|
||||
* komodo.conf: contains configuration settings for komodod
|
||||
* komodod.pid: stores the process id of komodod while running
|
||||
* blocks/blk000??.dat: block data (custom, 128 MiB per file)
|
||||
* blocks/rev000??.dat; block undo data (custom)
|
||||
* blocks/index/*; block index (LevelDB)
|
||||
* chainstate/*; block chain state database (LevelDB)
|
||||
* database/*: BDB database environment
|
||||
* db.log: wallet database log file
|
||||
* debug.log: contains debug information and general logging generated by zcashd
|
||||
* debug.log: contains debug information and general logging generated by komodod
|
||||
* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation
|
||||
* peers.dat: peer IP address database (custom format)
|
||||
* wallet.dat: personal wallet (BDB) with keys and transactions
|
||||
|
||||
74
doc/hotfix-process.md
Normal file
74
doc/hotfix-process.md
Normal file
@@ -0,0 +1,74 @@
|
||||
Hotfix Release Process
|
||||
======================
|
||||
|
||||
Hotfix releases are versioned by incrementing the build number of the latest
|
||||
release. For example:
|
||||
|
||||
First hotfix: v1.0.11 -> v1.0.11-1
|
||||
Second hotfix: v1.0.11-1 -> v1.0.11-2
|
||||
|
||||
In the commands below, <RELEASE> and <RELEASE_PREV> are prefixed with a v, ie.
|
||||
v1.0.11 (not 1.0.11).
|
||||
|
||||
## Create a hotfix branch
|
||||
|
||||
Create a hotfix branch from the previous release tag, and push it to the main
|
||||
repository:
|
||||
|
||||
$ git branch hotfix-<RELEASE> <RELEASE_PREV>
|
||||
$ git push 'git@github.com:zcash/zcash' hotfix-<RELEASE>
|
||||
|
||||
## Implement hotfix changes
|
||||
|
||||
Hotfix changes are implemented the same way as regular changes (developers work
|
||||
in separate branches per change, and push the branches to their own repositories),
|
||||
except that the branches are based on the hotfix branch instead of master:
|
||||
|
||||
$ git checkout hotfix-<RELEASE>
|
||||
$ git checkout -b <BRANCH_NAME>
|
||||
|
||||
## Merge hotfix PRs
|
||||
|
||||
Hotfix PRs are created like regular PRs, except using the hotfix branch as the
|
||||
base instead of master. Each PR should be reviewed as normal, and then the
|
||||
following process should be used to merge:
|
||||
|
||||
- A CI merge build is manually run by logging into the CI server, going to the
|
||||
pr-merge builder, clicking the "force" button, and entering the following
|
||||
values:
|
||||
|
||||
- Repository: https://github.com/<DevUser>/zcash
|
||||
- <DevUser> must be in the set of "safe" users as-specified in the CI
|
||||
config.
|
||||
- Branch: name of the hotfix PR branch (not the hotfix release branch).
|
||||
|
||||
- A link to the build and its result is manually added to the PR as a comment.
|
||||
|
||||
- If the build was successful, the PR is merged via the GitHub button.
|
||||
|
||||
## Release process
|
||||
|
||||
The majority of this process is identical to the standard release process.
|
||||
However, there are a few notable differences:
|
||||
|
||||
- When running the release script, use the `--hotfix` flag:
|
||||
|
||||
$ ./zcutil/make-release.py --hotfix <RELEASE> <RELEASE_PREV> <APPROX_RELEASE_HEIGHT>
|
||||
|
||||
- To review the automated changes in git:
|
||||
|
||||
$ git log hotfix-<RELEASE>..HEAD
|
||||
|
||||
- After the standard review process, use the hotfix merge process outlined above
|
||||
instead of the regular merge process.
|
||||
|
||||
- When making the tag, check out the hotfix branch instead of master.
|
||||
|
||||
## Post-release
|
||||
|
||||
Once the hotfix release has been created, a new PR should be opened for merging
|
||||
the hotfix release branch into master. This may require fixing merge conflicts
|
||||
(e.g. changing the version number in the hotfix branch to match master, if
|
||||
master is ahead). Such conflicts **MUST** be addressed with additional commits
|
||||
to the hotfix branch; specifically, the branch **MUST NOT** be rebased on
|
||||
master.
|
||||
84
doc/man/komodo-cli.1
Normal file
84
doc/man/komodo-cli.1
Normal file
@@ -0,0 +1,84 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH KOMODO-CLI "1" "March 2018" "komodo-cli v1.0.8" "User Commands"
|
||||
.SH NAME
|
||||
komodo-cli \- manual page for komodo-cli v1.0.8
|
||||
.SH DESCRIPTION
|
||||
Komodo RPC client version v1.0.8
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
komodo\-cli [options] <command> [params]
|
||||
Send command to Komodo
|
||||
.TP
|
||||
komodo\-cli [options] help
|
||||
List commands
|
||||
.TP
|
||||
komodo\-cli [options] help <command>
|
||||
Get help for a command
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file (default: komodo.conf)
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the test network
|
||||
.HP
|
||||
\fB\-regtest\fR
|
||||
.IP
|
||||
Enter regression test mode, which uses a special chain in which blocks
|
||||
can be solved instantly. This is intended for regression testing tools
|
||||
and app development.
|
||||
.HP
|
||||
\fB\-rpcconnect=\fR<ip>
|
||||
.IP
|
||||
Send commands to node running on <ip> (default: 127.0.0.1)
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Connect to JSON\-RPC on <port> (default: 8232 or testnet: 18232)
|
||||
.HP
|
||||
\fB\-rpcwait\fR
|
||||
.IP
|
||||
Wait for RPC server to start
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcclienttimeout=\fR<n>
|
||||
.IP
|
||||
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
||||
900)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
Copyright (C) 2015-2017 jl777 and SuperNET developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
102
doc/man/komodo-tx.1
Normal file
102
doc/man/komodo-tx.1
Normal file
@@ -0,0 +1,102 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH KOMODO-TX "1" "March 2018" "komodo-tx v1.0.8" "User Commands"
|
||||
.SH NAME
|
||||
komodo-tx \- manual page for komodo-tx v1.0.8
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v1.0.8
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
Update hex\-encoded zcash transaction
|
||||
.TP
|
||||
zcash\-tx [options] \fB\-create\fR [commands]
|
||||
Create hex\-encoded zcash transaction
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
.HP
|
||||
\fB\-create\fR
|
||||
.IP
|
||||
Create new, empty TX.
|
||||
.HP
|
||||
\fB\-json\fR
|
||||
.IP
|
||||
Select JSON output
|
||||
.HP
|
||||
\fB\-txid\fR
|
||||
.IP
|
||||
Output only the hex\-encoded transaction id of the resultant transaction.
|
||||
.HP
|
||||
\fB\-regtest\fR
|
||||
.IP
|
||||
Enter regression test mode, which uses a special chain in which blocks
|
||||
can be solved instantly.
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the test network
|
||||
.PP
|
||||
Commands:
|
||||
.IP
|
||||
delin=N
|
||||
.IP
|
||||
Delete input N from TX
|
||||
.IP
|
||||
delout=N
|
||||
.IP
|
||||
Delete output N from TX
|
||||
.IP
|
||||
in=TXID:VOUT
|
||||
.IP
|
||||
Add input to TX
|
||||
.IP
|
||||
locktime=N
|
||||
.IP
|
||||
Set TX lock time to N
|
||||
.IP
|
||||
nversion=N
|
||||
.IP
|
||||
Set TX version to N
|
||||
.IP
|
||||
outaddr=VALUE:ADDRESS
|
||||
.IP
|
||||
Add address\-based output to TX
|
||||
.IP
|
||||
outscript=VALUE:SCRIPT
|
||||
.IP
|
||||
Add raw script output to TX
|
||||
.IP
|
||||
sign=SIGHASH\-FLAGS
|
||||
.IP
|
||||
Add zero or more signatures to transaction. This command requires JSON
|
||||
registers:prevtxs=JSON object, privatekeys=JSON object. See
|
||||
signrawtransaction docs for format of sighash flags, JSON objects.
|
||||
.PP
|
||||
Register Commands:
|
||||
.IP
|
||||
load=NAME:FILENAME
|
||||
.IP
|
||||
Load JSON file FILENAME into register NAME
|
||||
.IP
|
||||
set=NAME:JSON\-STRING
|
||||
.IP
|
||||
Set register NAME to given JSON\-STRING
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
Copyright (C) 2015-2017 jl777 and SuperNET developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
472
doc/man/komodod.1
Normal file
472
doc/man/komodod.1
Normal file
@@ -0,0 +1,472 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH KOMODOD "1" "March 2018" "komodod v1.0.8" "User Commands"
|
||||
.SH NAME
|
||||
komodod \- manual page for komodod v1.0.8
|
||||
.SH DESCRIPTION
|
||||
Komodo Daemon version v1.0.8
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
komodod [options]
|
||||
Start Komodo Daemon
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\-?
|
||||
.IP
|
||||
This help message
|
||||
.HP
|
||||
\fB\-alerts\fR
|
||||
.IP
|
||||
Receive and display P2P network alerts (default: 1)
|
||||
.HP
|
||||
\fB\-alertnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a relevant alert is received or we see a really
|
||||
long fork (%s in cmd is replaced by message)
|
||||
.HP
|
||||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when the best block changes (%s in cmd is replaced by
|
||||
block hash)
|
||||
.HP
|
||||
\fB\-checkblocks=\fR<n>
|
||||
.IP
|
||||
How many blocks to check at startup (default: 288, 0 = all)
|
||||
.HP
|
||||
\fB\-checklevel=\fR<n>
|
||||
.IP
|
||||
How thorough the block verification of \fB\-checkblocks\fR is (0\-4, default: 3)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file (default: komodo.conf)
|
||||
.HP
|
||||
\fB\-daemon\fR
|
||||
.IP
|
||||
Run in the background as a daemon and accept commands
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-exportdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to be used when exporting data
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in megabytes (4 to 16384, default: 100)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
Imports blocks from external blk000??.dat file on startup
|
||||
.HP
|
||||
\fB\-maxorphantx=\fR<n>
|
||||
.IP
|
||||
Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
.IP
|
||||
Specify pid file (default: komodod.pid)
|
||||
.HP
|
||||
\fB\-prune=\fR<n>
|
||||
.IP
|
||||
Reduce storage requirements by pruning (deleting) old blocks. This mode
|
||||
disables wallet support and is incompatible with \fB\-txindex\fR. Warning:
|
||||
Reverting this setting requires re\-downloading the entire blockchain.
|
||||
(default: 0 = disable pruning blocks, >550 = target size in MiB to use
|
||||
for block files)
|
||||
.HP
|
||||
\fB\-reindex\fR
|
||||
.IP
|
||||
Rebuild block chain index from current blk000??.dat files on startup
|
||||
.HP
|
||||
\fB\-sysperms\fR
|
||||
.IP
|
||||
Create new files with system default permissions, instead of umask 077
|
||||
(only effective with disabled wallet functionality)
|
||||
.HP
|
||||
\fB\-txindex\fR
|
||||
.IP
|
||||
Maintain a full transaction index, used by the getrawtransaction rpc
|
||||
call (default: 0)
|
||||
.PP
|
||||
Connection options:
|
||||
.HP
|
||||
\fB\-addnode=\fR<ip>
|
||||
.IP
|
||||
Add a node to connect to and attempt to keep the connection open
|
||||
.HP
|
||||
\fB\-banscore=\fR<n>
|
||||
.IP
|
||||
Threshold for disconnecting misbehaving peers (default: 100)
|
||||
.HP
|
||||
\fB\-bantime=\fR<n>
|
||||
.IP
|
||||
Number of seconds to keep misbehaving peers from reconnecting (default:
|
||||
86400)
|
||||
.HP
|
||||
\fB\-bind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address and always listen on it. Use [host]:port notation
|
||||
for IPv6
|
||||
.HP
|
||||
\fB\-connect=\fR<ip>
|
||||
.IP
|
||||
Connect only to the specified node(s)
|
||||
.HP
|
||||
\fB\-discover\fR
|
||||
.IP
|
||||
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
|
||||
or \fB\-proxy\fR)
|
||||
.HP
|
||||
\fB\-dns\fR
|
||||
.IP
|
||||
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
|
||||
.HP
|
||||
\fB\-dnsseed\fR
|
||||
.IP
|
||||
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
unless \fB\-connect\fR)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
Specify your own public address
|
||||
.HP
|
||||
\fB\-forcednsseed\fR
|
||||
.IP
|
||||
Always query for peer addresses via DNS lookup (default: 0)
|
||||
.HP
|
||||
\fB\-listen\fR
|
||||
.IP
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR or \fB\-connect\fR)
|
||||
.HP
|
||||
\fB\-listenonion\fR
|
||||
.IP
|
||||
Automatically create Tor hidden service (default: 1)
|
||||
.HP
|
||||
\fB\-maxconnections=\fR<n>
|
||||
.IP
|
||||
Maintain at most <n> connections to peers (default: 125)
|
||||
.HP
|
||||
\fB\-maxreceivebuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
|
||||
.HP
|
||||
\fB\-maxsendbuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection send buffer, <n>*1000 bytes (default: 1000)
|
||||
.HP
|
||||
\fB\-onion=\fR<ip:port>
|
||||
.IP
|
||||
Use separate SOCKS5 proxy to reach peers via Tor hidden services
|
||||
(default: \fB\-proxy\fR)
|
||||
.HP
|
||||
\fB\-onlynet=\fR<net>
|
||||
.IP
|
||||
Only connect to nodes in network <net> (ipv4, ipv6 or onion)
|
||||
.HP
|
||||
\fB\-permitbaremultisig\fR
|
||||
.IP
|
||||
Relay non\-P2SH multisig (default: 1)
|
||||
.HP
|
||||
\fB\-port=\fR<port>
|
||||
.IP
|
||||
Listen for connections on <port> (default: 7770 or testnet: 17770)
|
||||
.HP
|
||||
\fB\-proxy=\fR<ip:port>
|
||||
.IP
|
||||
Connect through SOCKS5 proxy
|
||||
.HP
|
||||
\fB\-proxyrandomize\fR
|
||||
.IP
|
||||
Randomize credentials for every proxy connection. This enables Tor
|
||||
stream isolation (default: 1)
|
||||
.HP
|
||||
\fB\-seednode=\fR<ip>
|
||||
.IP
|
||||
Connect to a node to retrieve peer addresses, and disconnect
|
||||
.HP
|
||||
\fB\-timeout=\fR<n>
|
||||
.IP
|
||||
Specify connection timeout in milliseconds (minimum: 1, default: 5000)
|
||||
.HP
|
||||
\fB\-torcontrol=\fR<ip>:<port>
|
||||
.IP
|
||||
Tor control port to use if onion listening enabled (default:
|
||||
127.0.0.1:9051)
|
||||
.HP
|
||||
\fB\-torpassword=\fR<pass>
|
||||
.IP
|
||||
Tor control port password (default: empty)
|
||||
.HP
|
||||
\fB\-upnp\fR
|
||||
.IP
|
||||
Use UPnP to map the listening port (default: 0)
|
||||
.HP
|
||||
\fB\-whitebind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address and whitelist peers connecting to it. Use
|
||||
[host]:port notation for IPv6
|
||||
.HP
|
||||
\fB\-whitelist=\fR<netmask>
|
||||
.IP
|
||||
Whitelist peers connecting from the given netmask or IP address. Can be
|
||||
specified multiple times. Whitelisted peers cannot be DoS banned and
|
||||
their transactions are always relayed, even if they are already in the
|
||||
mempool, useful e.g. for a gateway
|
||||
.PP
|
||||
Wallet options:
|
||||
.HP
|
||||
\fB\-disablewallet\fR
|
||||
.IP
|
||||
Do not load the wallet and disable wallet RPC calls
|
||||
.HP
|
||||
\fB\-keypool=\fR<n>
|
||||
.IP
|
||||
Set key pool size to <n> (default: 100)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee (in BTC/kB) to add to transactions you send (default: 0.00)
|
||||
.HP
|
||||
\fB\-rescan\fR
|
||||
.IP
|
||||
Rescan the blockchain for missing wallet transactions on startup
|
||||
.HP
|
||||
\fB\-salvagewallet\fR
|
||||
.IP
|
||||
Attempt to recover private keys from a corrupt wallet.dat on startup
|
||||
.HP
|
||||
\fB\-sendfreetransactions\fR
|
||||
.IP
|
||||
Send transactions as zero\-fee transactions if possible (default: 0)
|
||||
.HP
|
||||
\fB\-spendzeroconfchange\fR
|
||||
.IP
|
||||
Spend unconfirmed change when sending transactions (default: 1)
|
||||
.HP
|
||||
\fB\-txconfirmtarget=\fR<n>
|
||||
.IP
|
||||
If paytxfee is not set, include enough fee so transactions begin
|
||||
confirmation on average within n blocks (default: 2)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees to use in a single wallet transaction; setting this
|
||||
too low may abort large transactions (default: 0.10)
|
||||
.HP
|
||||
\fB\-upgradewallet\fR
|
||||
.IP
|
||||
Upgrade wallet to latest format on startup
|
||||
.HP
|
||||
\fB\-wallet=\fR<file>
|
||||
.IP
|
||||
Specify wallet file (within data directory) (default: wallet.dat)
|
||||
.HP
|
||||
\fB\-walletbroadcast\fR
|
||||
.IP
|
||||
Make the wallet broadcast transactions (default: 1)
|
||||
.HP
|
||||
\fB\-walletnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a wallet transaction changes (%s in cmd is replaced
|
||||
by TxID)
|
||||
.HP
|
||||
\fB\-zapwallettxes=\fR<mode>
|
||||
.IP
|
||||
Delete all wallet transactions and only recover those parts of the
|
||||
blockchain through \fB\-rescan\fR on startup (1 = keep tx meta data e.g.
|
||||
account owner and payment request information, 2 = drop tx meta data)
|
||||
.PP
|
||||
ZeroMQ notification options:
|
||||
.HP
|
||||
\fB\-zmqpubhashblock=\fR<address>
|
||||
.IP
|
||||
Enable publish hash block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashtx=\fR<address>
|
||||
.IP
|
||||
Enable publish hash transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawblock=\fR<address>
|
||||
.IP
|
||||
Enable publish raw block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawtx=\fR<address>
|
||||
.IP
|
||||
Enable publish raw transaction in <address>
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
\fB\-debug=\fR<category>
|
||||
.IP
|
||||
Output debugging information (default: 0, supplying <category> is
|
||||
optional). If <category> is not supplied or if <category> = 1, output
|
||||
all debugging information. <category> can be: addrman, alert, bench,
|
||||
coindb, db, estimatefee, http, libevent, lock, mempool, net,
|
||||
partitioncheck, pow, proxy, prune, rand, reindex, rpc, selectcoins, tor,
|
||||
zmq, zrpc, zrpcunsafe (implies zrpc).
|
||||
.HP
|
||||
\fB\-experimentalfeatures\fR
|
||||
.IP
|
||||
Enable use of experimental features
|
||||
.HP
|
||||
\fB\-help\-debug\fR
|
||||
.IP
|
||||
Show all debugging options (usage: \fB\-\-help\fR \fB\-help\-debug\fR)
|
||||
.HP
|
||||
\fB\-logips\fR
|
||||
.IP
|
||||
Include IP addresses in debug output (default: 0)
|
||||
.HP
|
||||
\fB\-logtimestamps\fR
|
||||
.IP
|
||||
Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/Kb) smaller than this are considered zero fee for relaying
|
||||
(default: 0.000001)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
Send trace/debug info to console instead of debug.log file
|
||||
.HP
|
||||
\fB\-shrinkdebugfile\fR
|
||||
.IP
|
||||
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the test network
|
||||
.PP
|
||||
Node relay options:
|
||||
.HP
|
||||
\fB\-datacarrier\fR
|
||||
.IP
|
||||
Relay and mine data carrier transactions (default: 1)
|
||||
.HP
|
||||
\fB\-datacarriersize\fR
|
||||
.IP
|
||||
Maximum size of data in data carrier transactions we relay and mine
|
||||
(default: 8192)
|
||||
.PP
|
||||
Block creation options:
|
||||
.HP
|
||||
\fB\-blockminsize=\fR<n>
|
||||
.IP
|
||||
Set minimum block size in bytes (default: 0)
|
||||
.HP
|
||||
\fB\-blockmaxsize=\fR<n>
|
||||
.IP
|
||||
Set maximum block size in bytes (default: 2000000)
|
||||
.HP
|
||||
\fB\-blockprioritysize=\fR<n>
|
||||
.IP
|
||||
Set maximum size of high\-priority/low\-fee transactions in bytes
|
||||
(default: 1000000)
|
||||
.PP
|
||||
Mining options:
|
||||
.HP
|
||||
\fB\-gen\fR
|
||||
.IP
|
||||
Generate coins (default: 0)
|
||||
.HP
|
||||
\fB\-genproclimit=\fR<n>
|
||||
.IP
|
||||
Set the number of threads for coin generation if enabled (\fB\-1\fR = all
|
||||
cores, default: 1)
|
||||
.HP
|
||||
\fB\-equihashsolver=\fR<name>
|
||||
.IP
|
||||
Specify the Equihash solver to be used if enabled (default: "default")
|
||||
.HP
|
||||
\fB\-mineraddress=\fR<addr>
|
||||
.IP
|
||||
Send mined coins to a specific single address
|
||||
.HP
|
||||
\fB\-minetolocalwallet\fR
|
||||
.IP
|
||||
Require that mined blocks use a coinbase address in the local wallet
|
||||
(default: 1)
|
||||
.PP
|
||||
RPC server options:
|
||||
.HP
|
||||
\fB\-server\fR
|
||||
.IP
|
||||
Accept command line and JSON\-RPC commands
|
||||
.HP
|
||||
\fB\-rest\fR
|
||||
.IP
|
||||
Accept public REST requests (default: 0)
|
||||
.HP
|
||||
\fB\-rpcbind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address to listen for JSON\-RPC connections. Use
|
||||
[host]:port notation for IPv6. This option can be specified multiple
|
||||
times (default: bind to all interfaces)
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Listen for JSON\-RPC connections on <port> (default: 7771 or testnet:
|
||||
17771)
|
||||
.HP
|
||||
\fB\-rpcallowip=\fR<ip>
|
||||
.IP
|
||||
Allow JSON\-RPC connections from specified source. Valid for <ip> are a
|
||||
single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0)
|
||||
or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified
|
||||
multiple times
|
||||
.HP
|
||||
\fB\-rpcthreads=\fR<n>
|
||||
.IP
|
||||
Set the number of threads to service RPC calls (default: 4)
|
||||
.PP
|
||||
Metrics Options (only if \fB\-daemon\fR and \fB\-printtoconsole\fR are not set):
|
||||
.HP
|
||||
\fB\-showmetrics\fR
|
||||
.IP
|
||||
Show metrics on stdout (default: 1 if running in a console, 0 otherwise)
|
||||
.HP
|
||||
\fB\-metricsui\fR
|
||||
.IP
|
||||
Set to 1 for a persistent metrics screen, 0 for sequential metrics
|
||||
output (default: 1 if running in a console, 0 otherwise)
|
||||
.HP
|
||||
\fB\-metricsrefreshtime\fR
|
||||
.IP
|
||||
Number of seconds between metrics refreshes (default: 1 if running in a
|
||||
console, 600 otherwise)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
Copyright (C) 2015-2017 jl777 and SuperNET developers
|
||||
|
||||
This is experimental software.
|
||||
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH ZCASH-CLI "1" "March 2017" "zcash-cli v1.0.8" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH ZCASH-CLI "1" "February 2018" "zcash-cli v1.0.15" "User Commands"
|
||||
.SH NAME
|
||||
zcash-cli \- manual page for zcash-cli v1.0.8
|
||||
zcash-cli \- manual page for zcash-cli v1.0.15
|
||||
.SH DESCRIPTION
|
||||
Zcash RPC client version v1.0.8
|
||||
Zcash RPC client version v1.0.15
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
please see <https://z.cash/support/security/>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-cli [options] <command> [params]
|
||||
@@ -66,6 +66,10 @@ Password for JSON\-RPC connections
|
||||
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
||||
900)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
|
||||
@@ -76,4 +80,4 @@ or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
by Eric Young.
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH ZCASH-TX "1" "March 2017" "zcash-tx v1.0.8" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH ZCASH-TX "1" "February 2018" "zcash-tx v1.0.15" "User Commands"
|
||||
.SH NAME
|
||||
zcash-tx \- manual page for zcash-tx v1.0.8
|
||||
zcash-tx \- manual page for zcash-tx v1.0.15
|
||||
.SH DESCRIPTION
|
||||
Zcash zcash\-tx utility version v1.0.8
|
||||
Zcash zcash\-tx utility version v1.0.15
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcash\-tx [options] <hex\-tx> [commands]
|
||||
@@ -68,7 +68,7 @@ outscript=VALUE:SCRIPT
|
||||
.IP
|
||||
Add raw script output to TX
|
||||
.IP
|
||||
sign=SIGHASH\-FLAGS
|
||||
sign=HEIGHT:SIGHASH\-FLAGS
|
||||
.IP
|
||||
Add zero or more signatures to transaction. This command requires JSON
|
||||
registers:prevtxs=JSON object, privatekeys=JSON object. See
|
||||
@@ -84,6 +84,10 @@ set=NAME:JSON\-STRING
|
||||
.IP
|
||||
Set register NAME to given JSON\-STRING
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
|
||||
@@ -94,4 +98,4 @@ or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
by Eric Young.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4.
|
||||
.TH ZCASHD "1" "March 2017" "zcashd v1.0.8" "User Commands"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.3.
|
||||
.TH ZCASHD "1" "February 2018" "zcashd v1.0.15" "User Commands"
|
||||
.SH NAME
|
||||
zcashd \- manual page for zcashd v1.0.8
|
||||
zcashd \- manual page for zcashd v1.0.15
|
||||
.SH DESCRIPTION
|
||||
Zcash Daemon version v1.0.8
|
||||
Zcash Daemon version v1.0.15
|
||||
.PP
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/index.html>.
|
||||
please see <https://z.cash/support/security/>.
|
||||
.SS "Usage:"
|
||||
.TP
|
||||
zcashd [options]
|
||||
@@ -51,13 +51,18 @@ Run in the background as a daemon and accept commands
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-disabledeprecation=\fR<version>
|
||||
.IP
|
||||
Disable block\-height node deprecation and automatic shutdown (example:
|
||||
\fB\-disabledeprecation\fR=\fI\,1\/\fR.0.15)
|
||||
.HP
|
||||
\fB\-exportdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to be used when exporting data
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
Set database cache size in megabytes (4 to 16384, default: 100)
|
||||
Set database cache size in megabytes (4 to 16384, default: 450)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
@@ -67,9 +72,14 @@ Imports blocks from external blk000??.dat file on startup
|
||||
.IP
|
||||
Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
.HP
|
||||
\fB\-mempooltxinputlimit=\fR<n>
|
||||
.IP
|
||||
Set the maximum number of transparent inputs in a transaction that the
|
||||
mempool will accept (default: 0 = no limit applied)
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (\fB\-4\fR to 16, 0 = auto, <0 =
|
||||
Set the number of script verification threads (\fB\-2\fR to 16, 0 = auto, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
@@ -207,10 +217,6 @@ Tor control port to use if onion listening enabled (default:
|
||||
.IP
|
||||
Tor control port password (default: empty)
|
||||
.HP
|
||||
\fB\-upnp\fR
|
||||
.IP
|
||||
Use UPnP to map the listening port (default: 0)
|
||||
.HP
|
||||
\fB\-whitebind=\fR<addr>
|
||||
.IP
|
||||
Bind to given address and whitelist peers connecting to it. Use
|
||||
@@ -235,7 +241,7 @@ Set key pool size to <n> (default: 100)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee (in BTC/kB) to add to transactions you send (default: 0.00)
|
||||
Fee (in ZEC/kB) to add to transactions you send (default: 0.00)
|
||||
.HP
|
||||
\fB\-rescan\fR
|
||||
.IP
|
||||
@@ -258,10 +264,15 @@ Spend unconfirmed change when sending transactions (default: 1)
|
||||
If paytxfee is not set, include enough fee so transactions begin
|
||||
confirmation on average within n blocks (default: 2)
|
||||
.HP
|
||||
\fB\-txexpirydelta\fR
|
||||
.IP
|
||||
Set the number of blocks after which a transaction that has not been
|
||||
mined will become invalid (default: 20)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees to use in a single wallet transaction; setting this
|
||||
too low may abort large transactions (default: 0.10)
|
||||
Maximum total fees (in ZEC) to use in a single wallet transaction;
|
||||
setting this too low may abort large transactions (default: 0.10)
|
||||
.HP
|
||||
\fB\-upgradewallet\fR
|
||||
.IP
|
||||
@@ -333,7 +344,7 @@ Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/Kb) smaller than this are considered zero fee for relaying
|
||||
Fees (in ZEC/kB) smaller than this are considered zero fee for relaying
|
||||
(default: 0.000001)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
@@ -454,6 +465,10 @@ output (default: 1 if running in a console, 0 otherwise)
|
||||
Number of seconds between metrics refreshes (default: 1 if running in a
|
||||
console, 600 otherwise)
|
||||
.SH COPYRIGHT
|
||||
|
||||
In order to ensure you are adequately protecting your privacy when using Zcash,
|
||||
please see <https://z.cash/support/security/>.
|
||||
|
||||
Copyright (C) 2009-2017 The Bitcoin Core Developers
|
||||
Copyright (C) 2015-2017 The Zcash Developers
|
||||
|
||||
@@ -464,4 +479,4 @@ or <http://www.opensource.org/licenses/mit-license.php>.
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the
|
||||
OpenSSL Toolkit <https://www.openssl.org/> and cryptographic software written
|
||||
by Eric Young and UPnP software written by Thomas Bernard.
|
||||
by Eric Young.
|
||||
|
||||
@@ -32,7 +32,7 @@ RPC calls by category:
|
||||
* Addresses : z_getnewaddress, z_listaddresses, z_validateaddress
|
||||
* Keys : z_exportkey, z_importkey, z_exportwallet, z_importwallet
|
||||
* Operation: z_getoperationresult, z_getoperationstatus, z_listoperationids
|
||||
* Payment : z_listreceivedbyaddress, z_sendmany
|
||||
* Payment : z_listreceivedbyaddress, z_sendmany, z_shieldcoinbase
|
||||
|
||||
RPC parameter conventions:
|
||||
|
||||
@@ -46,7 +46,7 @@ RPC parameter conventions:
|
||||
|
||||
Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_getbalance<br>| address [minconf=1] | Returns the balance of a taddr or zaddr belonging to the node’s wallet.<br><br>Optionally set the minimum number of confirmations a private or transaction transaction must have in order to be included in the balance. Use 0 to count unconfirmed transactions.
|
||||
z_getbalance<br>| address [minconf=1] | Returns the balance of a taddr or zaddr belonging to the node’s wallet.<br><br>Optionally set the minimum number of confirmations a private or transparent transaction must have in order to be included in the balance. Use 0 to count unconfirmed transactions.
|
||||
z_gettotalbalance<br>| [minconf=1] | Return the total value of funds stored in the node’s wallet.<br><br>Optionally set the minimum number of confirmations a private or transparent transaction must have in order to be included in the balance. Use 0 to count unconfirmed transactions.<br><br>Output:<br>{<br>"transparent" : 1.23,<br>"private" : 4.56,<br>"total" : 5.79}
|
||||
|
||||
### Addresses
|
||||
@@ -55,7 +55,7 @@ Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_getnewaddress | | Return a new zaddr for sending and receiving payments. The spending key for this zaddr will be added to the node’s wallet.<br><br>Output:<br>zN68D8hSs3...
|
||||
z_listaddresses | | Returns a list of all the zaddrs in this node’s wallet for which you have a spending key.<br><br>Output:<br>{ [“z123…”, “z456...”, “z789...”] }
|
||||
z_validateaddress | | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
|
||||
z_validateaddress | zaddr | Return information about a given zaddr.<br><br>Output:<br>{"isvalid" : true,<br>"address" : "zcWsmq...",<br>"payingkey" : "f5bb3c...",<br>"transmissionkey" : "7a58c7...",<br>"ismine" : true}
|
||||
|
||||
### Key Management
|
||||
|
||||
@@ -64,14 +64,15 @@ Command | Parameters | Description
|
||||
z_exportkey | zaddr | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Return a zkey for a given zaddr belonging to the node’s wallet.<br><br>The key will be returned as a string formatted using Base58Check as described in the Zcash protocol spec.<br><br>Output:AKWUAkypwQjhZ6LLNaMuuuLcmZ6gt5UFyo8m3jGutvALmwZKLdR5
|
||||
z_importkey | zkey [rescan=true] | _Wallet must be unlocked._<br><br>Add a zkey as returned by z_exportkey to a node's wallet.<br><br>The key should be formatted using Base58Check as described in the Zcash protocol spec.<br><br>Set rescan to true (the default) to rescan the entire local block database for transactions affecting any address or pubkey script in the wallet (including transactions affecting the newly-added address for this spending key).
|
||||
z_exportwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Creates or overwrites a file with taddr private keys and zaddr private keys in a human-readable format.<br><br>Filename is the file in which the wallet dump will be placed. May be prefaced by an absolute file path. An existing file with that name will be overwritten.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
|
||||
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to zcashd’s working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
|
||||
z_importwallet | filename | _Requires an unlocked wallet or an unencrypted wallet._<br><br>Imports private keys from a file in wallet export file format (see z_exportwallet). These keys will be added to the keys currently in the wallet. This call may need to rescan all or parts of the block chain for transactions affecting the newly-added keys, which may take several minutes.<br><br>Filename is the file to import. The path is relative to komodod’s working directory.<br><br>No value is returned but a JSON-RPC error will be reported if a failure occurred.
|
||||
|
||||
### Payment
|
||||
|
||||
Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_listreceivedbyaddress<br> | zaddr [minconf=1] | Return a list of amounts received by a zaddr belonging to the node’s wallet.<br><br>Optionally set the minimum number of confirmations which a received amount must have in order to be included in the result. Use 0 to count unconfirmed transactions.<br><br>Output:<br>[{<br>“txid”: “4a0f…”,<br>“amount”: 0.54,<br>“memo”:”F0FF…”,}, {...}, {...}<br>]
|
||||
z_sendmany<br> | fromaddress amounts [minconf=1] [fee=0.0001] | _This is an Asynchronous RPC call_<br><br>Send funds from an address to multiple outputs. The address can be either a taddr or a zaddr.<br><br>Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format.<br><br>When sending to a zaddr, you also have the option of attaching a memo in hexadecimal format.<br><br>**NOTE:**When sending coinbase funds to a zaddr, the node's wallet does not allow any change. Put another way, spending a partial amount of a coinbase utxo is not allowed. This is not a consensus rule but a local wallet rule due to the current implementation of z_sendmany. In future, this rule may be removed.<br><br>Example of Outputs parameter:<br>[{“address”:”t123…”, “amount”:0.005},<br>,{“address”:”z010…”,”amount”:0.03, “memo”:”f508af…”}]<br><br>Optionally set the minimum number of confirmations which a private or transparent transaction must have in order to be used as an input.<br><br>Optionally set a transaction fee, which by default is 0.0001 ZEC.<br><br>Any transparent change will be sent to a new transparent address. Any private change will be sent back to the zaddr being used as the source of funds.<br><br>Returns an operationid. You use the operationid value with z_getoperationstatus and z_getoperationresult to obtain the result of sending funds, which if successful, will be a txid.
|
||||
z_sendmany<br> | fromaddress amounts [minconf=1] [fee=0.0001] | _This is an Asynchronous RPC call_<br><br>Send funds from an address to multiple outputs. The address can be either a taddr or a zaddr.<br><br>Amounts is a list containing key/value pairs corresponding to the addresses and amount to pay. Each output address can be in taddr or zaddr format.<br><br>When sending to a zaddr, you also have the option of attaching a memo in hexadecimal format.<br><br>**NOTE:**When sending coinbase funds to a zaddr, the node's wallet does not allow any change. Put another way, spending a partial amount of a coinbase utxo is not allowed. This is not a consensus rule but a local wallet rule due to the current implementation of z_sendmany. In future, this rule may be removed.<br><br>Example of Outputs parameter:<br>[{“address”:”t123…”, “amount”:0.005},<br>,{“address”:”z010…”,”amount”:0.03, “memo”:”f508af…”}]<br><br>Optionally set the minimum number of confirmations which a private or transparent transaction must have in order to be used as an input. When sending from a zaddr, minconf must be greater than zero.<br><br>Optionally set a transaction fee, which by default is 0.0001 ZEC.<br><br>Any transparent change will be sent to a new transparent address. Any private change will be sent back to the zaddr being used as the source of funds.<br><br>Returns an operationid. You use the operationid value with z_getoperationstatus and z_getoperationresult to obtain the result of sending funds, which if successful, will be a txid.
|
||||
z_shieldcoinbase<br> | fromaddress toaddress [fee=0.0001] [limit=50] | _This is an Asynchronous RPC call_<br><br>Shield transparent coinbase funds by sending to a shielded z address. Utxos selected for shielding will be locked. If there is an error, they are unlocked. The RPC call `listlockunspent` can be used to return a list of locked utxos.<br><br>The number of coinbase utxos selected for shielding can be set with the limit parameter, which has a default value of 50. If the parameter is set to 0, the number of utxos selected is limited by the `-mempooltxinputlimit` option. Any limit is constrained by a consensus rule defining a maximum transaction size of 100000 bytes. <br><br>The from address is a taddr or "*" for all taddrs belonging to the wallet. The to address is a zaddr. The default fee is 0.0001.<br><br>Returns an object containing an operationid which can be used with z_getoperationstatus and z_getoperationresult, along with key-value pairs regarding how many utxos are being shielded in this transaction and what remains to be shielded.
|
||||
|
||||
### Operations
|
||||
|
||||
@@ -100,7 +101,7 @@ It is currently not possible to cancel operations.
|
||||
|
||||
Command | Parameters | Description
|
||||
--- | --- | ---
|
||||
z_getoperationresult <br>| [operationids] | Return OperationStatus JSON objects for all completed operations the node is currently aware of, and then remove the operation from memory.<br><br>Operationids is an optional array to filter which operations you want to receive status objects for.<br><br>Output is a list of operation status objects, where the status is either "failed", "cancelled" or "success".<br>[<br>{“operationid”: “opid-11ee…”,<br>“status”: “cancelled”},<br>{“operationid”: “opid-9876”, “status”: ”failed”},<br>{“operationid”: “opid-0e0e”,<br>“status”:”success”,<br>“execution_time”:”25”,<br>“result”: {“txid”:”af3887654…”,...}<br>},<br>]
|
||||
z_getoperationresult <br>| [operationids] | Return OperationStatus JSON objects for all completed operations the node is currently aware of, and then remove the operation from memory.<br><br>Operationids is an optional array to filter which operations you want to receive status objects for.<br><br>Output is a list of operation status objects, where the status is either "failed", "cancelled" or "success".<br>[<br>{“operationid”: “opid-11ee…”,<br>“status”: “cancelled”},<br>{“operationid”: “opid-9876”, “status”: ”failed”},<br>{“operationid”: “opid-0e0e”,<br>“status”:”success”,<br>“execution_time”:”25”,<br>“result”: {“txid”:”af3887654…”,...}<br>},<br>]<br><br> Examples:<br>zcash-cli z_getoperationresult '["opid-8120fa20-5ee7-4587-957b-f2579c2d882b"]'<br> zcash-cli z_getoperationresult
|
||||
z_getoperationstatus <br>| [operationids] | Return OperationStatus JSON objects for all operations the node is currently aware of.<br><br>Operationids is an optional array to filter which operations you want to receive status objects for.<br><br>Output is a list of operation status objects.<br>[<br>{“operationid”: “opid-12ee…”,<br>“status”: “queued”},<br>{“operationid”: “opd-098a…”, “status”: ”executing”},<br>{“operationid”: “opid-9876”, “status”: ”failed”}<br>]<br><br>When the operation succeeds, the status object will also include the result.<br><br>{“operationid”: “opid-0e0e”,<br>“status”:”success”,<br>“execution_time”:”25”,<br>“result”: {“txid”:”af3887654…”,...}<br>}
|
||||
z_listoperationids <br>| [state] | Return a list of operationids for all operations which the node is currently aware of.<br><br>State is an optional string parameter to filter the operations you want listed by their state. Acceptable parameter values are ‘queued’, ‘executing’, ‘success’, ‘failed’, ‘cancelled’.<br><br>[“opid-0e0e…”, “opid-1af4…”, … ]
|
||||
|
||||
@@ -112,6 +113,7 @@ Zcash error codes are defined in https://github.com/zcash/zcash/blob/master/src/
|
||||
|
||||
RPC_INVALID_PARAMETER (-8) | _Invalid, missing or duplicate parameter_
|
||||
---------------------------| -------------------------------------------------
|
||||
"Minconf cannot be zero when sending from zaddr" | Cannot accept minimum confirmation value of zero when sending from zaddr.
|
||||
"Minconf cannot be negative" | Cannot accept negative minimum confirmation number.
|
||||
"Minimum number of confirmations cannot be less than 0" | Cannot accept negative minimum confirmation number.
|
||||
"From address parameter missing" | Missing an address to send funds from.
|
||||
@@ -157,7 +159,7 @@ RPC_WALLET_ERROR (-4) | _Unspecified problem with wallet_
|
||||
"Could not find previous JoinSplit anchor" | Try restarting node with `-reindex`.
|
||||
"Error decrypting output note of previous JoinSplit: __" |
|
||||
"Could not find witness for note commitment" | Try restarting node with `-rescan`.
|
||||
"Witness for note commitment is null" | Missing witness for note commitement.
|
||||
"Witness for note commitment is null" | Missing witness for note commitment.
|
||||
"Witness for spendable note does not have same anchor as change input" | Invalid anchor for spendable note witness.
|
||||
"Not enough funds to pay miners fee" | Retry with sufficient funds.
|
||||
"Missing hex data for raw transaction" | Raw transaction data is null.
|
||||
|
||||
107
doc/payment-disclosure.md
Normal file
107
doc/payment-disclosure.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Payment Disclosure (Experimental Feature)
|
||||
|
||||
**Summary**
|
||||
|
||||
Use RPC calls `z_getpaymentdisclosure` and `z_validatepaymentdisclosure` to reveal details of a shielded payment.
|
||||
|
||||
**Who should read this document**
|
||||
|
||||
Frequent users of shielded transactions, payment processors, exchanges, block explorer
|
||||
|
||||
### Experimental Feature
|
||||
|
||||
This is an experimental feature. Enable it by launching `zcashd` with flags:
|
||||
|
||||
zcashd -experimentalfeatures -paymentdisclosure -debug=paymentdisclosure -txindex=1
|
||||
|
||||
These flags can also be set as options in `zcash.conf`.
|
||||
|
||||
All nodes that generate or validate payment disclosures must run with `txindex=1` enabled.
|
||||
|
||||
### Background
|
||||
|
||||
Payment Disclosure is an implementation of the work-in-progress Payment Disclosure ZIP [1].
|
||||
|
||||
The ZIP describes a method of proving that a payment was sent to a shielded address. In the typical case, this means enabling a sender to present a proof that they transferred funds to a recipient's shielded address.
|
||||
|
||||
[1] https://github.com/zcash/zips/pull/119
|
||||
|
||||
### Example Use Case
|
||||
|
||||
Alice the customer sends 10 ZEC to Bob the merchant at the shielded address shown on their website. However, Bob is not sure if he received the funds.
|
||||
|
||||
Alice's node is running with payment disclosure enabled, so Alice generates a payment disclosure and provides it to Bob, who verifies the payment was made.
|
||||
|
||||
If Bob is a bad merchant, Alice can present the payment disclosure to a third party to validate that payment was indeed made.
|
||||
|
||||
### Solution
|
||||
|
||||
A payment disclosure can be generated for any output of a JoinSplit using the RPC call:
|
||||
|
||||
z_getpaymentdisclosure txid js_index output_index (message)
|
||||
|
||||
An optional message can be supplied. This could be used for a refund address or some other reference, as currently it is not common practice to (ahead of time) include a refund address in the memo field when making a payment.
|
||||
|
||||
To validate a payment disclosure, the following RPC call can be used:
|
||||
|
||||
z_validatepaymentdisclosure hexdata
|
||||
|
||||
### Example
|
||||
|
||||
Generate a payment disclosure for the first joinsplit, second output (index starts from zero):
|
||||
|
||||
zcash-cli z_getpaymentdisclosure 79189528d611e811a1c7bb0358dd31343033d14b4c1e998d7c4799c40f8b652b 0 1 "Hello"
|
||||
|
||||
This returns a payment disclosure in the form of a hex string:
|
||||
|
||||
706462ff000a3722aafa8190cdf9710bfad6da2af6d3a74262c1fc96ad47df814b0cd5641c2b658b0fc499477c8d991e4c4bd133303431dd5803bbc7a111e811d6289518790000000000000000017e861adb829d8cb1cbcf6330b8c2e25fb0d08041a67a857815a136f0227f8a5342bce5b3c0d894e2983000eb594702d3c1580817d0374e15078528e56bb6f80c0548656c6c6f59a7085395c9e706d82afe3157c54ad4ae5bf144fcc774a8d9c921c58471402019c156ec5641e2173c4fb6467df5f28530dc4636fa71f4d0e48fc5c560fac500
|
||||
|
||||
To validate the payment disclosure:
|
||||
|
||||
zcash-cli z_validatepaymentdisclosure HEXDATA
|
||||
|
||||
This returns data related to the payment and the payment disclosure:
|
||||
|
||||
{
|
||||
"txid": "79189528d611e811a1c7bb0358dd31343033d14b4c1e998d7c4799c40f8b652b",
|
||||
"jsIndex": 0,
|
||||
"outputIndex": 1,
|
||||
"version": 0,
|
||||
"onetimePrivKey": "1c64d50c4b81df47ad96fcc16242a7d3f62adad6fa0b71f9cd9081faaa22370a",
|
||||
"message": "Hello",
|
||||
"joinSplitPubKey": "d1c465d16166b602992479acfac18e87dc18065f6cefde6a002e70bc371b9faf",
|
||||
"signatureVerified": true,
|
||||
"paymentAddress": "ztaZJXy8iX8nrk2ytXKDBoTWqPkhQcj6E2ifARnD3wfkFwsxXs5SoX7NGmrjkzSiSKn8VtLHTJae48vX5NakvmDhtGNY5eb",
|
||||
"memo": "f600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||||
"value": 12.49900000,
|
||||
"commitmentMatch": true,
|
||||
"valid": true
|
||||
}
|
||||
|
||||
The `signatureVerified` field confirms that the payment disclosure was generated and signed with the joinSplitPrivKey, which should only be known by the node generating and sending the transaction 7918...652b in question.
|
||||
|
||||
### Where is the data stored?
|
||||
|
||||
For all nodes, payment disclosure does not touch `wallet.dat` in any way.
|
||||
|
||||
For nodes that only validate payment disclosures, no data is stored locally.
|
||||
|
||||
For nodes that generate payment disclosures, a LevelDB database is created in the node's datadir. For most users, this would be in the folder:
|
||||
|
||||
$HOME/.zcash/paymentdisclosure
|
||||
|
||||
If you decide you don't want to use payment disclosure, it is safe to shut down your node and delete the database folder.
|
||||
|
||||
### Security Properties
|
||||
|
||||
Please consult the work-in-progress ZIP for details about the protocol, security properties and caveats.
|
||||
|
||||
### Reminder
|
||||
|
||||
Feedback is most welcome!
|
||||
|
||||
This is an experimental feature so there are no guarantees that the protocol, database format, RPC interface etc. will remain the same in the future.
|
||||
|
||||
### Notes
|
||||
|
||||
Currently there is no user friendly way to help senders identify which joinsplit output index maps to a given payment they made. It is possible to construct this from `debug.log`. Ideas and feedback are most welcome on how to improve the user experience.
|
||||
8
doc/reducing-memory-usage.md
Normal file
8
doc/reducing-memory-usage.md
Normal file
@@ -0,0 +1,8 @@
|
||||
In-memory caches
|
||||
----------------
|
||||
|
||||
The size of some in-memory caches can be reduced. As caches trade off memory usage for performance, usually reducing these have a negative effect on performance.
|
||||
|
||||
- `-dbcache=<n>` - the UTXO database cache size, this defaults to `450` (`100` before 1.0.15). The unit is MiB (where 1 GiB = 1024 MiB).
|
||||
- The minimum value for `-dbcache` is 4.
|
||||
- A lower dbcache make initial sync time much longer. After the initial sync, the effect is less pronounced for most use-cases, unless fast validation of blocks is important such as for mining.
|
||||
6
doc/release-notes.md
Normal file
6
doc/release-notes.md
Normal file
@@ -0,0 +1,6 @@
|
||||
(note: this is a temporary file, to be added-to by anybody, and moved to
|
||||
release-notes at release time)
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
11
doc/release-notes/release-notes-1.0.10-1.md
Normal file
11
doc/release-notes/release-notes-1.0.10-1.md
Normal file
@@ -0,0 +1,11 @@
|
||||
Jack Grigg (1):
|
||||
Disable building Proton in Gitian
|
||||
|
||||
Sean Bowe (2):
|
||||
Revert "Remove an unneeded version workaround as per @str4d's review comment."
|
||||
Revert "Delete old protocol version constants and simplify code that used them."
|
||||
|
||||
Simon Liu (2):
|
||||
make-release.py: Versioning changes for 1.0.10-1.
|
||||
make-release.py: Updated manpages for 1.0.10-1.
|
||||
|
||||
79
doc/release-notes/release-notes-1.0.10.md
Normal file
79
doc/release-notes/release-notes-1.0.10.md
Normal file
@@ -0,0 +1,79 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Signature validation using libsecp256k1
|
||||
---------------------------------------
|
||||
|
||||
ECDSA signatures inside Zcash transactions now use validation using
|
||||
[https://github.com/bitcoin/secp256k1](libsecp256k1) instead of OpenSSL.
|
||||
|
||||
Depending on the platform, this means a significant speedup for raw signature
|
||||
validation speed. The advantage is largest on x86_64, where validation is over
|
||||
five times faster. In practice, this translates to a raw reindexing and new
|
||||
block validation times that are less than half of what it was before.
|
||||
|
||||
Libsecp256k1 has undergone very extensive testing and validation upstream.
|
||||
|
||||
A side effect of this change is that libconsensus no longer depends on OpenSSL.
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Boris Hajduk (1):
|
||||
documentatin z_validateaddress was missing param
|
||||
|
||||
Daira Hopwood (8):
|
||||
Delete old protocol version constants and simplify code that used them. fixes #2244
|
||||
Remove an unneeded version workaround as per @str4d's review comment.
|
||||
Remove unneeded lax ECDSA signature verification.
|
||||
Strict DER signatures are always enforced; remove the flag and code that used it.
|
||||
Repair tests for strict DER signatures. While we're at it, repair a similar test for CLTV, and make the repaired RPC tests run by default.
|
||||
Make transaction test failures print the comments preceding the test JSON.
|
||||
Fix a comment that was made stale before launch by #1016 (commit 542da61).
|
||||
Delete test that is redundant and inapplicable to Zcash.
|
||||
|
||||
Jack Grigg (20):
|
||||
Fix incorrect locking in CCryptoKeyStore
|
||||
Use AtomicTimer for metrics screen thread count
|
||||
Revert "Fix secp256k1 test compilation"
|
||||
Squashed 'src/secp256k1/' changes from 22f60a6..84973d3
|
||||
Fix potential overflows in ECDSA DER parsers
|
||||
Rename FALLBACK_DOWNLOAD_PATH to PRIORITY_DOWNLOAD_PATH
|
||||
Add test for incorrect consensus logic
|
||||
Correct consensus logic in ContextualCheckInputs
|
||||
Add comments
|
||||
Update Debian copyright list
|
||||
Specify ECDSA constant sizes as constants
|
||||
Remove redundant `= 0` initialisations
|
||||
Ensure that ECDSA constant sizes are correctly-sized
|
||||
Add test for -mempooltxinputlimit
|
||||
Hold an ECCVerifyHandle in zcash-gtest
|
||||
Additional testing of -mempooltxinputlimit
|
||||
Fix comment
|
||||
Use sendfrom for both t-addr calls
|
||||
make-release.py: Versioning changes for 1.0.10.
|
||||
make-release.py: Updated manpages for 1.0.10.
|
||||
|
||||
Kevin Pan (1):
|
||||
"getblocktemplate" could work without wallet
|
||||
|
||||
Pieter Wuille (2):
|
||||
Update key.cpp to new secp256k1 API
|
||||
Switch to libsecp256k1-based validation for ECDSA
|
||||
|
||||
Simon Liu (5):
|
||||
Fix intermediate vpub_new leakage in multi joinsplit tx (#1360)
|
||||
Add option 'mempooltxinputlimit' so the mempool can reject a transaction based on the number of transparent inputs.
|
||||
Check mempooltxinputlimit when creating a transaction to avoid local mempool rejection.
|
||||
Partial revert & fix for commit 9e84b5a ; code block in wrong location.
|
||||
Fix #b1eb4f2 so test checks sendfrom as originally intended.
|
||||
|
||||
Wladimir J. van der Laan (2):
|
||||
Use real number of cores for default -par, ignore virtual cores
|
||||
Remove ChainParams::DefaultMinerThreads
|
||||
|
||||
kozyilmaz (3):
|
||||
[macOS] system linker does not support “--version” option but only “-v”
|
||||
option to disable building libraries (zcutil/build.sh)
|
||||
support per platform filename and hash setting for dependencies
|
||||
|
||||
44
doc/release-notes/release-notes-1.0.11-rc1.md
Normal file
44
doc/release-notes/release-notes-1.0.11-rc1.md
Normal file
@@ -0,0 +1,44 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (2):
|
||||
make-release.py: Versioning changes for 1.0.11-rc1.
|
||||
make-release.py: Updated manpages for 1.0.11-rc1.
|
||||
|
||||
Daira Hopwood (7):
|
||||
Clean up imports to be pyflakes-checkable. fixes #2450
|
||||
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
|
||||
Cosmetics (trailing whitespace, comment conventions, etc.)
|
||||
Alert 1004 (version 1.0.10 only)
|
||||
Remove UPnP support. fixes #2500
|
||||
Change wording in Security Warnings section of README.md.
|
||||
Document our criteria for adding CI workers. closes #2499
|
||||
|
||||
Jack Grigg (15):
|
||||
Pull in temporary release notes during the release process
|
||||
Ansible playbook for installing Zcash dependencies and Buildbot worker
|
||||
Variable overrides for Debian, Ubuntu and Fedora
|
||||
Variable overrides for FreeBSD
|
||||
Simplify Python installation, inform user if they need to manually configure
|
||||
Add test for issue #2444
|
||||
Add Buildbot worker setup to Ansible playbook
|
||||
Add steps for setting up a latent worker on Amazon EC2
|
||||
Add pyblake2 to required Python modules
|
||||
Remove Buildbot version from host file
|
||||
Add a separate Buildbot host info template for EC2
|
||||
Add pyflakes to required Python modules
|
||||
Add block download progress to metrics UI
|
||||
Correct and extend EstimateNetHeightInner tests
|
||||
Improve network height estimation
|
||||
|
||||
Simon Liu (3):
|
||||
Closes #2446 by adding generated field to listunspent.
|
||||
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
|
||||
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Add WWW-Authenticate header to 401 response
|
||||
|
||||
practicalswift (1):
|
||||
Net: Fix resource leak in ReadBinaryFile(...)
|
||||
|
||||
47
doc/release-notes/release-notes-1.0.11.md
Normal file
47
doc/release-notes/release-notes-1.0.11.md
Normal file
@@ -0,0 +1,47 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (3):
|
||||
make-release.py: Versioning changes for 1.0.11-rc1.
|
||||
make-release.py: Updated manpages for 1.0.11-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.11-rc1.
|
||||
|
||||
Daira Hopwood (7):
|
||||
Clean up imports to be pyflakes-checkable. fixes #2450
|
||||
For unused variables reported by pyflakes, either remove the variable, suppress the warning, or fix a bug (if the wrong variable was used). refs #2450
|
||||
Cosmetics (trailing whitespace, comment conventions, etc.)
|
||||
Alert 1004 (version 1.0.10 only)
|
||||
Remove UPnP support. fixes #2500
|
||||
Change wording in Security Warnings section of README.md.
|
||||
Document our criteria for adding CI workers. closes #2499
|
||||
|
||||
Jack Grigg (17):
|
||||
Pull in temporary release notes during the release process
|
||||
Ansible playbook for installing Zcash dependencies and Buildbot worker
|
||||
Variable overrides for Debian, Ubuntu and Fedora
|
||||
Variable overrides for FreeBSD
|
||||
Simplify Python installation, inform user if they need to manually configure
|
||||
Add test for issue #2444
|
||||
Add Buildbot worker setup to Ansible playbook
|
||||
Add steps for setting up a latent worker on Amazon EC2
|
||||
Add pyblake2 to required Python modules
|
||||
Remove Buildbot version from host file
|
||||
Add a separate Buildbot host info template for EC2
|
||||
Add pyflakes to required Python modules
|
||||
Add block download progress to metrics UI
|
||||
Correct and extend EstimateNetHeightInner tests
|
||||
Improve network height estimation
|
||||
make-release.py: Versioning changes for 1.0.11.
|
||||
make-release.py: Updated manpages for 1.0.11.
|
||||
|
||||
Simon Liu (3):
|
||||
Closes #2446 by adding generated field to listunspent.
|
||||
Fixes #2519. When sending from a zaddr, minconf cannot be zero.
|
||||
Fixes #2480. Null entry in map was dereferenced leading to a segfault.
|
||||
|
||||
Wladimir J. van der Laan (1):
|
||||
rpc: Add WWW-Authenticate header to 401 response
|
||||
|
||||
practicalswift (1):
|
||||
Net: Fix resource leak in ReadBinaryFile(...)
|
||||
|
||||
57
doc/release-notes/release-notes-1.0.12-rc1.md
Normal file
57
doc/release-notes/release-notes-1.0.12-rc1.md
Normal file
@@ -0,0 +1,57 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel (1):
|
||||
add examples to z_getoperationresult
|
||||
|
||||
Ariel Gabizon (1):
|
||||
add load-wallet benchmark
|
||||
|
||||
Bjorn Hjortsberg (2):
|
||||
Do not warn on built in declaration mismatch
|
||||
Remove deprecated exception specification
|
||||
|
||||
Jack Grigg (20):
|
||||
ci-workers: Enable pipelining, and use root to set admin and host details
|
||||
Variable overrides for Arch Linux
|
||||
Rationalize currency unit to "ZEC"
|
||||
ci-workers: Fail if Python is not version 2.7
|
||||
ci-workers: Variable overrides and process tweaks for CentOS 7
|
||||
Add build progress to the release script if progressbar module is available
|
||||
Add hotfix support to release script
|
||||
Document the hotfix release process
|
||||
Enforce sequential hotfix versioning
|
||||
Benchmark time to call sendtoaddress with many UTXOs
|
||||
Fix bug in benchmark data generation script
|
||||
Adjust instructions for UTXO dataset creation
|
||||
Add GitHub release notes to release process
|
||||
Clarify branching and force-building operations in hotfix process
|
||||
Update user guide translations as part of release process
|
||||
make-release.py: Send stderr to stdout
|
||||
List dependencies for release script in release process doc
|
||||
Additional test cases for importprivkey RPC test
|
||||
make-release.py: Versioning changes for 1.0.12-rc1.
|
||||
make-release.py: Updated manpages for 1.0.12-rc1.
|
||||
|
||||
Jason Davies (1):
|
||||
Fix deprecation policy comment.
|
||||
|
||||
Nathan Wilcox (5):
|
||||
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
|
||||
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
|
||||
[tests pass] Output address on new key import.
|
||||
Add a new requirement that `importprivkey` API is idempotent.
|
||||
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
|
||||
|
||||
Ross Nicoll (1):
|
||||
Rationalize currency unit to "BTC"
|
||||
|
||||
Simon Liu (3):
|
||||
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
|
||||
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
|
||||
Implement RPC shield_coinbase #2448.
|
||||
|
||||
kpcyrd (2):
|
||||
Fetch params from ipfs if possible
|
||||
Prefer wget over ipfs
|
||||
|
||||
65
doc/release-notes/release-notes-1.0.12.md
Normal file
65
doc/release-notes/release-notes-1.0.12.md
Normal file
@@ -0,0 +1,65 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel (1):
|
||||
add examples to z_getoperationresult
|
||||
|
||||
Ariel Gabizon (1):
|
||||
add load-wallet benchmark
|
||||
|
||||
Bjorn Hjortsberg (2):
|
||||
Do not warn on built in declaration mismatch
|
||||
Remove deprecated exception specification
|
||||
|
||||
Jack Grigg (26):
|
||||
ci-workers: Enable pipelining, and use root to set admin and host details
|
||||
Variable overrides for Arch Linux
|
||||
Rationalize currency unit to "ZEC"
|
||||
ci-workers: Fail if Python is not version 2.7
|
||||
ci-workers: Variable overrides and process tweaks for CentOS 7
|
||||
Add build progress to the release script if progressbar module is available
|
||||
Add hotfix support to release script
|
||||
Document the hotfix release process
|
||||
Enforce sequential hotfix versioning
|
||||
Benchmark time to call sendtoaddress with many UTXOs
|
||||
Fix bug in benchmark data generation script
|
||||
Adjust instructions for UTXO dataset creation
|
||||
Add GitHub release notes to release process
|
||||
Clarify branching and force-building operations in hotfix process
|
||||
Update user guide translations as part of release process
|
||||
make-release.py: Send stderr to stdout
|
||||
List dependencies for release script in release process doc
|
||||
Additional test cases for importprivkey RPC test
|
||||
make-release.py: Versioning changes for 1.0.12-rc1.
|
||||
make-release.py: Updated manpages for 1.0.12-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.12-rc1.
|
||||
Fix pyflakes warnings in RPC tests
|
||||
Individualise performance-measurements.sh errors for debugging
|
||||
Fix incorrect failure in memory benchmark
|
||||
make-release.py: Versioning changes for 1.0.12.
|
||||
make-release.py: Updated manpages for 1.0.12.
|
||||
|
||||
Jason Davies (1):
|
||||
Fix deprecation policy comment.
|
||||
|
||||
Nathan Wilcox (5):
|
||||
key_import_export rpc-test: verify that UTXO view co-evolves for nodes sharing a key.
|
||||
Add a new rpc-test-specified requirement: `importprivkey` outputs the associated address. (Test fails.)
|
||||
[tests pass] Output address on new key import.
|
||||
Add a new requirement that `importprivkey` API is idempotent.
|
||||
[tests pass] Ensure `importprivkey` outputs the address in case key is already imported.
|
||||
|
||||
Ross Nicoll (1):
|
||||
Rationalize currency unit to "BTC"
|
||||
|
||||
Simon Liu (5):
|
||||
Closes #2583. Exclude watch-only utxos from z_sendmany coin selection.
|
||||
Set up a clean chain. Delete redundant method wait_until_miner_sees() via use of sync_all().
|
||||
Implement RPC shield_coinbase #2448.
|
||||
Update which lock to synchronize on when calling GetBestAnchor().
|
||||
Closes #2637. Make z_shieldcoinbase an experimental feature where it can be enabled with: zcashd -experimentalfeatures -zshieldcoinbase.
|
||||
|
||||
kpcyrd (2):
|
||||
Fetch params from ipfs if possible
|
||||
Prefer wget over ipfs
|
||||
|
||||
88
doc/release-notes/release-notes-1.0.13-rc1.md
Normal file
88
doc/release-notes/release-notes-1.0.13-rc1.md
Normal file
@@ -0,0 +1,88 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (1):
|
||||
boost::format -> tinyformat
|
||||
|
||||
Bruno Arueira (1):
|
||||
Removes out bitcoin mention in favor for zcash
|
||||
|
||||
Cory Fields (1):
|
||||
httpserver: explicitly detach worker threads
|
||||
|
||||
Duke Leto (1):
|
||||
Update performance-measurements.sh
|
||||
|
||||
Jack Grigg (37):
|
||||
Squashed 'src/snark/' content from commit 9ada3f8
|
||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||
Add Ansible playbook for grind workers
|
||||
Add connections in BIP65 and BIP66 tests to the test manager
|
||||
Add benchmark for listunspent
|
||||
[Test] MiniNode: Implement JSDescription parsing
|
||||
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||
[Test] MiniNode: Implement Zcash block parsing
|
||||
[Test] MiniNode: Update protocol version and network magics
|
||||
[Test] MiniNode: Use Zcash PoW
|
||||
[Test] MiniNode: Fix coinbase creation
|
||||
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||
[Test] MiniNode: Implement Zcash coinbase
|
||||
Fix BIP65 and BIP66 tests
|
||||
Un-indent RPC test output in test runner
|
||||
Replace full-test-suite.sh with a new test suite driver script
|
||||
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||
Move check-security-hardening.sh into full_test_suite.py
|
||||
Add memory benchmark for validatelargetx
|
||||
Migrate libsnark test code to Google Test
|
||||
Remove test code corresponding to removed code
|
||||
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||
Update libsnark LDLIBS
|
||||
Add "make check" to libsnark that runs the Google Tests
|
||||
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||
Changes to get test_r1cs_ppzksnark passing
|
||||
Add bitcoin-util-test.py to full_test_suite.py
|
||||
Add stdout notice if any stage fails
|
||||
Add libsnark to "make clean"
|
||||
Ensure that libsnark is built first, so its headers are available
|
||||
Remove OpenSSL libraries from libsnark LDLIBS
|
||||
Add libsnark tests to full_test_suite.py
|
||||
Add --list-stages argument to full_test_suite.py
|
||||
Fix NPE in rpc_wallet_tests
|
||||
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||
Change auto-senescence cycle to 16 weeks
|
||||
|
||||
Jason Davies (1):
|
||||
Replace "bitcoin" with "Zcash".
|
||||
|
||||
Jay Graber (1):
|
||||
s/zcash/Zcash
|
||||
|
||||
Jonathan "Duke" Leto (1):
|
||||
Fix bug where performance-measurements.sh fails hards when given no args
|
||||
|
||||
João Barbosa (1):
|
||||
Improve shutdown process
|
||||
|
||||
Sean Bowe (5):
|
||||
Remove libsnark from depends system and integrate it into build system.
|
||||
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||
Refactor proof generation function.
|
||||
Add streaming prover.
|
||||
Integrate low memory prover.
|
||||
|
||||
Simon Liu (7):
|
||||
Replace 'bitcoin address' with 'zcash address'.
|
||||
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||
Closes #2263 fixing broken pipe error.
|
||||
Closes #2576. Update link to security info on z.cash website.
|
||||
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||
Add payment disclosure as experimental feature.
|
||||
|
||||
Wladimir J. van der Laan (4):
|
||||
Make HTTP server shutdown more graceful
|
||||
http: Wait for worker threads to exit
|
||||
http: Force-exit event loop after predefined time
|
||||
http: speed up shutdown
|
||||
|
||||
95
doc/release-notes/release-notes-1.0.13-rc2.md
Normal file
95
doc/release-notes/release-notes-1.0.13-rc2.md
Normal file
@@ -0,0 +1,95 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (1):
|
||||
boost::format -> tinyformat
|
||||
|
||||
Bruno Arueira (1):
|
||||
Removes out bitcoin mention in favor for zcash
|
||||
|
||||
Cory Fields (1):
|
||||
httpserver: explicitly detach worker threads
|
||||
|
||||
Duke Leto (1):
|
||||
Update performance-measurements.sh
|
||||
|
||||
Jack Grigg (44):
|
||||
Squashed 'src/snark/' content from commit 9ada3f8
|
||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||
Add Ansible playbook for grind workers
|
||||
Add connections in BIP65 and BIP66 tests to the test manager
|
||||
Add benchmark for listunspent
|
||||
[Test] MiniNode: Implement JSDescription parsing
|
||||
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||
[Test] MiniNode: Implement Zcash block parsing
|
||||
[Test] MiniNode: Update protocol version and network magics
|
||||
[Test] MiniNode: Use Zcash PoW
|
||||
[Test] MiniNode: Fix coinbase creation
|
||||
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||
[Test] MiniNode: Implement Zcash coinbase
|
||||
Fix BIP65 and BIP66 tests
|
||||
Un-indent RPC test output in test runner
|
||||
Replace full-test-suite.sh with a new test suite driver script
|
||||
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||
Move check-security-hardening.sh into full_test_suite.py
|
||||
Add memory benchmark for validatelargetx
|
||||
Migrate libsnark test code to Google Test
|
||||
Remove test code corresponding to removed code
|
||||
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||
Update libsnark LDLIBS
|
||||
Add "make check" to libsnark that runs the Google Tests
|
||||
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||
Changes to get test_r1cs_ppzksnark passing
|
||||
Add bitcoin-util-test.py to full_test_suite.py
|
||||
Add stdout notice if any stage fails
|
||||
Add libsnark to "make clean"
|
||||
Ensure that libsnark is built first, so its headers are available
|
||||
Remove OpenSSL libraries from libsnark LDLIBS
|
||||
Add libsnark tests to full_test_suite.py
|
||||
Add --list-stages argument to full_test_suite.py
|
||||
Fix NPE in rpc_wallet_tests
|
||||
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
|
||||
Change auto-senescence cycle to 16 weeks
|
||||
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
||||
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
||||
Mark libsnark includes as library includes
|
||||
Add the tar-pax option to automake
|
||||
make-release.py: Versioning changes for 1.0.13-rc2.
|
||||
make-release.py: Updated manpages for 1.0.13-rc2.
|
||||
|
||||
Jason Davies (1):
|
||||
Replace "bitcoin" with "Zcash".
|
||||
|
||||
Jay Graber (1):
|
||||
s/zcash/Zcash
|
||||
|
||||
Jonathan "Duke" Leto (1):
|
||||
Fix bug where performance-measurements.sh fails hards when given no args
|
||||
|
||||
João Barbosa (1):
|
||||
Improve shutdown process
|
||||
|
||||
Sean Bowe (5):
|
||||
Remove libsnark from depends system and integrate it into build system.
|
||||
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||
Refactor proof generation function.
|
||||
Add streaming prover.
|
||||
Integrate low memory prover.
|
||||
|
||||
Simon Liu (7):
|
||||
Replace 'bitcoin address' with 'zcash address'.
|
||||
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||
Closes #2263 fixing broken pipe error.
|
||||
Closes #2576. Update link to security info on z.cash website.
|
||||
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||
Add payment disclosure as experimental feature.
|
||||
|
||||
Wladimir J. van der Laan (4):
|
||||
Make HTTP server shutdown more graceful
|
||||
http: Wait for worker threads to exit
|
||||
http: Force-exit event loop after predefined time
|
||||
http: speed up shutdown
|
||||
|
||||
98
doc/release-notes/release-notes-1.0.13.md
Normal file
98
doc/release-notes/release-notes-1.0.13.md
Normal file
@@ -0,0 +1,98 @@
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Ariel Gabizon (1):
|
||||
boost::format -> tinyformat
|
||||
|
||||
Bruno Arueira (1):
|
||||
Removes out bitcoin mention in favor for zcash
|
||||
|
||||
Cory Fields (1):
|
||||
httpserver: explicitly detach worker threads
|
||||
|
||||
Duke Leto (1):
|
||||
Update performance-measurements.sh
|
||||
|
||||
Jack Grigg (47):
|
||||
Squashed 'src/snark/' content from commit 9ada3f8
|
||||
Add libsnark compile flag to not copy DEPINST to PREFIX
|
||||
Add Ansible playbook for grind workers
|
||||
Add connections in BIP65 and BIP66 tests to the test manager
|
||||
Add benchmark for listunspent
|
||||
[Test] MiniNode: Implement JSDescription parsing
|
||||
[Test] MiniNode: Implement v2 CTransaction parsing
|
||||
[Test] MiniNode: Implement Zcash block parsing
|
||||
[Test] MiniNode: Update protocol version and network magics
|
||||
[Test] MiniNode: Use Zcash PoW
|
||||
[Test] MiniNode: Fix coinbase creation
|
||||
[Test] MiniNode: Coerce OP_PUSHDATA bytearrays to bytes
|
||||
[Test] MiniNode: Implement Zcash coinbase
|
||||
Fix BIP65 and BIP66 tests
|
||||
Un-indent RPC test output in test runner
|
||||
Replace full-test-suite.sh with a new test suite driver script
|
||||
Move ensure-no-dot-so-in-depends.py into full_test_suite.py
|
||||
Move check-security-hardening.sh into full_test_suite.py
|
||||
Add memory benchmark for validatelargetx
|
||||
Migrate libsnark test code to Google Test
|
||||
Remove test code corresponding to removed code
|
||||
Add alt_bn128 to QAP and Merkle tree gadget tests
|
||||
Update libsnark LDLIBS
|
||||
Add "make check" to libsnark that runs the Google Tests
|
||||
Add "make libsnark-tests" that runs libsnark's "make check"
|
||||
Changes to get test_r1cs_ppzksnark passing
|
||||
Add bitcoin-util-test.py to full_test_suite.py
|
||||
Add stdout notice if any stage fails
|
||||
Add libsnark to "make clean"
|
||||
Ensure that libsnark is built first, so its headers are available
|
||||
Remove OpenSSL libraries from libsnark LDLIBS
|
||||
Add libsnark tests to full_test_suite.py
|
||||
Add --list-stages argument to full_test_suite.py
|
||||
Fix NPE in rpc_wallet_tests
|
||||
make-release.py: Versioning changes for 1.0.13-rc1.
|
||||
make-release.py: Updated manpages for 1.0.13-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.13-rc1.
|
||||
Change auto-senescence cycle to 16 weeks
|
||||
Move libsnark from DIST_SUBDIRS into EXTRA_DIST
|
||||
Pass correct dependencies path to libsnark from both Gitian and build.sh
|
||||
Mark libsnark includes as library includes
|
||||
Add the tar-pax option to automake
|
||||
make-release.py: Versioning changes for 1.0.13-rc2.
|
||||
make-release.py: Updated manpages for 1.0.13-rc2.
|
||||
make-release.py: Updated release notes and changelog for 1.0.13-rc2.
|
||||
make-release.py: Versioning changes for 1.0.13.
|
||||
make-release.py: Updated manpages for 1.0.13.
|
||||
|
||||
Jason Davies (1):
|
||||
Replace "bitcoin" with "Zcash".
|
||||
|
||||
Jay Graber (1):
|
||||
s/zcash/Zcash
|
||||
|
||||
Jonathan "Duke" Leto (1):
|
||||
Fix bug where performance-measurements.sh fails hards when given no args
|
||||
|
||||
João Barbosa (1):
|
||||
Improve shutdown process
|
||||
|
||||
Sean Bowe (5):
|
||||
Remove libsnark from depends system and integrate it into build system.
|
||||
Remove crusty old "loadVerifyingKey"/"loadProvingKey" APIs and associated invariants.
|
||||
Refactor proof generation function.
|
||||
Add streaming prover.
|
||||
Integrate low memory prover.
|
||||
|
||||
Simon Liu (7):
|
||||
Replace 'bitcoin address' with 'zcash address'.
|
||||
Closes #2639. z_shieldcoinbase is now supported, no longer experimental.
|
||||
Closes #2263 fixing broken pipe error.
|
||||
Closes #2576. Update link to security info on z.cash website.
|
||||
Closes #2639. Adds optional limit parameter with a default value of 50.
|
||||
Fix an issue where qa test wallet_shieldcoinbase could hang.
|
||||
Add payment disclosure as experimental feature.
|
||||
|
||||
Wladimir J. van der Laan (4):
|
||||
Make HTTP server shutdown more graceful
|
||||
http: Wait for worker threads to exit
|
||||
http: Force-exit event loop after predefined time
|
||||
http: speed up shutdown
|
||||
|
||||
156
doc/release-notes/release-notes-1.0.14-rc1.md
Normal file
156
doc/release-notes/release-notes-1.0.14-rc1.md
Normal file
@@ -0,0 +1,156 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Incoming viewing keys
|
||||
---------------------
|
||||
|
||||
Support for incoming viewing keys, as described in
|
||||
[the Zcash protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf),
|
||||
has been added to the wallet.
|
||||
|
||||
Use the `z_exportviewingkey` RPC method to obtain the incoming viewing key for a
|
||||
z-address in a node's wallet. For Sprout z-addresses, these always begin with
|
||||
"ZiVK" (or "ZiVt" for testnet z-addresses). Use `z_importviewingkey` to import
|
||||
these into another node.
|
||||
|
||||
A node that possesses an incoming viewing key for a z-address can view all past
|
||||
transactions received by that address, as well as all future transactions sent
|
||||
to it, by using `z_listreceivedbyaddress`. They cannot spend any funds from the
|
||||
address. This is similar to the behaviour of "watch-only" t-addresses.
|
||||
|
||||
`z_gettotalbalance` now has an additional boolean parameter for including the
|
||||
balance of "watch-only" addresses (both transparent and shielded), which is set
|
||||
to `false` by default. `z_getbalance` has also been updated to work with
|
||||
watch-only addresses.
|
||||
|
||||
- **Caution:** for z-addresses, these balances will **not** be accurate if any
|
||||
funds have been sent from the address. This is because incoming viewing keys
|
||||
cannot detect spends, and so the "balance" is just the sum of all received
|
||||
notes, including ones that have been spent. Some future use-cases for incoming
|
||||
viewing keys will include synchronization data to keep their balances accurate
|
||||
(e.g. [#2542](https://github.com/zcash/zcash/issues/2542)).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Anthony Towns (1):
|
||||
Add configure check for -latomic
|
||||
|
||||
Cory Fields (12):
|
||||
c++11: don't throw from the reverselock destructor
|
||||
c++11: CAccountingEntry must be defined before use in a list
|
||||
c++11: fix libbdb build against libc++ in c++11 mode
|
||||
depends: use c++11
|
||||
depends: bump OSX toolchain
|
||||
build: Split hardening/fPIE options out
|
||||
build: define base filenames for use elsewhere in the buildsystem
|
||||
build: quiet annoying warnings without adding new ones
|
||||
build: fix Windows builds without pkg-config
|
||||
build: force a c++ standard to be specified
|
||||
build: warn about variable length arrays
|
||||
build: add --enable-werror option
|
||||
|
||||
Jack Grigg (36):
|
||||
Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
|
||||
Use g-prefixed coreutils commands if they are available
|
||||
Replace hard-coded defaults for HOST and BUILD with config.guess
|
||||
Remove manual -std=c++11 flag
|
||||
Replace "install -D" with "mkdir -p && install"
|
||||
Check if OpenMP is available before using it
|
||||
[libsnark] Use POSIX-compliant ar arguments
|
||||
Include endian-ness compatibility layer in Equihash implementation
|
||||
build: Split hardening/fPIE options out in Zcash-specific binaries
|
||||
Change --enable-werror to apply to all warnings, use it in build.sh
|
||||
Move Zcash flags into configure.ac
|
||||
ViewingKey -> ReceivingKey per zcash/zips#117
|
||||
Implement viewing key storage in the keystore
|
||||
Factor out common logic from CZCPaymentAddress and CZCSpendingKey
|
||||
Track net value entering and exiting the Sprout circuit
|
||||
Add Sprout value pool to getblock and getblockchaininfo
|
||||
Apply -fstack-protector-all to libsnark
|
||||
Add Rust and Proton to configure options printout
|
||||
Clarify operator precedence in serialization of nSproutValue
|
||||
Remove nSproutValue TODO from CDiskBlockIndex
|
||||
Add Base58 encoding of viewing keys
|
||||
Implement viewing key storage in the wallet
|
||||
Add RPC methods for exporting/importing viewing keys
|
||||
Update wallet logic to account for viewing keys
|
||||
Add watch-only support to Zcash RPC methods
|
||||
Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
|
||||
Cleanup: Add braces for clarity
|
||||
Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys
|
||||
Add release notes for incoming viewing keys
|
||||
Create release notes starting from the previous non-beta non-RC release
|
||||
release-notes.py: Remove unnecessary parameter
|
||||
Regenerate previous release notes to conform to new format
|
||||
Exclude beta and RC release notes from author tallies
|
||||
Fix pyflakes warnings in zkey_import_export RPC test
|
||||
make-release.py: Versioning changes for 1.0.14-rc1.
|
||||
make-release.py: Updated manpages for 1.0.14-rc1.
|
||||
|
||||
Jay Graber (3):
|
||||
Add cli and rpc examples for z_sendmany
|
||||
Fix cli help result for z_shieldcoinbase
|
||||
Add rpc test that exercises z_importkey
|
||||
|
||||
Jonas Schnelli (1):
|
||||
Add compile and link options echo to configure
|
||||
|
||||
Luke Dashjr (4):
|
||||
depends: Use curl for fetching on Linux
|
||||
Travis: Use curl rather than wget for Mac SDK
|
||||
Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl
|
||||
Travis: Use Blue Box VMs for IPv6 loopback support
|
||||
|
||||
MarcoFalke (2):
|
||||
Fix url in .travis.yml
|
||||
[depends] builders: No need to set -L and --location for curl
|
||||
|
||||
Per Grön (2):
|
||||
Deduplicate test utility method wait_and_assert_operationid_status
|
||||
Print result of RPC call in test only when PYTHON_DEBUG is set
|
||||
|
||||
René Nyffenegger (1):
|
||||
Use AC_ARG_VAR to set ARFLAGS.
|
||||
|
||||
Simon Liu (5):
|
||||
RPC dumpwallet and z_exportwallet updated to no longer allow overwriting an existing file.
|
||||
Add documentation for shielding coinbase utxos.
|
||||
Add documentation for payment disclosure.
|
||||
Closes #2759. Fixes broken pipe error with QA test wallet.py.
|
||||
Closes #2746. Payment disclosure blobs now use 'zpd:' prefix.
|
||||
|
||||
Wladimir J. van der Laan (6):
|
||||
build: Enable C++11 build, require C++11 compiler
|
||||
build: update ax_cxx_compile_stdcxx to serial 4
|
||||
test: Remove java comparison tool
|
||||
build: Remove check for `openssl/ec.h`
|
||||
devtools: Check for high-entropy ASLR in 64-bit PE executables
|
||||
build: supply `-Wl,--high-entropy-va`
|
||||
|
||||
daniel (1):
|
||||
add powerpc build support for openssl lib
|
||||
|
||||
fanquake (3):
|
||||
[build-aux] Update Boost & check macros to latest serials
|
||||
[depends] Add -stdlib=libc++ to darwin CXX flags
|
||||
[depends] Set OSX_MIN_VERSION to 10.8
|
||||
|
||||
kozyilmaz (1):
|
||||
empty spaces in PATH variable cause build failure
|
||||
|
||||
syd (13):
|
||||
Upgrade googletest to 1.8.0
|
||||
Get the sec-hard tests to run correctly.
|
||||
Update libsodium from 1.0.11 to 1.0.15
|
||||
Remove Boost conditional compilation.
|
||||
Update to address @daira comments wrt fixing configure.ac
|
||||
Get rid of consensus.fPowAllowMinDifficultyBlocks.
|
||||
Don't compile libgtest.a when building libsnark.
|
||||
Add gtests to .gitignore
|
||||
Get rid of fp3 from libsnark, it is not used.
|
||||
InitGoogleMock instead of InitGoogleTest per CR
|
||||
Get rid of underscore prefixes for include guards.
|
||||
Rename bash completion files so that they refer to zcash and not bitcoin.
|
||||
Fix libsnark test failure.
|
||||
|
||||
160
doc/release-notes/release-notes-1.0.14.md
Normal file
160
doc/release-notes/release-notes-1.0.14.md
Normal file
@@ -0,0 +1,160 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Incoming viewing keys
|
||||
---------------------
|
||||
|
||||
Support for incoming viewing keys, as described in
|
||||
[the Zcash protocol spec](https://github.com/zcash/zips/blob/master/protocol/protocol.pdf),
|
||||
has been added to the wallet.
|
||||
|
||||
Use the `z_exportviewingkey` RPC method to obtain the incoming viewing key for a
|
||||
z-address in a node's wallet. For Sprout z-addresses, these always begin with
|
||||
"ZiVK" (or "ZiVt" for testnet z-addresses). Use `z_importviewingkey` to import
|
||||
these into another node.
|
||||
|
||||
A node that possesses an incoming viewing key for a z-address can view all past
|
||||
transactions received by that address, as well as all future transactions sent
|
||||
to it, by using `z_listreceivedbyaddress`. They cannot spend any funds from the
|
||||
address. This is similar to the behaviour of "watch-only" t-addresses.
|
||||
|
||||
`z_gettotalbalance` now has an additional boolean parameter for including the
|
||||
balance of "watch-only" addresses (both transparent and shielded), which is set
|
||||
to `false` by default. `z_getbalance` has also been updated to work with
|
||||
watch-only addresses.
|
||||
|
||||
- **Caution:** for z-addresses, these balances will **not** be accurate if any
|
||||
funds have been sent from the address. This is because incoming viewing keys
|
||||
cannot detect spends, and so the "balance" is just the sum of all received
|
||||
notes, including ones that have been spent. Some future use-cases for incoming
|
||||
viewing keys will include synchronization data to keep their balances accurate
|
||||
(e.g. [#2542](https://github.com/zcash/zcash/issues/2542)).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
Anthony Towns (1):
|
||||
Add configure check for -latomic
|
||||
|
||||
Cory Fields (12):
|
||||
c++11: don't throw from the reverselock destructor
|
||||
c++11: CAccountingEntry must be defined before use in a list
|
||||
c++11: fix libbdb build against libc++ in c++11 mode
|
||||
depends: use c++11
|
||||
depends: bump OSX toolchain
|
||||
build: Split hardening/fPIE options out
|
||||
build: define base filenames for use elsewhere in the buildsystem
|
||||
build: quiet annoying warnings without adding new ones
|
||||
build: fix Windows builds without pkg-config
|
||||
build: force a c++ standard to be specified
|
||||
build: warn about variable length arrays
|
||||
build: add --enable-werror option
|
||||
|
||||
Jack Grigg (40):
|
||||
Squashed 'src/secp256k1/' changes from 84973d3..6ad5cdb
|
||||
Use g-prefixed coreutils commands if they are available
|
||||
Replace hard-coded defaults for HOST and BUILD with config.guess
|
||||
Remove manual -std=c++11 flag
|
||||
Replace "install -D" with "mkdir -p && install"
|
||||
Check if OpenMP is available before using it
|
||||
[libsnark] Use POSIX-compliant ar arguments
|
||||
Include endian-ness compatibility layer in Equihash implementation
|
||||
build: Split hardening/fPIE options out in Zcash-specific binaries
|
||||
Change --enable-werror to apply to all warnings, use it in build.sh
|
||||
Move Zcash flags into configure.ac
|
||||
ViewingKey -> ReceivingKey per zcash/zips#117
|
||||
Implement viewing key storage in the keystore
|
||||
Factor out common logic from CZCPaymentAddress and CZCSpendingKey
|
||||
Track net value entering and exiting the Sprout circuit
|
||||
Add Sprout value pool to getblock and getblockchaininfo
|
||||
Apply -fstack-protector-all to libsnark
|
||||
Add Rust and Proton to configure options printout
|
||||
Clarify operator precedence in serialization of nSproutValue
|
||||
Remove nSproutValue TODO from CDiskBlockIndex
|
||||
Add Base58 encoding of viewing keys
|
||||
Implement viewing key storage in the wallet
|
||||
Add RPC methods for exporting/importing viewing keys
|
||||
Update wallet logic to account for viewing keys
|
||||
Add watch-only support to Zcash RPC methods
|
||||
Modify zcrawkeygen RPC method to set "zcviewingkey" to the viewing key
|
||||
Cleanup: Add braces for clarity
|
||||
Add cautions to z_getbalance and z_gettotalbalance help text about viewing keys
|
||||
Add release notes for incoming viewing keys
|
||||
Create release notes starting from the previous non-beta non-RC release
|
||||
release-notes.py: Remove unnecessary parameter
|
||||
Regenerate previous release notes to conform to new format
|
||||
Exclude beta and RC release notes from author tallies
|
||||
Fix pyflakes warnings in zkey_import_export RPC test
|
||||
make-release.py: Versioning changes for 1.0.14-rc1.
|
||||
make-release.py: Updated manpages for 1.0.14-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.14-rc1.
|
||||
Update release process
|
||||
make-release.py: Versioning changes for 1.0.14.
|
||||
make-release.py: Updated manpages for 1.0.14.
|
||||
|
||||
Jay Graber (3):
|
||||
Add cli and rpc examples for z_sendmany
|
||||
Fix cli help result for z_shieldcoinbase
|
||||
Add rpc test that exercises z_importkey
|
||||
|
||||
Jonas Schnelli (1):
|
||||
Add compile and link options echo to configure
|
||||
|
||||
Luke Dashjr (4):
|
||||
depends: Use curl for fetching on Linux
|
||||
Travis: Use curl rather than wget for Mac SDK
|
||||
Bugfix: depends/Travis: Use --location (follow redirects) and --fail [on HTTP error response] with curl
|
||||
Travis: Use Blue Box VMs for IPv6 loopback support
|
||||
|
||||
MarcoFalke (2):
|
||||
Fix url in .travis.yml
|
||||
[depends] builders: No need to set -L and --location for curl
|
||||
|
||||
Per Grön (2):
|
||||
Deduplicate test utility method wait_and_assert_operationid_status
|
||||
Print result of RPC call in test only when PYTHON_DEBUG is set
|
||||
|
||||
René Nyffenegger (1):
|
||||
Use AC_ARG_VAR to set ARFLAGS.
|
||||
|
||||
Simon Liu (5):
|
||||
RPC dumpwallet and z_exportwallet updated to no longer allow overwriting an existing file.
|
||||
Add documentation for shielding coinbase utxos.
|
||||
Add documentation for payment disclosure.
|
||||
Closes #2759. Fixes broken pipe error with QA test wallet.py.
|
||||
Closes #2746. Payment disclosure blobs now use 'zpd:' prefix.
|
||||
|
||||
Wladimir J. van der Laan (6):
|
||||
build: Enable C++11 build, require C++11 compiler
|
||||
build: update ax_cxx_compile_stdcxx to serial 4
|
||||
test: Remove java comparison tool
|
||||
build: Remove check for `openssl/ec.h`
|
||||
devtools: Check for high-entropy ASLR in 64-bit PE executables
|
||||
build: supply `-Wl,--high-entropy-va`
|
||||
|
||||
daniel (1):
|
||||
add powerpc build support for openssl lib
|
||||
|
||||
fanquake (3):
|
||||
[build-aux] Update Boost & check macros to latest serials
|
||||
[depends] Add -stdlib=libc++ to darwin CXX flags
|
||||
[depends] Set OSX_MIN_VERSION to 10.8
|
||||
|
||||
kozyilmaz (1):
|
||||
empty spaces in PATH variable cause build failure
|
||||
|
||||
syd (13):
|
||||
Upgrade googletest to 1.8.0
|
||||
Get the sec-hard tests to run correctly.
|
||||
Update libsodium from 1.0.11 to 1.0.15
|
||||
Remove Boost conditional compilation.
|
||||
Update to address @daira comments wrt fixing configure.ac
|
||||
Get rid of consensus.fPowAllowMinDifficultyBlocks.
|
||||
Don't compile libgtest.a when building libsnark.
|
||||
Add gtests to .gitignore
|
||||
Get rid of fp3 from libsnark, it is not used.
|
||||
InitGoogleMock instead of InitGoogleTest per CR
|
||||
Get rid of underscore prefixes for include guards.
|
||||
Rename bash completion files so that they refer to zcash and not bitcoin.
|
||||
Fix libsnark test failure.
|
||||
|
||||
165
doc/release-notes/release-notes-1.0.15-rc1.md
Normal file
165
doc/release-notes/release-notes-1.0.15-rc1.md
Normal file
@@ -0,0 +1,165 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
UTXO and note merging
|
||||
---------------------
|
||||
|
||||
In order to simplify the process of combining many small UTXOs and notes into a
|
||||
few larger ones, a new RPC method `z_mergetoaddress` has been added. It merges
|
||||
funds from t-addresses, z-addresses, or both, and sends them to a single
|
||||
t-address or z-address.
|
||||
|
||||
Unlike most other RPC methods, `z_mergetoaddress` operates over a particular
|
||||
quantity of UTXOs and notes, instead of a particular amount of ZEC. By default,
|
||||
it will merge 50 UTXOs and 10 notes at a time; these limits can be adjusted with
|
||||
the parameters `transparent_limit` and `shielded_limit`.
|
||||
|
||||
`z_mergetoaddress` also returns the number of UTXOs and notes remaining in the
|
||||
given addresses, which can be used to automate the merging process (for example,
|
||||
merging until the number of UTXOs falls below some value).
|
||||
|
||||
UTXO memory accounting
|
||||
----------------------
|
||||
|
||||
The default -dbcache has been changed in this release to 450MiB. Users can set -dbcache to a higher value (e.g. to keep the UTXO set more fully cached in memory). Users on low-memory systems (such as systems with 1GB or less) should consider specifying a lower value for this parameter.
|
||||
|
||||
Additional information relating to running on low-memory systems can be found here: [reducing-memory-usage.md](https://github.com/zcash/zcash/blob/master/doc/reducing-memory-usage.md).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
21E14 (1):
|
||||
Remove obsolete reference to CValidationState from UpdateCoins.
|
||||
|
||||
Alex Morcos (1):
|
||||
Implement helper class for CTxMemPoolEntry constructor
|
||||
|
||||
Ariel (2):
|
||||
add blake2b writer
|
||||
update SignatureHash according to Overwinter spec
|
||||
|
||||
Ashley Holman (1):
|
||||
TxMemPool: Change mapTx to a boost::multi_index_container
|
||||
|
||||
Cory Fields (2):
|
||||
chainparams: move CCheckpointData into chainparams.h
|
||||
chainparams: don't use std namespace
|
||||
|
||||
Daniel Kraft (1):
|
||||
Clean up chainparams some more.
|
||||
|
||||
Jack Grigg (38):
|
||||
Scope the ECDSA constant sizes to CPubKey / CKey classes
|
||||
Enable Bash completion for -exportdir
|
||||
Check chainValueZat when checking value pool monitoring
|
||||
Add missing namespace for boost::get
|
||||
Add viewing key prefix to regtest parameters
|
||||
zkey_import_export: Synchronize mempools before mining
|
||||
Use JoinSplitTestingSetup for Boost sighash tests
|
||||
Network upgrade activation mechanism
|
||||
Allow changing network upgrade parameters on regtest
|
||||
Test network upgrade logic
|
||||
Adjust rewind logic to use the network upgrade mechanism
|
||||
Add Overwinter to upgrade list
|
||||
Add method for fetching the next activation height after a given block height
|
||||
Use a boost::optional for nCachedBranchId
|
||||
Change UI/log status message for block rewinding
|
||||
Update quote from ZIP 200
|
||||
Update SignatureHash tests for transaction format changes
|
||||
Implement roll-back limit for reorganisation
|
||||
Add rollback limit to block index rewinding
|
||||
Remove mempool transactions which commit to an unmineable branch ID
|
||||
Remove P2WPKH and P2WSH from signing logic
|
||||
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
|
||||
Cleanup: Wrap function arguments
|
||||
Regenerate SignatureHash tests
|
||||
Make number of inputs configurable in validatelargetx test
|
||||
Use v3 transactions with caching for validatelargetx benchmark
|
||||
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
|
||||
Add branch IDs for current and next block to getblockchaininfo
|
||||
Check Equihash solution when loading block index
|
||||
Implement z_mergetoaddress for combining UTXOs and notes
|
||||
Gate z_mergetoaddress as an experimental feature
|
||||
Add z_mergetoaddress to release notes
|
||||
Check upgrade status in wallet_overwintertx RPC test
|
||||
Document that consensus.chaintip != consensus.nextblock just before an upgrade
|
||||
Regenerate sighash tests
|
||||
wallet_mergetoaddress: Add additional syncs to prevent race conditions
|
||||
make-release.py: Versioning changes for 1.0.15-rc1.
|
||||
make-release.py: Updated manpages for 1.0.15-rc1.
|
||||
|
||||
Jay Graber (8):
|
||||
Add getdeprecationinfo rpc call to return current version and deprecation block height.
|
||||
Make applicable only on mainnet
|
||||
Add upgrades field to RPC call getblockchaininfo
|
||||
Implement transaction expiry for Overwinter
|
||||
Add -txexpirydelta cli option
|
||||
Add mempool_tx_expiry.py test
|
||||
Add expiry to z_mergetoaddress
|
||||
Change rpc_tests to 21
|
||||
|
||||
Jonas Nick (1):
|
||||
Reduce unnecessary hashing in signrawtransaction
|
||||
|
||||
Jorge Timón (3):
|
||||
Chainparams: Introduce CreateGenesisBlock() static function
|
||||
Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams
|
||||
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
|
||||
|
||||
Marius Kjærstad (1):
|
||||
Changed http:// to https:// on some links
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Explicitly set tx.nVersion for the genesis block and mining tests
|
||||
|
||||
Matt Corallo (5):
|
||||
Add failing test checking timelocked-txn removal during reorg
|
||||
Fix removal of time-locked transactions during reorg
|
||||
Fix comment in removeForReorg
|
||||
Make indentation in ActivateBestChainStep readable
|
||||
removeForReorg calls once-per-disconnect-> once-per-reorg
|
||||
|
||||
Maxwell Gubler (1):
|
||||
Fix syntax examples for z_importwallet and export
|
||||
|
||||
Nicolas DORIER (1):
|
||||
Unit test for sighash caching
|
||||
|
||||
Pavel Vasin (1):
|
||||
remove unused NOBLKS_VERSION_{START,END} constants
|
||||
|
||||
Pieter Wuille (8):
|
||||
Add rewind logic to deal with post-fork software updates
|
||||
Support -checkmempool=N, which runs checks on average once every N transactions
|
||||
Report non-mandatory script failures correctly
|
||||
Refactor script validation to observe amounts
|
||||
BIP143: Verification logic
|
||||
BIP143: Signing logic
|
||||
Precompute sighashes
|
||||
Rename to PrecomputedTransactionData
|
||||
|
||||
Simon Liu (11):
|
||||
Fixes #2793. Backport commit f33afd3 to increase dbcache default.
|
||||
Add documentation about dbcache.
|
||||
Add note about dbcache to 1.0.15 release notes.
|
||||
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.
|
||||
Implementation of Overwinter transaction format ZIP 202.
|
||||
Add test to check malformed v1 transaction against Overwinter tx parser
|
||||
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
|
||||
Closes #2954 and #2959. Fixes Overwinter issues in sighash_tests.
|
||||
Add field nProtocolVersion to struct NetworkUpgrade.
|
||||
Overwinter peer management and network handshaking.
|
||||
Add python qa test overwinter_peer_management.
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track coinbase spends in CTxMemPoolEntry
|
||||
Don't call removeForReorg if DisconnectTip fails
|
||||
Fix removeForReorg to use MedianTimePast
|
||||
|
||||
jc (1):
|
||||
read hashReserved from disk block index
|
||||
|
||||
syd (2):
|
||||
Fix libsnark dependency build.
|
||||
Remove OSX and Windows files from Makefile + share directory.
|
||||
|
||||
209
doc/release-notes/release-notes-1.0.15.md
Normal file
209
doc/release-notes/release-notes-1.0.15.md
Normal file
@@ -0,0 +1,209 @@
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
Overwinter network upgrade
|
||||
--------------------------
|
||||
|
||||
The code preparations for the Overwinter network upgrade, as described in [ZIP
|
||||
200](https://github.com/zcash/zips/blob/master/zip-0200.rst), [ZIP
|
||||
201](https://github.com/zcash/zips/blob/master/zip-0201.rst), [ZIP
|
||||
202](https://github.com/zcash/zips/blob/master/zip-0202.rst), [ZIP
|
||||
203](https://github.com/zcash/zips/blob/master/zip-0203.rst), and [ZIP
|
||||
143](https://github.com/zcash/zips/blob/master/zip-0143.rst) are
|
||||
finished and included in this release. Overwinter will activate on testnet at
|
||||
height 207500, and can also be activated at a specific height in regtest mode
|
||||
by setting the config option `-nuparams=5ba81b19:HEIGHT`.
|
||||
|
||||
However, because the Overwinter activation height is not yet specified for
|
||||
mainnet, version 1.0.15 will behave similarly as other pre-Overwinter releases
|
||||
even after a future activation of Overwinter on the network. Upgrading from
|
||||
1.0.15 will be required in order to follow the Overwinter network upgrade on
|
||||
mainnet.
|
||||
|
||||
Overwinter transaction format
|
||||
-----------------------------
|
||||
|
||||
Once Overwinter has activated, transactions must use the new v3 format
|
||||
(including coinbase transactions). All RPC methods that create new transactions
|
||||
(such as `createrawtransaction` and `getblocktemplate`) will create v3
|
||||
transactions once the Overwinter activation height has been reached.
|
||||
|
||||
Overwinter transaction expiry
|
||||
-----------------------------
|
||||
|
||||
Overwinter transactions created by `zcashd` will also have a default expiry
|
||||
height set (the block height after which the transaction becomes invalid) of 20
|
||||
blocks after the height of the next block. This can be configured with the
|
||||
config option `-txexpirydelta`.
|
||||
|
||||
UTXO and note merging
|
||||
---------------------
|
||||
|
||||
In order to simplify the process of combining many small UTXOs and notes into a
|
||||
few larger ones, a new RPC method `z_mergetoaddress` has been added. It merges
|
||||
funds from t-addresses, z-addresses, or both, and sends them to a single
|
||||
t-address or z-address.
|
||||
|
||||
Unlike most other RPC methods, `z_mergetoaddress` operates over a particular
|
||||
quantity of UTXOs and notes, instead of a particular amount of ZEC. By default,
|
||||
it will merge 50 UTXOs and 10 notes at a time; these limits can be adjusted with
|
||||
the parameters `transparent_limit` and `shielded_limit`.
|
||||
|
||||
`z_mergetoaddress` also returns the number of UTXOs and notes remaining in the
|
||||
given addresses, which can be used to automate the merging process (for example,
|
||||
merging until the number of UTXOs falls below some value).
|
||||
|
||||
UTXO memory accounting
|
||||
----------------------
|
||||
|
||||
The default `-dbcache` has been changed in this release to 450MiB. Users can set
|
||||
`-dbcache` to a higher value (e.g. to keep the UTXO set more fully cached in
|
||||
memory). Users on low-memory systems (such as systems with 1GB or less) should
|
||||
consider specifying a lower value for this parameter.
|
||||
|
||||
Additional information relating to running on low-memory systems can be found
|
||||
here: [reducing-memory-usage.md](https://github.com/zcash/zcash/blob/master/doc/reducing-memory-usage.md).
|
||||
|
||||
Changelog
|
||||
=========
|
||||
|
||||
21E14 (1):
|
||||
Remove obsolete reference to CValidationState from UpdateCoins.
|
||||
|
||||
Alex Morcos (1):
|
||||
Implement helper class for CTxMemPoolEntry constructor
|
||||
|
||||
Ariel (2):
|
||||
add blake2b writer
|
||||
update SignatureHash according to Overwinter spec
|
||||
|
||||
Ashley Holman (1):
|
||||
TxMemPool: Change mapTx to a boost::multi_index_container
|
||||
|
||||
Cory Fields (2):
|
||||
chainparams: move CCheckpointData into chainparams.h
|
||||
chainparams: don't use std namespace
|
||||
|
||||
Daniel Kraft (1):
|
||||
Clean up chainparams some more.
|
||||
|
||||
Jack Grigg (43):
|
||||
Scope the ECDSA constant sizes to CPubKey / CKey classes
|
||||
Enable Bash completion for -exportdir
|
||||
Check chainValueZat when checking value pool monitoring
|
||||
Add missing namespace for boost::get
|
||||
Add viewing key prefix to regtest parameters
|
||||
zkey_import_export: Synchronize mempools before mining
|
||||
Use JoinSplitTestingSetup for Boost sighash tests
|
||||
Network upgrade activation mechanism
|
||||
Allow changing network upgrade parameters on regtest
|
||||
Test network upgrade logic
|
||||
Adjust rewind logic to use the network upgrade mechanism
|
||||
Add Overwinter to upgrade list
|
||||
Add method for fetching the next activation height after a given block height
|
||||
Use a boost::optional for nCachedBranchId
|
||||
Change UI/log status message for block rewinding
|
||||
Update quote from ZIP 200
|
||||
Update SignatureHash tests for transaction format changes
|
||||
Implement roll-back limit for reorganisation
|
||||
Add rollback limit to block index rewinding
|
||||
Remove mempool transactions which commit to an unmineable branch ID
|
||||
Remove P2WPKH and P2WSH from signing logic
|
||||
Add consensus branch ID parameter to SignatureHash, remove SigVersion parameter
|
||||
Cleanup: Wrap function arguments
|
||||
Regenerate SignatureHash tests
|
||||
Make number of inputs configurable in validatelargetx test
|
||||
Use v3 transactions with caching for validatelargetx benchmark
|
||||
Extend CWallet::GetFilteredNotes to enable filtering on a set of addresses
|
||||
Add branch IDs for current and next block to getblockchaininfo
|
||||
Check Equihash solution when loading block index
|
||||
Implement z_mergetoaddress for combining UTXOs and notes
|
||||
Gate z_mergetoaddress as an experimental feature
|
||||
Add z_mergetoaddress to release notes
|
||||
Check upgrade status in wallet_overwintertx RPC test
|
||||
Document that consensus.chaintip != consensus.nextblock just before an upgrade
|
||||
Regenerate sighash tests
|
||||
wallet_mergetoaddress: Add additional syncs to prevent race conditions
|
||||
make-release.py: Versioning changes for 1.0.15-rc1.
|
||||
make-release.py: Updated manpages for 1.0.15-rc1.
|
||||
make-release.py: Updated release notes and changelog for 1.0.15-rc1.
|
||||
Use block hash comparison for consistency check when loading block index
|
||||
Overwinter release notes and testnet activation height
|
||||
make-release.py: Versioning changes for 1.0.15.
|
||||
make-release.py: Updated manpages for 1.0.15.
|
||||
|
||||
Jay Graber (8):
|
||||
Add getdeprecationinfo rpc call to return current version and deprecation block height.
|
||||
Make applicable only on mainnet
|
||||
Add upgrades field to RPC call getblockchaininfo
|
||||
Implement transaction expiry for Overwinter
|
||||
Add -txexpirydelta cli option
|
||||
Add mempool_tx_expiry.py test
|
||||
Add expiry to z_mergetoaddress
|
||||
Change rpc_tests to 21
|
||||
|
||||
Jonas Nick (1):
|
||||
Reduce unnecessary hashing in signrawtransaction
|
||||
|
||||
Jorge Timón (3):
|
||||
Chainparams: Introduce CreateGenesisBlock() static function
|
||||
Chainparams: CTestNetParams and CRegTestParams extend directly from CChainParams
|
||||
Mempool: Use Consensus::CheckTxInputs direclty over main::CheckInputs
|
||||
|
||||
Marius Kjærstad (1):
|
||||
Changed http:// to https:// on some links
|
||||
|
||||
Mark Friedenbach (1):
|
||||
Explicitly set tx.nVersion for the genesis block and mining tests
|
||||
|
||||
Matt Corallo (5):
|
||||
Add failing test checking timelocked-txn removal during reorg
|
||||
Fix removal of time-locked transactions during reorg
|
||||
Fix comment in removeForReorg
|
||||
Make indentation in ActivateBestChainStep readable
|
||||
removeForReorg calls once-per-disconnect-> once-per-reorg
|
||||
|
||||
Maxwell Gubler (1):
|
||||
Fix syntax examples for z_importwallet and export
|
||||
|
||||
Nicolas DORIER (1):
|
||||
Unit test for sighash caching
|
||||
|
||||
Pavel Vasin (1):
|
||||
remove unused NOBLKS_VERSION_{START,END} constants
|
||||
|
||||
Pieter Wuille (8):
|
||||
Add rewind logic to deal with post-fork software updates
|
||||
Support -checkmempool=N, which runs checks on average once every N transactions
|
||||
Report non-mandatory script failures correctly
|
||||
Refactor script validation to observe amounts
|
||||
BIP143: Verification logic
|
||||
BIP143: Signing logic
|
||||
Precompute sighashes
|
||||
Rename to PrecomputedTransactionData
|
||||
|
||||
Simon Liu (11):
|
||||
Fixes #2793. Backport commit f33afd3 to increase dbcache default.
|
||||
Add documentation about dbcache.
|
||||
Add note about dbcache to 1.0.15 release notes.
|
||||
Remove redundant service flag NODE_GETUTXO meant for Bitcoin XT.
|
||||
Implementation of Overwinter transaction format ZIP 202.
|
||||
Add test to check malformed v1 transaction against Overwinter tx parser
|
||||
Closes #2964. z_sendmany once again makes v1 tx for taddr to taddr.
|
||||
Closes #2954 and #2959. Fixes Overwinter issues in sighash_tests.
|
||||
Add field nProtocolVersion to struct NetworkUpgrade.
|
||||
Overwinter peer management and network handshaking.
|
||||
Add python qa test overwinter_peer_management.
|
||||
|
||||
Suhas Daftuar (3):
|
||||
Track coinbase spends in CTxMemPoolEntry
|
||||
Don't call removeForReorg if DisconnectTip fails
|
||||
Fix removeForReorg to use MedianTimePast
|
||||
|
||||
jc (1):
|
||||
read hashReserved from disk block index
|
||||
|
||||
syd (2):
|
||||
Fix libsnark dependency build.
|
||||
Remove OSX and Windows files from Makefile + share directory.
|
||||
|
||||
16
doc/release-notes/release-notes-1.0.8-1.md
Normal file
16
doc/release-notes/release-notes-1.0.8-1.md
Normal file
@@ -0,0 +1,16 @@
|
||||
Daira Hopwood (3):
|
||||
Don't rely on a finite upper bound on fee rate or priority.
|
||||
Simplify JoinSplit priority calculation. refs 1896
|
||||
Add check for JoinSplit priority as calculated by CCoinsViewCache::GetPriority.
|
||||
|
||||
Jack Grigg (1):
|
||||
Use a larger -rpcclienttimeout for slow performance measurements
|
||||
|
||||
Nathan Wilcox (2):
|
||||
Bump version numbers for v1.0.8-1.
|
||||
Commit the changes from gen-manpages.sh, except manually tweak the version strings.
|
||||
|
||||
str4d (2):
|
||||
Update tests to check actual infinity as well as INF_FEERATE
|
||||
Add unit test for security issue 2017-04-11.a
|
||||
|
||||
90
doc/release-notes/release-notes-1.0.9.md
Normal file
90
doc/release-notes/release-notes-1.0.9.md
Normal file
@@ -0,0 +1,90 @@
|
||||
Amgad Abdelhafez (2):
|
||||
Update timedata.cpp
|
||||
Update timedata.cpp
|
||||
|
||||
Daira Hopwood (4):
|
||||
Fix an error reporting bug due to BrokenPipeError and ConnectionResetError not existing in Python 2. refs #2263
|
||||
Alert 1002 (versions 1.0.0-1.0.2 inclusive).
|
||||
Alert 1003 (versions 1.0.3-1.0.8 inclusive).
|
||||
Disable building Proton by default.
|
||||
|
||||
Jack Grigg (14):
|
||||
Fix prioritisetransaction RPC test
|
||||
torcontrol: Handle escapes in Tor QuotedStrings
|
||||
torcontrol: Add missing copyright header
|
||||
Convert Zcash versions to Debian format
|
||||
[manpage] Handle build numbers in versions
|
||||
Address Daira's comments
|
||||
Address Daira's further comments
|
||||
Correctly handle three-digit octals with leading digit 4-7
|
||||
Check that >3-digit octals are truncated.
|
||||
Implement automatic shutdown of deprecated Zcash versions
|
||||
Wrap messages nicely on metrics screen
|
||||
Regenerate miner tests
|
||||
Add a benchmark for calling ConnectBlock on a block with many inputs
|
||||
Remove additional sources of determinism from benchmark archive
|
||||
|
||||
Jay Graber (2):
|
||||
Change help text examples to use Zcash addresses
|
||||
Poll on getblocktemplate result rather than use bare sleep to avoid race condition.
|
||||
|
||||
Nathan Wilcox (39):
|
||||
[Direct master commit] Fix a release snafu in debian version string.
|
||||
Show toolchain versions in build.sh.
|
||||
Start on a make-release.py script; currently just arg parsing and unittests [unittests fail].
|
||||
Update version spec by altering test; also update regex to pass single 0 digits in major/minor/patch.
|
||||
Add another case from debian-style versions.
|
||||
Add all of the zcash release tags in my current repo as positive test vector.
|
||||
Add support for beta/rc release versions.
|
||||
Add version sorting, assert that RELEASE_PREV is the most recent release.
|
||||
Make SystemExit errors less redundant in output; verify clean git status on master.
|
||||
Always run unittests prior to actual runs.
|
||||
Make --help output clean by not running self-test.
|
||||
Add an option to run against a different repo directory.
|
||||
Make sure to pull the latest master.
|
||||
Exit instead of raising an unexpected exception, since it's already logged.
|
||||
Implement `PathPatcher` abstraction, `clientversion.h` rewrite, and build numbering w/ unittests.
|
||||
Implement the IS_RELEASE rule for betas.
|
||||
Generalize buildnum patching for both `clientversion.h` and `configure.ac`.
|
||||
Modify the `APPROX_RELEASE_HEIGHT`.
|
||||
Remove portions of `./doc/release-process.md` now implemented in `make-release.py`.
|
||||
Switch from `sh_out_logged` to `sh_log`.
|
||||
Shorten the arg log line.
|
||||
Commit the version changes and build.
|
||||
Generate manpages; commit that; improve error output in sh_log.
|
||||
Polish logging a bit more.
|
||||
Tidy up / systematize logging output a bit more.
|
||||
First full-release-branch version of script; rewrite large swatch of release-process.md. [Manually tested.]
|
||||
Enable set -u mode.
|
||||
Fix a variable name typo.
|
||||
Reuse zcash_rpc.
|
||||
Do not use `-rpcwait` on all `zcash_rpc` invocations, only block when starting zcashd.
|
||||
Fix `release-process.md` doc usage for `make-release.py` to have correct arguments and order.
|
||||
Include release version in commit comments.
|
||||
Examine all future versions which are assumed to follow the same Version parser schema.
|
||||
Consider both beta and rc versions to be `IS_RELEASE == false`.
|
||||
Add a few more version strings to positive parser test.
|
||||
Define the deprecation policy for 1.0.9.
|
||||
Clarify that the feature is automated *shutdown*.
|
||||
make-release.py: Versioning changes for 1.0.9.
|
||||
make-release.py: Updated manpages for 1.0.9.
|
||||
|
||||
Paige Peterson (4):
|
||||
wallet backup instructions
|
||||
typo and rewording edits
|
||||
str4d and Ariel's suggestions
|
||||
specify exportdir being within homedirectory
|
||||
|
||||
Sean Bowe (1):
|
||||
Check that pairings work properly when the G1 point is at infinity.
|
||||
|
||||
Simon Liu (5):
|
||||
Add AMQP 1.0 support via Apache Qpid Proton C++ API 0.17.0
|
||||
Add --disable-proton flag to build.sh. Proton has build/linker issues with gcc 4.9.2 and requires gcc 5.x.
|
||||
Fix proton build issue with debian jessie, as used on CI servers.
|
||||
Change regtest port to 18344. Closes #2269.
|
||||
Patch to build Proton with minimal dependencies.
|
||||
|
||||
emilrus (1):
|
||||
Replace bitcoind with zcashd
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user