rst2man installed as rst2man.py on macOS

Issue #57 resolved
Daniel Aleksandersen created an issue

brew install docutils provides /usr/local/bin/rst2man.py for macOS users. (I believe this will be how most macOS users get docutils as Homebrew is well-known and popular.)

SSHGuard assumed the rst2man utility is called rst2man not rst2man.py. Introduced by me in commit 96abed9. Not sure how to best adopt autotools to address this.

Comments (11)

  1. Kevin Zheng
    • changed status to open

    The .py version of the command might be the canonical name; my rst2man is a symlink to rst2man.py. I'll check around and if this is the canonical way, we'll simply update the Makefile.

  2. Daniel Aleksandersen reporter

    my rst2man is a symlink to rst2man.py.

    That sees to be the case on Fedora as well.

  3. Daniel Aleksandersen reporter

    Okay, so Fedora 26 (unstable) and Ubuntu 16.10 (stable) use /usr/bin/rst2man (without .py). Commit 8521095 didn’t really solve this.

  4. Daniel Aleksandersen reporter

    pull request #20 has some logic that sets RST2MAN as a Make variable.

    I saw that. However, it didn’t really auto solve anything which is what autotools is for. I’ll make and test a pull with AC_CHECK_PROGS to figure out the path automagically.

  5. El Topo

    I still have problem with Debian jessie:

    #!
    
    $ ./configure
    ...
    ...
    ...
    ## ----------------------------------- ##
    ## Headers, Types, and Compiler Checks ##
    ## ----------------------------------- ##
    checking getopt.h usability... yes
    checking getopt.h presence... yes
    checking for getopt.h... yes
    checking sys/capsicum.h usability... no
    checking sys/capsicum.h presence... no
    checking for sys/capsicum.h... no
    checking sys/capability.h usability... no
    checking sys/capability.h presence... no
    checking for sys/capability.h... no
    checking for rst2man,... no
    checking for rst2man.py... no
    configure: error: required program 'rst2man' not found.
    

    I do have python-docutils package installed and have /usr/bin/rst2man.

    Note that "checking for rst2man,... no" is weird: with a ','. I changed my configure.ac with this (add a space between "rst2man" and ','):

    AC_CHECK_PROGS(RST2MAN_PROG, [rst2man , rst2man.py], no)

    now it works:

    #! 
    
    $ autoconf -i
    $ configure
    ...
    ...
    ...
    ## ----------------------------------- ##
    ## Headers, Types, and Compiler Checks ##
    ## ----------------------------------- ##
    checking getopt.h usability... yes
    checking getopt.h presence... yes
    checking for getopt.h... yes
    checking sys/capsicum.h usability... no
    checking sys/capsicum.h presence... no
    checking for sys/capsicum.h... no
    checking sys/capability.h usability... no
    checking sys/capability.h presence... no
    checking for sys/capability.h... no
    checking for rst2man... rst2man
    ## ----------------- ##
    ## Library Functions ##
    ## ----------------- ##
    checking for library containing gethostbyname... none required
    checking for library containing pthread_create... -lpthread
    checking for library containing socket... none required
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating src/Makefile
    config.status: creating src/blocker/Makefile
    config.status: creating src/fw/Makefile
    config.status: creating src/parser/Makefile
    config.status: creating src/common/config.h
    config.status: src/common/config.h is unchanged
    config.status: executing depfiles commands
    
  6. Daniel Aleksandersen reporter

    Note that "checking for rst2man,... no" is weird: with a ','. I changed my configure.ac with this (add a space between "rst2man" and ','):

    That is because I’m an idiot. It’s supposed to be space-separated and not comma-separated. I’ll fix that right away. Thanks for raising the issue, @eltopo.

  7. Log in to comment