From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Thierry Volpiatto Newsgroups: gmane.emacs.bugs Subject: bug#72141: 29.4; package-upgrade vs package-load-list Date: Thu, 01 Aug 2024 06:48:13 +0000 Message-ID: <87o76c3fiq.fsf@posteo.net> References: <87ikx5xulu.fsf@posteo.net> <865xsr2tn0.fsf@gnu.org> <871q3drb4v.fsf@posteo.net> <8634nt1z2k.fsf@gnu.org> <87plqxbsh4.fsf@posteo.net> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35409"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Philip Kaludercic , 72141@debbugs.gnu.org To: Thierry Volpiatto Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Aug 01 08:46:12 2024 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 1sZPZi-00092v-FG for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 01 Aug 2024 08:46:10 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sZPZT-0004Qi-Ns; Thu, 01 Aug 2024 02:45:55 -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 1sZPZM-0004Pq-LD for bug-gnu-emacs@gnu.org; Thu, 01 Aug 2024 02:45:51 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sZPZJ-0000jD-Hh for bug-gnu-emacs@gnu.org; Thu, 01 Aug 2024 02:45:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:References:In-Reply-To:From:To:Subject; bh=t0IZwhZ9zkYb53GsA0Oe3uRo3cnvrQKQX6IIEnD7Ax4=; b=SuQNUP4xkfGxVBM1sWtp1fe4pdOBA8SHfEGtm1DOGeg1kDJN68z7TcKG1AqS7lvsXCx3sg0YrMW19AzmxaXDjOh8SX7HUSjRtg3ziIgMuFt0NfEjupdCmeEnnDIprerFZEWpn0bqRjjDQdeq4yHzg9EEHxGy8zxnlopS5+Ih/awSX5cDoDRSU3IABmzOjpufM6bPuC9E5rVngLCF1CP1S95kl68R8HSSQfSTcBJ0f3mfusyXQREzKEQDX216L212q4mvrzfFddKw2tWEBJoB2+AR6GgoHszZHXtjIMC/hG7vovn1bQ7U/hBSerUni8F2fZmOLO2aSalsbmTReNDymw==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sZPZZ-0001qw-Op for bug-gnu-emacs@gnu.org; Thu, 01 Aug 2024 02:46:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Thierry Volpiatto Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 01 Aug 2024 06:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72141 X-GNU-PR-Package: emacs Original-Received: via spool by 72141-submit@debbugs.gnu.org id=B72141.17224947137059 (code B ref 72141); Thu, 01 Aug 2024 06:46:01 +0000 Original-Received: (at 72141) by debbugs.gnu.org; 1 Aug 2024 06:45:13 +0000 Original-Received: from localhost ([127.0.0.1]:50715 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sZPYm-0001pl-Sh for submit@debbugs.gnu.org; Thu, 01 Aug 2024 02:45:13 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]:36791) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sZPYj-0001pS-E3 for 72141@debbugs.gnu.org; Thu, 01 Aug 2024 02:45:11 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 503DF240104 for <72141@debbugs.gnu.org>; Thu, 1 Aug 2024 08:44:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1722494686; bh=uxsou6Q0xPTxmFokeb5yKsloxUn8camewyMURKZFPHk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type: Autocrypt:OpenPGP:From; b=GBUFj7CPRjg5j8ruqcp3GF4BxEcnhQb1XQyIMQj61KgKhJYw2L4xU9Lwir1Jws6zC au/HqyPi+4hxC0CVav3gXVgm9k1+pcT9Dr8WNEe80Njt540m4WCqUXmUD1UYtKesUx 94Oi4M7nFy9dr8sYhUZ5OM2r7YNYrc45wWOpSqNnwAgDRLKEJNAKJek8tXFZeQo2Go kNppYB1/fa7LRKzEJceVlCKEnGCiNLbF80xDKvBiC7La4dQc4xtdpzECet7aitMiRT 2SMJBDReqDju4l5pfmlQ2azEACOcYg8o7FfWX0qz7GFzI9aGMujlEwpvIE26TtAXKz FHkaGa4GUWdEg== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4WZKFm1589z6tn4; Thu, 1 Aug 2024 08:44:44 +0200 (CEST) In-Reply-To: <87plqxbsh4.fsf@posteo.net> (Thierry Volpiatto's message of "Sun, 28 Jul 2024 12:39:51 +0000") Autocrypt: addr=thievol@posteo.net; prefer-encrypt=mutual; keydata=xsDNBF8ylcIBDADG+hy+zR6L4/vbdDDZuSaMmSrU3A5QZJpeBCvxTr7MpzzruZbhLPW1K3R6N2MA edi8Y+C8o27FVRIjpdbaKMGu9je7JV/TbUQYo3SOwCK1vM4LUn4V6ZLzSYkuiEt4eyMoiDdyvN0p kcK6P9x9DCetcEVszXzQg+yzCVrQ2hXWDXWT4M18EC3wtO7RHPouMqGiwBFhBAYErCqFWFxQHkfb tG/4yGyJ58rglb65O3qijjMWvYwcWZun9/7qm8Z4/4mHopmo2zgU+OrptnLSZfkZGz3Y7Uf452xQ GVq0Fv75NPvQru7y+DYVhuVXXyAmGxt+vf4rIiixMBbhKEPjcxEPAa2LTzex2IsTZR+QVG9uDnqC WcgaOEQ58fzXNvNhtwwF/Rgio2XWAJVdmFWS59/k9W58CIUSNKBMZh2XeGdEmtHvDtCxW3z6FJha 36RzOM3fMNNiAGdFZJA84gcdloJR+sHCDTTPT3784fjr+V8An7sI581NGFzkRQqPvEQCZbUAEQEA Ac0SdGhpZXZvbEBwb3N0ZW8ubmV0wsEOBBMBCgA4AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheA FiEEI9twfRN7r3nig/xwDsVtFB0W75MFAmL3HCoACgkQDsVtFB0W75OVEAv/f6XxmtIFz08fUb8h Bp/zJP6IC4/rhhh+0GMRIRzLN8DK0jV8JCzYdFHiRJOy2lNIOpmrrCmjRRxferc2G42+ePFIsslx hU46VSz1Z83NwIG3mpdYNV5WUTUdgzxExHTNTFCd7NKv0nlHKQaA OpenPGP: url=https://posteo.de/keys/thievol@posteo.net.asc; preference=encrypt 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:289605 Archived-At: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Thierry Volpiatto writes: > Eli Zaretskii writes: > >>> From: Philip Kaludercic >>> Cc: Thierry Volpiatto , 72141@debbugs.gnu.org >>> Date: Sun, 28 Jul 2024 11:47:44 +0000 >>>=20 >>> Eli Zaretskii writes: >>>=20 >>> >> From: Thierry Volpiatto >>> >> Date: Tue, 16 Jul 2024 14:46:37 +0000 >>> >>=20 >>> >>=20 >>> >> I think there is a bug here, but please verify with following recipe= as >>> >> I don't use widely package installation, at least for myself. When = reading >>> >> the code I believe it is reproductible as well on emacs-30+. >>> >>=20 >>> >> 1) Install package foo and bar. >>> >> 2) Disable them in package-load-list ((foo nil) (bar nil) all). >>> >> 3) Wait some time until foo and/or bar have new versions available. >>> >> 4) Call package-upgrade-all. It will call package-upgrade on foo >>> >> and bar (and possibly others). When package-upgrade find foo >>> >> package it will (1) delete it and (2) call package-install which >>> >> will refuse to install (error) because foo is disabled. >>> >>=20 >>> >> As a result we have lost foo package, it is now uninstalled. >>> >> Same problem with M-x package-upgrade, foo and bar are listed in >>> >> completion and made available whereas they are going to fail to >>> >> upgrade. >>> > >>> > Philip, any comments or suggestions? >>>=20 >>> The issue is that we don't install a package if it is disabled. So >>> either we allow installing (but don't activate) disabled packages, or we >>> ignore disabled packages during upgrades. >> >> The latter, I'd say. It makes little sense to upgrade disabled >> packages. > > When I posted initially this bugreport I wrote this (fully not tested): > > (defun package--upgradeable-packages (&optional include-builtins filt= er-load-list) > ;; Initialize the package system to get the list of package > ;; symbols for completion. > (package--archives-initialize) > (let ((pkgs (if include-builtins > (append package-alist > (mapcan > (lambda (elt) > (when (not (assq (car elt) package-alist= )) > (list (list (car elt) (package--from-b= uiltin elt))))) > package--builtins)) > package-alist)))=20 > (cl-loop for (sym desc) in pkgs > for available =3D (assq sym package-archive-contents) > when (or (and available > (or (and > include-builtins > (not (package-desc-version desc))) > (version-list-< > (package-desc-version desc) > (package-desc-version (cadr available= ))) > (and filter-load-list > (pcase (assq p package-load-list) > (`(,sym ,val) (or (not (eq val = nil)) > (not (stringp= val)))))))) > (package-vc-p desc)) > collect sym))) > > Perhaps package-disabled-p can be used instead of the pcase (I didn't > know its existence). Here a version fixing typo and using package-disabled-p (same, still fully untested) Note the extra optional arg filter-load-list that allow preserving the init= ial behavior if needed (better name?). (defun package--upgradeable-packages (&optional include-builtins filter-loa= d-list) ;; Initialize the package system to get the list of package ;; symbols for completion. (package--archives-initialize) (let ((pkgs (if include-builtins (append package-alist (mapcan (lambda (elt) (when (not (assq (car elt) package-alist)) (list (list (car elt) (package--from-builtin= elt))))) package--builtins)) package-alist)))=20 (cl-loop for (sym desc) in pkgs for available =3D (assq sym package-archive-contents) for cversion =3D (and available (package-desc-version desc)) when (or (and available (or (and include-builtins (not (package-desc-version desc))) (version-list-< cversion (package-desc-version (cadr available))) (and filter-load-list (package-disabled-p sym cversion)))) (package-vc-p desc)) collect sym))) Also there is IMO another inconsistency in package-upgrade where the completion is done inconditionally on packages+builtins and later package-install-upgrade-built-in is let bounded to prevent package-install to upgrade built-in in case user chose a built-in! =2D-=20 Thierry --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQHHBAEBCgAxFiEEI9twfRN7r3nig/xwDsVtFB0W75MFAmarL60THHRoaWV2b2xA cG9zdGVvLm5ldAAKCRAOxW0UHRbvk+zgDACh+SgLc/h4pZuwRohTLa6t7lEQ7uVL 3W7XJm/lik1WC6xlLw+WmtctILVFTIz8cd99GBmQujnMx0TkSOOSRUNtY7sJpi6h bZ7HlamSFZR5PbsZ4HKFD3vFI8s0aF6URd6H/n/ODeYESwkINNQ6dILwb07z2kZU nDou8VySbcpKM7yzpQPUoJC74VvrmOMbvKpnRQxHeTFAVi3CRkXzA5QTg9saaFLI hHMp4X5OdPe3uk/m+JueliCI4P/gHpTlXPgjK8hoAt6zX4GzFfEn/KaymfGTGnSl 7CqJTbLXPlOCMBVIgDYI80NlYkSR7rBTCRV/yf/X0cayWauGYXrGNtXOzRSpwm7R Dnug5mOcWTo/JOTRz60Fs+V/QnKmXJKxQWSh2IrjJ8pI2MtcTfoSY5qe/biaWEHJ V4006NRmFdd3B8U8/HdVzC8/1e5m0m1rwr2w3ewBLdRANt5zNCIAUpZb1FAtPAFx X9ymRnZwPjDC/Hv6O8AFZXOPSNLjnk85LOc= =RgA7 -----END PGP SIGNATURE----- --=-=-=--