No voice call or video call possible, due to recent farsight->farstream transition

Bug #971867 reported by Stefan Kriwanek (Divan)
26
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Pidgin
Fix Released
Unknown
pidgin (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

Running pidgin in debug mode produces no useful debug output either.

To reproduce:
Run Pidgin, start a voice call with yourself (e.g. use 2 XMPP accounts). Your "calling" window will open, but Pidgin won't report an incoming call. Thus voice/video calls are impossible to make.

This happens since Ubuntu Precise shippes the Farsight library, which formerly was called FarStream2. The renaming was accompanied by an API change.

The reason is that the patch to the pidgin source package, debian/patches/70_farstream_rename.patch, not fully reflects the API change.

I'll post a an initial patch shortly, to keep it separate from the bug report.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: libpurple0 1:2.10.2-1ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-21.34-generic 3.2.13
Uname: Linux 3.2.0-21-generic x86_64
ApportVersion: 2.0-0ubuntu2
Architecture: amd64
Date: Mon Apr 2 22:01:33 2012
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120303)
ProcEnviron:
 TERM=xterm
 PATH=(custom, user)
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SourcePackage: pidgin
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Stefan Kriwanek (Divan) (dev-stefankriwanek) wrote :
Revision history for this message
Stefan Kriwanek (Divan) (dev-stefankriwanek) wrote :

This is an initial solution or workaround for the bug. The following steps/reasoning were involved:

- The OpenSUSE project has a patch reflecting some (but not all) of the API changes at:
https://build.opensuse.org/package/view_file?file=pidgin-port-to-farstream.patch&package=pidgin&project=openSUSE%3AFactory%3AARM
(queried at Mo 2. Apr 20:29:30 UTC 2012)

It still needs an minor change to build successfully, which the Ubuntu package already has in its debian/patches/70_farstream_rename.patch:
--- pidgin-2.10.3/libpurple/mediamanager.c 2012-03-26 05:49:16.000000000 +0200
+++ pidgin-working/libpurple/mediamanager.c 2012-04-02 20:36:45.554420032 +0200
@@ -42,1 +42,1 @@
-#include <gst/farsight/fs-element-added-notifier.h>
+#include <farstream/fs-element-added-notifier.h>

- However, the build libpurple still isn't able to do voice/video calls. This is because of the following API change (see http://lists.freedesktop.org/archives/farstream-devel/2012-February/000002.html):
 * Return NULL in "codecs" unless they are ready (and "codecs-ready"
   is not needed anymore)

This basically means, we can port the FarSight2 code to Farstream by behaving as if the "codecs-ready" property of a Farstream session always were TRUE. However, if (when) we had a waiting loop for "codecs-ready" to become TRUE before, we should now wait for "codecs" to become non-NULL instead.

- As of now I implemented the former part and as a result voice calls do work for me again. Video calls also get set up properly, but no video is transmitted/displayed and audio is only for a short time. This might or might not be related.

I feel having only voice calls working is better than none at all, therefore I believe the patch is useful already at this point. I acknowledge a proper patch for the transition will need more logical cleanup, but I don't have the necessary insight to do that right now. Besides, it's an issue upstream will need to care about soon (but probably not before April 26th).

The patch file is intended to be used as a replacement for debian/patches/70_farstream_rename.patch, because I'm not familiar with quilt. So I could only test it against unpatched pidgin sources.

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "pidgin-farstream-ubuntu-precise.patch" of this bug report has been identified as being a patch. The ubuntu-reviewers team has been subscribed to the bug report so that they can review the patch. In the event that this is in fact not a patch you can resolve this situation by removing the tag 'patch' from the bug report and editing the attachment so that it is not flagged as a patch. Additionally, if you are member of the ubuntu-reviewers team please also unsubscribe the team from this bug report.

[This is an automated message performed by a Launchpad user owned by Brian Murray. Please contact him regarding any issues with the action taken in this bug report.]

tags: added: patch
Revision history for this message
Stefan Kriwanek (Divan) (dev-stefankriwanek) wrote :

Ok, there's actually an upstream discussion I wasn't aware of at
http://developer.pidgin.im/ticket/14936

There's an updated patch there, too.

Revision history for this message
Maarten Bezemer (veger) wrote :

Thanks for sharing the upstream bug report. Launchpad has the ability to watch lots of upstream bug trackers and this can be done by following the procedure documented at https://wiki.ubuntu.com/Bugs/Watches. I've added the bug watch for this bug report.

