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.
Created attachment 324664 [details] build.log
Created attachment 324666 [details] emerge --info
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. :)
Thanks for the report. However, I think that you should should be reported upstream as well
(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
(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?
(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!
(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
(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} }
Created attachment 325548 [details] config.log for the patched version
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.
I'd assume this is fixed with 1.51.0-r1 unless proven otherwise.