On Wed, 24 Jul 2013 13:40:48 -0600 Ryan Hill <dirtye...@gentoo.org> wrote: > > Actually per PMS you are required to revbump (and therefore require > > upgrade on users' side) whenever you change the deps and don't > > expect to add a new version soon enough. Otherwise your changes > > don't get spread and users end up with never-ending blockers and > > stuff like that. > > > > Other thing is that Portage explicitly ignores PMS in this matter > > and uses dependencies from ebuilds rather than recorded ones. This > > is supposedly wrong, supposedly slow but allows us to be lazy. > > Thank god. That is insane. > > Let's not document that one in the manual.
The issue's not as simple as one might initially think, and both ways have their drawbacks. The only drawback of "use dependencies at the time the package was installed" is that developers can't retroactively change dependencies without a revbump. The drawbacks of "use VDB" are: * That ebuilds can be updated without revbumps to have "changed" dependencies. The example that comes up most is pkg_prerm changes to use or stop using a foo-config type app. If a package mangler then uses the "changed" dependencies, it can lead to premature uninstallation of a foo-config that's needed to safely uninstall something. * That it assumes there's a one-to-one correspondence between "installed ebuild" and "installable ebuild". This means that whenever ebuild versions are cleaned up in the tree, suddenly the dependencies of your installed packages change. It gets even trickier when overlays and binaries are involved. * The way Portage does it doesn't work if there are := dependencies. So the tradeoff is between "require more revbumps" or "randomly broken dependency handling", and neither is ideal. Portage currently leans towards the latter, on the grounds that users expect broken dependencies and strange failures every now and again, but hate "wasting time" on "unnecessary" revbumps. -- Ciaran McCreesh
signature.asc
Description: PGP signature