SHA256
1
0
forked from pool/pidgin

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
This commit is contained in:
Dominique Leuenberger 2016-07-21 05:41:33 +00:00 committed by Git OBS Bridge
parent 4288cd1794
commit 7ce9250471
7 changed files with 159 additions and 106 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2c7523f0fefe89749c03b2b738ab9f7bd186da435be4762f1487eee31e77ffdd
size 9837598

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlaFud4ACgkQdf4lmqisgDLznQCfWyI2lo7UotafQcwb+7HGbWdV
3UAAnRgqfjZ2NRtjMPDaVgJiC31Dyvwx
=raka
-----END PGP SIGNATURE-----

3
pidgin-2.11.0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f72613440586da3bdba6d58e718dce1b2c310adf8946de66d8077823e57b3333
size 10037480

View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iEYEABECAAYFAldmMNYACgkQdf4lmqisgDKuxwCgj8Oxj98hSo28GL4oHU3NnEnv
S8wAnA+rJ4ivRMGTrUh0UfTlqfYdWsUV
=Xj1E
-----END PGP SIGNATURE-----

View File

@ -1,7 +1,6 @@
diff -Naur pidgin-2.10.12.orig/configure.ac pidgin-2.10.12/configure.ac --- a/configure.ac
--- pidgin-2.10.12.orig/configure.ac +++ b/configure.ac
+++ pidgin-2.10.12/configure.ac @@ -2222,6 +2222,20 @@ MSN, Yahoo!, Novell Groupwise and Google
@@ -2222,6 +2222,20 @@
fi fi
dnl ####################################################################### 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 # Check for Tcl
dnl ####################################################################### dnl #######################################################################
AC_ARG_ENABLE(tcl, [AC_HELP_STRING([--disable-tcl], 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 --- a/libpurple/account.c
--- pidgin-2.10.12.orig/libpurple/account.c +++ b/libpurple/account.c
+++ pidgin-2.10.12/libpurple/account.c @@ -54,6 +54,16 @@ typedef struct
@@ -54,6 +54,13 @@
#define PURPLE_ACCOUNT_GET_PRIVATE(account) \ #define PURPLE_ACCOUNT_GET_PRIVATE(account) \
((PurpleAccountPrivate *) (account->priv)) ((PurpleAccountPrivate *) (account->priv))
+#ifdef PURPLE_ENABLE_KEYRING +#ifdef PURPLE_ENABLE_KEYRING
+#include <gnome-keyring.h> +#include <gnome-keyring.h>
+ +
+static char * purple_account_get_password_from_keyring (const char *_prpl, const char *_user); +static char *
+static gboolean purple_account_set_password_in_keyring (const char *_prpl, const char *_user, const char *password); +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 +#endif
+ +
/* TODO: Should use PurpleValue instead of this? What about "ui"? */ /* TODO: Should use PurpleValue instead of this? What about "ui"? */
typedef struct typedef struct
{ {
@@ -393,8 +400,13 @@ @@ -394,8 +404,13 @@ account_to_xmlnode(PurpleAccount *accoun
if (purple_account_get_remember_password(account) && if (purple_account_get_remember_password(account) &&
((tmp = purple_account_get_password(account)) != NULL)) ((tmp = purple_account_get_password(account)) != NULL))
{ {
+#ifdef PURPLE_ENABLE_KEYRING +#ifdef PURPLE_ENABLE_KEYRING
+ purple_account_set_password_in_keyring( purple_account_get_protocol_id(account), + purple_account_set_password_in_keyring(purple_account_get_protocol_id(account),
+ purple_account_get_username(account), tmp); + purple_account_get_username(account), tmp);
+#else +#else
child = xmlnode_new_child(node, "password"); child = xmlnode_new_child(node, "password");
xmlnode_insert_data(child, tmp, -1); 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)) { } else if (_purple_account_is_password_encrypted(account)) {
const char *keyring = NULL; const char *keyring = NULL;
const char *mode = 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: */ ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */
- g_free(name); +#ifdef PURPLE_ENABLE_KEYRING
- g_free(protocol_id); +
+ /* 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 */ /* Read the password */
- child = xmlnode_get_child(node, "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, " - purple_debug_warning("account", "found encrypted password, "
- "but it's not supported in 2.x.y\n"); - "but it's not supported in 2.x.y\n");
- _purple_account_set_encrypted_password(ret, keyring_id, mode, data); - _purple_account_set_encrypted_password(ret, keyring_id, mode, data);
- } + if (!got_pwd)
+ gboolean got_pwd = FALSE;
+#ifdef PURPLE_ENABLE_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
+ if (!got_pwd)
+ {
+ child = xmlnode_get_child(node, "password"); + child = xmlnode_get_child(node, "password");
+ if (child != NULL) { + if (child != NULL) {
+ const char *keyring_id = xmlnode_get_attrib(child, "keyring_id"); + 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); + _purple_account_set_encrypted_password(ret, keyring_id, mode, data);
+ } + }
+ g_free(data); + g_free(data);
+ } }
+ } - g_free(data);
+ g_free(name); }
+ g_free(protocol_id);
/* Read the alias */ /* Read the alias */
child = xmlnode_get_child(node, "alias"); @@ -3375,6 +3406,64 @@ purple_accounts_uninit(void)
@@ -3306,6 +3332,63 @@
purple_signals_unregister_by_instance(handle); 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 * +static char *
+purple_account_get_password_from_keyring(const char *_prpl, const char *_user) +purple_account_get_password_from_keyring(const char *_prpl, const char *_user)
+{ +{
+ GnomeKeyringNetworkPasswordData *found_item; + GnomeKeyringNetworkPasswordData *found_item;
+ GnomeKeyringResult result; + GnomeKeyringResult result;
+ GList *matches; + GList *matches;
+ char *password; + char *password;
+ +
+ matches = NULL; + matches = NULL;
+ +
+ result = gnome_keyring_find_network_password_sync ( + result = gnome_keyring_find_network_password_sync(
+ _user, /* user */ + _user, /* user */
+ NULL, /* domain */ + NULL, /* domain */
+ "gaim.local", /* server */ + "gaim.local", /* server */
+ NULL, /* object */ + NULL, /* object */
+ _prpl, /* protocol */ + _prpl, /* protocol */
+ NULL, /* authtype */ + NULL, /* authtype */
+ 1863, /* port */ + 1863, /* port */
+ &matches); + &matches);
+ +
+ if (result != GNOME_KEYRING_RESULT_OK) + if (result != GNOME_KEYRING_RESULT_OK)
+ return NULL; + return NULL;
+ +
+ g_assert (matches != NULL && matches->data != NULL); + g_assert(matches != NULL && matches->data != NULL);
+ +
+ found_item = (GnomeKeyringNetworkPasswordData *) matches->data; + 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; + return password;
+} +}
+ +
+static gboolean +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; + GnomeKeyringResult result;
+ guint32 item_id; + guint32 item_id;
+ +
+ result = gnome_keyring_set_network_password_sync ( + result = gnome_keyring_set_network_password_sync(
+ NULL, /* default keyring */ + NULL, /* default keyring */
+ _user, /* user */ + _user, /* user */
+ NULL, /* domain */ + NULL, /* domain */
+ "gaim.local", /* server */ + "gaim.local", /* server */
+ NULL, /* object */ + NULL, /* object */
+ _prpl, /* protocol */ + _prpl, /* protocol */
+ NULL, /* authtype */ + NULL, /* authtype */
+ 1863, /* port */ + 1863, /* port */
+ _password, /* password */ + _password, /* password */
+ &item_id); + &item_id);
+ +
+ return result == GNOME_KEYRING_RESULT_OK; + return (result == GNOME_KEYRING_RESULT_OK);
+} +}
+#endif +#endif
+ +
/* libpurple 3.0.0 compatibility */ /* libpurple 3.0.0 compatibility */
static void static void
diff -Naur pidgin-2.10.12.orig/libpurple/Makefile.am pidgin-2.10.12/libpurple/Makefile.am --- a/libpurple/Makefile.am
--- pidgin-2.10.12.orig/libpurple/Makefile.am +++ b/libpurple/Makefile.am
+++ pidgin-2.10.12/libpurple/Makefile.am @@ -309,6 +309,7 @@ libpurple_la_LIBADD = \
@@ -309,6 +309,7 @@
$(GLIB_LIBS) \ $(GLIB_LIBS) \
$(LIBXML_LIBS) \ $(LIBXML_LIBS) \
$(NETWORKMANAGER_LIBS) \ $(NETWORKMANAGER_LIBS) \
@ -207,7 +214,7 @@ diff -Naur pidgin-2.10.12.orig/libpurple/Makefile.am pidgin-2.10.12/libpurple/Ma
$(INTLLIBS) \ $(INTLLIBS) \
$(FARSTREAM_LIBS) \ $(FARSTREAM_LIBS) \
$(GSTREAMER_LIBS) \ $(GSTREAMER_LIBS) \
@@ -334,7 +335,8 @@ @@ -334,7 +335,8 @@ AM_CPPFLAGS = \
$(GSTAPP_CFLAGS) \ $(GSTAPP_CFLAGS) \
$(GSTINTERFACES_CFLAGS) \ $(GSTINTERFACES_CFLAGS) \
$(IDN_CFLAGS) \ $(IDN_CFLAGS) \

