Re: Cygport configure script argument handling

2022-03-11 Thread Adam Dinwoodie
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

2022-03-10 Thread Yaakov Selkowitz
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

2022-03-10 Thread Adam Dinwoodie
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?