Subject: Re: bug#17840: [PATCH] libtool: Use 'file' instead of '/usr/bin/file' on GNU systems.

From: Ralf Corsepius <[email-masked]>
Date: Tue, 24 Jun 2014 18:08:00 +0200

On 06/24/2014 04:37 PM, Ludovic Courtès wrote:
> Bob Friesenhahn <[email-masked]> skribis:
>
>> On Mon, 23 Jun 2014, Ludovic Courtès wrote:
>>
>>> Hello,
>>>
>>> The patch below changes occurrences of ‘/usr/bin/file’ to just ‘file’.
>>>
>>> The impetus is that on systems using GNU Guix, NixOS, GoboLinux, and
>>> others, the ‘file’ command is not available as /usr/bin/file, so it must
>>> instead be taken from $PATH.
>>>
>>> (I conservatively left ‘/usr/bin/file’ for more centralized systems such
>>> as BSD, IRIX, etc. where it’s more likely to be a valid command.)
>>
>> Were you able to re-test on all of the impacted platforms?
>
> No, but that list is verrry long.

Makes me wonder, why this issue has not come up before and what your 
issue actually is.

>> The reason for the hard-coded path is because there are a number of
>> different 'file' programs and libtool expects particular output from
>> the 'file' program that it uses.  If the 'file' encountered via PATH
>> is not the same as the common one available as ‘/usr/bin/file’ on GNU
>> systems, then there would be a problem.
>
> Well, the systems I was referring to are GNU systems too.  ;-)
>
> Do you remember what other ‘file’ programs could interfere?

Any arbitrary "file" a user may have on $PATH.

Actually, in Fedora's packaging, we generally prefer absolute paths over 
plain "file names", to avoid malfunctions from arbitrary stuff people 
may have laying around on $PATH.

> Besides, relying on file names to identify programs seems fragile:
Correct. Trying to utilize "file"'s output to distinguish file types has 
a long history of breaking things and not being robust.

Ralf