[PATCH setup 0/3] Setup replacement for incver_ifdep
Ken Brown
kbrown@cornell.edu
Sat Feb 6 14:29:00 GMT 2016
On 1/29/2016 9:53 AM, Ken Brown wrote:
> On 1/29/2016 9:22 AM, Jon Turney wrote:
>> On 28/01/2016 20:22, Eric Blake wrote:
>>> On 01/28/2016 01:17 PM, Ken Brown wrote:
>>>>>> install-info $f /usr/share/info/dir ||
>>>>>> install-info --entry="* $$f ($f): $$f" $$f /usr/share/info/dir
>>>>>>
>>>>>> First, what do those double dollar signs mean?
>>>>>
>>>>> If this is from a Makefile snippet, it says that $f is a make
>>>>> variable,
>>>>> while $$ turns into a literal $f for the shell that make invokes
>>>>
>>>> It's not a Makefile snippet; it's a snippet from a bash shell
>>>> script. Here's more context:
>>>>
>>>> for f in /usr/share/info/*; do
>>>> case "$f" in
>>>> *\**)
>>>> ;;
>>>> */dir|*/dir.info*)
>>>> ;;
>>>> *-[0123456789]*)
>>>> ;;
>>>> *)
>>>> install-info $f /usr/share/info/dir ||
>>>> install-info --entry="* $$f ($f): $$f" $$f
>>>> /usr/share/info/dir
>>>> ;;
>>>> esac
>>>> done
>>>>
>>>> It looks to me like all those double dollar signs will just get
>>>> expanded to the PID of the bash process, so that the second
>>>> install-info command is nonsense. But maybe I'm missing something.
>>>
>>> Oooh, scary. Yeah, it looks like utter nonsense, as that would indeed
>>> give the PID of bash followed by a literal f, but who wants to look up
>>> info of '1234f'? I wonder if someone writing the script copied
>>> incorrectly from a Makefile?
>>
>> Crazy. I didn't add this part, so I guess it's been there for a long
>> time.
>>
>>>> Second, why is the second line needed, i.e., under what circumstances
>>>> would it be expected to succeed after the first install-info command
>>>> failed?
>>>
>>> Sadly, I don't know install-info enough to answer that one.
>>
>> I think the first install-info command would fail if the .info file is
>> missing a START-INFO-DIR-ENTRY/END-INFO-DIR-ENTRY block, in which case
>> install-info should fail with a 'install-info: warning: no info dir
>> entry in `xxx.info''
>>
>> Since such a .info file is apparently valid (although I don't think we
>> have any instances of such), I guess the nonsense after the || should be
>> fixed to use '$f' correctly.
>
> I have a few instances of those files on my system:
>
> install-info: warning: no info dir entry in
> `/usr/share/info/automake-history.info.gz'
> install-info: warning: no info dir entry in
> `/usr/share/info/automake-history1.12.info.gz'
> install-info: warning: no info dir entry in
> `/usr/share/info/automake-history1.13.info.gz'
> install-info: warning: no info dir entry in
> `/usr/share/info/texdraw.info.gz'
>
> But I'm not convinced that we need to worry about them. It could be
> that they're intended to be cited from other info files but not to be
> listed in the top level directory. I would say that if an info file
> lacks a START-INFO-DIR-ENTRY/END-INFO-DIR-ENTRY block, we should assume
> that its author didn't want it listed in the directory.
Jon, any further thoughts about this? texinfo-6.1 has just been
released, so I can go ahead with adding the postinstall script as soon
as we decide what it should do in the case of a missing
START-INFO-DIR-ENTRY/END-INFO-DIR-ENTRY block.
Kenb
More information about the Cygwin-apps
mailing list