Currently the build system uses what ever /usr/include/boost points too. This is bad, because the user could select any installed boost version to be linked there (including those that don't satisfy the package's dependency on boost). Attached is a patch that makes the ebuild detect the latest boost version. This is also going to help with bug 295009 (together with the patch from bug 295006).
Created attachment 211805 [details, diff] fix boost detection
Isn't the whole point of eselect boost that the user can choose which version should be used? Why would we want to circumvent/override that for rb_libtorrent?
(In reply to comment #2) > Isn't the whole point of eselect boost that the user can choose which version > should be used? Why would we want to circumvent/override that for > rb_libtorrent? > No that's meant for people doing development with boost. It should be overridden for all packages. Some packages do this themselves with a configure script that searches for the latest version.
Sebastian is completely right. Especially with EAPI-3's slot-operator-deps it is important that packages use the best-matching (almost always the highest) version of a dependency if the said dep is slotted. More important for a package maintainer: - it makes bugs more reproducible since you can determine which boost-version was installed (and therefore used) at merge-time rather than what the user might have selected - there are many packages with broken boost-detection resulting in the package using the headers from 1.39.0 and the libs from 1.35.0 generating really weird link- or runtime-errors. The eselect-module is (and was always thought as) a temporary solution to not break packages even though boost got slotted and as a service for people using boost for their own development.
*** Bug 300881 has been marked as a duplicate of this bug. ***
Patch applied in net-libs/rb_libtorrent-0.14.8-r1. Thanks!
I can't confirm your fix. Symptoms are the same as in 300881. See config.log. It still can't find any of installed boost libraries. Does it require only ...-r1 to work correctly or some other dependency is required?
Created attachment 216520 [details] Configure script fail log
configure:15487: i686-pc-linux-gnu-g++ -c -O2 -march=i686 -pipe -I/usr/include/boost-1_41/include -I/usr/include/boost-1_41/include conftest.cpp >&5 Why is there an /include appended to the boost include and directory path?
(In reply to comment #9) > configure:15487: i686-pc-linux-gnu-g++ -c -O2 -march=i686 -pipe > -I/usr/include/boost-1_41/include -I/usr/include/boost-1_41/include > conftest.cpp >&5 > > Why is there an /include appended to the boost include and directory path? > correction: Why is there an /include appended to the boost include path?
That's the whole question. Why /include is there. I think it's autoconf problem.
It's added in m4/ax_boost_base-fixed.m4. It seems to assume --with-boost=/usr instead of the whole path we pass it. Feel free to come up with a patch. Otherwise I'll look at it tomorrow.
I attach patches and a new ebuild. Seems like net-libs/rb_libtorrent now builds fine. I could not build Miro though. But that seems to be another story. Please and comment.
Created attachment 216644 [details] New ebuild
Created attachment 216646 [details, diff] Configure script patch to detect Boost properly
Created attachment 216648 [details, diff] Patches Makefile.am & such for supplying boost dir
Thanks! I rolled your patches into one, and revbumped the ebuild to 0.14.8-r2.