Subject: bug#37527: [PATCH] Install C source code for for debugging help

From: Michael Albinus <[email-masked]>
Date: Fri, 04 Oct 2019 11:20:04 +0200

Paul Eggert <[email-masked]> writes:

Hi Paul,

> On 10/3/19 6:38 AM, Michael Albinus wrote:
>> +     (setq source-directory "/path/to/emacs-26.1")
>
> On Fedora at least, the debug packages you mention do not contain all
> the Emacs source code; they contain only the source useful for C-level
> debugging. So the advice should recommend setting
> find-function-C-source-directory, not source-directory. For example,
> on Fedora 30 right now, one could put this this into
> ~/.config/init.el:
>
>   (setq find-function-C-source-directory
>         "/usr/src/debug/emacs-26.2-1.fc30.x86_64/src")

Lisp sources are still found via load-path. So it doesn't hurt to set
source-directory. But you are right, we shall be precise, so I have
changed accordingly.

> and you could give that as an example. Please also mention that one
> will need to change init.el each time Fedora issues bugfixes and
> updates the "-1", or comes out with a new release and updates the
> "fc30", and that if you share your home directory with some system
> running some other distro or a different Fedora release then you'll
> need to have more-complicated code in init.el.

Yep. I've added

--8<---------------cut here---------------start------------->8---
The installation directory of the Emacs source package will contain
the exact package name and version number Emacs is installed on your
system.  If a new Emacs package is installed, the source package must
be reinstalled as well, and the setting in your startup file must be
updated.
--8<---------------cut here---------------end--------------->8---

>> On Red Hat-based systems, the corresponding command is
>> 'dnf debuginfo-install emacs', with target directory /usr/src/debug.
>
> That command is intended for installing the emacs-debuginfo package,
> which differs from the emacs-debugsource package that Emacs needs
> here. The command installs emacs-debugsource only as a weak dependency
> and settings in dnf.conf can prevent the command from installing
> emacs-debugsource at all. It would be helpful to warn about this
> possibility.

I know that the command installs the emacs-debuginfo package. I haven't
found a command, which installs the emacs-debugsource package
only. Could you please help me here?

> Also, on Fedora at least, the debugsource packages are regularly
> out-of-sync with the main packages distributed by the Fedora servers,
> so the suggested approach is unreliable when Emacs is patched. This is
> worth mentioning as well.

That I don't understand completely. Aren't the debug* packages intended
to be realeased under the same name+version as the binary packages? And
shouldn't they be in sync then?

> I hope this email helps to explain further why patching INSTALL is
> merely a stopgap, and why we need a better solution in the next Emacs
> release.

The main intention of this discussion is to have access to Emacs C
sources via main distributions. Whatever we change in Emacs releases
doesn't matter; it counts only what the major distributions
offer. Shouldn't we contact them (at least Debian-based and Red
Hat-based distributions), and ask the maintainers what they would expect
from us to make access to the C sources more simple? And maybe they have
also descriptions, which fit better than what I have compiled.

Best regards, Michael.