X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=doc%2Fbuild-unix.txt;h=7f592e232746207e5b6a1f8592a2fa0216ccdfb2;hb=1c7ed42093c5935e3958584ed98a2b03466a0023;hp=61efb1bec9b6998c1b370f34cc087c8a8bc83f70;hpb=4adf78bad32f016196bdcc8d6edfc9d9796b04ef;p=novacoin.git diff --git a/doc/build-unix.txt b/doc/build-unix.txt index 61efb1b..7f592e2 100644 --- a/doc/build-unix.txt +++ b/doc/build-unix.txt @@ -1,11 +1,10 @@ -Copyright (c) 2009-2010 Satoshi Nakamoto -Copyright (c) 2011 Bitcoin Developers +Copyright (c) 2009-2012 Bitcoin Developers +Copyright (c) 2013 NovaCoin Developers Distributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). This product includes -cryptographic software written by Eric Young (eay@cryptsoft.com) and UPnP -software written by Thomas Bernard. +cryptographic software written by Eric Young (eay@cryptsoft.com). UNIX BUILD NOTES @@ -15,41 +14,38 @@ To Build -------- cd src/ -make -f makefile.unix # Headless bitcoin +make -f makefile.unix # Headless novacoin -See readme-qt.rst for instructions on building Bitcoin QT, -the graphical bitcoin. +See readme-qt.rst for instructions on building NovaCoin QT, +the graphical novacoin. Dependencies ------------ - Library Purpose Description - ------- ------- ----------- - libssl SSL Support Secure communications - libdb4.8 Berkeley DB Blockchain & wallet storage - libboost Boost C++ Library - miinupnpc UPnP Support Optional firewall-jumping support + Library Purpose Description + ------- ------- ----------- + libssl SSL Support Secure communications + libdb4.8 Berkeley DB Blockchain & wallet storage + libboost Boost C++ Library + libqrencode QRCode generation Optional QRCode generation -miniupnpc may be used for UPnP port mapping. It can be downloaded from -http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and -turned off by default. Set USE_UPNP to a different value to control this: - USE_UPNP= No UPnP support - miniupnp not required - USE_UPNP=0 (the default) UPnP support turned off by default at runtime - USE_UPNP=1 UPnP support turned on by default at runtime +Note that libexecinfo should be installed, if you building under *BSD systems. +This library provides backtrace facility. + +libqrencode is used for QRCode image generation. It can be downloaded +from http://fukuchi.org/works/qrencode/index.html.en, or installed via +your package manager. Licenses of statically linked libraries: Berkeley DB New BSD license with additional requirement that linked software must be free open source Boost MIT-like license - miniupnpc New (3-clause) BSD license Versions used in this release: GCC 4.3.3 OpenSSL 0.9.8g Berkeley DB 4.8.30.NC Boost 1.37 - miniupnpc 1.6 - Dependency Build Instructions: Ubuntu & Debian ---------------------------------------------- @@ -59,38 +55,31 @@ sudo apt-get install libdb4.8-dev sudo apt-get install libdb4.8++-dev Boost 1.40+: sudo apt-get install libboost-all-dev or Boost 1.37: sudo apt-get install libboost1.37-dev +sudo apt-get install libqrencode-dev If using Boost 1.37, append -mt to the boost libraries in the makefile. Dependency Build Instructions: Gentoo ------------------------------------- -emerge -av net-libs/miniupnpc boost openssl sys-libs/db -Then take the following steps to build: - cd ${BITCOIN_DIR}/src - sed -i 's///' *.h # path fix - sed -i 's/-Bstatic/-Bdynamic/' makefile.unix # dynamic linking - sed -i 's/^USE_UPNP:=0$/USE_UPNP:=/' makefile.unix # disable UPnP - make -f makefile.unix - strip bitcoind +Note: If you just want to install novacoind on Gentoo, you can add the Novacoin + overlay and use your package manager: + layman -a novacoin && emerge novacoind + +emerge -av1 --noreplace boost glib openssl sys-libs/db:4.8 + +Take the following steps to build: + cd ${NOVACOIN_DIR}/src + make -f makefile.unix BDB_INCLUDE_PATH='/usr/include/db4.8' + strip novacoind Notes ----- -The release is built with GCC and then "strip bitcoind" to strip the debug +The release is built with GCC and then "strip novacoind" to strip the debug symbols, which reduces the executable size by about 90%. - -miniupnpc ---------- -tar -xzvf miniupnpc-1.6.tar.gz -cd miniupnpc-1.6 -make -sudo su -make install - - Berkeley DB ----------- You need Berkeley DB 4.8. If you have to build Berkeley DB yourself: @@ -108,7 +97,7 @@ sudo su Security -------- -To help make your bitcoin installation more secure by making certain attacks impossible to +To help make your novacoin installation more secure by making certain attacks impossible to exploit even if a vulnerability is found, you can take the following measures: * Position Independent Executable @@ -125,7 +114,7 @@ exploit even if a vulnerability is found, you can take the following measures: make -f makefile.unix ... -e PIE=1 To test that you have built PIE executable, install scanelf, part of paxutils, and use: - scanelf -e ./bitcoin + scanelf -e ./novacoin The output should contain: TYPE @@ -133,13 +122,13 @@ exploit even if a vulnerability is found, you can take the following measures: * Non-executable Stack If the stack is executable then trivial stack based buffer overflow exploits are possible if - vulnerable buffers are found. By default, bitcoin should be built with a non-executable stack + vulnerable buffers are found. By default, novacoin should be built with a non-executable stack but if one of the libraries it uses asks for an executable stack or someone makes a mistake and uses a compiler extension which requires an executable stack, it will silently build an executable without the non-executable stack protection. To verify that the stack is non-executable after compiling use: - scanelf -e ./bitcoin + scanelf -e ./novacoin the output should contain: STK/REL/PTL