Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Portage & Programming
  • Search

[Solved] Boost update - file collisions

Problems with emerge or ebuilds? Have a basic programming question about C, PHP, Perl, BASH or something else?
Post Reply
Advanced search
16 posts • Page 1 of 1
Author
Message
DanneStrat
n00b
n00b
User avatar
Posts: 73
Joined: Thu Jan 05, 2012 4:13 pm

[Solved] Boost update - file collisions

  • Quote

Post by DanneStrat » Fri Nov 02, 2012 12:17 am

Yesterday I updated world and there was a new version of dev-libs/boost available. Everything emerged fine:

1351794307: Started emerge on: Nov 01, 2012 19:25:07
1351794307: *** emerge --newuse --deep --update world
1351794326: >>> emerge (1 of 1) dev-libs/boost-1.49.0-r2 to /
1351794326: === (1 of 1) Cleaning (dev-libs/boost-1.49.0-r2::/usr/portage/dev-libs/boost/boost-1.49.0-r2.ebuild)
1351794328: === (1 of 1) Compiling/Merging (dev-libs/boost-1.49.0-r2::/usr/portage/dev-libs/boost/boost-1.49.0-r2.ebuild)
1351794886: === (1 of 1) Merging (dev-libs/boost-1.49.0-r2::/usr/portage/dev-libs/boost/boost-1.49.0-r2.ebuild)
1351794917: >>> AUTOCLEAN: dev-libs/boost:0
1351794917: === Unmerging... (dev-libs/boost-1.49.0-r1)
1351794922: >>> unmerge success: dev-libs/boost-1.49.0-r1
1351794926: === (1 of 1) Post-Build Cleaning (dev-libs/boost-1.49.0-r2::/usr/portage/dev-libs/boost/boost-1.49.0-r2.ebuild)
1351794926: ::: completed emerge (1 of 1) dev-libs/boost-1.49.0-r2 to /
1351794927: === Unmerging... (app-admin/eselect-boost-0.4)
1351794928: >>> unmerge success: app-admin/eselect-boost-0.4
1351794928: *** Finished. Cleaning up...
1351794929: *** exiting successfully.
1351794929: *** terminating.

There was multiple file collisions reported at the end of the emerge: http://dpaste.org/krJZg/

By the looks of it everything seems fine but one question arises, why were the libboost_* files preserved when the old version of boost was unmerged? (thus causing the collisions when the files from the new version installs)
Last edited by DanneStrat on Wed Nov 14, 2012 12:41 pm, edited 1 time in total.
Top
platojones
Veteran
Veteran
User avatar
Posts: 1602
Joined: Wed Oct 23, 2002 10:48 pm
Location: Just over the horizon

Re: Boost update - file collisions

  • Quote

Post by platojones » Fri Nov 02, 2012 12:23 am

I ran into that too. I tried un-emerging boost to see if that would clear them, but it didn't. Since equery didn't show they belonged to anything after I un-emerged boost, I just re-emerged it and it worked fine. It's certainly a bug.
Top
DanneStrat
n00b
n00b
User avatar
Posts: 73
Joined: Thu Jan 05, 2012 4:13 pm

  • Quote

Post by DanneStrat » Fri Nov 02, 2012 12:44 am

platojones,

Thanks for the response. I'll take a closer look at it later and file a bug report if it isn't already reported. I'll keep this thread open for now.

Cheers.
Top
platojones
Veteran
Veteran
User avatar
Posts: 1602
Joined: Wed Oct 23, 2002 10:48 pm
Location: Just over the horizon

  • Quote

Post by platojones » Fri Nov 02, 2012 1:13 am

Yep...I forgot a step...I had to manually remove the collision files to re-emerge.
Top
DanneStrat
n00b
n00b
User avatar
Posts: 73
Joined: Thu Jan 05, 2012 4:13 pm

  • Quote

Post by DanneStrat » Fri Nov 02, 2012 1:37 am

platojones wrote:Yep...I forgot a step...I had to manually remove the collision files to re-emerge.
Maybe you have "collision-protect" set in make.conf? In my case all the old files were overwritten by the new ones.

Code: Select all

man make.conf

collision-protect
A QA-feature to ensure that a package doesn't overwrite
files it doesn't own. The COLLISION_IGNORE variable can
be used to selectively disable this feature. Also see the
related protect-owned feature.
Top
platojones
Veteran
Veteran
User avatar
Posts: 1602
Joined: Wed Oct 23, 2002 10:48 pm
Location: Just over the horizon

  • Quote

