Date: Saturday, February 21, 2015 @ 11:32:03
  Author: foutrelis
Revision: 128067

archrelease: copy trunk to community-i686, community-x86_64

Added:
  
pidgin-sipe/repos/community-i686/0001-Fix-278-488-error-after-libnice-upgrade.patch
    (from rev 128066, 
pidgin-sipe/trunk/0001-Fix-278-488-error-after-libnice-upgrade.patch)
  pidgin-sipe/repos/community-i686/PKGBUILD
    (from rev 128066, pidgin-sipe/trunk/PKGBUILD)
  
pidgin-sipe/repos/community-x86_64/0001-Fix-278-488-error-after-libnice-upgrade.patch
    (from rev 128066, 
pidgin-sipe/trunk/0001-Fix-278-488-error-after-libnice-upgrade.patch)
  pidgin-sipe/repos/community-x86_64/PKGBUILD
    (from rev 128066, pidgin-sipe/trunk/PKGBUILD)
Deleted:
  pidgin-sipe/repos/community-i686/PKGBUILD
  pidgin-sipe/repos/community-x86_64/PKGBUILD

---------------------------------------------------------------------+
 /PKGBUILD                                                           |   86 
+++++++
 community-i686/0001-Fix-278-488-error-after-libnice-upgrade.patch   |  112 
++++++++++
 community-i686/PKGBUILD                                             |   34 ---
 community-x86_64/0001-Fix-278-488-error-after-libnice-upgrade.patch |  112 
++++++++++
 community-x86_64/PKGBUILD                                           |   34 ---
 5 files changed, 310 insertions(+), 68 deletions(-)

Copied: 
pidgin-sipe/repos/community-i686/0001-Fix-278-488-error-after-libnice-upgrade.patch
 (from rev 128066, 
pidgin-sipe/trunk/0001-Fix-278-488-error-after-libnice-upgrade.patch)
===================================================================
--- community-i686/0001-Fix-278-488-error-after-libnice-upgrade.patch           
                (rev 0)
