Source: assimp
Version: 3.0~dfsg-4
Severity: serious
Justification: fails to build from source (but built successfully in the past)
Tags: sid stretch
User: [email protected]
Usertags: libstdc++-cxx11
Control: block 790980 with -1
This command, after configuring sbuild (with automatic package upgrades),
emulates what the official buildds would do soon to recompile assimp against
the new libstdc++ ABI:
sbuild -m'Test build <nobody@localhost>' -d unstable \
--make-binNMU='Rebuild with g++-5' assimp_3.0~dfsg-4
(You could get a similar result without sbuild by rebuilding in an
up-to-date unstable chroot or on an up-to-date unstable system.)
This fails to build with:
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see
diff output below
dpkg-gensymbols: warning: some symbols or patterns disappeared in the symbols
file: see diff output below
dpkg-gensymbols: warning: debian/libassimp3/DEBIAN/symbols doesn't match
completely debian/libassimp3.symbols
ABI removed:
- (c++)"Assimp::Importer::GetPropertyString(char const*,
std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
const@Base" 2.0.863
- (c++)"Assimp::Importer::SetPropertyString(char const*,
std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&,
bool*)@Base" 2.0.863
New ABI:
+
_ZN6Assimp8Importer17SetPropertyStringEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPb@Base
3.0~dfsg
+
_ZNK6Assimp8Importer17GetPropertyStringEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE@Base
3.0~dfsg
which c++filt says means:
Assimp::Importer::SetPropertyString(char const*,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, bool*)@Base
Assimp::Importer::GetPropertyString(char const*,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&) const@Base
I think this means the answer to https://bugs.debian.org/790980 is,
yes, assimp's ABI has changed. However, assimp's only reverse dependencies
seem to be doomsday and mrpt, neither of which actually mention
PropertyString anywhere in their code; I think this means it's up to the
package maintainer whether to do a transition (to libassimp3v5) or whether
to just change the symbols file and continue?
For completeness, here are the symbols that were removed, but are
presumably non-problematic because they are marked (optional) anyway:
- (c++|optional)"Assimp::IOStream::~IOStream()@Base" 2.0.863
- (c++|optional)"Assimp::IOSystem::~IOSystem()@Base" 2.0.863
- (c++|optional)"Assimp::LogStream::~LogStream()@Base" 2.0.863
- (c++|optional)"Assimp::Logger::~Logger()@Base" 2.0.863
- (c++|optional)"Assimp::ProgressHandler::~ProgressHandler()@Base" 2.0.863
Regards,
S
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]