From 15577b845f9cbeb46156b5b7e8718a19432a9ca2 Mon Sep 17 00:00:00 2001 From: piernov Date: Mon, 9 Apr 2012 16:52:40 +0200 Subject: pidgin 2.10.3-1 màj port MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pidgin/.footprint.i686 | 12 +- pidgin/.footprint.x86_64 | 12 +- pidgin/.md5sum.i686 | 4 +- pidgin/.md5sum.x86_64 | 4 +- pidgin/Pkgfile | 8 +- pidgin/port-to-farstream-rlaager-v1.patch | 666 ++++++++++++++++++++++++++++++ pidgin/port-to-farstream-v3.patch | 447 -------------------- 7 files changed, 686 insertions(+), 467 deletions(-) create mode 100644 pidgin/port-to-farstream-rlaager-v1.patch delete mode 100644 pidgin/port-to-farstream-v3.patch (limited to 'pidgin') diff --git a/pidgin/.footprint.i686 b/pidgin/.footprint.i686 index da31b0fa4..c2328f0b3 100644 --- a/pidgin/.footprint.i686 +++ b/pidgin/.footprint.i686 @@ -209,13 +209,13 @@ lrwxrwxrwx root/root usr/lib/libgnt.so -> libgnt.so.0.0.0 lrwxrwxrwx root/root usr/lib/libgnt.so.0 -> libgnt.so.0.0.0 -rwxr-xr-x root/root usr/lib/libgnt.so.0.0.0 -rwxr-xr-x root/root usr/lib/libpurple-client.la -lrwxrwxrwx root/root usr/lib/libpurple-client.so -> libpurple-client.so.0.10.2 -lrwxrwxrwx root/root usr/lib/libpurple-client.so.0 -> libpurple-client.so.0.10.2 --rwxr-xr-x root/root usr/lib/libpurple-client.so.0.10.2 +lrwxrwxrwx root/root usr/lib/libpurple-client.so -> libpurple-client.so.0.10.3 +lrwxrwxrwx root/root usr/lib/libpurple-client.so.0 -> libpurple-client.so.0.10.3 +-rwxr-xr-x root/root usr/lib/libpurple-client.so.0.10.3 -rwxr-xr-x root/root usr/lib/libpurple.la -lrwxrwxrwx root/root usr/lib/libpurple.so -> libpurple.so.0.10.2 -lrwxrwxrwx root/root usr/lib/libpurple.so.0 -> libpurple.so.0.10.2 --rwxr-xr-x root/root usr/lib/libpurple.so.0.10.2 +lrwxrwxrwx root/root usr/lib/libpurple.so -> libpurple.so.0.10.3 +lrwxrwxrwx root/root usr/lib/libpurple.so.0 -> libpurple.so.0.10.3 +-rwxr-xr-x root/root usr/lib/libpurple.so.0.10.3 drwxr-xr-x root/root usr/lib/perl5/ drwxr-xr-x root/root usr/lib/perl5/i686-linux-thread-multi/ -rw-r--r-- root/root usr/lib/perl5/i686-linux-thread-multi/perllocal.pod diff --git a/pidgin/.footprint.x86_64 b/pidgin/.footprint.x86_64 index da31b0fa4..c2328f0b3 100644 --- a/pidgin/.footprint.x86_64 +++ b/pidgin/.footprint.x86_64 @@ -209,13 +209,13 @@ lrwxrwxrwx root/root usr/lib/libgnt.so -> libgnt.so.0.0.0 lrwxrwxrwx root/root usr/lib/libgnt.so.0 -> libgnt.so.0.0.0 -rwxr-xr-x root/root usr/lib/libgnt.so.0.0.0 -rwxr-xr-x root/root usr/lib/libpurple-client.la -lrwxrwxrwx root/root usr/lib/libpurple-client.so -> libpurple-client.so.0.10.2 -lrwxrwxrwx root/root usr/lib/libpurple-client.so.0 -> libpurple-client.so.0.10.2 --rwxr-xr-x root/root usr/lib/libpurple-client.so.0.10.2 +lrwxrwxrwx root/root usr/lib/libpurple-client.so -> libpurple-client.so.0.10.3 +lrwxrwxrwx root/root usr/lib/libpurple-client.so.0 -> libpurple-client.so.0.10.3 +-rwxr-xr-x root/root usr/lib/libpurple-client.so.0.10.3 -rwxr-xr-x root/root usr/lib/libpurple.la -lrwxrwxrwx root/root usr/lib/libpurple.so -> libpurple.so.0.10.2 -lrwxrwxrwx root/root usr/lib/libpurple.so.0 -> libpurple.so.0.10.2 --rwxr-xr-x root/root usr/lib/libpurple.so.0.10.2 +lrwxrwxrwx root/root usr/lib/libpurple.so -> libpurple.so.0.10.3 +lrwxrwxrwx root/root usr/lib/libpurple.so.0 -> libpurple.so.0.10.3 +-rwxr-xr-x root/root usr/lib/libpurple.so.0.10.3 drwxr-xr-x root/root usr/lib/perl5/ drwxr-xr-x root/root usr/lib/perl5/i686-linux-thread-multi/ -rw-r--r-- root/root usr/lib/perl5/i686-linux-thread-multi/perllocal.pod diff --git a/pidgin/.md5sum.i686 b/pidgin/.md5sum.i686 index ef34d7d94..3ec31f809 100644 --- a/pidgin/.md5sum.i686 +++ b/pidgin/.md5sum.i686 @@ -1,2 +1,2 @@ -f2b210f2562865d870f193ff1fe8ea75 pidgin-2.10.2.tar.bz2 -096df49da643fcee15dc1d521c93fb19 port-to-farstream-v3.patch +c2f799d45a934a2f0075e32ce49906e6 pidgin-2.10.3.tar.bz2 +b5b85f95ab7eae271a375b50c7a1ac28 port-to-farstream-rlaager-v1.patch diff --git a/pidgin/.md5sum.x86_64 b/pidgin/.md5sum.x86_64 index ef34d7d94..3ec31f809 100644 --- a/pidgin/.md5sum.x86_64 +++ b/pidgin/.md5sum.x86_64 @@ -1,2 +1,2 @@ -f2b210f2562865d870f193ff1fe8ea75 pidgin-2.10.2.tar.bz2 -096df49da643fcee15dc1d521c93fb19 port-to-farstream-v3.patch +c2f799d45a934a2f0075e32ce49906e6 pidgin-2.10.3.tar.bz2 +b5b85f95ab7eae271a375b50c7a1ac28 port-to-farstream-rlaager-v1.patch diff --git a/pidgin/Pkgfile b/pidgin/Pkgfile index 8fbb6d6bc..f815940e5 100644 --- a/pidgin/Pkgfile +++ b/pidgin/Pkgfile @@ -6,14 +6,14 @@ # Run on: gtkspell,gtk,libxml2,gnutls,nss,nspr,xorg-libxscrnsaver,gstreamer,startup-notification,hicolor-icon-theme,libidn,farstream,dbus name=pidgin -version=2.10.2 -release=2 +version=2.10.3 +release=1 source=(http://downloads.sourceforge.net/$name/$name-$version.tar.bz2 - port-to-farstream-v3.patch ) + port-to-farstream-rlaager-v1.patch ) build() { cd $name-$version - patch -p1 < ../port-to-farstream-v3.patch + patch -p0 < ../port-to-farstream-rlaager-v1.patch autoreconf -if sed -i "s#env python#env python2#" */plugins/*.py sed -i "s#env python#env python2#" libpurple/purple-{remote,notifications-example,url-handler} diff --git a/pidgin/port-to-farstream-rlaager-v1.patch b/pidgin/port-to-farstream-rlaager-v1.patch new file mode 100644 index 000000000..81ec34bcf --- /dev/null +++ b/pidgin/port-to-farstream-rlaager-v1.patch @@ -0,0 +1,666 @@ +# +# old_revision [c5b3879b829a5067b2189e4393ca3b80f6fd96c3] +# +# patch "COPYRIGHT" +# from [ac32c81db327a1c5a9d1e57c06ed3ca5337b374f] +# to [8fdcebf3bcde1d3e484b4fbebc144e37719a4b65] +# +# patch "configure.ac" +# from [b5155d791d3bfc938939d529453e5b327c518dea] +# to [2a9cd757a9f1a8ab095ffe87be3c2d71cb193632] +# +# patch "libpurple/Makefile.am" +# from [98a11dd7e6b174ca919fa4734c900904af94e91b] +# to [3d58790ace97b844146ebf7492a0ed705c209788] +# +# patch "libpurple/media/backend-fs2.c" +# from [14baabde9d85c5db0c5b002a41707439a1afd834] +# to [40cd232d21c4a803fd38727fb2bdf7420433418f] +# +# patch "libpurple/media.c" +# from [b6d7130f18c1bd96f12516b0eb35344457c5b447] +# to [1934c80d30a14fa9f719fc5f71caea49fb54d69d] +# +# patch "libpurple/mediamanager.c" +# from [1e55c322fe59eb10d19628c4c44757ea404ba23b] +# to [0a57c7b39ee3f9a34bbb11a5722ecc7e3c70dbdd] +# +============================================================ +--- COPYRIGHT ac32c81db327a1c5a9d1e57c06ed3ca5337b374f ++++ COPYRIGHT 8fdcebf3bcde1d3e484b4fbebc144e37719a4b65 +@@ -128,6 +128,7 @@ Jeramey Crawford + Adam Cowell + Palmer Cox + Jeramey Crawford ++Olivier Crete + Michael Culbertson + Steven Danna + Simon Danner +============================================================ +--- configure.ac b5155d791d3bfc938939d529453e5b327c518dea ++++ configure.ac 2a9cd757a9f1a8ab095ffe87be3c2d71cb193632 +@@ -786,20 +786,26 @@ dnl #################################### + 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) +- ], [ +- enable_farsight="no" +- ]) +-fi ++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_SUBST(FARSTREAM_CFLAGS) ++ AC_SUBST(FARSTREAM_LIBS) ++ ], [ ++ # Try farsight. ++ PKG_CHECK_MODULES(FARSTREAM, [farsight2-0.10 >= 0.0.9], [ ++ AC_DEFINE(HAVE_FARSIGHT, 1, [Use Farsight instead of Farstream]) ++ AC_SUBST(FARSTREAM_CFLAGS) ++ AC_SUBST(FARSTREAM_LIBS) ++ ], [ ++ enable_farstream="no" ++ ]) ++ ]) ++ fi + + dnl ####################################################################### + dnl # Check for Voice and Video support +@@ -808,20 +814,20 @@ if test "x$enable_vv" != "xno"; then + [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 +============================================================ +--- libpurple/Makefile.am 98a11dd7e6b174ca919fa4734c900904af94e91b ++++ libpurple/Makefile.am 3d58790ace97b844146ebf7492a0ed705c209788 +@@ -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) \ +============================================================ +--- libpurple/media/backend-fs2.c 14baabde9d85c5db0c5b002a41707439a1afd834 ++++ libpurple/media/backend-fs2.c 40cd232d21c4a803fd38727fb2bdf7420433418f +@@ -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,14 @@ + #include "network.h" + #include "media-gst.h" + ++#ifdef HAVE_FARSIGHT + #include + #include ++#else ++#include ++#include ++#include ++#endif + + /** @copydoc _PurpleMediaBackendFs2Class */ + typedef struct _PurpleMediaBackendFs2Class PurpleMediaBackendFs2Class; +@@ -112,6 +118,10 @@ struct _PurpleMediaBackendFs2Stream + gchar *participant; + FsStream *stream; + ++#ifndef HAVE_FARSIGHT ++ gboolean supports_add; ++#endif ++ + GstElement *src; + GstElement *tee; + GstElement *volume; +@@ -147,6 +157,10 @@ struct _PurpleMediaBackendFs2Private + FsConference *conference; + gchar *conference_type; + ++#ifndef HAVE_FARSIGHT ++ FsElementAddedNotifier *notifier; ++#endif ++ + GHashTable *sessions; + GHashTable *participants; + +@@ -212,6 +226,13 @@ purple_media_backend_fs2_dispose(GObject + + purple_debug_info("backend-fs2", "purple_media_backend_fs2_dispose\n"); + ++#ifndef HAVE_FARSIGHT ++ if (priv->notifier) { ++ g_object_unref(priv->notifier); ++ priv->notifier = NULL; ++ } ++#endif ++ + if (priv->confbin) { + GstElement *pipeline; + +@@ -846,7 +867,11 @@ gst_handle_message_element(GstBus *bus, + priv->conference != FS_CONFERENCE(src)) + return; + ++#ifdef HAVE_FARSIGHT + if (gst_structure_has_name(msg->structure, "farsight-error")) { ++#else ++ if (gst_structure_has_name(msg->structure, "farstream-error")) { ++#endif + FsError error_no; + gst_structure_get_enum(msg->structure, "error-no", + FS_TYPE_ERROR, (gint*)&error_no); +@@ -859,6 +884,7 @@ gst_handle_message_element(GstBus *bus, + " packages.")); + purple_media_end(priv->media, NULL, NULL); + break; ++#ifdef HAVE_FARSIGHT + case FS_ERROR_NO_CODECS_LEFT: + purple_media_error(priv->media, _("No codecs" + " left. Your codec" +@@ -868,28 +894,42 @@ gst_handle_message_element(GstBus *bus, + 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. +- */ ++ /* ++ * Unknown CName is only a problem for the ++ * multicast transmitter which isn't used. ++ * It is also deprecated. ++ */ + break; ++#endif + default: + purple_debug_error("backend-fs2", ++#ifdef HAVE_FARSIGHT + "farsight-error: %i: %s\n", ++#else ++ "farstream-error: %i: %s\n", ++#endif + error_no, +- gst_structure_get_string( ++ gst_structure_get_string( + msg->structure, "error-msg")); + break; + } + + if (FS_ERROR_IS_FATAL(error_no)) { ++#ifdef HAVE_FARSIGHT + purple_media_error(priv->media, _("A non-recoverable " + "Farsight2 error has occurred.")); ++#else ++ purple_media_error(priv->media, _("A non-recoverable " ++ "Farstream error has occurred.")); ++#endif + purple_media_end(priv->media, NULL, NULL); + } + } else if (gst_structure_has_name(msg->structure, ++#ifdef HAVE_FARSIGHT + "farsight-new-local-candidate")) { ++#else ++ "farstream-new-local-candidate")) { ++#endif + const GValue *value; + FsStream *stream; + FsCandidate *local_candidate; +@@ -924,7 +964,11 @@ gst_handle_message_element(GstBus *bus, + session->id, name, candidate); + g_object_unref(candidate); + } else if (gst_structure_has_name(msg->structure, ++#ifdef HAVE_FARSIGHT + "farsight-local-candidates-prepared")) { ++#else ++ "farstream-local-candidates-prepared")) { ++#endif + const GValue *value; + FsStream *stream; + FsParticipant *participant; +@@ -942,7 +986,11 @@ 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, ++#ifdef HAVE_FARSIGHT + "farsight-new-active-candidate-pair")) { ++#else ++ "farstream-new-active-candidate-pair")) { ++#endif + const GValue *value; + FsStream *stream; + FsCandidate *local_candidate; +@@ -976,7 +1024,11 @@ gst_handle_message_element(GstBus *bus, + g_object_unref(lcandidate); + g_object_unref(rcandidate); + } else if (gst_structure_has_name(msg->structure, ++#ifdef HAVE_FARSIGHT + "farsight-recv-codecs-changed")) { ++#else ++ "farstream-recv-codecs-changed")) { ++#endif + const GValue *value; + GList *codecs; + FsCodec *codec; +@@ -986,10 +1038,18 @@ gst_handle_message_element(GstBus *bus, + codec = codecs->data; + + purple_debug_info("backend-fs2", ++#ifdef HAVE_FARSIGHT + "farsight-recv-codecs-changed: %s\n", ++#else ++ "farstream-recv-codecs-changed: %s\n", ++#endif + codec->encoding_name); + } else if (gst_structure_has_name(msg->structure, ++#ifdef HAVE_FARSIGHT + "farsight-component-state-changed")) { ++#else ++ "farstream-component-state-changed")) { ++#endif + const GValue *value; + FsStreamState fsstate; + guint component; +@@ -1025,11 +1085,19 @@ gst_handle_message_element(GstBus *bus, + } + + purple_debug_info("backend-fs2", ++#ifdef HAVE_FARSIGHT + "farsight-component-state-changed: " ++#else ++ "farstream-component-state-changed: " ++#endif + "component: %u state: %s\n", + component, state); + } else if (gst_structure_has_name(msg->structure, ++#ifdef HAVE_FARSIGHT + "farsight-send-codec-changed")) { ++#else ++ "farstream-send-codec-changed")) { ++#endif + const GValue *value; + FsCodec *codec; + gchar *codec_str; +@@ -1039,12 +1107,20 @@ gst_handle_message_element(GstBus *bus, + codec_str = fs_codec_to_string(codec); + + purple_debug_info("backend-fs2", ++#ifdef HAVE_FARSIGHT + "farsight-send-codec-changed: codec: %s\n", ++#else ++ "farstream-send-codec-changed: codec: %s\n", ++#endif + codec_str); + + g_free(codec_str); + } else if (gst_structure_has_name(msg->structure, ++#ifdef HAVE_FARSIGHT + "farsight-codecs-changed")) { ++#else ++ "farstream-codecs-changed")) { ++#endif + const GValue *value; + FsSession *fssession; + GList *sessions; +@@ -1220,8 +1296,17 @@ stream_info_cb(PurpleMedia *media, Purpl + purple_media_is_initiator(media, sid, name)) + return; + ++#ifdef HAVE_FARSIGHT + fs_stream_set_remote_candidates(stream->stream, + stream->remote_candidates, &err); ++#else ++ 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); ++#endif + + if (err == NULL) + return; +@@ -1301,6 +1386,9 @@ init_conference(PurpleMediaBackendFs2 *s + GstElement *pipeline; + GstBus *bus; + gchar *name; ++#ifndef HAVE_FARSIGHT ++ GKeyFile *default_props; ++#endif + + priv->conference = FS_CONFERENCE( + gst_element_factory_make(priv->conference_type, NULL)); +@@ -1343,6 +1431,16 @@ init_conference(PurpleMediaBackendFs2 *s + return FALSE; + } + ++#ifndef HAVE_FARSIGHT ++ 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); ++ } ++#endif ++ + g_signal_connect(G_OBJECT(bus), "message", + G_CALLBACK(gst_bus_cb), self); + gst_object_unref(bus); +@@ -1559,7 +1657,11 @@ create_session(PurpleMediaBackendFs2 *se + * receiving the src-pad-added signal. + * Only works for non-multicast FsRtpSessions. + */ ++#ifdef HAVE_FARSIGHT + if (is_nice || !strcmp(transmitter, "rawudp")) ++#else ++ if (!!strcmp(transmitter, "multicast")) ++#endif + g_object_set(G_OBJECT(session->session), + "no-rtcp-timeout", 0, NULL); + +@@ -1612,7 +1714,11 @@ create_participant(PurpleMediaBackendFs2 + GError *err = NULL; + + participant = fs_conference_new_participant( ++#ifdef HAVE_FARSIGHT + priv->conference, name, &err); ++#else ++ priv->conference, &err); ++#endif + + if (err) { + purple_debug_error("backend-fs2", +@@ -1622,6 +1728,13 @@ create_participant(PurpleMediaBackendFs2 + return FALSE; + } + ++#ifndef HAVE_FARSIGHT ++ if (g_object_class_find_property(G_OBJECT_GET_CLASS(participant), ++ "cname")) { ++ g_object_set(participant, "cname", name, NULL); ++ } ++#endif ++ + if (!priv->participants) { + purple_debug_info("backend-fs2", + "Creating hash table for participants\n"); +@@ -1739,7 +1852,7 @@ append_relay_info(GValueArray *relay_inf + "port", G_TYPE_UINT, port, + "username", G_TYPE_STRING, username, + "password", G_TYPE_STRING, password, +- "relay-type", G_TYPE_STRING, type, ++ "relay-type", G_TYPE_STRING, type, + NULL); + + if (turn_setup) { +@@ -1767,7 +1880,7 @@ create_stream(PurpleMediaBackendFs2 *sel + const gchar *stun_ip = purple_network_get_stun_ip(); + const gchar *turn_ip = purple_network_get_turn_ip(); + guint _num_params = num_params; +- GParameter *_params = g_new0(GParameter, num_params + 3); ++ GParameter *_params; + FsStreamDirection type_direction = + session_type_to_fs_stream_direction(type); + PurpleMediaBackendFs2Session *session; +@@ -1779,6 +1892,41 @@ create_stream(PurpleMediaBackendFs2 *sel + gboolean got_turn_from_prpl = FALSE; + int i; + ++ 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; ++ } ++ ++#ifndef HAVE_FARSIGHT ++ 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; ++ } ++#endif ++ + for (i = 0 ; i < num_params ; i++) { + if (purple_strequal(params[i].name, "relay-info")) { + got_turn_from_prpl = TRUE; +@@ -1786,6 +1934,7 @@ create_stream(PurpleMediaBackendFs2 *sel + } + } + ++ _params = g_new0(GParameter, num_params + 3); + memcpy(_params, params, sizeof(GParameter) * num_params); + + /* set the controlling mode parameter */ +@@ -1840,22 +1989,7 @@ 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; +- } +- ++#ifdef HAVE_FARSIGHT + fsstream = fs_session_new_stream(session->session, participant, + initiator == TRUE ? type_direction : + (type_direction & FS_DIRECTION_RECV), transmitter, +@@ -1874,11 +2008,26 @@ create_stream(PurpleMediaBackendFs2 *sel + "Error creating stream\n"); + return FALSE; + } ++#else ++ 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; ++ } ++ g_free(_params); ++#endif + + stream = g_new0(PurpleMediaBackendFs2Stream, 1); + stream->participant = g_strdup(who); + stream->session = session; + stream->stream = fsstream; ++#ifndef HAVE_FARSTREAM ++ stream->supports_add = !strcmp(transmitter, "nice"); ++#endif + + priv->streams = g_list_append(priv->streams, stream); + +@@ -1991,8 +2140,17 @@ 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)) { ++#ifdef HAVE_FARSIGHT + fs_stream_set_remote_candidates(stream->stream, + stream->remote_candidates, &err); ++#else ++ 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); ++#endif + + if (err) { + purple_debug_error("backend-fs2", "Error adding remote" +@@ -2021,25 +2179,50 @@ purple_media_backend_fs2_codecs_ready(Pu + return FALSE; + + if (session->type & (PURPLE_MEDIA_SEND_AUDIO | +- PURPLE_MEDIA_SEND_VIDEO)) ++ PURPLE_MEDIA_SEND_VIDEO)) { ++#ifdef HAVE_FARSIGHT + g_object_get(session->session, +- "codecs-ready", &ret, NULL); +- else ++ "codecs-ready", &ret, NULL); ++#else ++ GList *codecs = NULL; ++ ++ g_object_get(session->session, ++ "codecs", &codecs, NULL); ++ if (codecs) { ++ fs_codec_list_destroy (codecs); ++ ret = TRUE; ++ } ++#endif ++ } else + ret = TRUE; + } else { + GList *values = g_hash_table_get_values(priv->sessions); + + for (; values; values = g_list_delete_link(values, values)) { + PurpleMediaBackendFs2Session *session = values->data; ++ + if (session->type & (PURPLE_MEDIA_SEND_AUDIO | +- PURPLE_MEDIA_SEND_VIDEO)) ++ PURPLE_MEDIA_SEND_VIDEO)) { ++#ifdef HAVE_FARSIGHT + g_object_get(session->session, + "codecs-ready", &ret, NULL); +- else ++ if (ret == FALSE) ++ break; ++#else ++ GList *codecs = NULL; ++ ++ g_object_get(session->session, ++ "codecs", &codecs, NULL); ++ if (codecs) { ++ fs_codec_list_destroy (codecs); ++ ret = TRUE; ++ } else { ++ ret = FALSE; ++ break; ++ } ++#endif ++ } else + ret = TRUE; +- +- if (ret == FALSE) +- break; + } + + if (values != NULL) +============================================================ +--- libpurple/media.c b6d7130f18c1bd96f12516b0eb35344457c5b447 ++++ libpurple/media.c 1934c80d30a14fa9f719fc5f71caea49fb54d69d +@@ -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, +============================================================ +--- libpurple/mediamanager.c 1e55c322fe59eb10d19628c4c44757ea404ba23b ++++ libpurple/mediamanager.c 0a57c7b39ee3f9a34bbb11a5722ecc7e3c70dbdd +@@ -39,7 +39,11 @@ + #ifdef USE_VV + #include + ++#ifdef HAVE_FARSIGHT + #include ++#else ++#include ++#endif + #include + + /** @copydoc _PurpleMediaManagerPrivate */ diff --git a/pidgin/port-to-farstream-v3.patch b/pidgin/port-to-farstream-v3.patch deleted file mode 100644 index c922f4110..000000000 --- a/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 -@@ -786,18 +786,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 - -@@ -808,20 +808,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 --#include -+#include -+#include -+#include - - /** @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 - --#include -+#include - #include - - /** @copydoc _PurpleMediaManagerPrivate */ -- cgit v1.2.3-54-g00ecf