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: debian-...@lists.debian.org
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 debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to