Re: Contributing to Emacs Development
>>"Eli" == Eli Zaretskii <firstname.lastname@example.org> writes:
>> * Emacs: (emacs) . The extensible self-documenting text editor.
>> * Emacs-20: (emacs-20/emacs). The extensible self-documenting text editor.
>> * Emacs-21: (emacs-21/emacs). The extensible self-documenting text editor.
>> . update-alternatives is used to provide the default info file entries.
>> Then each emacs version can have a modified into path. I am
>> not sure I really like this -- since C-C C-f leads to a different
>> location than just C-h i and Menu Emacs does.
Eli> The above will work, but only for bundled Info files. For example, if
Eli> you choose emacs-20/emacs, all the other Emacs-related manuals, such
Eli> as `message', `gnus', etc. will come from that directory. However,
Eli> what happens when the user installs a newer Gnus, downloaded from the
Eli> Gnus CVS? I expect that user to want to get that newer Gnus' manual
Eli> instead of the one which came with Emacs. Unless the user replaces
Eli> the manual supplied with Emacs with the newer version, the above
Eli> solution will not DTRT.
well. That is one way of doing it, and you have put your
finger on the flaw.
Alternately, if we settle on the solution of the emacsen
creating a separate sub directory for each version, BUT using update
alternatives to maintain a set of files in the top level info dir
that point to the files for the current default alternative; we can
have the best we solution we can offer under the circumstances.
The default would be, for most users, to just say info gnus or
info emacs; and that would lead one to $INFODIR/gnus, et. al. This
default file shall be a symbolic link managed by the alternatives
mechanism, so installing a new gnus shall do the right thing.
If you asked for a specific emacs version, and you then follow
the link to gnus there, I presume you are seeking information about
the bundled gnus.
However, unless something is done to C-h C-f, the information
provided would be for the default version.
If we have each emacsen re-order the Iinfo-path, then we shall
fail to see the info for indepndently installed packages, like
gnus. I don't like that.
For the majority of our installed base, the default emacsen
and the default, independtly installed emacs lisp packages should be
the most readi;y available, with no extra work by the user. Using sub
dirs and update-alternatives the problem has come down to extra work
to follow xrefs in non-default documentation.
Incidentally, the flavour of emacs lisp packaging for Debian
has been strongly influenced by th fact that majority of our target
installations are either personal desktops, where there are very few
(usually one) users, or they are server machines, which tend not to
have very many emacs lisp packages installed. So a number of
packagfes insert themselves automatically in the site-wide emacs
intialization process (this should give you a flavour of the type of
customization users tend to expect on a debian box).
>> I thik that C-h C-f should ask for a versioned emacs info file
Eli> If we agree on the subdirectory solution, C-h C-f will work, I think.
Eli> Please suggest a solution.
At the time of generation of files from teh texinfo files, one
needs to extract a version based string from there; and all files
produced have this version number embedded in them. An xref listing
should either be generic (look at the latest make insormation), or be
version stamped: look at the message file with this version number).
We then need a mechanism of updating the ``generic'', or
default, version of the info file (and we may need to do this only
for the top level info file for each package, since all files are
generated with version info embedded in them).
The model I am basing this on is the one used by shared
libraries on a UNIX system. We have patterns that deal with versioned
files, and simultaneous insallation of multiple versions of a shared
library using symbolic links and everything.
We would have to modify install-info to handle manipulation od
the symbolic links, like ldconfig does.
"You can't make a program without broken egos."
Manoj Srivastava <email@example.com> <http://www.debian.org/%7Esrivasta/>
1024R/C7261095 print CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C