[Buildroot] [PATCH] support/dependencies: ensure we have 'file' on the host

Arnout Vandecappelle arnout at mind.be
Fri Nov 27 23:34:00 UTC 2015


On 28-11-15 00:04, Yann E. MORIN wrote:
> Arnout, All,
> 
> On 2015-11-27 22:19 +0100, Arnout Vandecappelle spake thusly:
>> On 27-11-15 21:02, Yann E. MORIN wrote:
>>> When 'file' is missing on the host, libtool fails miserably. Packages
>>> that use libtool will suddenly FTBFS, with cryptic error messages, like
>>> missing libraries on the linker invocation.
>>
>>  I've taken a look at an ltmain.sh and a libtool, but the only two calls to
>> 'file' I could find were for darwin and for win32.
>>
>>>
>>> We could ensure that autotools based packages now all depend on
>>> host-file. But It itself is an autotools package, so it's again a
>>> chicken-n-egg issue. And even non-autotools package may use libtool.
>>>
>>> So, just require that 'file' is present on the host.
>>>
>>> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
>>> ---
>>>  support/dependencies/dependencies.sh | 6 ++++++
>>>  1 file changed, 6 insertions(+)
>>>
>>> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
>>> index 3146401..f14fb79 100755
>>> --- a/support/dependencies/dependencies.sh
>>> +++ b/support/dependencies/dependencies.sh
>>> @@ -69,6 +69,12 @@ check_prog_host "which"
>>>  # Verify that sed is installed
>>>  check_prog_host "sed"
>>>  
>>> +# 'file' must be present, otherwise libtool fails in incomprehensible
>>> +# ways. For example, bandwidthd would fail to link with -lz, even
>>
>>  bandwidthd doesn't even have a libtool...
>>
>>  Could you give a concrete example of where libtool uses file?
> 
> Damn... It seems I confused the netsnmp and the bandwidthd cases.
> 
> If you look at netsnmp, they have all this blurb about file being
> required for libtool otherwise it breaks, in configure.d/config_os_progs
> And indeed, my minimalistic chroot does not have file installed.

 Well, I ran

strace -f -e trace=execve make netsnmp

and the only call to file was in the configure script...

 That said, adding file as a global dependency is probably the easiest way of
dealing with it. In practice, file is anyway installed in default distro.


 Regards,
 Arnout

> 
> And then you have bandwidthd that also fails miserably in that chroot,
> even though the same configuration works on my machine.
> 
> So I installed 'file' and then both now compile without any issue in
> that minimalistic chroot.
> 
> And then I did the commit log for this patch, and only accounted for the
> reasons explained in netsnmp (without trying to validat etheir point, I
> admit), but referenced bandwidthd.
> 
> Sigh.
> 
> Anyway, here's my minimalistic chroot:
>     debootstrap --arch=amd64 --variant buildd trusty $(pwd)/chroot
> 
> and the list of installed packages is in attachment.
> 
> Regards,
> Yann E. MORIN.
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF



More information about the buildroot mailing list