Bug#831184: mumble: FTBFS with GCC 6, seems Ice related

2016-08-11 Thread Chris Knadle
tags 831184 + patch pending
thanks

Attached are two patches (thanks to Mikkel Krautz for finding the
solution and for the c++11 patch) both which fix the build.  Unless
there's an objection I'm going to use the patch to build with c++03
because that's what Mumble upstream tests Mumble with.

Thanks
  -- Chris

-- 
Chris Knadle
chris.kna...@coredump.us
Description: Fix FTBFS bug with GCC 6
  Mumble expcets -std=c++03 but doesn't explicitly set this in order to allow
  the compiler to choose, and g++-6 defaults to -std=gnu++14.  zeroc-ice ships
  both c++03 and c++11 libs, and the c++03 libs are the default.  The
  combination leads to c++11 linking errors unless the -std is explicity set.
  Additionally the location of the c++11 libs differs depending on whether
  the architecture is 32-bit or 64-bit, so this needs to be specified as well.
Author: Mikkel Krautz 
Bugs-Debian: https://bugs.debian.org/831184
Bugs-Mumble: https://github.com/mumble-voip/mumble/issues/2494
Last-Updated: 2016-08-11

--- a/compiler.pri
+++ b/compiler.pri
@@ -89,6 +89,14 @@
 	QMAKE_LFLAGS   *= $(shell dpkg-buildflags --get LDFLAGS)
 	QMAKE_CFLAGS *= -Wfatal-errors -fvisibility=hidden
 	QMAKE_CXXFLAGS *= -Wfatal-errors -fvisibility=hidden
