I was updating my machine today, and I found that there were a couple of blocking packages. The block I want to describe in this bug is the following:
Before updating my machine, I had boost 1.33.1-r1 installed. To update to the newer and stable boost 1.34.1-r2, I would have to install boost-build. But boost-build apparently doesn't want to sit next to boost <boost-1.34.0.
Now, I know a little bit about what boost-build is supposed to do: it's kinda like some makefile replacement/addon. The details don't really matter, but it helps building packages, of which boost is of course the most important one. How should boost-build interfere with an old version of boost while building a newer version of it? Boost-build can run without boost being installed at all, so it would have to use the old boost libraries. How would boost-build do that? It's only a set of scripts to build boost.
After a short discussion on IRC, we came to the conclusion this was done to force users into updating to boost >=1.34.0 to evade packages from building with both boost-build and <boost-1.34.0. This solution is, of course, idiotic, if not incorrect. Depending on the right version of boost and boost-build is the job of the packages using them.
In fact, I have tried forcing boost-build to sit right next to boost-1.33.1-r1, and then let my PC emerge boost-1.34.1-r2. Nothing went wrong. It worked. Boost-build didn't even mention an old boost library being there, afaik.
So why is a block necessary? IMHO, boost-build should not have DEPEND="!<dev-libs/boost-1.34.0"
Steps to Reproduce:
1. install some boost-1.33 version
2. force boost-build to emerge by modifying it's DEPEND to ""
3. emerge >=boost-1.34
Boost 1.34 built just fine.
Panic, chaos, destruction and that building boost would fail.
(In reply to comment #0)
> This solution is, of course, idiotic, if not incorrect.
Thanks for your insight. Closing this bug as there's no bug here. The versions have to match, end of story.
Created attachment 142045 [details, diff]
Patch to solve this bug
Here's a patch to quickly solve this issue.
My point is, *why* do the versions need to be identical? I showed they do not have to. Maybe it's the ideal state of the system, but it also means users will have to unmerge boost, and then emerge it again, and that's not really the most elegant way to keep a system clean.
There's nothing to fix here, and if you still don't grok it, then turn on FEATURES="collision-protect" and emerge boost-build with w/ <boost-1.33.x installed with USE=bjam.
*** Bug 208460 has been marked as a duplicate of this bug. ***