[3dprinter-general] Bug#914953: Bug#914953: FTBFS with Python 3.7 on many architectures

Mattia Rizzolo mattia at debian.org
Thu Dec 6 03:56:12 GMT 2018


On Wed, Dec 05, 2018 at 07:50:30PM +0100, Gregor Riepl wrote:
> I'm inclined to drop the symbols file altogether, as it really doesn't add any
> value.

I beg to disagree, I tend to find symbols tracking quite important, and
helped detecting and/or demostrating several ABI breakages in the past
where upstream did not even realize they did.  Or symbols that changes
due to changes in some other libraries (recently I sheparded a library
that moved vtk6 to vtk7, breaking ABI; not noticed because it didn't
have a symbols file), etc etc.

> The correct solution would be to use -fvisibility=hidden [1] and
> properly tag symbols for the public API of libArcus and libSavitar.

Yes, that would be the best indeed.  It's quite sad that TTBOMK symbols
visibility is not really standardized and it's a copiler-dependant thing
... :(


I suspect that many optional symbols on the symbols file of this package
could be squashed with a regex, but alas I can't help with that now
since I'll be soon leaving for a 2-weeks travel and I don't think I
would ever find the time to also look at this.  Anyway, look at the gdcm
repo for an idea of what I'm talking about.


Anyway, the problem that dpkg-gensymbols is complaining about, it's
because you missed a quote sign in
a4f32173da0f7ab5c173d89fd556f0af242d2deb (didn't you notice this while
test building before asking for sponsorship?).

diff --git a/debian/libarcus3.symbols b/debian/libarcus3.symbols
index 6bc9ef2..d44af1c 100644
--- a/debian/libarcus3.symbols
+++ b/debian/libarcus3.symbols
@@ -4,7 +4,7 @@ libArcus.so.3 libarcus3 #MINVER#
  (c++)"ErrorCollector::AddError(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.3.1
  (c++)"ErrorCollector::~ErrorCollector()@Base" 2.3.1
  (c++|optional)"std::_Hashtable<unsigned int, std::pair<unsigned int const, google::protobuf::Message const*>, std::allocator<std::pair<unsigned int const, google::protobuf::Message const*> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<unsigned int const, google::protobuf::Message const*>, false>*, unsigned long)@Base" 3.3.0-2~
- (c++|optional)"std::_Hashtable<unsigned int, std::pair<unsigned int const, google::protobuf::Message const*>, std::allocator<std::pair<unsigned int const, google::protobuf::Message const*> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned int, unsigned int, std::__detail::_Hash_node<std::pair<unsigned int const, google::protobuf::Message const*>, false>*, unsigned int)@Base 3.3.0-2~
+ (c++|optional)"std::_Hashtable<unsigned int, std::pair<unsigned int const, google::protobuf::Message const*>, std::allocator<std::pair<unsigned int const, google::protobuf::Message const*> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned int, unsigned int, std::__detail::_Hash_node<std::pair<unsigned int const, google::protobuf::Message const*>, false>*, unsigned int)@Base" 3.3.0-2~
  (c++|optional)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)@Base" 3.3.0-2~
  (c++|optional)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag)@Base" 3.3.0-2~
  (c++|optional)"std::_Sp_make_shared_tag::_S_ti()::__tag at Base" 3.3.0-2~


After that my local build failed because I locally export
DPKG_GENSYMBOLS_CHECK_LEVEL=4 and it seems this new symbol is new:

_ZNSt10_HashtableIPKN6google8protobuf10DescriptorESt4pairIKS4_jESaIS7_ENSt8__detail10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS9_10_Hash_nodeIS7_Lb0EEEm at Base


Anyway, that's yet another std:: function leaked from who knows where,
so nvm that…

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/3dprinter-general/attachments/20181206/6ce80307/attachment-0001.sig>


More information about the 3dprinter-general mailing list