>>>>> On Thu, 11 Sep 2008, Zac Medico wrote: > I think it's worthwhile to have consistent phase ordering across all > EAPIs. Consider an upgrade from EAPI 0 to EAPI 2. If the phase order > is consistent across all EAPIs, as implemented in > >=sys-apps/portage-2.1.5, then the order of phase execution order is > uniform and unambiguous:
> Upgrade from EAPI 0 to EAPI 2 > pkg_preinst (EAPI 2) > pkg_prerm (EAPI 0) > pkg_postinst (EAPI 0) This should read "pkg_postrm" I think? > pkg_postinst (EAPI 2) > [...] > Given that the phase order used in <sys-apps/portage-2.1.5 varies > depending on whether or not the new and old version are identical > [1], I consider the uniformity introduced by the new phase order to > be a change that is well worth keeping. Given the small number of > problems that have been discovered in practice, tracked by bug > 226505 [3], I believe that the potential problems have proven to be > negligible. +1 In some situations involving eclasses, the new phase order avoids some problems. pkg_postrm may call a function of an eclass saved with the old package in the VDB, and it may have advantages if you can clean up things in pkg_postinst of the new version. For example, the Emacs team had quite some headache due to pkg_postrm running after pkg_postinst, leading to complicated code in the present version of elisp-common.eclass. This wouldn't have been necessary if the new phase order already was in effect at that time. See ref. [4] for further details. Ulrich [4] http://bugs.gentoo.org/show_bug.cgi?id=210764#c3