[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