[squid-users] v6.12 build error from release tarball

Alex Rousskov rousskov at measurement-factory.com
Fri Nov 8 14:18:03 UTC 2024


On 2024-11-08 02:33, Marko, Peter wrote:

> I don't really know autotools and how they are supposed to be used.

We are in the same boat here -- there are a lot of gray areas and dark 
corners with autotools. Bootstrapping of components is one of them, as 
commit 82e18891 message illustrates. And in your particular case, you 
are essentially dealing with bootstrapping a component of a component!

As an additional disclaimer, I know nothing about Yocto :-).


> This process (using bootstrapped release tarball + running autoreconf) is
> the standard way how Yocto project builds autotool based components.

Please consider adjusting Yocto "standard way" to honor and use 
component-supplied bootstrap.sh (instead of autoreconf) when it exists.


> Maybe because release tarballs are bootstrapped with a possibly/usually
> different version of libtool and other toolchain parts than are used by Yocto

Yes, most likely they are, but the differences may not matter to Yocto. 
And if they do matter to Yocto, then Yocto should honor component's way 
of bootstrapping before blindly assuming that autoreconf "works".

> or because of different configuration options?

Squid bootstrapping does not have options, but even if it had them, 
running autoreconf (without options) would probably ignore them, so this 
is probably not about bootstrapping options.


> Your explanation makes sense to me and I have some idea why this
> build problem occurs and have some arguments for my patch within Yocto.

I am very glad to hear that you are making progress.


Good luck,

Alex.


>> -----Original Message-----
>> From: Alex Rousskov <rousskov at measurement-factory.com>
>> Sent: Friday, November 8, 2024 5:27
>> To: squid-users at lists.squid-cache.org
>> Cc: Marko, Peter (FT D EU SK BFS1) <Peter.Marko at siemens.com>
>> Subject: Re: [squid-users] v6.12 build error from release tarball
>>
>> On 2024-11-07 16:48, Marko, Peter wrote:
>>
>>> Commit [1] removed directory libltdl/m4 from release tarball by merging
>>> all those files into libltdl/aclocal.m4,
>>
>> Clarification: While commit b4addc22 itself did not remove any
>> directories or merged any files, bootstrapping Squid after that commit
>> may have such an effect. The exact bootstrapping outcome depends, in
>> part, on bootstrapping environment (e.g., installed libtool version)...
>>
>>
>>> however makefiles still
>>> reference it causing following error (in Yocto project):
>>
>> libltdl/Makefile.am that references m4 directory comes from Libtool.
>> That particular Makefile.am does not exist in primary Squid sources
>> (i.e. what gets committed to the official git repository). It gets
>> created (by libtoolize IIRC) during bootstrapping of Squid sources.
>>
>>
>>
>>> | autoreconf: Entering directory 'libltdl'
>>
>> To bootstrap Squid, one has to run ./bootstrap.sh instead of autoreconf.
>> AFAIK, Squid does not fully support bootstrapping with autoreconf;
>> autoreconf fails to do the right thing in some environments. If
>> autoreconf had worked for you, it was just temporary luck.
>>
>> However, _why_ run autoreconf (i.e. bootstrapping Squid) after
>> downloading _bootstrapped_ sources?! Clarifying this contradiction may
>> help identify and address the underlying problem.
>>
>>
>> Thank you,
>>
>> Alex.
>>
>>
>>
>>
>>
>>
>>> | autoreconf: configure.ac: not using Gettext
>>> | autoreconf: running: aclocal --system-acdir=WORKDIR/recipe-
>> sysroot/usr/share/aclocal/ -I WORKDIR/squid-6.12/acinclude/ -I
>> WORKDIR/recipe-sysroot-native/usr/share/aclocal/ --force -I m4
>>> | aclocal: error: couldn't open directory 'm4': No such file or directory
>>> | autoreconf: error: aclocal failed with exit status: 1
>>>
>>> Following change of release tarball will make the build pass:
>>> diff squid-6.12-orig/libltdl/Makefile.am squid-6.12/libltdl/Makefile.am
>>> --- squid-6.12-orig/libltdl/Makefile.am
>>> +++ squid-6.12/libltdl/Makefile.am
>>> @@ -29,7 +29,7 @@
>>>    ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
>>>    #####
>>>
>>> -ACLOCAL_AMFLAGS = -I m4
>>> +ACLOCAL_AMFLAGS =
>>>    AUTOMAKE_OPTIONS = foreign
>>>    AM_CPPFLAGS =
>>>    AM_LDFLAGS =
>>> diff squid-6.12-orig/libltdl/Makefile.in squid-6.12/libltdl/Makefile.in
>>> --- squid-6.12-orig/libltdl/Makefile.in
>>> +++ squid-6.12/libltdl/Makefile.in
>>> @@ -448,7 +448,7 @@ target_alias = @target_alias@
>>>    top_build_prefix = @top_build_prefix@
>>>    top_builddir = @top_builddir@
>>>    top_srcdir = @top_srcdir@
>>> -ACLOCAL_AMFLAGS = -I m4
>>> +ACLOCAL_AMFLAGS =
>>>    AUTOMAKE_OPTIONS = foreign
>>>
>>>    # -I$(srcdir) is needed for user that built libltdl with a sub-Automake
>>>
>>> I don't know how to fix it in source repository.
>>> Help would be appreciated.
>>>
>>> Thanks,
>>>     Peter
>>>
>>> [1] https://github.com/squid-
>> cache/squid/commit/b4addc2262e5bee37543f8d1ab9dd98337bafba3
>>> _______________________________________________
>>> squid-users mailing list
>>> squid-users at lists.squid-cache.org
>>> https://lists.squid-cache.org/listinfo/squid-users
> 



More information about the squid-users mailing list