Hello community, here is the log from the commit of package pidgin for openSUSE:Factory checked in at 2016-07-21 07:41:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pidgin (Old) and /work/SRC/openSUSE:Factory/.pidgin.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pidgin" Changes: -------- --- /work/SRC/openSUSE:Factory/pidgin/pidgin.changes 2016-01-09 23:13:01.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.pidgin.new/pidgin.changes 2016-07-21 07:41:34.000000000 +0200 @@ -1,0 +2,53 @@ +Tue Jun 21 12:02:53 UTC 2016 - sor.ale...@meowr.ru + +- Update to version 2.11.0: + + General: + - 2.10.12 was accidentally released with new additions to the + API and should have been released as 2.11.0. Unfortunately, + we did not catch the mistake until after 2.10.12 was released, + but we're fixing it now. + See ChangeLog.API for more information. + - Include the Mozilla certificate bundle. This fixes connecting + to servers with certificates from Let's Encrypt. + - Remove all 1024-bit CAs. + + libpurple: + - media: Fix an issue with ximagesink displaying only a corner + cut-out of a larger webcam video. + - mediamanager: Update output window destruction so that it + reflects recent changes in the media pipeline structure. + - Ported Instantbird's CommandUiOps to libpurple. + + Pidgin: + - Fix pidgin.im#14962. + - Fix alignment of incoming right-to-left messages in protocols + that don't support rich text. + - Fix a potential crash while exiting Pidgin. + + AIM: Add support for the newer kerberos-based authentication of + AIM 8.x. + + ICQ: Stop truncating passwords to 8 characters like old ICQ + clients did (pidgin.im#16692). + If you actually needed this, truncate your password manually by + pressing backspace a few times. + + IRC: Base64-decode SASL messages before passing to libsasl + (pidgin.im#16268). + + MXit: + - Fix a buffer overflow (TALOS-CAN-0120). + - Fix a remote out-of-bounds read (TALOS-CAN-0123, TALOS-CAN-0140). + - Fix a remote out-of-band read (TALOS-CAN-0138, TALOS-CAN-0135). + - Fix an invalid read (TALOS-CAN-0118). + - Fix a remote buffer overflow vulnerability (TALOS-CAN-0119). + - Fix a directory traversal issue (TALOS-CAN-0128). + - Fix a remote denial of service vulnerability that could result + in a null pointer dereference (TALOS-CAN-0133). + - Fix a remote denial of service that could result in an + out-of-bounds read (TALOS-CAN-0134). + - Fix multiple remote buffer overflows (TALOS-CAN-0136). + - Fix a remote null pointer dereference (TALOS-CAN-0137). + - Fix a remote code execution issue discovered (TALOS-CAN-0142). + - Fix a remote denial of service vulnerability in contact mood + handling (TALOS-CAN-0141). + - Fix a remote out-of-bounds write vulnerability + (TALOS-CAN-0139). + - Fix a remote out-of-bounds read (TALOS-CAN-0143). +- Clean pidgin-gnome-keyring.patch up a bit. + +------------------------------------------------------------------- Old: ---- pidgin-2.10.12.tar.bz2 pidgin-2.10.12.tar.bz2.asc New: ---- pidgin-2.11.0.tar.bz2 pidgin-2.11.0.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pidgin.spec ++++++ --- /var/tmp/diff_new_pack.ESXnNR/_old 2016-07-21 07:41:35.000000000 +0200 +++ /var/tmp/diff_new_pack.ESXnNR/_new 2016-07-21 07:41:35.000000000 +0200 @@ -18,7 +18,7 @@ %define _name Pidgin Name: pidgin -Version: 2.10.12 +Version: 2.11.0 Release: 0 Summary: Multiprotocol Instant Messaging Client License: GPL-2.0+ @@ -72,7 +72,7 @@ BuildRequires: update-desktop-files Requires: perl-base >= %{perl_version} BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) +%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse}) BuildRequires: farstream-devel >= 0.2.7 BuildRequires: gstreamer-devel BuildRequires: gstreamer-plugins-base-devel @@ -82,7 +82,7 @@ BuildRequires: gstreamer-0_10-plugins-base-devel Recommends: gstreamer-0_10-plugins-good %endif -%if 0%{?suse_version} <= 1110 +%if 0%{?suse_version} < 1120 Recommends: %{name}-emoticons-nld Recommends: %{name}-emoticons-tango %endif @@ -92,7 +92,7 @@ # For openSUSE, it's better to avoid this patch: # + does not work well outside GNOME # - passwords are stored in readable form -%if 0%{?suse_version} <= 1110 +%if 0%{?suse_version} < 1120 BuildRequires: gnome-keyring-devel %endif %if 0%{?suse_version} > 1210 @@ -100,26 +100,20 @@ BuildRequires: libX11-devel BuildRequires: libXScrnSaver-devel BuildRequires: libXext-devel -%endif -%if 0%{?suse_version} > 1210 BuildRequires: mozilla-nss-devel %endif %if 0%{?suse_version} >= 1230 BuildRequires: ca-certificates-mozilla +Requires: ca-certificates-mozilla %else BuildRequires: openssl-certs +Requires: openssl-certs %endif -%if 0%{?suse_version} < 1120 -# Missing in silc-toolkit-devel. -BuildRequires: pam-devel -%endif -%if 0%{?suse_version} > 1110 +%if 0%{?suse_version} >= 1120 BuildRequires: translation-update-upstream -%endif -%if 0%{?suse_version} >= 1230 -Requires: ca-certificates-mozilla %else -Requires: openssl-certs +# Missing in silc-toolkit-devel. +BuildRequires: pam-devel %endif %description @@ -203,7 +197,7 @@ Requires: glib2-devel Requires: libpurple = %{version} Requires: libxml2-devel -Requires: pkg-config +Requires: pkgconfig %description -n libpurple-devel The libpurple-devel package contains the header files, developer @@ -247,7 +241,7 @@ Requires: glibc-devel Requires: libpurple-devel = %{version} Requires: ncurses-devel -Requires: pkg-config +Requires: pkgconfig %description -n finch-devel The finch-devel package contains the header files, developer @@ -256,7 +250,7 @@ %prep %setup -q -%if 0%{?suse_version} > 1110 +%if 0%{?suse_version} >= 1120 translation-update-upstream %endif %patch0 -p1 @@ -285,14 +279,14 @@ --enable-cyrus-sasl \ --enable-dbus \ --enable-gstreamer \ -%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) +%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120100 && 0%{?is_opensuse}) --with-gstreamer=1.0 \ --enable-vv \ %else --with-gstreamer=0.10 \ --disable-vv \ %endif -%if 0%{?suse_version} <= 1110 +%if 0%{?suse_version} < 1120 --enable-gnome-keyring \ %endif --enable-nm \ @@ -363,13 +357,13 @@ %{_datadir}/icons/hicolor/*/apps/* %{_datadir}/applications/*.desktop %{_datadir}/sounds/purple/ -%{_mandir}/man1/%{name}.* +%{_mandir}/man1/%{name}.1%{?ext_man} %files devel %defattr(-,root,root) %{_includedir}/%{name} %{_libdir}/pkgconfig/%{name}.pc -%{_mandir}/man3/%{_name}.* +%{_mandir}/man3/%{_name}.3*%{?ext_man} %files -n libpurple -f %{name}-%{version}-purpleplugins %defattr(-,root,root) @@ -379,7 +373,6 @@ %{_bindir}/purple-send %{_bindir}/purple-send-async %{_bindir}/purple-url-handler -%{_datadir}/purple/ %{_libdir}/libpurple.so.* %{_libdir}/libpurple-client.so.* %dir %{_libdir}/purple-2/ ++++++ pidgin-2.10.12.tar.bz2 -> pidgin-2.11.0.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/pidgin/pidgin-2.10.12.tar.bz2 /work/SRC/openSUSE:Factory/.pidgin.new/pidgin-2.11.0.tar.bz2 differ: char 11, line 1 ++++++ pidgin-gnome-keyring.patch ++++++ --- /var/tmp/diff_new_pack.ESXnNR/_old 2016-07-21 07:41:35.000000000 +0200 +++ /var/tmp/diff_new_pack.ESXnNR/_new 2016-07-21 07:41:35.000000000 +0200 @@ -1,7 +1,6 @@ -diff -Naur pidgin-2.10.12.orig/configure.ac pidgin-2.10.12/configure.ac ---- pidgin-2.10.12.orig/configure.ac -+++ pidgin-2.10.12/configure.ac -@@ -2222,6 +2222,20 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -2222,6 +2222,20 @@ MSN, Yahoo!, Novell Groupwise and Google fi dnl ####################################################################### @@ -22,30 +21,32 @@ dnl # Check for Tcl dnl ####################################################################### AC_ARG_ENABLE(tcl, [AC_HELP_STRING([--disable-tcl], -diff -Naur pidgin-2.10.12.orig/libpurple/account.c pidgin-2.10.12/libpurple/account.c ---- pidgin-2.10.12.orig/libpurple/account.c -+++ pidgin-2.10.12/libpurple/account.c -@@ -54,6 +54,13 @@ +--- a/libpurple/account.c ++++ b/libpurple/account.c +@@ -54,6 +54,16 @@ typedef struct #define PURPLE_ACCOUNT_GET_PRIVATE(account) \ ((PurpleAccountPrivate *) (account->priv)) +#ifdef PURPLE_ENABLE_KEYRING +#include <gnome-keyring.h> + -+static char * purple_account_get_password_from_keyring (const char *_prpl, const char *_user); -+static gboolean purple_account_set_password_in_keyring (const char *_prpl, const char *_user, const char *password); ++static char * ++purple_account_get_password_from_keyring(const char *_prpl, const char *_user); ++static gboolean ++purple_account_set_password_in_keyring(const char *_prpl, const char *_user, ++ const char *password); +#endif + /* TODO: Should use PurpleValue instead of this? What about "ui"? */ typedef struct { -@@ -393,8 +400,13 @@ +@@ -394,8 +404,13 @@ account_to_xmlnode(PurpleAccount *accoun if (purple_account_get_remember_password(account) && ((tmp = purple_account_get_password(account)) != NULL)) { +#ifdef PURPLE_ENABLE_KEYRING -+ purple_account_set_password_in_keyring( purple_account_get_protocol_id(account), -+ purple_account_get_username(account), tmp); ++ purple_account_set_password_in_keyring(purple_account_get_protocol_id(account), ++ purple_account_get_username(account), tmp); +#else child = xmlnode_new_child(node, "password"); xmlnode_insert_data(child, tmp, -1); @@ -53,12 +54,32 @@ } else if (_purple_account_is_password_encrypted(account)) { const char *keyring = NULL; const char *mode = NULL; -@@ -909,37 +921,51 @@ +@@ -903,6 +918,7 @@ parse_account(xmlnode *node) + char *protocol_id = NULL; + char *name = NULL; + char *data; ++ gboolean got_pwd = FALSE; + + child = xmlnode_get_child(node, "protocol"); + if (child != NULL) +@@ -927,36 +943,51 @@ parse_account(xmlnode *node) } ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */ -- g_free(name); -- g_free(protocol_id); ++#ifdef PURPLE_ENABLE_KEYRING ++ ++ /* Read the password from GNOME Keyring */ ++ data = purple_account_get_password_from_keyring(protocol_id, name); ++ if (data) ++ { ++ got_pwd = TRUE; ++ purple_account_set_remember_password(ret, TRUE); ++ purple_account_set_password(ret, data); ++ g_free(data); ++ } ++#endif + g_free(name); + g_free(protocol_id); /* Read the password */ - child = xmlnode_get_child(node, "password"); @@ -85,20 +106,8 @@ - purple_debug_warning("account", "found encrypted password, " - "but it's not supported in 2.x.y\n"); - _purple_account_set_encrypted_password(ret, keyring_id, mode, data); -- } -+ gboolean got_pwd = FALSE; -+#ifdef PURPLE_ENABLE_KEYRING -+ data = purple_account_get_password_from_keyring(protocol_id, name); -+ if (data) ++ if (!got_pwd) + { -+ got_pwd = TRUE; -+ purple_account_set_remember_password(ret, TRUE); -+ purple_account_set_password(ret, data); - g_free(data); - } -+#endif -+ if (!got_pwd) -+ { + child = xmlnode_get_child(node, "password"); + if (child != NULL) { + const char *keyring_id = xmlnode_get_attrib(child, "keyring_id"); @@ -125,14 +134,12 @@ + _purple_account_set_encrypted_password(ret, keyring_id, mode, data); + } + g_free(data); -+ } -+ } -+ g_free(name); -+ g_free(protocol_id); + } +- g_free(data); + } /* Read the alias */ - child = xmlnode_get_child(node, "alias"); -@@ -3306,6 +3332,63 @@ +@@ -3375,6 +3406,64 @@ purple_accounts_uninit(void) purple_signals_unregister_by_instance(handle); } @@ -140,66 +147,66 @@ +static char * +purple_account_get_password_from_keyring(const char *_prpl, const char *_user) +{ -+ GnomeKeyringNetworkPasswordData *found_item; -+ GnomeKeyringResult result; -+ GList *matches; -+ char *password; ++ GnomeKeyringNetworkPasswordData *found_item; ++ GnomeKeyringResult result; ++ GList *matches; ++ char *password; + + matches = NULL; + -+ result = gnome_keyring_find_network_password_sync ( -+ _user, /* user */ -+ NULL, /* domain */ -+ "gaim.local", /* server */ -+ NULL, /* object */ -+ _prpl, /* protocol */ -+ NULL, /* authtype */ -+ 1863, /* port */ -+ &matches); ++ result = gnome_keyring_find_network_password_sync( ++ _user, /* user */ ++ NULL, /* domain */ ++ "gaim.local", /* server */ ++ NULL, /* object */ ++ _prpl, /* protocol */ ++ NULL, /* authtype */ ++ 1863, /* port */ ++ &matches); + + if (result != GNOME_KEYRING_RESULT_OK) + return NULL; + -+ g_assert (matches != NULL && matches->data != NULL); ++ g_assert(matches != NULL && matches->data != NULL); + + found_item = (GnomeKeyringNetworkPasswordData *) matches->data; + -+ password = g_strdup (found_item->password); ++ password = g_strdup(found_item->password); + -+ gnome_keyring_network_password_list_free (matches); ++ gnome_keyring_network_password_list_free(matches); + + return password; +} + +static gboolean -+purple_account_set_password_in_keyring (const char *_prpl, const char *_user, const char *_password) ++purple_account_set_password_in_keyring(const char *_prpl, const char *_user, ++ const char *_password) +{ -+ GnomeKeyringResult result; -+ guint32 item_id; ++ GnomeKeyringResult result; ++ guint32 item_id; + -+ result = gnome_keyring_set_network_password_sync ( -+ NULL, /* default keyring */ -+ _user, /* user */ -+ NULL, /* domain */ -+ "gaim.local", /* server */ -+ NULL, /* object */ -+ _prpl, /* protocol */ -+ NULL, /* authtype */ -+ 1863, /* port */ -+ _password, /* password */ -+ &item_id); ++ result = gnome_keyring_set_network_password_sync( ++ NULL, /* default keyring */ ++ _user, /* user */ ++ NULL, /* domain */ ++ "gaim.local", /* server */ ++ NULL, /* object */ ++ _prpl, /* protocol */ ++ NULL, /* authtype */ ++ 1863, /* port */ ++ _password, /* password */ ++ &item_id); + -+ return result == GNOME_KEYRING_RESULT_OK; ++ return (result == GNOME_KEYRING_RESULT_OK); +} +#endif + /* libpurple 3.0.0 compatibility */ static void -diff -Naur pidgin-2.10.12.orig/libpurple/Makefile.am pidgin-2.10.12/libpurple/Makefile.am ---- pidgin-2.10.12.orig/libpurple/Makefile.am -+++ pidgin-2.10.12/libpurple/Makefile.am -@@ -309,6 +309,7 @@ +--- a/libpurple/Makefile.am ++++ b/libpurple/Makefile.am +@@ -309,6 +309,7 @@ libpurple_la_LIBADD = \ $(GLIB_LIBS) \ $(LIBXML_LIBS) \ $(NETWORKMANAGER_LIBS) \ @@ -207,7 +214,7 @@ $(INTLLIBS) \ $(FARSTREAM_LIBS) \ $(GSTREAMER_LIBS) \ -@@ -334,7 +335,8 @@ +@@ -334,7 +335,8 @@ AM_CPPFLAGS = \ $(GSTAPP_CFLAGS) \ $(GSTINTERFACES_CFLAGS) \ $(IDN_CFLAGS) \