Re: [PATCH] INSTALL: update min libtool version from 1.4 to 2.0

"Pavel Lyalyakin via dev" <[email protected]> Tue, 4 Aug 2026 18:51:07 +0300
Newsgroups gmane.comp.version-control.subversion.devel
Message-ID <CAEyhmwa6JV2fsEJHqf5qjKVN7U2QLhCNqGOMwWPTyZeC3cvjCw@mail.gmail.com>
--000000000000acc47806583aa1ae
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hello,

On Tue, 4 Aug 2026 at 10:13, Daniel Sahlberg <[email protected]>
wrote:

> Hi Pavel,
>
> Den m=C3=A5n 3 aug. 2026 kl 18:11 skrev Pavel Lyalyakin <lyalyakin@apache=
.org>:
>
>> Hello,
>>
>> The minimum libtool version is 2.0[1][2], not 1.4.
>>
>> The Solaris-related note about libtool 1.4.3 the patch removes was added
>> in 2003[3] and hasn't been touched since. I don't see any relevant code =
in
>> current autogen.sh and buildcheck.sh, so I think this note can be safely
>> removed as well (the minimum version is 2.0, so this 1.4.3 note is
>> redundant anyway).
>>
>
> Great find, thanks! I was chasing the Solaris 1.4.3 note myself the other
> day but didn't find the referenced code - now I know where it went.
>
> The patch looks good to me but when I tried to verify that we actually
> check for libtool 2, I looked at the check in build/buildcheck.sh and it
> seems fishy:
> [[[
> lt_status=3D"good"
> if test "$1" =3D "$LIBTOOL_WANTED_MAJOR"; then
>    if test "$2" -gt "$LIBTOOL_WANTED_MINOR"; then
>       lt_status=3D"good"
>    elif test "$2" -lt "$LIBTOOL_WANTED_MINOR"; then
>       lt_status=3D"bad"
>    elif test ! -z "$LIBTOOL_WANTED_PATCH"; then
>        if test "$3" -lt "$LIBTOOL_WANTED_PATCH"; then
>            lt_status=3D"bad"
>        fi
>    fi
> fi
> if test $lt_status !=3D "good"; then
>   echo "buildcheck: libtool version $lt_pversion found."
>   echo "            You need libtool version $LIBTOOL_WANTED_VERSION or
> newer installed"
>   exit 1
> fi
>
> echo "buildcheck: libtool version $lt_pversion (ok)"
> ]]]
> Note how it default to good and only actually set the status to bad if th=
e
> major version is equal to the requested (2). Now, if I simulate version
> 1.2.3 (by setting lt_pversion a little earlier in the script), it actuall=
y
> run ok:
> [[[
> buildcheck: libtool version 1.2.3 (ok)
> ]]]
>

Thanks for the review!

You are absolutely right. Indeed, the current check doesn't work properly,
and I think it doesn't reject any libtool version at all. I've tested this
with libtool 1.5.26 installed and that version is accepted:
[[[
$ libtool --version
ltmain.sh (GNU libtool) 1.5.26 (1.1220.2.492 2008/01/30 06:40:56)

$ ./build/buildcheck.sh
buildcheck: checking installation...
buildcheck: autoconf version 2.72 (ok)
buildcheck: autoheader version 2.72 (ok)
buildcheck: libtool version 1.5.26 (ok)
]]]


> I believe the following test would be better (inspired by the test for
> autoconf a little earlier in the same file):
> [[[
> if test "$1" =3D "$LIBTOOL_WANTED_MAJOR" -a "$2" =3D "$LIBTOOL_WANTED_MIN=
OR"
> -a "$3" -lt "$LIBTOOL_WANTED_PATCH" || test "$1" =3D "$LIBTOOL_WANTED_MAJ=
OR"
> -\
> a "$2" -lt "$LIBTOOL_WANTED_MINOR" || test "$1" -lt
> "$LIBTOOL_WANTED_MAJOR"; then
>   echo "buildcheck: libtool version $lt_pversion found."
>   echo "            You need libtool version $LIBTOOL_WANTED_VERSION or
> newer installed"
>   exit 1
> fi
> ]]]
>
> Can you check if this works for you as well?
>

