gen-manpages.py should skip nonexistent binaries and still work for the existent binaries #30985

issue andremralves openend this issue on September 26, 2024
  1. andremralves commented at 9:35 pm on September 26, 2024: none

    Is there an existing issue for this?

    • I have searched the existing issues

    Current behaviour

    By executing BUILDDIR=$PWD/build contrib/devtools/gen-manpages.py, if one binary is not found, it will stop the generation of all manpages.

    For example: Executing gen-manpages.py without bitcoin-qt. The command exits after detecting that bitcoin-qt does not exist, and no manpage is generated, even though only bitcoin-qt is missing.

    0➜  bitcoin git:(master)BUILDDIR=$PWD/build contrib/devtools/gen-manpages.py
    1/home/andre/repos/bitcoin/build/src/qt/bitcoin-qt not found or not an executable
    2➜  bitcoin git:(master)

    Initially, I thought this behavior was intended, but after investigating the older shell script implementation gen-manpages.sh, I realized that’s not the case. gen-manpages.sh was able to generate all the manpages and just warned the user about missing binaries.

    Example using the last version of the shell script: https://github.com/bitcoin/bitcoin/blob/a5edd191be93aff8f9c0f60f04e711e2e78ecc77/contrib/devtools/gen-manpages.sh

     0➜  bitcoin git:(master)BUILDDIR=$PWD/build contrib/devtools/gen-manpages.sh
     1contrib/devtools/gen-manpages.sh: line 25: /home/andre/repos/bitcoin/build/src/qt/bitcoin-qt: No such file or directory
     2help2man: can't get `--help' info from /home/andre/repos/bitcoin/build/src/qt/bitcoin-qt
     3Try `--no-discard-stderr' if option outputs to stderr
     4➜  bitcoin git:(master) ✗ git status
     5On branch master
     6Your branch is up to date with 'origin/master'.
     7
     8Changes not staged for commit:
     9  (use "git add <file>..." to update what will be committed)
    10  (use "git restore <file>..." to discard changes in working directory)
    11	modified:   doc/man/bitcoin-cli.1
    12	modified:   doc/man/bitcoin-tx.1
    13	modified:   doc/man/bitcoin-util.1
    14	modified:   doc/man/bitcoin-wallet.1
    15	modified:   doc/man/bitcoind.1
    

    The script warned about bitcoin-qt being missing but still generated the other manpages, as you can see with the git status command.

    Expected behaviour

    0➜  bitcoin git:(master)BUILDDIR=$PWD/build contrib/devtools/gen-manpages.py
    1/home/andre/repos/bitcoin/build/src/qt/bitcoin-qt not found or not an executable. Skipping...
    2Generating /home/andre/repos/bitcoin/doc/man/bitcoind.1…
    3Generating /home/andre/repos/bitcoin/doc/man/bitcoin-cli.1…
    4Generating /home/andre/repos/bitcoin/doc/man/bitcoin-tx.1…
    5Generating /home/andre/repos/bitcoin/doc/man/bitcoin-wallet.1…
    6Generating /home/andre/repos/bitcoin/doc/man/bitcoin-util.1…
    

    Steps to reproduce

    Run BUILDDIR=$PWD/build contrib/devtools/gen-manpages.py without having one of the binaries compiled e.g. bitcoin-qt.

    Relevant log output

    No response

    How did you obtain Bitcoin Core

    Compiled from source

    What version of Bitcoin Core are you using?

    master

    Operating system and version

    Debian

    Machine specifications

    No response


andremralves


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-09-29 01:12 UTC

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