>>>>> 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

Reply via email to