This code produces an error "100: test: Illegal number":
[[[
$ ./build/buildcheck.sh
buildcheck: checking installation...
buildcheck: autoconf version 2.72 (ok)
buildcheck: autoheader version 2.72 (ok)
*./build/buildcheck.sh: 100: test: Illegal number:*
buildcheck: libtool version 1.5.26 found.
            You need libtool version 2.0 or newer installed
]]]

If I change "LIBTOOL_WANTED_PATCH=3D" to "LIBTOOL_WANTED_PATCH=3D0", then t=
he
error goes away and the output is:
[[[
$ ./build/buildcheck.sh
buildcheck: checking installation...
buildcheck: autoconf version 2.72 (ok)
buildcheck: autoheader version 2.72 (ok)
buildcheck: libtool version 1.5.26 found.
            You need libtool version 2.0 or newer installed
]]]

And this works for 2.5.4 as well:
[[[
$ build/buildcheck.sh
buildcheck: checking installation...
buildcheck: autoconf version 2.72 (ok)
buildcheck: autoheader version 2.72 (ok)
buildcheck: libtool version 2.5.4 (ok)
]]]


> If you want to commit the changes to INSTALL yourself, here is my +1!
>

Committed in r1936876. Thanks again!


> Thanks,
> Daniel
>
>
>>
>> Thank you.
>>
>> [1]:
>> https://svn.apache.org/viewvc/subversion/trunk/build/buildcheck.sh?revis=
ion=3D1845716&view=3Dmarkup#l81
>> [2]: https://svn.apache.org/viewvc/?revision=3D1845716&view=3Drevision
>> [3]:
>> https://svn.apache.org/viewvc/subversion/trunk/INSTALL?annotate=3D193630=
6#l334
>>
> [4]: https://svn.apache.org/viewvc/?revision=3D1142604&view=3Drevision
>
>
>>
>> Log message:
>>
>> * INSTALL
>>   (I.B: Dependency Overview): update min libtool version to 2.0
>>   (I.C.6): update min libtool version to 2.0
>>   (I.C.6): remove outdated note about libtool 1.4.3 and Solaris.
>>
>> Patch by: Pavel Lyalyakin <[email protected]>
>>
>> --
>> With best regards,
>> Pavel Lyalyakin
>>
>>

--=20
With best regards,
Pavel Lyalyakin
VisualSVN Team

--000000000000acc47806583aa1ae
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div>He=
llo,</div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at=
tr">On Tue, 4 Aug 2026 at 10:13, Daniel Sahlberg &lt;<a href=3D"mailto:dani=
[email protected]" target=3D"_blank">[email protected]</a>&=
gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div =
dir=3D"ltr"><div dir=3D"ltr">Hi Pavel,<div><br></div><div><span style=3D"ba=
ckground-color:transparent">Den m=C3=A5n 3 aug. 2026 kl 18:11 skrev Pavel L=
yalyakin &lt;<a href=3D"mailto:[email protected]" target=3D"_blank">lyal=
[email protected]</a>&gt;:</span></div></div><div class=3D"gmail_quote"><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left=
:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"=
ltr"><div>Hello,</div><br></div><div dir=3D"ltr">The minimum libtool versio=
n is 2.0[1][2], not 1.4.<div><br></div><div>The Solaris-related note about =
libtool 1.4.3 the patch removes was added in 2003[3] and hasn&#39;t been to=
uched since. I don&#39;t see any relevant code in current autogen.sh and bu=
ildcheck.sh, so I think this note can be safely removed as well (the minimu=
m version is 2.0, so this 1.4.3 note is redundant anyway).</div></div></div=
></blockquote><div><br></div><div>Great find, thanks! I was chasing the Sol=
aris 1.4.3 note myself the other day but didn&#39;t find the referenced cod=
e - now I know where it went.</div><div><br></div><div>The patch looks good=
 to me but when I tried to verify=C2=A0<span style=3D"background-color:tran=
