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

2018-12-05 Thread Gregor Riepl
> 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.

Not sure if a regex is appropriate here, since some of the symbols come and
go, depending on the compiler, dependencies and architecture.

But I'll take look, thanks for the hint.

> 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?).

Ouch, thanks for pointing that out.
I totally didn't see this.
Thought there was something wrong with the Debian-tagged version I added.

> 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_traitsILb0ELb0ELb121_M_insert_unique_nodeEmmPNS9_10_Hash_nodeIS7_Lb0EEEm@Base>>
Anyway, that's yet another std:: function leaked from who knows where,
> so nvm that…

I'll raise the issue on the developer's issue tracker and see if I can send
them a patch. Far too much time has been wasted on this already.



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

2018-12-05 Thread Mattia Rizzolo
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, std::allocator > const&, int, int, 
std::__cxx11::basic_string, std::allocator > 
const&)@Base" 2.3.1
  (c++)"ErrorCollector::~ErrorCollector()@Base" 2.3.1
  (c++|optional)"std::_Hashtable, std::allocator >, std::__detail::_Select1st, 
std::equal_to, std::hash, 
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, 
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_M_insert_unique_node(unsigned long, unsigned long, 
std::__detail::_Hash_node, false>*, unsigned long)@Base" 3.3.0-2~
- (c++|optional)"std::_Hashtable, std::allocator >, std::__detail::_Select1st, 
std::equal_to, std::hash, 
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, 
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_M_insert_unique_node(unsigned int, unsigned int, 
std::__detail::_Hash_node, false>*, unsigned int)@Base 3.3.0-2~
+ (c++|optional)"std::_Hashtable, std::allocator >, std::__detail::_Select1st, 
std::equal_to, std::hash, 
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, 
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_M_insert_unique_node(unsigned int, unsigned int, 
std::__detail::_Hash_node, false>*, unsigned int)@Base" 3.3.0-2~
  (c++|optional)"void std::__cxx11::basic_string, 
std::allocator >::_M_construct(char const*, char const*, 
std::forward_iterator_tag)@Base" 3.3.0-2~
  (c++|optional)"void std::__cxx11::basic_string, 
std::allocator >::_M_construct(char*, char*, 
std::forward_iterator_tag)@Base" 3.3.0-2~
  (c++|optional)"std::_Sp_make_shared_tag::_S_ti()::__tag@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_traitsILb0ELb0ELb121_M_insert_unique_nodeEmmPNS9_10_Hash_nodeIS7_Lb0EEEm@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  `-


signature.asc
Description: PGP signature


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

2018-12-05 Thread Gregor Riepl
I'm inclined to drop the symbols file altogether, as it really doesn't add any
value. The correct solution would be to use -fvisibility=hidden [1] and
properly tag symbols for the public API of libArcus and libSavitar.

For what it's worth, libArcus.so.3 is currently only used by python3-arcus and
CuraEngine anyway, and it's unlikely that this will change.

Another option would be to put all the internal Cura libraries into a private
lib folder, but I suspect this is risky and even more work than adding symbol
visibility.


[1] http://gcc.gnu.org/wiki/Visibility



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

2018-12-05 Thread Gregor Riepl
> Hi, I saw that you asked for sponsorship on the ML¹ but then pere failed
> to build the package².  Could you please have a look soon?

Sorry, got held up by the mess that is symbols files for C++ libraries that
don't properly hide internal symbols.

I'll try to get this sorted out ASAP.

Do you know who I could talk to for help with C++ symbols file issues?



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

2018-12-05 Thread Mattia Rizzolo
On Thu, Nov 29, 2018 at 08:23:48AM +0100, Gregor Riepl wrote:
> Ok, it looks like I misunderstood how binNMUs work, so I'll simply prepare a
> release then. [1]

Hi, I saw that you asked for sponsorship on the ML¹ but then pere failed
to build the package².  Could you please have a look soon?


¹ 
https://alioth-lists.debian.net/pipermail/3dprinter-general/Week-of-Mon-20181126/001186.html
² 
https://alioth-lists.debian.net/pipermail/3dprinter-general/Week-of-Mon-20181126/001187.html