View File

@ -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 Sat Jan 2 09:45:54 UTC 2016 - sor.alexei@meowr.ru

View File

@ -18,7 +18,7 @@
%define _name Pidgin %define _name Pidgin
Name: pidgin Name: pidgin
Version: 2.10.12 Version: 2.11.0
Release: 0 Release: 0
Summary: Multiprotocol Instant Messaging Client Summary: Multiprotocol Instant Messaging Client
License: GPL-2.0+ License: GPL-2.0+
@ -72,7 +72,7 @@ BuildRequires: tk-devel
BuildRequires: update-desktop-files BuildRequires: update-desktop-files
Requires: perl-base >= %{perl_version} Requires: perl-base >= %{perl_version}
BuildRoot: %{_tmppath}/%{name}-%{version}-build 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: farstream-devel >= 0.2.7
BuildRequires: gstreamer-devel BuildRequires: gstreamer-devel
BuildRequires: gstreamer-plugins-base-devel BuildRequires: gstreamer-plugins-base-devel
@ -82,7 +82,7 @@ BuildRequires: gstreamer-0_10-devel
BuildRequires: gstreamer-0_10-plugins-base-devel BuildRequires: gstreamer-0_10-plugins-base-devel
Recommends: gstreamer-0_10-plugins-good Recommends: gstreamer-0_10-plugins-good
%endif %endif
%if 0%{?suse_version} <= 1110 %if 0%{?suse_version} < 1120
Recommends: %{name}-emoticons-nld Recommends: %{name}-emoticons-nld
Recommends: %{name}-emoticons-tango Recommends: %{name}-emoticons-tango
%endif %endif
@ -92,7 +92,7 @@ Recommends: %{name}-emoticons-tango
# For openSUSE, it's better to avoid this patch: # For openSUSE, it's better to avoid this patch:
# + does not work well outside GNOME # + does not work well outside GNOME
# - passwords are stored in readable form # - passwords are stored in readable form
%if 0%{?suse_version} <= 1110 %if 0%{?suse_version} < 1120
BuildRequires: gnome-keyring-devel BuildRequires: gnome-keyring-devel
%endif %endif
%if 0%{?suse_version} > 1210 %if 0%{?suse_version} > 1210
@ -100,27 +100,21 @@ BuildRequires: libSM-devel
BuildRequires: libX11-devel BuildRequires: libX11-devel
BuildRequires: libXScrnSaver-devel BuildRequires: libXScrnSaver-devel
BuildRequires: libXext-devel BuildRequires: libXext-devel
%endif
%if 0%{?suse_version} > 1210
BuildRequires: mozilla-nss-devel BuildRequires: mozilla-nss-devel
%endif %endif
%if 0%{?suse_version} >= 1230 %if 0%{?suse_version} >= 1230
BuildRequires: ca-certificates-mozilla 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 Requires: ca-certificates-mozilla
%else %else
BuildRequires: openssl-certs
Requires: openssl-certs Requires: openssl-certs
%endif %endif
%if 0%{?suse_version} >= 1120
BuildRequires: translation-update-upstream
%else
# Missing in silc-toolkit-devel.
BuildRequires: pam-devel
%endif
%description %description
Pidgin is a chat program which lets you log in to accounts on multiple 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: glib2-devel
Requires: libpurple = %{version} Requires: libpurple = %{version}
Requires: libxml2-devel Requires: libxml2-devel
Requires: pkg-config Requires: pkgconfig
%description -n libpurple-devel %description -n libpurple-devel
The libpurple-devel package contains the header files, developer The libpurple-devel package contains the header files, developer
@ -247,7 +241,7 @@ Requires: glib2-devel
Requires: glibc-devel Requires: glibc-devel
Requires: libpurple-devel = %{version} Requires: libpurple-devel = %{version}
Requires: ncurses-devel Requires: ncurses-devel
Requires: pkg-config Requires: pkgconfig
%description -n finch-devel %description -n finch-devel
The finch-devel package contains the header files, developer The finch-devel package contains the header files, developer
@ -256,7 +250,7 @@ and plugins.
%prep %prep
%setup -q %setup -q
%if 0%{?suse_version} > 1110 %if 0%{?suse_version} >= 1120
translation-update-upstream translation-update-upstream
%endif %endif
%patch0 -p1 %patch0 -p1
@ -285,14 +279,14 @@ autoreconf -fi
--enable-cyrus-sasl \ --enable-cyrus-sasl \
--enable-dbus \ --enable-dbus \
--enable-gstreamer \ --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 \ --with-gstreamer=1.0 \
--enable-vv \ --enable-vv \
%else %else
--with-gstreamer=0.10 \ --with-gstreamer=0.10 \
--disable-vv \ --disable-vv \
%endif %endif
%if 0%{?suse_version} <= 1110 %if 0%{?suse_version} < 1120
--enable-gnome-keyring \ --enable-gnome-keyring \
%endif %endif
--enable-nm \ --enable-nm \
@ -363,13 +357,13 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \
%{_datadir}/icons/hicolor/*/apps/* %{_datadir}/icons/hicolor/*/apps/*
%{_datadir}/applications/*.desktop %{_datadir}/applications/*.desktop
%{_datadir}/sounds/purple/ %{_datadir}/sounds/purple/
%{_mandir}/man1/%{name}.* %{_mandir}/man1/%{name}.1%{?ext_man}
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/%{name} %{_includedir}/%{name}
%{_libdir}/pkgconfig/%{name}.pc %{_libdir}/pkgconfig/%{name}.pc
%{_mandir}/man3/%{_name}.* %{_mandir}/man3/%{_name}.3*%{?ext_man}
%files -n libpurple -f %{name}-%{version}-purpleplugins %files -n libpurple -f %{name}-%{version}-purpleplugins
%defattr(-,root,root) %defattr(-,root,root)
@ -379,7 +373,6 @@ find %{buildroot}%{_libdir}/finch/ -maxdepth 1 -xtype f -print | \
%{_bindir}/purple-send %{_bindir}/purple-send
%{_bindir}/purple-send-async %{_bindir}/purple-send-async
%{_bindir}/purple-url-handler %{_bindir}/purple-url-handler
%{_datadir}/purple/
%{_libdir}/libpurple.so.* %{_libdir}/libpurple.so.*
%{_libdir}/libpurple-client.so.* %{_libdir}/libpurple-client.so.*
%dir %{_libdir}/purple-2/ %dir %{_libdir}/purple-2/