[Debian-med-packaging] Bug#951991: bali-phy: FTBFS: detected.hpp:52:7: error: invalid use of incomplete type ‘struct nlohmann::detail::detector<nlohmann::detail::nonesuch, void, nlohmann::detail::to_json_function, nlohmann::adl_serializer<ptree, void>, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer>&, ptree>’

Benjamin Redelings benjamin.redelings at gmail.com
Mon Feb 24 20:47:21 GMT 2020


I will take a look.

The cause is not completely obvious:  The compile failure goes away when 
using either (i) clang instead of gcc, or (ii) version 3.5 of 
nlohmann-json.  It also does not occur with the master branch of bali-phy.

-BenRI

On 2/24/20 6:09 AM, Andreas Tille wrote:
> Control: tags -1 upstream
> Control: forwarded -1 Benjamin Redelings <benjamin.redelings at gmail.com>
>
> Hi Benjamin,
>
> can you please have a look?
>
> Thanks a lot
>
>       Andreas.
>
> On Sun, Feb 23, 2020 at 08:31:45AM +0100, Lucas Nussbaum wrote:
>> Source: bali-phy
>> Version: 3.4.1+dfsg-2
>> Severity: serious
>> Justification: FTBFS on amd64
>> Tags: buster sid
>> Usertags: ftbfs-20200222 ftbfs-buster
>>
>> Hi,
>>
>> During a rebuild of all packages in sid, your package failed to build
>> on amd64.
>>
>> Relevant part (hopefully):
>>> c++ -Isrc/25a6634@@bali-phy at exe -Isrc -I../src -I. -I../ -I/usr/include/eigen3 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++14 -DHAVE_CONFIG_H -Wall -Wextra -Wno-sign-compare -Woverloaded-virtual -Wstrict-aliasing -Wno-unknown-pragmas -Wno-maybe-uninitialized -DNDEBUG -DNDEBUG_DP -O3 -funroll-loops -ffast-math -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ 'src/25a6634@@bali-phy at exe/util_ptree.cc.o' -MF 'src/25a6634@@bali-phy at exe/util_ptree.cc.o.d' -o 'src/25a6634@@bali-phy at exe/util_ptree.cc.o' -c ../src/util/ptree.cc
>>> In file included from /usr/include/nlohmann/detail/meta/type_traits.hpp:11,
>>>                   from /usr/include/nlohmann/detail/conversions/from_json.hpp:19,
>>>                   from /usr/include/nlohmann/adl_serializer.hpp:5,
>>>                   from /usr/include/nlohmann/json.hpp:51,
>>>                   from ../src/util/json.hh:3,
>>>                   from ../src/util/ptree.H:12,
>>>                   from ../src/util/ptree.cc:1:
>>> /usr/include/nlohmann/detail/meta/detected.hpp: In substitution of ‘template<class Expected, template<class ...> class Op, class ... Args> using is_detected_exact = std::is_same<Expected, typename nlohmann::detail::detector<nlohmann::detail::nonesuch, void, Op, Args ...>::type> [with Expected = void; Op = nlohmann::detail::to_json_function; Args = {nlohmann::basic_json<>::json_serializer<ptree, void>, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer>&, ptree}]’:
>>> /usr/include/nlohmann/detail/meta/type_traits.hpp:121:27:   required from ‘constexpr const bool nlohmann::detail::has_to_json<nlohmann::basic_json<>, ptree, void>::value’
>>> /usr/include/nlohmann/detail/meta/type_traits.hpp:353:27:   required from ‘constexpr const bool nlohmann::detail::is_compatible_type_impl<nlohmann::basic_json<>, ptree, void>::value’
>>> /usr/include/nlohmann/json.hpp:1299:55:   required by substitution of ‘template<class CompatibleType, class U, typename std::enable_if<((! nlohmann::detail::is_basic_json<T>::value) && nlohmann::detail::is_compatible_type<nlohmann::basic_json<>, U>::value), int>::type <anonymous> > nlohmann::basic_json<>::basic_json(CompatibleType&&) [with CompatibleType = ptree; U = ptree; typename std::enable_if<((! nlohmann::detail::is_basic_json<T>::value) && nlohmann::detail::is_compatible_type<nlohmann::basic_json<>, U>::value), int>::type <anonymous> = <missing>]’
>>> /usr/include/c++/9/type_traits:883:12:   required from ‘struct std::is_constructible<nlohmann::basic_json<>, ptree>’
>>> /usr/include/nlohmann/detail/conversions/to_json.hpp:305:123:   required by substitution of ‘template<class BasicJsonType, class T1, class T2, typename std::enable_if<(std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value && std::is_constructible<BasicJsonType, T2>::value), int>::type <anonymous> > void nlohmann::detail::to_json(BasicJsonType&, const std::pair<_Tp1, _Tp2>&) [with BasicJsonType = nlohmann::basic_json<>; T1 = std::__cxx11::basic_string<char>; T2 = ptree; typename std::enable_if<(std::is_constructible<RealIntegerType, CompatibleNumberIntegerType>::value && std::is_constructible<BasicJsonType, T2>::value), int>::type <anonymous> = <missing>]’
>>> /usr/include/nlohmann/detail/conversions/to_json.hpp:335:24:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
>>> /usr/include/nlohmann/adl_serializer.hpp:43:36:   required by substitution of ‘template<class BasicJsonType, class ValueType> static decltype ((nlohmann::{anonymous}::to_json(j, forward<ValueType>(val)), void())) nlohmann::adl_serializer<ptree, void>::to_json<BasicJsonType, ValueType>(BasicJsonType&, ValueType&&) [with BasicJsonType = nlohmann::basic_json<>; ValueType = ptree]’
>>> /usr/include/nlohmann/detail/meta/detected.hpp:52:7:   recursively required by substitution of ‘template<class Default, template<class ...> class Op, class ... Args> struct nlohmann::detail::detector<Default, typename nlohmann::detail::make_void<Op<Args ...> >::type, Op, Args ...> [with Default = nlohmann::detail::nonesuch; Op = nlohmann::detail::to_json_function; Args = {nlohmann::adl_serializer<ptree, void>, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer>&, ptree}]’
>>> /usr/include/nlohmann/detail/meta/detected.hpp:52:7:   required by substitution of ‘template<class Expected, template<class ...> class Op, class ... Args> using is_detected_exact = std::is_same<Expected, typename nlohmann::detail::detector<nlohmann::detail::nonesuch, void, Op, Args ...>::type> [with Expected = void; Op = nlohmann::detail::to_json_function; Args = {nlohmann::basic_json<>::json_serializer<ptree, void>, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer>&, ptree}]’
>>> /usr/include/nlohmann/detail/meta/type_traits.hpp:121:27:   required from ‘constexpr const bool nlohmann::detail::has_to_json<nlohmann::basic_json<>, ptree, void>::value’
>>> /usr/include/nlohmann/detail/meta/type_traits.hpp:353:27:   required from ‘constexpr const bool nlohmann::detail::is_compatible_type_impl<nlohmann::basic_json<>, ptree, void>::value’
>>> /usr/include/nlohmann/json.hpp:1299:55:   required by substitution of ‘template<class CompatibleType, class U, typename std::enable_if<((! nlohmann::detail::is_basic_json<T>::value) && nlohmann::detail::is_compatible_type<nlohmann::basic_json<>, U>::value), int>::type <anonymous> > nlohmann::basic_json<>::basic_json(CompatibleType&&) [with CompatibleType = const ptree&; U = ptree; typename std::enable_if<((! nlohmann::detail::is_basic_json<T>::value) && nlohmann::detail::is_compatible_type<nlohmann::basic_json<>, U>::value), int>::type <anonymous> = <missing>]’
>>> ../src/util/ptree.cc:242:13:   required from here
>>> /usr/include/nlohmann/detail/meta/detected.hpp:52:7: error: invalid use of incomplete type ‘struct nlohmann::detail::detector<nlohmann::detail::nonesuch, void, nlohmann::detail::to_json_function, nlohmann::adl_serializer<ptree, void>, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer>&, ptree>’
>>>     52 | using is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>;
>>>        |       ^~~~~~~~~~~~~~~~~
>>> /usr/include/nlohmann/detail/meta/detected.hpp:26:8: note: declaration of ‘struct nlohmann::detail::detector<nlohmann::detail::nonesuch, void, nlohmann::detail::to_json_function, nlohmann::adl_serializer<ptree, void>, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer>&, ptree>’
>>>     26 | struct detector
>>>        |        ^~~~~~~~
>>> ../src/util/ptree.cc: In function ‘void to_json(nlohmann::json&, const ptree&)’:
>>> ../src/util/ptree.cc:242:13: error: no match for ‘operator=’ (operand types are ‘nlohmann::basic_json<>::value_type’ {aka ‘nlohmann::basic_json<>’} and ‘const ptree’)
>>>    242 |  p[1] = arg.second;
>>>        |             ^~~~~~
>>> In file included from ../src/util/json.hh:3,
>>>                   from ../src/util/ptree.H:12,
>>>                   from ../src/util/ptree.cc:1:
>>> /usr/include/nlohmann/json.hpp:1926:17: note: candidate: ‘nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>& nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::operator=(nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>) [with ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::adl_serializer]’
>>>   1926 |     basic_json& operator=(basic_json other) noexcept (
>>>        |                 ^~~~~~~~
>>> /usr/include/nlohmann/json.hpp:1926:38: note:   no known conversion for argument 1 from ‘const ptree’ to ‘nlohmann::basic_json<>’
>>>   1926 |     basic_json& operator=(basic_json other) noexcept (
>>>        |                           ~~~~~~~~~~~^~~~~
>>> [43/256] c++ -Isrc/25a6634@@bali-phy at exe -Isrc -I../src -I. -I../ -I/usr/include/eigen3 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++14 -DHAVE_CONFIG_H -Wall -Wextra -Wno-sign-compare -Woverloaded-virtual -Wstrict-aliasing -Wno-unknown-pragmas -Wno-maybe-uninitialized -DNDEBUG -DNDEBUG_DP -O3 -funroll-loops -ffast-math -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ 'src/25a6634@@bali-phy at exe/parser_desugar-case.cc.o' -MF 'src/25a6634@@bali-phy at exe/parser_desugar-case.cc.o.d' -o 'src/25a6634@@bali-phy at exe/parser_desugar-case.cc.o' -c ../src/parser/desugar-case.cc
>>> [44/256] c++ -Isrc/25a6634@@bali-phy at exe -Isrc -I../src -I. -I../ -I/usr/include/eigen3 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++14 -DHAVE_CONFIG_H -Wall -Wextra -Wno-sign-compare -Woverloaded-virtual -Wstrict-aliasing -Wno-unknown-pragmas -Wno-maybe-uninitialized -DNDEBUG -DNDEBUG_DP -O3 -funroll-loops -ffast-math -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ 'src/25a6634@@bali-phy at exe/parser_parser.cc.o' -MF 'src/25a6634@@bali-phy at exe/parser_parser.cc.o.d' -o 'src/25a6634@@bali-phy at exe/parser_parser.cc.o' -c ../src/parser/parser.cc
>>> [45/256] c++ -Isrc/25a6634@@bali-phy at exe -Isrc -I../src -I. -I../ -I/usr/include/eigen3 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++14 -DHAVE_CONFIG_H -Wall -Wextra -Wno-sign-compare -Woverloaded-virtual -Wstrict-aliasing -Wno-unknown-pragmas -Wno-maybe-uninitialized -DNDEBUG -DNDEBUG_DP -O3 -funroll-loops -ffast-math -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -O3 -Wdate-time -D_FORTIFY_SOURCE=2 -MD -MQ 'src/25a6634@@bali-phy at exe/substitution_substitution.cc.o' -MF 'src/25a6634@@bali-phy at exe/substitution_substitution.cc.o.d' -o 'src/25a6634@@bali-phy at exe/substitution_substitution.cc.o' -c ../src/substitution/substitution.cc
>>> ninja: build stopped: subcommand failed.
>>> dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j4 -v returned exit code 1
>>> make: *** [debian/rules:20: build] Error 25
>> The full build log is available from:
>>     http://qa-logs.debian.net/2020/02/22/bali-phy_3.4.1+dfsg-2_unstable.log
>>
>> A list of current common problems and possible solutions is available at
>> http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
>>
>> About the archive rebuild: The rebuild was done on EC2 VM instances from
>> Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
>> failed build was retried once to eliminate random failures.
>>
>> _______________________________________________
>> Debian-med-packaging mailing list
>> Debian-med-packaging at alioth-lists.debian.net
>> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-med-packaging



More information about the Debian-med-packaging mailing list