Changed in pidgin:
status: Unknown → Fix Released
Revision history for this message
Pedro (simplew8) wrote :
Download full text (5.6 KiB)

I have runned pidgin in gdb and when placing a video call (when the other end accpeted here crashed):

@localhost:~$ gdb pidgin
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /usr/bin/pidgin...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/pidgin
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe37e7700 (LWP 2796)]
[New Thread 0x7fffe0497700 (LWP 2797)]
[New Thread 0x7fffdfc96700 (LWP 2798)]
[New Thread 0x7fffd6141700 (LWP 2832)]
[New Thread 0x7fffcb01b700 (LWP 2833)]
[New Thread 0x7fffc3fff700 (LWP 2834)]
[New Thread 0x7fffca41a700 (LWP 2835)]
[New Thread 0x7fffc9c19700 (LWP 2836)]
[New Thread 0x7fffc37fe700 (LWP 2837)]
[New Thread 0x7fffc2ffd700 (LWP 2838)]
[New Thread 0x7fffc27fc700 (LWP 2839)]
[New Thread 0x7fffc1ffb700 (LWP 2840)]
[New Thread 0x7fffc17fa700 (LWP 2841)]
[New Thread 0x7fffc0ff9700 (LWP 2842)]
[New Thread 0x7fffb7ffe700 (LWP 2843)]
[New Thread 0x7fffb6c3c700 (LWP 2844)]
[New Thread 0x7fffb643b700 (LWP 2845)]
[New Thread 0x7fffb5c3a700 (LWP 2846)]
[Thread 0x7fffc1ffb700 (LWP 2840) exited]
[New Thread 0x7fffb5227700 (LWP 2847)]
[New Thread 0x7fffb4a26700 (LWP 2848)]
[Thread 0x7fffc17fa700 (LWP 2841) exited]
[New Thread 0x7fffc17fa700 (LWP 2849)]
[New Thread 0x7fffa9e0d700 (LWP 2850)]
[New Thread 0x7fff73ba4700 (LWP 2851)]
[New Thread 0x7fffa93ff700 (LWP 2852)]
[New Thread 0x7fffa8bfe700 (LWP 2853)]
[New Thread 0x7fff733a3700 (LWP 2854)]
DtsGetHWFeatures: Create File Failed
DtsGetHWFeatures: Create File Failed
Running DIL (3.22.0) Version
DtsDeviceOpen: Opening HW in mode 0
DtsDeviceOpen: Create File Failed
[Thread 0x7fffb5227700 (LWP 2847) exited]
[Thread 0x7fffca41a700 (LWP 2835) exited]
[Thread 0x7fffc3fff700 (LWP 2834) exited]
[Thread 0x7fffcb01b700 (LWP 2833) exited]
[Thread 0x7fffb7ffe700 (LWP 2843) exited]
[Thread 0x7fffd6141700 (LWP 2832) exited]
[Thread 0x7fffc17fa700 (LWP 2849) exited]
[Thread 0x7fffc37fe700 (LWP 2837) exited]
[Thread 0x7fffb5c3a700 (LWP 2846) exited]
[Thread 0x7fffc2ffd700 (LWP 2838) exited]
[Thread 0x7fffc27fc700 (LWP 2839) exited]
[Thread 0x7fff73ba4700 (LWP 2851) exited]
[Thread 0x7fffa9e0d700 (LWP 2850) exited]
[Thread 0x7fffc9c19700 (LWP 2836) exited]
[Thread 0x7fffb4a26700 (LWP 2848) exited]
[Thread 0x7fffe0497700 (LWP 2797) exited]
[Thread 0x7fff733a3700 (LWP 2854) exited]
[Thread 0x7fffb643b700 (LWP 2845) exited]
[Thread 0x7fffc0ff9700 (LWP 2842) exited]
[Thread 0x7fffa8bfe700 (LWP 2853) exited]
[Thread 0x7fffb6c3c700 (LWP 2844) exited]
[New Thread 0x7fffb6c3c700 (LWP 2858)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5012e2d in g_slice_alloc ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb...

Read more...

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in pidgin (Ubuntu):
status: New → Confirmed
Revision history for this message
Pedro (simplew8) wrote :

This is a problem that also happens in empathy and in telepathy kde, currently in ubuntu precise is NOT possible to have a video chat!

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.