Bug 230631 - www/newsboat: fails to build with libc++ 7
Summary: www/newsboat: fails to build with libc++ 7
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jan Beich
URL:
Keywords: needs-patch
Depends on:
Blocks: 230355
  Show dependency treegraph
 
Reported: 2018-08-14 21:18 UTC by Jan Beich
Modified: 2018-08-14 21:30 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer 2018-08-14 21:18:13 UTC
$ poudriere jail -cj clang7 -a amd64 -v projects/clang700-import -m svn+https
$ poudriere testport -j clang7 www/newsboat
[...]
In file included from src/ttrss_api.cpp:1:
In file included from include/ttrss_api.h:4:
./3rd-party/json.hpp:1201:9: error: static_assert failed "could not find from_json() method in T's namespace"
        static_assert(sizeof(BasicJsonType) == 0,
        ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~
./3rd-party/json.hpp:1216:16: note: in instantiation of function template specialization 'nlohmann::detail::from_json_fn::call<nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >' requested here
        return call(j, val, priority_tag<1> {});
               ^
./3rd-party/json.hpp:9660:9: note: in instantiation of function template specialization 'nlohmann::detail::from_json_fn::operator()<nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >' requested here
        ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
        ^
./3rd-party/json.hpp:12181:36: note: in instantiation of function template specialization 'nlohmann::adl_serializer<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>::from_json<const nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer> &, std::__1::basic_string_view<char, std::__1::char_traits<char> > >' requested here
        JSONSerializer<ValueType>::from_json(*this, ret);
                                   ^
./3rd-party/json.hpp:12443:16: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>::get<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, 0>' requested here
        return get<ValueType>();
               ^
/usr/include/c++/v1/string:875:29: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>::operator basic_string_view<std::__1::basic_string_view<char, std::__1::char_traits<char> >, 0>' requested here
        {__self_view __sv = __t; return assign(__sv);}
                            ^
src/ttrss_api.cpp:69:7: note: in instantiation of function template specialization 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=<nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>, void>' requested here
                sid = content["session_id"];
                    ^
1 error generated.

http://package18.nyi.freebsd.org/data/headamd64PR230355-default/2018-08-11_19h01m06s/logs/errors/newsboat-2.12_1.log
Comment 1 Jan Beich freebsd_committer 2018-08-14 21:21:33 UTC
Regressed by https://reviews.llvm.org/rL336132 and fixed by https://github.com/nlohmann/json/commit/8165707990e4. newsboat-2.12 bundles json-3.1.2, so you'll need to backport.

As the fix applies without conflicts I'll just land it under portmgr blanket.
Comment 2 commit-hook freebsd_committer 2018-08-14 21:30:25 UTC
A commit references this bug:

Author: jbeich
Date: Tue Aug 14 21:29:42 UTC 2018
New revision: 477204
URL: https://svnweb.freebsd.org/changeset/ports/477204

Log:
  www/newsboat: unbreak with libc++ 7

  In file included from src/ttrss_api.cpp:1:
  In file included from include/ttrss_api.h:4:
  ./3rd-party/json.hpp:1201:9: error: static_assert failed "could not find from_json() method in T's namespace"
          static_assert(sizeof(BasicJsonType) == 0,
          ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~
  ./3rd-party/json.hpp:1216:16: note: in instantiation of function template specialization 'nlohmann::detail::from_json_fn::call<nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >' requested here
          return call(j, val, priority_tag<1> {});
                 ^
  ./3rd-party/json.hpp:9660:9: note: in instantiation of function template specialization 'nlohmann::detail::from_json_fn::operator()<nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >' requested here
          ::nlohmann::from_json(std::forward<BasicJsonType>(j), val);
          ^
  ./3rd-party/json.hpp:12181:36: note: in instantiation of function template specialization 'nlohmann::adl_serializer<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>::from_json<const nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer> &, std::__1::basic_string_view<char, std::__1::char_traits<char> > >' requested here
          JSONSerializer<ValueType>::from_json(*this, ret);
                                     ^
  ./3rd-party/json.hpp:12443:16: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>::get<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, 0>' requested here
          return get<ValueType>();
                 ^
  /usr/include/c++/v1/string:875:29: note: in instantiation of function template specialization 'nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>::operator basic_string_view<std::__1::basic_string_view<char, std::__1::char_traits<char> >, 0>' requested here
          {__self_view __sv = __t; return assign(__sv);}
                              ^
  src/ttrss_api.cpp:69:7: note: in instantiation of function template specialization 'std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=<nlohmann::basic_json<std::map, std::vector, std::__1::basic_string<char>, bool, long, unsigned long, double, std::allocator, adl_serializer>, void>' requested here
                  sid = content["session_id"];
                      ^

  PR:		230631
  Reported by:	antoine (via exp-run)
  Obtained from:	upstream (json)
  Approved by:	portmgr blanket

Changes:
  head/www/newsboat/files/patch-json-libc++7