summaryrefslogtreecommitdiff
path: root/gnome-unstable/pidgin
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2012-04-03 14:54:55 +0000
committerParabola <dev@list.parabolagnulinux.org>2012-04-03 14:54:55 +0000
commitb618c3d0693aec564c6746238fd05d94e31d3b76 (patch)
tree4a4834f3097bba25dba1adeba4324080c1b4bf7b /gnome-unstable/pidgin
parent8cb5196780766f47b595410eed8ddbee2e8add08 (diff)
Tue Apr 3 14:54:45 UTC 2012
Diffstat (limited to 'gnome-unstable/pidgin')
-rw-r--r--gnome-unstable/pidgin/PKGBUILD112
-rw-r--r--gnome-unstable/pidgin/nm09-more.patch49
-rw-r--r--gnome-unstable/pidgin/pidgin.install11
-rw-r--r--gnome-unstable/pidgin/port-to-farstream-v2.patch447
-rw-r--r--gnome-unstable/pidgin/port-to-farstream-v3.patch447
5 files changed, 0 insertions, 1066 deletions
diff --git a/gnome-unstable/pidgin/PKGBUILD b/gnome-unstable/pidgin/PKGBUILD
deleted file mode 100644
index a9ae8efe5..000000000
--- a/gnome-unstable/pidgin/PKGBUILD
+++ /dev/null
@@ -1,112 +0,0 @@
-# $Id: PKGBUILD 154399 2012-03-27 14:35:39Z foutrelis $
-# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
-# Contributor: Ionut Biru <ibiru@archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
-# Contributor: Alexander Fehr <pizzapunk gmail com>
-# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
-
-pkgname=('pidgin' 'libpurple' 'finch')
-pkgver=2.10.3
-pkgrel=2
-arch=('i686' 'x86_64')
-url="http://pidgin.im/"
-license=('GPL')
-makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
- 'libidn' 'python2' 'hicolor-icon-theme' 'gstreamer0.10'
- 'farstream' 'avahi' 'tk' 'ca-certificates' 'intltool'
- 'networkmanager')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
- port-to-farstream-v3.patch)
-sha256sums=('0f67d96231fea3945c2735e6a3b4bd92590ef489fa1511fa69aa6a543cb4168b'
- '4c11c10da01855afe865408f29f514672b736830105523fe48aa74676d5052ca')
-
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- # Apply patch for farsight -> farstream transition
- # http://developer.pidgin.im/ticket/14936
- patch -Np1 -i "$srcdir/port-to-farstream-v3.patch"
-
- # The farstream patch changes configure.ac
- autoreconf -vi
-
- # Use Python 2
- sed -i 's/env python$/&2/' */plugins/*.py \
- libpurple/purple-{remote,notifications-example,url-handler}
-
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --disable-schemas-install \
- --disable-meanwhile \
- --disable-gnutls \
- --enable-cyrus-sasl \
- --disable-doxygen \
- --enable-nm \
- --with-python=/usr/bin/python2 \
- --with-system-ssl-certs=/etc/ssl/certs
- make
-}
-
-package_pidgin(){
- pkgdesc="Multi-protocol instant messaging client"
- depends=('libpurple' 'startup-notification' 'gtkspell' 'libxss' 'libsm'
- 'gstreamer0.10' 'hicolor-icon-theme')
- optdepends=('aspell: for spelling correction'
- 'ca-certificates: SSL CA certificates'
- 'gstreamer0.10-good-plugins: video and voice support'
- 'tk: Tcl/Tk scripting support')
- install=pidgin.install
-
- cd "$srcdir/pidgin-$pkgver"
-
- # For linking
- make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
-
- make -C pidgin DESTDIR="$pkgdir" install
- make -C doc DESTDIR="$pkgdir" install
-
- # Remove files that are packaged in libpurle
- make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
-
- install -Dm644 pidgin.desktop "$pkgdir"/usr/share/applications/pidgin.desktop
-
- rm "$pkgdir/usr/share/man/man1/finch.1"
-}
-
-package_libpurple(){
- pkgdesc="IM library extracted from Pidgin"
- depends=('farstream' 'libsasl' 'libidn' 'dbus-glib' 'nss')
- optdepends=('avahi: Bonjour protocol support'
- 'dbus-python: for purple-remote and purple-url-handler')
-
- cd "$srcdir/pidgin-$pkgver"
-
- for _dir in libpurple share/sounds share/ca-certs m4macros po; do
- make -C "$_dir" DESTDIR="$pkgdir" install
- done
-}
-
-package_finch(){
- pkgdesc="A ncurses-based messaging client"
- depends=("libpurple=$pkgver-$pkgrel" 'python2' 'gstreamer0.10')
- optdepends=('avahi: Bonjour protocol support'
- 'ca-certificates: SSL CA certificates'
- 'tk: Tcl/Tk scripting support')
-
- cd "$srcdir/pidgin-$pkgver"
-
- # For linking
- make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
-
- make -C finch DESTDIR="$pkgdir" install
- make -C doc DESTDIR="$pkgdir" install
-
- # Remove files that are packaged in libpurle
- make -C libpurple DESTDIR="$pkgdir" uninstall-libLTLIBRARIES
-
- rm "$pkgdir"/usr/share/man/man1/pidgin.1
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/pidgin/nm09-more.patch b/gnome-unstable/pidgin/nm09-more.patch
deleted file mode 100644
index 8c708df9a..000000000
--- a/gnome-unstable/pidgin/nm09-more.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up pidgin-2.7.11/libpurple/network.c.nm09more pidgin-2.7.11/libpurple/network.c
---- pidgin-2.7.11/libpurple/network.c.nm09more 2011-04-26 12:01:27.700085246 -0500
-+++ pidgin-2.7.11/libpurple/network.c 2011-05-24 13:13:28.185165657 -0500
-@@ -833,8 +833,20 @@ purple_network_is_available(void)
- purple_debug_warning("network", "NetworkManager not active. Assuming connection exists.\n");
- }
-
-- if (nm_state == NM_STATE_UNKNOWN || nm_state == NM_STATE_CONNECTED)
-- return TRUE;
-+ switch (nm_state)
-+ {
-+ case NM_STATE_UNKNOWN:
-+#if NM_CHECK_VERSION(0,8,992)
-+ case NM_STATE_CONNECTED_LOCAL:
-+ case NM_STATE_CONNECTED_SITE:
-+ case NM_STATE_CONNECTED_GLOBAL:
-+#else
-+ case NM_STATE_CONNECTED:
-+#endif
-+ return TRUE;
-+ default:
-+ break;
-+ }
-
- return FALSE;
-
-@@ -1170,9 +1182,14 @@ purple_network_init(void)
- NM_DBUS_SERVICE,
- NM_DBUS_PATH,
- NM_DBUS_INTERFACE);
-+ /* NM 0.6 signal */
- dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID);
- dbus_g_proxy_connect_signal(nm_proxy, "StateChange",
- G_CALLBACK(nm_state_change_cb), NULL, NULL);
-+ /* NM 0.7 and later signal */
-+ dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID);
-+ dbus_g_proxy_connect_signal(nm_proxy, "StateChanged",
-+ G_CALLBACK(nm_state_change_cb), NULL, NULL);
-
- dbus_proxy = dbus_g_proxy_new_for_name(nm_conn,
- DBUS_SERVICE_DBUS,
-@@ -1207,6 +1224,7 @@ purple_network_uninit(void)
- #ifdef HAVE_NETWORKMANAGER
- if (nm_proxy) {
- dbus_g_proxy_disconnect_signal(nm_proxy, "StateChange", G_CALLBACK(nm_state_change_cb), NULL);
-+ dbus_g_proxy_disconnect_signal(nm_proxy, "StateChanged", G_CALLBACK(nm_state_change_cb), NULL);
- g_object_unref(G_OBJECT(nm_proxy));
- }
- if (dbus_proxy) {
diff --git a/gnome-unstable/pidgin/pidgin.install b/gnome-unstable/pidgin/pidgin.install
deleted file mode 100644
index 1a05f573e..000000000
--- a/gnome-unstable/pidgin/pidgin.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install
-}
-
-post_remove() {
- post_install
-}
diff --git a/gnome-unstable/pidgin/port-to-farstream-v2.patch b/gnome-unstable/pidgin/port-to-farstream-v2.patch
deleted file mode 100644
index 49ae60906..000000000
--- a/gnome-unstable/pidgin/port-to-farstream-v2.patch
+++ /dev/null
@@ -1,447 +0,0 @@
-diff -upr pidgin-2.10.1.orig/configure.ac pidgin-2.10.1/configure.ac
---- pidgin-2.10.1.orig/configure.ac 2011-12-06 10:44:32.000000000 +0200
-+++ pidgin-2.10.1/configure.ac 2012-03-10 18:21:12.000000000 +0200
-@@ -780,18 +780,18 @@ else
- fi
-
- dnl #######################################################################
--dnl # Check for Farsight
-+dnl # Check for Farstream
- dnl #######################################################################
--AC_ARG_ENABLE(farsight,
-- [AC_HELP_STRING([--disable-farsight], [compile without farsight support])],
-- enable_farsight="$enableval", enable_farsight="yes")
--if test "x$enable_farsight" != "xno"; then
-- PKG_CHECK_MODULES(FARSIGHT, [farsight2-0.10 >= 0.0.9], [
-- AC_DEFINE(USE_FARSIGHT, 1, [Use Farsight for voice and video])
-- AC_SUBST(FARSIGHT_CFLAGS)
-- AC_SUBST(FARSIGHT_LIBS)
-+AC_ARG_ENABLE(farstream,
-+ [AC_HELP_STRING([--disable-farstream], [compile without farstream support])],
-+ enable_farstream="$enableval", enable_farstream="yes")
-+if test "x$enable_farstream" != "xno"; then
-+ PKG_CHECK_MODULES(FARSTREAM, [farstream-0.1], [
-+ AC_DEFINE(USE_FARSTREAM, 1, [Use Farstream for voice and video])
-+ AC_SUBST(FARSTREAM_CFLAGS)
-+ AC_SUBST(FARSTREAM_LIBS)
- ], [
-- enable_farsight="no"
-+ enable_farstream="no"
- ])
- fi
-
-@@ -802,20 +802,20 @@ AC_ARG_ENABLE(vv,
- [AC_HELP_STRING([--disable-vv], [compile without voice and video support])],
- enable_vv="$enableval", enable_vv="yes")
- if test "x$enable_vv" != "xno"; then
-- if test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno"; then
-+ if test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farstream" != "xno"; then
- AC_DEFINE(USE_VV, 1, [Use voice and video])
- else
- enable_vv="no"
- if test "x$force_deps" = "xyes"; then
- AC_MSG_ERROR([
- Dependencies for voice/video were not met.
--Install the necessary gstreamer and farsight packages first.
-+Install the necessary gstreamer and farstream packages first.
- Or use --disable-vv if you do not need voice/video support.
- ])
- fi
- fi
- fi
--AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno")
-+AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farstream" != "xno")
-
- dnl #######################################################################
- dnl # Check for Internationalized Domain Name support
-diff -upr pidgin-2.10.1.orig/libpurple/Makefile.am pidgin-2.10.1/libpurple/Makefile.am
---- pidgin-2.10.1.orig/libpurple/Makefile.am 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/Makefile.am 2012-03-10 18:21:19.000000000 +0200
-@@ -306,7 +306,7 @@ libpurple_la_LIBADD = \
- $(LIBXML_LIBS) \
- $(NETWORKMANAGER_LIBS) \
- $(INTLLIBS) \
-- $(FARSIGHT_LIBS) \
-+ $(FARSTREAM_LIBS) \
- $(GSTREAMER_LIBS) \
- $(GSTINTERFACES_LIBS) \
- $(IDN_LIBS) \
-@@ -322,7 +322,7 @@ AM_CPPFLAGS = \
- $(DEBUG_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(LIBXML_CFLAGS) \
-- $(FARSIGHT_CFLAGS) \
-+ $(FARSTREAM_CFLAGS) \
- $(GSTREAMER_CFLAGS) \
- $(GSTINTERFACES_CFLAGS) \
- $(IDN_CFLAGS) \
-diff -upr pidgin-2.10.1.orig/libpurple/media/backend-fs2.c pidgin-2.10.1/libpurple/media/backend-fs2.c
---- pidgin-2.10.1.orig/libpurple/media/backend-fs2.c 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/media/backend-fs2.c 2012-03-10 18:21:19.000000000 +0200
-@@ -1,5 +1,5 @@
- /**
-- * @file backend-fs2.c Farsight 2 backend for media API
-+ * @file backend-fs2.c Farstream backend for media API
- * @ingroup core
- */
-
-@@ -34,8 +34,9 @@
- #include "network.h"
- #include "media-gst.h"
-
--#include <gst/farsight/fs-conference-iface.h>
--#include <gst/farsight/fs-element-added-notifier.h>
-+#include <farstream/fs-conference.h>
-+#include <farstream/fs-element-added-notifier.h>
-+#include <farstream/fs-utils.h>
-
- /** @copydoc _PurpleMediaBackendFs2Class */
- typedef struct _PurpleMediaBackendFs2Class PurpleMediaBackendFs2Class;
-@@ -112,6 +113,8 @@ struct _PurpleMediaBackendFs2Stream
- gchar *participant;
- FsStream *stream;
-
-+ gboolean supports_add;
-+
- GstElement *src;
- GstElement *tee;
- GstElement *volume;
-@@ -147,6 +150,8 @@ struct _PurpleMediaBackendFs2Private
- FsConference *conference;
- gchar *conference_type;
-
-+ FsElementAddedNotifier *notifier;
-+
- GHashTable *sessions;
- GHashTable *participants;
-
-@@ -212,6 +217,11 @@ purple_media_backend_fs2_dispose(GObject
-
- purple_debug_info("backend-fs2", "purple_media_backend_fs2_dispose\n");
-
-+ if (priv->notifier) {
-+ g_object_unref(priv->notifier);
-+ priv->notifier = NULL;
-+ }
-+
- if (priv->confbin) {
- GstElement *pipeline;
-
-@@ -846,7 +856,7 @@ gst_handle_message_element(GstBus *bus,
- priv->conference != FS_CONFERENCE(src))
- return;
-
-- if (gst_structure_has_name(msg->structure, "farsight-error")) {
-+ if (gst_structure_has_name(msg->structure, "farstream-error")) {
- FsError error_no;
- gst_structure_get_enum(msg->structure, "error-no",
- FS_TYPE_ERROR, (gint*)&error_no);
-@@ -867,16 +877,9 @@ gst_handle_message_element(GstBus *bus,
- " strict."));
- purple_media_end(priv->media, NULL, NULL);
- break;
-- case FS_ERROR_UNKNOWN_CNAME:
-- /*
-- * Unknown CName is only a problem for the
-- * multicast transmitter which isn't used.
-- * It is also deprecated.
-- */
-- break;
- default:
- purple_debug_error("backend-fs2",
-- "farsight-error: %i: %s\n",
-+ "farstream-error: %i: %s\n",
- error_no,
- gst_structure_get_string(
- msg->structure, "error-msg"));
-@@ -885,11 +888,11 @@ gst_handle_message_element(GstBus *bus,
-
- if (FS_ERROR_IS_FATAL(error_no)) {
- purple_media_error(priv->media, _("A non-recoverable "
-- "Farsight2 error has occurred."));
-+ "Farstream error has occurred."));
- purple_media_end(priv->media, NULL, NULL);
- }
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-new-local-candidate")) {
-+ "farstream-new-local-candidate")) {
- const GValue *value;
- FsStream *stream;
- FsCandidate *local_candidate;
-@@ -924,7 +927,7 @@ gst_handle_message_element(GstBus *bus,
- session->id, name, candidate);
- g_object_unref(candidate);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-local-candidates-prepared")) {
-+ "farstream-local-candidates-prepared")) {
- const GValue *value;
- FsStream *stream;
- FsParticipant *participant;
-@@ -942,7 +945,7 @@ gst_handle_message_element(GstBus *bus,
- g_signal_emit_by_name(self, "candidates-prepared",
- session->id, name);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-new-active-candidate-pair")) {
-+ "farstream-new-active-candidate-pair")) {
- const GValue *value;
- FsStream *stream;
- FsCandidate *local_candidate;
-@@ -976,7 +979,7 @@ gst_handle_message_element(GstBus *bus,
- g_object_unref(lcandidate);
- g_object_unref(rcandidate);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-recv-codecs-changed")) {
-+ "farstream-recv-codecs-changed")) {
- const GValue *value;
- GList *codecs;
- FsCodec *codec;
-@@ -986,10 +989,10 @@ gst_handle_message_element(GstBus *bus,
- codec = codecs->data;
-
- purple_debug_info("backend-fs2",
-- "farsight-recv-codecs-changed: %s\n",
-+ "farstream-recv-codecs-changed: %s\n",
- codec->encoding_name);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-component-state-changed")) {
-+ "farstream-component-state-changed")) {
- const GValue *value;
- FsStreamState fsstate;
- guint component;
-@@ -1025,11 +1028,11 @@ gst_handle_message_element(GstBus *bus,
- }
-
- purple_debug_info("backend-fs2",
-- "farsight-component-state-changed: "
-+ "farstream-component-state-changed: "
- "component: %u state: %s\n",
- component, state);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-send-codec-changed")) {
-+ "farstream-send-codec-changed")) {
- const GValue *value;
- FsCodec *codec;
- gchar *codec_str;
-@@ -1039,12 +1042,12 @@ gst_handle_message_element(GstBus *bus,
- codec_str = fs_codec_to_string(codec);
-
- purple_debug_info("backend-fs2",
-- "farsight-send-codec-changed: codec: %s\n",
-+ "farstream-send-codec-changed: codec: %s\n",
- codec_str);
-
- g_free(codec_str);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-codecs-changed")) {
-+ "farstream-codecs-changed")) {
- const GValue *value;
- FsSession *fssession;
- GList *sessions;
-@@ -1220,8 +1223,12 @@ stream_info_cb(PurpleMedia *media, Purpl
- purple_media_is_initiator(media, sid, name))
- return;
-
-- fs_stream_set_remote_candidates(stream->stream,
-- stream->remote_candidates, &err);
-+ if (stream->supports_add)
-+ fs_stream_add_remote_candidates(stream->stream,
-+ stream->remote_candidates, &err);
-+ else
-+ fs_stream_force_remote_candidates(stream->stream,
-+ stream->remote_candidates, &err);
-
- if (err == NULL)
- return;
-@@ -1301,6 +1308,7 @@ init_conference(PurpleMediaBackendFs2 *s
- GstElement *pipeline;
- GstBus *bus;
- gchar *name;
-+ GKeyFile *default_props;
-
- priv->conference = FS_CONFERENCE(
- gst_element_factory_make(priv->conference_type, NULL));
-@@ -1343,6 +1351,14 @@ init_conference(PurpleMediaBackendFs2 *s
- return FALSE;
- }
-
-+ default_props = fs_utils_get_default_element_properties(GST_ELEMENT(priv->conference));
-+ if (default_props != NULL) {
-+ priv->notifier = fs_element_added_notifier_new();
-+ fs_element_added_notifier_add(priv->notifier,
-+ GST_BIN(priv->confbin));
-+ fs_element_added_notifier_set_properties_from_keyfile(priv->notifier, default_props);
-+ }
-+
- g_signal_connect(G_OBJECT(bus), "message",
- G_CALLBACK(gst_bus_cb), self);
- gst_object_unref(bus);
-@@ -1559,7 +1575,7 @@ create_session(PurpleMediaBackendFs2 *se
- * receiving the src-pad-added signal.
- * Only works for non-multicast FsRtpSessions.
- */
-- if (is_nice || !strcmp(transmitter, "rawudp"))
-+ if (!!strcmp(transmitter, "multicast"))
- g_object_set(G_OBJECT(session->session),
- "no-rtcp-timeout", 0, NULL);
-
-@@ -1612,7 +1628,7 @@ create_participant(PurpleMediaBackendFs2
- GError *err = NULL;
-
- participant = fs_conference_new_participant(
-- priv->conference, name, &err);
-+ priv->conference, &err);
-
- if (err) {
- purple_debug_error("backend-fs2",
-@@ -1622,6 +1638,12 @@ create_participant(PurpleMediaBackendFs2
- return FALSE;
- }
-
-+ if (g_object_class_find_property(G_OBJECT_GET_CLASS(participant),
-+ "cname")) {
-+ g_object_set(participant, "cname", &name, NULL);
-+ }
-+
-+
- if (!priv->participants) {
- purple_debug_info("backend-fs2",
- "Creating hash table for participants\n");
-@@ -1786,6 +1808,40 @@ create_stream(PurpleMediaBackendFs2 *sel
- }
- }
-
-+
-+ session = get_session(self, sess_id);
-+
-+ if (session == NULL) {
-+ purple_debug_error("backend-fs2",
-+ "Couldn't find session to create stream.\n");
-+ return FALSE;
-+ }
-+
-+ participant = get_participant(self, who);
-+
-+ if (participant == NULL) {
-+ purple_debug_error("backend-fs2", "Couldn't find "
-+ "participant to create stream.\n");
-+ return FALSE;
-+ }
-+
-+ fsstream = fs_session_new_stream(session->session, participant,
-+ initiator == TRUE ? type_direction :
-+ (type_direction & FS_DIRECTION_RECV), &err);
-+
-+ if (fsstream == NULL) {
-+ if (err) {
-+ purple_debug_error("backend-fs2",
-+ "Error creating stream: %s\n",
-+ err && err->message ?
-+ err->message : "NULL");
-+ g_error_free(err);
-+ } else
-+ purple_debug_error("backend-fs2",
-+ "Error creating stream\n");
-+ return FALSE;
-+ }
-+
- memcpy(_params, params, sizeof(GParameter) * num_params);
-
- /* set the controlling mode parameter */
-@@ -1840,45 +1896,22 @@ create_stream(PurpleMediaBackendFs2 *sel
- _num_params++;
- }
-
-- session = get_session(self, sess_id);
-
-- if (session == NULL) {
-- purple_debug_error("backend-fs2",
-- "Couldn't find session to create stream.\n");
-- return FALSE;
-- }
--
-- participant = get_participant(self, who);
--
-- if (participant == NULL) {
-- purple_debug_error("backend-fs2", "Couldn't find "
-- "participant to create stream.\n");
-- return FALSE;
-+ if(!fs_stream_set_transmitter(fsstream, transmitter,
-+ _params, _num_params, &err)) {
-+ purple_debug_error("backend-fs2", "Could not set transmitter %s: %s.\n", transmitter, err->message);
-+ g_clear_error(&err);
-+ g_free(_params);
-+ return FALSE;
- }
--
-- fsstream = fs_session_new_stream(session->session, participant,
-- initiator == TRUE ? type_direction :
-- (type_direction & FS_DIRECTION_RECV), transmitter,
-- _num_params, _params, &err);
- g_free(_params);
-
-- if (fsstream == NULL) {
-- if (err) {
-- purple_debug_error("backend-fs2",
-- "Error creating stream: %s\n",
-- err && err->message ?
-- err->message : "NULL");
-- g_error_free(err);
-- } else
-- purple_debug_error("backend-fs2",
-- "Error creating stream\n");
-- return FALSE;
-- }
-
- stream = g_new0(PurpleMediaBackendFs2Stream, 1);
- stream->participant = g_strdup(who);
- stream->session = session;
- stream->stream = fsstream;
-+ stream->supports_add = !strcmp(transmitter, "nice");
-
- priv->streams = g_list_append(priv->streams, stream);
-
-@@ -1991,7 +2024,11 @@ purple_media_backend_fs2_add_remote_cand
- if (purple_media_is_initiator(priv->media, sess_id, participant) ||
- purple_media_accepted(
- priv->media, sess_id, participant)) {
-- fs_stream_set_remote_candidates(stream->stream,
-+ if (stream->supports_add)
-+ fs_stream_add_remote_candidates(stream->stream,
-+ stream->remote_candidates, &err);
-+ else
-+ fs_stream_force_remote_candidates(stream->stream,
- stream->remote_candidates, &err);
-
- if (err) {
-diff -upr pidgin-2.10.1.orig/libpurple/media.c pidgin-2.10.1/libpurple/media.c
---- pidgin-2.10.1.orig/libpurple/media.c 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/media.c 2012-03-10 18:21:19.000000000 +0200
-@@ -1067,7 +1067,6 @@ purple_media_add_stream(PurpleMedia *med
- {
- #ifdef USE_VV
- PurpleMediaSession *session;
-- PurpleMediaStream *stream = NULL;
-
- g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE);
-
-@@ -1103,7 +1102,7 @@ purple_media_add_stream(PurpleMedia *med
- }
-
- if (purple_media_get_stream(media, sess_id, who) == NULL) {
-- stream = purple_media_insert_stream(session, who, initiator);
-+ purple_media_insert_stream(session, who, initiator);
-
- g_signal_emit(media, purple_media_signals[STATE_CHANGED],
- 0, PURPLE_MEDIA_STATE_NEW,
-diff -upr pidgin-2.10.1.orig/libpurple/mediamanager.c pidgin-2.10.1/libpurple/mediamanager.c
---- pidgin-2.10.1.orig/libpurple/mediamanager.c 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/mediamanager.c 2012-03-10 18:27:05.000000000 +0200
-@@ -39,7 +39,7 @@
- #ifdef USE_VV
- #include <media/backend-fs2.h>
-
--#include <gst/farsight/fs-element-added-notifier.h>
-+#include <farstream/fs-element-added-notifier.h>
- #include <gst/interfaces/xoverlay.h>
-
- /** @copydoc _PurpleMediaManagerPrivate */
diff --git a/gnome-unstable/pidgin/port-to-farstream-v3.patch b/gnome-unstable/pidgin/port-to-farstream-v3.patch
deleted file mode 100644
index 93e29af50..000000000
--- a/gnome-unstable/pidgin/port-to-farstream-v3.patch
+++ /dev/null
@@ -1,447 +0,0 @@
-diff -upr pidgin-2.10.1.orig/configure.ac pidgin-2.10.1/configure.ac
---- pidgin-2.10.1.orig/configure.ac 2011-12-06 10:44:32.000000000 +0200
-+++ pidgin-2.10.1/configure.ac 2012-03-10 18:21:12.000000000 +0200
-@@ -780,18 +780,18 @@ else
- fi
-
- dnl #######################################################################
--dnl # Check for Farsight
-+dnl # Check for Farstream
- dnl #######################################################################
--AC_ARG_ENABLE(farsight,
-- [AC_HELP_STRING([--disable-farsight], [compile without farsight support])],
-- enable_farsight="$enableval", enable_farsight="yes")
--if test "x$enable_farsight" != "xno"; then
-- PKG_CHECK_MODULES(FARSIGHT, [farsight2-0.10 >= 0.0.9], [
-- AC_DEFINE(USE_FARSIGHT, 1, [Use Farsight for voice and video])
-- AC_SUBST(FARSIGHT_CFLAGS)
-- AC_SUBST(FARSIGHT_LIBS)
-+AC_ARG_ENABLE(farstream,
-+ [AC_HELP_STRING([--disable-farstream], [compile without farstream support])],
-+ enable_farstream="$enableval", enable_farstream="yes")
-+if test "x$enable_farstream" != "xno"; then
-+ PKG_CHECK_MODULES(FARSTREAM, [farstream-0.1], [
-+ AC_DEFINE(USE_FARSTREAM, 1, [Use Farstream for voice and video])
-+ AC_SUBST(FARSTREAM_CFLAGS)
-+ AC_SUBST(FARSTREAM_LIBS)
- ], [
-- enable_farsight="no"
-+ enable_farstream="no"
- ])
- fi
-
-@@ -802,20 +802,20 @@ AC_ARG_ENABLE(vv,
- [AC_HELP_STRING([--disable-vv], [compile without voice and video support])],
- enable_vv="$enableval", enable_vv="yes")
- if test "x$enable_vv" != "xno"; then
-- if test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno"; then
-+ if test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farstream" != "xno"; then
- AC_DEFINE(USE_VV, 1, [Use voice and video])
- else
- enable_vv="no"
- if test "x$force_deps" = "xyes"; then
- AC_MSG_ERROR([
- Dependencies for voice/video were not met.
--Install the necessary gstreamer and farsight packages first.
-+Install the necessary gstreamer and farstream packages first.
- Or use --disable-vv if you do not need voice/video support.
- ])
- fi
- fi
- fi
--AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farsight" != "xno")
-+AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farstream" != "xno")
-
- dnl #######################################################################
- dnl # Check for Internationalized Domain Name support
-diff -upr pidgin-2.10.1.orig/libpurple/Makefile.am pidgin-2.10.1/libpurple/Makefile.am
---- pidgin-2.10.1.orig/libpurple/Makefile.am 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/Makefile.am 2012-03-10 18:21:19.000000000 +0200
-@@ -306,7 +306,7 @@ libpurple_la_LIBADD = \
- $(LIBXML_LIBS) \
- $(NETWORKMANAGER_LIBS) \
- $(INTLLIBS) \
-- $(FARSIGHT_LIBS) \
-+ $(FARSTREAM_LIBS) \
- $(GSTREAMER_LIBS) \
- $(GSTINTERFACES_LIBS) \
- $(IDN_LIBS) \
-@@ -322,7 +322,7 @@ AM_CPPFLAGS = \
- $(DEBUG_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(LIBXML_CFLAGS) \
-- $(FARSIGHT_CFLAGS) \
-+ $(FARSTREAM_CFLAGS) \
- $(GSTREAMER_CFLAGS) \
- $(GSTINTERFACES_CFLAGS) \
- $(IDN_CFLAGS) \
-diff -upr pidgin-2.10.1.orig/libpurple/media/backend-fs2.c pidgin-2.10.1/libpurple/media/backend-fs2.c
---- pidgin-2.10.1.orig/libpurple/media/backend-fs2.c 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/media/backend-fs2.c 2012-03-10 18:21:19.000000000 +0200
-@@ -1,5 +1,5 @@
- /**
-- * @file backend-fs2.c Farsight 2 backend for media API
-+ * @file backend-fs2.c Farstream backend for media API
- * @ingroup core
- */
-
-@@ -34,8 +34,9 @@
- #include "network.h"
- #include "media-gst.h"
-
--#include <gst/farsight/fs-conference-iface.h>
--#include <gst/farsight/fs-element-added-notifier.h>
-+#include <farstream/fs-conference.h>
-+#include <farstream/fs-element-added-notifier.h>
-+#include <farstream/fs-utils.h>
-
- /** @copydoc _PurpleMediaBackendFs2Class */
- typedef struct _PurpleMediaBackendFs2Class PurpleMediaBackendFs2Class;
-@@ -112,6 +113,8 @@ struct _PurpleMediaBackendFs2Stream
- gchar *participant;
- FsStream *stream;
-
-+ gboolean supports_add;
-+
- GstElement *src;
- GstElement *tee;
- GstElement *volume;
-@@ -147,6 +150,8 @@ struct _PurpleMediaBackendFs2Private
- FsConference *conference;
- gchar *conference_type;
-
-+ FsElementAddedNotifier *notifier;
-+
- GHashTable *sessions;
- GHashTable *participants;
-
-@@ -212,6 +217,11 @@ purple_media_backend_fs2_dispose(GObject
-
- purple_debug_info("backend-fs2", "purple_media_backend_fs2_dispose\n");
-
-+ if (priv->notifier) {
-+ g_object_unref(priv->notifier);
-+ priv->notifier = NULL;
-+ }
-+
- if (priv->confbin) {
- GstElement *pipeline;
-
-@@ -846,7 +856,7 @@ gst_handle_message_element(GstBus *bus,
- priv->conference != FS_CONFERENCE(src))
- return;
-
-- if (gst_structure_has_name(msg->structure, "farsight-error")) {
-+ if (gst_structure_has_name(msg->structure, "farstream-error")) {
- FsError error_no;
- gst_structure_get_enum(msg->structure, "error-no",
- FS_TYPE_ERROR, (gint*)&error_no);
-@@ -867,16 +877,9 @@ gst_handle_message_element(GstBus *bus,
- " strict."));
- purple_media_end(priv->media, NULL, NULL);
- break;
-- case FS_ERROR_UNKNOWN_CNAME:
-- /*
-- * Unknown CName is only a problem for the
-- * multicast transmitter which isn't used.
-- * It is also deprecated.
-- */
-- break;
- default:
- purple_debug_error("backend-fs2",
-- "farsight-error: %i: %s\n",
-+ "farstream-error: %i: %s\n",
- error_no,
- gst_structure_get_string(
- msg->structure, "error-msg"));
-@@ -885,11 +888,11 @@ gst_handle_message_element(GstBus *bus,
-
- if (FS_ERROR_IS_FATAL(error_no)) {
- purple_media_error(priv->media, _("A non-recoverable "
-- "Farsight2 error has occurred."));
-+ "Farstream error has occurred."));
- purple_media_end(priv->media, NULL, NULL);
- }
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-new-local-candidate")) {
-+ "farstream-new-local-candidate")) {
- const GValue *value;
- FsStream *stream;
- FsCandidate *local_candidate;
-@@ -924,7 +927,7 @@ gst_handle_message_element(GstBus *bus,
- session->id, name, candidate);
- g_object_unref(candidate);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-local-candidates-prepared")) {
-+ "farstream-local-candidates-prepared")) {
- const GValue *value;
- FsStream *stream;
- FsParticipant *participant;
-@@ -942,7 +945,7 @@ gst_handle_message_element(GstBus *bus,
- g_signal_emit_by_name(self, "candidates-prepared",
- session->id, name);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-new-active-candidate-pair")) {
-+ "farstream-new-active-candidate-pair")) {
- const GValue *value;
- FsStream *stream;
- FsCandidate *local_candidate;
-@@ -976,7 +979,7 @@ gst_handle_message_element(GstBus *bus,
- g_object_unref(lcandidate);
- g_object_unref(rcandidate);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-recv-codecs-changed")) {
-+ "farstream-recv-codecs-changed")) {
- const GValue *value;
- GList *codecs;
- FsCodec *codec;
-@@ -986,10 +989,10 @@ gst_handle_message_element(GstBus *bus,
- codec = codecs->data;
-
- purple_debug_info("backend-fs2",
-- "farsight-recv-codecs-changed: %s\n",
-+ "farstream-recv-codecs-changed: %s\n",
- codec->encoding_name);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-component-state-changed")) {
-+ "farstream-component-state-changed")) {
- const GValue *value;
- FsStreamState fsstate;
- guint component;
-@@ -1025,11 +1028,11 @@ gst_handle_message_element(GstBus *bus,
- }
-
- purple_debug_info("backend-fs2",
-- "farsight-component-state-changed: "
-+ "farstream-component-state-changed: "
- "component: %u state: %s\n",
- component, state);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-send-codec-changed")) {
-+ "farstream-send-codec-changed")) {
- const GValue *value;
- FsCodec *codec;
- gchar *codec_str;
-@@ -1039,12 +1042,12 @@ gst_handle_message_element(GstBus *bus,
- codec_str = fs_codec_to_string(codec);
-
- purple_debug_info("backend-fs2",
-- "farsight-send-codec-changed: codec: %s\n",
-+ "farstream-send-codec-changed: codec: %s\n",
- codec_str);
-
- g_free(codec_str);
- } else if (gst_structure_has_name(msg->structure,
-- "farsight-codecs-changed")) {
-+ "farstream-codecs-changed")) {
- const GValue *value;
- FsSession *fssession;
- GList *sessions;
-@@ -1220,8 +1223,12 @@ stream_info_cb(PurpleMedia *media, Purpl
- purple_media_is_initiator(media, sid, name))
- return;
-
-- fs_stream_set_remote_candidates(stream->stream,
-- stream->remote_candidates, &err);
-+ if (stream->supports_add)
-+ fs_stream_add_remote_candidates(stream->stream,
-+ stream->remote_candidates, &err);
-+ else
-+ fs_stream_force_remote_candidates(stream->stream,
-+ stream->remote_candidates, &err);
-
- if (err == NULL)
- return;
-@@ -1301,6 +1308,7 @@ init_conference(PurpleMediaBackendFs2 *s
- GstElement *pipeline;
- GstBus *bus;
- gchar *name;
-+ GKeyFile *default_props;
-
- priv->conference = FS_CONFERENCE(
- gst_element_factory_make(priv->conference_type, NULL));
-@@ -1343,6 +1351,14 @@ init_conference(PurpleMediaBackendFs2 *s
- return FALSE;
- }
-
-+ default_props = fs_utils_get_default_element_properties(GST_ELEMENT(priv->conference));
-+ if (default_props != NULL) {
-+ priv->notifier = fs_element_added_notifier_new();
-+ fs_element_added_notifier_add(priv->notifier,
-+ GST_BIN(priv->confbin));
-+ fs_element_added_notifier_set_properties_from_keyfile(priv->notifier, default_props);
-+ }
-+
- g_signal_connect(G_OBJECT(bus), "message",
- G_CALLBACK(gst_bus_cb), self);
- gst_object_unref(bus);
-@@ -1559,7 +1575,7 @@ create_session(PurpleMediaBackendFs2 *se
- * receiving the src-pad-added signal.
- * Only works for non-multicast FsRtpSessions.
- */
-- if (is_nice || !strcmp(transmitter, "rawudp"))
-+ if (!!strcmp(transmitter, "multicast"))
- g_object_set(G_OBJECT(session->session),
- "no-rtcp-timeout", 0, NULL);
-
-@@ -1612,7 +1628,7 @@ create_participant(PurpleMediaBackendFs2
- GError *err = NULL;
-
- participant = fs_conference_new_participant(
-- priv->conference, name, &err);
-+ priv->conference, &err);
-
- if (err) {
- purple_debug_error("backend-fs2",
-@@ -1622,6 +1638,12 @@ create_participant(PurpleMediaBackendFs2
- return FALSE;
- }
-
-+ if (g_object_class_find_property(G_OBJECT_GET_CLASS(participant),
-+ "cname")) {
-+ g_object_set(participant, "cname", name, NULL);
-+ }
-+
-+
- if (!priv->participants) {
- purple_debug_info("backend-fs2",
- "Creating hash table for participants\n");
-@@ -1786,6 +1808,40 @@ create_stream(PurpleMediaBackendFs2 *sel
- }
- }
-
-+
-+ session = get_session(self, sess_id);
-+
-+ if (session == NULL) {
-+ purple_debug_error("backend-fs2",
-+ "Couldn't find session to create stream.\n");
-+ return FALSE;
-+ }
-+
-+ participant = get_participant(self, who);
-+
-+ if (participant == NULL) {
-+ purple_debug_error("backend-fs2", "Couldn't find "
-+ "participant to create stream.\n");
-+ return FALSE;
-+ }
-+
-+ fsstream = fs_session_new_stream(session->session, participant,
-+ initiator == TRUE ? type_direction :
-+ (type_direction & FS_DIRECTION_RECV), &err);
-+
-+ if (fsstream == NULL) {
-+ if (err) {
-+ purple_debug_error("backend-fs2",
-+ "Error creating stream: %s\n",
-+ err && err->message ?
-+ err->message : "NULL");
-+ g_error_free(err);
-+ } else
-+ purple_debug_error("backend-fs2",
-+ "Error creating stream\n");
-+ return FALSE;
-+ }
-+
- memcpy(_params, params, sizeof(GParameter) * num_params);
-
- /* set the controlling mode parameter */
-@@ -1840,45 +1896,22 @@ create_stream(PurpleMediaBackendFs2 *sel
- _num_params++;
- }
-
-- session = get_session(self, sess_id);
-
-- if (session == NULL) {
-- purple_debug_error("backend-fs2",
-- "Couldn't find session to create stream.\n");
-- return FALSE;
-- }
--
-- participant = get_participant(self, who);
--
-- if (participant == NULL) {
-- purple_debug_error("backend-fs2", "Couldn't find "
-- "participant to create stream.\n");
-- return FALSE;
-+ if(!fs_stream_set_transmitter(fsstream, transmitter,
-+ _params, _num_params, &err)) {
-+ purple_debug_error("backend-fs2", "Could not set transmitter %s: %s.\n", transmitter, err->message);
-+ g_clear_error(&err);
-+ g_free(_params);
-+ return FALSE;
- }
--
-- fsstream = fs_session_new_stream(session->session, participant,
-- initiator == TRUE ? type_direction :
-- (type_direction & FS_DIRECTION_RECV), transmitter,
-- _num_params, _params, &err);
- g_free(_params);
-
-- if (fsstream == NULL) {
-- if (err) {
-- purple_debug_error("backend-fs2",
-- "Error creating stream: %s\n",
-- err && err->message ?
-- err->message : "NULL");
-- g_error_free(err);
-- } else
-- purple_debug_error("backend-fs2",
-- "Error creating stream\n");
-- return FALSE;
-- }
-
- stream = g_new0(PurpleMediaBackendFs2Stream, 1);
- stream->participant = g_strdup(who);
- stream->session = session;
- stream->stream = fsstream;
-+ stream->supports_add = !strcmp(transmitter, "nice");
-
- priv->streams = g_list_append(priv->streams, stream);
-
-@@ -1991,7 +2024,11 @@ purple_media_backend_fs2_add_remote_cand
- if (purple_media_is_initiator(priv->media, sess_id, participant) ||
- purple_media_accepted(
- priv->media, sess_id, participant)) {
-- fs_stream_set_remote_candidates(stream->stream,
-+ if (stream->supports_add)
-+ fs_stream_add_remote_candidates(stream->stream,
-+ stream->remote_candidates, &err);
-+ else
-+ fs_stream_force_remote_candidates(stream->stream,
- stream->remote_candidates, &err);
-
- if (err) {
-diff -upr pidgin-2.10.1.orig/libpurple/media.c pidgin-2.10.1/libpurple/media.c
---- pidgin-2.10.1.orig/libpurple/media.c 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/media.c 2012-03-10 18:21:19.000000000 +0200
-@@ -1067,7 +1067,6 @@ purple_media_add_stream(PurpleMedia *med
- {
- #ifdef USE_VV
- PurpleMediaSession *session;
-- PurpleMediaStream *stream = NULL;
-
- g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE);
-
-@@ -1103,7 +1102,7 @@ purple_media_add_stream(PurpleMedia *med
- }
-
- if (purple_media_get_stream(media, sess_id, who) == NULL) {
-- stream = purple_media_insert_stream(session, who, initiator);
-+ purple_media_insert_stream(session, who, initiator);
-
- g_signal_emit(media, purple_media_signals[STATE_CHANGED],
- 0, PURPLE_MEDIA_STATE_NEW,
-diff -upr pidgin-2.10.1.orig/libpurple/mediamanager.c pidgin-2.10.1/libpurple/mediamanager.c
---- pidgin-2.10.1.orig/libpurple/mediamanager.c 2011-12-06 10:44:33.000000000 +0200
-+++ pidgin-2.10.1/libpurple/mediamanager.c 2012-03-10 18:27:05.000000000 +0200
-@@ -39,7 +39,7 @@
- #ifdef USE_VV
- #include <media/backend-fs2.h>
-
--#include <gst/farsight/fs-element-added-notifier.h>
-+#include <farstream/fs-element-added-notifier.h>
- #include <gst/interfaces/xoverlay.h>
-
- /** @copydoc _PurpleMediaManagerPrivate */