Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: Gentoo Dev <gentoo-dev@l.g.o>
Subject: [gentoo-dev] [RFC] Extend blocker syntax to indicate when conflicting packages may be temporarily installed simultaneously (for EAPI 2)
Date: Sun, 31 Aug 2008 22:38:26
Message-Id: 48BB1D73.4060003@gentoo.org
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-----

Replies