bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: info: INFOPATH interpretation severely flawed


From: Bruno Haible
Subject: Re: info: INFOPATH interpretation severely flawed
Date: Sun, 06 May 2012 20:06:43 +0200
User-agent: KMail/4.7.4 (Linux/3.1.10-1.9-desktop; KDE/4.7.4; x86_64; ; )

Eli Zaretskii wrote:
> > Apparently 'info' has used the information found in the 'dir' file of
> > $dir1 (namely the reference to node "Invoking Automake") while using
> > the .info file from $dir2.
> 
> Actually, all 'dir' files are concatenated into a single DIR node, and
> only then used as a whole.

This is an implementation detail that leads to a bug. I'm asking for the
bug to be fixed. Possible fixes:

  a) In this synthetic 'dir' file (which only exists in memory of 'info'
     before it is presented to the user), remember which portion came
     from which directory.

  b) When creating this synthetic 'dir' file, use absolute file names
     of 'info' files everywhere, e.g.

       * Automake: 
(/arch/x86-linux/gnu-inst-automake/1.11.2/share/info/automake).
                           Making GNU standards-compliant Makefiles.

     and make 'info' understand these absolute file names.

> > It is a conceptual mistake to attempt to use information found in
> > one of these directories together with other information found in
> > another of these directories.
> 
> INFOPATH is not supposed to include 'dir' files with conflicting
> contents.

Excuse me, but the concept of "conflict" arises only because 'info'
behaves in such a way - this precisely the bug.

If you say this is not a bug, it's the fault of the 'dir' files, then
please provide a tool that detects "conflicts" and signals them with
enough detail that they can be corrected. After installing Automake 1.12
I had to investigate for 2 hours why "info automake" did not work any more.
If I had had a tool which tells me
    /arch/x86-linux/gnu-inst-automake/1.11.2/share/info/dir:41: reference
    to automake.info node 'Invoking Automake' which does not exist in
    /arch/x86-linux/gnu-inst-automake/1.12/share/info/automake.info
everything would have been so easy.

But sometimes it is not so easy: I have the problem also with
INFOPATH=$dir2:$dir1 where dir2=/arch/x86-linux/gnu/share/info is under
my control, whereas dir1=/usr/share/info is under 'root' control.
So, in order to have INFOPATH=$dir2:$dir1 work, removing the conflict,
I would have to modify $dir1/dir - which I cannot do without superuser
privileges.

> The Info readers are not prepared to cope with such calamity.
> It is the job of whoever maintains the 'dir' files to
> disambiguate entries there.

The one who maintains the 'dir' files is the 'install-info' program -
from texinfo 4.13.
But of course, when I use 'install-info' to install something into
$dir2, 'install-info' cannot know about $dir1 which some user will use
with it in a single INFOPATH later. And even if it knew about it,
it could not do anything about it, because $dir1 is not writable without
superuser privileges.

Your concept of "conflict" between two directories is flawed, because
there is no way you could make 'install-info' not produce conflicts.
It is simply a bug in the way the 'info' programs handles INFOPATH.

Bruno




reply via email to

[Prev in Thread] Current Thread [Next in Thread]