doc: Update for FreeBSD 12.2, add GUI Build Instructions #20601

pull jarolrod wants to merge 1 commits into bitcoin:master from jarolrod:master changing 1 files +90 −22
  1. jarolrod commented at 3:31 pm on December 8, 2020: member

    The current FreeBSD Build documentation is a little outdated and underwhelming. This PR intends to keep the build-freebsd.md doc up to date. Here are the main improvements:

    • Introduce dependency information
    • New instructions for building the GUI
    • Instructions for supporting descriptor wallets
    • Various notes on the build and compile process

    Before/Master: render

    After/PR: render

  2. DrahtBot added the label Docs on Dec 8, 2020
  3. vasild commented at 5:29 am on December 9, 2020: member
    Render: master, this PR.
  4. in doc/build-freebsd.md:55 in e0d79837ae outdated
    57 
    58-In order to run the test suite (recommended), you will need to have Python 3 installed:
    59+### 3. Install Optional Dependencies
    60+
    61+#### Wallet Dependencies
    62+It is not necessary to build wallet functionality to run bitcoind or the GUI. To enable legacy wallets, you must run the provided `BerekelyDB` install script. To enable [descriptor wallets]((https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md), `sqlite3` is required. Skip building `BerkeleyDB` if you intend to *exclusively* use descriptor wallets
    


    vasild commented at 5:43 am on December 9, 2020:
    0It is not necessary to build wallet functionality to run bitcoind or the GUI. To enable legacy wallets, you must install `db5`. To enable [descriptor wallets](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md), `sqlite3` is required. Skip `db5` if you intend to *exclusively* use descriptor wallets
    
  5. in doc/build-freebsd.md:39 in e0d79837ae outdated
    40 
    41 ## Preparation
    42 
    43-You will need the following dependencies, which can be installed as root via pkg:
    44+### 1. Install Required Dependencies
    45+You will need to install all of the required dependencies with `pkg install` as `root` or via `sudo`. If you want to use `sudo`, and you haven't set it up: [use this guide](http://www.freebsdwiki.net/index.php/Sudo%2C_configuring) to setup `sudo` access on FreeBSD.
    


    vasild commented at 5:46 am on December 9, 2020:
    0Install the required dependencies the usual way you [install software on FreeBSD](https://www.freebsd.org/doc/en/books/handbook/ports.html) - either with `pkg` or via the Ports collection. The example commands below use `pkg` which is usually run as `root` or via `sudo`. If you want to use `sudo`, and you haven't set it up: [use this guide](http://www.freebsdwiki.net/index.php/Sudo%2C_configuring) to setup `sudo` access on FreeBSD.
    
  6. in doc/build-freebsd.md:27 in e0d79837ae outdated
    27+
    28+The following dependencies are **optional**:
    29+
    30+  Library                                                                    | Purpose          | Description
    31+  ---------------------------------------------------------------------------|------------------|----------------------
    32+  db4.8                                                                      | Berkeley DB      | Wallet storage (only needed when wallet enabled)
    


    vasild commented at 5:50 am on December 9, 2020:
    0  [db5](https://svnweb.freebsd.org/ports/head/databases/db5/)                | Berkeley DB      | Wallet storage (only needed when wallet enabled)
    
  7. in doc/build-freebsd.md:62 in e0d79837ae outdated
    69 
    70 ```bash
    71-pkg install python3
    72+./contrib/install_db4.sh `pwd`
    73+export BDB_PREFIX="$PWD/db4"
    74 ```
    


    vasild commented at 5:55 am on December 9, 2020:
    0 ###### Legacy Wallet Support
    1
    2`db5` is required to enable support for legacy wallets. Skip if you don't intend to use legacy wallets.
    3``` bash
    4pkg install db5
    

    jarolrod commented at 1:11 am on December 10, 2020:
    resolved this in 2e8b9a5, thanks for all of your suggestions!
  8. in doc/build-freebsd.md:109 in e0d79837ae outdated
    120+There are many ways to configure Bitcoin Core, here are a few common examples:
    121+##### Wallet (BDB + SQlite) Support, No GUI:
    122+This explicitly enables legacy wallet support and disables the GUI. If `sqlite3` is installed, then descriptor wallet support will be built.
    123 ```bash
    124 ./autogen.sh
    125 ./configure --with-gui=no \
    


    vasild commented at 6:04 am on December 9, 2020:
    0./configure --with-gui=no --with-incompatible-bdb \
    1    BDB_LIBS="-ldb_cxx-5" \
    2    BDB_CFLAGS="-I/usr/local/include/db5" \
    
  9. in doc/build-freebsd.md:108 in e0d79837ae outdated
    111@@ -47,13 +112,20 @@ With wallet:
    112     MAKE=gmake
    


    vasild commented at 6:05 am on December 9, 2020:
    I never needed to append MAKE=gmake to ./configure. Just running gmake later suffices. If that works for you too, then I would suggest to remove it from here.

    laanwj commented at 11:52 am on December 9, 2020:
    I don’t seem to need MAKE=gmake either anymore—even on FreeBSD 12.1! It always crashed in the configure stage while resolving dependencies without that. Strange, must have changed with some autotools/autoconf update

    laanwj commented at 1:35 pm on December 9, 2020:

    Oh crap it’s back. This seems to happen not initially, but after gmake automatically decides to re-run configuref

    0config.status: error: in `/home/user/src/bitcoin':
    1config.status: error: Something went wrong bootstrapping makefile fragments
    2    for automatic dependency tracking.  If GNU make was not used, consider
    3    re-running the configure script with MAKE="gmake" (or whatever is
    4    necessary).  You can also try re-running configure with the
    5    '--disable-dependency-tracking' option to at least be able to build
    6    the package (albeit without support for automatic dependency tracking).
    7See `config.log' for more details
    8gmake: *** [Makefile:718: Makefile] Error 1
    

    Using --disable-dependency-tracking is an extremely bad idea because it essentially removes make’s ability to detect what files are affected by changes during development or when pulling from git. This means you can get ‘fault ines’ where one side of the binary is compiled against a certain data structure and another with the changed one. This has resulted in hours of debugging headaches for me. Dont’ do it.


    vasild commented at 3:38 pm on December 9, 2020:

    Ah, then I guess MAKE=gmake should stay.

    Thanks for the hint!

  10. vasild commented at 6:10 am on December 9, 2020: member

    Excellent work!

    I think it is ok to recommend using db5 from the Ports/packages as installing that is a breeze compared to db4.8 which is not in the Ports/packages.

    Some other minor suggestions below.

  11. DrahtBot commented at 4:09 pm on December 9, 2020: member

    🕵️ @harding @fanquake have been requested to review this pull request as specified in the REVIEWERS file.

  12. vasild commented at 8:58 am on December 10, 2020: member

    https://travis-ci.org/github/bitcoin/bitcoin/builds/748668149#L457

    The subject line of commit hash 6de81d17b6e9b5b413fb354c9ac210a02a35d218 is followed by a non-empty line. Subject lines should always be followed by a blank line.

    I think it is ok to squash everything in one commit.

  13. doc: Update for FreeBSD 12.2, add GUI Build Instructions
    The current FreeBSD Build documentation is a little outdated and underwhelming. This PR updates the doc to
    be more informative. It also adds new instructions for building the GUI and adding support for  descriptor
    wallets.
    
    on vasild's recommendation: it is ok to point the user to download db5 which has an active port package
    instead of building db4 from the provided script.
    
    Co-authored-by: Vasil Dimov <vd@freebsd.org>
    c175690561
  14. jarolrod force-pushed on Dec 10, 2020
  15. laanwj commented at 6:11 pm on December 14, 2020: member

    Seems fine to me.

    It does change the document to a different style than the others, e.g. we don’t use --- (horizontal separator) after sections anywhere else, but I don’t know if that’s important.

    utACK c17569056105d221053a839d5430df5b3e94f746

  16. laanwj merged this on Dec 16, 2020
  17. laanwj closed this on Dec 16, 2020

  18. sidhujag referenced this in commit baf439bd56 on Dec 17, 2020
  19. fanquake referenced this in commit d6e3ac89d4 on Mar 18, 2021
  20. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-22 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me