On Friday, August 13 2021, Utkarsh Gupta wrote: > Hey, Thanks for the review. Bear in mind that the issues you raised are orthogonal to the FTBFS fix, although they are of course valid. > -> build-time tests aren't being run, why? :( > ``` > ============================================================================ > Testsuite summary for nut 2.7.4 > ============================================================================ > # TOTAL: 0 > # PASS: 0 > # SKIP: 0 > # XFAIL: 0 > # FAIL: 0 > # XPASS: 0 > # ERROR: 0 > ============================================================================ > ``` I don't know offhand. As you can see from the logs "make check" is being properly invoked by the dh_auto_test target, and "make" is traversing the tree and calling "check" on the subdirs as expected, but for some reason all of them return with "Nothing to be done for 'check'." Looking into the "tests/" directory, we can see that there's not much there. I did find what looks like to be valid tests inside scripts/augeas/tests/test_nut.aug, but I don't know how they're supposed to be run. I checked that the same problem obviously happens on Debian, and I verified that the Fedora nut package doesn't run its tests during build time either. The next step would be to build a pristine upstream checkout and verify what happens there, I guess. > -> there seem to be a symbols mismatch: > ``` > dpkg-gensymbols: warning: debian/libnutclient0/DEBIAN/symbols doesn't match completely debian/libnutclient0.symbols > --- debian/libnutclient0.symbols (libnutclient0_2.7.4-13ubuntu5_amd64) > +++ dpkg-gensymbolsXa6vj0 2021-08-12 20:05:50.329104861 +0000 > @@ -50,16 +50,16 @@ > (c++)"nut::Device::setVariable(std::__cxx11::basic_string std::char_traits, std::allocator > const&, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.3 > (c++)"nut::Device::setVariable(std::__cxx11::basic_string std::char_traits, std::allocator > const&, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > const&)@Base" 2.7.3 > (c++)"nut::Device::~Device()@Base" 2.7.3 > - (c++|optional=lto)"nut::IOException::~IOException()@Base" 2.7.3 > - (c++|optional=lto)"nut::NotConnectedException::NotConnectedException()@Base" 2.7.3 > - (c++|optional=lto)"nut::NotConnectedException::~NotConnectedException()@Base" 2.7.3 > - (c++|optional=lto)"nut::NutException::NutException(std::__cxx11::basic_string, std::allocator > const&)@Base" 2.7.3 > - (c++|optional=lto)"nut::NutException::str[abi:cxx11]() const@Base" 2.7.3 > - (c++|optional=lto)"nut::NutException::what() const@Base" 2.7.3 > - (c++|optional=lto)"nut::NutException::~NutException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::IOException::~IOException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::NotConnectedException::NotConnectedException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::NotConnectedException::~NotConnectedException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::NutException::NutException(std::__cxx11::basic_string, std::allocator > const&)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::NutException::str[abi:cxx11]() const@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::NutException::what() const@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::NutException::~NutException()@Base" 2.7.3 > (c++)"nut::SystemException::SystemException()@Base" 2.7.3 > (c++)"nut::SystemException::err[abi:cxx11]()@Base" 2.7.3 > - (c++|optional=lto)"nut::SystemException::~SystemException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::SystemException::~SystemException()@Base" 2.7.3 > (c++)"nut::TcpClient::TcpClient()@Base" 2.7.3 > (c++)"nut::TcpClient::TcpClient(std::__cxx11::basic_string, std::allocator > const&, int)@Base" 2.7.3 > (c++)"nut::TcpClient::authenticate(std::__cxx11::basic_string std::char_traits, std::allocator > const&, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.3 > @@ -97,10 +97,10 @@ > (c++)"nut::TcpClient::setDeviceVariable(std::__cxx11::basic_string std::char_traits, std::allocator > const&, > std::__cxx11::basic_string, > std::allocator > const&, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > const&)@Base" 2.7.3 > (c++)"nut::TcpClient::setTimeout(long)@Base" 2.7.3 > (c++)"nut::TcpClient::~TcpClient()@Base" 2.7.3 > - (c++|optional=lto)"nut::TimeoutException::TimeoutException()@Base" 2.7.3 > - (c++|optional=lto)"nut::TimeoutException::~TimeoutException()@Base" 2.7.3 > - (c++|optional=lto)"nut::UnknownHostException::UnknownHostException()@Base" 2.7.3 > - (c++|optional=lto)"nut::UnknownHostException::~UnknownHostException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::TimeoutException::TimeoutException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::TimeoutException::~TimeoutException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::UnknownHostException::UnknownHostException()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"nut::UnknownHostException::~UnknownHostException()@Base" 2.7.3 > (c++)"nut::Variable::Variable(nut::Device*, std::__cxx11::basic_string, std::allocator > const&)@Base" 2.7.3 > (c++)"nut::Variable::Variable(nut::Variable const&)@Base" 2.7.3 > (c++)"nut::Variable::getDescription[abi:cxx11]()@Base" 2.7.3 > @@ -154,19 +154,19 @@ > nutclient_tcp_is_connected@Base 2.7.3 > nutclient_tcp_reconnect@Base 2.7.3 > nutclient_tcp_set_timeout@Base 2.7.3 > - (c++|optional=lto)"std::_Rb_tree std::_Identity, std::less, > std::allocator >>::_M_erase(std::_Rb_tree_node*)@Base" 2.7.3 > - (c++|optional=lto)"std::_Rb_tree std::char_traits, std::allocator >, > std::__cxx11::basic_string, > std::allocator >, > std::_Identity std::char_traits, std::allocator > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::_M_erase(std::_Rb_tree_node std::char_traits, std::allocator > >*)@Base" 2.7.3 > - > (c++|optional=lto|arch=!s390x)"std::_Rb_tree std::char_traits, std::allocator >, > std::__cxx11::basic_string, > std::allocator >, > std::_Identity std::char_traits, std::allocator > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::find(std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.3 > - (c++|optional=lto)"std::_Rb_tree std::char_traits, std::allocator >, > std::pair, > std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::_Select1st std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >>::_M_erase(std::_Rb_tree_node std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >*)@Base" 2.7.3 > - > (c++|optional=templinst|arch=!s390x)"std::_Rb_tree std::char_traits, std::allocator >, > std::pair, > std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::_Select1st std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >>::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > - (c++|optional=lto)"std::_Rb_tree std::char_traits, std::allocator >, > std::pair, > std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::_Select1st std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >>::_M_get_insert_unique_pos(std::__cxx11::basic_string std::char_traits, std::allocator > const&)@Base" 2.7.3 > - (c++|optional=lto)"std::__cxx11::basic_string std::char_traits, std::allocator > std::operator+ std::char_traits, std::allocator >(char const*, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.3 > - > (c++|optional=lto|arch=!s390x)"std::pair, > bool> std::_Rb_tree std::_Identity, std::less, > std::allocator >>::_M_insert_unique(nut::Variable&&)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::_Rb_tree std::_Identity, std::less, > std::allocator >>::_M_erase(std::_Rb_tree_node*)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::_Rb_tree std::char_traits, std::allocator >, > std::__cxx11::basic_string, > std::allocator >, > std::_Identity std::char_traits, std::allocator > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::_M_erase(std::_Rb_tree_node std::char_traits, std::allocator > >*)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto|arch=!s390x)"std::_Rb_tree std::char_traits, std::allocator >, > std::__cxx11::basic_string, > std::allocator >, > std::_Identity std::char_traits, std::allocator > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::find(std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::_Rb_tree std::char_traits, std::allocator >, > std::pair, > std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::_Select1st std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >>::_M_erase(std::_Rb_tree_node std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >*)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=templinst|arch=!s390x)"std::_Rb_tree std::char_traits, std::allocator >, > std::pair, > std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::_Select1st std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >>::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::_Rb_tree std::char_traits, std::allocator >, > std::pair, > std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::_Select1st std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > const, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >>::_M_get_insert_unique_pos(std::__cxx11::basic_string std::char_traits, std::allocator > const&)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::__cxx11::basic_string std::char_traits, std::allocator > std::operator+ std::char_traits, std::allocator >(char const*, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto|arch=!s390x)"std::pair, > bool> std::_Rb_tree std::_Identity, std::less, > std::allocator >>::_M_insert_unique(nut::Variable&&)@Base" 2.7.3 > (c++|optional=templinst|arch=mipsel > armhf)"std::pair std::char_traits, std::allocator > >, bool> > std::_Rb_tree, > std::allocator >, std::__cxx11::basic_string std::char_traits, std::allocator >, > std::_Identity std::char_traits, std::allocator > >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::_M_insert_unique std::char_traits, std::allocator > > const&>(std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > - (c++|optional=templinst|arch=!s390x !mipsel > !armhf)"std::set std::char_traits, std::allocator >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::insert(std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > - > (c++|optional=lto|arch=!s390x)"std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >>::operator=(std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > const&)@Base" 2.7.3 > - (c++|optional=lto)"std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >::~vector()@Base" > 2.7.3 > - > (c++|optional=lto)"std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >, > std::allocator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >>::~vector()@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=templinst|arch=!s390x > !mipsel !armhf)"std::set std::char_traits, std::allocator >, > std::less, > std::allocator > >, > std::allocator std::char_traits, std::allocator > > >>::insert(std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto|arch=!s390x)"std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >>::operator=(std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > const&)@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >::~vector()@Base" > 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# > (c++|optional=lto)"std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >, > std::allocator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >>::~vector()@Base" 2.7.3 > strarr_alloc@Base 2.7.3 > strarr_free@Base 2.7.3 > (c++)"typeinfo for nut::Client@Base" 2.7.3 > @@ -185,14 +185,14 @@ > (c++)"typeinfo name for nut::TcpClient@Base" 2.7.3 > (c++)"typeinfo name for nut::TimeoutException@Base" 2.7.3 > (c++)"typeinfo name for nut::UnknownHostException@Base" 2.7.3 > - (c++|optional=templinst|arch=!s390x)"void > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > >>::_M_realloc_insert std::char_traits, std::allocator > >>(__gnu_cxx::__normal_iterator std::char_traits, std::allocator >*, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::__cxx11::basic_string, > std::allocator >&&)@Base" 2.7.4 > - (c++|optional=templinst)"void > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > >>::_M_realloc_insert std::char_traits, std::allocator > > const&>(__gnu_cxx::__normal_iterator std::char_traits, std::allocator >*, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > - (c++|optional=templinst|arch=!s390x)"void > std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >, > std::allocator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >>::_M_realloc_insert std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > >>(__gnu_cxx::__normal_iterator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >*, > std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >, > std::allocator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > >&&)@Base" 2.7.4 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=templinst|arch=!s390x)"void > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > >>::_M_realloc_insert std::char_traits, std::allocator > >>(__gnu_cxx::__normal_iterator std::char_traits, std::allocator >*, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::__cxx11::basic_string, > std::allocator >&&)@Base" 2.7.4 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=templinst)"void > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > >>::_M_realloc_insert std::char_traits, std::allocator > > const&>(__gnu_cxx::__normal_iterator std::char_traits, std::allocator >*, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > > >, > std::__cxx11::basic_string, > std::allocator > const&)@Base" 2.7.4 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=templinst|arch=!s390x)"void > std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >, > std::allocator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > > >>::_M_realloc_insert std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > >>(__gnu_cxx::__normal_iterator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >*, > std::vector std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > >, > std::allocator std::char_traits, std::allocator >, > std::allocator std::char_traits, std::allocator > > > > > >, > std::vector, > std::allocator >, > std::allocator std::char_traits, std::allocator > > >&&)@Base" 2.7.4 > (c++|optional=lto)"vtable for nut::Client@Base" 2.7.3 > - (c++|optional=lto)"vtable for nut::IOException@Base" 2.7.3 > - (c++|optional=lto)"vtable for nut::NotConnectedException@Base" 2.7.3 > - (c++|optional=lto)"vtable for nut::NutException@Base" 2.7.3 > - (c++|optional=lto)"vtable for nut::SystemException@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"vtable for nut::IOException@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"vtable for nut::NotConnectedException@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"vtable for nut::NutException@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"vtable for nut::SystemException@Base" 2.7.3 > (c++|optional=lto)"vtable for nut::TcpClient@Base" 2.7.3 > - (c++|optional=lto)"vtable for nut::TimeoutException@Base" 2.7.3 > - (c++|optional=lto)"vtable for nut::UnknownHostException@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"vtable for nut::TimeoutException@Base" 2.7.3 > +#MISSING: 2.7.4-13ubuntu5# (c++|optional=lto)"vtable for nut::UnknownHostException@Base" 2.7.3 > ``` Yes, this package unfortunately suffers a lot from mismatches in the symbols file. I've had my fair share of headaches dealing with it last year... The last upload from doko added the "optional=lto" flags so that it'd be possible to build the package with LTO. I don't intend to fix this issue here because it's unrelated to the FTBFS, but it's something to keep in mind next time we merge the package from Debian. Thanks, -- Sergio GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14