Skip to content

Commit

Permalink
Docs Markdown Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
super3 committed May 20, 2013
1 parent 5b5d399 commit 2341e9b
Show file tree
Hide file tree
Showing 11 changed files with 443 additions and 399 deletions.
33 changes: 0 additions & 33 deletions doc/README

This file was deleted.

46 changes: 46 additions & 0 deletions doc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Bitcoin 0.8.2 BETA
====================

Copyright (c) 2009-2013 Bitcoin Developers

Distributed under the MIT/X11 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](http://www.openssl.org/). This product includes
cryptographic software written by Eric Young ([[email protected]](mailto:[email protected])), and UPnP software written by Thomas Bernard.


Intro
---------------------
Bitcoin is a free open source peer-to-peer electronic cash system that is
completely decentralized, without the need for a central server or trusted
parties. Users hold the crypto keys to their own money and transact directly
with each other, with the help of a P2P network to check for double-spending.


Setup
---------------------
You need the Qt4 run-time libraries to run Bitcoin-Qt. On Debian or Ubuntu:
`sudo apt-get install libqtgui4`

Unpack the files into a directory and run:

- bin/32/bitcoin-qt (GUI, 32-bit)
- bin/32/bitcoind (headless, 32-bit)
- bin/64/bitcoin-qt (GUI, 64-bit)
- bin/64/bitcoind (headless, 64-bit)

See the documentation at the [Bitcoin Wiki](https://en.bitcoin.it/wiki/Main_Page)
for help and more information.


Other Pages
---------------------
- [Unix Build Notes](build-unix.md)
- [OSX Build Notes](build-osx.md)
- [Windows Build Notes](build-msw.md)
- [Coding Guidelines](coding.md)
- [Release Process](release-process.md)
- [Release Notes](release-notes.md)
- [Multiwallet Qt Development](multiwallet-qt.md)
- [Unit Tests](unit-tests.md)
- [Translation Process](translation_process.md)
66 changes: 36 additions & 30 deletions doc/build-msw.txt → doc/build-msw.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
Copyright (c) 2009-2012 Bitcoin Developers
Copyright (c) 2009-2013 Bitcoin Developers

Distributed under the MIT/X11 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 (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young ([email protected]) and UPnP
software written by Thomas Bernard.
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 ([[email protected]](mailto:[email protected])), and UPnP software written by Thomas Bernard.


See readme-qt.rst for instructions on building Bitcoin-Qt, the
Expand All @@ -30,55 +29,62 @@ Boost \boost-1.50.0-mgw http://www.boost.org/users/download/
miniupnpc \miniupnpc-1.6-mgw http://miniupnp.tuxfamily.org/files/

Their licenses:
OpenSSL Old BSD license with the problematic advertising requirement
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

OpenSSL Old BSD license with the problematic advertising requirement
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:
OpenSSL 1.0.1c
Berkeley DB 4.8.30.NC
Boost 1.50.0
miniupnpc 1.6

OpenSSL 1.0.1c
Berkeley DB 4.8.30.NC
Boost 1.50.0
miniupnpc 1.6


OpenSSL
-------
MSYS shell:

un-tar sources with MSYS 'tar xfz' to avoid issue with symlinks (OpenSSL ticket 2377)
change 'MAKE' env. variable from 'C:\MinGW32\bin\mingw32-make.exe' to '/c/MinGW32/bin/mingw32-make.exe'

cd /c/openssl-1.0.1c-mgw
./config
make
cd /c/openssl-1.0.1c-mgw
./config
make

Berkeley DB
-----------
MSYS shell:
cd /c/db-4.8.30.NC-mgw/build_unix
sh ../dist/configure --enable-mingw --enable-cxx
make

cd /c/db-4.8.30.NC-mgw/build_unix
sh ../dist/configure --enable-mingw --enable-cxx
make

Boost
-----
DOS prompt:
downloaded boost jam 3.1.18
cd \boost-1.50.0-mgw
bjam toolset=gcc --build-type=complete stage

downloaded boost jam 3.1.18
cd \boost-1.50.0-mgw
bjam toolset=gcc --build-type=complete stage

MiniUPnPc
---------
UPnP support is optional, make with USE_UPNP= to disable it.
UPnP support is optional, make with `USE_UPNP=` to disable it.

MSYS shell:
cd /c/miniupnpc-1.6-mgw
make -f Makefile.mingw
mkdir miniupnpc
cp *.h miniupnpc/

cd /c/miniupnpc-1.6-mgw
make -f Makefile.mingw
mkdir miniupnpc
cp *.h miniupnpc/

Bitcoin
-------
DOS prompt:
cd \bitcoin\src
mingw32-make -f makefile.mingw
strip bitcoind.exe

cd \bitcoin\src
mingw32-make -f makefile.mingw
strip bitcoind.exe
118 changes: 62 additions & 56 deletions doc/build-unix.txt → doc/build-unix.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,23 @@
Copyright (c) 2009-2012 Bitcoin Developers
Copyright (c) 2009-2013 Bitcoin Developers

Distributed under the MIT/X11 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 (http://www.openssl.org/). This product includes
cryptographic software written by Eric Young ([email protected]) and UPnP
software written by Thomas Bernard.

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 ([[email protected]](mailto:[email protected])), and UPnP software written by Thomas Bernard.

UNIX BUILD NOTES
================
====================

To Build
--------
---------------------

cd src/
make -f makefile.unix # Headless bitcoin
cd src/
make -f makefile.unix # Headless bitcoin

See readme-qt.rst for instructions on building Bitcoin-Qt,
the graphical user interface.
See readme-qt.rst for instructions on building Bitcoin-Qt, the graphical user interface.

Dependencies
------------
---------------------

Library Purpose Description
------- ------- -----------
Expand All @@ -29,67 +26,72 @@ Dependencies
libboost Boost C++ Library
miniupnpc UPnP Support Optional firewall-jumping support

miniupnpc may be used for UPnP port mapping. It can be downloaded from
http://miniupnp.tuxfamily.org/files/. UPnP support is compiled in and
[miniupnpc](http://miniupnp.free.fr/) may be used for UPnP port mapping. It can be downloaded from [here](
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

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

IPv6 support may be disabled by setting:
USE_IPV6=0 Disable IPv6 support

USE_IPV6=0 Disable IPv6 support

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 1.0.1c
Berkeley DB 4.8.30.NC
Boost 1.37
miniupnpc 1.6
- Versions used in this release:
- GCC 4.3.3
- OpenSSL 1.0.1c
- Berkeley DB 4.8.30.NC
- Boost 1.37
- miniupnpc 1.6

Dependency Build Instructions: Ubuntu & Debian
----------------------------------------------
Build requirements:
sudo apt-get install build-essential
sudo apt-get install libssl-dev

sudo apt-get install build-essential
sudo apt-get install libssl-dev

for Ubuntu 12.04:
sudo apt-get install libboost-all-dev

db4.8 packages are available at:
https://launchpad.net/~bitcoin/+archive/bitcoin
sudo apt-get install libboost-all-dev

db4.8 packages are available [here](https://launchpad.net/~bitcoin/+archive/bitcoin).

Ubuntu precise has packages for libdb5.1-dev and libdb5.1++-dev,
but using these will break binary wallet compatibility, and is not recommended.

for other Ubuntu & Debian:
sudo apt-get install libdb4.8-dev
sudo apt-get install libdb4.8++-dev
sudo apt-get install libboost1.37-dev

sudo apt-get install libdb4.8-dev
sudo apt-get install libdb4.8++-dev
sudo apt-get install libboost1.37-dev
(If using Boost 1.37, append -mt to the boost libraries in the makefile)

Optional:
sudo apt-get install libminiupnpc-dev (see USE_UPNP compile flag)

sudo apt-get install libminiupnpc-dev (see USE_UPNP compile flag)


Dependency Build Instructions: Gentoo
-------------------------------------

Note: If you just want to install bitcoind on Gentoo, you can add the Bitcoin
overlay and use your package manager:
layman -a bitcoin && emerge bitcoind
Note: If you just want to install bitcoind on Gentoo, you can add the Bitcoin overlay and use your package manager:

emerge -av1 --noreplace boost glib openssl sys-libs/db:4.8
layman -a bitcoin && emerge bitcoind
emerge -av1 --noreplace boost glib openssl sys-libs/db:4.8

Take the following steps to build (no UPnP support):
cd ${BITCOIN_DIR}/src
make -f makefile.unix USE_UPNP= USE_IPV6=1 BDB_INCLUDE_PATH='/usr/include/db4.8'
strip bitcoind

cd ${BITCOIN_DIR}/src
make -f makefile.unix USE_UPNP= USE_IPV6=1 BDB_INCLUDE_PATH='/usr/include/db4.8'
strip bitcoind


Notes
Expand All @@ -100,26 +102,28 @@ 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
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:
../dist/configure --enable-cxx
make

../dist/configure --enable-cxx
make


Boost
-----
If you need to build Boost yourself:
sudo su
./bootstrap.sh
./bjam install

sudo su
./bootstrap.sh
./bjam install


Security
Expand All @@ -138,10 +142,12 @@ exploit even if a vulnerability is found, you can take the following measures:
such as: "relocation R_X86_64_32 against `......' can not be used when making a shared object;"

To build with PIE, use:
make -f makefile.unix ... -e PIE=1

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 ./bitcoin

The output should contain:
TYPE
Expand All @@ -155,10 +161,10 @@ exploit even if a vulnerability is found, you can take the following measures:
executable without the non-executable stack protection.

To verify that the stack is non-executable after compiling use:
scanelf -e ./bitcoin
`scanelf -e ./bitcoin`

the output should contain:
STK/REL/PTL
RW- R-- RW-
STK/REL/PTL
RW- R-- RW-

The STK RW- means that the stack is readable and writeable but not executable.
Loading

0 comments on commit 2341e9b

Please sign in to comment.