Commit Graph

131 Commits

Author SHA1 Message Date
0xb10c
469b71ae62
doc: document systemtap dependency 2021-07-27 16:33:43 +02:00
Klement Tan
07bc22ef10
docs: improve make with parallel jobs description. 2021-05-14 08:45:27 +08:00
Hennadii Stepanov
223b1ba7d9
doc: Use CONFIG_SITE instead of --prefix 2021-04-09 12:25:18 +03:00
Hennadii Stepanov
4899fa3abd
doc: Update build instructions for Fedora
Fedora 33 requires adding the Cheese third-party repo to install
libdb4-devel and libdb4-cxx-devel packages.
2021-03-02 10:09:19 +02:00
fanquake
cad8b527ea
build: explicitly install libboost-dev package
This package is currently installed as a side-effect of installing our
other libboost-*-dev packages. However as those continue to dissapear,
it makes sense to install boost dev explicitly.
2021-02-17 09:04:20 +08:00
Wladimir J. van der Laan
9996b1806a
Merge #21064: refactor: use std::shared_mutex & remove Boost Thread
060a2a64d4 ci: remove boost thread installation (fanquake)
06e1d7d81d build: don't build or use Boost Thread (fanquake)
7097add83c refactor: replace Boost shared_mutex with std shared_mutex in sigcache (fanquake)
8e55981ef8 refactor: replace Boost shared_mutex with std shared_mutex in cuckoocache tests (fanquake)

