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 <<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 <<a href=3D"mailto:[email protected]" target=3D"_blank">lyal= [email protected]</a>>:</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't been to= uched since. I don'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'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"good&q= uot;<br>if test "$1" =3D "$LIBTOOL_WANTED_MAJOR"; then<= br>=C2=A0 =C2=A0if test "$2" -gt "$LIBTOOL_WANTED_MINOR"= ;; then<br>=C2=A0 =C2=A0 =C2=A0 lt_status=3D"good"<br>=C2=A0 =C2= =A0elif test "$2" -lt "$LIBTOOL_WANTED_MINOR"; then<br>= =C2=A0 =C2=A0 =C2=A0 lt_status=3D"bad"<br>=C2=A0 =C2=A0elif test = ! -z "$LIBTOOL_WANTED_PATCH"; then<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0= if test "$3" -lt "$LIBTOOL_WANTED_PATCH"; then<br>=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0lt_status=3D"bad"<br>=C2=A0= =C2=A0 =C2=A0 =C2=A0fi<br>=C2=A0 =C2=A0fi<br>fi<br>if test $lt_status !=3D= "good"; then<br>=C2=A0 echo "buildcheck: libtool version $l= t_pversion found."<br>=C2=A0 echo " =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0You need libtool version $LIBTOOL_WANTED_VERSION or newer inst= alled"<br>=C2=A0 exit 1<br>fi<br><br>echo "buildcheck: libtool ve= rsion $lt_pversion (ok)"<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't work properly, a= nd I think it doesn't reject any libtool version at all. I'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 "$1&quo= t; =3D "$LIBTOOL_WANTED_MAJOR" -a "$2" =3D "$LIBTO= OL_WANTED_MINOR" -a "$3" -lt "$LIBTOOL_WANTED_PATCH&quo= t; || test "$1" =3D "$LIBTOOL_WANTED_MAJOR" -\<br>a &qu= ot;$2" -lt "$LIBTOOL_WANTED_MINOR" || test "$1" -l= t "$LIBTOOL_WANTED_MAJOR"; then<br>=C2=A0 echo "buildcheck: = libtool version $lt_pversion found."<br>=C2=A0 echo " =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0You need libtool version $LIBTOOL_WANTED_VER= SION or newer installed"<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 "100:= test: Illegal number":</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 "LIBTOOL_WANTED_PATCH=3D" to "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&view=3Dmarkup#l81" target=3D"_blan= k">https://svn.apache.org/viewvc/subversion/trunk/build/buildcheck.sh?revis= ion=3D1845716&view=3Dmarkup#l81</a></div><div>[2]:=C2=A0<a href=3D"http= s://svn.apache.org/viewvc/?revision=3D1845716&view=3Drevision" target= =3D"_blank">https://svn.apache.org/viewvc/?revision=3D1845716&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&view=3Drevision" target=3D"_blank">= https://svn.apache.org/viewvc/?revision=3D1142604&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 <<a href=3D"mailto:[email protected]= rg" target=3D"_blank">[email protected]</a>></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--