Cygport configure script argument handling

Yaakov Selkowitz
Fri Mar 11 05:38:47 GMT 2022

On Thu, 2022-03-10 at 16:41 +0000, Adam Dinwoodie wrote:
> I've fallen down a slight rabbit hole looking at the cygconf function in
> Cygport's autotools.cygclass.  The specific bit of code that's causing
> me consternation is thus:
>         case "x${confver}" in
>                 x2.6[0-9]*)
>                         confargs+=" --docdir=/usr/share/doc/${PN} --htmldir=/usr/share/doc/${PN}/html"
>                         ;;
>                 *)
>                         confargs+=" --infodir=${prefix}/share/info --mandir=${prefix}/share/man"
>                         ;;
>         esac
> Firstly, I think the glob is incorrect: it looks like it was intended to
> match files that came from Autoconf versions 2.60 and up -- 2.60 is when
> Autoconf added the docdir and htmldir arguments -- but it has stopped
> working as expected: Autoconf released 2.70 in December 2020, and is now
> up to 2.71.  The above code won't match those versions.

Yes, this likely needs to be updated for 2.70+.

> Secondly -- and I'm not sure if this is intended or not -- I don't
> understand why --infodir and --mandir are only defined for versions
> prior to 2.60 (and, apparently unintentionally, 2.70 onwards).  Those
> are valid both before and after 2.60.  My best guess is that the intent
> was for the first option to fall through to the second, so for 2.60+ all
> four options would be defined, but that would have required `;&` or
> `;;&` rather than `;;`.

No. 2.60 included changes for these (and other) directory values:

docdir and htmldir were added in 2.60, hence we don't want to pass them when
<=2.59 is detected.  infodir and mandir were changed in 2.60, from
$prefix/{info,man} (which cygport needed to override for FHS compliance) to
$datarootdir/{info,man}, where the new datarootdir is $prefix/share, meaning
they no longer needed to be overriden by cygport.



More information about the Cygwin-apps mailing list