diff options
-rw-r--r-- | contrib/gitian-descriptors/deps-linux.yml | 10 | ||||
-rw-r--r-- | contrib/gitian-descriptors/deps-win.yml | 10 | ||||
-rw-r--r-- | contrib/gitian-descriptors/gitian-linux.yml | 31 | ||||
-rw-r--r-- | contrib/gitian-descriptors/gitian-win.yml | 12 | ||||
-rw-r--r-- | contrib/gitian-descriptors/qt-win.yml | 8 | ||||
-rw-r--r-- | doc/gitian-building.md | 2 | ||||
-rw-r--r-- | doc/release-process.md | 2 | ||||
-rw-r--r-- | src/bitcoin-cli.cpp | 7 | ||||
-rw-r--r-- | src/bitcoind.cpp | 8 | ||||
-rw-r--r-- | src/m4/ax_boost_base.m4 | 8 | ||||
-rw-r--r-- | src/qt/bitcoin.cpp | 8 |
11 files changed, 75 insertions, 31 deletions
diff --git a/contrib/gitian-descriptors/deps-linux.yml b/contrib/gitian-descriptors/deps-linux.yml index 908f9321a4..74c1624569 100644 --- a/contrib/gitian-descriptors/deps-linux.yml +++ b/contrib/gitian-descriptors/deps-linux.yml @@ -16,7 +16,7 @@ packages: reference_datetime: "2013-06-01 00:00:00" remotes: [] files: -- "openssl-1.0.1e.tar.gz" +- "openssl-1.0.1g.tar.gz" - "miniupnpc-1.8.tar.gz" - "qrencode-3.4.3.tar.bz2" - "protobuf-2.5.0.tar.bz2" @@ -30,15 +30,15 @@ script: | export TZ=UTC export LIBRARY_PATH="$STAGING/lib" # Integrity Check - echo "f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3 openssl-1.0.1e.tar.gz" | sha256sum -c + echo "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028 openssl-1.0.1g.tar.gz" | sha256sum -c echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c echo "dfd71487513c871bad485806bfd1fdb304dedc84d2b01a8fb8e0940b50597a98 qrencode-3.4.3.tar.bz2" | sha256sum -c echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c # - tar xzf openssl-1.0.1e.tar.gz - cd openssl-1.0.1e + tar xzf openssl-1.0.1g.tar.gz + cd openssl-1.0.1g # need -fPIC to avoid relocation error in 64 bit builds ./config no-shared no-zlib no-dso no-krb5 --openssldir=$STAGING -fPIC # need to build OpenSSL with faketime because a timestamp is embedded into cversion.o @@ -95,4 +95,4 @@ script: | done # cd $STAGING - find include lib bin host | sort | zip -X@ $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r3.zip + find include lib bin host | sort | zip -X@ $OUTDIR/bitcoin-deps-linux${GBUILD_BITS}-gitian-r4.zip diff --git a/contrib/gitian-descriptors/deps-win.yml b/contrib/gitian-descriptors/deps-win.yml index 87ebf3e87b..b18d0f031c 100644 --- a/contrib/gitian-descriptors/deps-win.yml +++ b/contrib/gitian-descriptors/deps-win.yml @@ -14,7 +14,7 @@ packages: reference_datetime: "2011-01-30 00:00:00" remotes: [] files: -- "openssl-1.0.1e.tar.gz" +- "openssl-1.0.1g.tar.gz" - "db-4.8.30.NC.tar.gz" - "miniupnpc-1.8.tar.gz" - "zlib-1.2.8.tar.gz" @@ -28,7 +28,7 @@ script: | INDIR=$HOME/build TEMPDIR=$HOME/tmp # Input Integrity Check - echo "f74f15e8c8ff11aa3d5bb5f276d202ec18d7246e95f961db76054199c69c1ae3 openssl-1.0.1e.tar.gz" | sha256sum -c + echo "53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028 openssl-1.0.1g.tar.gz" | sha256sum -c echo "12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz" | sha256sum -c echo "bc5f73c7b0056252c1888a80e6075787a1e1e9112b808f863a245483ff79859c miniupnpc-1.8.tar.gz" | sha256sum -c echo "36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d zlib-1.2.8.tar.gz" | sha256sum -c @@ -48,8 +48,8 @@ script: | mkdir -p $INSTALLPREFIX $BUILDDIR cd $BUILDDIR # - tar xzf $INDIR/openssl-1.0.1e.tar.gz - cd openssl-1.0.1e + tar xzf $INDIR/openssl-1.0.1g.tar.gz + cd openssl-1.0.1g if [ "$BITS" == "32" ]; then OPENSSL_TGT=mingw else @@ -124,5 +124,5 @@ script: | done # cd $INSTALLPREFIX - find include lib | sort | zip -X@ $OUTDIR/bitcoin-deps-win$BITS-gitian-r10.zip + find include lib | sort | zip -X@ $OUTDIR/bitcoin-deps-win$BITS-gitian-r11.zip done # for BITS in diff --git a/contrib/gitian-descriptors/gitian-linux.yml b/contrib/gitian-descriptors/gitian-linux.yml index 01a5c3c0bf..3c25b793d0 100644 --- a/contrib/gitian-descriptors/gitian-linux.yml +++ b/contrib/gitian-descriptors/gitian-linux.yml @@ -21,8 +21,8 @@ remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" files: -- "bitcoin-deps-linux32-gitian-r3.zip" -- "bitcoin-deps-linux64-gitian-r3.zip" +- "bitcoin-deps-linux32-gitian-r4.zip" +- "bitcoin-deps-linux64-gitian-r4.zip" - "boost-linux32-1.55.0-gitian-r1.zip" - "boost-linux64-1.55.0-gitian-r1.zip" script: | @@ -36,21 +36,42 @@ script: | # mkdir -p $STAGING cd $STAGING - unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r3.zip + unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r4.zip unzip ../build/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip cd ../build + + function do_configure { + ./configure "$@" --enable-upnp-default --prefix=$STAGING --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}" BOOST_CHRONO_EXTRALIBS="-lrt" + } # cd bitcoin ./autogen.sh - ./configure --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}" BOOST_CHRONO_EXTRALIBS="-lrt" + do_configure make dist DISTNAME=`echo bitcoin-*.tar.gz` + + # Build dynamic versions of everything + # (with static linking to boost and openssl as well a some non-OS deps) mkdir -p distsrc cd distsrc tar --strip-components=1 -xf ../$DISTNAME - ./configure --enable-upnp-default --prefix=$STAGING --bindir=$BINDIR --with-protoc-bindir=$STAGING/host/bin --with-boost=$STAGING --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib ${OPTFLAGS}" CXXFLAGS="-frandom-seed=bitcoin ${OPTFLAGS}" BOOST_CHRONO_EXTRALIBS="-lrt" + do_configure --bindir=$BINDIR make $MAKEOPTS make $MAKEOPTS install-strip + make $MAKEOPTS clean + + # Build fully static versions of bitcoind and bitcoin-cli for older Linux distros + STATIC_BINDIR="$HOME/bindir.static" + mkdir -p $STATIC_BINDIR + # For 32-bit, -pie cannot be used with -static, as invalid executables are generated + # For 64-bit, -pie with -static causes a link error + # Disable hardening in configure and manually pass 'static-safe' hardening flags + OPTFLAGS='-O2 -static -Wstack-protector -fstack-protector-all -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now' + do_configure --bindir=$STATIC_BINDIR --disable-tests --enable-upnp-default --without-gui --disable-hardening + make $MAKEOPTS + make $MAKEOPTS install-strip + cp $STATIC_BINDIR/bitcoind $BINDIR/bitcoind.static + cp $STATIC_BINDIR/bitcoin-cli $BINDIR/bitcoin-cli.static # sort distribution tar file and normalize user/group/mtime information for deterministic output mkdir -p $OUTDIR/src diff --git a/contrib/gitian-descriptors/gitian-win.yml b/contrib/gitian-descriptors/gitian-win.yml index ecda73e44e..7d98df9ed6 100644 --- a/contrib/gitian-descriptors/gitian-win.yml +++ b/contrib/gitian-descriptors/gitian-win.yml @@ -22,12 +22,12 @@ remotes: - "url": "https://github.com/bitcoin/bitcoin.git" "dir": "bitcoin" files: -- "qt-win32-5.2.0-gitian-r2.zip" -- "qt-win64-5.2.0-gitian-r2.zip" +- "qt-win32-5.2.0-gitian-r3.zip" +- "qt-win64-5.2.0-gitian-r3.zip" - "boost-win32-1.55.0-gitian-r6.zip" - "boost-win64-1.55.0-gitian-r6.zip" -- "bitcoin-deps-win32-gitian-r10.zip" -- "bitcoin-deps-win64-gitian-r10.zip" +- "bitcoin-deps-win32-gitian-r11.zip" +- "bitcoin-deps-win64-gitian-r11.zip" - "protobuf-win32-2.5.0-gitian-r4.zip" - "protobuf-win64-2.5.0-gitian-r4.zip" script: | @@ -59,9 +59,9 @@ script: | mkdir -p $STAGING $BUILDDIR $BINDIR # cd $STAGING - unzip $INDIR/qt-win${BITS}-5.2.0-gitian-r2.zip + unzip $INDIR/qt-win${BITS}-5.2.0-gitian-r3.zip unzip $INDIR/boost-win${BITS}-1.55.0-gitian-r6.zip - unzip $INDIR/bitcoin-deps-win${BITS}-gitian-r10.zip + unzip $INDIR/bitcoin-deps-win${BITS}-gitian-r11.zip unzip $INDIR/protobuf-win${BITS}-2.5.0-gitian-r4.zip if [ "$NEEDDIST" == "1" ]; then # Make source code archive which is architecture independent so it only needs to be done once diff --git a/contrib/gitian-descriptors/qt-win.yml b/contrib/gitian-descriptors/qt-win.yml index e3de2c02ef..b75b8a735b 100644 --- a/contrib/gitian-descriptors/qt-win.yml +++ b/contrib/gitian-descriptors/qt-win.yml @@ -15,8 +15,8 @@ reference_datetime: "2011-01-30 00:00:00" remotes: [] files: - "qt-everywhere-opensource-src-5.2.0.tar.gz" -- "bitcoin-deps-win32-gitian-r10.zip" -- "bitcoin-deps-win64-gitian-r10.zip" +- "bitcoin-deps-win32-gitian-r11.zip" +- "bitcoin-deps-win64-gitian-r11.zip" script: | # Defines export TZ=UTC @@ -48,7 +48,7 @@ script: | # # Need mingw-compiled openssl from bitcoin-deps: cd $DEPSDIR - unzip $INDIR/bitcoin-deps-win${BITS}-gitian-r10.zip + unzip $INDIR/bitcoin-deps-win${BITS}-gitian-r11.zip # cd $BUILDDIR # @@ -86,7 +86,7 @@ script: | export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME find -print0 | xargs -r0 touch # fix up timestamps before packaging - find | sort | zip -X@ $OUTDIR/qt-win${BITS}-5.2.0-gitian-r2.zip + find | sort | zip -X@ $OUTDIR/qt-win${BITS}-5.2.0-gitian-r3.zip unset LD_PRELOAD unset FAKETIME done # for BITS in diff --git a/doc/gitian-building.md b/doc/gitian-building.md index 9fef66b764..f12dce5065 100644 --- a/doc/gitian-building.md +++ b/doc/gitian-building.md @@ -49,7 +49,7 @@ on actual hardware instead of using a VM, in this case you can skip this section In the VirtualBox GUI click "Create" and choose the following parameters in the wizard: -![](gitian-building/create_vm_page1.png =100x20) +![](gitian-building/create_vm_page1.png) - Type: Linux, Debian (64 bit) diff --git a/doc/release-process.md b/doc/release-process.md index 095d20f9ea..13d843951a 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -40,7 +40,7 @@ Release Process mkdir -p inputs; cd inputs/ wget 'http://miniupnp.free.fr/files/download.php?file=miniupnpc-1.8.tar.gz' -O miniupnpc-1.8.tar.gz - wget 'https://www.openssl.org/source/openssl-1.0.1e.tar.gz' + wget 'https://www.openssl.org/source/openssl-1.0.1g.tar.gz' wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' wget 'http://zlib.net/zlib-1.2.8.tar.gz' wget 'ftp://ftp.simplesystems.org/pub/png/src/history/libpng16/libpng-1.6.8.tar.gz' diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index 817369fe95..ca6950a162 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -27,7 +27,12 @@ static bool AppInitRPC(int argc, char* argv[]) fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); return false; } - ReadConfigFile(mapArgs, mapMultiArgs); + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + fprintf(stderr,"Error reading configuration file: %s\n", e.what()); + return false; + } // Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause) if (!SelectParamsFromCommandLine()) { fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 4882a00532..17aa0c9d4b 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -70,7 +70,13 @@ bool AppInit(int argc, char* argv[]) fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str()); return false; } - ReadConfigFile(mapArgs, mapMultiArgs); + try + { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + fprintf(stderr,"Error reading configuration file: %s\n", e.what()); + return false; + } // Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause) if (!SelectParamsFromCommandLine()) { fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n"); diff --git a/src/m4/ax_boost_base.m4 b/src/m4/ax_boost_base.m4 index f941b27ec4..4f93a0e094 100644 --- a/src/m4/ax_boost_base.m4 +++ b/src/m4/ax_boost_base.m4 @@ -33,7 +33,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 22 +#serial 23 AC_DEFUN([AX_BOOST_BASE], [ @@ -103,6 +103,12 @@ if test "x$want_boost" = "xyes"; then AC_REQUIRE([AC_CANONICAL_HOST]) libsubdirs="lib/${host_cpu}-${host_os} $libsubdirs" + case ${host_cpu} in + i?86) + libsubdirs="lib/i386-${host_os} $libsubdirs" + ;; + esac + dnl first we check the system location for boost libraries dnl this location ist chosen if boost libraries are installed with the --layout=system option dnl or if you install boost with RPM diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 0db4308bf6..696e65ec19 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -507,7 +507,13 @@ int main(int argc, char *argv[]) QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); return 1; } - ReadConfigFile(mapArgs, mapMultiArgs); + try { + ReadConfigFile(mapArgs, mapMultiArgs); + } catch(std::exception &e) { + QMessageBox::critical(0, QObject::tr("Bitcoin"), + QObject::tr("Error: Cannot parse configuration file: %1. Only use key=value syntax.").arg(e.what())); + return false; + } /// 7. Determine network (and switch to network specific options) // - Do not call Params() before this step |