Subject: bug#36828: 27.0.50; Uninstalled emacs shows installed documentation

From: Eli Zaretskii <[email-masked]>
Date: Sun, 27 Oct 2019 07:13:05 +0200

> From: Óscar Fuentes <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sat, 26 Oct 2019 22:40:59 +0200
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> I wonder why we assign Vdata_directory on init_callproc_1 to the
> >> installed Emacs directory ("/usr/local/share/emacs/27.0.50/etc/" on
> >> this case) when we are running a non-installed Emacs.
> >
> > I thought the comments there explained that?
> 
> It is not clear to me why assigning Vdata_directory must wait until
> init_callproc when we are running a non-installed emacs. It looks like
> all the required information is present.

We currently decide about non-installed by looking at
Vinstallation_directory, and that is not set in init_callproc_1, per
the comments.

> Furthermore, the logic should be "first check if this is an
> non-installed emacs; if false, locate the installed stuff" instead of
> "first locate the installed stuff, then check if we are a non-installed
> emacs and fix the vars we assigned previously."

I prefer not to consider such radical changes in this logic, because
we've been using what's there now for ages.  Who knows how many
legitimate use cases this could potentially break?  Your use case is
quite specialized: having an older binary of the exact same version
installed is unusual, IME.  So radical changes due to this use case
are unjustified, IMO.

Let's try to find a way of detecting your situation without making too
many waves elsewhere, okay?

> > But we do have 'dir' in the source tree, it's in info/.
> 
> Right, thanks. So I must check why C-h i fetches the `dir' in the
> installed info directory.

I think it's just because configure-info-directory is set by epaths.h
to point to ${prefix}/share/info (via PATH_INFO).  We never change
that, even in a non-installed Emacs.  See Info-default-directory-list.