Post by platojones » Fri Nov 02, 2012 2:21 am

Ah, yup, that was it...collision-protect.
Top
DanneStrat
n00b
n00b
User avatar
Posts: 73
Joined: Thu Jan 05, 2012 4:13 pm

  • Quote

Post by DanneStrat » Fri Nov 02, 2012 1:41 pm

Just had a look in the bugzilla. The issue is reported:
https://bugs.gentoo.org/show_bug.cgi?id=440916
Top
chrisstankevitz
Guru
Guru
Posts: 472
Joined: Sun Dec 14, 2003 10:31 pm
Location: Santa Barbara, CA, USA

  • Quote

Post by chrisstankevitz » Sat Nov 03, 2012 10:03 pm

Hello,

This message is directed toward the people in this thread that seem to know what is going on. I do not know what is going on. I do not know what config_protect is. I do not know what a collisioned file is.

Question: How should I deal with this frightening red-fonted error? (For reference, error pasted below.)

a) revdep-rebuild
b) format hard drive, reinstall gentoo
c) switch to OSX
d) ignore the errors and hope there is no trouble
e) [your idea here]

Thank you,

Chris

Code: Select all

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). 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 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.
 * 
 * Detected file collision(s):
 * 
 *      /usr/lib64/libboost_wave-mt.so
 *      /usr/lib64/libboost_date_time.so
 *      /usr/lib64/libboost_filesystem-mt.so
 *      /usr/lib64/libboost_iostreams.so
 *      /usr/lib64/libboost_serialization.so
 *      /usr/lib64/libboost_iostreams-mt.so
 *      /usr/lib64/libboost_wserialization.so
 *      /usr/lib64/libboost_math_tr1l-mt.so
 *      /usr/lib64/libboost_math_tr1.so
 *      /usr/lib64/libboost_locale-mt.so
 *      /usr/lib64/libboost_wave.so
 *      /usr/lib64/libboost_random.so
 *      /usr/lib64/libboost_python-3.2.so
 *      /usr/lib64/libboost_regex.so
 *      /usr/lib64/libboost_math_c99l-mt.so
 *      /usr/lib64/libboost_exception.a
 *      /usr/lib64/libboost_graph-mt.so
 *      /usr/lib64/libboost_serialization-mt.so
 *      /usr/lib64/libboost_thread-mt.so
 *      /usr/lib64/libboost_test_exec_monitor.a
 *      /usr/lib64/libboost_regex-mt.so
 *      /usr/lib64/libboost_date_time-mt.so
 *      /usr/lib64/libboost_chrono-mt.so
 *      /usr/lib64/libboost_wserialization-mt.so
 *      /usr/lib64/libboost_unit_test_framework-mt.so
 *      /usr/lib64/libboost_math_tr1f-mt.so
 *      /usr/lib64/libboost_thread.so
 *      /usr/lib64/libboost_signals-mt.so
 *      /usr/lib64/libboost_prg_exec_monitor.so
 *      /usr/lib64/libboost_python-2.7.so
 *      /usr/lib64/libboost_math_c99.so
 *      /usr/lib64/libboost_filesystem.so
 *      /usr/lib64/libboost_prg_exec_monitor-mt.so
 *      /usr/lib64/libboost_python-3.2-mt.so
 *      /usr/lib64/libboost_math_tr1f.so
 *      /usr/lib64/libboost_system-mt.so
 *      /usr/lib64/libboost_math_c99f-mt.so
 *      /usr/lib64/libboost_timer-mt.so
 *      /usr/lib64/libboost_math_c99f.so
 *      /usr/lib64/libboost_system.so
 *      /usr/lib64/libboost_unit_test_framework.so
 *      /usr/lib64/libboost_python-2.7-mt.so
 *      /usr/lib64/libboost_exception-mt.a
 *      /usr/lib64/libboost_math_tr1l.so
 *      /usr/lib64/libboost_math_c99l.so
 *      /usr/lib64/libboost_random-mt.so
 *      /usr/lib64/libboost_math_tr1-mt.so
 *      /usr/lib64/libboost_graph.so
 *      /usr/lib64/libboost_math_c99-mt.so
 *      /usr/lib64/libboost_timer.so
 *      /usr/lib64/libboost_test_exec_monitor-mt.a
 *      /usr/lib64/libboost_signals.so
 *      /usr/lib64/libboost_program_options.so
 *      /usr/lib64/libboost_chrono.so
 *      /usr/lib64/libboost_program_options-mt.so
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * None of the installed packages claim the file(s).
 * 
 * Package 'dev-libs/boost-1.49.0-r2' merged despite file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.
