[Aptitude-devel] Bug#576319: aptitude: "Cancel pending actions" erase "h - hold" state

Ralf Jung post at ralfj.de
Fri Sep 25 11:11:18 UTC 2015


Hi,

Wow, finally I know what has been causing all that frustration over the
years! I have been hit time and time again by the problem that aptitude
kept forgetting which packages I had on hold. Recently, while the gcc5
transition was being staged and I had >100 packages on hold, that was
really annoying. When aptitude forgot (again) all the things I told it,
it took me minutes to get all the packages I wanted on hold back to that
state.

It never occurred to me that "Cancel pending updates" could reset the
hold state. Admittedly, I didn't read the description at the bottom, but
the menu entry is IMHO pretty clear: Having a package on hold is a
fairly permanent state, similar to the "automatically installed" bit. I
frequently use "Cancel pending actions" to get aptitude back into a sane
state, when it selected a strange set of updates or otherwise dragged
itself into some bad corner.

IMHO, having "Cancel pending updates" affect the hold bit is just as
surprising as if it would affect the "automatically installed" bit. I
expected it to act as if I would manually have selected "Keep" on every
single package. Now, I just noticed that "keep" also clears the hold
bit. I don't understand this, either: The description says "Cancel any
action on the package". But "hold" is not an action; it is a state -
just like "automatically installed" is. It means "please don't update
this package, ever", similar to how "automatically installed" means
"please uninstall this package when nobody depends on it anymore".
Again, why does "keep" reset one part of the state, but not the other?

The description shown at the bottom when selecting "Cancel pending
actions" gives it away, I admit that. It also says "Cancel pending ...
holds ....", which I don't know what it means. How can a hold be
"pending"? It's as if the hold was sitting there, waiting to be executed
at some point - that's what "pending" means, isn't it? But that's not at
all what hold is doing. So, overall, I have to say this is a *very*
confusing UI.

And finally, regarding the functionality that's lost when "Cancel
pending actions" no longer reset the hold bit: First of all, I have a
hard time imagining a situation where I would want to wholesale reset
the hold bit of all packages; similar to how the situation in which
you'd want to reset the "automatically installed" bit of every package
is IMHO rare. But that may be just my lack of imagination. In any case,
*if* a package ends up not being updated because it is on hold, that's
easily noticed because the "Upgradable packages" category will list
them. And finally, the aptitude search functionality can easily be used
to identify all packages that are on hold, and to reset that state.

Kind regards,
Ralf



More information about the Aptitude-devel mailing list