aboutsummaryrefslogtreecommitdiff
path: root/doc/build-unix.md
AgeCommit message (Collapse)Author
2022-03-18doc: clarify that BDB is only required for the legacy walletfanquake
2022-03-16doc: rework dependencies.mdfanquake
2022-02-13build: use header-only Boost unit testfanquake
2022-02-03build: remove Boost::system usagefanquake
2022-02-03build: remove boost::filesystem usageKiminuo
2021-11-14Fix Arch linux dead link0xree
2021-11-09doc: remove redundant optionals from build-unix.mdfanquake
Calling dependencies optional in a list of already optional dependencies is redundant.
2021-11-09doc: remove Boost build note from build-unix.mdfanquake
We don't do this for any other dependency, and users are better looking at the actual Boost site/docs. This isn't something we should need to have in our build docs.
2021-11-08Merge bitcoin/bitcoin#23464: doc: remove mention of system univalue from ↵fanquake
build-unix.md 78e36700a0b42f558af2be567eab9fbf6c9ef0b1 doc: remove mention of system univalue (fanquake) Pull request description: Should have been part of #22646. ACKs for top commit: hebasto: ACK 78e36700a0b42f558af2be567eab9fbf6c9ef0b1 Tree-SHA512: a5d54d73526033825ce4467cc3c57c26064739eef546556975a4c6f1f5bea84004640acd426734f90f98bc7a76ec837d716aa31167f2bdce7ee3887ad92e3152
2021-11-08doc: remove mention of system univaluefanquake
Should have been part of #22646.
2021-11-05doc: Mention that BerkeleyDB is for legacy wallet in build-unixW. J. van der Laan
This updates build-unix for the descriptor wallet, and prepares for eventual legacy wallet deprecation. - Move 'descriptor wallet' dependencies above legacy wallet deps both for Debian and Fedora. - Explicitly mention 'legacy wallet' where referring to the BerkeleyDB wallet. Shorten BerkeleyDB instruction to a single paragraph.
2021-09-10remove --enable-glibc-back-compat from CI and docsfanquake
2021-08-05doc: Add packages that provide Qt Wayland plugin for LinuxHennadii Stepanov
2021-07-27doc: document systemtap dependency0xb10c
2021-05-14docs: improve make with parallel jobs description.Klement Tan
2021-04-09doc: Use CONFIG_SITE instead of --prefixHennadii Stepanov
2021-03-02doc: Update build instructions for FedoraHennadii Stepanov
Fedora 33 requires adding the Cheese third-party repo to install libdb4-devel and libdb4-cxx-devel packages.
2021-02-17build: explicitly install libboost-dev packagefanquake
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-12Merge #21064: refactor: use std::shared_mutex & remove Boost ThreadWladimir J. van der Laan
060a2a64d40d75fecb60b7d2b9946a67e46aa6fc ci: remove boost thread installation (fanquake) 06e1d7d81d5a56d136c6fc88f09a2b0654a164f9 build: don't build or use Boost Thread (fanquake) 7097add83c8596f81be9edd66971ffd2486357eb refactor: replace Boost shared_mutex with std shared_mutex in sigcache (fanquake) 8e55981ef834490c438436719f95cbaf888c4914 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 060a2a64d40d75fecb60b7d2b9946a67e46aa6fc vasild: ACK 060a2a64d40d75fecb60b7d2b9946a67e46aa6fc Tree-SHA512: 572d14d8c9de20bc434511f20d3f431836393ff915b2fe9de5a47a02dca76805ad5c3fc4cceecb4cd43f3ba939a0508178c4e60e62abdbaaa6b3e8db20b75b03
2021-02-04doc: Replace tabs for spacesGunar C. Gessner
2021-02-02build: don't build or use Boost Threadfanquake
2021-01-07doc: Add libnatpmp stuffHennadii Stepanov
2020-11-18Allow disabling BDB in configure with --without-bdbAndrew Chow
2020-10-20Make sqlite support optional (compile-time)Luke Dashjr
2020-10-14Include sqlite3 in documentationAndrew Chow
2020-03-07doc: remove Boost Chrono from install docsfanquake
2019-11-19doc: Remove ssl as a required dependency from build-unixWladimir J. van der Laan
2019-11-18doc: remove OpenSSL from build instructions and licensing infofanquake
2019-10-24docs: remove protobuf from docsfanquake
2019-10-24doc: Changed miniupnp links to httpsMarius Kjærstad
doc: Changed miniupnp links to https
2019-09-14doc: clarify protobuf build requirementsfanquake
2019-09-12doc: specify protobuf as optional in build docsfanquake
2019-08-18doc: Add ZMQ dependencies to Fedora buildHennadii Stepanov
2019-08-14Merge #16586: doc: Mention other ways to conserve memory on compilationfanquake
fa7789f7317229f7366f7a132df199e005ed3bc6 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 https://github.com/bitcoin/bitcoin/pull/16586/commits/fa7789f7317229f7366f7a132df199e005ed3bc6 kristapsk: ACK fa7789f7317229f7366f7a132df199e005ed3bc6 Tree-SHA512: 828593de9cfa9f9027c6c8e97abe95e3fad9f2ff50e6512808a8950de4a1f9ea901e724edfb96d7119224c3e38a136e60cb798b34ef682c585a7951e02124a3a
2019-08-12doc: Mention other ways to conserve memory on compilationMarcoFalke
2019-08-11doc: Update Markdown syntax for bdb packagesEmil Engler
2019-03-03doc: Remove ppa from linux build instructionsMarcoFalke
2018-10-28Various textual improvements in build docsMartin Erlandsson
2018-10-04doc: miss installpoiuty
2018-10-04Merge #14264: doc: Split depends installation instructions per archMarcoFalke
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-09-20Add autogen.sh in ARM Cross-compilationWalter
autogen for the config files was missing.
2018-09-19doc: Split build linux dependenciesMarcoFalke
2018-09-11[depends, zmq, doc] upgrade zeromq to 4.2.5 and avoid deprecated zeromq api ↵mruddy
functions
2018-09-05Remove reference to deprecated RPC call in build instructionsMichael Goldstein
2018-08-02trivial: Fixed typos and cleaned up languageWilliam Robinson
2018-07-18Remove program options from build systemChun Kuan Lee
2018-06-24Merge #13458: gui: Drop qt4 supportWladimir J. van der Laan
af6ac3b677454644364fd24d0df0c02ac9b8c8db doc: Remove mention of Qt4 from build docs (Wladimir J. van der Laan) 462c71f71b5d753bc8327ab833dea23679450ca3 test: Update travis to not test Qt4 anymore (Wladimir J. van der Laan) 907f73bbc5b6c98b01d7c6088a294dea66634a3f gui: Remove QT_VERSION fallbacks for Qt < 5 (Wladimir J. van der Laan) bad068ad9f4bc60bfc10e27d4ffaec92d7df8491 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-18doc: Remove mention of Qt4 from build docsWladimir J. van der Laan
2018-06-13doc: Remove note to install all boost dev packagesMarcoFalke
2018-06-02doc: split FreeBSD build instructions out of build-unix.mdsteverusso
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.