Top
asturm
Developer
Developer
Posts: 9509
Joined: Thu Apr 05, 2007 4:07 pm

  • Quote

Post by asturm » Sat Nov 03, 2012 10:34 pm

d)

Logic dictates those could have been only files from the old boost with eselect-boost that were not unmerged, but anyway: no other file claimed the package so your system is perfectly consistent.

EDIT: Well, depending on whether you minor-upgraded from 1.49.0-r1 to -r2 or major-upgraded to 1.51.0-r1 a revdep-rebuild is imminent.
Top
DanneStrat
n00b
n00b
User avatar
Posts: 73
Joined: Thu Jan 05, 2012 4:13 pm

  • Quote

Post by DanneStrat » Sun Nov 04, 2012 1:18 am

chrisstankevitz,

What genstorm said.

A file collision is when a package installs files that already exist in a directory (unclaimed files or files belonging to another package). One case when this is a bad thing is when two different packages install the same files. In this case with boost, the files from the old boost version aren't cleaned out when the old version is unmerged and when the new version installs, the new files collide with the now unclaimed files from the old version. By default, when portage detects file collisions, the files are overwritten if they don't belong to another package. On the other hand, if you have the option "collision-protect" set in your make.conf (not enabled by default), when portage detects a collision it will not overwrite any files. You would then have to manually remove the listed files to be able to emerge the new version of boost.

You can verify that the files mentioned in the file collision message is now claimed by the new version:

Code: Select all

equery belongs /usr/lib64/libboost_*
Top
chrisstankevitz
Guru
Guru
Posts: 472
Joined: Sun Dec 14, 2003 10:31 pm
Location: Santa Barbara, CA, USA

  • Quote

Post by chrisstankevitz » Sun Nov 04, 2012 6:21 am

genstorm, dannastrat:

Thank you, I understand. I did not upgrade to boost 1.50 so a revdep-rebuild should not be needed for this.

I suppose the only remaining mystery is "why did portage thing there was a file collision when upgrading boost to 1.49-r2. Perhaps this is a gentoo "bug" and is being discussed in this thread and in the bug tracker.

Thank you again,

Chris
Top
DaggyStyle
Watchman
Watchman
User avatar
Posts: 5969
Joined: Wed Mar 22, 2006 6:57 am

  • Quote

Post by DaggyStyle » Sun Nov 04, 2012 7:11 am

chrisstankevitz wrote:Hello,

This message is directed toward the people in this thread that seem to know what is going on. I do not know what is going on. I do not know what config_protect is. I do not know what a collisioned file is.

Question: How should I deal with this frightening red-fonted error? (For reference, error pasted below.)

a) revdep-rebuild
b) format hard drive, reinstall gentoo
c) switch to OSX
d) ignore the errors and hope there is no trouble
e) [your idea here]

Thank you,

Chris

