From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.bugs Subject: bug#62720: 29.0.60; Not easy at all to upgrade :core packages like Eglot Date: Thu, 13 Apr 2023 18:49:05 +0000 Message-ID: <87wn2fk47y.fsf@posteo.net> References: <87a5zj2vfo.fsf@gmail.com> <83mt3d73c2.fsf@gnu.org> <87r0sptinq.fsf@posteo.net> <83jzyh706c.fsf@gnu.org> <875ya1tdwf.fsf@posteo.net> <83edop6sdy.fsf@gnu.org> <831qkp6o0i.fsf@gnu.org> <83wn2h5825.fsf@gnu.org> <87wn2gkhzr.fsf@posteo.net> <83cz485oxi.fsf@gnu.org> <87leiwdyff.fsf@posteo.net> <834jpk5hih.fsf@gnu.org> <871qkom3fj.fsf@posteo.net> <83mt3b4yfc.fsf@gnu.org> <87edonlsxi.fsf@posteo.net> <83jzyf4vzb.fsf@gnu.org> <871qknllkj.fsf@posteo.net> <83fs934pjf.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6039"; mail-complaints-to="usenet@ciao.gmane.io" Cc: larsi@gnus.org, 62720@debbugs.gnu.org, joaotavora@gmail.com, monnier@iro.umontreal.ca To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Apr 13 20:49:26 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pn20c-0001KG-Ns for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 13 Apr 2023 20:49:26 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pn20I-0005it-JG; Thu, 13 Apr 2023 14:49:06 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pn20E-0005iU-QK for bug-gnu-emacs@gnu.org; Thu, 13 Apr 2023 14:49:05 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pn20D-0003nq-Lb for bug-gnu-emacs@gnu.org; Thu, 13 Apr 2023 14:49:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pn20D-0007Xq-Il for bug-gnu-emacs@gnu.org; Thu, 13 Apr 2023 14:49:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Philip Kaludercic Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Apr 2023 18:49:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62720 X-GNU-PR-Package: emacs Original-Received: via spool by 62720-submit@debbugs.gnu.org id=B62720.168141172628972 (code B ref 62720); Thu, 13 Apr 2023 18:49:01 +0000 Original-Received: (at 62720) by debbugs.gnu.org; 13 Apr 2023 18:48:46 +0000 Original-Received: from localhost ([127.0.0.1]:44777 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pn1zx-0007XE-Oc for submit@debbugs.gnu.org; Thu, 13 Apr 2023 14:48:46 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]:56615) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pn1zu-0007Wx-VW for 62720@debbugs.gnu.org; Thu, 13 Apr 2023 14:48:44 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 161912402A8 for <62720@debbugs.gnu.org>; Thu, 13 Apr 2023 20:48:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1681411717; bh=kdFKmeWcQV1KaD/PlGAeI24zH2WdzLq1bXOm8R1VNNg=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=M2TkKLy3FF48nSilEPizp8/gFVFYjTnHoB4+ulq02DQc/bt4IM5eDUGWqaJucRK0p WusF5kefCtwUfycwIXV8P74U6aW4UsxcjYRrOlTuYd4mtOAA19ks7vO8LPMlvswxV2 Oa/7vOsXoV3RwsAEW5ZmYE1qHc5kFKNiNmZJ+i1PFHRdQ8DwTtIJYXFKX55JPxlgac 5PhDP0RSoEOVq8JC4z2vwOg9CuiUddRE7ALAZ3hYjbla5JSChqSk2X4i9NqaRQ1Fdd H9SL7HpxJj3rEoCBaCP1RRdIPQKkbSucd5SGix2T7sJK8wCptmI0+mVDAJPOf30GCu v2Xavac9YZCVA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Py7rg6MKMz9rxM; Thu, 13 Apr 2023 20:48:35 +0200 (CEST) In-Reply-To: <83fs934pjf.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 13 Apr 2023 21:15:16 +0300") Autocrypt: addr=philipk@posteo.net; keydata= mDMEZBBQQhYJKwYBBAHaRw8BAQdAHJuofBrfqFh12uQu0Yi7mrl525F28eTmwUDflFNmdui0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiWBBMWCAA+FiEEDg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwMFCQHhM4AFCwkI BwIGFQoJCAsCBBYCAwECHgECF4AACgkQ8xYDWXahwulikAEA77hloUiSrXgFkUVJhlKBpLCHUjA0 mWZ9j9w5d08+jVwBAK6c4iGP7j+/PhbkxaEKa4V3MzIl7zJkcNNjHCXmvFcEuDgEZBBQQhIKKwYB BAGXVQEFAQEHQI5NLiLRjZy3OfSt1dhCmFyn+fN/QKELUYQetiaoe+MMAwEIB4h+BBgWCAAmFiEE Dg7HY17ghYlni8XN8xYDWXahwukFAmQQUEICGwwFCQHhM4AACgkQ8xYDWXahwukm+wEA8cml4JpK NeAu65rg+auKrPOP6TP/4YWRCTIvuYDm0joBALw98AMz7/qMHvSCeU/hw9PL6u6R2EScxtpKnWof z4oM X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:259875 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Eli Zaretskii writes: >> From: Philip Kaludercic >> Cc: joaotavora@gmail.com, monnier@iro.umontreal.ca, 62720@debbugs.gnu.= org, >> larsi@gnus.org >> Date: Thu, 13 Apr 2023 17:49:00 +0000 >>=20 >> Eli Zaretskii writes: >>=20 >> > Adding an option is fine by me, as long as its default preserves >> > previous behavior. >> > >> > Just to be sure we are on the same page: you suggest _both_ prefix >> > argument and user option, where user option could be used to avoid the >> > need for prefix argument? >>=20 >> I was thinking about both, but I supposed that a user option would be >> enough. > > No, I think having both is better. It is easier to say "C-u" than to > change the value of an option, so for one-off update of a single > package, the prefix argument is more convenient. > >> >> No, my proposed diff changes what package decides to download (the >> >> planning phase), but doesn't touch anything after that. The current >> >> state is that (package-install 'eglot) just prints >> >>=20 >> >> =E2=80=98eglot=E2=80=99 is already installed >> > >> > And does nothing else? You seem to be saying it still downloads >> > something, but what is that? >>=20 >> No, it just prints that message but doesn't download anything. > > OK, then allowing to install such packages under the proposed changes > will improve that case as well. After having added the user option, I am not sure about the prefix argument. I see this as a temporary fix due to the time constraints of releasing Emacs 29. It is disabled for now, but can be enabled on master to see if there are any problems. But for now, this patch supports both the user option and the prefix argument. I am still not satisfied with the documentation, but cannot come up with a better phrase than installing potentially newer versions of built-in packages from package archives for explaining the issue without getting too technical. Do you have any ideas? --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Allow-upgrading-built-in-packages-with-package-insta.patch >From 99e92d78560ef1aec7217d90ed3a8108bdf2924c Mon Sep 17 00:00:00 2001 From: Philip Kaludercic Date: Thu, 13 Apr 2023 20:13:59 +0200 Subject: [PATCH] Allow upgrading built-in packages with 'package-install' * etc/NEWS: Mention the change * lisp/emacs-lisp/package.el (package--upgradable-built-in-p): Add new predicate. (package-install-upgrade-built-in): Add new user option to enable feature. (package-install): Respect new user option. --- etc/NEWS | 5 +++++ lisp/emacs-lisp/package.el | 44 +++++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 84dbb94a71a..a7834cd0d2b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1876,6 +1876,11 @@ package maintainers. By customizing this user option you can specify specific packages to install. +--- +*** New user option 'package-install-upgrade-built-in'. +When enabled, 'package-install' can be used to install potentially +newer versions of built-in packages. + ** Emacs Sessions (Desktop) +++ diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index f92afe56b76..882db8db719 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -797,6 +797,17 @@ package-built-in-p (require 'finder-inf nil t) ; For `package--builtins'. (assq package package--builtins)))))) +(defun package--active-built-in-p (package) + "Return non-nil if PACKAGE if the built-in version is used." + (and (not (assq (cond + ((package-desc-p package) + (package-desc-name package)) + ((stringp package) (intern package)) + ((symbolp package) package) + ((error "Unknown package format: %S" package))) + (package--alist))) + (package-built-in-p package))) + (defun package--autoloads-file-name (pkg-desc) "Return the absolute name of the autoloads file, sans extension. PKG-DESC is a `package-desc' object." @@ -2182,12 +2193,19 @@ package--archives-initialize (unless package-archive-contents (package-refresh-contents))) +(defcustom package-install-upgrade-built-in nil + "Non-nil means that built-in packages can be upgraded via a package archive. +If disabled, then `package-install' will not allow installing +potentially newer versions of built-in packages from package +archives." + :type 'boolean + :version "29.1") + ;;;###autoload (defun package-install (pkg &optional dont-select) "Install the package PKG. PKG can be a `package-desc' or a symbol naming one of the -available packages in an archive in `package-archives'. When -called interactively, prompt for the package name. +available packages in an archive in `package-archives'. Mark the installed package as selected by adding it to `package-selected-packages'. @@ -2197,7 +2215,11 @@ package-install `package-selected-packages'. If PKG is a `package-desc' and it is already installed, don't try -to install it but still mark it as selected." +to install it but still mark it as selected. + +If the command is invoked with a prefix argument, the upgrading +of built-in packages will be possible, as if +`package-install-upgrade-built-in' had been enabled." (interactive (progn ;; Initialize the package system to get the list of package @@ -2205,11 +2227,14 @@ package-install (package--archives-initialize) (list (intern (completing-read "Install package: " - (delq nil - (mapcar (lambda (elt) - (unless (package-installed-p (car elt)) - (symbol-name (car elt)))) - package-archive-contents)) + (mapcan + (lambda (elt) + (and (or (and (or current-prefix-arg + package-install-upgrade-built-in) + (package--active-built-in-p (car elt))) + (not (package-installed-p (car elt)))) + (list (symbol-name (car elt))))) + package-archive-contents) nil t)) nil))) (package--archives-initialize) @@ -2220,6 +2245,9 @@ package-install (unless (or dont-select (package--user-selected-p name)) (package--save-selected-packages (cons name package-selected-packages))) + (when (and (or current-prefix-arg package-install-upgrade-built-in) + (package--active-built-in-p pkg)) + (setq pkg (cadr (assq name package-archive-contents)))) (if-let* ((transaction (if (package-desc-p pkg) (unless (package-installed-p pkg) -- 2.39.2 --=-=-=--