bug#81373: 31.0.90; package-upgrade and package-retention-policy
Jeremy Bryant via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email protected]>
| Newsgroups | gmane.emacs.bugs |
|---|---|
| Message-ID | <[email protected]> |
Jeremy Bryant via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email protected]> writes: > Philip Kaludercic <[email protected]> writes: > >>>> I suspect this is related to the new option, so adding Philip. >>>> package-retention-policy is t >>> >>> You mean to say that this is your local customisation? > > Yes, and by setting this variabel package-retention-policy to nil, it > restores the behaviour where upgrading all packages by 'U' in M-x > list-packages, works again, with all packages upgraded via this user > interface. (Rather than calling package-upgrade-all as above, being > known to work.) > > In testing, I observe this bug on two different installations of Emacs > on two machines. > > When time permits, I would like to trace more precisely if it is due to > the particular set of packages, which is unlikely in any case. > > In the meantime, if you have suggestions to debug, I can try locally. > > >>> >>>> This function specifically hangs >>>> package-menu--mark-upgrades-1 I have debugged the code from edebug, and narrowed it down. with the new option package-retention-policy set to t, it hangs on the last package requiring an upgrade. What is missing is the forward-line part of package-menu--mark-upgrades-1 here: (cond ((null upgrade) (forward-line 1)) in (while (not (eobp)) (let* ((pkg-desc (tabulated-list-get-id)) (upgrade (cdr (assq (package-desc-name pkg-desc) upgrades)))) (cond ((null upgrade) (forward-line 1)) ((equal pkg-desc upgrade) (package-menu-mark-install)) (t (unless (package-matches-selector-p package-retention-policy pkg-desc) (package-menu-mark-delete))))))) By changing the new option package-retention-policy back to nil, it enters the function package-menu-mark-delete, of which the last line is (forward-line) So what is missing is restoring that forward-line somewhere with the new option. When time permits I intend to write a patch but in the meantime the above may help others.