Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 207944 - dev-utils/boost-1.34.1 blocking <boost-build-1.34.0
Summary: dev-utils/boost-1.34.1 blocking <boost-build-1.34.0
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High minor (vote)
Assignee: Gentoo Linux bug wranglers
: 208460 (view as bug list)
Depends on:
Reported: 2008-01-28 18:31 UTC by Auke Booij (tulcod)
Modified: 2008-02-01 17:51 UTC (History)
1 user (show)

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

Patch to solve this bug (boost-build-depend.patch,335 bytes, patch)
2008-01-28 18:59 UTC, Auke Booij (tulcod)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Auke Booij (tulcod) 2008-01-28 18:31:41 UTC
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"

Reproducible: Always

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

Actual Results:  
Boost 1.34 built just fine.

Expected Results:  
Panic, chaos, destruction and that building boost would fail.
Comment 1 Jakub Moc (RETIRED) gentoo-dev 2008-01-28 18:37:34 UTC
(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.
Comment 2 Auke Booij (tulcod) 2008-01-28 18:59:44 UTC
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.
Comment 3 Jakub Moc (RETIRED) gentoo-dev 2008-01-28 19:09:24 UTC
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.
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2008-02-01 17:51:35 UTC
*** Bug 208460 has been marked as a duplicate of this bug. ***