diff options
author | wiz <wiz@pkgsrc.org> | 2015-01-16 08:57:46 +0000 |
---|---|---|
committer | wiz <wiz@pkgsrc.org> | 2015-01-16 08:57:46 +0000 |
commit | a6b81fdc491a3c244f619daa58ef79c8cecbf090 (patch) | |
tree | 9074f1bf2691edba42a52b044d1367c8f427af9f /chat/mcabber | |
parent | 541a55fdca026f0a2374f53700af2b790e069e67 (diff) | |
download | pkgsrc-a6b81fdc491a3c244f619daa58ef79c8cecbf090.tar.gz |
Update to 0.10.3:
mcabber (0.10.3)
* [UI] Add option 'iq_time_hide'
* [UI] Add 'iq_version_hide', 'iq_version_hide_version'
* Improved handling of damaged history log files
* Switch to libotr v4 API (Myhailo Danylenko)
* Add SSL options (Frank Zschockelt)
These options require a patched Loudmouth library.
- "ssl_ciphers" to define the allowed ciphers
- "ssl_ca" to set additional trusted certificates
* Fix compilation for old loudmouth libraries (Frank Zschockelt)
* Add 'color_timestamp' to highlight timestamp added by server (Hermitifier)
* New python based event script using OS X 10.8 notification center (Sharoon Thomas)
* Handle SIGHUP signal (Dominik George)
* Misc. bugfixes
-- Mikael, 2014-05-08
Diffstat (limited to 'chat/mcabber')
-rw-r--r-- | chat/mcabber/Makefile | 5 | ||||
-rw-r--r-- | chat/mcabber/distinfo | 11 | ||||
-rw-r--r-- | chat/mcabber/patches/patch-configure | 238 | ||||
-rw-r--r-- | chat/mcabber/patches/patch-mcabber_otr.c | 541 | ||||
-rw-r--r-- | chat/mcabber/patches/patch-mcabber_otr.h | 16 |
5 files changed, 6 insertions, 805 deletions
diff --git a/chat/mcabber/Makefile b/chat/mcabber/Makefile index 8e6f4abd669..f9ee333324c 100644 --- a/chat/mcabber/Makefile +++ b/chat/mcabber/Makefile @@ -1,7 +1,6 @@ -# $NetBSD: Makefile,v 1.2 2014/02/12 23:17:37 tron Exp $ +# $NetBSD: Makefile,v 1.3 2015/01/16 08:57:46 wiz Exp $ -DISTNAME= mcabber-0.10.2 -PKGREVISION= 1 +DISTNAME= mcabber-0.10.3 CATEGORIES= chat MASTER_SITES= http://www.lilotux.net/~mikael/mcabber/files/ EXTRACT_SUFX= .tar.bz2 diff --git a/chat/mcabber/distinfo b/chat/mcabber/distinfo index c0210e324ba..fc979023c15 100644 --- a/chat/mcabber/distinfo +++ b/chat/mcabber/distinfo @@ -1,9 +1,6 @@ -$NetBSD: distinfo,v 1.1 2014/01/10 09:50:42 wiz Exp $ +$NetBSD: distinfo,v 1.2 2015/01/16 08:57:46 wiz Exp $ -SHA1 (mcabber-0.10.2.tar.bz2) = 7bff70dcf09e8a8a4cc7219e03b48bad382a6bda -RMD160 (mcabber-0.10.2.tar.bz2) = 16f82605b9b0c81e9627a4197653cfd991773c78 -Size (mcabber-0.10.2.tar.bz2) = 604378 bytes +SHA1 (mcabber-0.10.3.tar.bz2) = 9254f520cb37e691fb55d4fc46df4440e4a17f14 +RMD160 (mcabber-0.10.3.tar.bz2) = d94e7b2e340cfd83a5b55276cdb0383a8555b347 +Size (mcabber-0.10.3.tar.bz2) = 612153 bytes SHA1 (patch-aa) = 6c340bae29a7ba66a911ad94bef4aca8d8a08751 -SHA1 (patch-configure) = f681202f7069d2c2abcc8dddd94dd8ce46a7e421 -SHA1 (patch-mcabber_otr.c) = 9d69418a96f1867d402de191c93314f3bd5ea597 -SHA1 (patch-mcabber_otr.h) = d8b2a3b85ae3bd87831a5a265ba68ee13cdb4450 diff --git a/chat/mcabber/patches/patch-configure b/chat/mcabber/patches/patch-configure deleted file mode 100644 index 7ac08a4fd83..00000000000 --- a/chat/mcabber/patches/patch-configure +++ /dev/null @@ -1,238 +0,0 @@ -$NetBSD: patch-configure,v 1.1 2014/01/10 09:50:42 wiz Exp $ - -Fix libotr>=4 detection. - ---- configure.orig 2012-12-02 13:30:10.000000000 +0000 -+++ configure -@@ -15502,7 +15502,7 @@ else - fi - - if test "x$enable_otr" = "xyes"; then -- # Look for libgcrypt and libotr -+ # Look for libgcrypt and libotr - - # Check whether --with-libgcrypt-prefix was given. - if test "${with_libgcrypt_prefix+set}" = set; then : -@@ -15687,7 +15687,182 @@ $as_echo "does not match. want=$req_libg - LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags` - LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs` - -- libotr_save_CFLAGS="$CFLAGS" -+ libotr_save_CFLAGS="$CFLAGS" -+libotr_save_LDFLAGS="$LDFLAGS" -+libotr_save_LIBS="$LIBS" -+libotr_found=yes -+ -+ -+# Check whether --with-libotr-prefix was given. -+if test "${with_libotr_prefix+set}" = set; then : -+ withval=$with_libotr_prefix; libotr_prefix="$withval" -+else -+ libotr_prefix="" -+fi -+ -+ -+ -+# Check whether --with-libotr-inc-prefix was given. -+if test "${with_libotr_inc_prefix+set}" = set; then : -+ withval=$with_libotr_inc_prefix; libotr_inc_prefix="$withval" -+else -+ libotr_inc_prefix="" -+fi -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotr CFLAGS" >&5 -+$as_echo_n "checking for libotr CFLAGS... " >&6; } -+if test "$libotr_inc_prefix" != "" ; then -+ LIBOTR_CFLAGS="$LIBOTR_CFLAGS -I$libotr_inc_prefix" -+ CFLAGS="$CFLAGS $LIBOTR_CFLAGS" -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTR_CFLAGS" >&5 -+$as_echo "$LIBOTR_CFLAGS" >&6; } -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotr LIBS" >&5 -+$as_echo_n "checking for libotr LIBS... " >&6; } -+if test "$libotr_prefix" != "" ; then -+ LIBOTR_LIBS="$LIBOTR_LIBS -L$libotr_prefix" -+ LDFLAGS="$LDFLAGS $LIBOTR_LIBS" -+fi -+ -+LIBOTR_LIBS="$LIBOTR_LIBS -lotr" -+LIBS="$LIBOTR_LIBS $LIBS" -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTR_LIBS" >&5 -+$as_echo "$LIBOTR_LIBS" >&6; } -+ -+min_libotr_version=4.0.0 -+no_libotr="" -+ libotr_min_major_version=`echo $min_libotr_version | \ -+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` -+ libotr_min_minor_version=`echo $min_libotr_version | \ -+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` -+ libotr_min_sub_version=`echo $min_libotr_version | \ -+ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotr headers version $libotr_min_major_version.x >= $min_libotr_version" >&5 -+$as_echo_n "checking for libotr headers version $libotr_min_major_version.x >= $min_libotr_version... " >&6; } -+ -+ -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+#include <stdlib.h> -+#include <libotr/version.h> -+ -+int -+main () -+{ -+ -+# if(OTRL_VERSION_MAJOR != $libotr_min_major_version) -+# error not present -+# else -+ -+# if(OTRL_VERSION_MINOR > $libotr_min_minor_version) -+ exit(0); -+# else -+# if(OTRL_VERSION_MINOR < $libotr_min_minor_version) -+# error not present -+# endif -+ -+# if(OTRL_VERSION_SUB < $libotr_min_sub_version) -+# error not present -+# endif -+# endif -+# endif -+exit(0); -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_compile "$LINENO"; then : -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: found." >&5 -+$as_echo "found." >&6; } -+else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not present." >&5 -+$as_echo "not present." >&6; } -+ -+ libotr_found=no -+ -+fi -+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -+ac_ext=c -+ac_cpp='$CPP $CPPFLAGS' -+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -+ac_compiler_gnu=$ac_cv_c_compiler_gnu -+ -+ -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for otrl_message_receiving in -lotr" >&5 -+$as_echo_n "checking for otrl_message_receiving in -lotr... " >&6; } -+if ${ac_cv_lib_otr_otrl_message_receiving+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lotr $LIBGCRYPT_LIBS -+ $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char otrl_message_receiving (); -+int -+main () -+{ -+return otrl_message_receiving (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_otr_otrl_message_receiving=yes -+else -+ ac_cv_lib_otr_otrl_message_receiving=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_otr_otrl_message_receiving" >&5 -+$as_echo "$ac_cv_lib_otr_otrl_message_receiving" >&6; } -+if test "x$ac_cv_lib_otr_otrl_message_receiving" = xyes; then : -+ cat >>confdefs.h <<_ACEOF -+#define HAVE_LIBOTR 1 -+_ACEOF -+ -+ LIBS="-lotr $LIBS" -+ -+else -+ -+ libotr_found=no -+fi -+ -+ -+LDFLAGS="$libotr_save_LDFLAGS" -+LIBS="$libotr_save_LIBS" -+ -+if test "x$libotr_found" = "xyes" ; then -+ -+ -+$as_echo "#define HAVE_LIBOTR 1" >>confdefs.h -+ -+ -+else -+ LIBOTR_CFLAGS="" -+ LIBOTR_LIBS="" -+ -+ libotr_save_CFLAGS="$CFLAGS" - libotr_save_LDFLAGS="$LDFLAGS" - libotr_save_LIBS="$LIBS" - libotr_found=yes -@@ -15853,11 +16028,26 @@ LDFLAGS="$libotr_save_LDFLAGS" - LIBS="$libotr_save_LIBS" - - if test "x$libotr_found" = "xyes" ; then -- : -+ -+ -+$as_echo "#define HAVE_LIBOTR 1" >>confdefs.h -+ -+ -+$as_echo "#define HAVE_LIBOTR3 1" >>confdefs.h -+ -+ - else - LIBOTR_CFLAGS="" - LIBOTR_LIBS="" -- as_fn_error $? "libotr 3.1.0 or newer is required." "$LINENO" 5 -+ -+ as_fn_error $? "libotr 3.1.0 or newer is required." "$LINENO" 5 -+ -+fi -+ -+ -+ -+ -+ - fi - - -@@ -15890,7 +16080,8 @@ $as_echo "$as_me: WARNING: - else - LIBGCRYPT_CFLAGS="" - LIBGCRYPT_LIBS="" -- as_fn_error $? "libgcrypt 1.2.2 or newer is required." "$LINENO" 5 -+ -+ as_fn_error $? "libgcrypt 1.2.2 or newer is required." "$LINENO" 5 - - fi - diff --git a/chat/mcabber/patches/patch-mcabber_otr.c b/chat/mcabber/patches/patch-mcabber_otr.c deleted file mode 100644 index 2524b018cdd..00000000000 --- a/chat/mcabber/patches/patch-mcabber_otr.c +++ /dev/null @@ -1,541 +0,0 @@ -$NetBSD: patch-mcabber_otr.c,v 1.1 2014/01/10 09:50:42 wiz Exp $ - -Fix libotr>=4 build. - ---- mcabber/otr.c.orig 2012-12-02 13:27:32.000000000 +0000 -+++ mcabber/otr.c -@@ -56,6 +56,20 @@ static void cb_inject_message - const char *protocol, - const char *recipient, - const char *message); -+static void cb_update_context_list(void *opdata); -+static void cb_new_fingerprint (void *opdata, OtrlUserState us, -+ const char *accountname, -+ const char *protocol, -+ const char *username, -+ unsigned char fingerprint[20]); -+static void cb_write_fingerprints (void *opdata); -+static void cb_gone_secure (void *opdata, ConnContext *context); -+static void cb_gone_insecure (void *opdata, ConnContext *context); -+static void cb_still_secure (void *opdata, ConnContext *context, -+ int is_reply); -+static int cb_max_message_size (void *opdata, ConnContext *context); -+ -+#ifdef HAVE_LIBOTR3 - static void cb_notify (void *opdata, - OtrlNotifyLevel level, - const char *accountname, -@@ -69,22 +83,26 @@ static int cb_display_otr_message - const char *protocol, - const char *username, - const char *msg); --static void cb_update_context_list(void *opdata); - static const char *cb_protocol_name (void *opdata, const char *protocol); - static void cb_protocol_name_free (void *opdata, - const char *protocol_name); --static void cb_new_fingerprint (void *opdata, OtrlUserState us, -- const char *accountname, -- const char *protocol, -- const char *username, -- unsigned char fingerprint[20]); --static void cb_write_fingerprints (void *opdata); --static void cb_gone_secure (void *opdata, ConnContext *context); --static void cb_gone_insecure (void *opdata, ConnContext *context); --static void cb_still_secure (void *opdata, ConnContext *context, -- int is_reply); - static void cb_log_message (void *opdata, const char *message); --static int cb_max_message_size (void *opdata, ConnContext *context); -+ -+static void otr_handle_smp_tlvs (OtrlTLV *tlvs, ConnContext *ctx); -+#else /* HAVE_LIBOTR3 */ -+static char *tagfile = NULL; -+static guint otr_timer_source = 0; -+ -+static void cb_handle_smp_event (void *opdata, OtrlSMPEvent event, -+ ConnContext *context, unsigned short percent, -+ char *question); -+static void cb_handle_msg_event (void *opdata, OtrlMessageEvent event, -+ ConnContext *context, const char *message, -+ gcry_error_t err); -+static void cb_create_instag (void *opdata, const char *accountname, -+ const char *protocol); -+static void cb_timer_control (void *opdata, unsigned int interval); -+#endif /* HAVE_LIBOTR3 */ - - static OtrlMessageAppOps ops = - { -@@ -92,26 +110,44 @@ static OtrlMessageAppOps ops = - cb_create_privkey, - cb_is_logged_in, - cb_inject_message, -+#ifdef HAVE_LIBOTR3 - cb_notify, - cb_display_otr_message, -+#endif - cb_update_context_list, -+#ifdef HAVE_LIBOTR3 - cb_protocol_name, - cb_protocol_name_free, -+#endif - cb_new_fingerprint, - cb_write_fingerprints, - cb_gone_secure, - cb_gone_insecure, - cb_still_secure, -+#ifdef HAVE_LIBOTR3 - cb_log_message, -+#endif - cb_max_message_size, -- NULL, /*account_name*/ -- NULL /*account_name_free*/ -+ NULL, /* account_name */ -+ NULL, /* account_name_free */ -+#ifndef HAVE_LIBOTR3 -+ NULL, /* received_symkey */ -+ NULL, /* otr_error_message */ -+ NULL, /* otr_error_message_free */ -+ NULL, /* resent_msg_prefix */ -+ NULL, /* resent_msg_prefix_free */ -+ cb_handle_smp_event, -+ cb_handle_msg_event, -+ cb_create_instag, -+ NULL, /* convert_msg */ -+ NULL, /* convert_free */ -+ cb_timer_control, -+#endif - }; - - static void otr_message_disconnect(ConnContext *ctx); - static ConnContext *otr_get_context(const char *buddy); - static void otr_startstop(const char *buddy, int start); --static void otr_handle_smp_tlvs(OtrlTLV *tlvs, ConnContext *ctx); - - static char *otr_get_dir(void); - -@@ -135,7 +171,6 @@ void otr_init(const char *fjid) - account = jidtodisp(fjid); - keyfile = g_strdup_printf("%s%s.key", root, account); - fprfile = g_strdup_printf("%s%s.fpr", root, account); -- g_free(root); - - if (otrl_privkey_read(userstate, keyfile)){ - scr_LogPrint(LPRINT_LOGNORM, "Could not read OTR key from %s", keyfile); -@@ -145,6 +180,14 @@ void otr_init(const char *fjid) - scr_LogPrint(LPRINT_LOGNORM, "Could not read OTR fingerprints from %s", - fprfile); - } -+#ifndef HAVE_LIBOTR3 -+ tagfile = g_strdup_printf("%s%s.tag", root, account); -+ if (otrl_instag_read(userstate, tagfile)) { -+ scr_LogPrint(LPRINT_LOGNORM, "Could not read OTR instance tag from %s", tagfile); -+ cb_create_instag(NULL, account, OTR_PROTOCOL_NAME); -+ } -+#endif -+ g_free(root); - } - - void otr_terminate(void) -@@ -154,6 +197,13 @@ void otr_terminate(void) - if (!otr_is_enabled) - return; - -+#ifndef HAVE_LIBOTR3 -+ if (otr_timer_source > 0) { -+ g_source_remove (otr_timer_source); -+ otr_timer_source = 0; -+ } -+#endif -+ - for (ctx = userstate->context_root; ctx; ctx = ctx->next) - if (ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED) - otr_message_disconnect(ctx); -@@ -175,6 +225,12 @@ void otr_terminate(void) - userstate = NULL; - g_free(keyfile); - keyfile = NULL; -+ g_free(fprfile); -+ fprfile = NULL; -+#ifndef HAVE_LIBOTR3 -+ g_free(tagfile); -+ tagfile = NULL; -+#endif - } - - static char *otr_get_dir(void) -@@ -206,7 +262,12 @@ static ConnContext *otr_get_context(cons - - mc_strtolower(lowcasebuddy); - ctx = otrl_context_find(userstate, lowcasebuddy, account, OTR_PROTOCOL_NAME, -+#ifdef HAVE_LIBOTR3 - 1, &null, NULL, NULL); -+#else -+ // INSTAG XXX -+ OTRL_INSTAG_BEST, 1, &null, NULL, NULL); -+#endif - g_free(lowcasebuddy); - return ctx; - } -@@ -216,7 +277,12 @@ static void otr_message_disconnect(ConnC - if (ctx->msgstate == OTRL_MSGSTATE_ENCRYPTED) - cb_gone_insecure(NULL, ctx); - otrl_message_disconnect(userstate, &ops, NULL, ctx->accountname, -+#ifdef HAVE_LIBOTR3 - ctx->protocol, ctx->username); -+#else -+ // INSTAG XXX -+ ctx->protocol, ctx->username, OTRL_INSTAG_BEST); -+#endif - } - - static void otr_startstop(const char *buddy, int start) -@@ -283,6 +349,8 @@ void otr_fingerprint(const char *buddy, - cb_write_fingerprints(NULL); - } - -+#ifdef HAVE_LIBOTR3 -+ - static void otr_handle_smp_tlvs(OtrlTLV *tlvs, ConnContext *ctx) - { - OtrlTLV *tlv = NULL; -@@ -354,6 +422,130 @@ static void otr_handle_smp_tlvs(OtrlTLV - } - } - -+#else /* HAVE_LIBOTR3 */ -+ -+static void cb_handle_smp_event(void *opdata, OtrlSMPEvent event, -+ ConnContext *context, unsigned short percent, -+ char *question) -+{ -+ const char *msg = NULL; -+ char *freeme = NULL; -+ switch (event) { -+ case OTRL_SMPEVENT_ASK_FOR_SECRET: -+ msg = freeme = g_strdup_printf("OTR: Socialist Millionaires' Protocol: " -+ "Received SMP Initiation.\n" -+ "Answer with /otr smpr %s $secret", -+ context->username); -+ break; -+ case OTRL_SMPEVENT_ASK_FOR_ANSWER: -+ msg = freeme = g_strdup_printf("OTR: Socialist Millionaires' Protocol: " -+ "Received SMP Initiation.\n" -+ "Answer with /otr smpr %s $secret\n" -+ "Question: %s", context->username, -+ question); -+ break; -+ case OTRL_SMPEVENT_CHEATED: -+ msg = "OTR: Socialist Millionaires' Protocol: Correspondent cancelled negotiation!"; -+ otrl_message_abort_smp(userstate, &ops, opdata, context); -+ break; -+ case OTRL_SMPEVENT_IN_PROGRESS: -+ scr_log_print(LPRINT_DEBUG, "OTR: Socialist Millionaires' Protocol: " -+ "Negotiation is in pogress..."); -+ break; -+ case OTRL_SMPEVENT_SUCCESS: -+ msg = "OTR: Socialist Millionaires' Protocol: Success!"; -+ break; -+ case OTRL_SMPEVENT_FAILURE: -+ msg = "OTR: Socialist Millionaires' Protocol: Failure."; -+ break; -+ case OTRL_SMPEVENT_ABORT: -+ msg = "OTR: Socialist Millionaires' Protocol: Aborted."; -+ break; -+ case OTRL_SMPEVENT_ERROR: -+ msg = "OTR: Socialist Millionaires' Protocol: Error occured, aborting negotiations!"; -+ otrl_message_abort_smp(userstate, &ops, opdata, context); -+ break; -+ default: -+ break; -+ } -+ -+ if (msg) { -+ scr_WriteIncomingMessage(context->username, msg, 0, HBB_PREFIX_INFO, 0); -+ g_free(freeme); -+ } -+} -+ -+static void cb_handle_msg_event(void *opdata, OtrlMessageEvent event, -+ ConnContext *context, const char *message, -+ gcry_error_t err) -+{ -+ const char *msg = NULL; -+ char *freeme = NULL; -+ switch (event) { -+ case OTRL_MSGEVENT_ENCRYPTION_REQUIRED: -+ msg = "OTR: Policy requires encryption on message!"; -+ break; -+ case OTRL_MSGEVENT_ENCRYPTION_ERROR: -+ msg = "OTR: Encryption error! Message not sent."; -+ break; -+ case OTRL_MSGEVENT_CONNECTION_ENDED: -+ msg = "OTR: Connection closed by remote end, message lost. " -+ "Close or refresh connection."; -+ break; -+ case OTRL_MSGEVENT_SETUP_ERROR: -+ // FIXME -+ msg = freeme = g_strdup_printf("OTR: Error setting up private conversation: %u", -+ err); -+ break; -+ case OTRL_MSGEVENT_MSG_REFLECTED: -+ msg = "OTR: Received own OTR message!"; -+ break; -+ case OTRL_MSGEVENT_MSG_RESENT: -+ msg = "OTR: Previous message was resent."; -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_NOT_IN_PRIVATE: -+ msg = "OTR: Received encrypted message, but connection is not established " \ -+ "yet! Message lost."; -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_UNREADABLE: -+ msg = "OTR: Unable to read incoming message!"; -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_MALFORMED: -+ msg = "OTR: Malformed incoming message!"; -+ break; -+ case OTRL_MSGEVENT_LOG_HEARTBEAT_RCVD: -+ scr_log_print(LPRINT_DEBUG, "OTR: Received heartbeat."); -+ break; -+ case OTRL_MSGEVENT_LOG_HEARTBEAT_SENT: -+ scr_log_print(LPRINT_DEBUG, "OTR: Sent heartbeat."); -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_GENERAL_ERR: -+ msg = freeme = g_strdup_printf("OTR: Received general otr error: %s", -+ message); -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_UNENCRYPTED: -+ msg = freeme = g_strdup_printf("OTR: Received unencrypted message: %s", -+ message); -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_UNRECOGNIZED: -+ msg = "OTR: Unable to determine type of received OTR message!"; -+ break; -+ case OTRL_MSGEVENT_RCVDMSG_FOR_OTHER_INSTANCE: -+ // XXX -+ scr_log_print(LPRINT_DEBUG, "OTR: Received message for other instance."); -+ break; -+ default: -+ break; -+ } -+ -+ if (msg) { -+ scr_WriteIncomingMessage(context->username, msg, 0, HBB_PREFIX_INFO, 0); -+ g_free(freeme); -+ } -+} -+ -+#endif /* HAVE_LIBOTR3 */ -+ - /* - * returns whether a otr_message was received - * sets *otr_data to NULL, when it was an internal otr message -@@ -362,8 +554,10 @@ int otr_receive(char **otr_data, const c - { - int ignore_message; - char *newmessage = NULL; -+#ifdef HAVE_LIBOTR3 - OtrlTLV *tlvs = NULL; - OtrlTLV *tlv = NULL; -+#endif - ConnContext *ctx; - - ctx = otr_get_context(buddy); -@@ -371,8 +565,8 @@ int otr_receive(char **otr_data, const c - ignore_message = otrl_message_receiving(userstate, &ops, NULL, - ctx->accountname, ctx->protocol, - ctx->username, *otr_data, -- &newmessage, &tlvs,NULL, NULL); -- -+#ifdef HAVE_LIBOTR3 -+ &newmessage, &tlvs, NULL, NULL); - - tlv = otrl_tlv_find(tlvs, OTRL_TLV_DISCONNECTED); - if (tlv) { -@@ -387,6 +581,9 @@ int otr_receive(char **otr_data, const c - - if (tlvs != NULL) - otrl_tlv_free(tlvs); -+#else -+ &newmessage, NULL, NULL, NULL, NULL); -+#endif - - if (ignore_message) - *otr_data = NULL; -@@ -410,13 +607,27 @@ int otr_send(char **msg, const char *bud - - if (ctx->msgstate == OTRL_MSGSTATE_PLAINTEXT) - err = otrl_message_sending(userstate, &ops, NULL, ctx->accountname, -+#ifdef HAVE_LIBOTR3 - ctx->protocol, ctx->username, *msg, NULL, - &newmessage, NULL, NULL); -+#else -+ // INSTAG XXX -+ ctx->protocol, ctx->username, OTRL_INSTAG_BEST, -+ *msg, NULL, &newmessage, OTRL_FRAGMENT_SEND_SKIP, -+ NULL, NULL, NULL); -+#endif - else { - htmlmsg = html_escape(*msg); - err = otrl_message_sending(userstate, &ops, NULL, ctx->accountname, -+#ifdef HAVE_LIBOTR3 - ctx->protocol, ctx->username, htmlmsg, NULL, - &newmessage, NULL, NULL); -+#else -+ // INSTAG XXX -+ ctx->protocol, ctx->username, OTRL_INSTAG_BEST, -+ htmlmsg, NULL, &newmessage, OTRL_FRAGMENT_SEND_SKIP, -+ NULL, NULL, NULL); -+#endif - g_free(htmlmsg); - } - -@@ -648,6 +859,59 @@ static void cb_inject_message(void *opda - LM_MESSAGE_SUB_TYPE_NOT_SET, NULL); - } - -+/* When the list of ConnContexts changes (including a change in -+ * state), this is called so the UI can be updated. */ -+static void cb_update_context_list(void *opdata) -+{ -+ /*maybe introduce new status characters for mcabber, -+ * then use this function (?!)*/ -+} -+ -+/* A new fingerprint for the given user has been received. */ -+static void cb_new_fingerprint(void *opdata, OtrlUserState us, -+ const char *accountname, const char *protocol, -+ const char *username, -+ unsigned char fingerprint[20]) -+{ -+ char *sbuf = NULL; -+ char readable[45]; -+ -+ otrl_privkey_hash_to_human(readable, fingerprint); -+ sbuf = g_strdup_printf("OTR: new fingerprint: %s", readable); -+ scr_WriteIncomingMessage(username, sbuf, 0, HBB_PREFIX_INFO, 0); -+ g_free(sbuf); -+} -+ -+/* The list of known fingerprints has changed. Write them to disk. */ -+static void cb_write_fingerprints(void *opdata) -+{ -+ otrl_privkey_write_fingerprints(userstate, fprfile); -+} -+ -+/* A ConnContext has entered a secure state. */ -+static void cb_gone_secure(void *opdata, ConnContext *context) -+{ -+ scr_WriteIncomingMessage(context->username, "OTR: channel established", 0, -+ HBB_PREFIX_INFO, 0); -+} -+ -+/* A ConnContext has left a secure state. */ -+static void cb_gone_insecure(void *opdata, ConnContext *context) -+{ -+ scr_WriteIncomingMessage(context->username, "OTR: channel closed", 0, -+ HBB_PREFIX_INFO, 0); -+} -+ -+/* We have completed an authentication, using the D-H keys we -+ * already knew. is_reply indicates whether we initiated the AKE. */ -+static void cb_still_secure(void *opdata, ConnContext *context, int is_reply) -+{ -+ scr_WriteIncomingMessage(context->username, "OTR: channel reestablished", 0, -+ HBB_PREFIX_INFO, 0); -+} -+ -+#ifdef HAVE_LIBOTR3 -+ - /* Display a notification message for a particular - * accountname / protocol / username conversation. */ - static void cb_notify(void *opdata, OtrlNotifyLevel level, -@@ -684,14 +948,6 @@ static int cb_display_otr_message(void * - return 0; - } - --/* When the list of ConnContexts changes (including a change in -- * state), this is called so the UI can be updated. */ --static void cb_update_context_list(void *opdata) --{ -- /*maybe introduce new status characters for mcabber, -- * then use this function (?!)*/ --} -- - /* Return a newly allocated string containing a human-friendly name - * for the given protocol id */ - static const char *cb_protocol_name(void *opdata, const char *protocol) -@@ -705,54 +961,40 @@ static void cb_protocol_name_free (void - /* We didn't allocated memory, so we don't have to free anything :p */ - } - --/* A new fingerprint for the given user has been received. */ --static void cb_new_fingerprint(void *opdata, OtrlUserState us, -- const char *accountname, const char *protocol, -- const char *username, -- unsigned char fingerprint[20]) -+/* Log a message. The passed message will end in "\n". */ -+static void cb_log_message(void *opdata, const char *message) - { -- char *sbuf = NULL; -- char readable[45]; -- -- otrl_privkey_hash_to_human(readable, fingerprint); -- sbuf = g_strdup_printf("OTR: new fingerprint: %s", readable); -- scr_WriteIncomingMessage(username, sbuf, 0, HBB_PREFIX_INFO, 0); -- g_free(sbuf); -+ scr_LogPrint(LPRINT_DEBUG, "OTR: %s", message); - } - --/* The list of known fingerprints has changed. Write them to disk. */ --static void cb_write_fingerprints(void *opdata) --{ -- otrl_privkey_write_fingerprints(userstate, fprfile); --} -+#else /* HAVE_LIBOTR3 */ - --/* A ConnContext has entered a secure state. */ --static void cb_gone_secure(void *opdata, ConnContext *context) -+/* Generate unique instance tag for account. */ -+static void cb_create_instag(void *opdata, const char *accountname, -+ const char *protocol) - { -- scr_WriteIncomingMessage(context->username, "OTR: channel established", 0, -- HBB_PREFIX_INFO, 0); -+ if (otrl_instag_generate(userstate, tagfile, accountname, protocol)) { -+ scr_LogPrint(LPRINT_LOGNORM, "OTR instance tag generation failed!"); -+ } - } - --/* A ConnContext has left a secure state. */ --static void cb_gone_insecure(void *opdata, ConnContext *context) -+static gboolean otr_timer_cb(gpointer userdata) - { -- scr_WriteIncomingMessage(context->username, "OTR: channel closed", 0, -- HBB_PREFIX_INFO, 0); -+ otrl_message_poll(userstate, &ops, userdata); -+ return TRUE; - } - --/* We have completed an authentication, using the D-H keys we -- * already knew. is_reply indicates whether we initiated the AKE. */ --static void cb_still_secure(void *opdata, ConnContext *context, int is_reply) -+static void cb_timer_control(void *opdata, unsigned int interval) - { -- scr_WriteIncomingMessage(context->username, "OTR: channel reestablished", 0, -- HBB_PREFIX_INFO, 0); -+ if (otr_timer_source > 0) { -+ g_source_remove(otr_timer_source); -+ otr_timer_source = 0; -+ } -+ if (interval > 0) -+ otr_timer_source = g_timeout_add_seconds(interval, otr_timer_cb, opdata); - } - --/* Log a message. The passed message will end in "\n". */ --static void cb_log_message(void *opdata, const char *message) --{ -- scr_LogPrint(LPRINT_DEBUG, "OTR: %s", message); --} -+#endif /* HAVE_LIBOTR3 */ - - /* Find the maximum message size supported by this protocol. */ - static int cb_max_message_size(void *opdata, ConnContext *context) diff --git a/chat/mcabber/patches/patch-mcabber_otr.h b/chat/mcabber/patches/patch-mcabber_otr.h deleted file mode 100644 index 144cf80e950..00000000000 --- a/chat/mcabber/patches/patch-mcabber_otr.h +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-mcabber_otr.h,v 1.1 2014/01/10 09:50:42 wiz Exp $ - -Fix libotr>=4 build. - ---- mcabber/otr.h.orig 2012-12-02 13:27:32.000000000 +0000 -+++ mcabber/otr.h -@@ -5,6 +5,9 @@ - - #ifdef HAVE_LIBOTR - -+#ifndef HAVE_LIBOTR3 -+# include <libotr/instag.h> -+#endif - #include <libotr/proto.h> - #include <libotr/message.h> - #include <libotr/privkey.h> |