Skip to content

breaking changes in boost 1.63.0 #2888

@ilovezfs

Description

@ilovezfs

The boost 1.62.0 -> 1.63.0 upgrade in Homebrew core has broken osquery (both 1.7.3 and HEAD).

See also: Homebrew/homebrew-core#8290

Full build log is here: https://gist.github.com/ilovezfs/69e33c8eb683b739d8e798600c5cfa16

[ 62%] Building CXX object osquery/config/CMakeFiles/osquery_config_plugins.dir/plugins/tls.cpp.o
cd /tmp/osquery-20161231-51699-1wg9aiu/osquery/config && /usr/local/Homebrew/Library/Homebrew/shims/super/clang++   -DBOOST_NETWORK_ENABLE_HTTPS -DBOOST_NO_CXX11_VARIADIC_TEMPLATES -DDARWIN -DDARWIN_10_11 -DNDEBUG -DOSQUERY_BUILD_DISTRO=10.11 -DOSQUERY_BUILD_PLATFORM=darwin -DOSQUERY_BUILD_SDK_VERSION=2.2.1 -DOSQUERY_THRIFT="" -DOSQUERY_THRIFT_LIB=thrift -DOSQUERY_THRIFT_POINTER=boost -DOSQUERY_THRIFT_SERVER_LIB=thrift/server -DSTRIP_FLAG_HELP=1 -isystem /tmp/osquery-20161231-51699-1wg9aiu/third-party/sysroots/darwin -isystem /usr/local/osquery/legacy/include -isystem /usr/local/osquery/include -I/usr/local/osquery/include/openssl -I/tmp/osquery-20161231-51699-1wg9aiu/third-party/sqlite3 -I/tmp/osquery-20161231-51699-1wg9aiu/include -I/tmp/osquery-20161231-51699-1wg9aiu -I/tmp/osquery-20161231-51699-1wg9aiu/generated/gen-cpp  -DNDEBUG -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -mmacosx-version-min=10.11    -std=c++11 -stdlib=libc++ -Qunused-arguments -Wstrict-aliasing -Wno-missing-field-initializers -Wno-unused-local-typedef -Wno-deprecated-register -Wno-unknown-warning-option -Wnon-virtual-dtor -Wchar-subscripts -Wpointer-arith -Woverloaded-virtual -Wformat -Wformat-security -Werror=format-security -Wabi-tag -fpermissive -fstack-protector-all -pipe -fdata-sections -ffunction-sections -mmacosx-version-min=10.11 -Os -fPIE -fpie -fPIC -fpic -march=x86-64 -mno-avx -Wall -Wextra -Wshadow -pedantic -Wuseless-cast -Wno-c99-extensions -Wno-zero-length-array -Wno-unused-parameter -Wno-gnu-case-range -o CMakeFiles/osquery_config_plugins.dir/plugins/tls.cpp.o -c /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp:26:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/utility.h:17:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/transports/tls.h:44:
In file included from /usr/local/include/boost/network/protocol/http/client.hpp:11:
In file included from /usr/local/include/boost/network/protocol/http/request.hpp:10:
In file included from /usr/local/include/boost/network/protocol/http/impl/request.hpp:32:
In file included from /usr/local/include/boost/network/uri/uri.hpp:15:
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:73:13: error: use of overloaded operator '=' is ambiguous (with operand types 'optional<iterator_range<std::__1::__wrap_iter<const char *> > >' and 'iterator_range<std::__1::__wrap_iter<const char *> >')
      query = iterator_range<FwdIter>(std::end(hier_part.path.get()),
      ~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/network/uri/uri.hpp:206:16: note: in instantiation of member function 'boost::network::uri::detail::uri_parts<std::__1::__wrap_iter<const char *> >::update' requested here
    uri_parts_.update();
               ^
/usr/local/include/boost/optional/optional.hpp:902:5: note: candidate function [with Expr = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( Expr&& expr )
    ^
/usr/local/include/boost/optional/optional.hpp:964:5: note: candidate function [with T_ = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( T_&& val )
    ^
/usr/local/include/boost/optional/optional.hpp:951:15: note: candidate function
    optional& operator= ( optional && rhs ) 
              ^
/usr/local/include/boost/optional/optional.hpp:943:15: note: candidate function
    optional& operator= ( optional const& rhs )
              ^
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp:26:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/utility.h:17:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/transports/tls.h:44:
In file included from /usr/local/include/boost/network/protocol/http/client.hpp:11:
In file included from /usr/local/include/boost/network/protocol/http/request.hpp:10:
In file included from /usr/local/include/boost/network/protocol/http/impl/request.hpp:32:
In file included from /usr/local/include/boost/network/uri/uri.hpp:15:
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:78:16: error: use of overloaded operator '=' is ambiguous (with operand types 'optional<iterator_range<std::__1::__wrap_iter<const char *> > >' and 'iterator_range<std::__1::__wrap_iter<const char *> >')
      fragment = iterator_range<FwdIter>(std::end(query.get()),
      ~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/optional/optional.hpp:902:5: note: candidate function [with Expr = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( Expr&& expr )
    ^
/usr/local/include/boost/optional/optional.hpp:964:5: note: candidate function [with T_ = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( T_&& val )
    ^
/usr/local/include/boost/optional/optional.hpp:951:15: note: candidate function
    optional& operator= ( optional && rhs ) 
              ^
/usr/local/include/boost/optional/optional.hpp:943:15: note: candidate function
    optional& operator= ( optional const& rhs )
              ^
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp:26:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/utility.h:17:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/transports/tls.h:44:
In file included from /usr/local/include/boost/network/protocol/http/client.hpp:11:
In file included from /usr/local/include/boost/network/protocol/http/request.hpp:10:
In file included from /usr/local/include/boost/network/protocol/http/impl/request.hpp:32:
In file included from /usr/local/include/boost/network/uri/uri.hpp:15:
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:32:19: error: use of overloaded operator '=' is ambiguous (with operand types 'optional<iterator_range<std::__1::__wrap_iter<const char *> > >' and 'iterator_range<std::__1::__wrap_iter<const char *> >')
        user_info = iterator_range<FwdIter>(std::begin(host.get()),
        ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:70:15: note: in instantiation of member function 'boost::network::uri::detail::hierarchical_part<std::__1::__wrap_iter<const char *> >::update' requested here
    hier_part.update();
              ^
/usr/local/include/boost/network/uri/uri.hpp:206:16: note: in instantiation of member function 'boost::network::uri::detail::uri_parts<std::__1::__wrap_iter<const char *> >::update' requested here
    uri_parts_.update();
               ^
/usr/local/include/boost/optional/optional.hpp:902:5: note: candidate function [with Expr = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( Expr&& expr )
    ^
/usr/local/include/boost/optional/optional.hpp:964:5: note: candidate function [with T_ = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( T_&& val )
    ^
/usr/local/include/boost/optional/optional.hpp:951:15: note: candidate function
    optional& operator= ( optional && rhs ) 
              ^
/usr/local/include/boost/optional/optional.hpp:943:15: note: candidate function
    optional& operator= ( optional const& rhs )
              ^
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp:26:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/utility.h:17:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/transports/tls.h:44:
In file included from /usr/local/include/boost/network/protocol/http/client.hpp:11:
In file included from /usr/local/include/boost/network/protocol/http/request.hpp:10:
In file included from /usr/local/include/boost/network/protocol/http/impl/request.hpp:32:
In file included from /usr/local/include/boost/network/uri/uri.hpp:15:
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:41:12: error: use of overloaded operator '=' is ambiguous (with operand types 'optional<iterator_range<std::__1::__wrap_iter<const char *> > >' and 'iterator_range<std::__1::__wrap_iter<const char *> >')
      host = iterator_range<FwdIter>(std::begin(path.get()),
      ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/optional/optional.hpp:902:5: note: candidate function [with Expr = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( Expr&& expr )
    ^
/usr/local/include/boost/optional/optional.hpp:964:5: note: candidate function [with T_ = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( T_&& val )
    ^
/usr/local/include/boost/optional/optional.hpp:951:15: note: candidate function
    optional& operator= ( optional && rhs ) 
              ^
/usr/local/include/boost/optional/optional.hpp:943:15: note: candidate function
    optional& operator= ( optional const& rhs )
              ^
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp:26:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/utility.h:17:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/transports/tls.h:44:
In file included from /usr/local/include/boost/network/protocol/http/client.hpp:11:
In file included from /usr/local/include/boost/network/protocol/http/request.hpp:10:
In file included from /usr/local/include/boost/network/protocol/http/impl/request.hpp:32:
In file included from /usr/local/include/boost/network/uri/uri.hpp:15:
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:46:12: error: use of overloaded operator '=' is ambiguous (with operand types 'optional<iterator_range<std::__1::__wrap_iter<const char *> > >' and 'iterator_range<std::__1::__wrap_iter<const char *> >')
      port = iterator_range<FwdIter>(std::end(host.get()),
      ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/optional/optional.hpp:902:5: note: candidate function [with Expr = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( Expr&& expr )
    ^
/usr/local/include/boost/optional/optional.hpp:964:5: note: candidate function [with T_ = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( T_&& val )
    ^
/usr/local/include/boost/optional/optional.hpp:951:15: note: candidate function
    optional& operator= ( optional && rhs ) 
              ^
/usr/local/include/boost/optional/optional.hpp:943:15: note: candidate function
    optional& operator= ( optional const& rhs )
              ^
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/config/plugins/tls.cpp:26:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/utility.h:17:
In file included from /tmp/osquery-20161231-51699-1wg9aiu/osquery/remote/transports/tls.h:44:
In file included from /usr/local/include/boost/network/protocol/http/client.hpp:11:
In file included from /usr/local/include/boost/network/protocol/http/request.hpp:10:
In file included from /usr/local/include/boost/network/protocol/http/impl/request.hpp:32:
In file included from /usr/local/include/boost/network/uri/uri.hpp:15:
/usr/local/include/boost/network/uri/detail/uri_parts.hpp:51:12: error: use of overloaded operator '=' is ambiguous (with operand types 'optional<iterator_range<std::__1::__wrap_iter<const char *> > >' and 'iterator_range<std::__1::__wrap_iter<const char *> >')
      path = iterator_range<FwdIter>(std::end(port.get()),
      ~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/optional/optional.hpp:902:5: note: candidate function [with Expr = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( Expr&& expr )
    ^
/usr/local/include/boost/optional/optional.hpp:964:5: note: candidate function [with T_ = boost::iterator_range<std::__1::__wrap_iter<const char *> >]
    operator= ( T_&& val )
    ^
/usr/local/include/boost/optional/optional.hpp:951:15: note: candidate function
    optional& operator= ( optional && rhs ) 
              ^
/usr/local/include/boost/optional/optional.hpp:943:15: note: candidate function
    optional& operator= ( optional const& rhs )
              ^
6 errors generated.
make[2]: *** [osquery/config/CMakeFiles/osquery_config_plugins.dir/plugins/tls.cpp.o] Error 1
make[1]: *** [osquery/config/CMakeFiles/osquery_config_plugins.dir/all] Error 2
make: *** [all] Error 2
/usr/local/Homebrew/Library/Homebrew/debrew.rb:11:in `raise'
BuildError: Failed executing: make 
1. raise
2. ignore

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildlibrariesFor things referring to osquery third party librariestriageIssue needs to be verified, reproduced and prioritized

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions