1 |
Vladimir G. Ivanovic posted |
2 |
<1144775349.12957.28.camel@×××××××××××××××××.org>, excerpted below, on |
3 |
Tue, 11 Apr 2006 10:09:09 -0700: |
4 |
|
5 |
> On Tue, 2006-04-11 at 17:08 +0200, Simon Stelling wrote: |
6 |
> |
7 |
>> In case you wonder why emerge -uD world shows you a block, note bug |
8 |
>> 123526 [1]. It's as easy to resolve as every other block: |
9 |
> |
10 |
> It's not obvious to me which package (in general) should prevail. |
11 |
> |
12 |
> I'm leery of simply unmerging the blocking package to make way for the |
13 |
> blocked package. Is it always the case that the blocked package is a |
14 |
> drop-in replacement for the blocking package? Would such a blocking |
15 |
> scenario every happen with, say, glibc? |
16 |
|
17 |
It's not always the case, no. As for glibc, not likely, unless you try to |
18 |
emerge the gentoo-fbsd libc or something equally strange. Even then, it'd |
19 |
be more than a blocker, as that's setup by the profile, so you'd be |
20 |
changing your profile as well. Basically, there'd be several BIG FLASHY |
21 |
WARNINGS and refusals to go forward unless you manually overrode things, |
22 |
such that such a thing is not something you have to worry about doing |
23 |
accidentally. (Well, I've read of folks doing some pretty stupid stuff |
24 |
when drunk or high, but other than that... Just don't go sysadmin-ing |
25 |
while under the influence! =8^) |
26 |
|
27 |
Blockers denote packages that stomp on each other if you try to merge both |
28 |
of them. It's portage's way of saying, "Hey, you can't merge that if this |
29 |
package you already have (or that's a dependency of something else you are |
30 |
merging) is already merged! Choose one or the other, but you can't have |
31 |
both, or bad things will happen!" |
32 |
|
33 |
A blocker is often set when a package forks, and the two separate packages |
34 |
still contain many of the same files and/or use the same config, but the |
35 |
two different versions of the conflicting files are incompatible. |
36 |
Alternatively, it might not be direct forks, but two packages providing |
37 |
similar functionality. An example would be some of the various cron |
38 |
packages, which block each other. |
39 |
|
40 |
In our particular case, linux32 vs. setarch, the two packages provide the |
41 |
same functionality and many of the same files, so if you merge one, it'll |
42 |
overwrite the files of the other. Setarch, however, is a global package |
43 |
that's more flexible than linux32, as it can be used for all the various |
44 |
multilib archs (amd64, sparc, mips, ppc, etc), and can handle applications |
45 |
such as double-chroots where you run a 64-bit chroot inside a 32-bit |
46 |
chroot on a 64-bit native system. The old linux32 was somewhat arch |
47 |
flexible, but as written was hardcoded (according to the bug) to 32-bit, |
48 |
so one could do the single chroot thing with it, but not the double chroot |
49 |
thing, 32-bit on 64-bit OK, 64-bit in 32-bit on 64-bit not so. Thus, the |
50 |
old linux32 package will eventually be removed (after a suitable |
51 |
switchover time), while setarch provides the same functionality (including |
52 |
a linux32 symlink) and more. |
53 |
|
54 |
That's why blockers are set up the way they are, to tell the sysadmin |
55 |
about the problem and let them decide, rather than to arbitrarily make the |
56 |
decision. If it was always a direct dropin replacement (as here), portage |
57 |
could just go ahead and do it (perhaps with the standard 10-second serious |
58 |
ebeep warning), instead of bothering the admin. |
59 |
|
60 |
-- |
61 |
Duncan - List replies preferred. No HTML msgs. |
62 |
"Every nonfree program has a lord, a master -- |
63 |
and if you use the program, he is your master." Richard Stallman in |
64 |
http://www.linuxdevcenter.com/pub/a/linux/2004/12/22/rms_interview.html |
65 |
|
66 |
|
67 |
-- |
68 |
gentoo-amd64@g.o mailing list |