Subject: bug#44149: 28.0.50; M-x finder-by-keyword, giving weird descriptions for gnus and org

From: Stefan Kangas <[email-masked]>
Date: Thu, 22 Oct 2020 12:17:28 -0700

Jean Louis <[email-masked]> writes:

> Just tell me if it is a joke that gnus is described this way.
>
> gnus 5.13 built-in Identifying spam

The description comes from spam.el:

./spam.el:1:;;; spam.el --- Identifying spam

> Another issue, Org is described as:
>
> org 9.3 built-in Export Framework for Org Mode

This description comes from ox.el

./ox.el:1:;;; ox.el --- Export Framework for Org Mode [...]

> Then if I click on org I can get description about Org mode. It is
> definitely confusing, as it is either export framework for Org Mode or
> Org mode.

This can be seen in `list-packages', or by evaluating
`(assq 'org package--builtins)'.

This is due to `finder-compile-keywords' that creates the file
lisp/finder-inf.el, and it seems like this bug was introduced by commit
851535f587:

  commit 851535f58745dcfbc8798b3a34b4fea852f93a3e
  Author: Stefan Monnier <[email-masked]>
  Date:   Sat Jul 6 18:42:02 2019 -0400

      * lisp/emacs-lisp/nadvice.el: Make it a package separate from `emacs`.

      * lisp/finder.el (finder-compile-keywords): Grab version from
      package--builtin-versions when available.

It makes "(or (eq base-name package) version)" below that always be
true, and so we use whatever file comes alphabetically last as the name
of a package (above, that happens to be "spam.el" and "ox.el").

Reverting the above commit fixes this issue here.

I'm not sure how best to fix this without breaking something else.
Perhaps Stefan M has an idea?