diff options
author | Patrick McLean <chutzpah@gentoo.org> | 2010-07-21 00:28:56 -0400 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2010-07-21 00:28:56 -0400 |
commit | 8d5218493a87663e4f31a73a0a0edbc32e7abcc8 (patch) | |
tree | 9df2e71fc1ae5b92371a3b23ddf0f891be4c6df6 /net-im | |
parent | Initial commit, add kobo-desktop to overlay. (diff) | |
download | chutzpah-8d5218493a87663e4f31a73a0a0edbc32e7abcc8.tar.gz chutzpah-8d5218493a87663e4f31a73a0a0edbc32e7abcc8.tar.bz2 chutzpah-8d5218493a87663e4f31a73a0a0edbc32e7abcc8.zip |
Add pidgin to overlay with patch to use gnome-keyring for storing passwords rather than storing them in the config file.
Diffstat (limited to 'net-im')
-rw-r--r-- | net-im/pidgin/Manifest | 23 | ||||
-rw-r--r-- | net-im/pidgin/files/pidgin-gnome-keyring-1.patch | 224 | ||||
-rw-r--r-- | net-im/pidgin/pidgin-2.7.1-r1.ebuild | 216 |
3 files changed, 463 insertions, 0 deletions
diff --git a/net-im/pidgin/Manifest b/net-im/pidgin/Manifest new file mode 100644 index 0000000..ef64df0 --- /dev/null +++ b/net-im/pidgin/Manifest @@ -0,0 +1,23 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +AUX pidgin-gnome-keyring-1.patch 7453 RMD160 bc32f94cd28d67b48b837d0ce6ab8b58c7902070 SHA1 51a5d07eb061d985816b29cb776fb38823e34b5f SHA256 7cbd7a399e460bdacf9f7fc189ffb0f9ea2ea1a00a7e028e7b542a386900e267 +DIST pidgin-2.7.1.tar.bz2 9647234 RMD160 5e5deec529b1c8d75cd3f925b3f5e4f5310e42e5 SHA1 b746720cc3e65b3d6da6eab0729f26673f997849 SHA256 f412a5a7389ad553229743b49399f968278095c8258dc0f89f766a6cd0ba95d1 +EBUILD pidgin-2.7.1-r1.ebuild 6339 RMD160 7f26bfb1a148bd846612ff8b6c1b7ae0f594d0d5 SHA1 317fc130adbf31bbb7e0b60654960a30ccef1a7f SHA256 8aa1047e40fc96b6011984e0e9576c68c2d62825b2a3a4daeb126aca2c44c292 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.15 (GNU/Linux) + +iQIcBAEBAgAGBQJMRm0+AAoJEHy/RO9cNQiDfSAP/2bvX5Fn8X7fow4+uJHAU7kT +mXpENarvg3EZ7Cdqedn7uP5Uk0wnsOP4llGnrlnnA+NLpnIkVyifUa31K7D/FXH1 +mZ5igWOo5inK3u49o3nteWRcvCRVeN6jImfxAIDYnW2CO1hqkiDUUZbgllsABfb2 +d/Q9X32BAerwNzN5stGtp88P04Rbw3UklKbm8OgkOGxpVIMbXLWgFAGD5Myz8afJ +wNneXsMzEoj5N2Nw+AEJX/zSmOuwrICYvxKe2eqPMnrdehi7RhG3xK7IqgmsTVS5 +gosaZr07TpVZEdOVf2QHLHpVhKi/VmyDKa0by2dlDJtoSw1e2zTWGE9Q9YOjNWTv +RijZZOh5UxHO+3fSSvI1k/mXBDZ3p1L89X+85mca+fWNKS0YA84ff4X7d7d5v2x4 +BOSWNICm6bLXgWgQA4ys7N4V7zs595A6sANFP/YmDv8wHyMbtQNoi3AGIo4gsfos +uUN+BmvCKhV1rsNNJ/BIc2iqmb1v55zgjgwEvQXSaVFpEuTBTPnt+sNrltDXAd69 +ssWRdmkjIcx11scvsGe/gq2NovmE4JKU4sJFIikMX7z+B0qWUJyJZkOJK2/afqXU +2fyZbzHLTgl3YdwHKLPtxWKnPGjHIEILK0KQ8ataRKX2OolJTZE+KOUzsQzJ4R7A +XL7Abb/rywLz3GZ3Hg/T +=Bf67 +-----END PGP SIGNATURE----- diff --git a/net-im/pidgin/files/pidgin-gnome-keyring-1.patch b/net-im/pidgin/files/pidgin-gnome-keyring-1.patch new file mode 100644 index 0000000..fc0e90f --- /dev/null +++ b/net-im/pidgin/files/pidgin-gnome-keyring-1.patch @@ -0,0 +1,224 @@ +diff -ur pidgin-2.7.1.orig//configure.ac pidgin-2.7.1//configure.ac +--- pidgin-2.7.1.orig//configure.ac 2010-05-29 21:23:56.000000000 -0400 ++++ pidgin-2.7.1//configure.ac 2010-07-20 23:25:59.520998076 -0400 +@@ -2393,6 +2393,20 @@ + LDFLAGS="$orig_LDFLAGS" + fi + ++dnl ####################################################################### ++dnl # Check for gnome-keyring ++dnl #--enable-gnome-keyring=(yes|no) ++dnl ####################################################################### ++AC_ARG_ENABLE(gnome-keyring, ++ AC_HELP_STRING([--enable-gnome-keyring], ++ [use gnome keyring for storing password [default=no]]),, ++ enable_gnome_keyring=no) ++if test "x$enable_gnome_keyring" = "xyes"; then ++ PKG_CHECK_MODULES(GAIM_KEYRING, ++ gnome-keyring-1, ++ AC_DEFINE(GAIM_ENABLE_KEYRING, [], [Set if we should use gnome-keyring])) ++fi ++ + AC_MSG_CHECKING(for me pot o' gold) + AC_MSG_RESULT(no) + AC_CHECK_FUNCS(gethostid lrand48) +diff -ur pidgin-2.7.1.orig//libpurple/Makefile.am pidgin-2.7.1//libpurple/Makefile.am +--- pidgin-2.7.1.orig//libpurple/Makefile.am 2010-05-29 21:23:57.000000000 -0400 ++++ pidgin-2.7.1//libpurple/Makefile.am 2010-07-20 23:25:59.529007791 -0400 +@@ -307,6 +307,7 @@ + $(DBUS_LIBS) \ + $(GLIB_LIBS) \ + $(LIBXML_LIBS) \ ++ $(GAIM_KEYRING_LIBS) \ + $(NETWORKMANAGER_LIBS) \ + $(INTLLIBS) \ + $(FARSIGHT_LIBS) \ +@@ -323,6 +324,7 @@ + $(GLIB_CFLAGS) \ + $(DEBUG_CFLAGS) \ + $(DBUS_CFLAGS) \ ++ $(GAIM_KEYRING_CFLAGS) \ + $(LIBXML_CFLAGS) \ + $(FARSIGHT_CFLAGS) \ + $(GSTREAMER_CFLAGS) \ +diff -ur pidgin-2.7.1.orig//libpurple/account.c pidgin-2.7.1//libpurple/account.c +--- pidgin-2.7.1.orig//libpurple/account.c 2010-05-29 21:23:57.000000000 -0400 ++++ pidgin-2.7.1//libpurple/account.c 2010-07-20 23:25:59.528013217 -0400 +@@ -49,6 +49,13 @@ + #define PURPLE_ACCOUNT_GET_PRIVATE(account) \ + ((PurpleAccountPrivate *) (account->priv)) + ++#ifdef GAIM_ENABLE_KEYRING ++#include <gnome-keyring.h> ++ ++static char * gaim_account_get_password_from_keyring (const char *_prpl, const char *_user); ++static gboolean gaim_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 + { +@@ -378,8 +385,13 @@ + if (purple_account_get_remember_password(account) && + ((tmp = purple_account_get_password(account)) != NULL)) + { ++#ifdef GAIM_ENABLE_KEYRING ++ gaim_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); ++#endif + } + + if ((tmp = purple_account_get_alias(account)) != NULL) +@@ -828,17 +840,30 @@ + } + + ret = purple_account_new(name, _purple_oscar_convert(name, protocol_id)); /* XXX: */ +- g_free(name); +- g_free(protocol_id); +- +- /* Read the password */ +- child = xmlnode_get_child(node, "password"); +- if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) +- { +- purple_account_set_remember_password(ret, TRUE); +- purple_account_set_password(ret, data); +- g_free(data); +- } ++ gboolean got_pwd = FALSE; ++#ifdef GAIM_ENABLE_KEYRING ++ data = gaim_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) ++ { ++ /* Read the password */ ++ child = xmlnode_get_child(node, "password"); ++ if ((child != NULL) && ((data = xmlnode_get_data(child)) != NULL)) ++ { ++ purple_account_set_remember_password(ret, TRUE); ++ purple_account_set_password(ret, data); ++ g_free(data); ++ } ++ } ++ g_free(name); ++ g_free(protocol_id); + + /* Read the alias */ + child = xmlnode_get_child(node, "alias"); +@@ -3064,3 +3089,61 @@ + purple_signals_disconnect_by_handle(handle); + purple_signals_unregister_by_instance(handle); + } ++ ++#ifdef GAIM_ENABLE_KEYRING ++static char * ++gaim_account_get_password_from_keyring(const char *_prpl, const char *_user) ++{ ++ 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); ++ ++ if (result != GNOME_KEYRING_RESULT_OK) ++ return NULL; ++ ++ if (matches == NULL || matches->data == NULL) ++ return NULL; ++ ++ found_item = (GnomeKeyringNetworkPasswordData *) matches->data; ++ ++ password = g_strdup (found_item->password); ++ ++ gnome_keyring_network_password_list_free (matches); ++ ++ return password; ++} ++ ++static gboolean ++gaim_account_set_password_in_keyring (const char *_prpl, const char *_user, const char *_password) ++{ ++ 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); ++ ++ return result == GNOME_KEYRING_RESULT_OK; ++} ++#endif +diff -ur pidgin-2.7.1.orig//pidgin/Makefile.am pidgin-2.7.1//pidgin/Makefile.am +--- pidgin-2.7.1.orig//pidgin/Makefile.am 2010-05-29 21:24:00.000000000 -0400 ++++ pidgin-2.7.1//pidgin/Makefile.am 2010-07-20 23:25:59.530998309 -0400 +@@ -161,6 +161,7 @@ + $(GTKSPELL_LIBS) \ + $(STARTUP_NOTIFICATION_LIBS) \ + $(LIBXML_LIBS) \ ++ $(GAIM_KEYRING_LIBS) \ + $(GTK_LIBS) \ + $(top_builddir)/libpurple/libpurple.la + +@@ -181,6 +182,7 @@ + $(GSTREAMER_CFLAGS) \ + $(DEBUG_CFLAGS) \ + $(GTK_CFLAGS) \ ++ $(GAIM_KEYRING_CFLAGS) \ + $(DBUS_CFLAGS) \ + $(GTKSPELL_CFLAGS) \ + $(STARTUP_NOTIFICATION_CFLAGS) \ +diff -ur pidgin-2.7.1.orig//pidgin/gtkmain.c pidgin-2.7.1//pidgin/gtkmain.c +--- pidgin-2.7.1.orig//pidgin/gtkmain.c 2010-05-29 21:24:00.000000000 -0400 ++++ pidgin-2.7.1//pidgin/gtkmain.c 2010-07-20 23:25:59.529007791 -0400 +@@ -70,6 +70,10 @@ + #include "pidginstock.h" + #include "gtkwhiteboard.h" + ++#ifdef GAIM_ENABLE_KEYRING ++#include <gnome-keyring.h> ++#endif ++ + #ifdef HAVE_SIGNAL_H + # include <signal.h> + #endif +@@ -793,6 +797,12 @@ + gtk_rc_add_default_file(search_path); + g_free(search_path); + ++#ifdef GAIM_ENABLE_KEYRING ++ GnomeKeyringResult rtn = gnome_keyring_unlock_sync(NULL, NULL); ++ // if (rtn == GNOME_KEYRING_RESULT_DENIED) ++ // return 0; ++#endif ++ + gui_check = gtk_init_check(&argc, &argv); + if (!gui_check) { + char *display = gdk_get_display(); diff --git a/net-im/pidgin/pidgin-2.7.1-r1.ebuild b/net-im/pidgin/pidgin-2.7.1-r1.ebuild new file mode 100644 index 0000000..dc2ee77 --- /dev/null +++ b/net-im/pidgin/pidgin-2.7.1-r1.ebuild @@ -0,0 +1,216 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 + +GENTOO_DEPEND_ON_PERL=no +inherit flag-o-matic eutils toolchain-funcs multilib perl-app gnome2 python +inherit autotools + +DESCRIPTION="GTK Instant Messenger client" +HOMEPAGE="http://pidgin.im/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="dbus debug doc eds gadu gnutls +gstreamer +gtk idn krb4 meanwhile" +IUSE+=" networkmanager nls perl silc tcl tk spell qq sasl +startup-notification" +IUSE+=" ncurses groupwise prediction python +xscreensaver zephyr zeroconf" # mono" +IUSE+=" gnome-keyring" + +# dbus requires python to generate C code for dbus bindings (thus DEPEND only). +# finch uses libgnt that links with libpython - {R,}DEPEND. But still there is +# no way to build dbus and avoid libgnt linkage with python. If you want this +# send patch upstream. +RDEPEND=" + >=dev-libs/glib-2.12 + >=dev-libs/libxml2-2.6.18 + ncurses? ( sys-libs/ncurses[unicode] + dbus? ( <dev-lang/python-3 ) + python? ( <dev-lang/python-3 ) ) + gtk? ( + >=x11-libs/gtk+-2.10:2 + x11-libs/libSM + xscreensaver? ( x11-libs/libXScrnSaver ) + startup-notification? ( >=x11-libs/startup-notification-0.5 ) + spell? ( >=app-text/gtkspell-2.0.2 ) + eds? ( gnome-extra/evolution-data-server ) + prediction? ( >=dev-db/sqlite-3.3:3 ) ) + gstreamer? ( =media-libs/gstreamer-0.10* + =media-libs/gst-plugins-good-0.10* + >=net-libs/farsight2-0.0.14 + media-plugins/gst-plugins-meta + media-plugins/gst-plugins-gconf ) + zeroconf? ( net-dns/avahi ) + dbus? ( >=dev-libs/dbus-glib-0.71 + >=sys-apps/dbus-0.90 ) + perl? ( >=dev-lang/perl-5.8.2-r1[-build] ) + gadu? ( >=net-libs/libgadu-1.9.0[-ssl] ) + gnutls? ( net-libs/gnutls ) + !gnutls? ( >=dev-libs/nss-3.11 ) + meanwhile? ( net-libs/meanwhile ) + silc? ( >=net-im/silc-toolkit-1.0.1 ) + zephyr? ( >=app-crypt/mit-krb5-1.3.6-r1[krb4?] ) + tcl? ( dev-lang/tcl ) + tk? ( dev-lang/tk ) + sasl? ( dev-libs/cyrus-sasl:2 ) + networkmanager? ( net-misc/networkmanager ) + gnome-keyring? ( gnome-base/gnome-keyring ) + idn? ( net-dns/libidn )" + # Mono support crashes pidgin + #mono? ( dev-lang/mono )" + +DEPEND="$RDEPEND + dev-lang/perl + dev-perl/XML-Parser + dev-util/pkgconfig + gtk? ( x11-proto/scrnsaverproto ) + dbus? ( <dev-lang/python-3 ) + doc? ( app-doc/doxygen ) + nls? ( >=dev-util/intltool-0.41.1 + sys-devel/gettext )" + +DOCS="AUTHORS HACKING NEWS README ChangeLog" + +# Enable Default protocols +DYNAMIC_PRPLS="irc,jabber,oscar,yahoo,simple,msn,myspace" + +# List of plugins +# app-accessibility/pidgin-festival +# net-im/librvp +# x11-plugins/guifications +# x11-plugins/msn-pecan +# x11-plugins/pidgin-encryption +# x11-plugins/pidgin-extprefs +# x11-plugins/pidgin-hotkeys +# x11-plugins/pidgin-latex +# x11-plugins/pidgintex +# x11-plugins/pidgin-libnotify +# x11-plugins/pidgin-otr +# x11-plugins/pidgin-rhythmbox +# x11-plugins/purple-plugin_pack +# x11-themes/pidgin-smileys +# x11-plugins/pidgin-knotify +# Plugins in Sunrise: +# x11-plugins/pidgimpd +# x11-plugins/pidgin-birthday +# x11-plugins/pidgin-botsentry +# x11-plugins/pidgin-convreverse +# x11-plugins/pidgin-extended-blist-sort +# x11-plugins/pidgin-lastfm +# x11-plugins/pidgin-mbpurple + +pkg_setup() { + if ! use gtk && ! use ncurses ; then + einfo + elog "You did not pick the ncurses or gtk use flags, only libpurple" + elog "will be built." + einfo + fi + if ! use xscreensaver; then + elog "Note: xscreensaver USE flag is disabled. Thus pidgin will be unable" + elog "to monitor idle/active status based on mouse/keyboard events" + fi + if use dbus && ! use python; then + elog "It's impossible to disable linkage with python in case dbus is enabled." + fi + if use dbus || { use ncurses && use python; }; then + python_set_active_version 2 + python_pkg_setup + fi +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-gnome-keyring-1.patch + eautoreconf +} + +src_configure() { + # Stabilize things, for your own good + strip-flags + replace-flags -O? -O2 + + local myconf + + if use gadu; then + DYNAMIC_PRPLS="${DYNAMIC_PRPLS},gg" + myconf="${myconf} --with-gadu-includes=." + myconf="${myconf} --with-gadu-libs=." + fi + + use silc && DYNAMIC_PRPLS+=",silc" + use qq && DYNAMIC_PRPLS+=",qq" + use meanwhile && DYNAMIC_PRPLS+=",sametime" + use zeroconf && DYNAMIC_PRPLS+=",bonjour" + use groupwise && DYNAMIC_PRPLS+=",novell" + use zephyr && DYNAMIC_PRPLS+=",zephyr" + + if use gnutls; then + einfo "Disabling NSS, using GnuTLS" + myconf+=" --enable-nss=no --enable-gnutls=yes" + myconf+=" --with-gnutls-includes=/usr/include/gnutls" + myconf+=" --with-gnutls-libs=/usr/$(get_libdir)" + else + einfo "Disabling GnuTLS, using NSS" + myconf+=" --enable-gnutls=no --enable-nss=yes" + fi + + if use dbus || { use ncurses && use python; }; then + myconf+=" --with-python=$(PYTHON)" + else + myconf+=" --without-python" + fi + + econf \ + $(use_enable ncurses consoleui) \ + $(use_enable nls) \ + $(use_enable gtk gtkui) \ + $(use_enable gtk sm) \ + $(use gtk && use_enable startup-notification) \ + $(use gtk && use_enable xscreensaver screensaver) \ + $(use gtk && use_enable prediction cap) \ + $(use gtk && use_enable eds gevolution) \ + $(use gtk && use_enable spell gtkspell) \ + $(use_enable perl) \ + $(use_enable tk) \ + $(use_enable tcl) \ + $(use_enable debug) \ + $(use_enable dbus) \ + $(use_enable meanwhile) \ + $(use_enable gstreamer) \ + $(use_enable gstreamer farsight) \ + $(use_enable gstreamer vv) \ + $(use_enable sasl cyrus-sasl ) \ + $(use_enable doc doxygen) \ + $(use_enable networkmanager nm) \ + $(use zephyr && use_with krb4) \ + $(use_enable zeroconf avahi) \ + $(use_enable gnome-keyring) \ + $(use_enable idn) \ + "--with-dynamic-prpls=${DYNAMIC_PRPLS}" \ + --disable-mono \ + --x-includes=/usr/include/X11 \ + ${myconf} + #$(use_enable mono) \ +} + +src_install() { + gnome2_src_install + if use gtk; then + # Fix tray pathes for kde-3.5, e16 (x11-wm/enlightenment) and other + # implementations that are not complient with new hicolor theme yet, #323355 + local pixmapdir + for d in 16 22 32 48; do + pixmapdir=${D}/usr/share/pixmaps/pidgin/tray/hicolor/${d}x${d}/actions + mkdir "${pixmapdir}" || die + pushd "${pixmapdir}" >/dev/null || die + for f in ../status/*; do + ln -s ${f} || die + done + popd >/dev/null + done + fi + use perl && fixlocalpod +} |