code:
# HG changeset patch
# User Youness Alaoui <kakaroto@kakaroto.homelinux.net>
# Date 1404764862 14400
# Node ID d729a9b2126594df3e38647e926ac7c0a7db807b
# Parent  7767aaeade6404396204794f9bc75d9a2cb723f0
Add Private media API

Creating a private media can be useful for plugins that want to create a
PurpleMedia for internal use without the front-end being notified of its
creation.

diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
--- a/libpurple/mediamanager.c
+++ b/libpurple/mediamanager.c
@@ -86,6 +86,7 @@
 	GstElement *pipeline;
 	PurpleMediaCaps ui_caps;
 	GList *medias;
+	GList *private_medias;
 	GList *elements;
 	GList *output_windows;
 	gulong next_output_window_id;
@@ -111,6 +112,7 @@

 enum {
 	INIT_MEDIA,
+	INIT_PRIVATE_MEDIA,
 	UI_CAPS_CHANGED,
 	LAST_SIGNAL
 };
@@ -161,6 +163,15 @@
 		G_TYPE_BOOLEAN, 3, PURPLE_TYPE_MEDIA,
 		G_TYPE_POINTER, G_TYPE_STRING);

+	purple_media_manager_signals[INIT_PRIVATE_MEDIA] =
+		g_signal_new ("init-private-media",
+			G_TYPE_FROM_CLASS (klass),
+			G_SIGNAL_RUN_LAST,
+			0, NULL, NULL,
+			purple_smarshal_BOOLEAN__OBJECT_POINTER_STRING,
+			G_TYPE_BOOLEAN, 3, PURPLE_TYPE_MEDIA,
+			G_TYPE_POINTER, G_TYPE_STRING);
+
 	purple_media_manager_signals[UI_CAPS_CHANGED] = g_signal_new ("ui-caps-changed",
 		G_TYPE_FROM_CLASS (klass),
 		G_SIGNAL_RUN_LAST,
@@ -177,6 +188,7 @@
 {
 	media->priv = PURPLE_MEDIA_MANAGER_GET_PRIVATE(media);
 	media->priv->medias = NULL;
+	media->priv->private_medias = NULL;
 	media->priv->next_output_window_id = 1;
 #ifdef USE_VV
 	media->priv->backend_type = PURPLE_TYPE_MEDIA_BACKEND_FS2;
@@ -198,6 +210,10 @@
 			g_list_delete_link(priv->medias, priv->medias)) {
 		g_object_unref(priv->medias->data);
 	}
+	for (; priv->private_medias; priv->private_medias =
+			g_list_delete_link(priv->private_medias, priv->private_medias)) {
+		g_object_unref(priv->private_medias->data);
+	}
 	for (; priv->elements; priv->elements =
 			g_list_delete_link(priv->elements, priv->elements)) {
 		g_object_unref(priv->elements->data);
@@ -325,12 +341,13 @@
 }
 #endif /* USE_GSTREAMER */

-PurpleMedia *
-purple_media_manager_create_media(PurpleMediaManager *manager,
-				  PurpleAccount *account,
-				  const char *conference_type,
-				  const char *remote_user,
-				  gboolean initiator)
+static PurpleMedia *
+create_media(PurpleMediaManager *manager,
+			  PurpleAccount *account,
+			  const char *conference_type,
+			  const char *remote_user,
+			  gboolean initiator,
+			  gboolean private)
 {
 #ifdef USE_VV
 	PurpleMedia *media;
@@ -343,7 +360,9 @@
 			     "initiator", initiator,
 			     NULL));

-	signal_id = purple_media_manager_signals[INIT_MEDIA];
+	signal_id = private ?
+			purple_media_manager_signals[INIT_PRIVATE_MEDIA] :
+			purple_media_manager_signals[INIT_MEDIA];

 	if (g_signal_has_handler_pending(manager, signal_id, 0, FALSE)) {
 		gboolean signal_ret;
@@ -356,26 +375,33 @@
 		}
 	}

-	manager->priv->medias = g_list_append(manager->priv->medias, media);
+	if (private)
+		manager->priv->private_medias = g_list_append(
+			manager->priv->private_medias, media);
+	else
+		manager->priv->medias = g_list_append(manager->priv->medias, media);
 	return media;
 #else
 	return NULL;
 #endif
 }

-GList *
-purple_media_manager_get_media(PurpleMediaManager *manager)
+static GList *
+get_media(PurpleMediaManager *manager, gboolean private)
 {
 #ifdef USE_VV
-	return manager->priv->medias;
+	if (private)
+		return manager->priv->private_medias;
+	else
+		return manager->priv->medias;
 #else
 	return NULL;
 #endif
 }

