Add examples.
[novacoin.git] / doc / build-unix.txt
index b424a50..5e8d7c6 100644 (file)
@@ -1,5 +1,5 @@
-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
@@ -15,28 +15,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
+ miniupnpc   UPnP Support      Optional firewall-jumping support
+ libqrencode QRCode generation Optional QRCode generation
+
+Note that libexecinfo should be installed, if you building under *BSD systems. 
+This library provides backtrace facility.
 
 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=-    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
 
+libqrencode may be used for QRCode image generation. It can be downloaded
+from http://fukuchi.org/works/qrencode/index.html.en, or installed via
+your package manager. Set USE_QRCODE to control this:
+ USE_QRCODE=0   (the default) No QRCode support - libqrcode not required
+ USE_QRCODE=1   QRCode support enabled
+
 Licenses of statically linked libraries:
  Berkeley DB   New BSD license with additional requirement that linked
                software must be free open source
@@ -50,7 +60,6 @@ Versions used in this release:
  Boost         1.37
  miniupnpc     1.6
 
-
 Dependency Build Instructions: Ubuntu & Debian
 ----------------------------------------------
 sudo apt-get install build-essential
@@ -59,25 +68,29 @@ 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/<db_cxx.h>/<db4.8\/db_cxx.h>/' *
- sed -i 's/-Bstatic/-Bdynamic/' makefile.unix
- 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 (no UPnP support):
+ cd ${NOVACOIN_DIR}/src
+ make -f makefile.unix USE_UPNP= 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%.
 
 
@@ -107,7 +120,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
@@ -124,7 +137,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
@@ -132,13 +145,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