I upgraded from xorg-server 1.10.4 to xorg-server 1.10.4 and went through the ritual recompilation of the xorg-drivers following the realization that ABI compatibility broke. I would like portage to be able to identify these situations beforehand and force a recompilation of the portage modules.
In order to do this, I propose that portage be modified to read an array of tuples containing a pair of regular expressions from ebuilds. The first member would be run against the version of the previous package being upgraded. If that matches, the second member would be run against the world set of packages in the system. Any packages matched by the second member would then be queued for recompilation as if they had been passed to emerge with --oneshot. A FEATURE flag could be implemented in portage to control whether or not this behavior occurs. Additionally, portage could flag the reason for the recompilation in verbose output so end users know why these packages are being recompiled.
I imagine that this would predominantly find use in xorg, but it could be used in any situation where the package maintainer knows that a revdep-rebuild will be required to make things work. Of course, package maintainers would need to do additional work to make this work.
Some sort of script would be needed for package maintainers so that they can minimize the possibility of false positives by testing their regular expressions against the tree, but even if their regular expressions do generate false positives, the worst that will happen is that the false positives will be queued for recompilation.
Good idea, but it is already proposed in bug 192319
*** This bug has been marked as a duplicate of bug 192319 ***