/cpw/tomkiewicz/masterpassword: 5a6598847e76: Merge soc.2008.mas...
Tomasz Wasilczyk
tomkiewicz at cpw.pidgin.im
Sun Jun 9 13:55:00 EDT 2013
Changeset: 5a6598847e765d04bd23f8b6e11416424e91e12c
Author: Tomasz Wasilczyk <tomkiewicz at cpw.pidgin.im>
Date: 2013-06-09 19:54 +0200
Branch: default
URL: https://hg.pidgin.im/cpw/tomkiewicz/masterpassword/rev/5a6598847e76
Description:
Merge soc.2008.masterpassword branch
diffstat:
.hgignore | 1 +
COPYRIGHT | 1 +
configure.ac | 154 ++
finch/gntaccount.c | 15 +-
finch/gntprefs.c | 49 +
finch/gntprefs.h | 5 +
finch/gntui.c | 1 +
libpurple/Makefile.am | 4 +
libpurple/Makefile.mingw | 11 +
libpurple/account.c | 235 +++-
libpurple/account.h | 25 +-
libpurple/cipher.c | 9 +-
libpurple/ciphers/Makefile.am | 14 +-
libpurple/ciphers/aes.c | 566 ++++++++++
libpurple/ciphers/ciphers.h | 28 +
libpurple/ciphers/pbkdf2.c | 323 ++++++
libpurple/connection.c | 9 +-
libpurple/core.c | 6 +
libpurple/example/nullclient.c | 2 +-
libpurple/keyring.c | 1357 ++++++++++++++++++++++++++
libpurple/keyring.h | 548 ++++++++++
libpurple/plugins/Makefile.am | 11 +-
libpurple/plugins/Makefile.mingw | 4 +
libpurple/plugins/ciphertest.c | 339 ++++++
libpurple/plugins/keyrings/Makefile.am | 76 +
libpurple/plugins/keyrings/Makefile.mingw | 81 +
libpurple/plugins/keyrings/gnomekeyring.c | 454 ++++++++
libpurple/plugins/keyrings/internalkeyring.c | 1043 +++++++++++++++++++
libpurple/plugins/keyrings/kwallet.cpp | 582 +++++++++++
libpurple/plugins/keyrings/secretservice.c | 337 ++++++
libpurple/plugins/keyrings/wincred.c | 321 ++++++
libpurple/plugins/one_time_password.c | 2 +-
libpurple/plugins/perl/common/Account.xs | 15 +-
libpurple/plugins/perl/perl-handlers.c | 118 ++
libpurple/plugins/perl/perl-handlers.h | 6 +
libpurple/plugins/perl/scripts/account.pl | 33 +
libpurple/protocols/gg/account.c | 8 +-
libpurple/protocols/gg/gg.c | 3 +-
libpurple/protocols/gg/oauth/oauth-purple.c | 8 +-
libpurple/protocols/irc/msgs.c | 3 +-
libpurple/protocols/jabber/auth.c | 6 +-
libpurple/protocols/jabber/auth_cyrus.c | 12 +-
libpurple/protocols/jabber/jabber.c | 6 +-
libpurple/protocols/msn/session.c | 4 +-
libpurple/protocols/mxit/actions.c | 7 +-
libpurple/protocols/mxit/cipher.c | 4 +-
libpurple/protocols/mxit/login.c | 2 +-
libpurple/protocols/myspace/myspace.c | 10 +-
libpurple/protocols/novell/novell.c | 4 +-
libpurple/protocols/oscar/clientlogin.c | 2 +-
libpurple/protocols/oscar/flap_connection.c | 2 +-
libpurple/protocols/oscar/oscar.c | 2 +-
libpurple/protocols/sametime/sametime.c | 2 +-
libpurple/protocols/silc/silc.c | 4 +-
libpurple/protocols/simple/simple.c | 2 +-
libpurple/protocols/yahoo/libymsg.c | 6 +-
libpurple/prpl.c | 7 +-
libpurple/request.h | 2 +
libpurple/util.c | 35 +
libpurple/util.h | 27 +
pidgin/gtkaccount.c | 44 +-
pidgin/gtkconn.c | 3 -
pidgin/gtkprefs.c | 459 +++++++-
pidgin/gtkutils.c | 14 +-
po/POTFILES.in | 6 +
65 files changed, 7274 insertions(+), 205 deletions(-)
diffs (truncated from 8856 to 300 lines):
diff --git a/.hgignore b/.hgignore
--- a/.hgignore
+++ b/.hgignore
@@ -28,6 +28,7 @@ syntax: regexp
.*\.pyo$
.*\.rej$
.*\.so$
+.*\.moc$
Doxyfile(\.mingw)?$
VERSION$
aclocal.m4
diff --git a/COPYRIGHT b/COPYRIGHT
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -55,6 +55,7 @@ Matthew W.S. Bell
Igor Belyi
David Benjamin
Brian Bernas
+Vivien Bernet-Rollande
Paul Betts
Runa Bhattacharjee
Jonas Birmé
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -110,6 +110,7 @@ AC_DEFINE_UNQUOTED(CONFIG_ARGS, "$ac_con
dnl Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
+AC_PROG_CXX
LT_PREREQ([2.2.6])
LT_INIT([disable-static])
LIBTOOL="$LIBTOOL --silent"
@@ -1487,6 +1488,7 @@ if test "x$GCC" = "xyes"; then
DEBUG_CFLAGS="-Wall $DEBUG_CFLAGS"
CFLAGS="-g $CFLAGS"
fi
+DEBUG_CPPFLAGS=`echo "$DEBUG_CFLAGS" | $sedpath 's/-Wdeclaration-after-statement//' | $sedpath 's/-Wmissing-prototypes//' | $sedpath 's/-Waggregate-return//'`
if test "x$SUNCC" = "xyes"; then
CFLAGS="$CFLAGS -features=extensions"
@@ -1542,6 +1544,152 @@ else
fi
dnl #######################################################################
+dnl # Check for Secret Service headers
+dnl #######################################################################
+
+# disabled - see secretservice.c
+#AC_ARG_ENABLE(libsecret, [AC_HELP_STRING([--disable-libsecret], [enable Secret Service support])], enable_secret_service=no, enable_secret_service=yes)
+
+#if test "x$enable_secret_service" = "xyes" ; then
+# PKG_CHECK_MODULES(SECRETSERVICE, [libsecret-1], [
+# AC_SUBST(SECRETSERVICE_CFLAGS)
+# AC_SUBST(SECRETSERVICE_LIBS)
+# AC_DEFINE(HAVE_SECRETSERVICE, 1, [Define if we have Secret Service.])
+# ])
+#fi
+
+#AM_CONDITIONAL(ENABLE_SECRETSERVICE, test "x$enable_secret_service" = "xyes")
+AM_CONDITIONAL(ENABLE_SECRETSERVICE, test "x1" = "x2")
+
+dnl #######################################################################
+dnl # Check for GNOME Keyring headers
+dnl #######################################################################
+
+AC_ARG_ENABLE(gnome-keyring, [AC_HELP_STRING([--disable-gnome-keyring], [enable GNOME Keyring support])], enable_gnome_keyring=no, enable_gnome_keyring=yes)
+
+if test "x$enable_gnome_keyring" = "xyes" ; then
+ PKG_CHECK_MODULES(GNOMEKEYRING, [gnome-keyring-1], [
+ AC_SUBST(GNOMEKEYRING_CFLAGS)
+ AC_SUBST(GNOMEKEYRING_LIBS)
+ AC_DEFINE(HAVE_GNOMEKEYRING, 1, [Define if we have GNOME Keyring.])
+ ])
+fi
+
+AM_CONDITIONAL(ENABLE_GNOMEKEYRING, test "x$enable_gnome_keyring" = "xyes")
+
+dnl #######################################################################
+dnl # Check for KWallet headers
+dnl #######################################################################
+
+AC_ARG_ENABLE(kwallet, [AC_HELP_STRING([--disable-kwallet], [enable KWallet support])], enable_kwallet=no, enable_kwallet=yes)
+AC_ARG_WITH(kwallet-includes, [AC_HELP_STRING([--with-kwallet-includes=DIR], [compile the KWallet plugin against includes in DIR])], [ac_kwallet_includes="$withval"], [ac_kwallet_includes="no"])
+AC_ARG_WITH(kwallet-libs, [AC_HELP_STRING([--with-kwallet-libs=DIR], [compile the KWallet plugin against the KWallet libs in DIR])], [ac_kwallet_libs="$withval"], [ac_kwallet_libs="no"])
+
+if test "x$enable_kwallet" = "xyes"; then
+ KWALLET_CXXFLAGS=""
+ KWALLET_LIBS=""
+ if test -z "$with_kwallet_includes" || test -z "$with_kwallet_libs"; then
+ AC_CHECK_PROG(KDE4_CONFIG, kde4-config, kde4-config, no)
+ if test "x$KDE4_CONFIG" = "xno"; then
+ if test "x$force_deps" = "xyes"; then
+ AC_MSG_WARN([
+kde4-config not found. $KDE4_CONFIG
+Use --disable-kwallet if you do not need KWallet support.
+Use --with-kwallet-includes and --with-kwallet-libs to set up includes manually.
+])
+ enable_kwallet=no
+ fi
+ fi
+ fi
+fi
+
+if test "x$enable_kwallet" = "xyes"; then
+ AC_LANG_PUSH([C++])
+ CPPFLAGS_save="$CPPFLAGS"
+
+ if test "$ac_kwallet_includes" != "no"; then
+ KWALLET_CXXFLAGS="-I$ac_kwallet_includes"
+ elif test "x$KDE4_CONFIG" != "xno"; then
+ KWALLET_CXXFLAGS="-I`$KDE4_CONFIG --path include`"
+ fi
+ CPPFLAGS="$CPPFLAGS $KWALLET_CXXFLAGS"
+ AC_CHECK_HEADER([kwallet.h], , [enable_kwallet=no])
+
+ CPPFLAGS="$CPPFLAGS_save"
+ AC_LANG_POP
+fi
+
+if test "x$enable_kwallet" = "xyes"; then
+ dnl Ensure C++ compiler works
+ AC_CHECK_PROG(CXXTEST, [$CXX], [$CXX])
+ if test "x$CXXTEST" = "x"; then
+ if test "x$force_deps" = "xyes"; then
+ AC_MSG_WARN([
+A C++ compiler was not found.
+Use --disable-kwallet if you do not need KWallet support.
+])
+ enable_kwallet=no
+ fi
+ fi
+fi
+
+AC_LANG_PUSH([C++])
+CPPFLAGS_save="$CPPFLAGS"
+LDFLAGS_save="$LDFLAGS"
+if test "x$enable_kwallet" = "xyes"; then
+
+ PKG_CHECK_MODULES(QT4, [QtCore], [
+ AC_SUBST(QT4_CFLAGS)
+ AC_SUBST(QT4_LIBS)
+ ], [
+ AC_MSG_RESULT(no)
+ AC_MSG_WARN([
+Qt4 development headers not found.
+Use --disable-kwallet if you do not need KWallet support.
+])
+ enable_kwallet=no
+ ])
+fi
+
+if test "x$enable_kwallet" = "xyes"; then
+ AC_MSG_CHECKING([for metaobject compiler])
+ MOC=`$PKG_CONFIG --variable=moc_location QtCore`
+ AC_SUBST(MOC)
+ AC_MSG_RESULT([$MOC])
+
+
+ AC_MSG_CHECKING([for KWallet libraries])
+ if test "$ac_kwallet_libs" != "no"; then
+ KWALLET_LIBS="-L$ac_kwallet_libs -lkdeui"
+ elif test "x$KDE4_CONFIG" != "xno"; then
+ KWALLET_LIBS="-L`$KDE4_CONFIG --install lib`/kde4/devel -lkdeui"
+ else
+ KWALLET_LIBS="-lkdeui"
+ fi
+ KWALLET_LIBS="$KWALLET_LIBS"
+ CPPFLAGS="$CPPFLAGS $KWALLET_CXXFLAGS"
+ LDFLAGS="$LDFLAGS $KWALLET_LIBS $QT4_LIBS"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <kwallet.h>],
+ [KWallet::Wallet::LocalWallet();])], [AC_MSG_RESULT([yes])],
+ [if test "x$force_deps" = "xyes"; then
+AC_MSG_ERROR([
+KWallet development libraries not found.
+Use --disable-kwallet if you do not need KWallet support.
+])
+fi
+])
+
+fi
+CPPFLAGS="$CPPFLAGS_save"
+LDFLAGS="$LDFLAGS_save"
+AC_LANG_POP
+
+AC_SUBST(KWALLET_CXXFLAGS)
+AC_SUBST(KWALLET_LIBS)
+
+AM_CONDITIONAL(ENABLE_KWALLET, test "x$enable_kwallet" = "xyes")
+
+dnl #######################################################################
dnl # Check for Python
dnl #######################################################################
@@ -2437,6 +2585,7 @@ if test "$ac_cv_cygwin" = yes ; then
AC_DEFINE(DEBUG, 1, [Define if debugging is enabled.])
fi
+AC_SUBST(DEBUG_CPPFLAGS)
AC_SUBST(DEBUG_CFLAGS)
AC_SUBST(LDADD)
AC_SUBST(LIBS)
@@ -2715,6 +2864,7 @@ AC_CONFIG_FILES([Makefile
libpurple/purple-3.pc
libpurple/purple-3-uninstalled.pc
libpurple/plugins/Makefile
+ libpurple/plugins/keyrings/Makefile
libpurple/plugins/mono/Makefile
libpurple/plugins/mono/api/Makefile
libpurple/plugins/mono/loader/Makefile
@@ -2798,6 +2948,10 @@ echo Use startup notification...... : $e
echo Build with GtkSpell support... : $enable_gtkspell
echo Build with GCR widgets........ : $enable_gcr
echo
+echo Build with GNOME Keyring...... : $enable_gnome_keyring
+echo Build with KWallet............ : $enable_kwallet
+#echo Build with Secret Service..... : $enable_secret_service
+echo
echo Build with plugin support..... : $enable_plugins
echo Build with Mono support....... : $enable_mono
echo Build with Perl support....... : $enable_perl
diff --git a/finch/gntaccount.c b/finch/gntaccount.c
--- a/finch/gntaccount.c
+++ b/finch/gntaccount.c
@@ -195,9 +195,9 @@ save_account_cb(AccountEditDialog *dialo
gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->remember)));
value = gnt_entry_get_text(GNT_ENTRY(dialog->password));
if (value && *value)
- purple_account_set_password(account, value);
+ purple_account_set_password(account, value, NULL, NULL);
else
- purple_account_set_password(account, NULL);
+ purple_account_set_password(account, NULL, NULL, NULL);
/* Mail notification */
purple_account_set_check_mail(account,
@@ -534,7 +534,8 @@ prpl_changed_cb(GntWidget *combo, Purple
}
static void
-edit_account(PurpleAccount *account)
+edit_account_continue(PurpleAccount *account,
+ const gchar *password, GError *error, gpointer user_data)
{
GntWidget *window, *hbox;
GntWidget *combo, *button, *entry;
@@ -617,7 +618,7 @@ edit_account(PurpleAccount *account)
gnt_box_add_widget(GNT_BOX(hbox), gnt_label_new(_("Password:")));
gnt_box_add_widget(GNT_BOX(hbox), entry);
if (account)
- gnt_entry_set_text(GNT_ENTRY(entry), purple_account_get_password(account));
+ gnt_entry_set_text(GNT_ENTRY(entry), password);
hbox = gnt_hbox_new(TRUE);
gnt_box_set_pad(GNT_BOX(hbox), 0);
@@ -667,6 +668,12 @@ edit_account(PurpleAccount *account)
}
static void
+edit_account(PurpleAccount *account)
+{
+ purple_account_get_password(account, edit_account_continue, account);
+}
+
+static void
add_account_cb(GntWidget *widget, gpointer null)
{
edit_account(NULL);
diff --git a/finch/gntprefs.c b/finch/gntprefs.c
--- a/finch/gntprefs.c
+++ b/finch/gntprefs.c
@@ -41,6 +41,7 @@ static struct {
GList *freestrings; /* strings to be freed when the pref-window is closed */
gboolean showing;
GntWidget *window;
+ GntWidget *keyring_window;
} pref_request;
void finch_prefs_init()
@@ -195,6 +196,12 @@ static Prefs logging[] =
{PURPLE_PREF_NONE, NULL, NULL, NULL},
};
+static Prefs keyring[] =
+{
+ {PURPLE_PREF_STRING, "/purple/keyring/active", N_("Active keyring"), purple_keyring_get_options},
+ {PURPLE_PREF_NONE, NULL, NULL, NULL}
+};
+
static Prefs idle[] =
{
{PURPLE_PREF_STRING, "/purple/away/idle_reporting", N_("Report Idle time"), get_idle_options},
@@ -246,10 +253,15 @@ void finch_prefs_show_all()
return;
}
+ if (pref_request.keyring_window != NULL)
+ purple_request_close(PURPLE_REQUEST_FIELDS,
+ pref_request.keyring_window);
+
More information about the Commits
mailing list