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