Code: Select all

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). 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 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.
 * 
 * Detected file collision(s):
 * 
 *      /usr/lib64/libboost_wave-mt.so
 *      /usr/lib64/libboost_date_time.so
 *      /usr/lib64/libboost_filesystem-mt.so
 *      /usr/lib64/libboost_iostreams.so
 *      /usr/lib64/libboost_serialization.so
 *      /usr/lib64/libboost_iostreams-mt.so
 *      /usr/lib64/libboost_wserialization.so
 *      /usr/lib64/libboost_math_tr1l-mt.so
 *      /usr/lib64/libboost_math_tr1.so
 *      /usr/lib64/libboost_locale-mt.so
 *      /usr/lib64/libboost_wave.so
 *      /usr/lib64/libboost_random.so
 *      /usr/lib64/libboost_python-3.2.so
 *      /usr/lib64/libboost_regex.so
 *      /usr/lib64/libboost_math_c99l-mt.so
 *      /usr/lib64/libboost_exception.a
 *      /usr/lib64/libboost_graph-mt.so
 *      /usr/lib64/libboost_serialization-mt.so
 *      /usr/lib64/libboost_thread-mt.so
 *      /usr/lib64/libboost_test_exec_monitor.a
 *      /usr/lib64/libboost_regex-mt.so
 *      /usr/lib64/libboost_date_time-mt.so
 *      /usr/lib64/libboost_chrono-mt.so
 *      /usr/lib64/libboost_wserialization-mt.so
 *      /usr/lib64/libboost_unit_test_framework-mt.so
 *      /usr/lib64/libboost_math_tr1f-mt.so
 *      /usr/lib64/libboost_thread.so
 *      /usr/lib64/libboost_signals-mt.so
 *      /usr/lib64/libboost_prg_exec_monitor.so
 *      /usr/lib64/libboost_python-2.7.so
 *      /usr/lib64/libboost_math_c99.so
 *      /usr/lib64/libboost_filesystem.so
 *      /usr/lib64/libboost_prg_exec_monitor-mt.so
 *      /usr/lib64/libboost_python-3.2-mt.so
 *      /usr/lib64/libboost_math_tr1f.so
 *      /usr/lib64/libboost_system-mt.so
 *      /usr/lib64/libboost_math_c99f-mt.so
 *      /usr/lib64/libboost_timer-mt.so
 *      /usr/lib64/libboost_math_c99f.so
 *      /usr/lib64/libboost_system.so
 *      /usr/lib64/libboost_unit_test_framework.so
 *      /usr/lib64/libboost_python-2.7-mt.so
 *      /usr/lib64/libboost_exception-mt.a
 *      /usr/lib64/libboost_math_tr1l.so
 *      /usr/lib64/libboost_math_c99l.so
 *      /usr/lib64/libboost_random-mt.so
 *      /usr/lib64/libboost_math_tr1-mt.so
 *      /usr/lib64/libboost_graph.so
 *      /usr/lib64/libboost_math_c99-mt.so
 *      /usr/lib64/libboost_timer.so
 *      /usr/lib64/libboost_test_exec_monitor-mt.a
 *      /usr/lib64/libboost_signals.so
 *      /usr/lib64/libboost_program_options.so
 *      /usr/lib64/libboost_chrono.so
 *      /usr/lib64/libboost_program_options-mt.so
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * None of the installed packages claim the file(s).
 * 
 * Package 'dev-libs/boost-1.49.0-r2' merged despite file collisions. If
 * necessary, refer to your elog messages for the whole content of the
 * above message.
how does the bold above is an solution? changing os is never the solution (distro maybe a solution if one jumps into deep water without knowing how to swim).
Only two things are infinite, the universe and human stupidity and I'm not sure about the former - Albert Einstein
Top
asturm
Developer
Developer
Posts: 9509
Joined: Thu Apr 05, 2007 4:07 pm

  • Quote

Post by asturm » Sun Nov 04, 2012 9:44 am

chrisstankevitz wrote:I suppose the only remaining mystery is "why did portage think there was a file collision when upgrading boost to 1.49-r2. Perhaps this is a gentoo "bug" and is being discussed in this thread and in the bug tracker.
Most likely explanation, without having ever looked into the eselect-boost mechanism: Those were links that had been previously set by eselect-boost autonomically, which was unmerged in the process. Portage often doesn't remove links for compatibility, e.g. keeping the eselect-boost links in the event of unmerging it to keep boost itself working. In this case, the new boost package then rightfully claimed the links for itself.
Top
papapenguin
l33t
l33t
User avatar
Posts: 694
Joined: Tue Sep 20, 2005 9:44 pm
Location: Bellevue
Contact:
Contact papapenguin
Website

  • Quote

Post by papapenguin » Mon Nov 12, 2012 6:20 pm

same thing here, but boost merged for me, except for package collisions...

...so I unmerged boost, then ran revdep-rebuild, which brought it back in, but for me, without the collisions...
--------------
Compaq Presario V6120US
AMD Turion 64X2
------------------------
Top
asturm
Developer
Developer
Posts: 9509
Joined: Thu Apr 05, 2007 4:07 pm

  • Quote

Post by asturm » Mon Nov 12, 2012 10:34 pm

Well yes, because removing boost was totally redundant - once the files were overwritten any file collisions were gone. ;)
Top
DanneStrat
n00b
n00b
User avatar
Posts: 73
Joined: Thu Jan 05, 2012 4:13 pm

  • Quote

Post by DanneStrat » Wed Nov 14, 2012 12:40 pm

By now, I feel we have a good answer why this collision happens so I'm marking this thread solved. Thanks everyone! :)
Top
Post Reply

16 posts • Page 1 of 1

Return to “Portage & Programming”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Authors
Gentoo is a trademark of the Gentoo Foundation, Inc. and of Förderverein Gentoo e.V.
The contents of this document, unless otherwise expressly stated, are licensed under the CC-BY-SA-4.0 license.
The Gentoo Name and Logo Usage Guidelines apply.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy