Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 196043 - portage reports file collision on /var/lib/xkb/README.compiled
Summary: portage reports file collision on /var/lib/xkb/README.compiled
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 194041
  Show dependency tree
 
Reported: 2007-10-16 14:26 UTC by Dan A. Dickey
Modified: 2007-10-18 22:23 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
update error message and implement `portageq owners / <filename>` (collision.patch,8.06 KB, patch)
2007-10-17 03:10 UTC, Zac Medico
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dan A. Dickey 2007-10-16 14:26:04 UTC
* Forcing on xorg-x11 for new enough glxtokens.h...
 * 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. If
 * you have determined that one or more of the files actually belong to
 * another installed package then go to http://bugs.gentoo.org and report
 * it as a bug. Be sure to identify both this package and the other
 * installed package in the bug report. Use a command such as `equery
 * belongs <filename>` to identify the installed package that owns a
 * file. Do NOT file a bug without reporting exactly which two packages
 * install the same file(s).
 *
 * Detected file collision(s):
 *
 *      '/var/lib/xkb/README.compiled'

And:
# equery belongs /var/lib/xkb/README.compiled
[ Searching for file(s) /var/lib/xkb/README.compiled in *... ]
x11-base/xorg-server-1.3.0.0-r2 (/var/lib/xkb/README.compiled)
#

According to equery, it is not in two packages.
According to an emerge of xorg-server, it is.
Comment 1 Zac Medico gentoo-dev 2007-10-16 15:31:40 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. :)
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2007-10-16 15:49:13 UTC
(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?
Comment 3 Dan A. Dickey 2007-10-16 15:54:44 UTC
(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.

Comment 4 Dan A. Dickey 2007-10-16 15:56:56 UTC
[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... )
Comment 5 Zac Medico gentoo-dev 2007-10-16 16:23:08 UTC
(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?

Comment 6 Dan A. Dickey 2007-10-16 16:34:00 UTC
(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?
Comment 7 Jakub Moc (RETIRED) gentoo-dev 2007-10-16 16:34:46 UTC
(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.
Comment 8 Zac Medico gentoo-dev 2007-10-16 17:36:38 UTC
(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.
Comment 9 Jakub Moc (RETIRED) gentoo-dev 2007-10-16 17:44:22 UTC
(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" ?
Comment 10 Zac Medico gentoo-dev 2007-10-17 03:10:32 UTC
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.
Comment 11 Dan A. Dickey 2007-10-18 12:41:32 UTC
(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.

Comment 12 Zac Medico gentoo-dev 2007-10-18 15:26:20 UTC
Thanks, that missing "to" grammar mistake is fixed.
Comment 13 Zac Medico gentoo-dev 2007-10-18 22:23:23 UTC
This has been released in 2.1.3.15.