Subject: bug#47944: Unable to customize button face in `describe-package'

From: Stefan Kangas <[email-masked]>
Date: Wed, 21 Apr 2021 23:42:26 +0200

Severity: minor

There is currently no way to customize the button face in
`describe-package'; the face is hard-coded.  This leads to issues with
`hl-line-mode', for example:

    https://gitlab.com/protesilaos/modus-themes/-/issues/180

I'm thinking that we could just use the `custom-button' face here as it
looks similar enough, and should already exist in most popular themes.

diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 64d7d56019..f2e83d3fda 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -2696,9 +2696,9 @@ package-make-button
 function is a convenience wrapper used by `describe-package-1'."
   (let ((button-text (if (display-graphic-p) text (concat "[" text "]")))
         (button-face (if (display-graphic-p)
-                         '(:box (:line-width 2 :color "dark grey")
-                                :background "light grey"
-                                :foreground "black")
+                         (progn
+                           (require 'cus-edit) ; for the custom-button face
+                           'custom-button)
                        'link)))
     (apply #'insert-text-button button-text 'face button-face 'follow-link t
            properties)))

Thoughts?