-GList *
-purple_media_manager_get_media_by_account(PurpleMediaManager *manager,
-		PurpleAccount *account)
+static GList *
+get_media_by_account(PurpleMediaManager *manager,
+		PurpleAccount *account, gboolean private)
 {
 #ifdef USE_VV
 	GList *media = NULL;
@@ -383,7 +409,10 @@

 	g_return_val_if_fail(PURPLE_IS_MEDIA_MANAGER(manager), NULL);

-	iter = manager->priv->medias;
+	if (private)
+		iter = manager->priv->private_medias;
+	else
+		iter = manager->priv->medias;
 	for (; iter; iter = g_list_next(iter)) {
 		if (purple_media_get_account(iter->data) == account) {
 			media = g_list_prepend(media, iter->data);
@@ -397,21 +426,73 @@
 }

 void
-purple_media_manager_remove_media(PurpleMediaManager *manager,
-				  PurpleMedia *media)
+purple_media_manager_remove_media(PurpleMediaManager *manager, PurpleMedia *media)
 {
 #ifdef USE_VV
 	GList *list;
+	GList **medias;

 	g_return_if_fail(manager != NULL);

-	list = g_list_find(manager->priv->medias, media);
+	if ((list = g_list_find(manager->priv->medias, media))) {
+		medias = &manager->priv->medias;
+	} else if ((list = g_list_find(manager->priv->private_medias, media))) {
+		medias = &manager->priv->private_medias;
+	}
+
 	if (list)
-		manager->priv->medias =
-			g_list_delete_link(manager->priv->medias, list);
+		*medias = g_list_delete_link(*medias, list);
 #endif
 }

+PurpleMedia *
+purple_media_manager_create_media(PurpleMediaManager *manager,
+				  PurpleAccount *account,
+				  const char *conference_type,
+				  const char *remote_user,
+				  gboolean initiator)
+{
+	return create_media (manager, account, conference_type,
+						  remote_user, initiator, FALSE);
+}
+
+GList *
+purple_media_manager_get_media(PurpleMediaManager *manager)
+{
+	return get_media (manager, FALSE);
+}
+
+GList *
+purple_media_manager_get_media_by_account(PurpleMediaManager *manager,
+		PurpleAccount *account)
+{
+	return get_media_by_account (manager, account, FALSE);
+}
+
+PurpleMedia *
+purple_media_manager_create_private_media(PurpleMediaManager *manager,
+				  PurpleAccount *account,
+				  const char *conference_type,
+				  const char *remote_user,
+				  gboolean initiator)
+{
+	return create_media (manager, account, conference_type,
+		remote_user, initiator, TRUE);
+}
+
+GList *
+purple_media_manager_get_private_media(PurpleMediaManager *manager)
+{
+	return get_media (manager, TRUE);
+}
+
+GList *
+purple_media_manager_get_private_media_by_account(PurpleMediaManager *manager,
+		PurpleAccount *account)
+{
+	return get_media_by_account (manager, account, TRUE);
+}
+
 #ifdef USE_VV
 static void
 request_pad_unlinked_cb(GstPad *pad, GstPad *peer, gpointer user_data)
diff --git a/libpurple/mediamanager.h b/libpurple/mediamanager.h
--- a/libpurple/mediamanager.h
+++ b/libpurple/mediamanager.h
@@ -130,6 +130,56 @@
 				  PurpleMedia *media);

 /**
+ * Creates a private media session.  A private media session is a
+ * media session which is private to the caller. It is meant to be
+ * used by plugins to create a media session that the front-end does
+ * not get notified about. It is useful especially for sessions with a
+ * type of PURPLE_MEDIA_APPLICATION which the front-end wouldn't know
+ * how to handle.
+ *
+ * @param manager The media manager to create the session under.
+ * @param account The account to create the session on.
+ * @param conference_type The conference type to feed into Farsight2.
+ * @param remote_user The remote user to initiate the session with.
+ * @param initiator TRUE if the local user is the initiator of this media
+ *        call, FALSE otherwise.
+ *
+ * @return A newly created media session.
+ *
+ * @since 2.11.0
+ */
+PurpleMedia *purple_media_manager_create_private_media(
+                                                PurpleMediaManager *manager,
+						PurpleAccount *account,
+						const char *conference_type,
+						const char *remote_user,
+						gboolean initiator);
+
+/**
+ * Gets all of the private media sessions.
+ *
+ * @param manager The media manager to get all of the sessions from.
+ *
+ * @return A list of all the private media sessions.
+ *
+ * @since 2.11.0
+ */
+GList *purple_media_manager_get_private_media(PurpleMediaManager *manager);
+
+/**
+ * Gets all of the private media sessions for a given account.
+ *
+ * @param manager The media manager to get the sessions from.
+ * @param account The account the sessions are on.
+ *
+ * @return A list of the private media sessions on the given account.
+ *
+ * @since 2.11.0
+ */
+GList *purple_media_manager_get_private_media_by_account(
+		PurpleMediaManager *manager, PurpleAccount *account);
+
+/**
  * Signals that output windows should be created for the chosen stream.
  *
  * This shouldn't be called outside of mediamanager.c and media.c


code:
Index: pidgin-2.10.11/finch/libgnt/gntwm.c
===================================================================
--- pidgin-2.10.11.orig/finch/libgnt/gntwm.c
+++ pidgin-2.10.11/finch/libgnt/gntwm.c
@@ -174,37 +174,37 @@ work_around_for_ncurses_bug(void)
 		cchar_t ch;
 		PANEL *below = panel;

-		sx = panel->win->_begx;
-		ex = panel->win->_maxx + sx;
-		sy = panel->win->_begy;
-		ey = panel->win->_maxy + sy;
+		sx = getbegx(panel->win);
+		ex = getmaxx(panel->win) + sx;
+		sy = getbegy(panel->win);
+		ey = getmaxy(panel->win) + sy;

 		while ((below = panel_below(below)) != NULL) {
-			if (sy > below->win->_begy + below->win->_maxy ||
-					ey < below->win->_begy)
+			if (sy > getbegy(below->win) + getmaxy(below->win) ||
+					ey < getbegy(below->win))
 				continue;
-			if (sx > below->win->_begx + below->win->_maxx ||
-					ex < below->win->_begx)
+			if (sx > getbegx(below->win) + getmaxx(below->win) ||
+					ex < getbegx(below->win))
 				continue;
-			for (y = MAX(sy, below->win->_begy); y <= MIN(ey, below->win->_begy + below->win->_maxy); y++) {
-				if (mvwin_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch) != OK)
+			for (y = MAX(sy, getbegy(below->win)); y <= MIN(ey, getbegy(below->win) + getmaxy(below->win)); y++) {
+				if (mvwin_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch) != OK)
 					goto right;
 				w = widestringwidth(ch.chars);
 				if (w > 1 && (ch.attr & 1)) {
 					ch.chars[0] = ' ';
 					ch.attr &= ~ A_CHARTEXT;
-					mvwadd_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch);
-					touchline(below->win, y - below->win->_begy, 1);
+					mvwadd_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch);
+					touchline(below->win, y - getbegy(below->win), 1);
 				}
 right:
-				if (mvwin_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch) != OK)
+				if (mvwin_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch) != OK)
 					continue;
 				w = widestringwidth(ch.chars);
 				if (w > 1 && !(ch.attr & 1)) {
 					ch.chars[0] = ' ';
 					ch.attr &= ~ A_CHARTEXT;
-					mvwadd_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch);
-					touchline(below->win, y - below->win->_begy, 1);
+					mvwadd_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch);
+					touchline(below->win, y - getbegy(below->win), 1);
 				}
 			}
 		}

repo_name: ayhanyalcinsoy/main


code:
# HG changeset patch
# User David Woodhouse <David.Woodhouse@intel.com>
# Date 1426073959 0
# Node ID 2415067473ba10a2090d6130b93204a3b537b05c
# Parent  6b4576edf2a694ab55d0d06d3643c44601a75b15
Support GStreamer 1.x and resync with trunk

Index: pidgin-2.10.11/configure.ac
===================================================================
--- pidgin-2.10.11.orig/configure.ac
+++ pidgin-2.10.11/configure.ac
@@ -741,42 +741,115 @@ AM_GCONF_SOURCE_2
 dnl #######################################################################
 dnl # Check for GStreamer
 dnl #######################################################################
-dnl
-dnl TODO: Depend on gstreamer >= 0.10.10, and remove the conditional use of
-dnl       gst_registry_fork_set_enabled.
 AC_ARG_ENABLE(gstreamer,
-	[AC_HELP_STRING([--disable-gstreamer], [compile without GStreamer audio support])],
+	[AS_HELP_STRING([--disable-gstreamer], [compile without GStreamer audio support])],
 	enable_gst="$enableval", enable_gst="yes")
+AC_ARG_WITH(gstreamer, [AS_HELP_STRING([--with-gstreamer=<version>],
+		[compile with GStreamer 0.10 or 1.0 interface (default: auto)])],
+	with_gstreamer="$withval", with_gstreamer="auto")
 if test "x$enable_gst" != "xno"; then
-	PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10], [
-		AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer for playing sounds])
-		AC_SUBST(GSTREAMER_CFLAGS)
-		AC_SUBST(GSTREAMER_LIBS)
-		AC_CHECK_LIB(gstreamer-0.10, gst_registry_fork_set_enabled,
-			[ AC_DEFINE(GST_CAN_DISABLE_FORKING, [],
-			  [Define if gst_registry_fork_set_enabled exists])],
-			[], [$GSTREAMER_LIBS])
-	], [
-		AC_MSG_RESULT(no)
-		enable_gst="no"
-		if test "x$force_deps" = "xyes" ; then
-			AC_MSG_ERROR([
+	if test "x$with_gstreamer" == "xauto"; then
+		PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0], [
+			AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer for playing sounds])
+			with_gstreamer="1.0"
+			AC_SUBST(GSTREAMER_CFLAGS)
+			AC_SUBST(GSTREAMER_LIBS)
+			dnl Check whether forking stuff is required for this version.
+		], [
+			PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10], [
+				AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer for playing sounds])
+				with_gstreamer="0.10"
+				AC_SUBST(GSTREAMER_CFLAGS)
+				AC_SUBST(GSTREAMER_LIBS)
+			], [
+				AC_MSG_RESULT(no)
+				enable_gst="no"
+				if test "x$force_deps" = "xyes" ; then
+					AC_MSG_ERROR([
 GStreamer development headers not found.
 Use --disable-gstreamer if you do not need GStreamer (sound) support.
 ])
-		fi])
+				fi
+			])
+		])
+	elif test "x$with_gstreamer" == "x1.0"; then
+		PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0], [
+			AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer 1.0 for playing sounds])
+			AC_SUBST(GSTREAMER_CFLAGS)
+			AC_SUBST(GSTREAMER_LIBS)
+		], [
+			AC_MSG_RESULT(no)
+			enable_gst="no"
+			if test "x$force_deps" = "xyes" ; then
+				AC_MSG_ERROR([
+GStreamer development headers not found.
+Use --disable-gstreamer if you do not need GStreamer (sound) support.
+])
+			fi
+		])
+	elif test "x$with_gstreamer" == "x0.10"; then
+		PKG_CHECK_MODULES(GSTREAMER, [gstreamer-0.10], [
+			AC_DEFINE(USE_GSTREAMER, 1, [Use GStreamer 0.10 for playing sounds])
+			AC_SUBST(GSTREAMER_CFLAGS)
+			AC_SUBST(GSTREAMER_LIBS)
+		], [
+			AC_MSG_RESULT(no)
+			enable_gst="no"
+			if test "x$force_deps" = "xyes" ; then
+				AC_MSG_ERROR([
+GStreamer development headers not found.
+Use --disable-gstreamer if you do not need GStreamer (sound) support.
+])
+			fi
+		])
+	else
+		AC_MSG_ERROR([--with-gstreamer must specify one of 0.10, 1.0 or auto.])
+	fi
+fi
+
+if test "x$with_gtk" == "x3" -a "x$with_gstreamer" == "x0.10"; then
+	AC_MSG_ERROR([WebKitGTK+ 3.0 cannot be mixed with GStreamer 0.10.
+Please switch to WebKitGTK+ 2.0 or GStreamer 1.0.])
+elif test "x$with_gtk" == "x2" -a "x$with_gstreamer" == "x1.0"; then
+	AC_MSG_ERROR([WebKitGTK+ 2.0 cannot be mixed with GStreamer 1.0.
+Please switch to WebKitGTK+ 3.0 or GStreamer 0.10.])
+fi
+if test "x$with_gstreamer" == "x0.10" -o "x$with_gstreamer" == "x1.0"; then
+	AC_SUBST(GSTREAMER_VER, [$with_gstreamer])
+else
+	AC_SUBST(GSTREAMER_VER, "")
+fi
+
+dnl #######################################################################
+dnl # Check for GStreamer Video
+dnl #######################################################################
+if test "x$enable_gst" != "xno" -a "x$with_gstreamer" == "x1.0"; then
+	AC_ARG_ENABLE(gstreamer-video,
+		[AS_HELP_STRING([--disable-gstreamer-video], [compile without GStreamer 1.0 Video Overlay support])],
+			enable_gstvideo="$enableval", enable_gstvideo="yes")
+	if test "x$enable_gstvideo" != "xno"; then
+		PKG_CHECK_MODULES(GSTVIDEO, [gstreamer-video-1.0], [
+			AC_DEFINE(USE_GSTVIDEO, 1, [Use GStreamer Video Overlay support])
+			AC_SUBST(GSTVIDEO_CFLAGS)
+			AC_SUBST(GSTVIDEO_LIBS)
+		], [
+			enable_gstvideo="no"
+		])
+	fi
+else
+	enable_gstvideo="no"
 fi

 dnl #######################################################################
 dnl # Check for GStreamer Interfaces
 dnl #######################################################################
-if test "x$enable_gst" != "xno"; then
+if test "x$enable_gst" != "xno" -a "x$with_gstreamer" == "x0.10"; then
 	AC_ARG_ENABLE(gstreamer-interfaces,
-		[AC_HELP_STRING([--disable-gstreamer-interfaces], [compile without GStreamer interface support])],
+		[AS_HELP_STRING([--disable-gstreamer-interfaces], [compile without GStreamer 0.10 interface support])],
 			enable_gstinterfaces="$enableval", enable_gstinterfaces="yes")
 	if test "x$enable_gstinterfaces" != "xno"; then
 		PKG_CHECK_MODULES(GSTINTERFACES, [gstreamer-interfaces-0.10], [
-			AC_DEFINE(USE_GSTINTERFACES, 1, [Use GStreamer interfaces for X overlay support])
+			AC_DEFINE(USE_GSTINTERFACES, 1, [Use GStreamer 0.10 interfaces for X overlay support])
 			AC_SUBST(GSTINTERFACES_CFLAGS)
 			AC_SUBST(GSTINTERFACES_LIBS)
 		], [
@@ -791,32 +864,43 @@ dnl ####################################
 dnl # Check for Farstream
 dnl #######################################################################
 AC_ARG_ENABLE(farstream,
-	[AC_HELP_STRING([--disable-farstream], [compile without farstream support])],
+	[AS_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])
+	if test "x$with_gstreamer" == "x1.0"; then
+		PKG_CHECK_MODULES(FARSTREAM, [farstream-0.2], [
 			AC_SUBST(FARSTREAM_CFLAGS)
 			AC_SUBST(FARSTREAM_LIBS)
 		], [
 		        enable_farstream="no"
 		])
- 	])
- fi
+	else
+		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
+fi

 dnl #######################################################################
 dnl # Check for Voice and Video support
 dnl #######################################################################
 AC_ARG_ENABLE(vv,
-	[AC_HELP_STRING([--disable-vv], [compile without voice and video support])],
+	[AS_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_farstream" != "xno"; then
+	if test "x$enable_gst" != "xno" -a "x$with_gstreamer" == "x1.0" -a "x$enable_gstvideo" != "xno" -a "x$enable_farstream" != "xno"; then
+		AC_DEFINE(USE_VV, 1, [Use voice and video])
+	elif test "x$enable_gst" != "xno" -a "x$with_gstreamer" == "x0.10" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farstream" != "xno"; then
 		AC_DEFINE(USE_VV, 1, [Use voice and video])
 	else
 		enable_vv="no"
@@ -829,7 +913,7 @@ Or use --disable-vv if you do not need v
 		fi
 	fi
 fi
-AM_CONDITIONAL(USE_VV, test "x$enable_gstreamer" != "xno" -a "x$enable_gstinterfaces" != "xno" -a "x$enable_farstream" != "xno")
+AM_CONDITIONAL(USE_VV, test "x$enable_vv" != "xno")

 dnl #######################################################################
 dnl # Check for Internationalized Domain Name support
@@ -2619,6 +2703,7 @@ echo Protocols to build dynamically : $D
 echo Protocols to link statically.. : $STATIC_PRPLS
 echo
 echo Build with GStreamer support.. : $enable_gst
+echo Build for GStreamer version... : $with_gstreamer
 echo Build with D-Bus support...... : $enable_dbus
 echo Build with voice and video.... : $enable_vv
 if test "x$enable_dbus" = "xyes" ; then
Index: pidgin-2.10.11/finch/Makefile.am
===================================================================
--- pidgin-2.10.11.orig/finch/Makefile.am
+++ pidgin-2.10.11/finch/Makefile.am
@@ -73,6 +73,7 @@ finch_LDADD = \
 	$(LIBXML_LIBS) \
 	$(GNT_LIBS) \
 	$(GSTREAMER_LIBS) \
+	$(GSTVIDEO_LIBS) \
 	./libgnt/libgnt.la \
 	$(top_builddir)/libpurple/libpurple.la

Index: pidgin-2.10.11/libpurple/Makefile.am
===================================================================
--- pidgin-2.10.11.orig/libpurple/Makefile.am
+++ pidgin-2.10.11/libpurple/Makefile.am
@@ -313,6 +313,7 @@ libpurple_la_LIBADD = \
 	$(INTLLIBS) \
 	$(FARSTREAM_LIBS) \
 	$(GSTREAMER_LIBS) \
+	$(GSTVIDEO_LIBS) \
 	$(GSTINTERFACES_LIBS) \
 	$(IDN_LIBS) \
 	ciphers/libpurple-ciphers.la \
@@ -329,6 +330,7 @@ AM_CPPFLAGS = \
 	$(LIBXML_CFLAGS) \
 	$(FARSTREAM_CFLAGS) \
 	$(GSTREAMER_CFLAGS) \
+	$(GSTVIDEO_CFLAGS) \
 	$(GSTINTERFACES_CFLAGS) \
 	$(IDN_CFLAGS) \
 	$(NETWORKMANAGER_CFLAGS) \
Index: pidgin-2.10.11/libpurple/data/purple.pc.in
===================================================================
--- pidgin-2.10.11.orig/libpurple/data/purple.pc.in
+++ pidgin-2.10.11/libpurple/data/purple.pc.in
@@ -5,6 +5,7 @@ includedir=@includedir@
 datarootdir=@datarootdir@
 datadir=@datadir@
 sysconfdir=@sysconfdir@
+gstreamer=@GSTREAMER_VER@

 plugindir=${libdir}/purple-@PURPLE_MAJOR_VERSION@

Index: pidgin-2.10.11/libpurple/example/Makefile.am
===================================================================
--- pidgin-2.10.11.orig/libpurple/example/Makefile.am
+++ pidgin-2.10.11/libpurple/example/Makefile.am
@@ -8,6 +8,7 @@ nullclient_LDADD = \
 	$(INTLLIBS) \
 	$(GLIB_LIBS) \
 	$(LIBXML_LIBS) \
+	$(GSTVIDEO_LIBS) \
 	$(top_builddir)/libpurple/libpurple.la

 AM_CPPFLAGS = \
Index: pidgin-2.10.11/libpurple/media/backend-fs2.c
===================================================================
--- pidgin-2.10.11.orig/libpurple/media/backend-fs2.c
+++ pidgin-2.10.11/libpurple/media/backend-fs2.c
@@ -41,6 +41,7 @@
 #include <farstream/fs-conference.h>
 #include <farstream/fs-element-added-notifier.h>
 #include <farstream/fs-utils.h>
+#include <gst/gststructure.h>
 #endif

 /** @copydoc _PurpleMediaBackendFs2Class */
@@ -242,9 +243,17 @@ purple_media_network_protocol_from_fs(Fs
 	g_return_val_if_reached(PURPLE_MEDIA_NETWORK_PROTOCOL_TCP);
 }

+#if GST_CHECK_VERSION(1,0,0)
+static GstPadProbeReturn
+event_probe_cb(GstPad *srcpad, GstPadProbeInfo *info, gpointer unused)
+#else
 static gboolean
 event_probe_cb(GstPad *srcpad, GstEvent *event, gboolean release_pad)
+#endif
 {
+#if GST_CHECK_VERSION(1,0,0)
+	GstEvent *event = GST_PAD_PROBE_INFO_EVENT(info);
+#endif
 	if (GST_EVENT_TYPE(event) == GST_EVENT_CUSTOM_DOWNSTREAM
 		&& gst_event_has_name(event, "purple-unlink-tee")) {

@@ -252,22 +261,40 @@ event_probe_cb(GstPad *srcpad, GstEvent

 		gst_pad_unlink(srcpad, gst_pad_get_peer(srcpad));

+#if GST_CHECK_VERSION(1,0,0)
+		gst_pad_remove_probe(srcpad,
+			g_value_get_ulong(gst_structure_get_value(s, "handler-id")));
+#else
 		gst_pad_remove_event_probe(srcpad,
 			g_value_get_uint(gst_structure_get_value(s, "handler-id")));
+#endif

 		if (g_value_get_boolean(gst_structure_get_value(s, "release-pad")))
 			gst_element_release_request_pad(GST_ELEMENT_PARENT(srcpad), srcpad);

+#if GST_CHECK_VERSION(1,0,0)
+		return GST_PAD_PROBE_DROP;
+#else
 		return FALSE;
+#endif
 	}

+#if GST_CHECK_VERSION(1,0,0)
+	return GST_PAD_PROBE_OK;
+#else
 	return TRUE;
+#endif
 }

 static void
 unlink_teepad_dynamic(GstPad *srcpad, gboolean release_pad)
 {
+#if GST_CHECK_VERSION(1,0,0)
+	gulong id = gst_pad_add_probe(srcpad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+	                              event_probe_cb, NULL, NULL);
+#else
 	guint id = gst_pad_add_event_probe(srcpad, G_CALLBACK(event_probe_cb), NULL);
+#endif

 	if (GST_IS_GHOST_PAD(srcpad))
 		srcpad = gst_ghost_pad_get_target(GST_GHOST_PAD(srcpad));
@@ -276,7 +303,11 @@ unlink_teepad_dynamic(GstPad *srcpad, gb
 		gst_event_new_custom(GST_EVENT_CUSTOM_DOWNSTREAM,
 			gst_structure_new("purple-unlink-tee",
 				"release-pad", G_TYPE_BOOLEAN, release_pad,
+#if GST_CHECK_VERSION(1,0,0)
+				"handler-id", G_TYPE_ULONG, id,
+#else
 				"handler-id", G_TYPE_UINT, id,
+#endif
 				NULL)));
 }

@@ -859,15 +890,31 @@ gst_msg_db_to_percent(GstMessage *msg, g
 	gdouble value_db;
 	gdouble percent;

-	list = gst_structure_get_value(
-				gst_message_get_structure(msg), value_name);
+	list = gst_structure_get_value(gst_message_get_structure(msg), value_name);
+#if GST_CHECK_VERSION(1,0,0)
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+	value = g_value_array_get_nth(g_value_get_boxed(list), 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
+#else
 	value = gst_value_list_get_value(list, 0);
+#endif
 	value_db = g_value_get_double(value);
 	percent = pow(10, value_db / 20);
 	return (percent > 1.0) ? 1.0 : percent;
 }

 static void
+purple_media_error_fs(PurpleMedia *media, const gchar *error,
+		const GstStructure *fs_error)
+{
+	const gchar *error_msg = gst_structure_get_string(fs_error, "error-msg");
+
+	purple_media_error(media, "%s%s%s", error,
+	                   error_msg ? _("\n\nMessage from Farsight: ") : "",
+	                   error_msg ? error_msg : "");
+}
+
+static void
 gst_handle_message_element(GstBus *bus, GstMessage *msg,
 		PurpleMediaBackendFs2 *self)
 {
@@ -875,11 +922,12 @@ gst_handle_message_element(GstBus *bus,
 			PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self);
 	GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg));
 	static guint level_id = 0;
+	const GstStructure *structure = gst_message_get_structure(msg);

 	if (level_id == 0)
 		level_id = g_signal_lookup("level", PURPLE_TYPE_MEDIA);

-	if (gst_structure_has_name(msg->structure, "level")) {
+	if (gst_structure_has_name(structure, "level")) {
 		GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg));
 		gchar *name;
 		gchar *participant = NULL;
@@ -934,31 +982,63 @@ gst_handle_message_element(GstBus *bus,
 		return;

 #ifdef HAVE_FARSIGHT
-	if (gst_structure_has_name(msg->structure, "farsight-error")) {
+	if (gst_structure_has_name(structure, "farsight-error")) {
 #else
-	if (gst_structure_has_name(msg->structure, "farstream-error")) {
+	if (gst_structure_has_name(structure, "farstream-error")) {
 #endif
 		FsError error_no;
-		gst_structure_get_enum(msg->structure, "error-no",
+		gboolean error_emitted = FALSE;
+		gst_structure_get_enum(structure, "error-no",
 				FS_TYPE_ERROR, (gint*)&error_no);
 		switch (error_no) {
+			case FS_ERROR_CONSTRUCTION:
+				purple_media_error_fs(priv->media,
+				                      _("Error initializing the call. "
+				                        "This probably denotes problem in "
+#ifdef HAVE_FARSIGHT
+				                        "installation of GStreamer or Farsight."),
+#else
+				                        "installation of GStreamer or Farstream."),
+#endif
+				                      structure);
+				error_emitted = TRUE;
+				break;
+			case FS_ERROR_NETWORK:
+				purple_media_error_fs(priv->media, _("Network error."),
+				                      structure);
+				error_emitted = TRUE;
+				purple_media_end(priv->media, NULL, NULL);
+				break;
+			case FS_ERROR_NEGOTIATION_FAILED:
+				purple_media_error_fs(priv->media,
+				                      _("Codec negotiation failed. "
+				                        "This problem might be resolved by installing "
+				                        "more GStreamer codecs."),
+				                      structure);
+				error_emitted = TRUE;
+				purple_media_end(priv->media, NULL, NULL);
+				break;
 			case FS_ERROR_NO_CODECS:
-				purple_media_error(priv->media, _("No codecs"
-						" found. Install some"
-						" GStreamer codecs found"
-						" in GStreamer plugins"
-						" packages."));
+				purple_media_error(priv->media,
+				                   _("No codecs found. "
+				                     "Install some GStreamer codecs found "
+				                     "in GStreamer plugins packages."));
+				error_emitted = TRUE;
 				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"
-						" preferences in"
-						" fs-codecs.conf are too"
-						" strict."));
+				purple_media_error(priv->media,
+				                   _("No codecs left. Your codec preferences "
+				                     "in fs-codecs.conf are too strict."));
+				error_emitted = TRUE;
 				purple_media_end(priv->media, NULL, NULL);
 				break;
+			case FS_ERROR_CONNECTION_FAILED:
+				purple_media_error(priv->media,
+				                   _("Could not connect to the remote party"));
+				error_emitted = TRUE;
+				break;
 			case FS_ERROR_UNKNOWN_CNAME:
 				/*
 				 * Unknown CName is only a problem for the
@@ -975,22 +1055,22 @@ gst_handle_message_element(GstBus *bus,
 						"farstream-error: %i: %s\n",
 #endif
 						error_no,
-						gst_structure_get_string(
-						msg->structure, "error-msg"));
+						gst_structure_get_string(structure, "error-msg"));
 				break;
 		}

 		if (FS_ERROR_IS_FATAL(error_no)) {
+			if (!error_emitted)
 #ifdef HAVE_FARSIGHT
-			purple_media_error(priv->media, _("A non-recoverable "
-					"Farsight2 error has occurred."));
+			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."));
+			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,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-new-local-candidate")) {
 #else
@@ -1005,9 +1085,9 @@ gst_handle_message_element(GstBus *bus,
 		PurpleMediaBackendFs2Stream *media_stream;
 		gchar *name;

-		value = gst_structure_get_value(msg->structure, "stream");
+		value = gst_structure_get_value(structure, "stream");
 		stream = g_value_get_object(value);
-		value = gst_structure_get_value(msg->structure, "candidate");
+		value = gst_structure_get_value(structure, "candidate");
 		local_candidate = g_value_get_boxed(value);

 		session = get_session_from_fs_stream(self, stream);
@@ -1029,7 +1109,7 @@ gst_handle_message_element(GstBus *bus,
 		g_signal_emit_by_name(self, "new-candidate",
 				session->id, name, candidate);
 		g_object_unref(candidate);
-	} else if (gst_structure_has_name(msg->structure,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-local-candidates-prepared")) {
 #else
@@ -1041,7 +1121,7 @@ gst_handle_message_element(GstBus *bus,
 		PurpleMediaBackendFs2Session *session;
 		gchar *name;

-		value = gst_structure_get_value(msg->structure, "stream");
+		value = gst_structure_get_value(structure, "stream");
 		stream = g_value_get_object(value);
 		session = get_session_from_fs_stream(self, stream);

@@ -1051,7 +1131,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,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-new-active-candidate-pair")) {
 #else
@@ -1066,13 +1146,11 @@ gst_handle_message_element(GstBus *bus,
 		PurpleMediaCandidate *lcandidate, *rcandidate;
 		gchar *name;

-		value = gst_structure_get_value(msg->structure, "stream");
+		value = gst_structure_get_value(structure, "stream");
 		stream = g_value_get_object(value);
-		value = gst_structure_get_value(msg->structure,
-				"local-candidate");
+		value = gst_structure_get_value(structure, "local-candidate");
 		local_candidate = g_value_get_boxed(value);
-		value = gst_structure_get_value(msg->structure,
-				"remote-candidate");
+		value = gst_structure_get_value(structure, "remote-candidate");
 		remote_candidate = g_value_get_boxed(value);

 		g_object_get(stream, "participant", &participant, NULL);
@@ -1089,7 +1167,7 @@ gst_handle_message_element(GstBus *bus,

 		g_object_unref(lcandidate);
 		g_object_unref(rcandidate);
-	} else if (gst_structure_has_name(msg->structure,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-recv-codecs-changed")) {
 #else
@@ -1099,7 +1177,7 @@ gst_handle_message_element(GstBus *bus,
 		GList *codecs;
 		FsCodec *codec;

-		value = gst_structure_get_value(msg->structure, "codecs");
+		value = gst_structure_get_value(structure, "codecs");
 		codecs = g_value_get_boxed(value);
 		codec = codecs->data;

@@ -1110,7 +1188,7 @@ gst_handle_message_element(GstBus *bus,
 				"farstream-recv-codecs-changed: %s\n",
 #endif
 				codec->encoding_name);
-	} else if (gst_structure_has_name(msg->structure,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-component-state-changed")) {
 #else
@@ -1121,9 +1199,9 @@ gst_handle_message_element(GstBus *bus,
 		guint component;
 		const gchar *state;

-		value = gst_structure_get_value(msg->structure, "state");
+		value = gst_structure_get_value(structure, "state");
 		fsstate = g_value_get_enum(value);
-		value = gst_structure_get_value(msg->structure, "component");
+		value = gst_structure_get_value(structure, "component");
 		component = g_value_get_uint(value);

 		switch (fsstate) {
@@ -1158,7 +1236,7 @@ gst_handle_message_element(GstBus *bus,
 #endif
 				"component: %u state: %s\n",
 				component, state);
-	} else if (gst_structure_has_name(msg->structure,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-send-codec-changed")) {
 #else
@@ -1168,7 +1246,7 @@ gst_handle_message_element(GstBus *bus,
 		FsCodec *codec;
 		gchar *codec_str;

-		value = gst_structure_get_value(msg->structure, "codec");
+		value = gst_structure_get_value(structure, "codec");
 		codec = g_value_get_boxed(value);
 		codec_str = fs_codec_to_string(codec);

@@ -1181,7 +1259,7 @@ gst_handle_message_element(GstBus *bus,
 				codec_str);

 		g_free(codec_str);
-	} else if (gst_structure_has_name(msg->structure,
+	} else if (gst_structure_has_name(structure,
 #ifdef HAVE_FARSIGHT
 			"farsight-codecs-changed")) {
 #else
@@ -1191,7 +1269,7 @@ gst_handle_message_element(GstBus *bus,
 		FsSession *fssession;
 		GList *sessions;

-		value = gst_structure_get_value(msg->structure, "session");
+		value = gst_structure_get_value(structure, "session");
 		fssession = g_value_get_object(value);
 		sessions = g_hash_table_get_values(priv->sessions);

@@ -1635,7 +1713,11 @@ create_src(PurpleMediaBackendFs2 *self,
 		srcpad = gst_element_get_static_pad(session->srcvalve, "src");
 		g_object_set(volume, "volume", input_volume, NULL);
 	} else {
+#if GST_CHECK_VERSION(1,0,0)
+		srcpad = gst_element_get_request_pad(session->tee, "src_%u");
+#else
 		srcpad = gst_element_get_request_pad(session->tee, "src%d");
+#endif
 	}

 	purple_debug_info("backend-fs2", "connecting pad: %s\n",
@@ -1645,11 +1727,14 @@ create_src(PurpleMediaBackendFs2 *self,
 	gst_object_unref(session->src);
 	gst_object_unref(sinkpad);

-	gst_element_set_state(session->src, GST_STATE_PLAYING);
-
 	purple_media_manager_create_output_window(purple_media_get_manager(
 			priv->media), priv->media, sess_id, NULL);

+	purple_debug_info("backend-fs2", "create_src: setting source "
+		"state to GST_STATE_PLAYING - it may hang here on win32\n");
+	gst_element_set_state(session->src, GST_STATE_PLAYING);
+	purple_debug_info("backend-fs2", "create_src: state set\n");
+
 	return TRUE;
 }

@@ -1853,14 +1938,10 @@ src_pad_added_cb(FsStream *fsstream, Gst
 			 *   audioresample ! audioconvert ! realsink
 			 */
 			stream->queue = gst_element_factory_make("queue", NULL);
-			stream->volume = gst_element_factory_make(
-					"volume", NULL);
-			g_object_set(stream->volume, "volume",
-					output_volume, NULL);
-			stream->level = gst_element_factory_make(
-					"level", NULL);
-			stream->src = gst_element_factory_make(
-					"liveadder", NULL);
+			stream->volume = gst_element_factory_make("volume", NULL);
+			g_object_set(stream->volume, "volume", output_volume, NULL);
+			stream->level = gst_element_factory_make("level", NULL);
+			stream->src = gst_element_factory_make("liveadder", NULL);
 			sink = purple_media_manager_get_element(
 					purple_media_get_manager(priv->media),
 					PURPLE_MEDIA_RECV_AUDIO, priv->media,
@@ -1879,10 +1960,12 @@ src_pad_added_cb(FsStream *fsstream, Gst
 			gst_element_link(stream->queue, stream->volume);
 			sink = stream->queue;
 		} else if (codec->media_type == FS_MEDIA_TYPE_VIDEO) {
-			stream->src = gst_element_factory_make(
-					"fsfunnel", NULL);
-			sink = gst_element_factory_make(
-					"fakesink", NULL);
+#if GST_CHECK_VERSION(1,0,0)
+			stream->src = gst_element_factory_make("funnel", NULL);
+#else
+			stream->src = gst_element_factory_make("fsfunnel", NULL);
+#endif
+			sink = gst_element_factory_make("fakesink", NULL);
 			g_object_set(G_OBJECT(sink), "async", FALSE, NULL);
 			gst_bin_add(GST_BIN(priv->confbin), sink);
 			gst_element_set_state(sink, GST_STATE_PLAYING);
@@ -1896,7 +1979,11 @@ src_pad_added_cb(FsStream *fsstream, Gst
 		gst_element_link_many(stream->src, stream->tee, sink, NULL);
 	}

+#if GST_CHECK_VERSION(1,0,0)
+	sinkpad = gst_element_get_request_pad(stream->src, "sink_%u");
+#else
 	sinkpad = gst_element_get_request_pad(stream->src, "sink%d");
+#endif
 	gst_pad_link(srcpad, sinkpad);
 	gst_object_unref(sinkpad);

@@ -2078,8 +2165,8 @@ G_GNUC_END_IGNORE_DEPRECATIONS
 	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);
+			"Could not set transmitter %s: %s.\n",
+			transmitter, err ? err->message : NULL);
 		g_clear_error(&err);
 		g_free(_params);
 		return FALSE;
@@ -2398,14 +2485,44 @@ purple_media_backend_fs2_set_send_codec(
 	return TRUE;
 }

+static const gchar **
+purple_media_backend_fs2_get_available_params(void)
+{
+	static const gchar *supported_params[] = {
+		"sdes-cname", "sdes-email", "sdes-location", "sdes-name", "sdes-note",
+		"sdes-phone", "sdes-tool", NULL
+	};
+
+	return supported_params;
+}
+
+static const gchar*
+param_to_sdes_type(const gchar *param)
+{
+	const gchar **supported = purple_media_backend_fs2_get_available_params();
+	static const gchar *sdes_types[] = {
+		"cname", "email", "location", "name", "note", "phone", "tool", NULL
+	};
+	guint i;
+
+	for (i = 0; supported[i] != NULL; ++i) {
+		if (!strcmp(param, supported[i])) {
+			return sdes_types[i];
+		}
+	}
+
+	return NULL;
+}
+
 static void
 purple_media_backend_fs2_set_params(PurpleMediaBackend *self,
 		guint num_params, GParameter *params)
 {
 	PurpleMediaBackendFs2Private *priv;
-	const gchar **supported = purple_media_backend_fs2_get_available_params();
-	const gchar **p;
 	guint i;
+#ifndef HAVE_FARSIGHT
+	GstStructure *sdes;
+#endif

 	g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self));

@@ -2418,27 +2535,30 @@ purple_media_backend_fs2_set_params(Purp
 		return;
 	}

+#ifdef HAVE_FARSIGHT
 	for (i = 0; i != num_params; ++i) {
-		for (p = supported; *p != NULL; ++p) {
-			if (!strcmp(params[i].name, *p)) {
-				g_object_set(priv->conference,
-						params[i].name, g_value_get_string(&params[i].value),
-						NULL);
-				break;
-			}
+		if (param_to_sdes_type(params[i].name)) {
+			g_object_set(priv->conference,
+			             params[i].name, g_value_get_string(&params[i].value),
+			             NULL);
 		}
 	}
-}
+#else
+	g_object_get(G_OBJECT(priv->conference), "sdes", &sdes, NULL);

-static const gchar **
-purple_media_backend_fs2_get_available_params(void)
-{
-	static const gchar *supported_params[] = {
-		"sdes-cname", "sdes-email", "sdes-location", "sdes-name", "sdes-note",
-		"sdes-phone", "sdes-tool", NULL
-	};
+	for (i = 0; i != num_params; ++i) {
+		const gchar *sdes_type = param_to_sdes_type(params[i].name);
+		if (!sdes_type)
+			continue;

-	return supported_params;
+		gst_structure_set(sdes, sdes_type,
+		                  G_TYPE_STRING, g_value_get_string(&params[i].value),
+		                  NULL);
+	}
+
+	g_object_set(G_OBJECT(priv->conference), "sdes", sdes, NULL);
+	gst_structure_free(sdes);
+#endif /* HAVE_FARSIGHT */
 }
 static gboolean
 send_dtmf_callback(gpointer userdata)
Index: pidgin-2.10.11/libpurple/mediamanager.c
===================================================================
--- pidgin-2.10.11.orig/libpurple/mediamanager.c
+++ pidgin-2.10.11/libpurple/mediamanager.c
@@ -44,7 +44,12 @@
 #else
 #include <farstream/fs-element-added-notifier.h>
 #endif
+
+#if GST_CHECK_VERSION(1,0,0)
+#include <gst/video/videooverlay.h>
+#else
 #include <gst/interfaces/xoverlay.h>
+#endif

 /** @copydoc _PurpleMediaManagerPrivate */
 typedef struct _PurpleMediaManagerPrivate PurpleMediaManagerPrivate;
@@ -270,8 +275,11 @@ purple_media_manager_get_pipeline(Purple
 		gst_bus_add_signal_watch(GST_BUS(bus));
 		g_signal_connect(G_OBJECT(bus), "message",
 				G_CALLBACK(pipeline_bus_call), manager);
-		gst_bus_set_sync_handler(bus,
-				gst_bus_sync_signal_handler, NULL);
+#if GST_CHECK_VERSION(1,0,0)
+		gst_bus_set_sync_handler(bus, gst_bus_sync_signal_handler, NULL, NULL);
+#else
+		gst_bus_set_sync_handler(bus, gst_bus_sync_signal_handler, NULL);
+#endif
 		gst_object_unref(bus);

 		filename = g_build_filename(purple_user_dir(),
@@ -405,20 +413,31 @@ request_pad_unlinked_cb(GstPad *pad, Gst
 {
 	GstElement *parent = GST_ELEMENT_PARENT(pad);
 	GstIterator *iter;
+#if GST_CHECK_VERSION(1,0,0)
+	GValue tmp = G_VALUE_INIT;
+#endif
 	GstPad *remaining_pad;
 	GstIteratorResult result;

-	gst_element_release_request_pad(GST_ELEMENT_PARENT(pad), pad);
+	gst_element_release_request_pad(parent, pad);

 	iter = gst_element_iterate_src_pads(parent);

+#if GST_CHECK_VERSION(1,0,0)
+	result = gst_iterator_next(iter, &tmp);
+#else
 	result = gst_iterator_next(iter, (gpointer)&remaining_pad);
+#endif

 	if (result == GST_ITERATOR_DONE) {
 		gst_element_set_locked_state(parent, TRUE);
 		gst_element_set_state(parent, GST_STATE_NULL);
 		gst_bin_remove(GST_BIN(GST_ELEMENT_PARENT(parent)), parent);
 	} else if (result == GST_ITERATOR_OK) {
+#if GST_CHECK_VERSION(1,0,0)
+		remaining_pad = g_value_get_object(&tmp);
+		g_value_reset(&tmp);
+#endif
 		gst_object_unref(remaining_pad);
 	}

@@ -456,7 +475,11 @@ purple_media_manager_get_video_caps(Purp
 {
 #ifdef USE_VV
 	if (manager->priv->video_caps == NULL)
+#if GST_CHECK_VERSION(1,0,0)
+		manager->priv->video_caps = gst_caps_from_string("video/x-raw,"
+#else
 		manager->priv->video_caps = gst_caps_from_string("video/x-raw-yuv,"
+#endif
 			"width=[250,352], height=[200,288], framerate=[1/1,20/1]");
 	return manager->priv->video_caps;
 #else
@@ -539,7 +562,11 @@ purple_media_manager_get_element(PurpleM
 		g_free(id);

 		tee = gst_bin_get_by_name(GST_BIN(ret), "tee");
+#if GST_CHECK_VERSION(1,0,0)
+		pad = gst_element_get_request_pad(tee, "src_%u");
+#else
 		pad = gst_element_get_request_pad(tee, "src%d");
+#endif
 		gst_object_unref(tee);
 		ghost = gst_ghost_pad_new(NULL, pad);
 		gst_object_unref(pad);
@@ -730,9 +757,12 @@ window_id_cb(GstBus *bus, GstMessage *ms
 {
 	GstElement *sink;

-	if (GST_MESSAGE_TYPE(msg) != GST_MESSAGE_ELEMENT ||
-			!gst_structure_has_name(msg->structure,
-			"prepare-xwindow-id"))
+	if (GST_MESSAGE_TYPE(msg) != GST_MESSAGE_ELEMENT
+#if GST_CHECK_VERSION(1,0,0)
+	 || !gst_is_video_overlay_prepare_window_handle_message(msg))
+#else
+	 || !gst_structure_has_name(msg->structure, "prepare-xwindow-id"))
+#endif
 		return;

 	sink = GST_ELEMENT(GST_MESSAGE_SRC(msg));
@@ -746,8 +776,16 @@ window_id_cb(GstBus *bus, GstMessage *ms
 			| G_SIGNAL_MATCH_DATA, 0, 0, NULL,
 			window_id_cb, ow);

-	gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(
-			GST_MESSAGE_SRC(msg)), ow->window_id);
+#if GST_CHECK_VERSION(1,0,0)
+	gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(GST_MESSAGE_SRC(msg)),
+	                                    ow->window_id);
+#elif GST_CHECK_VERSION(0,10,31)
+	gst_x_overlay_set_window_handle(GST_X_OVERLAY(GST_MESSAGE_SRC(msg)),
+	                                ow->window_id);
+#else
+	gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(GST_MESSAGE_SRC(msg)),
+	                             ow->window_id);
+#endif
 }
 #endif

@@ -772,17 +810,19 @@ purple_media_manager_create_output_windo
 				(participant == ow->participant)) &&
 				!strcmp(session_id, ow->session_id)) {
 			GstBus *bus;
-			GstElement *queue, *colorspace;
+			GstElement *queue, *convert;
 			GstElement *tee = purple_media_get_tee(media,
 					session_id, participant);

 			if (tee == NULL)
 				continue;

-			queue = gst_element_factory_make(
-					"queue", NULL);
-			colorspace = gst_element_factory_make(
-					"ffmpegcolorspace", NULL);
+			queue = gst_element_factory_make("queue", NULL);
+#if GST_CHECK_VERSION(1,0,0)
+			convert = gst_element_factory_make("videoconvert", NULL);
+#else
+			convert = gst_element_factory_make("ffmpegcolorspace", NULL);
+#endif
 			ow->sink = purple_media_manager_get_element(
 					manager, PURPLE_MEDIA_RECV_VIDEO,
 					ow->media, ow->session_id,
@@ -795,7 +835,7 @@ purple_media_manager_create_output_windo
 				if (g_object_class_find_property(klass,
 						"sync"))
 					g_object_set(G_OBJECT(ow->sink),
-							"sync", "FALSE", NULL);
+							"sync", FALSE, NULL);
 				if (g_object_class_find_property(klass,
 						"async"))
 					g_object_set(G_OBJECT(ow->sink),
@@ -803,7 +843,7 @@ purple_media_manager_create_output_windo
 			}

 			gst_bin_add_many(GST_BIN(GST_ELEMENT_PARENT(tee)),
-					queue, colorspace, ow->sink, NULL);
+					queue, convert, ow->sink, NULL);

 			bus = gst_pipeline_get_bus(GST_PIPELINE(
 					manager->priv->pipeline));
@@ -812,10 +852,10 @@ purple_media_manager_create_output_windo
 			gst_object_unref(bus);

 			gst_element_set_state(ow->sink, GST_STATE_PLAYING);
-			gst_element_set_state(colorspace, GST_STATE_PLAYING);
+			gst_element_set_state(convert, GST_STATE_PLAYING);
 			gst_element_set_state(queue, GST_STATE_PLAYING);
-			gst_element_link(colorspace, ow->sink);
-			gst_element_link(queue, colorspace);
+			gst_element_link(convert, ow->sink);
+			gst_element_link(queue, convert);
 			gst_element_link(tee, queue);
 		}
 	}
Index: pidgin-2.10.11/pidgin/Makefile.am
===================================================================
--- pidgin-2.10.11.orig/pidgin/Makefile.am
+++ pidgin-2.10.11/pidgin/Makefile.am
@@ -151,6 +151,7 @@ pidgin_LDADD = \
 	$(GLIB_LIBS) \
 	$(DBUS_LIBS) \
 	$(GSTREAMER_LIBS) \
+	$(GSTVIDEO_LIBS) \
 	$(XSS_LIBS) \
 	$(SM_LIBS) \
 	$(INTLLIBS) \
Index: pidgin-2.10.11/pidgin/gtkmedia.c
===================================================================
--- pidgin-2.10.11.orig/pidgin/gtkmedia.c
+++ pidgin-2.10.11/pidgin/gtkmedia.c
@@ -43,7 +43,9 @@
 #endif
 #include <gdk/gdkkeysyms.h>

+#if !GST_CHECK_VERSION(1,0,0)
 #include <gst/interfaces/xoverlay.h>
+#endif

 #define PIDGIN_TYPE_MEDIA            (pidgin_media_get_type())
 #define PIDGIN_MEDIA(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), PIDGIN_TYPE_MEDIA, PidginMedia))
@@ -590,6 +592,9 @@ pidgin_media_error_cb(PidginMedia *media
 	if (conv != NULL)
 		purple_conversation_write(conv, NULL, error,
 				PURPLE_MESSAGE_ERROR, time(NULL));
+	else
+		purple_notify_error(NULL, NULL, _("Media error"), error);
+
 	gtk_statusbar_push(GTK_STATUSBAR(gtkmedia->priv->statusbar),
 			0, error);
 }
Index: pidgin-2.10.11/pidgin/plugins/vvconfig.c
===================================================================
--- pidgin-2.10.11.orig/pidgin/plugins/vvconfig.c
+++ pidgin-2.10.11/pidgin/plugins/vvconfig.c
@@ -26,7 +26,11 @@
 #include "gtkutils.h"
 #include "gtkprefs.h"

+#if GST_CHECK_VERSION(1,0,0)
+#include <gst/video/videooverlay.h>
+#else
 #include <gst/interfaces/propertyprobe.h>
+#endif

 /* container window for showing a stand-alone configurator */
 static GtkWidget *window = NULL;
@@ -81,8 +85,10 @@ get_element_devices(const gchar *element
 	GList *ret = NULL;
 	GstElement *element;
 	GObjectClass *klass;
+#if !GST_CHECK_VERSION(1,0,0)
 	GstPropertyProbe *probe;
 	const GParamSpec *pspec;
+#endif

 	ret = g_list_prepend(ret, (gpointer)_("Default"));
 	ret = g_list_prepend(ret, "");
@@ -103,6 +109,10 @@ get_element_devices(const gchar *element
 		return g_list_reverse(ret);
 	}

+#if GST_CHECK_VERSION(1,0,0)
+	purple_debug_info("vvconfig", "'%s' - gstreamer-1.0 doesn't suport "
+		"property probing\n", element_name);
+#else
 	if (!g_object_class_find_property(klass, "device") ||
 			!GST_IS_PROPERTY_PROBE(element) ||
 			!(probe = GST_PROPERTY_PROBE(element)) ||
@@ -155,6 +165,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS
 			gst_element_set_state(element, GST_STATE_NULL);
 		}
 	}
+#endif
 	gst_object_unref(element);

 	return g_list_reverse(ret);
@@ -168,8 +179,13 @@ get_element_plugins(const gchar **plugin
 	ret = g_list_prepend(ret, "Default");
 	ret = g_list_prepend(ret, "");
 	for (; plugins[0] && plugins[1]; plugins += 2) {
+#if GST_CHECK_VERSION(1,0,0)
+		if (gst_registry_check_feature_version(gst_registry_get(),
+				plugins[0], 0, 0, 0)) {
+#else
 		if (gst_default_registry_check_feature_version(
 				plugins[0], 0, 0, 0)) {
+#endif
 			ret = g_list_prepend(ret, (gpointer)plugins[1]);
 			ret = g_list_prepend(ret, (gpointer)plugins[0]);
 		}
@@ -588,7 +604,13 @@ gst_msg_db_to_percent(GstMessage *msg, g

 	list = gst_structure_get_value(
 				gst_message_get_structure(msg), value_name);
+#if GST_CHECK_VERSION(1,0,0)
+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+	value = g_value_array_get_nth(g_value_get_boxed(list), 0);
+G_GNUC_END_IGNORE_DEPRECATIONS
+#else
 	value = gst_value_list_get_value(list, 0);
+#endif
 	value_db = g_value_get_double(value);
 	percent = pow(10, value_db / 20);
 	return (percent > 1.0) ? 1.0 : percent;
@@ -604,7 +626,7 @@ static gboolean
 gst_bus_cb(GstBus *bus, GstMessage *msg, BusCbCtx *ctx)
 {
 	if (GST_MESSAGE_TYPE(msg) == GST_MESSAGE_ELEMENT &&
-		gst_structure_has_name(msg->structure, "level")) {
+		gst_structure_has_name(gst_message_get_structure(msg), "level")) {

 		GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg));
 		gchar *name = gst_element_get_name(src);


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>pidgin</Name>
        <Homepage>http://www.pidgin.im</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <Icon>pidgin</Icon>
        Instant messaging application previously known as gaim
        <Description>Multi-protocol instant messaging tool for MSN, Yahoo, IRC, Jabber and Gadu-Gadu protocols.</Description>
        <Archive sha1sum="38f48c48978425b86fc9f4e8ba08216ff379451b" type="tarbz2">mirrors://sourceforge/pidgin/pidgin-2.12.0.tar.bz2</Archive>
        <BuildDependencies>
            <Dependency>intltool</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>gtk2-devel</Dependency>
            <Dependency>libXScrnSaver-devel</Dependency>
            <Dependency>libSM-devel</Dependency>
            <Dependency>gtkspell-devel</Dependency>
            <Dependency>sqlite-devel</Dependency>
            <Dependency>libxml2-devel</Dependency>
            <Dependency>gstreamer-devel</Dependency>
            <Dependency>farstream-devel</Dependency>
            <Dependency>gst-plugins-base-devel</Dependency>
            <Dependency>libidn-devel</Dependency>
            <Dependency>avahi-glib-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>NetworkManager-devel</Dependency>
            <Dependency>nss-devel</Dependency>
            <Dependency>tcl-devel</Dependency>
            <Dependency>tcltk-devel</Dependency>
            <Dependency>cyrus-sasl-devel</Dependency>
            <Dependency>doxygen</Dependency>
            <Dependency>libxslt-devel</Dependency>
            <Dependency>gnutls-devel</Dependency>

            <Dependency>atk-devel</Dependency>
            <Dependency>cairo-devel</Dependency>
            <Dependency>gdk-pixbuf-devel</Dependency>
            <Dependency>ncurses-devel</Dependency>
            <Dependency>python-devel</Dependency>
        </BuildDependencies>
        <Patches>
            <Patch level="1">suse/pidgin-ncurses-6.0-accessors.patch</Patch>
            <Patch level="1">pidgin-py3-fixes.patch</Patch>
        </Patches>
    </Source>

    <Package>
        <Name>pidgin</Name>
        <IsA>app:gui</IsA>
        <RuntimeDependencies>
            <Dependency>atk</Dependency>
            <Dependency>dbus</Dependency>
            <Dependency>gtk2</Dependency>
            <Dependency>cairo</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>libSM</Dependency>
            <Dependency>pango</Dependency>
            <Dependency>libICE</Dependency>
            <Dependency>sqlite</Dependency>
            <Dependency>freetype</Dependency>
            <Dependency>gtkspell</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>gstreamer</Dependency>
            <Dependency>fontconfig</Dependency>
            <Dependency>gdk-pixbuf</Dependency>
            <Dependency>libXScrnSaver</Dependency>
            <Dependency release="current">libpurple</Dependency>
            <Dependency>gstreamer-next</Dependency>
            <Dependency>farstream</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="executable">/usr/bin</Path>
            <Path fileType="data">/usr/share/icons</Path>
            <Path fileType="data">/usr/share/sounds</Path>
            <Path fileType="data">/usr/share/dbus-1</Path>
            <Path fileType="data">/usr/share/purple</Path>
            <Path fileType="data">/usr/share/pixmaps</Path>
            <Path fileType="library">/usr/lib/pidgin</Path>
            <Path fileType="config">/etc/gconf/schemas</Path>
	    <Path fileType="data">/usr/share/appdata/</Path>
            <Path fileType="localedata">/usr/share/locale</Path>
            <Path fileType="data">/usr/share/applications</Path>
        </Files>
    </Package>

    <Package>
        <Name>pidgin-devel</Name>
        <IsA>library</IsA>
        Development files of pidgin
        <RuntimeDependencies>
            <Dependency release="current">pidgin</Dependency>
            <Dependency release="current">libpurple-devel</Dependency>
            <Dependency>gtk2-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include/pidgin</Path>
            <Path fileType="executable">/usr/bin/dh_pidgin</Path>
            <Path fileType="man">/usr/share/man/man3/Pidgin*</Path>
            <Path fileType="data">/usr/lib/pkgconfig/pidgin.pc</Path>
        </Files>
    </Package>

    <Package>
        <Name>finch</Name>
        <IsA>app:console</IsA>
        Console based instant messaging application
        <RuntimeDependencies>
            <Dependency>glib2</Dependency>
            <Dependency>libX11</Dependency>
            <Dependency>python</Dependency>
            <Dependency>libxml2</Dependency>
            <Dependency>ncurses</Dependency>
            <Dependency>gstreamer</Dependency>
            <Dependency release="current">libpurple</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/gnt</Path>
            <Path fileType="library">/usr/lib/finch</Path>
            <Path fileType="library">/usr/lib/libgnt*</Path>
            <Path fileType="executable">/usr/bin/finch</Path>
            <Path fileType="man">/usr/share/man/man1/finch*</Path>
        </Files>
    </Package>

    <Package>
        <Name>finch-devel</Name>
        <IsA>library</IsA>
        Development files of finch
        <RuntimeDependencies>
            <Dependency release="current">finch</Dependency>
            <Dependency release="current">libpurple-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include/gnt</Path>
            <Path fileType="header">/usr/include/finch</Path>
            <Path fileType="data">/usr/lib/pkgconfig/gnt*</Path>
            <Path fileType="data">/usr/lib/pkgconfig/finch*</Path>
        </Files>
    </Package>

    <Package>
        <Name>libpurple</Name>
        <IsA>library</IsA>
        The core library of pidgin, supports MSN, XMPP, ICQ, Gadu-Gadu and etc.
        <RuntimeDependencies>
            <Dependency>nss</Dependency>
            <Dependency>tcl</Dependency>
            <Dependency>dbus</Dependency>
            <Dependency>nspr</Dependency>
            <Dependency>perl</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>tcltk</Dependency>
            <Dependency>gnutls</Dependency>
            <Dependency>libidn</Dependency>
            <Dependency>libxml2</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>gstreamer</Dependency>
            <Dependency>avahi-glib</Dependency>
            <Dependency>avahi-libs</Dependency>
            <Dependency>cyrus-sasl</Dependency>
            <Dependency>gst-plugins-base</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib/purple-2</Path>
            <Path fileType="executable">/usr/bin/purple*</Path>
            <Path fileType="library">/usr/lib/libpurple*</Path>
        </Files>
    </Package>

    <Package>
        <Name>libpurple-devel</Name>
        <IsA>library</IsA>
        Development files of libpurple
        <RuntimeDependencies>
            <Dependency release="current">libpurple</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="data">/usr/share/aclocal</Path>
            <Path fileType="header">/usr/include/libpurple</Path>
            <Path fileType="man">/usr/share/man/man3/Purple*</Path>
            <Path fileType="data">/usr/lib/pkgconfig/purple.pc</Path>
        </Files>
    </Package>

    <History>
	<Update release="4">
            <Date>2017-07-30</Date>
            <Version>2.12.0</Version>
            <Comment>Rebuild</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="3">
            <Date>2017-07-07</Date>
            <Version>2.12.0</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-15</Date>
            <Version>2.10.11</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2015-11-20</Date>
            <Version>2.10.11</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>pidgin</Name>
        Eski sürümleri gaim olarak bilinen, hızlı haberleşme aracı
        <Description xml:lang="tr">Birçok protokolü (MSN Messenger, Yahoo, IRC, Jabber, Gadu-Gadu gibi) destekleyen hızlı haberleşme aracıdır.</Description>
    </Source>

    <Package>
        <Name>pidgin-devel</Name>
        pidgin paketine ait geliştirme dosyaları
    </Package>

    <Package>
        <Name>finch</Name>
        Konsol tabanlı anında mesajlaşma istemcisi
    </Package>

    <Package>
        <Name>finch-devel</Name>
        finch paketine ait geliştirme dosyaları
    </Package>

    <Package>
        <Name>libpurple</Name>
        Pidgin projesine ait, MSN, XMPP, ICQ, Gadu-Gadu gibi protokolleri destekleyen anında mesajlaşma kitaplığı
    </Package>

    <Package>
        <Name>libpurple-devel</Name>
        libpurple paketine ait geliştirme dosyaları
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import pisitools
from pisi.actionsapi import autotools
from pisi.actionsapi import get

def setup():
    autotools.configure()

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "COPYING")


code:
diff -Nur telepathy-butterfly-0.5.7.orig/butterfly/channel/Makefile.in telepathy-butterfly-0.5.7/butterfly/channel/Makefile.in
--- telepathy-butterfly-0.5.7.orig/butterfly/channel/Makefile.in	2010-03-22 21:27:54.692338442 +0200
+++ telepathy-butterfly-0.5.7/butterfly/channel/Makefile.in	2010-03-22 21:28:56.000326418 +0200
@@ -71,7 +71,6 @@
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(channeldir)"
-py_compile = $(top_srcdir)/py-compile
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -215,14 +214,7 @@
 	while read files; do \
 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(channeldir)'"; \
 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(channeldir)" || exit $$?; \
-	done || exit $$?; \
-	if test -n "$$dlist"; then \
-	  if test -z "$(DESTDIR)"; then \
-	    PYTHON=$(PYTHON) $(py_compile) --basedir "$(channeldir)" $$dlist; \
-	  else \
-	    PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(channeldir)" $$dlist; \
-	  fi; \
-	else :; fi
+	done || exit $$?;

 uninstall-channelPYTHON:
 	@$(NORMAL_UNINSTALL)
diff -Nur telepathy-butterfly-0.5.7.orig/butterfly/Makefile.in telepathy-butterfly-0.5.7/butterfly/Makefile.in
--- telepathy-butterfly-0.5.7.orig/butterfly/Makefile.in	2010-03-22 21:27:54.684324014 +0200
+++ telepathy-butterfly-0.5.7/butterfly/Makefile.in	2010-03-22 21:28:14.198325231 +0200
@@ -78,7 +78,6 @@
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(butterflydir)"
-py_compile = $(top_srcdir)/py-compile
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
 AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
@@ -262,14 +261,7 @@
 	while read files; do \
 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(butterflydir)'"; \
 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(butterflydir)" || exit $$?; \
-	done || exit $$?; \
-	if test -n "$$dlist"; then \
-	  if test -z "$(DESTDIR)"; then \
-	    PYTHON=$(PYTHON) $(py_compile) --basedir "$(butterflydir)" $$dlist; \
-	  else \
-	    PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(butterflydir)" $$dlist; \
-	  fi; \
-	else :; fi
+	done || exit $$?;

 uninstall-butterflyPYTHON:
 	@$(NORMAL_UNINSTALL)
diff -Nur telepathy-butterfly-0.5.7.orig/butterfly/media/Makefile.in telepathy-butterfly-0.5.7/butterfly/media/Makefile.in
--- telepathy-butterfly-0.5.7.orig/butterfly/media/Makefile.in	2010-03-22 21:27:54.684324014 +0200
+++ telepathy-butterfly-0.5.7/butterfly/media/Makefile.in	2010-03-22 21:28:26.231584145 +0200
@@ -71,7 +71,6 @@
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(mediadir)"
-py_compile = $(top_srcdir)/py-compile
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -211,14 +210,7 @@
 	while read files; do \
 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mediadir)'"; \
 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(mediadir)" || exit $$?; \
-	done || exit $$?; \
-	if test -n "$$dlist"; then \
-	  if test -z "$(DESTDIR)"; then \
-	    PYTHON=$(PYTHON) $(py_compile) --basedir "$(mediadir)" $$dlist; \
-	  else \
-	    PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(mediadir)" $$dlist; \
-	  fi; \
-	else :; fi
+	done || exit $$?;

 uninstall-mediaPYTHON:
 	@$(NORMAL_UNINSTALL)
diff -Nur telepathy-butterfly-0.5.7.orig/butterfly/util/Makefile.in telepathy-butterfly-0.5.7/butterfly/util/Makefile.in
--- telepathy-butterfly-0.5.7.orig/butterfly/util/Makefile.in	2010-03-22 21:27:54.692338442 +0200
+++ telepathy-butterfly-0.5.7/butterfly/util/Makefile.in	2010-03-22 21:28:39.885323534 +0200
@@ -71,7 +71,6 @@
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(utildir)"
-py_compile = $(top_srcdir)/py-compile
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -209,14 +208,7 @@
 	while read files; do \
 	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(utildir)'"; \
 	  $(INSTALL_DATA) $$files "$(DESTDIR)$(utildir)" || exit $$?; \
-	done || exit $$?; \
-	if test -n "$$dlist"; then \
-	  if test -z "$(DESTDIR)"; then \
-	    PYTHON=$(PYTHON) $(py_compile) --basedir "$(utildir)" $$dlist; \
-	  else \
-	    PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir "$(utildir)" $$dlist; \
-	  fi; \
-	else :; fi
+	done || exit $$?;

 uninstall-utilPYTHON:
 	@$(NORMAL_UNINSTALL)


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-butterfly</Name>
        <Homepage>http://telepathy.freedesktop.org/wiki</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2+</License>
        <IsA>library</IsA>
        <Summary>MSN connection manager for Telepathy</Summary>
        <Description>telepathy-butterfly is an MSN connection manager that handles presence, personal messages and conversations.</Description>
        <Archive sha1sum="73c9dba9f97ae5a6d981485e5f51c5930168f8ce" type="targz">http://telepathy.freedesktop.org/releases/telepathy-butterfly/telepathy-butterfly-0.5.15.tar.gz</Archive>
        <Patches>
            <Patch level="1">dont-compile-py.patch</Patch>
        </Patches>
    </Source>

    <Package>
        <Name>telepathy-butterfly</Name>
        <Files>
            <Path fileType="executable">/usr/libexec</Path>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="data">/usr/share/dbus-1</Path>
            <Path fileType="data">/usr/share/telepathy</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-05-18</Date>
            <Version>0.5.18</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.5.15</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2015-11-22</Date>
            <Version>0.5.15</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-butterfly</Name>
        <Summary xml:lang="tr">Telepathy için MSN bağlantı yöneticisi</Summary>
        <Description xml:lang="tr">telepathy-butterfly MSN için durum bilgisi, kişisel iletiler ve sohbeti destekleyen bir Telepathy eklentisidir.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def setup():
    #autotools.autoreconf("-vfi")
    autotools.configure("--disable-static")

    #pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("COPYING", "ChangeLog", "NEWS", "README")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-farstream</Name>
        <Homepage>http://telepathy.freedesktop.org/wiki</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>LGPLv2+</License>
        <IsA>library</IsA>
        Telepathy client to handle media streaming channels
        <Description>Telepathy-farstream is a Telepathy client that uses Farsight and Gstreamer to handle media streaming channels. It's used as a background process by other Telepathy clients, rather than presenting any user interface of its own.</Description>
        <Archive sha1sum="27d4fb3e31eb7404b5f2ba72f73194fc1d2b704f" type="targz">http://telepathy.freedesktop.org/releases/telepathy-farstream/telepathy-farstream-0.6.2.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>gobject-introspection-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
            <Dependency>farstream-devel</Dependency>
            <Dependency>gstreamer-next-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>telepathy-farstream</Name>
        <IsA>library</IsA>
        <RuntimeDependencies>
            <Dependency>dbus</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>farstream</Dependency>
            <Dependency>gstreamer-next</Dependency>
            <Dependency>telepathy-glib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="data">/usr/share/gir-1.0</Path>
        </Files>
    </Package>

    <Package>
        <Name>telepathy-farstream-docs</Name>
        <IsA>data:doc</IsA>
        Help files and API documents of telepathy-farstream library
        <RuntimeDependencies>
            <Dependency release="current">telepathy-farstream</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="doc">/usr/share/gtk-doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>telepathy-farstream-devel</Name>
        Development files for telepathy-farstream
        <RuntimeDependencies>
            <Dependency release="current">telepathy-farstream</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>farstream-devel</Dependency>
            <Dependency>gstreamer-next-devel</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-05-18</Date>
            <Version>0.6.2</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.6.2</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-03-30</Date>
            <Version>0.6.2</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-farstream</Name>
        Ortam yayın kanallarıyla anlaşabilmek için gerekli Telepathy istemcisi
        <Description xml:lang="tr">Telepathy-farstream, Farsight ve Gstreamer kitaplıklarını kullanan bir Telepathy istemcisidir.</Description>
    </Source>

    <Package>
        <Name>telepathy-farstream-docs</Name>
        telepathy-farstream kitaplığına ait yardım dosyaları ve API belgeleri
    </Package>

    <Package>
        <Name>telepathy-farstream-devel</Name>
        telepathy-farstream için geliştirme dosyaları
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def setup():
    autotools.configure("--disable-static")

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "COPYING", "README", "NEWS")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-gabble</Name>
        <Homepage>http://telepathy.freedesktop.org/wiki</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>LGPLv2+</License>
        <License>BSD</License>
        <IsA>library</IsA>
        <Summary>A Jabber/XMPP connection manager for Telepathy</Summary>
        <Description>telepathy-gabble is a Jabber/XMPP connection manager, that handles single and multi-user chats and voice calls.</Description>
        <Archive sha1sum="3277fc95ec6e4a9a5b07f5fe5b9de3283cb0c86d" type="targz">http://telepathy.freedesktop.org/releases/telepathy-gabble/telepathy-gabble-0.18.4.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>libnice-devel</Dependency>
            <Dependency>gobject-introspection-devel</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
            <Dependency>libxslt-devel</Dependency>
            <Dependency>gnutls-devel</Dependency>
            <Dependency>sqlite-devel</Dependency>
            <Dependency>libsoup-devel</Dependency>
            <Dependency>libnice-devel</Dependency>
            <Dependency>cyrus-sasl-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>telepathy-gabble</Name>
        <RuntimeDependencies>
            <Dependency>dbus</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>gnutls</Dependency>
            <Dependency>sqlite</Dependency>
            <Dependency>libnice</Dependency>
            <Dependency>libsoup</Dependency>
            <Dependency>libxml2</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>telepathy-glib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="executable">/usr/bin</Path>
            <Path fileType="executable">/usr/libexec</Path>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="data">/usr/share</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="man">/usr/share/man</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-05-18</Date>
            <Version>0.18.4</Version>
            <Comment>Version bump</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.18.3</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1" type="security">
            <Date>2015-11-21</Date>
            <Version>0.18.3</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-gabble</Name>
        <Summary xml:lang="tr">Telepathy için Jabber/XMPP bağlantı yöneticisi</Summary>
        <Description xml:lang="tr">telepathy-gabble, tek ve çoklu kullanıcılı sohbet, sesli aramalar gibi özellikler sunan Jabber/XMPP bağlantı yöneticisidir.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get

def setup():
    autotools.configure("--prefix=/usr \
                         --disable-static \
                         --enable-vala-bindings")

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "NEWS", "README")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-glib</Name>
        <Homepage>http://telepathy.freedesktop.org</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>LGPLv2.1</License>
        <IsA>library</IsA>
        GLib bindings for the Telepathy D-Bus protocol
        <Description>Telepathy-glib is the glib binding for the Telepathy unified framework for all forms of real time conversations, including instant messaging, IRC, voice calls and video calls.</Description>
        <Archive sha1sum="7451f3d3a7b82e2c4aba87fae77fd079577443a2" type="targz">http://telepathy.freedesktop.org/releases/telepathy-glib/telepathy-glib-0.24.1.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>gobject-introspection-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>libxslt-devel</Dependency>
            <Dependency>vala-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>telepathy-glib</Name>
        <IsA>library</IsA>
        GLib bindings for the Telepathy D-Bus protocol
        <RuntimeDependencies>
            <Dependency>dbus</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>dbus-glib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="data">/usr/share/gir-1.0</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>telepathy-glib-docs</Name>
        <IsA>data:doc</IsA>
        Help files and API documents of telepathy-glib library
        <RuntimeDependencies>
            <Dependency release="current">telepathy-glib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="doc">/usr/share/gtk-doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>telepathy-glib-devel</Name>
        Development files for telepathy-glib
        <RuntimeDependencies>
            <Dependency release="current">telepathy-glib</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
            <Path fileType="data">/usr/share/vala/vapi</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-04-18</Date>
            <Version>0.24.1</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.24.1</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-03-30</Date>
            <Version>0.24.1</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-glib</Name>
        Telepathy D-Bus protokolü için GLib bağlayıcıları
        <Description xml:lang="tr">Telepathy-glib, anında mesajlaşma, IRC, sesli ve görüntülü görüşmeler dahil her türlü anlık iletişim türlerini destekleyen Telepathy altyapısının GLib bağlayıcılarıdır.</Description>
    </Source>

    <Package>
        <Name>telepathy-glib-docs</Name>
        telepathy-glib kitaplığına ait yardım dosyaları ve API belgeleri
    </Package>

    <Package>
        <Name>telepathy-glib-devel</Name>
        telepathy-glib için geliştirme dosyaları
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get

def setup():
    autotools.configure("--disable-static --libexecdir=/usr/lib")
    shelltools.export("PYTHON", "/usr/bin/python2.7")

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "COPYING", "NEWS")


code:
--- a/src/media-stream.c
+++ b/src/media-stream.c
@@ -23,6 +23,7 @@
 #include "config.h"
 #include "media-stream.h"

+#include <libpurple/version.h>
 #include <libpurple/media/backend-iface.h>
 #include <string.h>
 #include <telepathy-glib/dbus.h>
@@ -1076,7 +1077,11 @@ haze_media_stream_new_native_candidate (
       if (proto == TP_MEDIA_STREAM_BASE_PROTO_UDP)
         protocol = PURPLE_MEDIA_NETWORK_PROTOCOL_UDP;
       else if (proto == TP_MEDIA_STREAM_BASE_PROTO_TCP)
+#if PURPLE_VERSION_CHECK (2, 10, 12)
+        protocol = PURPLE_MEDIA_NETWORK_PROTOCOL_TCP_PASSIVE;
+#else
         protocol = PURPLE_MEDIA_NETWORK_PROTOCOL_TCP;
+#endif
       else
         DEBUG ("Unknown network protocol");


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-haze</Name>
        <Homepage>http://developer.pidgin.im/wiki/Telepathy</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>GPLv2+</License>
        <IsA>library</IsA>
        <Summary>A multi-protocol Libpurple connection manager for Telepathy</Summary>
        <Description>telepathy-haze is a connection manager built around libpurple, the core of Pidgin, as a Summer of Code project under the Pidgin umbrella. Ultimately, any protocol supported by libpurple will be supported by telepathy-haze; for now, XMPP, MSN and AIM are known to work acceptably, and other will probably work too.</Description>
        <Archive sha1sum="e985b4553a5499470df14a0bf60a91fda09bc37d" type="targz">http://telepathy.freedesktop.org/releases/telepathy-haze/telepathy-haze-0.8.0.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>glib2-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>libpurple-devel</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
            <Dependency>libxslt-devel</Dependency>
            <Dependency>python-devel</Dependency>
        </BuildDependencies>
        <Patches>
            <Patch level="1">telepathy-haze-0.8.0-pidgin-2.10.12-compat.patch</Patch>
        </Patches>
    </Source>

    <Package>
        <Name>telepathy-haze</Name>
        <RuntimeDependencies>
            <Dependency>dbus</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>libpurple</Dependency>
            <Dependency>telepathy-glib</Dependency>
        </RuntimeDependencies>
        <Files>
<!--             <Path fileType="executable">/usr/libexec</Path> -->
            <Path fileType="data">/usr/share</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="library">/usr/lib</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-07-07</Date>
            <Version>0.8.0</Version>
            <Comment>Release Bump.</Comment>
            <Name>Kamil Atlı</Name>
            <Email>suvari@pisilinux.org</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.8.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2015-11-21</Date>
            <Version>0.8.0</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-haze</Name>
        <Summary xml:lang="tr">Çok protokol destekli, libpurple üzerine kurulu bir Telepathy bağlantı yöneticisi</Summary>
        <Description xml:lang="tr">Telepathy-haze Pidgin'in de kullandığı libpurple üzerine kurulu bir bağlantı yöneticisidir. Libpurple tarafından desteklenen tüm protokol teoride telepathy-haze ile de desteklenmektedir.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def setup():
    autotools.autoreconf("-vfi")
    autotools.configure("--disable-static \
                         --libexecdir=/usr/lib")

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "COPYING", "ChangeLog", "NEWS", "README")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-idle</Name>
        <Homepage>http://telepathy.freedesktop.org/wiki</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>LGPLv2+</License>
        <IsA>library</IsA>
        <Summary>IRC connection manager for Telepathy</Summary>
        <Description>telepathy-idle is a full-featured IRC connection manager for the Telepathy framework.</Description>
        <Archive sha1sum="932c11e7c131cc106ef0a6670158535925d9ca9e" type="targz">http://telepathy.freedesktop.org/releases/telepathy-idle/telepathy-idle-0.2.0.tar.gz</Archive>
        <BuildDependencies>
            <Dependency>telepathy-glib-devel</Dependency>
            <Dependency>libxslt-devel</Dependency>
            <Dependency>gobject-introspection-devel</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>telepathy-idle</Name>
        <RuntimeDependencies>
            <Dependency>glib2</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>telepathy-glib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="executable">/usr/lib</Path>
            <Path fileType="data">/usr/share/dbus-1</Path>
            <Path fileType="doc">/usr/share/doc</Path>
            <Path fileType="man">/usr/share/man</Path>
            <Path fileType="data">/usr/share/telepathy</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-05-20</Date>
            <Version>0.2.0</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.2.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2015-11-22</Date>
            <Version>0.2.0</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-idle</Name>
        <Summary xml:lang="tr">Telepathy için IRC (Internet Relay Chat) bağlantı yöneticisi</Summary>
        <Description xml:lang="tr">telepathy-idle Telepathy iletişim altyapısı için IRC (Internet Relay Chat) bağlantı yöneticisidir.</Description>
    </Source>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/copyleft/gpl.txt

from pisi.actionsapi import kde5
from pisi.actionsapi import pisitools

def setup():
    kde5.configure()

def build():
    kde5.make()

def install():
    kde5.install()

    pisitools.dodoc("AUTHORS", "COPYING", "TODO")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-logger-qt</Name>
        <Homepage>https://projects.kde.org/projects/extragear/network/telepathy/telepathy-logger-qt</Homepage>
        <Packager>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Packager>
        <License>GPLv2</License>
        <IsA>app</IsA>
        Qt bindings for telepathy logger
        <Description>Qt Wrapper around TpLogger client library.</Description>
        <Archive type="tarxz" sha1sum="6065bb78880f1a9e1eee079b9f92a17a31ed2e76">https://download.kde.org/stable/telepathy-logger-qt/17.08/src/telepathy-logger-qt-17.08.0.tar.xz</Archive>
        <BuildDependencies>
            <Dependency>extra-cmake-modules</Dependency>
            <Dependency>qt5-base-devel</Dependency>
            <Dependency>qt5-assistant-devel</Dependency>
            <Dependency>qt5-doc</Dependency>
            <Dependency>doxygen</Dependency>
            <Dependency>telepathy-qt5-devel</Dependency>
            <Dependency>glib2-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>libxml2-devel</Dependency>
            <Dependency>telepathy-logger-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>telepathy-logger-qt</Name>
        <RuntimeDependencies>
            <Dependency>glib2</Dependency>
            <Dependency>libgcc</Dependency>
            <Dependency>qt5-base</Dependency>
            <Dependency>telepathy-qt5</Dependency>
            <Dependency>telepathy-glib</Dependency>
            <Dependency>telepathy-logger</Dependency>
        </RuntimeDependencies>
        Qt bindings for telepathy logger
        <Files>
            <Path fileType="library">/usr/lib/libtelepathy-logger-qt.*</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>telepathy-logger-qt-devel</Name>
        Development files for telepathy-logger-qt
        <RuntimeDependencies>
            <Dependency release="current">telepathy-logger-qt</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
            <Dependency>qt5-base-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="library">/usr/lib/cmake/TelepathyLoggerQt</Path>
        </Files>
    </Package>

    <History>
        <Update release="4">
            <Date>2017-10-09</Date>
            <Version>17.08.0</Version>
            <Comment>Version bump.</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="3">
            <Date>2017-05-22</Date>
            <Version>15.04.0</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>15.04.0</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-03-30</Date>
            <Version>15.04.0</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get

def setup():
    #autotools.autoreconf("-vfi")
    autotools.configure("--prefix=/usr \
                         --libexecdir=/usr/lib/telepathy \
                         --disable-static")

def build():
    autotools.make("-j1")

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "ChangeLog", "COPYING", "README", "NEWS", "TODO")


code:
<?xml version="1.0" ?>
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
<PISI>
    <Source>
        <Name>telepathy-logger</Name>
        <Homepage>http://telepathy.freedesktop.org/wiki</Homepage>
        <Packager>
            <Name>PisiLinux Community</Name>
            <Email>admins@pisilinux.org</Email>
        </Packager>
        <License>LGPLv2+</License>
        <License>BSD</License>
        <IsA>library</IsA>
        Logging utility Telepathy
        <Description>telepathy-logger is a logging utility for Telepathy communication framework.</Description>
        <Archive sha1sum="549949d13ccd1bac7895eec0ce9b546782b22b5f" type="tarbz2">http://telepathy.freedesktop.org/releases/telepathy-logger/telepathy-logger-0.8.2.tar.bz2</Archive>
        <BuildDependencies>

            <Dependency>glib2-devel</Dependency>
            <Dependency>intltool</Dependency>
            <Dependency>libxslt-devel</Dependency>
            <Dependency>dbus-devel</Dependency>
            <Dependency>dbus-glib-devel</Dependency>
            <Dependency>gobject-introspection-devel</Dependency>
            <Dependency>libxml2-devel</Dependency>
            <Dependency>sqlite-devel</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
        </BuildDependencies>
    </Source>

    <Package>
        <Name>telepathy-logger</Name>
        <RuntimeDependencies>
            <Dependency>dbus</Dependency>
            <Dependency>glib2</Dependency>
            <Dependency>sqlite</Dependency>
            <Dependency>libxml2</Dependency>
            <Dependency>dbus-glib</Dependency>
            <Dependency>telepathy-glib</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="library">/usr/lib</Path>
            <Path fileType="data">/usr/share/gir-1.0/</Path>
            <Path fileType="data">/usr/share/telepathy</Path>
            <Path fileType="data">/usr/share/glib-2.0/</Path>
            <Path fileType="library">/usr/libexec</Path>
            <Path fileType="data">/usr/share/dbus-1</Path>
            <Path fileType="doc">/usr/share/gtk-doc</Path>
            <Path fileType="doc">/usr/share/doc</Path>
        </Files>
    </Package>

    <Package>
        <Name>telepathy-logger-devel</Name>
        Development files for telepathy-logger
        <RuntimeDependencies>
            <Dependency release="current">telepathy-logger</Dependency>
            <Dependency>telepathy-glib-devel</Dependency>
            <Dependency>libxml2-devel</Dependency>
        </RuntimeDependencies>
        <Files>
            <Path fileType="header">/usr/include</Path>
            <Path fileType="data">/usr/lib/pkgconfig</Path>
        </Files>
    </Package>

    <History>
        <Update release="3">
            <Date>2017-05-20</Date>
            <Version>0.8.2</Version>
            <Comment>Rebuild with new toolchain</Comment>
            <Name>Mustafa Cinasal</Name>
            <Email>muscnsl@gmail.com</Email>
        </Update>
        <Update release="2">
            <Date>2016-06-09</Date>
            <Version>0.8.2</Version>
            <Comment>Release Bump</Comment>
            <Name>Pisi Linux Community</Name>
            <Email>admin@pisilinux.org</Email>
        </Update>
        <Update release="1">
            <Date>2016-03-30</Date>
            <Version>0.8.2</Version>
            <Comment>First release</Comment>
            <Name>Alihan Öztürk</Name>
            <Email>alihan@pisilinux.org</Email>
        </Update>
    </History>
</PISI>


code:
<?xml version="1.0" ?>
<PISI>
    <Source>
        <Name>telepathy-logger</Name>
        Telepathy için kayıt tutma aracı.
        <Description xml:lang="tr">telepathy-logger, Telepathy iletişim altyapısı için kayıt tutma aracıdır.</Description>
    </Source>

    <Package>
        <Name>telepathy-logger-devel</Name>
        telepathy-logger için geliştirme dosyaları
    </Package>
</PISI>


code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt

from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import get

def setup():
    autotools.configure("--prefix=/usr \
                         --libexecdir=/usr/lib/telepathy \
                         --enable-gtk-doc \
                         --disable-upower \
                         --disable-static")

def build():
    autotools.make()

def install():
    autotools.rawInstall("DESTDIR=%s" % get.installDIR())

    pisitools.dodoc("AUTHORS", "COPYING", "ChangeLog", "README", "NEWS")