sparent">that we actually check for libtool 2, I looked at the check in=C2=
=A0</span><span style=3D"background-color:transparent">build/buildcheck.sh =
and it seems fishy:</span></div><div>[[[</div><div>lt_status=3D&quot;good&q=
uot;<br>if test &quot;$1&quot; =3D &quot;$LIBTOOL_WANTED_MAJOR&quot;; then<=
br>=C2=A0 =C2=A0if test &quot;$2&quot; -gt &quot;$LIBTOOL_WANTED_MINOR&quot=
;; then<br>=C2=A0 =C2=A0 =C2=A0 lt_status=3D&quot;good&quot;<br>=C2=A0 =C2=
=A0elif test &quot;$2&quot; -lt &quot;$LIBTOOL_WANTED_MINOR&quot;; then<br>=
=C2=A0 =C2=A0 =C2=A0 lt_status=3D&quot;bad&quot;<br>=C2=A0 =C2=A0elif test =
! -z &quot;$LIBTOOL_WANTED_PATCH&quot;; then<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0=
if test &quot;$3&quot; -lt &quot;$LIBTOOL_WANTED_PATCH&quot;; then<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0lt_status=3D&quot;bad&quot;<br>=C2=A0=
 =C2=A0 =C2=A0 =C2=A0fi<br>=C2=A0 =C2=A0fi<br>fi<br>if test $lt_status !=3D=
 &quot;good&quot;; then<br>=C2=A0 echo &quot;buildcheck: libtool version $l=
t_pversion found.&quot;<br>=C2=A0 echo &quot; =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0You need libtool version $LIBTOOL_WANTED_VERSION or newer inst=
alled&quot;<br>=C2=A0 exit 1<br>fi<br><br>echo &quot;buildcheck: libtool ve=
rsion $lt_pversion (ok)&quot;<br></div><div>]]]</div><div>Note how it defau=
lt to good and only actually set the status to bad if the major version is =
equal to the requested (2).=C2=A0<span style=3D"background-color:transparen=
t">Now, if I simulate version 1.2.3 (by setting lt_pversion a little earlie=
r in the script), it actually run ok:</span></div><div>[[[</div><div>buildc=
heck: libtool version 1.2.3 (ok)</div><div>]]]</div></div></div></blockquot=
e><div><br></div><div>Thanks for the review!</div><div><br></div><div>You a=
re absolutely right. Indeed, the current check doesn&#39;t work properly, a=
nd I think it doesn&#39;t reject any libtool version at all. I&#39;ve teste=
d this with libtool 1.5.26 installed and that version is accepted:</div><di=
v>[[[</div><div>$ libtool --version<br>ltmain.sh (GNU libtool) 1.5.26 (1.12=
20.2.492 2008/01/30 06:40:56)<br><br>$ ./build/buildcheck.sh<br>buildcheck:=
 checking installation...<br>buildcheck: autoconf version 2.72 (ok)<br>buil=
dcheck: autoheader version 2.72 (ok)<br>buildcheck: libtool version 1.5.26 =
(ok)</div><div>]]]</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>I believe =
the following test would be better (inspired by the test for autoconf a lit=
tle earlier in the same file):</div><div>[[[</div><div>if test &quot;$1&quo=
t; =3D &quot;$LIBTOOL_WANTED_MAJOR&quot; -a &quot;$2&quot; =3D &quot;$LIBTO=
OL_WANTED_MINOR&quot; -a &quot;$3&quot; -lt &quot;$LIBTOOL_WANTED_PATCH&quo=
t; || test &quot;$1&quot; =3D &quot;$LIBTOOL_WANTED_MAJOR&quot; -\<br>a &qu=
ot;$2&quot; -lt &quot;$LIBTOOL_WANTED_MINOR&quot; || test &quot;$1&quot; -l=
t &quot;$LIBTOOL_WANTED_MAJOR&quot;; then<br>=C2=A0 echo &quot;buildcheck: =
libtool version $lt_pversion found.&quot;<br>=C2=A0 echo &quot; =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0You need libtool version $LIBTOOL_WANTED_VER=
SION or newer installed&quot;<br>=C2=A0 exit 1<br>fi</div><div>]]]</div><di=
v><br></div><div>Can you check if this works for you as well?</div></div></=
div></blockquote><div><br></div><div>This code produces an error &quot;100:=
 test: Illegal number&quot;:</div><div>[[[</div><div>$ ./build/buildcheck.s=
h<br>buildcheck: checking installation...<br>buildcheck: autoconf version 2=
.72 (ok)<br>buildcheck: autoheader version 2.72 (ok)<br><b>./build/buildche=
ck.sh: 100: test: Illegal number:</b><br>buildcheck: libtool version 1.5.26=
 found.<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 You need libtool versi=
on 2.0 or newer installed</div><div>]]]</div><div><br></div><div>If I chang=
e &quot;LIBTOOL_WANTED_PATCH=3D&quot; to &quot;LIBTOOL_WANTED_PATCH=3D0&quo=
t;, then the error goes away and the output is:</div><div>[[[</div><div>$ .=
/build/buildcheck.sh<br>buildcheck: checking installation...<br>buildcheck:=
 autoconf version 2.72 (ok)<br>buildcheck: autoheader version 2.72 (ok)<br>=
buildcheck: libtool version 1.5.26 found.<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 You need libtool version 2.0 or newer installed</div><div>]]]=
</div><div><br></div><div>And this works for 2.5.4 as well:</div><div>[[[</=
div><div>$ build/buildcheck.sh<br>buildcheck: checking installation...<br>b=
uildcheck: autoconf version 2.72 (ok)<br>buildcheck: autoheader version 2.7=
2 (ok)<br>buildcheck: libtool version 2.5.4 (ok)</div><div>]]]</div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"l=
tr"><div class=3D"gmail_quote"><div>If you want to commit the changes to IN=
STALL yourself, here is my=C2=A0+1!</div></div></div></blockquote><div><br>=
</div><div>
<div>Committed in=C2=A0r1936876. Thanks again!</div></div><div>=C2=A0</div>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div cla=
ss=3D"gmail_quote"><div>Thanks,</div><div><span style=3D"background-color:t=
ransparent">Daniel</span></div><div>=C2=A0</div><blockquote class=3D"gmail_=
quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,=
204);padding-left:1ex"><div dir=3D"ltr"><div dir=3D"ltr"><div><br></div><di=
v><div>Thank you.</div><div><br></div><div>
<div>[1]:=C2=A0<a href=3D"https://svn.apache.org/viewvc/subversion/trunk/bu=
ild/buildcheck.sh?revision=3D1845716&amp;view=3Dmarkup#l81" target=3D"_blan=
k">https://svn.apache.org/viewvc/subversion/trunk/build/buildcheck.sh?revis=
ion=3D1845716&amp;view=3Dmarkup#l81</a></div><div>[2]:=C2=A0<a href=3D"http=
s://svn.apache.org/viewvc/?revision=3D1845716&amp;view=3Drevision" target=
=3D"_blank">https://svn.apache.org/viewvc/?revision=3D1845716&amp;view=3Dre=
vision</a></div><div>[3]: <a href=3D"https://svn.apache.org/viewvc/subversi=
on/trunk/INSTALL?annotate=3D1936306#l334" target=3D"_blank">https://svn.apa=
che.org/viewvc/subversion/trunk/INSTALL?annotate=3D1936306#l334</a></div></=
div></div></div></div></blockquote><div>[4]:=C2=A0<a href=3D"https://svn.ap=
ache.org/viewvc/?revision=3D1142604&amp;view=3Drevision" target=3D"_blank">=
https://svn.apache.org/viewvc/?revision=3D1142604&amp;view=3Drevision</a></=
div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div=
 dir=3D"ltr"><div dir=3D"ltr"><div><div><div>



</div>

<br></div>

</div><div>Log message:</div><div><br></div><div>* INSTALL<br></div><div>=
=C2=A0 (I.B: Dependency Overview): update min libtool version to 2.0</div><=
div>=C2=A0 (I.C.6): update min libtool version to 2.0</div><div>=C2=A0 (I.C=
.6): remove outdated note about libtool 1.4.3 and Solaris.</div><div><br></=
div><div>Patch by: Pavel Lyalyakin &lt;<a href=3D"mailto:[email protected]=
rg" target=3D"_blank">[email protected]</a>&gt;</div><div><br></div><div=
>
<span class=3D"gmail_signature_prefix">-- </span><br><div dir=3D"ltr" class=
=3D"gmail_signature"><div dir=3D"ltr">
<font color=3D"#888888">With best regards,<br>
Pavel Lyalyakin</font>

</div></div>

<br></div></div>
</div>
</blockquote></div></div>
</blockquote></div><div><br clear=3D"all"></div><br><span class=3D"gmail_si=
gnature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><f=
ont color=3D"#888888">With best regards,<br>
Pavel Lyalyakin<br>
VisualSVN Team</font></div></div>
</div>
</div>
</div>

--000000000000acc47806583aa1ae--