Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 435952 - net-libs/rb_libtorrent-0.16.3 fails with dev-libs/boost-1.50.0-r2
Summary: net-libs/rb_libtorrent-0.16.3 fails with dev-libs/boost-1.50.0-r2
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Markos Chandras (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: boost-1.50
  Show dependency tree
 
Reported: 2012-09-22 21:40 UTC by Hans
Modified: 2012-10-31 16:49 UTC (History)
1 user (show)

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


Attachments
config.log (config.log,46.75 KB, text/plain)
2012-09-22 21:40 UTC, Hans
Details
build.log (build.log,9.42 KB, text/plain)
2012-09-22 21:40 UTC, Hans
Details
emerge --info (emerge.info,3.09 KB, text/plain)
2012-09-22 21:41 UTC, Hans
Details
config.log for the patched version (config.log,56.20 KB, text/plain)
2012-10-02 19:18 UTC, Hans
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hans 2012-09-22 21:40:45 UTC
Created attachment 324662 [details]
config.log

net-libs/rb_libtorrent-0.16.3 fails to build with dev-libs/boost-1.50.0-r2:

[...]
Checking for boost libraries:
checking for boostlib >= 1.36... configure: error: We could not detect the boost libraries (version 1.36 or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option.  If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
[...]

<boost/version.hpp> says:
[...]
#define BOOST_LIB_VERSION "1_50"
[...]

I have:
$ qlist -Iv boost
dev-libs/boost-1.50.0-r2
dev-util/boost-build-1.50.0-r3

It works with boost-1.49.0-r1.
Comment 1 Hans 2012-09-22 21:40:59 UTC
Created attachment 324664 [details]
build.log
Comment 2 Hans 2012-09-22 21:41:12 UTC
Created attachment 324666 [details]
emerge --info
Comment 3 Hans 2012-09-22 21:52:33 UTC
Executing
# ln -s /usr/include/boost-1_50/boost /usr/include/boost
worked around this for now.

Perhaps I shouldn't forget to delete this afterwards. :)
Comment 4 Markos Chandras (RETIRED) gentoo-dev 2012-09-23 09:59:53 UTC
Thanks for the report. However, I think that you should should be reported upstream as well
Comment 5 Jory A. Pratt gentoo-dev 2012-10-01 22:47:10 UTC
(In reply to comment #4)
> Thanks for the report. However, I think that you should should be reported
> upstream as well

This has nothing to do with upstream, it has to do with how gentoo has decided to handle boost installs via versioning. You can find a proper workaround using boost-utils.eclass
Comment 6 Markos Chandras (RETIRED) gentoo-dev 2012-10-02 18:15:46 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > Thanks for the report. However, I think that you should should be reported
> > upstream as well
> 
> This has nothing to do with upstream, it has to do with how gentoo has
> decided to handle boost installs via versioning. You can find a proper
> workaround using boost-utils.eclass

So how come it just fails with 1.50 and not 1.49?
Comment 7 Hans 2012-10-02 18:49:29 UTC
(In reply to comment #6)

> So how come it just fails with 1.50 and not 1.49?

I should probably let those speak who actually know boost well, but here's my take on it anyway:

This is not about boost 1.50 itself, but about the eselect part that has been removed in the new version within Gentoo. With boost-1.50.0-r2, the include files can be found only in /usr/include/boost-1_50/boost/ instead of in (at least additionally) /usr/include/boost/, that's why many (most? don't know) packages actually fail.
In the case of rb_libtorrent, it compiles and runs as it did with older boost versions if I create the symlink I mentioned here:

(In reply to comment #3)
> Executing
> # ln -s /usr/include/boost-1_50/boost /usr/include/boost
> worked around this for now.

This symlink, IIRC, used to be provided by eselect. The new situation: no eselect, no symlink, thus breaking long standing tradition. Compile (or, rather, configure) goes boom. :)

That's the way I understand it.
Please correct me if I'm wrong.

Thanks for your attention!
Comment 8 Markos Chandras (RETIRED) gentoo-dev 2012-10-02 18:52:40 UTC
(In reply to comment #7)
> (In reply to comment #6)
> 
> > So how come it just fails with 1.50 and not 1.49?
> 
> I should probably let those speak who actually know boost well, but here's
> my take on it anyway:
> 
> This is not about boost 1.50 itself, but about the eselect part that has
> been removed in the new version within Gentoo. With boost-1.50.0-r2, the
> include files can be found only in /usr/include/boost-1_50/boost/ instead of
> in (at least additionally) /usr/include/boost/, that's why many (most? don't
> know) packages actually fail.
> In the case of rb_libtorrent, it compiles and runs as it did with older
> boost versions if I create the symlink I mentioned here:
> 
> (In reply to comment #3)
> > Executing
> > # ln -s /usr/include/boost-1_50/boost /usr/include/boost
> > worked around this for now.
> 
> This symlink, IIRC, used to be provided by eselect. The new situation: no
> eselect, no symlink, thus breaking long standing tradition. Compile (or,
> rather, configure) goes boom. :)
> 
> That's the way I understand it.
> Please correct me if I'm wrong.
> 
> Thanks for your attention!

It should not matter because we set

BOOST_INC="${EPREFIX}/usr/include/boost-${BOOST_VER}

in the ebuild, so even if you have /usr/include/boost-1.50, it should be able to find and use it
Comment 9 Hans 2012-10-02 19:18:00 UTC
(In reply to comment #8)

> It should not matter because we set
> 
> BOOST_INC="${EPREFIX}/usr/include/boost-${BOOST_VER}
> 
> in the ebuild, so even if you have /usr/include/boost-1.50, it should be
> able to find and use it

Aah, hadn't seen it, sorry!

But this gave me an idea and I just tried something:

- removed abovementioned symlink
- tried to emerge rb_libtorrent -> failed the same way
- removed BOOST_INC stuff from the ebuild
- tried to emerge it again -> SUCCESS!
Strange.

Patch for the ebuild that made this work:


--- rb_libtorrent-0.16.3.ebuild.ORIG	2012-08-25 01:59:30.000000000 +0200
+++ rb_libtorrent-0.16.3.ebuild	2012-10-02 21:11:20.872100575 +0200
@@ -49,7 +49,6 @@
 	BOOST_PKG="$(best_version ">=dev-libs/boost-1.34.1")"
 	BOOST_VER="$(get_version_component_range 1-2 "${BOOST_PKG/*boost-/}")"
 	BOOST_VER="$(replace_all_version_separators _ "${BOOST_VER}")"
-	BOOST_INC="${EPREFIX}/usr/include/boost-${BOOST_VER}"
 	BOOST_LIB="${EPREFIX}/usr/$(get_libdir)/boost-${BOOST_VER}"
 
 	local LOGGING
@@ -62,7 +61,6 @@
 		$(use_enable ssl encryption) \
 		$(use_enable static-libs static) \
 		${LOGGING} \
-		--with-boost=${BOOST_INC} \
 		--with-boost-libdir=${BOOST_LIB} \
 		${BOOST_LIBS}
 }
Comment 10 Hans 2012-10-02 19:18:40 UTC
Created attachment 325548 [details]
config.log for the patched version
Comment 11 Hans 2012-10-02 19:21:32 UTC
One tiny thing: BOOST_LIB stuff should not be necessary anymore for the newest boost ebuild at least, as the libraries are now in /usr/lib directly.
Don't know since when that has been the case.
Comment 12 Diego Elio Pettenò (RETIRED) gentoo-dev 2012-10-31 16:49:28 UTC
I'd assume this is fixed with 1.51.0-r1 unless proven otherwise.