Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 630074

Summary: net-libs/libtorrent-rasterbar fails to build with dev-libs/boost-1.65.0
Product: Gentoo Linux Reporter: Ulenrich <ulenrich>
Component: Current packagesAssignee: Markos Chandras (RETIRED) <hwoarang>
Status: RESOLVED FIXED    
Severity: normal CC: cpp+disabled, jstein
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: libtorrent-rasterbar-1.1.4-with-boost-1.65.patch
boost-config.patch

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.