+++ community-i686/0001-Fix-278-488-error-after-libnice-upgrade.patch   
2015-02-21 10:32:03 UTC (rev 128067)
@@ -0,0 +1,112 @@
+From 7ac053271f74f3c3d3b2d2d01dccda13237b344b Mon Sep 17 00:00:00 2001
+From: Jakub Adam <jakub.a...@ktknet.cz>
+Date: Thu, 12 Feb 2015 18:43:57 +0100
+Subject: [PATCH] Fix #278: 488 error after libnice upgrade
+
+When libnice 0.1.10 is combined with Farstream 0.1.x, TCP candidates
+that libnice now always generates are incorrectly labeled as UDP by
+Farstream (which has no support for TCP in 0.1 branch). We try to filter
+them in SIPE, assuming that RTP+RTCP UDP pairs that share the same port
+are actually mistagged TCP candidates.
+---
+ ChangeLog             |  3 +++
+ src/core/sipe-media.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 57 insertions(+), 2 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index a216fe1..40fef99 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++version 1.20.0 "???" (XXXX-XX-XX)
++      - Fixed #278: 488 error after libnice upgrade (Jakub Adam)
++
+ version 1.19.0 "Auto Authentication, MFA & Search Improvements" (2015-02-07)
+       - Feature #80: Move parsing of login name (Stefan Becker)
+       - Feature #79: support for Adium group chat bookmarks (David Matz, 
Stefan Becker)
+diff --git a/src/core/sipe-media.c b/src/core/sipe-media.c
+index 90b195b..710662e 100644
+--- a/src/core/sipe-media.c
++++ b/src/core/sipe-media.c
+@@ -3,7 +3,7 @@
+  *
+  * pidgin-sipe
+  *
+- * Copyright (C) 2011-2014 SIPE Project <http://sipe.sourceforge.net/>
++ * Copyright (C) 2011-2015 SIPE Project <http://sipe.sourceforge.net/>
+  * Copyright (C) 2010 Jakub Adam <jakub.a...@ktknet.cz>
+  *
+  * This program is free software; you can redistribute it and/or modify
+@@ -191,6 +191,56 @@ sdpcodec_compare(gconstpointer a, gconstpointer b)
+              ((const struct sdpcodec *)b)->id;
+ }
+ 
++static GList *
++remove_wrong_farstream_0_1_tcp_candidates(GList *candidates)
++{
++      GList *i = candidates;
++      GHashTable *foundation_to_candidate = g_hash_table_new_full(g_str_hash,
++                                                                  g_str_equal,
++                                                                  g_free,
++                                                                  NULL);
++
++      while (i) {
++              GList *next = i->next;
++              struct sipe_backend_candidate *c1 = i->data;
++
++              if (sipe_backend_candidate_get_protocol(c1) == 
SIPE_NETWORK_PROTOCOL_UDP) {
++                      gchar *foundation                 = 
sipe_backend_candidate_get_foundation(c1);
++                      struct sipe_backend_candidate *c2 = 
g_hash_table_lookup(foundation_to_candidate,
++                                                                              
foundation);
++
++                      if (c2) {
++                              g_free(foundation);
++
++                              if (sipe_backend_candidate_get_port(c1) ==
++                                  sipe_backend_candidate_get_port(c2) ||
++                                  (sipe_backend_candidate_get_type(c1) !=
++                                   SIPE_CANDIDATE_TYPE_HOST &&
++                                   sipe_backend_candidate_get_base_port(c1) ==
++                                   sipe_backend_candidate_get_base_port(c2))) 
{
++                                      /*
++                                       * We assume that RTP+RTCP UDP pairs
++                                       * that share the same port are
++                                       * actually mistagged TCP candidates.
++                                       */
++                                      candidates = g_list_remove(candidates, 
c2);
++                                      candidates = 
g_list_delete_link(candidates, i);
++                                      sipe_backend_candidate_free(c1);
++                                      sipe_backend_candidate_free(c2);
++                              }
++                      } else
++                              /* hash table takes ownership of "foundation" */
++                              g_hash_table_insert(foundation_to_candidate, 
foundation, c1);
++              }
++
++              i = next;
++      }
++
++      g_hash_table_destroy(foundation_to_candidate);
++
++      return candidates;
++}
++
+ static void
+ fill_zero_tcp_act_ports_from_tcp_pass(GSList *candidates)
+ {
+@@ -315,9 +365,11 @@ backend_stream_to_sdpmedia(struct sipe_backend_media 
*backend_media,
+       // Otherwise send all available local candidates.
+       candidates = 
sipe_backend_media_get_active_local_candidates(backend_media,
+                                                                   
backend_stream);
+-      if (!candidates)
++      if (!candidates) {
+               candidates = sipe_backend_get_local_candidates(backend_media,
+                                                              backend_stream);
++              candidates = 
remove_wrong_farstream_0_1_tcp_candidates(candidates);
++      }
+ 
+       media->candidates = backend_candidates_to_sdpcandidate(candidates);
+       fill_zero_tcp_act_ports_from_tcp_pass(media->candidates);
+-- 
+2.3.0
+

Deleted: community-i686/PKGBUILD
===================================================================
--- community-i686/PKGBUILD     2015-02-21 10:31:51 UTC (rev 128066)
+++ community-i686/PKGBUILD     2015-02-21 10:32:03 UTC (rev 128067)
@@ -1,34 +0,0 @@
-# $Id$
-# Maintainer: Jonathan Steel <jsteel at archlinux.org>
-# Contributor: Gicu Gorodenco <cyclopsi...@gmail.com>
-# Contributor: MaLiK <malik_...@o2.pl>
-# Contributor: dpevp <daniel.plaza.e...@gmail.com>
-# Contributor: Magnus Therning <mag...@therning.org>
-# Contributor: Anthony <anth...@littlegno.me>
-
-pkgname=pidgin-sipe
-pkgver=1.19.0
-pkgrel=1
-pkgdesc="Third-party Pidgin plugin for Microsoft Office 365/Lync/LCS/OCS"
-arch=('i686' 'x86_64')
-license=('GPL2')
-url="http://sipe.sourceforge.net/";
-depends=('gmime' 'libpurple')
-makedepends=('intltool')
-options=('!buildflags')
-source=(http://downloads.sourceforge.net/project/sipe/sipe/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2)
-md5sums=('0022c30982527c9cf94e4ad0a162aa08')
-
-build() {
-  cd $pkgname-$pkgver
-
-  ./configure --prefix=/usr --disable-telepathy
-
-  make
-}
-
-package() {
-  cd $pkgname-$pkgver
-
-  make DESTDIR="$pkgdir" install
-}

Copied: pidgin-sipe/repos/community-i686/PKGBUILD (from rev 128066, 
pidgin-sipe/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD                             (rev 0)
+++ community-i686/PKGBUILD     2015-02-21 10:32:03 UTC (rev 128067)
@@ -0,0 +1,43 @@
+# $Id$
+# Maintainer: Jonathan Steel <jsteel at archlinux.org>
+# Contributor: Gicu Gorodenco <cyclopsi...@gmail.com>
+# Contributor: MaLiK <malik_...@o2.pl>
+# Contributor: dpevp <daniel.plaza.e...@gmail.com>
+# Contributor: Magnus Therning <mag...@therning.org>
+# Contributor: Anthony <anth...@littlegno.me>
+
+pkgname=pidgin-sipe
+pkgver=1.19.0
+pkgrel=2
+pkgdesc="Third-party Pidgin plugin for Microsoft Office 365/Lync/LCS/OCS"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://sipe.sourceforge.net/";
+depends=('gmime' 'libpurple')
+makedepends=('intltool')
+options=('!buildflags')
+source=(http://downloads.sourceforge.net/project/sipe/sipe/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2
+        0001-Fix-278-488-error-after-libnice-upgrade.patch)
+md5sums=('0022c30982527c9cf94e4ad0a162aa08'
+         '5fe05bae567b8ff764b76e8a290b42cb')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # https://sourceforge.net/p/sipe/bugs/278/
+  patch -Np1 -i ../0001-Fix-278-488-error-after-libnice-upgrade.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+
+  ./configure --prefix=/usr --disable-telepathy
+
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+
+  make DESTDIR="$pkgdir" install
+}

Copied: 
pidgin-sipe/repos/community-x86_64/0001-Fix-278-488-error-after-libnice-upgrade.patch
 (from rev 128066, 
pidgin-sipe/trunk/0001-Fix-278-488-error-after-libnice-upgrade.patch)
===================================================================
--- community-x86_64/0001-Fix-278-488-error-after-libnice-upgrade.patch         
                (rev 0)
+++ community-x86_64/0001-Fix-278-488-error-after-libnice-upgrade.patch 
2015-02-21 10:32:03 UTC (rev 128067)
@@ -0,0 +1,112 @@
+From 7ac053271f74f3c3d3b2d2d01dccda13237b344b Mon Sep 17 00:00:00 2001
+From: Jakub Adam <jakub.a...@ktknet.cz>
+Date: Thu, 12 Feb 2015 18:43:57 +0100
+Subject: [PATCH] Fix #278: 488 error after libnice upgrade
+
+When libnice 0.1.10 is combined with Farstream 0.1.x, TCP candidates
+that libnice now always generates are incorrectly labeled as UDP by
+Farstream (which has no support for TCP in 0.1 branch). We try to filter
+them in SIPE, assuming that RTP+RTCP UDP pairs that share the same port
+are actually mistagged TCP candidates.
+---
+ ChangeLog             |  3 +++
+ src/core/sipe-media.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 57 insertions(+), 2 deletions(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index a216fe1..40fef99 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,6 @@
++version 1.20.0 "???" (XXXX-XX-XX)
++      - Fixed #278: 488 error after libnice upgrade (Jakub Adam)
++
+ version 1.19.0 "Auto Authentication, MFA & Search Improvements" (2015-02-07)
+       - Feature #80: Move parsing of login name (Stefan Becker)
+       - Feature #79: support for Adium group chat bookmarks (David Matz, 
Stefan Becker)
+diff --git a/src/core/sipe-media.c b/src/core/sipe-media.c
+index 90b195b..710662e 100644
+--- a/src/core/sipe-media.c
++++ b/src/core/sipe-media.c
+@@ -3,7 +3,7 @@
+  *
+  * pidgin-sipe
+  *
+- * Copyright (C) 2011-2014 SIPE Project <http://sipe.sourceforge.net/>
++ * Copyright (C) 2011-2015 SIPE Project <http://sipe.sourceforge.net/>
+  * Copyright (C) 2010 Jakub Adam <jakub.a...@ktknet.cz>
+  *
+  * This program is free software; you can redistribute it and/or modify
+@@ -191,6 +191,56 @@ sdpcodec_compare(gconstpointer a, gconstpointer b)
+              ((const struct sdpcodec *)b)->id;
+ }
+ 
++static GList *
++remove_wrong_farstream_0_1_tcp_candidates(GList *candidates)
++{
++      GList *i = candidates;
++      GHashTable *foundation_to_candidate = g_hash_table_new_full(g_str_hash,
++                                                                  g_str_equal,
++                                                                  g_free,
++                                                                  NULL);
++
++      while (i) {
++              GList *next = i->next;
++              struct sipe_backend_candidate *c1 = i->data;
++
++              if (sipe_backend_candidate_get_protocol(c1) == 
SIPE_NETWORK_PROTOCOL_UDP) {
++                      gchar *foundation                 = 
sipe_backend_candidate_get_foundation(c1);
++                      struct sipe_backend_candidate *c2 = 
g_hash_table_lookup(foundation_to_candidate,
++                                                                              
foundation);
++
++                      if (c2) {
++                              g_free(foundation);
++
++                              if (sipe_backend_candidate_get_port(c1) ==
++                                  sipe_backend_candidate_get_port(c2) ||
++                                  (sipe_backend_candidate_get_type(c1) !=
++                                   SIPE_CANDIDATE_TYPE_HOST &&
++                                   sipe_backend_candidate_get_base_port(c1) ==
++                                   sipe_backend_candidate_get_base_port(c2))) 
{
++                                      /*
++                                       * We assume that RTP+RTCP UDP pairs
++                                       * that share the same port are
++                                       * actually mistagged TCP candidates.
++                                       */
++                                      candidates = g_list_remove(candidates, 
c2);
++                                      candidates = 
g_list_delete_link(candidates, i);
++                                      sipe_backend_candidate_free(c1);
++                                      sipe_backend_candidate_free(c2);
++                              }
++                      } else
++                              /* hash table takes ownership of "foundation" */
++                              g_hash_table_insert(foundation_to_candidate, 
foundation, c1);
++              }
++
++              i = next;
++      }
++
++      g_hash_table_destroy(foundation_to_candidate);
++
++      return candidates;
++}
++
+ static void
+ fill_zero_tcp_act_ports_from_tcp_pass(GSList *candidates)
+ {
+@@ -315,9 +365,11 @@ backend_stream_to_sdpmedia(struct sipe_backend_media 
*backend_media,
+       // Otherwise send all available local candidates.
+       candidates = 
sipe_backend_media_get_active_local_candidates(backend_media,
+                                                                   
backend_stream);
+-      if (!candidates)
++      if (!candidates) {
+               candidates = sipe_backend_get_local_candidates(backend_media,
+                                                              backend_stream);
++              candidates = 
remove_wrong_farstream_0_1_tcp_candidates(candidates);
++      }
+ 
+       media->candidates = backend_candidates_to_sdpcandidate(candidates);
+       fill_zero_tcp_act_ports_from_tcp_pass(media->candidates);
+-- 
+2.3.0
+

Deleted: community-x86_64/PKGBUILD
===================================================================
--- community-x86_64/PKGBUILD   2015-02-21 10:31:51 UTC (rev 128066)
+++ community-x86_64/PKGBUILD   2015-02-21 10:32:03 UTC (rev 128067)
@@ -1,34 +0,0 @@
-# $Id$
-# Maintainer: Jonathan Steel <jsteel at archlinux.org>
-# Contributor: Gicu Gorodenco <cyclopsi...@gmail.com>
-# Contributor: MaLiK <malik_...@o2.pl>
-# Contributor: dpevp <daniel.plaza.e...@gmail.com>
-# Contributor: Magnus Therning <mag...@therning.org>
-# Contributor: Anthony <anth...@littlegno.me>
-
-pkgname=pidgin-sipe
-pkgver=1.19.0
-pkgrel=1
-pkgdesc="Third-party Pidgin plugin for Microsoft Office 365/Lync/LCS/OCS"
-arch=('i686' 'x86_64')
-license=('GPL2')
-url="http://sipe.sourceforge.net/";
-depends=('gmime' 'libpurple')
-makedepends=('intltool')
-options=('!buildflags')
-source=(http://downloads.sourceforge.net/project/sipe/sipe/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2)
-md5sums=('0022c30982527c9cf94e4ad0a162aa08')
-
-build() {
-  cd $pkgname-$pkgver
-
-  ./configure --prefix=/usr --disable-telepathy
-
-  make
-}
-
-package() {
-  cd $pkgname-$pkgver
-
-  make DESTDIR="$pkgdir" install
-}

Copied: pidgin-sipe/repos/community-x86_64/PKGBUILD (from rev 128066, 
pidgin-sipe/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD                           (rev 0)
+++ community-x86_64/PKGBUILD   2015-02-21 10:32:03 UTC (rev 128067)
@@ -0,0 +1,43 @@
+# $Id$
+# Maintainer: Jonathan Steel <jsteel at archlinux.org>
+# Contributor: Gicu Gorodenco <cyclopsi...@gmail.com>
+# Contributor: MaLiK <malik_...@o2.pl>
+# Contributor: dpevp <daniel.plaza.e...@gmail.com>
+# Contributor: Magnus Therning <mag...@therning.org>
+# Contributor: Anthony <anth...@littlegno.me>
+
+pkgname=pidgin-sipe
+pkgver=1.19.0
+pkgrel=2
+pkgdesc="Third-party Pidgin plugin for Microsoft Office 365/Lync/LCS/OCS"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://sipe.sourceforge.net/";
+depends=('gmime' 'libpurple')
+makedepends=('intltool')
+options=('!buildflags')
+source=(http://downloads.sourceforge.net/project/sipe/sipe/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2
+        0001-Fix-278-488-error-after-libnice-upgrade.patch)
+md5sums=('0022c30982527c9cf94e4ad0a162aa08'
+         '5fe05bae567b8ff764b76e8a290b42cb')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # https://sourceforge.net/p/sipe/bugs/278/
+  patch -Np1 -i ../0001-Fix-278-488-error-after-libnice-upgrade.patch
+}
+
+build() {
+  cd $pkgname-$pkgver
+
+  ./configure --prefix=/usr --disable-telepathy
+
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+
+  make DESTDIR="$pkgdir" install
+}

Reply via email to