-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everyone,

As many of you probably know already, bug 46223 [1] prevents the
proper uninstallation of a package when one or more of the eclasses
that it inherits are missing from the live portage tree.

There are essentially two ways to solve this problem:

Approach #1: Reuse the saved environment which contains a mixture of
eclasses and parts of the package manager (such as portage's
ebuild.sh) that performed the installation.

Approach #2: Save copies of the raw eclasses and use them, together
with the saved ebuild, to recreate the environment.

A major advantage of approach #1 is that it can potentially provide
complete restoration of the install-time environment.  The major
disadvantage is that the saved environment needs to be purified so
that parts of the package manager that did the install do not
interfere with the package manager that does the uninstall.  The
purification process could potentially be complex or error prone,
making it difficult to maintain or unreliable.

Simplicity is the major advantage approach #2.  The eclasses that
are used by a package could be stored in eclasses.tbz2 (much like
enviroment.bz2 is currently stored for each installed package), and
the environment could be recreated from scratch by using the ebuild
and eclasses in the normal inherit process.  This wouldn't
necessarily allow access to the complete build-time or install-time
environment, but that feature is not currently available anyway.  If
we save the raw eclasses for each installed package, we can easily
gain the ability to remove eclasses from the portage tree and make
incompatible api changes when necessary, without the complexity of
environment purification.

What do people think about these two approaches?  Personally, I
would prefer approach #2 for the sake of simplicity and
maintainability.  The sooner that we start storing eclasses.tbz2 for
each installed package, the sooner that we will be able to have more
freedom with the eclasses in the live portage tree.

Zac

[1] http://bugs.gentoo.org/show_bug.cgi?id=46223

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFTF58/ejvha5XGaMRApOeAJ9CncD89mRUy/mhyVZnhFjmazjYYACfYhdy
4qLqBySCLvAyuNm58bqXZnY=
=Ailg
-----END PGP SIGNATURE-----
-- 
gentoo-dev@gentoo.org mailing list

Reply via email to