public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [RFC] Extend blocker syntax to indicate when conflicting packages may be temporarily installed simultaneously (for EAPI 2)
@ 2008-08-31 22:38 Zac Medico
  2008-09-20 17:55 ` [gentoo-dev] " Ryan Hill
  0 siblings, 1 reply; 3+ messages in thread
From: Zac Medico @ 2008-08-31 22:38 UTC (permalink / raw
  To: Gentoo Dev

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



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-09-20 18:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-31 22:38 [gentoo-dev] [RFC] Extend blocker syntax to indicate when conflicting packages may be temporarily installed simultaneously (for EAPI 2) Zac Medico
2008-09-20 17:55 ` [gentoo-dev] " Ryan Hill
2008-09-20 18:12   ` Zac Medico

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox