Control: reassign -1 dpkg On Wed, Oct 29, 2014 at 05:41:25PM +0100, Guillem Jover wrote: > Control: retitle -1 apt: does not process pending triggers > Control: reassign -1 apt > Control: affects -1 dpkg > > This should probably be considered an RC bug, but I'll let the apt > maintainers deal with that.
Every libapt-based tooling has this problem and will all be fixed by the same fix, BUT this bug effects stable upgrades as apt (/aptitude/ synaptics/…) will upgrade dpkg pretty early in the upgrade process and the new dpkg (with its behaviour change) will deal with the rest of the upgrade and so everyone will have unprocessed triggers. This is unacceptable IMHO and nothing we can paper over with a release notes entry. I dislike bug-pingpong, but in this case I have to move it back to dpkg as we can't change apt to make upgrades work (at least it was never allowed in the past, so I doubt it is an option now) and its a behaviour change in dpkg, not a apt regression per-se, so dpkg/jessie has to behave as expected by libapt-pkg/wheezy here regardless of how dumb that might be. I would suggest that "--configure foo" is extended to implicitly run all pending triggers by default for jessie (at least those which can be run as their dependencies are satisfied). We (as in apt) will change apt/jessie to run "dpkg --triggers-only --pending" after the last dpkg invocation and you can change dpkg/jessie+1 to behave like it does now. (assuming the release team agrees to this plan) Not the most efficient solution as dpkg and apt in jessie will both waste some time doing stuff they don't have to just for the sake of upgrades, but compared to the time they take to do their actual work, its negligible and doing funky stuff to detect an upgrade in progress are probably going to explode… If you agree just clone the bug back to us and I will take care of it from the apt side. You might want to clone it to other dpkg-callers as well as I presume that at least some have the same problem. Otherwise, I am all ears for alternative solutions. > So apt needs to either pass man-db to the --configure call, or just > do a final --triggers-only/--configure --pending call. A trivial fix > would be to change the default value for DPkg::TriggersPending to > true. The option exists in apt/wheezy already, but it runs --triggers-only after EVERY explicit --configure call¹, which can be quiet frequent as e.g. every (pseudo-)essential package is configured on its own. I had it implemented to circumvent #526774. Now it isn't needed anymore… (well, it never was as the whole option group was never the default. I hope to have some time after jessie release to look into this as its kinda embarrassing that I wanted to do it for 5 years now…) Anyway, we can't enable this option retroactively even if we wanted to… Best regards David Kalnischkies ¹ so basically, it would do what my suggestion is above to be done by default, BUT I would expect the call to fail if a pending trigger can't be run while the implicit suggested one would carry on as normal.
signature.asc
Description: Digital signature