code:
# HG changeset patch
# User Jakub Adam <jakub.adam@ktknet.cz>
# Date 1407847148 -7200
# Node ID 7767aaeade6404396204794f9bc75d9a2cb723f0
# Parent  8e4fa54f166211ffd6cd869cca611e8d64ea1fdf
media: make "init-media" signal handler optional

Change the logic so that the PurpleMedia instance isn't disposed when
"init-media" has no connected handlers.

We want the media object freed only when some signal callback function
explicitly returns FALSE, indicating an error during the initialization.

This is mostly useful for the imminent addition of private media streams.

diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c
--- a/libpurple/mediamanager.c
+++ b/libpurple/mediamanager.c
@@ -334,7 +334,7 @@
 {
 #ifdef USE_VV
 	PurpleMedia *media;
-	gboolean signal_ret;
+	guint signal_id;

 	media = PURPLE_MEDIA(g_object_new(purple_media_get_type(),
 			     "manager", manager,
@@ -343,12 +343,17 @@
 			     "initiator", initiator,
 			     NULL));

-	g_signal_emit(manager, purple_media_manager_signals[INIT_MEDIA], 0,
-			media, account, remote_user, &signal_ret);
+	signal_id = purple_media_manager_signals[INIT_MEDIA];

-	if (signal_ret == FALSE) {
-		g_object_unref(media);
-		return NULL;
+	if (g_signal_has_handler_pending(manager, signal_id, 0, FALSE)) {
+		gboolean signal_ret;
+
+		g_signal_emit(manager, signal_id, 0, media, account, remote_user,
+				&signal_ret);
+		if (signal_ret == FALSE) {
+			g_object_unref(media);
+			return NULL;
+		}
 	}

 	manager->priv->medias = g_list_append(manager->priv->medias, media);


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

repo_name: ayhanyalcinsoy/main


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);
 				}
 			}
 		}


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")