1 |
"P.V.Anthony" <pvantony@×××××××××××.sg> posted |
2 |
47852216.2040600@×××××××××××.sg, excerpted below, on Thu, 10 Jan 2008 |
3 |
03:35:50 +0800: |
4 |
|
5 |
> Trying to install courier-imap and maildrop and encountering file |
6 |
> collisions. |
7 |
> |
8 |
> Is there any way to solve this? Some way to force it? |
9 |
> |
10 |
> Guessing that the files are the same as courier-imap and maildrop come |
11 |
> from the same main courier-mta. |
12 |
|
13 |
There's a way (actually several) to force it, but be sure to file a bug |
14 |
on it anyway (checking first to see if one's already filed, of course). |
15 |
IOW, don't let the fact that you can force it cause you to avoid the bug |
16 |
filing step, because it /is/ a bug, and should be fixed. |
17 |
|
18 |
1) You can avoid the problem once with |
19 |
|
20 |
FEATURES=-collision-protect emerge <whatever> |
21 |
|
22 |
2) Since that one causes a possibly quite lengthy full emerge, and the |
23 |
collision-protect test happens at the end, after the package is compiled, |
24 |
right before it's actually merged, you may prefer using ebuild. That's a |
25 |
bit more complicated as portage uses the environment (including FEATURES) |
26 |
from previous steps in later calls to ebuild, so you have to edit that |
27 |
saved environment to get it to finish. |
28 |
|
29 |
Edit ${T}/environment (see man 5 ebuild for the meaning of the ${T} |
30 |
variable) as appropriate, in this case, removing collision-protect from |
31 |
features. |
32 |
|
33 |
ebuild /<path/to/ebuild.ebuild> merge |
34 |
|
35 |
(See man 1 ebuild for the ebuild command details.) |
36 |
|
37 |
Note that unlike emerge, ebuild can't figure out where the ebuild is by |
38 |
itself. You have to give it the full path to the ebuild, |
39 |
/${PORTDIR}/${CATEGORY}/${PN}/${PF}.ebuild . Of course that's a bit of a |
40 |
hassle, so for trivial merges, it's easier just to use (1) above, but for |
41 |
those that take awhile, typing the full path isn't /too/ hard, especially |
42 |
not with tab-completion. =8^) |
43 |
|
44 |
3) If you want to have portage avoid collision-protect checking for a |
45 |
specific file, class of files, or an entire directory, by default, set |
46 |
the COLLISION_IGNORE variable in make.conf (man 5 make.conf for details). |
47 |
|
48 |
Normally, you'll want to do the one-shot thing using methods 1 or 2, |
49 |
since you'd expect the bug you file (right?!) to be resolved before you |
50 |
have to update or remerge that package. However, method 3 comes in handy |
51 |
in cases such as the one I had recently in the kde overlay, testing KDE4 |
52 |
svn packages. In that case, upstream (the KDE devs) were still actively |
53 |
changing files around, adding new ones, moving them to different |
54 |
packages, deleting old ones, etc, and a lot of these were non-critical |
55 |
stuff like icons and the like. The folks running the Gentoo kde overlay |
56 |
recommended that people set FEATURES=collision-protect as a safety |
57 |
measure to avoid KDE3 and KDE4 interfering with each other, but having |
58 |
the merges stop just because an icon appeared in two different KDE4 |
59 |
packages because upstream had just changed it wasn't useful, and was VERY |
60 |
frustrating. That's where COLLISION_IGNORE comes in, as I was able to |
61 |
set it to have portage avoid the KDE4 icons dir entirely. |
62 |
|
63 |
-- |
64 |
Duncan - List replies preferred. No HTML msgs. |
65 |
"Every nonfree program has a lord, a master -- |
66 |
and if you use the program, he is your master." Richard Stallman |
67 |
|
68 |
-- |
69 |
gentoo-amd64@l.g.o mailing list |