bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#62720: 29.0.60; Not easy at all to upgrade :core packages like Eglot


From: Dmitry Gutov
Subject: bug#62720: 29.0.60; Not easy at all to upgrade :core packages like Eglot
Date: Sat, 15 Apr 2023 15:34:42 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

On 15/04/2023 13:40, Philip Kaludercic wrote:
Eli said something like this patch could be acceptable for master and
maybe 29.2.

----------8<----------8<----------8<----------8<----------8<----------8<
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -652,6 +652,9 @@ package--builtins
  name (a symbol) and DESC is a `package--bi-desc' structure.")
  (put 'package--builtins 'risky-local-variable t)
+(defvar package--safely-upgradeable-builtins '(eglot use-package)
+  "See bug#62720 for longest docstring ever.")
+
  (defvar package-alist nil
    "Alist of all packages available for activation.
  Each element has the form (PKG . DESCS), where PKG is a package
@@ -2201,14 +2204,19 @@ package-install
       (package--archives-initialize)
       (list (intern (completing-read
                      "Install package: "
+                    (append
                       (delq nil
                             (mapcar (lambda (elt)
                                       (unless (package-installed-p (car elt))
                                         (symbol-name (car elt))))
                                     package-archive-contents))
+                     package--safely-upgradeable-builtins)
                      nil t))
             nil)))
    (package--archives-initialize)
+  (when-let ((desc (and (memq pkg package--safely-upgradeable-builtins)
+                        (cadr (assoc pkg package-archive-contents)))))
+    (setq pkg desc))
    (add-hook 'post-command-hook #'package-menu--post-refresh)
    (let ((name (if (package-desc-p pkg)
                    (package-desc-name pkg)
---------->8---------->8---------->8---------->8---------->8---------->8

1. Node code complexity.  It's 6 lines of trivial code.
2. Absolutely no risk of "silent installation of software that wasn't ever
    installed before"
3. Fixes all the aforementioned issues
Personally I think this would be a fine solution considering the
constraints.

+1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]