Markus Hennecke (2015-01-23 11:31 +0100): > Updates mcabber to 0.10.3. Thanks a lot to Tim van der Molen for sending > me the patch. Patch needs to be applied with the -E option, the patch > files are no longer needed.
Could someone please commit this? Thanks. > Index: Makefile > =================================================================== > RCS file: /cvs/ports/net/mcabber/Makefile,v > retrieving revision 1.21 > diff -u -p -u -r1.21 Makefile > --- Makefile 15 Aug 2013 16:34:49 -0000 1.21 > +++ Makefile 21 Jan 2015 09:35:21 -0000 > @@ -3,11 +3,10 @@ > SHARED_ONLY= Yes > > COMMENT= console jabber client > -DISTNAME= mcabber-0.10.2 > -REVISION= 0 > +DISTNAME= mcabber-0.10.3 > CATEGORIES= net > > -HOMEPAGE= http://www.lilotux.net/~mikael/mcabber/ > +HOMEPAGE= http://mcabber.com/ > > MAINTAINER= Markus Hennecke <markus-henne...@markus-hennecke.de> > > @@ -30,6 +29,7 @@ LIB_DEPENDS= devel/glib2 \ > security/libotr > RUN_DEPENDS= devel/desktop-file-utils > > +USE_GMAKE = Yes > USE_GROFF = Yes > LIBTOOL_FLAGS= --tag=disable-static > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/net/mcabber/distinfo,v > retrieving revision 1.8 > diff -u -p -u -r1.8 distinfo > --- distinfo 30 May 2013 12:01:17 -0000 1.8 > +++ distinfo 21 Jan 2015 09:35:21 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (mcabber-0.10.2.tar.bz2) = > 4kbRU/k6dbT0WHn0R0NNsHBQPJkDvz+ZWvOWs7lFhvg= > -SIZE (mcabber-0.10.2.tar.bz2) = 604378 > +SHA256 (mcabber-0.10.3.tar.bz2) = > d0ZhOElswm2xJRRcwo3E/A33mCcUO5It+58C6w3H+m0= > +SIZE (mcabber-0.10.3.tar.bz2) = 612153 > Index: patches/patch-configure_ac > =================================================================== > RCS file: /cvs/ports/net/mcabber/patches/patch-configure_ac,v > retrieving revision 1.1 > diff -u -p -u -r1.1 patch-configure_ac > --- patches/patch-configure_ac 15 Aug 2013 16:34:50 -0000 1.1 > +++ patches/patch-configure_ac 21 Jan 2015 09:35:21 -0000 > @@ -1,45 +0,0 @@ > -$OpenBSD: patch-configure_ac,v 1.1 2013/08/15 16:34:50 stsp Exp $ > -http://www.isbear.org.ua/hg/isbear/mcabber-patches/file/tip/use-otr-v4.diff > ---- configure.ac.orig Sun Dec 2 14:27:30 2012 > -+++ configure.ac Wed Aug 14 18:56:07 2013 > -@@ -184,16 +184,26 @@ fi > - > - # Check for otr > - AC_ARG_ENABLE(otr, > -- AC_HELP_STRING([--enable-otr], > -- [enable OTR (Off-the-Record) messaging > support]), > -- enable_otr=$enableval, otr="") > -+ AC_HELP_STRING([--enable-otr], > -+ [enable OTR (Off-the-Record) messaging support]), > -+ enable_otr=$enableval, > -+ otr="") > - if test "x$enable_otr" = "xyes"; then > -- # Look for libgcrypt and libotr > -- AM_PATH_LIBGCRYPT(1.2.2, [ > -- AM_PATH_LIBOTR(3.1.0, , > -- AC_MSG_ERROR(libotr 3.1.0 or newer is required.)) > -- ], AC_MSG_ERROR(libgcrypt 1.2.2 or newer is required.) > -- ) > -+ # Look for libgcrypt and libotr > -+ AM_PATH_LIBGCRYPT(1.2.2, [ > -+ AM_PATH_LIBOTR(4.0.0, [ > -+ AC_DEFINE([HAVE_LIBOTR], 1, [Define if you use libotr]) > -+ ], [ > -+ AM_PATH_LIBOTR(3.1.0, [ > -+ AC_DEFINE([HAVE_LIBOTR], 1, [Define if you use libotr]) > -+ AC_DEFINE([HAVE_LIBOTR3], 1, [Define if you use libotr v3]) > -+ ], [ > -+ AC_MSG_ERROR(libotr 3.1.0 or newer is required.) > -+ ]) > -+ ]) > -+ ], [ > -+ AC_MSG_ERROR(libgcrypt 1.2.2 or newer is required.) > -+ ]) > - fi > - > - # Check for Enchant stuff > -@@ -290,3 +300,4 @@ AC_CONFIG_FILES([mcabber/Makefile > - mcabber.pc > - Makefile]) > - AC_OUTPUT > -+dnl vim: set expandtab cindent cinoptions=>2\:2(0 sw=2 ts=2: For Vim > users... > Index: patches/patch-mcabber_otr_c > =================================================================== > RCS file: /cvs/ports/net/mcabber/patches/patch-mcabber_otr_c,v > retrieving revision 1.1 > diff -u -p -u -r1.1 patch-mcabber_otr_c > --- patches/patch-mcabber_otr_c 15 Aug 2013 16:34:50 -0000 1.1 > +++ patches/patch-mcabber_otr_c 21 Jan 2015 09:35:21 -0000 > @@ -1,540 +0,0 @@ > -$OpenBSD: patch-mcabber_otr_c,v 1.1 2013/08/15 16:34:50 stsp Exp $ > -http://www.isbear.org.ua/hg/isbear/mcabber-patches/file/tip/use-otr-v4.diff > ---- mcabber/otr.c.orig Sun Dec 2 14:27:32 2012 > -+++ mcabber/otr.c Wed Aug 14 18:56:07 2013 > -@@ -56,6 +56,20 @@ static void cb_inject_message (void *opdata, > - 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,49 +83,71 @@ static int cb_display_otr_message(void *opdata, > - 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 = > - { > - cb_policy, > - 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(const char *buddy) > - > - 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(ConnContext *ctx) > - 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, const char *tr > - 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 *tlvs, ConnCon > - } > - } > - > -+#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 char *buddy, in > - { > - int ignore_message; > - char *newmessage = NULL; > -+#ifdef HAVE_LIBOTR3 > - OtrlTLV *tlvs = NULL; > - OtrlTLV *tlv = NULL; > -+#endif > - ConnContext *ctx; > - > - ctx = otr_get_context(buddy); > -@@ -371,9 +565,9 @@ int otr_receive(char **otr_data, const char *buddy, in > - 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) { > - /* Notify the user that the other side disconnected. */ > -@@ -387,6 +581,9 @@ int otr_receive(char **otr_data, const char *buddy, in > - > - 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 *buddy) > - > - 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 *opdata, const char > - 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 *opdata, const > - 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 *opdata, const > - /* 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) > Index: patches/patch-mcabber_otr_h > =================================================================== > RCS file: /cvs/ports/net/mcabber/patches/patch-mcabber_otr_h,v > retrieving revision 1.1 > diff -u -p -u -r1.1 patch-mcabber_otr_h > --- patches/patch-mcabber_otr_h 15 Aug 2013 16:34:50 -0000 1.1 > +++ patches/patch-mcabber_otr_h 21 Jan 2015 09:35:21 -0000 > @@ -1,14 +0,0 @@ > -$OpenBSD: patch-mcabber_otr_h,v 1.1 2013/08/15 16:34:50 stsp Exp $ > -http://www.isbear.org.ua/hg/isbear/mcabber-patches/file/tip/use-otr-v4.diff > ---- mcabber/otr.h.orig Sun Dec 2 14:27:32 2012 > -+++ mcabber/otr.h Wed Aug 14 18:56:07 2013 > -@@ -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> >