-- 
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  `-


signature.asc
Description: PGP signature


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

2018-11-28 Thread Gregor Riepl
Ok, it looks like I misunderstood how binNMUs work, so I'll simply prepare a
release then. [1]

[1] https://wiki.debian.org/binNMU



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

2018-11-28 Thread Gregor Riepl
> for the Python 3.7 default transition, libarcus was binNMUed against
> Python 3.7, but FTBFS on at least amd64, arm64, i386, mips, ppc64el
> and s390x:
>
> https://buildd.debian.org/status/package.php?p=libarcus=unstable
>
> So far it only build fine only on these release architectures" armel,
> armhf, mipsel64.

Thanks for reporting.

I'd like to fix this ASAP, but I just noticed that the NMU was never imported
back into the repository.

I'll add those imported library symbols and prepare a release as soon as I've
tracked the changes down.



Bug#914953: FTBFS with Python 3.7 on many architectures

2018-11-28 Thread Axel Beckert
Source: libarcus
Version: 3.3.0-1+b1
Severity: serious
Tags: ftbfs

Hi,

for the Python 3.7 default transition, libarcus was binNMUed against
Python 3.7, but FTBFS on at least amd64, arm64, i386, mips, ppc64el
and s390x:

https://buildd.debian.org/status/package.php?p=libarcus=unstable

So far it only build fine only on these release architectures" armel,
armhf, mipsel64.

Probably relevant log excerpt on amd64:

dpkg-gensymbols -plibarcus3 -Idebian/libarcus3.symbols -Pdebian/libarcus3 
-edebian/libarcus3/usr/lib/x86_64-linux-gnu/libArcus.so.1.1.0
dpkg-gensymbols: warning: some new symbols appeared in the symbols file: see 
diff output below
dpkg-gensymbols: error: some symbols or patterns disappeared in the symbols 
file: see diff output below
dpkg-gensymbols: warning: debian/libarcus3/DEBIAN/symbols doesn't match 
completely debian/libarcus3.symbols
--- debian/libarcus3.symbols (libarcus3_3.3.0-1+b2_amd64)
+++ dpkg-gensymbolsiZ3ci6   2018-11-28 18:20:30.346117939 +
@@ -29,12 +29,12 @@
  (c++)"Arcus::Private::PlatformSocket::flush()@Base" 2.3.1
  (c++)"Arcus::Private::PlatformSocket::getNativeErrorCode()@Base" 2.3.1
  (c++)"Arcus::Private::PlatformSocket::listen(int)@Base" 2.3.1
- (c++|optional)"Arcus::Private::PlatformSocket::readBytes(unsigned int, 
char*)@Base" 3.0.3
+#MISSING: 3.3.0-1+b2# 
(c++|optional)"Arcus::Private::PlatformSocket::readBytes(unsigned int, 
char*)@Base" 3.0.3
  (c++|optional)"Arcus::Private::PlatformSocket::readBytes(unsigned long, 
char*)@Base" 2.3.1
  (c++)"Arcus::Private::PlatformSocket::readUInt32(unsigned int*)@Base" 2.5.0
  (c++)"Arcus::Private::PlatformSocket::setReceiveTimeout(int)@Base" 2.3.1
  
(c++)"Arcus::Private::PlatformSocket::shutdown(Arcus::Private::PlatformSocket::ShutdownDirection)@Base"
 2.3.1
- (c++|optional)"Arcus::Private::PlatformSocket::writeBytes(unsigned int, char 
const*)@Base" 3.0.3
+#MISSING: 3.3.0-1+b2# 
(c++|optional)"Arcus::Private::PlatformSocket::writeBytes(unsigned int, char 
const*)@Base" 3.0.3
  (c++|optional)"Arcus::Private::PlatformSocket::writeBytes(unsigned long, char 
const*)@Base" 2.3.1
  (c++)"Arcus::Private::PlatformSocket::writeUInt32(unsigned int)@Base" 2.5.0
  (c++)"Arcus::Private::PlatformSocket::~PlatformSocket()@Base" 2.3.1
@@ -65,83 +65,88 @@
  (c++)"Arcus::SocketListener::setSocket(Arcus::Socket*)@Base" 2.3.1
  (c++)"ErrorCollector::AddError(std::__cxx11::basic_string, std::allocator > const&, int, int, 
std::__cxx11::basic_string, std::allocator > 
const&)@Base" 2.3.1
  (c++)"ErrorCollector::~ErrorCollector()@Base" 2.3.1
+ 
_ZNSt10_HashtableIPKN6google8protobuf10DescriptorESt4pairIKS4_jESaIS7_ENSt8__detail10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb121_M_insert_unique_nodeEmmPNS9_10_Hash_nodeIS7_Lb0EEEm@Base
 3.3.0-1+b2
+ 
_ZNSt10_HashtableIjSt4pairIKjPKN6google8protobuf7MessageEESaIS7_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb121_M_insert_unique_nodeEmmPNS9_10_Hash_nodeIS7_Lb0EEEm@Base
 3.3.0-1+b2
+ 
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag@Base
 3.3.0-1+b2
+ 
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag@Base
 3.3.0-1+b2
+ _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag@Base 3.3.0-1+b2
  (c++)"createAddress(std::__cxx11::basic_string, 
std::allocator > const&, int)@Base" 2.3.1
  
(c++)"google::protobuf::compiler::MultiFileErrorCollector::AddWarning(std::__cxx11::basic_string, std::allocator > const&, int, int, 
std::__cxx11::basic_string, std::allocator > 
const&)@Base" 2.3.1
- (c++|optional)"google::protobuf::internal::pLinuxKernelCmpxchg@Base" 3.0.3
- (c++|optional)"google::protobuf::internal::pLinuxKernelMemoryBarrier@Base" 
3.0.3
+#MISSING: 3.3.0-1+b2# 
(c++|optional)"google::protobuf::internal::pLinuxKernelCmpxchg@Base" 3.0.3
+#MISSING: 3.3.0-1+b2# 
(c++|optional)"google::protobuf::internal::pLinuxKernelMemoryBarrier@Base" 3.0.3
  (c++)"hash(std::__cxx11::basic_string, 
std::allocator > const&)@Base" 2.3.1
  (c++)"operator<<(std::basic_ostream >&, 
Arcus::Error const&)@Base" 2.3.1
- (c++|optional)"std::_Deque_base, 
std::allocator > 
>::_M_initialize_map(unsigned int)@Base" 3.0.3
+#MISSING: 3.3.0-1+b2# 
(c++|optional)"std::_Deque_base, 
std::allocator > 
>::_M_initialize_map(unsigned int)@Base" 3.0.3
  (c++|optional)"std::_Deque_base, 
std::allocator > 
>::_M_initialize_map(unsigned long)@Base" 2.3.1
- (c++|optional)"std::_Hashtable, 
std::allocator >, std::__detail::_Select1st, std::equal_to, std::hash, 
std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, 
std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits >::_M_insert_unique_node(unsigned int, unsigned int, 
std::__detail::_Hash_node, false>*)@Base" 3.0.3
-