Pull request description:

  This replaces `boost::shared_mutex` and `boost::unique_lock` with [`std::shared_mutex`](https://en.cppreference.com/w/cpp/thread/shared_mutex) & [`std::unique_lock`](https://en.cppreference.com/w/cpp/thread/unique_lock).

  Even though [some concerns were raised](https://github.com/bitcoin/bitcoin/issues/16684#issuecomment-726214696) in #16684 with regard to `std::shared_mutex` being unsafe to use across some glibc versions, I still think this change is an improvement. As I mentioned in #21022, I also think trying to restrict standard library feature usage based on bugs in glibc is not only hard to do, but it's not currently clear exactly how we do that in practice (does it also extend to patching out use in our dependencies, should we be implementing more runtime checks for features we are using, when do we consider an affected glibc "old enough" not to worry about? etc). If you take a look through the [glibc bug tracker](https://sourceware.org/bugzilla/describecomponents.cgi?product=glibc) you'll no doubt find plenty of (active) bug reports for standard library code we already using. Obviously not to say we shouldn't try and avoid buggy code where possible.

  Two other points:

  [Cory mentioned in #21022](https://github.com/bitcoin/bitcoin/pull/21022#issuecomment-769274179):
  > It also seems reasonable to me to worry that boost hits the same underlying glibc bug, and we've just not happened to trigger the right conditions yet.

  Moving away from Boost to the standard library also removes the potential for differences related to Boosts configuration. Boost has multiple versions of `shared_mutex`, and what you end up using, and what it's backed by depends on:
  * The version of Boost.
  * The platform you're building for.
  * Which version of `BOOST_THREAD_VERSION` is defined: (2,3,4 or 5) default=2. (see [here](https://www.boost.org/doc/libs/1_70_0/doc/html/thread/build.html#thread.build.configuration) for some of the differences).
  * Is `BOOST_THREAD_V2_SHARED_MUTEX` defined? (not by default). If so, you might get the ["less performant, but more robust"](https://github.com/boostorg/thread/issues/230#issuecomment-475937761) version of `shared_mutex`.

  A lot of these factors are eliminated by our use of depends, but users will have varying configurations. It's also not inconceivable to think that a distro, or some package manager might start defining something like `BOOST_THREAD_VERSION=3`. Boost tried to change the default from 2 to 3 at one point.

  With this change, we no longer use Boost Thread, so this PR also removes it from depends, the build system, CI etc.

  Previous similar PRs were #19183 & #20922. The authors are included in the commits here.
  Also related to #21022 - pthread sanity checking.

ACKs for top commit:
  laanwj:
    Code review ACK 060a2a64d4
  vasild:
    ACK 060a2a64d4

Tree-SHA512: 572d14d8c9de20bc434511f20d3f431836393ff915b2fe9de5a47a02dca76805ad5c3fc4cceecb4cd43f3ba939a0508178c4e60e62abdbaaa6b3e8db20b75b03
2021-02-12 11:39:36 +01:00
Gunar C. Gessner
e1604b3d50 doc: Replace tabs for spaces 2021-02-04 12:06:13 +00:00
fanquake
06e1d7d81d
build: don't build or use Boost Thread 2021-02-02 12:38:22 +08:00
Hennadii Stepanov
ae749d12dd
doc: Add libnatpmp stuff 2021-01-07 18:07:10 +02:00
Andrew Chow
99309ab3e9 Allow disabling BDB in configure with --without-bdb 2020-11-18 11:56:12 -05:00
Luke Dashjr
7b54d768e1 Make sqlite support optional (compile-time) 2020-10-20 13:44:43 +00:00
Andrew Chow
6c6639ac9f Include sqlite3 in documentation 2020-10-14 11:28:18 -04:00
fanquake
ad345909b2
doc: remove Boost Chrono from install docs 2020-03-07 08:34:31 +08:00
Wladimir J. van der Laan
278751ea11 doc: Remove ssl as a required dependency from build-unix 2019-11-19 15:03:44 +01:00
fanquake
a4eb839619
doc: remove OpenSSL from build instructions and licensing info 2019-11-18 08:56:48 -05:00
fanquake
1cb9a4e28c
docs: remove protobuf from docs 2019-10-24 16:01:42 -04:00
Marius Kjærstad
6f6852335f
doc: Changed miniupnp links to https
doc: Changed miniupnp links to https
2019-10-24 14:57:36 +02:00
fanquake
ff6122f32b
doc: clarify protobuf build requirements 2019-09-14 10:50:04 +08:00
fanquake
e09913f1c4
doc: specify protobuf as optional in build docs 2019-09-12 20:28:53 +10:00
Hennadii Stepanov
dc1bc1c503
doc: Add ZMQ dependencies to Fedora build 2019-08-18 15:54:48 +03:00
fanquake
c3b605cf13
Merge #16586: doc: Mention other ways to conserve memory on compilation
fa7789f731 doc: Mention other ways to conserve memory on compilation (MarcoFalke)

Pull request description:

  Related to:

  *  Building requires >1GB memory #6658

ACKs for top commit:
  instagibbs:
    ACK fa7789f731
  kristapsk:
    ACK fa7789f731

Tree-SHA512: 828593de9cfa9f9027c6c8e97abe95e3fad9f2ff50e6512808a8950de4a1f9ea901e724edfb96d7119224c3e38a136e60cb798b34ef682c585a7951e02124a3a
2019-08-14 14:12:26 +08:00
MarcoFalke
fa7789f731
doc: Mention other ways to conserve memory on compilation 2019-08-12 16:22:09 -04:00
Emil Engler
1f26328c1b
doc: Update Markdown syntax for bdb packages 2019-08-11 23:07:59 +02:00
MarcoFalke
fa3148aacb
doc: Remove ppa from linux build instructions 2019-03-03 11:37:40 -05:00
Martin Erlandsson
36c8e68585 Various textual improvements in build docs 2018-10-28 06:01:01 +01:00
poiuty
86eddd466e
doc: miss install 2018-10-04 18:49:05 +03:00
MarcoFalke
69a29b5a8e
Merge #14264: doc: Split depends installation instructions per arch
fad95e8da6 doc: Split build linux dependencies (MarcoFalke)
0000009015 doc: Split depends installation instructions per arch (MarcoFalke)

Pull request description:

  The current depends installation instructions fail on bionic with

  ```
  E: Unable to locate package g++-4.8-aarch64-linux-gnu
  E: Unable to locate package gcc-4.8-aarch64-linux-gnu
  E: Unable to locate package g++-4.8-arm-linux-gnueabihf
  E: Unable to locate package gcc-4.8-arm-linux-gnueabihf
  ```

  Also, they fail due to missing dependencies `make automake cmake pkg-config python3`

  Fix this by removing the explicit version and splitting them into common instructions and instructions per linux architecture.

Tree-SHA512: 25d5efa7450a0b1bbd569f431158f5a25bf4fe34f6adc32ebdfd6b6db9447ce083f555f20ff5b9f7c458864986c15d65219a31a1cd2b18bad9965ece2ea5e3be
2018-10-04 00:58:08 -03:00
Walter
52beb9ed88
Add autogen.sh in ARM Cross-compilation
autogen for the config files was missing.
2018-09-20 13:57:29 +02:00
MarcoFalke
fad95e8da6
doc: Split build linux dependencies 2018-09-19 10:18:35 -04:00
mruddy
f1bd03eb01 [depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid deprecated zeromq api functions 2018-09-11 16:33:05 -04:00
Michael Goldstein
e351a16a2a Remove reference to deprecated RPC call in build instructions 2018-09-05 14:21:18 -05:00
William Robinson
3be70ba400
trivial: Fixed typos and cleaned up language 2018-08-02 21:27:16 +08:00
Chun Kuan Lee
f447a0a707 Remove program options from build system 2018-07-18 02:48:34 +00:00
Wladimir J. van der Laan
dc53f7f251
Merge #13458: gui: Drop qt4 support
af6ac3b677 doc: Remove mention of Qt4 from build docs (Wladimir J. van der Laan)
462c71f71b test: Update travis to not test Qt4 anymore (Wladimir J. van der Laan)
907f73bbc5 gui: Remove QT_VERSION fallbacks for Qt < 5 (Wladimir J. van der Laan)
bad068ad9f build: Build system changes to support only Qt5 (Wladimir J. van der Laan)

Pull request description:

  Implements #8263.

  Qt4.x has been EOL since 2015, and at least Gentoo has, or is going to drop support for it. I wouldn't be surprised if other Linux distributions follow.

  This removes Qt4 detection from the build system, as well as removes all Qt4 fallbacks from the code. Turns out there's more than I expected: this is going to make maintenance of the GUI code, as well as adding new features significantly easier.

  (I know there's still some references left to qt4 in RPM and Debian build script, but I don't have the knowledge how to fix them)

Tree-SHA512: d495924fd4dda6f6566ba44ee96be7cbe62e69ba1ca993b80a8449f78da852b7f1bd3e8200d57cfa1d72233c340eeff4596fb0032ecbddc715d99aea63817d3f
2018-06-24 16:02:37 +02:00
Wladimir J. van der Laan
af6ac3b677 doc: Remove mention of Qt4 from build docs 2018-06-18 12:22:14 +02:00
MarcoFalke
fa3d39ec53
doc: Remove note to install all boost dev packages 2018-06-13 15:11:31 -04:00
steverusso
1e4eec47be doc: split FreeBSD build instructions out of build-unix.md
docs: Linked to the 'Building on FreeBSD' section of the Unix guide where it lists BSD specific guides.

Created a FreeBSD build guide (doc/build-freebsd.md).

Added in warning about the version of 'gdb' installed by default.

Removed the FreeBSD build instructions now that they have their own guide (doc/build-freebsd.md).

Updated the sentence to refer to the BSD guides in the 'doc' directory for more specific BSD build instructions.

Minor grammatical fix.
2018-06-02 01:42:50 -04:00
Dan Bolser
c5be37e2c6 doc: Mention configure without wallet in FreeBSD instructions
The wallet part is described as optional, but apparently isn't
2018-03-06 22:07:20 +01:00
Alex Vear
ee5e8968b3 Organise Linux build instructions to be categorised by distro 2018-01-30 21:55:31 +00:00
Alex Vear
4c855174e1 Add NetBSD build instruction links 2018-01-30 21:03:58 +00:00
Wladimir J. van der Laan
7a11ba7e01
Merge #11945: Improve BSD compatibility of contrib/install_db4.sh
2712742 doc: Update FreeBSD build instructions to use bdb4 (Wladimir J. van der Laan)
d95c83d contrib: FreeBSD compatibility in install_db4.sh (Wladimir J. van der Laan)
c0298b0 contrib: Make X=Y arguments work in install_db4 (Wladimir J. van der Laan)
b798f9b contrib: New clang patch for install_db4 (Wladimir J. van der Laan)

Pull request description:

  This PR improves the BSD compatibility of the bdb4 installer script.

  See #11921, #11868.

  I've tested this on OpenBSD 6.2 (clang) and Ubuntu 16.04 (gcc).

  This needs testing on OSX at least, ~~and on gcc/Linux to make sure that applying the patch unconditionally doesn't negatively affect gcc~~.

  ~~NB: this is not yet sufficient to make `install_db4.sh` work on FreeBSD, as we need to use yet another `sha256` tool there. But it's a step in the right direction.~~

  ### contrib: New clang patch for install_db4

  Replace the clang patch with a new and improved version that also fixes the build issues with OpenBSD and FreeBSD's clang, and apply it unconditionally.

  Thanks to @fanquake for finding the patch.

  ### contrib: Make X=Y arguments work in install_db4

  Trailing X=Y arguments are supposed to be passed through unchanged to bdb's configure. This was not the case, at least with OpenBSD 6.2's shell.

  Fix this by not storing the arguments in a temporary variable but passing "$@" through directly.

  ### contrib: FreeBSD compatibility in install_db4.sh

  Unfortunately, FreeBSD uses yet another syntax for `sha256`.

  Support FreeBSD's syntax too. Using `uname` is a bit of a hack but it works and I found no way to distinguish the two.

Tree-SHA512: 12461a58dfeb4834701891762efc747c8187d834f41d98c8451edee1402a3958c4842bbc02c61bacbc7b0d90cc6b020a2ca158b65304d9760c9f0d2052ff36d4
2017-12-21 09:30:25 +01:00
Wladimir J. van der Laan
2712742ef2 doc: Update FreeBSD build instructions to use bdb4
Use Berkeley DB 4 as recommended on other platforms.
2017-12-20 15:16:01 +01:00
laudaa
3d3e58e46c [Doc] Fix link to installation script 2017-12-20 13:39:16 +01:00
James O'Beirne
af9103eb75 [build] Add a script for installing db4
Instead of maintaining not-easily-tested instructions for building BerkeleyDB
in doc/build-unix.md, package the installation as a script in contrib/. This
allows shared usage from a number of contexts, e.g. Docker.

Thanks to @jonasschnelli, @laanwj for feedback.
2017-11-16 11:49:19 -08:00
Wladimir J. van der Laan
f65614726d
Merge #10779: Create dependencies.md
e91b96192 Create dependencies.md, and link dependencies file from README & build docs (flack)

Pull request description:

  As @fanquake mentioned in #8639, this should probably be a file in `doc/`, so I went ahead and pulled the issue text via the github API and dumped it into a file. No modifications made, except one spelling fix. This makes the info easier to find, and it will get a proper version history, too.

Tree-SHA512: 6ba4c37c97200972a74724e0e346d6ad5947c01ad18638e15250f2b4cd747dd744aba16e306c98d59f35736542a5eded7a17b6a5ce6aebc63c0a9dc969b365ef
2017-09-07 02:49:14 +02:00
flack
e91b961923 Create dependencies.md, and link dependencies file from README & build docs 2017-09-07 00:34:27 +02:00
danra
7bb5d3000c Add python3 to list of dependencies on some platforms
python3 is required for running the unit tests on macOS, Ubuntu and Fedora.

Without python3 installed, 'make check' fails because /test/util/bitcoin-util-test.py fails to find python3.
2017-08-30 23:29:30 +03:00
Shigeya Suzuki
0611bc3439 Minor fix in build documentation for FreeBSD 11
- Package name is libevent, not libevent2
- Need to use GNU make
2017-04-21 10:09:10 +09:00
Wladimir J. van der Laan
5cc2ebb619 Update OpenBSD and FreeBSD build steps
Re-try with most recent versions, and use BDB_CFLAGS/BDB_LIBS to
directly point at BerkeleyDB instead of CPPFLAGS hacks.
2017-02-07 13:01:41 +01:00
Amir Abrams
69bc8e7967 [Doc] Move comments above bash command 2016-11-23 02:22:59 -06:00