Summary: | portage reports file collision on /var/lib/xkb/README.compiled | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Dan A. Dickey <dan.dickey> |
Component: | Core - Interface (emerge) | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jakub |
Priority: | High | ||
Version: | 2.1 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 194041 | ||
Attachments: | update error message and implement `portageq owners / <filename>` |
Description
Dan A. Dickey
2007-10-16 14:26:04 UTC
(In reply to comment #0) > According to equery, it is not in two packages. > According to an emerge of xorg-server, it is. According to emerge, "This package will overwrite one or more files that may belong to other packages". I tried to make the message clear that bugs should not be file unless you report "exactly which two packages install the same file(s)". If we get lots more but reports like this then I guess that we'll have to change the message to try and clarify it some more. Thanks anyway for reporting. :) (In reply to comment #1) Well, I don't get this either... sound like rather annoying false positive, is the file orphaned or why exactly does emerge produce this message? (In reply to comment #1) > ... I tried to make the message clear that bugs should > not be file unless you report "exactly which two packages install the same > file(s)". If you want help clarifying the message, I'd suggest adding something like the following to what you already have: If an 'equery belongs <filename>' reports two or more packages owning a file, this this should be reported. If equery only reports about one package owning a file - do not file a bug report. (And, in reply to comment #1): Yeah, same here. Why did it pick this up? (maybe bug 130004 provides a clue). I *did* search for an already existing bug before reporting this file collision. [Note to self: proofread *three* times!] The second in reply to in comment 3 was meant to be in reply to comment 2. I was counting from zero and was off by one for the second half of that comment. Have a good day! (Wish there was a way to edit comments I wrote after pushing Commit... ) (In reply to comment #2) > Well, I don't get this either... sound like rather annoying false positive, is > the file orphaned or why exactly does emerge produce this message? It's either an orphan or else `equery belongs /var/lib/xkb/README.compiled` fails to identify the real owner for some reason like bug 130004. (In reply to comment #3) > (maybe bug 130004 provides a clue). Does `equery belongs /usr/share/X11/xkb/compiled/README.compiled` report anything? Can you install portage-utils and try it with qfile? (In reply to comment #5) I get: # equery belongs /usr/share/X11/xkb/compiled/README.compiled [ Searching for file(s) /usr/share/X11/xkb/compiled/README.compiled in *... ] # qfile /usr/share/X11/xkb/compiled/README.compiled # qfile README.compiled x11-base/xorg-server (/var/lib/xkb/README.compiled) # /etc/cron.daily/slocate # locate README.compiled /var/lib/xkb/README.compiled # locate xkb | grep README.compiled /var/lib/xkb/README.compiled Anything else I can help with? (In reply to comment #5) > (In reply to comment #3) > Does `equery belongs /usr/share/X11/xkb/compiled/README.compiled` report > anything? Can you install portage-utils and try it with qfile? equery fails on symlinks like this, not the best tool around for similar stuff unfortunately. We should tell users to use qfile or something else that doesn't screw on symlinks. # equery belongs /usr/share/X11/xkb/compiled/README.compiled [ Searching for file(s) /usr/share/X11/xkb/compiled/README.compiled in *... ] # qfile /usr/share/X11/xkb/compiled/README.compiled x11-base/xorg-server (/var/lib/xkb/README.compiled) Anyway, not sure why's that relevant here, /usr/share/X11/xkb/compiled/README.compiled is not anywhere in CONTENTS, just /var/lib/xkb/README.compiled. (In reply to comment #7) > Anyway, not sure why's that relevant here, > /usr/share/X11/xkb/compiled/README.compiled is not anywhere in CONTENTS, just > /var/lib/xkb/README.compiled. FWIW, it seems to be the opposite on my system with xorg-server-1.3.0.0-r1. The /usr/share/X11/xkb/compiled/README.compiled is listed in CONTENTS and var/lib/xkb/README.compiled exists as an orphan (no symlinks here). I guess the collision message should be clarified as suggested in comment #3, and we should also recommend qfile instead of equery since the the enhancement from bug 130004 seems to make it much more robust. (In reply to comment #8) > I guess the collision message should be clarified as suggested in comment #3, Thinking about misbehaving ebuilds like the one in Bug 195017, maybe more precise like this? "If equery only reports about one package that owns a file, do NOT file a bug report unless you can point out how the file became orphaned" ? Created attachment 133657 [details, diff] update error message and implement `portageq owners / <filename>` I've updated the message to say this: * This package will overwrite one or more files that may belong to other * packages (see list below). Add collision-protect to FEATURES in * make.conf if you would like the merge to abort in cases like this. You * can use a command such as `portageq owners / <filename>` to identify * the installed package that owns a file. If portageq reports that only * one package owns a file then do NOT file a bug report. A bug report is * only useful if it identifies at least two or more packages that are * known install the same file(s). If a collision occurs and you can not * explain where the file came from then you should simply ignore the * collision since there is not enough information to determine if a real * problem exists. Please do NOT file a bug report at * http://bugs.gentoo.org unless you report exactly which two packages * install the same file(s). Once again, please do NOT file a bug report * unless you have completely understood the above message. (In reply to comment #10) The message looks good to me with one small addition. Feel free to skip it if it's a bit late. > I've updated the message to say this: > > * This package will overwrite one or more files that may belong to other > * packages (see list below). Add collision-protect to FEATURES in > * make.conf if you would like the merge to abort in cases like this. You > * can use a command such as `portageq owners / <filename>` to identify > * the installed package that owns a file. If portageq reports that only > * one package owns a file then do NOT file a bug report. A bug report is > * only useful if it identifies at least two or more packages that are > * known install the same file(s). If a collision occurs and you can not * known to install the same file(s). If a collision occurs and you can not > * explain where the file came from then you should simply ignore the > * collision since there is not enough information to determine if a real > * problem exists. Please do NOT file a bug report at > * http://bugs.gentoo.org unless you report exactly which two packages > * install the same file(s). Once again, please do NOT file a bug report > * unless you have completely understood the above message. Thanks, that missing "to" grammar mistake is fixed. This has been released in 2.1.3.15. |