From 7ce92504714685b2adeb6d1af940afbe545bcf18f6a6a4d3751683996d540e8b Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 21 Jul 2016 05:41:33 +0000 Subject: [PATCH] Accepting request 406436 from GNOME:Apps 1 OBS-URL: https://build.opensuse.org/request/show/406436 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pidgin?expand=0&rev=112 --- pidgin-2.10.12.tar.bz2 | 3 - pidgin-2.10.12.tar.bz2.asc | 7 -- pidgin-2.11.0.tar.bz2 | 3 + pidgin-2.11.0.tar.bz2.asc | 7 ++ pidgin-gnome-keyring.patch | 149 +++++++++++++++++++------------------ pidgin.changes | 53 +++++++++++++ pidgin.spec | 43 +++++------ 7 files changed, 159 insertions(+), 106 deletions(-) delete mode 100644 pidgin-2.10.12.tar.bz2 delete mode 100644 pidgin-2.10.12.tar.bz2.asc create mode 100644 pidgin-2.11.0.tar.bz2 create mode 100644 pidgin-2.11.0.tar.bz2.asc diff --git a/pidgin-2.10.12.tar.bz2 b/pidgin-2.10.12.tar.bz2 deleted file mode 100644 index 663e65d..0000000 --- a/pidgin-2.10.12.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2c7523f0fefe89749c03b2b738ab9f7bd186da435be4762f1487eee31e77ffdd -size 9837598 diff --git a/pidgin-2.10.12.tar.bz2.asc b/pidgin-2.10.12.tar.bz2.asc deleted file mode 100644 index 20d280d..0000000 --- a/pidgin-2.10.12.tar.bz2.asc +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iEYEABECAAYFAlaFud4ACgkQdf4lmqisgDLznQCfWyI2lo7UotafQcwb+7HGbWdV -3UAAnRgqfjZ2NRtjMPDaVgJiC31Dyvwx -=raka ------END PGP SIGNATURE----- diff --git a/pidgin-2.11.0.tar.bz2 b/pidgin-2.11.0.tar.bz2 new file mode 100644 index 0000000..5413b13 --- /dev/null +++ b/pidgin-2.11.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f72613440586da3bdba6d58e718dce1b2c310adf8946de66d8077823e57b3333 +size 10037480 diff --git a/pidgin-2.11.0.tar.bz2.asc b/pidgin-2.11.0.tar.bz2.asc new file mode 100644 index 0000000..e350800 --- /dev/null +++ b/pidgin-2.11.0.tar.bz2.asc @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2 + +iEYEABECAAYFAldmMNYACgkQdf4lmqisgDKuxwCgj8Oxj98hSo28GL4oHU3NnEnv +S8wAnA+rJ4ivRMGTrUh0UfTlqfYdWsUV +=Xj1E +-----END PGP SIGNATURE----- diff --git a/pidgin-gnome-keyring.patch b/pidgin-gnome-keyring.patch index 7dbf60b..a648106 100644 --- a/pidgin-gnome-keyring.patch +++ b/pidgin-gnome-keyring.patch @@ -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 @@ diff -Naur pidgin-2.10.12.orig/configure.ac pidgin-2.10.12/configure.ac 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 + -+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 @@ diff -Naur pidgin-2.10.12.orig/libpurple/account.c pidgin-2.10.12/libpurple/acco } 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 @@ diff -Naur pidgin-2.10.12.orig/libpurple/account.c pidgin-2.10.12/libpurple/acco - 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 @@ diff -Naur pidgin-2.10.12.orig/libpurple/account.c pidgin-2.10.12/libpurple/acco + _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 @@ diff -Naur pidgin-2.10.12.orig/libpurple/account.c pidgin-2.10.12/libpurple/acco +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 @@ diff -Naur pidgin-2.10.12.orig/libpurple/Makefile.am pidgin-2.10.12/libpurple/Ma $(INTLLIBS) \ $(FARSTREAM_LIBS) \ $(GSTREAMER_LIBS) \ -@@ -334,7 +335,8 @@ +@@ -334,7 +335,8 @@ AM_CPPFLAGS = \ $(GSTAPP_CFLAGS) \ $(GSTINTERFACES_CFLAGS) \ $(IDN_CFLAGS) \ diff --git a/pidgin.changes b/pidgin.changes index 6d7624b..a0c0165 100644 --- a/pidgin.changes +++ b/pidgin.changes @@ -1,3 +1,56 @@ +------------------------------------------------------------------- +Tue Jun 21 12:02:53 UTC 2016 - sor.alexei@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. + ------------------------------------------------------------------- Sat Jan 2 09:45:54 UTC 2016 - sor.alexei@meowr.ru diff --git a/pidgin.spec b/pidgin.spec index b64d34a..d1ae902 100644 --- a/pidgin.spec +++ b/pidgin.spec @@ -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: tk-devel 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-devel 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 @@ Recommends: %{name}-emoticons-tango # 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,27 +100,21 @@ BuildRequires: libSM-devel 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 -%else -BuildRequires: openssl-certs -%endif -%if 0%{?suse_version} < 1120 -# Missing in silc-toolkit-devel. -BuildRequires: pam-devel -%endif -%if 0%{?suse_version} > 1110 -BuildRequires: translation-update-upstream -%endif -%if 0%{?suse_version} >= 1230 Requires: ca-certificates-mozilla %else +BuildRequires: openssl-certs Requires: openssl-certs %endif +%if 0%{?suse_version} >= 1120 +BuildRequires: translation-update-upstream +%else +# Missing in silc-toolkit-devel. +BuildRequires: pam-devel +%endif %description Pidgin is a chat program which lets you log in to accounts on multiple @@ -203,7 +197,7 @@ Requires: NetworkManager-glib 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: glib2-devel 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 @@ and plugins. %prep %setup -q -%if 0%{?suse_version} > 1110 +%if 0%{?suse_version} >= 1120 translation-update-upstream %endif %patch0 -p1 @@ -285,14 +279,14 @@ autoreconf -fi --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 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %{_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 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \ %{_bindir}/purple-send %{_bindir}/purple-send-async %{_bindir}/purple-url-handler -%{_datadir}/purple/ %{_libdir}/libpurple.so.* %{_libdir}/libpurple-client.so.* %dir %{_libdir}/purple-2/