Bug#839330: ring: FTBFS: dhtrunner.cpp:144:19: error: ambiguous overload for 'operator=' (operand types are 'dht::Address {aka std::pair<sockaddr_storage, unsigned int>}' and '<brace-enclosed initializer list>')

Lucas Nussbaum lucas at debian.org
Sat Oct 1 08:40:32 UTC 2016


Source: ring
Version: 20160901.1.204c604~dfsg2-2
Severity: serious
Tags: stretch sid
User: debian-qa at lists.debian.org
Usertags: qa-ftbfs-20160930 qa-ftbfs
Justification: FTBFS on amd64

Hi,

During a rebuild of all packages in sid, your package failed to build on
amd64.

Relevant part (hopefully):
> /bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -I../include/opendht -Wdate-time -D_FORTIFY_SOURCE=2 -I/<<PKGBUILDDIR>>/daemon/contrib/x86_64-linux-gnu/include -fPIC  -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -I/<<PKGBUILDDIR>>/daemon/contrib/x86_64-linux-gnu/include   -fPIC -O3 -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT -c -o dhtrunner.lo dhtrunner.cpp
> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I../include/opendht -Wdate-time -D_FORTIFY_SOURCE=2 "-I/<<PKGBUILDDIR>>/daemon/contrib/x86_64-linux-gnu/include" -fPIC -g -O2 "-fdebug-prefix-map=/<<PKGBUILDDIR>>=." -fstack-protector-strong -Wformat -Werror=format-security "-I/<<PKGBUILDDIR>>/daemon/contrib/x86_64-linux-gnu/include" -fPIC -O3 -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT -c dhtrunner.cpp  -fPIC -DPIC -o dhtrunner.o
> dhtrunner.cpp: In member function 'void dht::DhtRunner::join()':
> dhtrunner.cpp:144:19: error: ambiguous overload for 'operator=' (operand types are 'dht::Address {aka std::pair<sockaddr_storage, unsigned int>}' and '<brace-enclosed initializer list>')
>          bound4 = {};
>                    ^
> In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
>                  from /usr/include/c++/6/memory:62,
>                  from /usr/include/msgpack/cpp_config.hpp:97,
>                  from /usr/include/msgpack/pack.hpp:14,
>                  from /usr/include/msgpack/object.hpp:14,
>                  from /usr/include/msgpack.hpp:10,
>                  from ../include/opendht/infohash.h:22,
>                  from ../include/opendht/dhtrunner.h:24,
>                  from dhtrunner.cpp:21:
> /usr/include/c++/6/bits/stl_pair.h:359:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::pair<sockaddr_storage, unsigned int>&]
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:370:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::__nonesuch&] <deleted>
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:376:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type = std::pair<sockaddr_storage, unsigned int>&&]
>        operator=(typename conditional<
>        ^~~~~~~~
> dhtrunner.cpp:145:19: error: ambiguous overload for 'operator=' (operand types are 'dht::Address {aka std::pair<sockaddr_storage, unsigned int>}' and '<brace-enclosed initializer list>')
>          bound6 = {};
>                    ^
> In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
>                  from /usr/include/c++/6/memory:62,
>                  from /usr/include/msgpack/cpp_config.hpp:97,
>                  from /usr/include/msgpack/pack.hpp:14,
>                  from /usr/include/msgpack/object.hpp:14,
>                  from /usr/include/msgpack.hpp:10,
>                  from ../include/opendht/infohash.h:22,
>                  from ../include/opendht/dhtrunner.h:24,
>                  from dhtrunner.cpp:21:
> /usr/include/c++/6/bits/stl_pair.h:359:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::pair<sockaddr_storage, unsigned int>&]
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:370:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::__nonesuch&] <deleted>
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:376:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type = std::pair<sockaddr_storage, unsigned int>&&]
>        operator=(typename conditional<
>        ^~~~~~~~
> dhtrunner.cpp: In member function 'void dht::DhtRunner::doRun(const sockaddr_in*, const sockaddr_in6*, dht::SecureDht::Config)':
> dhtrunner.cpp:345:15: error: ambiguous overload for 'operator=' (operand types are 'dht::Address {aka std::pair<sockaddr_storage, unsigned int>}' and '<brace-enclosed initializer list>')
>      bound4 = {};
>                ^
> In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
>                  from /usr/include/c++/6/memory:62,
>                  from /usr/include/msgpack/cpp_config.hpp:97,
>                  from /usr/include/msgpack/pack.hpp:14,
>                  from /usr/include/msgpack/object.hpp:14,
>                  from /usr/include/msgpack.hpp:10,
>                  from ../include/opendht/infohash.h:22,
>                  from ../include/opendht/dhtrunner.h:24,
>                  from dhtrunner.cpp:21:
> /usr/include/c++/6/bits/stl_pair.h:359:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::pair<sockaddr_storage, unsigned int>&]
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:370:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::__nonesuch&] <deleted>
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:376:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type = std::pair<sockaddr_storage, unsigned int>&&]
>        operator=(typename conditional<
>        ^~~~~~~~
> dhtrunner.cpp:358:15: error: ambiguous overload for 'operator=' (operand types are 'dht::Address {aka std::pair<sockaddr_storage, unsigned int>}' and '<brace-enclosed initializer list>')
>      bound6 = {};
>                ^
> In file included from /usr/include/c++/6/bits/stl_algobase.h:64:0,
>                  from /usr/include/c++/6/memory:62,
>                  from /usr/include/msgpack/cpp_config.hpp:97,
>                  from /usr/include/msgpack/pack.hpp:14,
>                  from /usr/include/msgpack/object.hpp:14,
>                  from /usr/include/msgpack.hpp:10,
>                  from ../include/opendht/infohash.h:22,
>                  from ../include/opendht/dhtrunner.h:24,
>                  from dhtrunner.cpp:21:
> /usr/include/c++/6/bits/stl_pair.h:359:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::pair<sockaddr_storage, unsigned int>&]
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:370:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__not_<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> > >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::__nonesuch&] <deleted>
>        operator=(typename conditional<
>        ^~~~~~~~
> /usr/include/c++/6/bits/stl_pair.h:376:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type) [with _T1 = sockaddr_storage; _T2 = unsigned int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type = std::pair<sockaddr_storage, unsigned int>&&]
>        operator=(typename conditional<
>        ^~~~~~~~
> Makefile:555: recipe for target 'dhtrunner.lo' failed
> make[5]: *** [dhtrunner.lo] Error 1

If the failure looks somehow time/timezone related:
Note that this rebuild was performed without the 'tzdata' package
installed in the chroot. tzdata used be (transitively) part of
build-essential, but it no longer is. If this package requires it to
build, it should be added to build-depends. For the release team's
opinion on this, see
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=836940#185

The full build log is available from:
   http://aws-logs.debian.net/2016/09/30/ring_20160901.1.204c604~dfsg2-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.



More information about the Pkg-voip-maintainers mailing list