--- /dev/null
+AUX bitlbee-3.0-configure.patch 393 RMD160 eb546e7271549cd56b87168ccf0ccb3ffb80742d SHA1 7762bae624acf765d3905b46b84448762694a25f SHA256 615e0cadb52abea5c133f8588b7d772c787bee725f11a986bed90226e5da4acd
+AUX bitlbee-3.0.1-msn-unfuck.patch 6180 RMD160 3b361d79f9f2f883da4de6cc0cc933ed584ba1fa SHA1 4eee87d5837ea8be4862257152904c12a099cb81 SHA256 8031efaf1c8c507eb5d7b3b2acf79293e3d5c5437fe93cbce0d48cdd389df2fa
+AUX bitlbee.confd 62 RMD160 f71fff4ab4fe49eebc071d693896f567291bee54 SHA1 80beb974922b2ff6cf9732a7bce1eb03cc10d870 SHA256 105afc0382fc5adc03ed644dba4e78817015a55432349f259a286ac3c1b06628
+AUX bitlbee.initd 605 RMD160 183c4a8117556cb474c01ba4038b357a6716f98e SHA1 3427fa5f558b2957046ef1a6afdd4bc2bb8807e3 SHA256 037091df1746b9a477f07cdac52d99f9310055646ce0e10f859835ba105e3fb4
+DIST bitlbee-3.0.1.tar.gz 668353 RMD160 cc62179e807ef175db0c2351d9363f118e28f394 SHA1 f3a0651d723b71b08f0dad3b5cb2843608d5c265 SHA256 408a737b35db4b9c407e3db09b2d2e7b528836a68e2d783373254b78812bf608
+EBUILD bitlbee-3.0.1.ebuild 5534 RMD160 d25dabb5dc3193fb8000295aab988fa8d9049959 SHA1 22039953994c885f90309ae02b5ab19b55358270 SHA256 2f6ed1bb7c818bdf569da7182975d2478bb4a0b5334f60ce889b2f1fa377c253
--- /dev/null
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-im/bitlbee/bitlbee-3.0.1.ebuild,v 1.1 2010/11/25 05:08:12 radhermit Exp $
+
+EAPI="3"
+inherit eutils toolchain-funcs confutils multilib
+
+DESCRIPTION="irc to IM gateway that support multiple IM protocols"
+HOMEPAGE="http://www.bitlbee.org/"
+SRC_URI="http://get.bitlbee.org/src/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="debug gnutls ipv6 +jabber libevent msn nss +oscar otr +plugins purple ssl test twitter +yahoo xinetd" # ldap - Bug 195758
+
+COMMON_DEPEND="purple? ( net-im/pidgin )
+ libevent? ( dev-libs/libevent )
+ !libevent? ( >=dev-libs/glib-2.4 )
+ otr? ( net-libs/libotr )
+ msn? ( gnutls? ( net-libs/gnutls )
+ !gnutls? ( nss? ( dev-libs/nss ) )
+ !gnutls? ( !nss? ( ssl? ( dev-libs/openssl ) ) )
+ )
+ jabber? ( gnutls? ( net-libs/gnutls )
+ !gnutls? ( nss? ( dev-libs/nss ) )
+ !gnutls? ( !nss? ( ssl? ( dev-libs/openssl ) ) )
+ )"
+ # ldap? ( net-nds/openldap )"
+DEPEND="${COMMON_DEPEND}
+ dev-util/pkgconfig
+ test? ( dev-libs/check )"
+
+RDEPEND="${COMMON_DEPEND}
+ virtual/logger
+ xinetd? ( sys-apps/xinetd )"
+
+pkg_setup() {
+ if use purple ; then
+ elog "You have enabled libpurple support. This disables all the other"
+ elog " protocol modules, since everything is handled by libpurple."
+ elog
+ else
+ elog "Support for all IM protocols are controlled by use flags."
+ elog " Make sure you've enabled the flags you want."
+ elog
+ fi
+
+ confutils_require_any jabber msn oscar twitter yahoo purple
+
+ # At the request of upstream, die if MSN Messenger support is enabled
+ # but no SSL support has been enabled
+ confutils_use_depend_any msn gnutls nss ssl
+
+ if use jabber && ! use gnutls && ! use ssl ; then
+ if use nss ; then
+ ewarn ""
+ ewarn "You have enabled nss and jabber"
+ ewarn "but nss doesn't work with jabber"
+ ewarn "Enable ONE of the following use instead"
+ ewarn "flags: gnutls or ssl"
+ ewarn ""
+ die "nss with jabber doesn't work"
+ fi
+ elog ""
+ elog "You have enabled support for Jabber but do not have SSL"
+ elog "support enabled. This *will* prevent bitlbee from being"
+ elog "able to connect to SSL enabled Jabber servers. If you need to"
+ elog "connect to Jabber over SSL, enable ONE of the following use"
+ elog "flags: gnutls or ssl"
+ elog ""
+ fi
+
+ enewgroup bitlbee
+ enewuser bitlbee -1 -1 /var/lib/bitlbee bitlbee
+}
+
+src_prepare() {
+ sed -i \
+ -e "s@/usr/local/sbin/bitlbee@/usr/sbin/bitlbee@" \
+ -e "s/nobody/bitlbee/" \
+ -e "s/}/ disable = yes\n}/" \
+ doc/bitlbee.xinetd || die "sed failed in xinetd"
+
+ sed -i \
+ -e "s@mozilla-nss@nss@g" \
+ configure || die "sed failed in configure"
+
+ epatch "${FILESDIR}"/${PN}-3.0-configure.patch
+ epatch "${FILESDIR}"/${P}-msn-unfuck.patch
+}
+
+src_configure() {
+ # ldap hard-disabled for now
+ local myconf="--ldap=0"
+
+ # setup plugins, protocol, ipv6 and debug
+ for flag in debug ipv6 msn jabber oscar plugins purple twitter yahoo ; do
+ if use ${flag} ; then
+ myconf="${myconf} --${flag}=1"
+ else
+ myconf="${myconf} --${flag}=0"
+ fi
+ done
+
+ # set otr
+ if use otr && use plugins ; then
+ myconf="${myconf} --otr=plugin"
+ else
+ if use otr ; then
+ ewarn "OTR support has been disabled automatically because it"
+ ewarn "requires the plugins USE flag."
+ fi
+ myconf="${myconf} --otr=0"
+ fi
+
+ # setup ssl use flags
+ if use gnutls ; then
+ myconf="${myconf} --ssl=gnutls"
+ einfo "Using gnutls for SSL support"
+ elif use ssl ; then
+ myconf="${myconf} --ssl=openssl"
+ einfo "Using openssl for SSL support"
+ elif use nss ; then
+ myconf="${myconf} --ssl=nss"
+ einfo "Using nss for SSL support"
+ else
+ myconf="${myconf} --ssl=bogus"
+ einfo "You will not have any encryption support enabled."
+ fi
+
+ # set event handler
+ if use libevent ; then
+ myconf="${myconf} --events=libevent"
+ else
+ myconf="${myconf} --events=glib"
+ fi
+
+ # NOTE: bitlbee's configure script is not an autotool creation,
+ # so that is why we don't use econf.
+ ./configure --prefix=/usr --datadir=/usr/share/bitlbee \
+ --etcdir=/etc/bitlbee --plugindir=/usr/$(get_libdir)/bitlbee \
+ --strip=0 ${myconf} || die "econf failed"
+
+ sed -i \
+ -e "s/CFLAGS=.*$/CFLAGS=${CFLAGS}/" \
+ -e "/^EFLAGS/s:=:&${LDFLAGS} :" \
+ Makefile.settings || die "sed failed"
+}
+
+src_install() {
+ emake install install-etc install-doc install-dev DESTDIR="${D}" ||
+ die "install failed"
+
+ keepdir /var/lib/bitlbee
+ fperms 700 /var/lib/bitlbee
+ fowners bitlbee:bitlbee /var/lib/bitlbee
+
+ dodoc doc/{AUTHORS,CHANGES,CREDITS,FAQ,README}
+ dodoc doc/user-guide/user-guide.txt
+ dohtml -A xml doc/user-guide/*.xml
+ dohtml -A xsl doc/user-guide/*.xsl
+ dohtml doc/user-guide/*.html
+
+ doman doc/bitlbee.8 doc/bitlbee.conf.5
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ newins doc/bitlbee.xinetd bitlbee
+ fi
+
+ newinitd "${FILESDIR}"/bitlbee.initd bitlbee || die
+ newconfd "${FILESDIR}"/bitlbee.confd bitlbee || die
+
+ keepdir /var/run/bitlbee
+ fowners bitlbee:bitlbee /var/run/bitlbee
+
+ dodir /usr/share/bitlbee
+ insinto /usr/share/bitlbee
+ cd utils
+ doins convert_purple.py bitlbee-ctl.pl
+}
+
+pkg_postinst() {
+ chown -R bitlbee:bitlbee "${ROOT}"/var/lib/bitlbee
+ chown -R bitlbee:bitlbee "${ROOT}"/var/run/bitlbee
+
+ elog "The utils included in bitlbee are now located in /usr/share/bitlbee"
+ elog
+ elog "NOTE: The IRSSI script is no longer provided by BitlBee."
+ elog
+ elog "The bitlbeed init script has been replaced by bitlbee."
+ elog "You must update your configuration."
+}
--- /dev/null
+--- bitlbee-3.0/configure.orig 2010-10-21 17:51:31.000000000 -0700
++++ bitlbee-3.0/configure 2010-10-26 22:07:44.620843056 -0700
+@@ -609,14 +609,6 @@
+ fi
+ fi
+
+-case "$CC" in
+-*gcc* )
+- echo CFLAGS+=-MD -MF .depend/\$@.d >> Makefile.settings
+- for i in . lib protocols protocols/*/; do
+- mkdir -p $i/.depend
+- done
+-esac
+-
+ if [ "$msn" = 0 ]; then
+ echo '#undef WITH_MSN' >> config.h
+ else
--- /dev/null
+=== modified file 'protocols/msn/msn.c'
+--- protocols/msn/msn.c 2010-11-19 21:00:14 +0000
++++ protocols/msn/msn.c 2010-12-12 00:25:17 +0000
+@@ -107,6 +107,8 @@
+ md->groups = g_slist_remove( md->groups, mg );
+ }
+
++ g_free( md->profile_rid );
++
+ g_tree_destroy( md->domaintree );
+ md->domaintree = NULL;
+
+@@ -321,21 +323,15 @@
+ struct im_connection *ic = acc->ic;
+ struct msn_data *md = ic->proto_data;
+
+- if( strlen( value ) > 129 )
+- {
+- imcb_log( ic, "Maximum name length exceeded" );
+- return NULL;
+- }
+-
+- if( md->flags & MSN_GOT_PROFILE_DN )
+- imcb_log( ic, "Warning: Persistent name changes for this account have to be done "
+- "in the profile. BitlBee doesn't currently support this." );
+-
+ if( md->flags & MSN_EMAIL_UNVERIFIED )
+ imcb_log( ic, "Warning: Your e-mail address is unverified. MSN doesn't allow "
+ "changing your display name until your e-mail address is verified." );
+
+- msn_soap_addressbook_set_display_name( ic, value );
++ if( md->flags & MSN_GOT_PROFILE_DN )
++ msn_soap_profile_set_dn( ic, value );
++ else
++ msn_soap_addressbook_set_display_name( ic, value );
++
+ return msn_ns_set_display_name( ic, value ) ? value : NULL;
+ }
+
+@@ -362,7 +358,7 @@
+ struct prpl *ret = g_new0(struct prpl, 1);
+
+ ret->name = "msn";
+- ret->mms = 1409; /* this guess taken from libotr UPGRADING file */
++ ret->mms = 1409; /* this guess taken from libotr UPGRADING file */
+ ret->login = msn_login;
+ ret->init = msn_init;
+ ret->logout = msn_logout;
+
+=== modified file 'protocols/msn/msn.h'
+--- protocols/msn/msn.h 2010-11-13 13:01:40 +0000
++++ protocols/msn/msn.h 2010-12-12 00:25:17 +0000
+@@ -118,6 +118,7 @@
+
+ const struct msn_away_state *away_state;
+ GSList *groups;
++ char *profile_rid;
+
+ /* Mostly used for sending the ADL command; since MSNP13 the client
+ is responsible for downloading the contact list and then sending
+
+=== modified file 'protocols/msn/soap.c'
+--- protocols/msn/soap.c 2010-11-20 15:39:58 +0000
++++ protocols/msn/soap.c 2010-12-12 00:25:17 +0000
+@@ -397,7 +397,10 @@
+ return MSN_SOAP_RETRY;
+
+ if( md->soapq )
++ {
++ md->flags &= ~MSN_REAUTHING;
+ return msn_soapq_flush( ic, TRUE );
++ }
+
+ if( sd->secret == NULL )
+ {
+@@ -1071,8 +1074,20 @@
+ return XT_HANDLED;
+ }
+
++static xt_status msn_soap_profile_get_rid( struct xt_node *node, gpointer data )
++{
++ struct msn_soap_req_data *soap_req = data;
++ struct msn_data *md = soap_req->ic->proto_data;
++
++ g_free( md->profile_rid );
++ md->profile_rid = g_strdup( node->text );
++
++ return XT_HANDLED;
++}
++
+ static const struct xt_handler_entry msn_soap_profile_get_parser[] = {
+ { "ExpressionProfile", "GetProfileResult", msn_soap_profile_get_result },
++ { "ResourceID", "GetProfileResult", msn_soap_profile_get_rid },
+ { NULL, NULL, NULL }
+ };
+
+@@ -1100,3 +1115,40 @@
+ msn_soap_profile_get_handle_response,
+ msn_soap_profile_get_free_data );
+ }
++
++/* Update profile (display name). */
++static int msn_soap_profile_set_dn_build_request( struct msn_soap_req_data *soap_req )
++{
++ struct msn_data *md = soap_req->ic->proto_data;
++
++ soap_req->url = g_strdup( SOAP_STORAGE_URL );
++ soap_req->action = g_strdup( SOAP_PROFILE_SET_DN_ACTION );
++ soap_req->payload = g_markup_printf_escaped( SOAP_PROFILE_SET_DN_PAYLOAD,
++ md->tokens[3], md->profile_rid, (char*) soap_req->data );
++
++ return 1;
++}
++
++static const struct xt_handler_entry msn_soap_profile_set_dn_parser[] = {
++ { NULL, NULL, NULL }
++};
++
++static int msn_soap_profile_set_dn_handle_response( struct msn_soap_req_data *soap_req )
++{
++ return MSN_SOAP_OK;
++}
++
++static int msn_soap_profile_set_dn_free_data( struct msn_soap_req_data *soap_req )
++{
++ g_free( soap_req->data );
++ return 0;
++}
++
++int msn_soap_profile_set_dn( struct im_connection *ic, const char *dn )
++{
++ return msn_soap_start( ic, g_strdup( dn ),
++ msn_soap_profile_set_dn_build_request,
++ msn_soap_profile_set_dn_parser,
++ msn_soap_profile_set_dn_handle_response,
++ msn_soap_profile_set_dn_free_data );
++}
+
+=== modified file 'protocols/msn/soap.h'
+--- protocols/msn/soap.h 2010-10-02 06:56:33 +0000
++++ protocols/msn/soap.h 2010-12-12 00:25:17 +0000
+@@ -302,6 +302,7 @@
+
+ #define SOAP_STORAGE_URL "https://storage.msn.com/storageservice/SchematizedStore.asmx"
+ #define SOAP_PROFILE_GET_ACTION "http://www.msn.com/webservices/storage/w10/GetProfile"
++#define SOAP_PROFILE_SET_DN_ACTION "http://www.msn.com/webservices/storage/w10/UpdateProfile"
+
+ #define SOAP_PROFILE_GET_PAYLOAD \
+ "<?xml version=\"1.0\" encoding=\"utf-8\"?>" \
+@@ -344,7 +345,34 @@
+ "</soap:Body>" \
+ "</soap:Envelope>"
+
++#define SOAP_PROFILE_SET_DN_PAYLOAD \
++"<?xml version=\"1.0\" encoding=\"utf-8\"?>" \
++"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" \
++ "<soap:Header xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" \
++ "<StorageApplicationHeader xmlns=\"http://www.msn.com/webservices/storage/w10\">" \
++ "<ApplicationID>Messenger Client 9.0</ApplicationID>" \
++ "<Scenario>Initial</Scenario>" \
++ "</StorageApplicationHeader>" \
++ "<StorageUserHeader xmlns=\"http://www.msn.com/webservices/storage/w10\">" \
++ "<Puid>0</Puid>" \
++ "<TicketToken>%s</TicketToken>" \
++ "</StorageUserHeader>" \
++ "</soap:Header>" \
++ "<soap:Body xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" \
++ "<UpdateProfile xmlns=\"http://www.msn.com/webservices/storage/w10\">" \
++ "<profile>" \
++ "<ResourceID>%s</ResourceID>" \
++ "<ExpressionProfile>" \
++ "<FreeText>Update</FreeText>" \
++ "<DisplayName>%s</DisplayName>" \
++ "<Flags>0</Flags>" \
++ "</ExpressionProfile>" \
++ "</profile>" \
++ "</UpdateProfile>" \
++ "</soap:Body>" \
++"</soap:Envelope>"
++
+ int msn_soap_profile_get( struct im_connection *ic, const char *cid );
+-
++int msn_soap_profile_set_dn( struct im_connection *ic, const char *dn );
+
+ #endif /* __SOAP_H__ */
+
--- /dev/null
+#Bitlbee options (see /usr/sbin/bitlbee -h)
+BITLBEE_OPTS="-F"
--- /dev/null
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or
+# later
+# $Header: /var/cvsroot/gentoo-x86/net-im/bitlbee/files/bitlbee.initd,v 1.2 2010/03/04 17:47:00 cedk Exp $
+
+DAEMON=/usr/sbin/bitlbee
+PIDFILE=/var/run/bitlbee/bitlbee.pid
+
+depend() {
+ need logger net
+}
+
+start () {
+ ebegin "Starting bitlbee"
+ start-stop-daemon --start --quiet \
+ -c bitlbee:bitlbee --exec ${DAEMON} -- -P ${PIDFILE} \
+ ${BITLBEE_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping bitlbee"
+ start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
+ eend $?
+}
+