+	QMAKE_CXXFLAGS *= -std=c++11
+
+	# ZeroC Ice's C++11 libs are in /usr/lib/$triple/c++11 on Debian.
+	MULTIARCH_TRIPLE = $$system($${QMAKE_CXX} -print-multiarch)
+	!isEmpty(MULTIARCH_TRIPLE) {
+		QMAKE_LIBDIR *= /usr/lib/$${MULTIARCH_TRIPLE}/c++11
+	}
+
 	!CONFIG(quiet-build-log) {
 		QMAKE_CFLAGS *= -Wshadow -Wconversion -Wsign-compare
 		QMAKE_CXXFLAGS *= -Wshadow -Woverloaded-virtual -Wold-style-cast -Wconversion -Wsign-compare
Description: Fix FTBFS bug with GCC 6
  Mumble expcets -std=c++03 but doesn't explicitly set this in order to allow
  the compiler to choose, and g++-6 defaults to -std=gnu++14.  zeroc-ice ships
  both c++03 and c++11 libs, and the c++03 libs are the default.  The
  combination leads to c++11 linking errors unless the -std is explicity set.
Author: Mikkel Krautz 
Bugs-Debian: https://bugs.debian.org/831184
Bugs-Mumble: https://github.com/mumble-voip/mumble/issues/2494
Last-Updated: 2016-08-11

--- a/compiler.pri
+++ b/compiler.pri
@@ -89,6 +89,8 @@
 	QMAKE_LFLAGS   *= $(shell dpkg-buildflags --get LDFLAGS)
 	QMAKE_CFLAGS *= -Wfatal-errors -fvisibility=hidden
 	QMAKE_CXXFLAGS *= -Wfatal-errors -fvisibility=hidden
+	QMAKE_CXXFLAGS *= -std=c++03
+
 	!CONFIG(quiet-build-log) {
 		QMAKE_CFLAGS *= -Wshadow -Wconversion -Wsign-compare
 		QMAKE_CXXFLAGS *= -Wshadow -Woverloaded-virtual -Wold-style-cast -Wconversion -Wsign-compare


signature.asc
Description: OpenPGP digital signature


Bug#831184: mumble: FTBFS with GCC 6, seems Ice related

2016-08-01 Thread Jose Gutierrez de la Concha
Hi,

When building an Ice application with C++11/C++14 enabled you need to link
with libraries with ++11 suffix -lIce++11 instead of -lIce.

libzeroc-ice3.6 provide C++98 libraries and C++11 libraries with ++11
suffix and the APIs are slightly different.

Regards,
José

On Mon, Aug 1, 2016 at 2:56 AM, Chris Knadle 
wrote:

> Greetings.
>
> Unfortunately Mumble in Debian won't compile with GCC-6 right now:
>
>https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831184
>
> After talking to Mikkel Krautz (mumble upstream) I tried adding the
> following to the unix {} block in murmur.pro:
>
> QMAKE_CXXFLAGS *= -std=c++11
>
> but unfortunately this doesn't seem to help.  I'm adding the maintainers
> of zero-ice hoping that we can jointly track down how to fix this.
>
> Thanks.
>
>-- Chris
>
> --
> Chris Knadle
> chris.kna...@coredump.us
>
> partital build failure log (with the excepiton of the -std=c++11 switch
> it looks the same as the log Lucas Nussbaum supplied in the bug):
>
> ---
> [...]
> g++ -c -include release/murmurd -m64 -pipe -g -O2
> -fstack-protector-strong -Wformat -Werror=format-security -Wfatal-errors
> -fvisibility=hidden -g -std=c++11 -O2 -Wall -W -D_REENTRANT
> -DNO_UPDATE_CHECK -DPLUGIN_PATH=/usr/lib/mumble
> -DMUMBLE_VERSION=1.2.16-1 -DHAVE_LIMITS_H -DHAVE_ENDIAN_H
> -DRESTRICT=__restrict__ -D_FORTIFY_SOURCE=2
> -DMUMBLE_VERSION_STRING=1.2.16 -DMURMUR -DUSE_DBUS -DUSE_ICE
> -DUSE_BONJOUR -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB
> -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
> -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore
> -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml
> -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtDBus
> -I../../src -I. -I/usr/include/speech-dispatcher -I../bonjour -Irelease
> -I/usr/include/avahi-compat-libdns_sd -o release/moc_BonjourServer.o
> release/moc_BonjourServer.cpp
>
> g++ -m64 -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -Wl,-O1 -o
> ../../release/murmurd release/ACL.o release/Group.o release/Channel.o
> release/Connection.o release/User.o release/Timer.o release/CryptState.o
> release/OSInfo.o release/Net.o release/SSL.o release/Version.o
> release/main.o release/Server.o release/ServerUser.o release/ServerDB.o
> release/Register.o release/Cert.o release/Messages.o release/Meta.o
> release/RPC.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o
> release/BonjourServiceRegister.o release/BonjourServer.o
> release/Mumble.pb.o release/Murmur.o release/moc_ACL.o
> release/moc_Channel.o release/moc_Connection.o release/moc_Server.o
> release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o
> release/moc_DBus.o release/moc_MurmurIce.o
> release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o
> -L../../release -L/usr/lib/x86_64-linux-gnu -lprotobuf -lcap -lIce
> -lIceUtil -lQtDBus -lssl -lcrypto -ldns_sd -lavahi-common -lavahi-client
> -lpthread -lQtSql -lQtXml -lQtNetwork -lQtCore
>
> release/Murmur.o: In function
> `IceInternal::Cpp11FnCallbackNC::~Cpp11FnCallbackNC()':
>
> /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
> IceInternal::Cpp11FnCallbackNC'
>
> /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
> IceInternal::Cpp11FnCallbackNC'
>
> /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
> IceInternal::Cpp11FnCallbackNC'
>
> /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
> IceInternal::Cpp11FnCallbackNC'
>
> /usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
> IceInternal::Cpp11FnCallbackNC'
>
> release/Murmur.o:/usr/include/Ice/Proxy.h:95: more undefined references
> to `vtable for IceInternal::Cpp11FnCallbackNC' follow
> release/Murmur.o: In function `Cpp11CB':
>
> /<>/src/murmur/Murmur.cpp:7028: undefined reference to
> `IceInternal::Cpp11FnCallbackNC::Cpp11FnCallbackNC(std::function (IceUtil::Exception const&)> const&, std::function const&)'
> [...]
> ---
>



-- 
José Gutiérrez de la Concha
ZeroC, Inc.


Bug#831184: mumble: FTBFS with GCC 6, seems Ice related

2016-07-31 Thread Chris Knadle
Greetings.

Unfortunately Mumble in Debian won't compile with GCC-6 right now:

   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831184

After talking to Mikkel Krautz (mumble upstream) I tried adding the
following to the unix {} block in murmur.pro:

QMAKE_CXXFLAGS *= -std=c++11

but unfortunately this doesn't seem to help.  I'm adding the maintainers
of zero-ice hoping that we can jointly track down how to fix this.

Thanks.

   -- Chris

-- 
Chris Knadle
chris.kna...@coredump.us

partital build failure log (with the excepiton of the -std=c++11 switch
it looks the same as the log Lucas Nussbaum supplied in the bug):

---
[...]
g++ -c -include release/murmurd -m64 -pipe -g -O2
-fstack-protector-strong -Wformat -Werror=format-security -Wfatal-errors
-fvisibility=hidden -g -std=c++11 -O2 -Wall -W -D_REENTRANT
-DNO_UPDATE_CHECK -DPLUGIN_PATH=/usr/lib/mumble
-DMUMBLE_VERSION=1.2.16-1 -DHAVE_LIMITS_H -DHAVE_ENDIAN_H
-DRESTRICT=__restrict__ -D_FORTIFY_SOURCE=2
-DMUMBLE_VERSION_STRING=1.2.16 -DMURMUR -DUSE_DBUS -DUSE_ICE
-DUSE_BONJOUR -D_REENTRANT -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_XML_LIB
-DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
-I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore
-I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml
-I/usr/include/qt4/QtSql -I/usr/include/qt4 -I/usr/include/qt4/QtDBus
-I../../src -I. -I/usr/include/speech-dispatcher -I../bonjour -Irelease
-I/usr/include/avahi-compat-libdns_sd -o release/moc_BonjourServer.o
release/moc_BonjourServer.cpp

g++ -m64 -Wl,-z,relro -Wl,-z,relro -Wl,-z,now -Wl,-O1 -o
../../release/murmurd release/ACL.o release/Group.o release/Channel.o
release/Connection.o release/User.o release/Timer.o release/CryptState.o
release/OSInfo.o release/Net.o release/SSL.o release/Version.o
release/main.o release/Server.o release/ServerUser.o release/ServerDB.o
release/Register.o release/Cert.o release/Messages.o release/Meta.o
release/RPC.o release/UnixMurmur.o release/DBus.o release/MurmurIce.o
release/BonjourServiceRegister.o release/BonjourServer.o
release/Mumble.pb.o release/Murmur.o release/moc_ACL.o
release/moc_Channel.o release/moc_Connection.o release/moc_Server.o
release/moc_ServerUser.o release/moc_Meta.o release/moc_UnixMurmur.o
release/moc_DBus.o release/moc_MurmurIce.o
release/moc_BonjourServiceRegister.o release/moc_BonjourServer.o
-L../../release -L/usr/lib/x86_64-linux-gnu -lprotobuf -lcap -lIce
-lIceUtil -lQtDBus -lssl -lcrypto -ldns_sd -lavahi-common -lavahi-client
-lpthread -lQtSql -lQtXml -lQtNetwork -lQtCore

release/Murmur.o: In function
`IceInternal::Cpp11FnCallbackNC::~Cpp11FnCallbackNC()':

/usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
IceInternal::Cpp11FnCallbackNC'

/usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
IceInternal::Cpp11FnCallbackNC'

/usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
IceInternal::Cpp11FnCallbackNC'

/usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
IceInternal::Cpp11FnCallbackNC'

/usr/include/Ice/Proxy.h:95: undefined reference to `vtable for
IceInternal::Cpp11FnCallbackNC'

release/Murmur.o:/usr/include/Ice/Proxy.h:95: more undefined references
to `vtable for IceInternal::Cpp11FnCallbackNC' follow
release/Murmur.o: In function `Cpp11CB':

/<>/src/murmur/Murmur.cpp:7028: undefined reference to
`IceInternal::Cpp11FnCallbackNC::Cpp11FnCallbackNC(std::function const&, std::function const&)'
[...]
---