1 |
-----BEGIN PGP SIGNED MESSAGE----- |
2 |
Hash: SHA1 |
3 |
|
4 |
Hi everyone, |
5 |
|
6 |
Please consider a blocker syntax extension, for inclusion in EAPI 2, |
7 |
which will serve to indicate that conflicting packages may be |
8 |
temporarily installed simultaneously when upgrading or installing a |
9 |
series of packages. When temporary simultaneous installation of |
10 |
conflicting packages occurs, the installation of a newer package may |
11 |
overwrite any colliding files that belong to an older package which |
12 |
is explicitly blocked. When such a file collision occurs, the |
13 |
colliding files will cease to belong to the older package, and they |
14 |
will remain installed after the older package is eventually |
15 |
uninstalled. The older package will be uninstalled only after any |
16 |
newer blocking packages have been merged on top of it. I have |
17 |
written a blog entry [1] which shows some specific examples of this |
18 |
process in action. |
19 |
|
20 |
In EAPI 2, I suggest that we introduce a new !!atom syntax to |
21 |
indicate blockers for which temporary simultaneous installation with |
22 |
a blocked package is not allowed. This way we will be able to |
23 |
continue to use the existing !atom syntax, but slightly change it's |
24 |
existing meaning so it serves to indicate that temporary |
25 |
simultaneous installation with a blocked package will be allowed. By |
26 |
using this approach, we will be able to use the !atom syntax for the |
27 |
majority of blockers, and we'll only have to use the new !!atom |
28 |
syntax for special cases in which temporary simultaneous |
29 |
installation of blocking packages should not be allowed. |
30 |
|
31 |
With >=sys-apps/portage-2.1.5, temporary simultaneous installation |
32 |
of blocking packages is already allowed in some cases, but since the |
33 |
current blocker syntax does not express all of the needed |
34 |
information, it relies on heuristics in order to judge whether or |
35 |
not temporary simultaneous installation of conflicting packages will |
36 |
be allowed [2]. In practice, these heuristics appear to be |
37 |
sufficient in many cases. However, in some cases, such as bug 234886 |
38 |
[3], additional information is needed in order to confirm that |
39 |
simultaneous installation of conflicting packages should be allowed. |
40 |
|
41 |
As a workaround for bug 234886, I have temporarily removed e2fsprogs |
42 |
from the system set in order to force the blocker pass the heuristic |
43 |
test that is employed by >=sys-apps/portage-2.1.5. This workaround |
44 |
is possible since e2fsprogs is still pulled in as a dependency of |
45 |
util-linux (which is also a member of the system set) in the |
46 |
relevant profiles. Since removing e2fsprogs from the system set is |
47 |
clearly suboptimal, and workarounds like that won't necessarily be |
48 |
feasible in similar cases that arise, we need to extend blocker |
49 |
syntax to convey the information about when temporary simultaneous |
50 |
installation of conflicting packages should be allowed. |
51 |
|
52 |
Does the suggested blocker syntax extension seem like a good |
53 |
solution to the problem? Would anybody like to discuss any |
54 |
alternative approaches? |
55 |
|
56 |
[1] |
57 |
http://planet.gentoo.org/developers/zmedico/2008/05/09/blocking_package_file_collisions |
58 |
[2] |
59 |
http://dev.gentoo.org/~zmedico/portage/doc/portage.html#dependency-resolution-package-modeling-conflicts |
60 |
[3] http://bugs.gentoo.org/show_bug.cgi?id=234886 |
61 |
|
62 |
- -- |
63 |
Thanks, |
64 |
Zac |
65 |
-----BEGIN PGP SIGNATURE----- |
66 |
Version: GnuPG v2.0.9 (GNU/Linux) |
67 |
|
68 |
iEYEARECAAYFAki7HW4ACgkQ/ejvha5XGaMkUACfTVsOqv9mPUO0BULfoCwTerLF |
69 |
AAUAoKW2Firg7zw/BaoX+FTlRfWE6/zZ |
70 |
=TY+V |
71 |
-----END PGP SIGNATURE----- |