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.

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 `;;`.

Can anyone explain what the intent of this code is?  Are these both the
bugs that I think they are, or am I missing the intent?

Reply via email to