Version: 0.12 beta 2 (using KDE KDE 3.5.2) Installed from: FreeBSD Ports Compiler: gcc (GCC) 3.4.4 [FreeBSD] 20050518 OS: FreeBSD * Enable libjingle to be built with the latest stable speex 1.0.5 * Enable libjingle to be built with the latest stable ortp 0.9.1 * Add a check to prevent libjingle start without a soundcard (it crashes otherwise) * Add speex_bits_destroy() where appropriate * Add a missing return statement * Rewrite a g_return_if_fail() as g_return_val_if_fail() (obtained from latest linphone 1.3.5) * Pthread's specification conformance - Initialize pthread_mutexattr_t before using it (fix crash) - Add a matching pthread_mutexattr_destroy() for each pthread_mutexattr_init() * Add the FreeBSD way of telling a socket not to fragment packets
Created attachment 15941 [details] add missing pthread_mutexattr_init() Fixes crash when VoIP connecion is initiated
Created attachment 15942 [details] Add FreeBSD way of telling a socket to not fragment packets
Created attachment 15943 [details] Add matching pthread_mutexattr_destroy() to pthread_mutexattr_init()
Created attachment 15944 [details] Allow build with latest speex 1.0.5
Created attachment 15945 [details] Allow build with latest ortp 0.9.1
Created attachment 15946 [details] Allow build with latest ortp 0.9.1 Also, add a check to prevent libjingle start without a soundcard (it crashes otherwise)
Created attachment 15947 [details] Allow build with latest ortp 0.9.1
Created attachment 15948 [details] Allow build with latest ortp 0.9.1
Created attachment 15949 [details] Add speex_bits_destroy() where appropriate
Created attachment 15950 [details] Add speex_bits_destroy() where appropriate
Created attachment 15951 [details] Add a missing return statement
Created attachment 15952 [details] Rewrite a g_return_if_fail() as g_return_val_if_fail() (obtained from latest linphone 1.3.5)
Furthermore, kopete 0.12 beta2 configure script should detect the existence of <sys/soundcard.h> so that libjingle knows there is an OSS system available. Similar checks should be done to define __ALSA_ENABLED__, __JACK_ENABLED__, HAVE_PORTAUDIO and HAVE_SYS_AUDIO_H. If none of these are found, libjingle will crash due to the lack of a soundcard. Moreover, - Define both FEATURE_ENABLE_SSL and HAVE_SSL in config.h if ssl is properly detected - If you are going to strictly follow the libjingle distribution, FEATURE_ENABLE_CHAT_ARCHIVING should also be defined in config.h. It is always defined on the standard libjingle distribution. I have verified that kopete 0.12 beta2 works with the latest libjingle 0.3.0 instead of the old one shipped with kopete. Let me know if you need any help. The FreeBSD port of net-im/kopete should have an option to build with the latest libjingle instead of the old version.
These patches have been submitted to libjingle developers but they have been ignored so far.
I tried all the patches on the latest svn here but it wouldn't compile with the four "latest ortp" patches and the "latest speex" patch. This is with ortp-0.9.1 and speex-1.1.12. If I exclude those five patches and keep the others it compiles fine with ortp-0.7.1. This is the error I get with all the patches. /bin/sh ../../../libtool --silent --mode=link --tag=CXX i686-pc-linux-gnu-g++ -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -g3 -fno-inline -march=athlon-xp -O3 -msse2 -fprefetch-loop-arrays -ftracer -pipe -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -Wl,-O1 -o kopete_jabber.la -rpath /usr/lib/kde3 -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined -module -avoid-version -module -no-undefined -Wl,--no-undefined -Wl,--allow-shlib-undefined -R /usr/lib -R /usr/kde/3.5/lib -R /usr/qt/3/lib -R /usr/lib -R /usr/kde/3.5/lib -L/usr/kde/3.5/lib -L/usr/qt/3/lib -L/usr/lib -L/usr/kde/3.5/lib jabberprotocol.lo jabberaccount.lo jabberresource.lo jabberresourcepool.lo jabberbasecontact.lo jabbercontact.lo jabbergroupcontact.lo jabbergroupmembercontact.lo jabbercontactpool.lo jabberformtranslator.lo jabberformlineedit.lo jabberchatsession.lo jabbergroupchatmanager.lo jabberfiletransfer.lo jabbercapabilitiesmanager.lo jabbertransport.lo jabberbookmarks.lo ../../../kopete/libkopete/libkopete.la ui/libkopetejabberui.la libiris/iris/include/libiris.la libiris/iris/jabber/libiris_jabber.la libiris/iris/xmpp-core/libiris_xmpp_core.la libiris/iris/xmpp-im/libiris_xmpp_im.la libiris/qca/src/libqca.la libiris/cutestuff/network/libcutestuff_network.la libiris/cutestuff/util/libcutestuff_util.la libjabberclient.la jingle/libkopetejabberjingle.la jingle/.libs/libkopetejabberjingle.a(ms.o): In function `ms_init': /var/tmp/portage/kopete-svn-0.12.20060507/work/0.12.20060507/kopete/protocols/jabber/jingle/libjingle/talk/third_party/mediastreamer/ms.c:53: undefined reference to `g_thread_init' collect2: ld returned 1 exit status make[5]: *** [kopete_jabber.la] Error 1 Some system info. gcc-3.4.5, glibc-2.3.6-r3, 2.6.16-ck9 i686 dev-lang/python: 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r1 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.18 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r2 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r5 CFLAGS="-march=athlon-xp -O3 -msse2 -fprefetch-loop-arrays -ftracer -pipe" CHOST="i686-pc-linux-gnu"
The thing is I forgot to add a few little tweaks I do internally on the FreeBSD port of kopete 0.12 beta 2. If you replace all occurences of glib-2.0 with gthread-2.0 glib-2.0 on the configure script, it builds like a charm. Here is the FreeBSD patch: # force usage of gthread for libjingle's benefit cp configure configure.bak sed -E -e 's|(glib-2.0)|gthread-2.0 \1|' configure.bak > configure
Does anyone know the reason why these patches was not integrated into Kopete 0.12?
I've heard that they cause other problems such as crashes and things of that nature, but i'm not certain.
I think that this should be investigated more thoroughly, and if these patches break things, these things should be fixed, not patches rejected. Most Linux distributions come with oRTP much newer than version 0.7.1, and requiring exactly this version makes building Kopete with Jingle support prohibitively painful (see bug #128698).
Have theses patch been tested, and does they works ? I am unable to test them personally. Please make a big single patch, that i could eventually commit
Created attachment 17189 [details] big patch without the BSD one Hi Gof I've made this patch from the small ones in this bug report without the BSD one.I've tested kopete ( stable not SVN ) with this patch and I see no difference :) same as 0.7.* ortp sometimes crashes , sometimes just does not work but mabye is just me :P so feel free to test it :) PS: you need gthread.patch as well to get kopete to compile
Created attachment 17190 [details] gthread.patch to be used with bug-126862-without_the_BSD_one.patch
gthread.patch from comment #22 patches configure as well as its sources... But I'll see if this fixes the deadlock on connect problem that I see without it.
No deadlock, established connection, but the other party could not hear me, nor could I hear them. Has anyone else got any tips how to get this working? I wanted to get this mature enough to enable by default, but DarkShock (Michael) does not want to work on it at the moment, and I am not familiar with voice at all, so I'll probably give up for now.
*** This bug has been confirmed by popular vote. ***
Closing this bug which isn't one :)
Note : The jingle support has been removed but should be back soon.