-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi everyone,
Please consider a blocker syntax extension, for inclusion in EAPI 2, which will serve to indicate that conflicting packages may be temporarily installed simultaneously when upgrading or installing a series of packages. When temporary simultaneous installation of conflicting packages occurs, the installation of a newer package may overwrite any colliding files that belong to an older package which is explicitly blocked. When such a file collision occurs, the colliding files will cease to belong to the older package, and they will remain installed after the older package is eventually uninstalled. The older package will be uninstalled only after any newer blocking packages have been merged on top of it. I have written a blog entry [1] which shows some specific examples of this process in action. In EAPI 2, I suggest that we introduce a new !!atom syntax to indicate blockers for which temporary simultaneous installation with a blocked package is not allowed. This way we will be able to continue to use the existing !atom syntax, but slightly change it's existing meaning so it serves to indicate that temporary simultaneous installation with a blocked package will be allowed. By using this approach, we will be able to use the !atom syntax for the majority of blockers, and we'll only have to use the new !!atom syntax for special cases in which temporary simultaneous installation of blocking packages should not be allowed. With >=sys-apps/portage-2.1.5, temporary simultaneous installation of blocking packages is already allowed in some cases, but since the current blocker syntax does not express all of the needed information, it relies on heuristics in order to judge whether or not temporary simultaneous installation of conflicting packages will be allowed [2]. In practice, these heuristics appear to be sufficient in many cases. However, in some cases, such as bug 234886 [3], additional information is needed in order to confirm that simultaneous installation of conflicting packages should be allowed. As a workaround for bug 234886, I have temporarily removed e2fsprogs from the system set in order to force the blocker pass the heuristic test that is employed by >=sys-apps/portage-2.1.5. This workaround is possible since e2fsprogs is still pulled in as a dependency of util-linux (which is also a member of the system set) in the relevant profiles. Since removing e2fsprogs from the system set is clearly suboptimal, and workarounds like that won't necessarily be feasible in similar cases that arise, we need to extend blocker syntax to convey the information about when temporary simultaneous installation of conflicting packages should be allowed. Does the suggested blocker syntax extension seem like a good solution to the problem? Would anybody like to discuss any alternative approaches? [1] http://planet.gentoo.org/developers/zmedico/2008/05/09/blocking_package_file_collisions [2] http://dev.gentoo.org/~zmedico/portage/doc/portage.html#dependency-resolution-package-modeling-conflicts [3] http://bugs.gentoo.org/show_bug.cgi?id=234886 - -- Thanks, Zac -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAki7HW4ACgkQ/ejvha5XGaMkUACfTVsOqv9mPUO0BULfoCwTerLF AAUAoKW2Firg7zw/BaoX+FTlRfWE6/zZ =TY+V -----END PGP SIGNATURE-----