Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 630074 - net-libs/libtorrent-rasterbar fails to build with dev-libs/boost-1.65.0
Summary: net-libs/libtorrent-rasterbar fails to build with dev-libs/boost-1.65.0
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Markos Chandras (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-06 12:18 UTC by Ulenrich
Modified: 2017-09-09 12:49 UTC (History)
2 users (show)

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


Attachments
libtorrent-rasterbar-1.1.4-with-boost-1.65.patch (boost-1.65-conf.patch,792 bytes, patch)
2017-09-06 13:36 UTC, Ulenrich
Details | Diff
boost-config.patch (boost-config.patch,1.20 KB, patch)
2017-09-07 08:02 UTC, David Seifert
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ulenrich 2017-09-06 12:18:44 UTC
boost-1.65 moved 
---
/usr/include/boost/config/posix_features.hpp
/usr/include/boost/config/select_compiler_config.hpp
/usr/include/boost/config/select_platform_config.hpp
/usr/include/boost/config/select_stdlib_config.hpp
/usr/include/boost/config/suffix.hpp
--- to
/usr/include/boost/config/detail/posix_features.hpp
/usr/include/boost/config/detail/select_compiler_config.hpp
/usr/include/boost/config/detail/select_platform_config.hpp
/usr/include/boost/config/detail/select_stdlib_config.hpp
/usr/include/boost/config/detail/suffix.hpp
---
Maybe a bunch of other include subdirs also, I don't know yet.
I got this, because when compiling net-libs/libtorrent-rasterbar-1.1.4
the libtorrent hpp file:
work/libtorrent-rasterbar-1.1.4/include/libtorrent/export.hpp
#  include <boost/config/select_compiler_config.hpp>
is missing the new /detail/ subdirectory.
---
Because this will happen furthermore for any other ebuild requesting the above moved includes, could  I do a sed patching? like for example:
sed -e's:<boost/config/select_compiler_config.hpp>$:<boost/config/detail/select_compiler_config.hpp>:'
for all these include files 
for all future affected ebuilds.

What is the way to go in such a case?
Comment 1 Ulenrich 2017-09-06 13:36:44 UTC
Created attachment 492742 [details, diff]
libtorrent-rasterbar-1.1.4-with-boost-1.65.patch

libtorrent-rasterbar misses two includes 
which where moved by the new version of boost-1.65

For to use this patch with a version<boost-1.65 
this patch misses a needed version declaration.
Comment 2 David Seifert gentoo-dev 2017-09-06 20:16:27 UTC
See
https://github.com/boostorg/config/commit/3fbf51f31a891a604363bcaec98984d40b38a4eb#diff-fbf02f971e042d391a3dad44b8726a0b
and
https://svn.boost.org/trac10/ticket/12328

Any headers in the 'detail' directory are an implementation *detail*. If you rely on them, and a boost update breaks your package, then tough luck. sed's are an awful hack - the proper solution is to check which *public* headers you need to include, and then rely on those.
Comment 3 David Seifert gentoo-dev 2017-09-07 08:02:30 UTC
Created attachment 492926 [details, diff]
boost-config.patch

Try this patch, works fine for me on 1.65. And yes, deleting all the manual macro detection stuff is a feature, in order to break loud and clearly should the older boost/config.hpp headers not provide the necessary macros.