[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>’

Andreas Tille andreas at an3as.eu
Wed Feb 26 12:29:24 GMT 2020


Hi Benjamin,

On Mon, Feb 24, 2020 at 03:47:21PM -0500, Benjamin Redelings wrote:
> I will take a look.

Thanks.
 
> 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.

In case it might be the easiest solution just tagging a release from
master branch might do the trick.

Kind regards

       Andreas. 
 
> 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
> 

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list