Re: Cygport configure script argument handling
On Fri, Mar 11, 2022 at 12:38:47AM -0500, Yaakov Selkowitz wrote: > On Thu, 2022-03-10 at 16:41 +, 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+. Grand, I'll see if I can offer a patch shortly :) > > 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: > > https://lists.gnu.org/archive/html/autotools-announce/2006-06/msg2.html > > 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. Ah! Yes, that makes sense. Thank you for the explanation! Adam
Re: Cygport configure script argument handling
On Thu, 2022-03-10 at 16:41 +, 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: https://lists.gnu.org/archive/html/autotools-announce/2006-06/msg2.html 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. HTH, -- Yaakov
Cygport configure script argument handling
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?