mbox series

[libmnl,0/6] Doxygen Build Improvements

Message ID 20220803201247.3057365-1-jeremy@azazel.net
Headers show
Series Doxygen Build Improvements | expand

Message

Jeremy Sowden Aug. 3, 2022, 8:12 p.m. UTC
These changes were prompted by Mark Mentovai's request to remove a hard-coded
`/bin/bash` path from the rule that creates the man-page sym-links.  Hitherto,
the doxygen Makefile has jumped through a number of hoops to make sure
everything works with `make distcheck` and parallel builds.  This patch-set
makes some doxygen config changes that obviate the need for them, fixes a bug in
`make clean`, updates .gitignore and moves the shell-script out of the Makefile
into a separate file for ease of maintenance.  In the process, the hard-coded
`/bin/bash` is removed.

One thing I have left is the setting of `-p` when running the shell-script.  The
comment reads "`bash -p` prevents import of functions from the environment".
Why is this a problem?

Jeremy Sowden (6):
  build: add `make dist` tar-balls to .gitignore
  doc: add .gitignore for Doxygen artefacts
  doc: change `INPUT` doxygen setting to `@top_srcdir@`
  doc: move doxygen config file into doxygen directory
  doc: move man-page sym-link shell-script into a separate file
  doc: fix doxygen `clean-local` rule

 .gitignore                               |  3 +-
 configure.ac                             | 15 ++++++-
 doxygen/.gitignore                       |  4 ++
 doxygen/Makefile.am                      | 53 +++---------------------
 doxygen.cfg.in => doxygen/doxygen.cfg.in |  4 +-
 doxygen/finalize_manpages.sh             | 40 ++++++++++++++++++
 6 files changed, 67 insertions(+), 52 deletions(-)
 create mode 100644 doxygen/.gitignore
 rename doxygen.cfg.in => doxygen/doxygen.cfg.in (91%)
 create mode 100644 doxygen/finalize_manpages.sh

Comments

Duncan Roe Aug. 4, 2022, 3:45 a.m. UTC | #1
Hi Jeremy,

On Wed, Aug 03, 2022 at 09:12:41PM +0100, Jeremy Sowden wrote:
> These changes were prompted by Mark Mentovai's request to remove a hard-coded
> `/bin/bash` path from the rule that creates the man-page sym-links.  Hitherto,
> the doxygen Makefile has jumped through a number of hoops to make sure
> everything works with `make distcheck` and parallel builds.  This patch-set
> makes some doxygen config changes that obviate the need for them, fixes a bug in
> `make clean`, updates .gitignore and moves the shell-script out of the Makefile
> into a separate file for ease of maintenance.  In the process, the hard-coded
> `/bin/bash` is removed.
>
> One thing I have left is the setting of `-p` when running the shell-script.  The
> comment reads "`bash -p` prevents import of functions from the environment".
> Why is this a problem?
>
> Jeremy Sowden (6):
>   build: add `make dist` tar-balls to .gitignore
>   doc: add .gitignore for Doxygen artefacts
>   doc: change `INPUT` doxygen setting to `@top_srcdir@`
>   doc: move doxygen config file into doxygen directory
>   doc: move man-page sym-link shell-script into a separate file
>   doc: fix doxygen `clean-local` rule
>
>  .gitignore                               |  3 +-
>  configure.ac                             | 15 ++++++-
>  doxygen/.gitignore                       |  4 ++
>  doxygen/Makefile.am                      | 53 +++---------------------
>  doxygen.cfg.in => doxygen/doxygen.cfg.in |  4 +-
>  doxygen/finalize_manpages.sh             | 40 ++++++++++++++++++
>  6 files changed, 67 insertions(+), 52 deletions(-)
>  create mode 100644 doxygen/.gitignore
>  rename doxygen.cfg.in => doxygen/doxygen.cfg.in (91%)
>  create mode 100644 doxygen/finalize_manpages.sh
>
> --
> 2.35.1
Thanks for this but ... I think it would be better to use the netfilter-log
model.

That way there is no new shell script to maintain - libmnl would pick up
libnetfilter-queue's copy.

I found the time-consuming part was checking the new SYNOPSIS lines to be
sufficient. I have far less time nowadays (no Covid lockdowns, &c.) but I will
try to get it done soon-ish.

In the meantime I think Mark's 1-line patch to the existing mess is adequate.

The bin/bash thing is easily resolved: I've tested this in libnetfilter-queue:

> --- a/doxygen/build_man.sh
> +++ b/doxygen/build_man.sh
> @@ -1,4 +1,5 @@
> -#!/bin/bash -p
> +#!/bin/sh
> +[ -n "$BASH" ] || exec bash -p $0
>
>  # Script to process man pages output by doxygen.
>  # We need to use bash for its associative array facility.

Cheers ... Duncan.
Jeremy Sowden Aug. 4, 2022, 10:12 a.m. UTC | #2
On 2022-08-04, at 13:45:04 +1000, Duncan Roe wrote:
> On Wed, Aug 03, 2022 at 09:12:41PM +0100, Jeremy Sowden wrote:
> > These changes were prompted by Mark Mentovai's request to remove a
> > hard-coded `/bin/bash` path from the rule that creates the man-page
> > sym-links.  Hitherto, the doxygen Makefile has jumped through a
> > number of hoops to make sure everything works with `make distcheck`
> > and parallel builds.  This patch-set makes some doxygen config
> > changes that obviate the need for them, fixes a bug in `make clean`,
> > updates .gitignore and moves the shell-script out of the Makefile
> > into a separate file for ease of maintenance.  In the process, the
> > hard-coded `/bin/bash` is removed.
> >
> > One thing I have left is the setting of `-p` when running the
> > shell-script.  The comment reads "`bash -p` prevents import of
> > functions from the environment".  Why is this a problem?
> >
> > Jeremy Sowden (6):
> >   build: add `make dist` tar-balls to .gitignore
> >   doc: add .gitignore for Doxygen artefacts
> >   doc: change `INPUT` doxygen setting to `@top_srcdir@`
> >   doc: move doxygen config file into doxygen directory
> >   doc: move man-page sym-link shell-script into a separate file
> >   doc: fix doxygen `clean-local` rule
> >
> >  .gitignore                               |  3 +-
> >  configure.ac                             | 15 ++++++-
> >  doxygen/.gitignore                       |  4 ++
> >  doxygen/Makefile.am                      | 53 +++---------------------
> >  doxygen.cfg.in => doxygen/doxygen.cfg.in |  4 +-
> >  doxygen/finalize_manpages.sh             | 40 ++++++++++++++++++
> >  6 files changed, 67 insertions(+), 52 deletions(-)
> >  create mode 100644 doxygen/.gitignore
> >  rename doxygen.cfg.in => doxygen/doxygen.cfg.in (91%)
> >  create mode 100644 doxygen/finalize_manpages.sh
> >
> > --
> > 2.35.1
>
> Thanks for this but ... I think it would be better to use the
> netfilter-log model.
>
> That way there is no new shell script to maintain - libmnl would pick
> up libnetfilter-queue's copy.
>
> I found the time-consuming part was checking the new SYNOPSIS lines to
> be sufficient. I have far less time nowadays (no Covid lockdowns, &c.)
> but I will try to get it done soon-ish.
>
> In the meantime I think Mark's 1-line patch to the existing mess is
> adequate.

Cool.

J.