Package: irssi-plugin-xmpp Followup-For: Bug #1015031 User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu kinetic ubuntu-patch X-Debbugs-Cc: scho...@ubuntu.com Control: tags -1 patch
In Ubuntu, the attached patch was applied to achieve the following: * d/p/gtimeval-build-fix.patch: cherry-picked from a PR upstream to fix build against newer irssi (Closes: #1015031) Thanks for considering the patch. Cheers, Simon -- System Information: Debian Release: bookworm/sid APT prefers jammy-updates APT policy: (500, 'jammy-updates'), (500, 'jammy-proposed'), (500, 'jammy'), (100, 'jammy-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.15.0-43-generic (SMP w/24 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
diff -Nru irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/gtimeval-build-fix.patch irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/gtimeval-build-fix.patch --- irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/gtimeval-build-fix.patch 1970-01-01 01:00:00.000000000 +0100 +++ irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/gtimeval-build-fix.patch 2022-07-29 09:48:28.000000000 +0200 @@ -0,0 +1,123 @@ +From c7728ea5aa2f4e584159b3d12ad815294c44ca6a Mon Sep 17 00:00:00 2001 +From: Ailin Nemui <ailin@z30a.localdomain> +Date: Tue, 17 Mar 2020 14:32:52 +0100 +Subject: [PATCH] add compatibility code to GTimeVal -> gint64 transition +Origin: https://github.com/cdidier/irssi-xmpp/pull/53 +Reviewed-By: Simon Chopin <scho...@ubuntu.com> +Last-Update: 2022-07-29 + +this is for irssi/irssi#1145 +--- + src/core/xep/ping.c | 50 +++++++++++++++++++++++++++++++++------------ + 1 file changed, 37 insertions(+), 13 deletions(-) + +diff --git a/src/core/xep/ping.c b/src/core/xep/ping.c +index d51930a..7b811cb 100644 +--- a/src/core/xep/ping.c ++++ b/src/core/xep/ping.c +@@ -36,15 +36,40 @@ + + #define XMLNS_PING "urn:xmpp:ping" + ++#if defined(IRSSI_ABI_VERSION) && IRSSI_ABI_VERSION >= 25 ++#define NO_TIMEVAL ++#define TimeType gint64 ++#else ++#define TimeType GTimeVal ++#endif ++ + struct ping_data { +- char *id; +- GTimeVal time; ++ char *id; ++ TimeType time; + }; + + static int timeout_tag; + static GSList *supported_servers; + static DATALIST *pings; + ++#ifdef NO_TIMEVAL ++ ++#define set_current_time(var) (var) = g_get_real_time() ++#define clear_time(var) (var) = 0 ++#define has_time(var) ((var) != 0) ++#define get_time_sec(var) ((var) / G_TIME_SPAN_SECOND) ++#define get_time_diff(to, from) (to) - (from) ++ ++#else ++ ++#define set_current_time(var) g_get_current_time(&(var)) ++#define clear_time(var) memset(&(var), 0, sizeof((var))) ++#define has_time(var) ((var).tv_sec != 0) ++#define get_time_sec(var) ((var).tv_sec) ++#define get_time_diff(to, from) (int) get_timeval_diff(&(to), &(from)) ++ ++#endif ++ + static void + request_ping(XMPP_SERVER_REC *server, const char *dest) + { +@@ -63,13 +88,13 @@ request_ping(XMPP_SERVER_REC *server, const char *dest) + g_free(server->ping_id); + server->ping_id = + g_strdup(lm_message_node_get_attribute(lmsg->node, "id")); +- g_get_current_time(&server->lag_sent); ++ set_current_time(server->lag_sent); + server->lag_last_check = time(NULL); + } else { + pd = g_new0(struct ping_data, 1); + pd->id = + g_strdup(lm_message_node_get_attribute(lmsg->node, "id")); +- g_get_current_time(&pd->time); ++ set_current_time(pd->time); + datalist_add(pings, server, dest, pd); + } + signal_emit("xmpp send iq", 2, server, lmsg); +@@ -98,7 +123,7 @@ sig_recv_iq(XMPP_SERVER_REC *server, LmMessage *lmsg, const int type, + { + DATALIST_REC *rec; + LmMessageNode *node; +- GTimeVal now; ++ TimeType now; + struct ping_data *pd; + + if (type == LM_MESSAGE_SUB_TYPE_RESULT) { +@@ -106,19 +131,18 @@ sig_recv_iq(XMPP_SERVER_REC *server, LmMessage *lmsg, const int type, + if (server->ping_id != NULL + && (*from == '\0' || strcmp(from, server->domain) == 0) + && strcmp(id, server->ping_id) == 0) { +- g_get_current_time(&now); +- server->lag = +- (int)get_timeval_diff(&now, &server->lag_sent); +- memset(&server->lag_sent, 0, sizeof(server->lag_sent)); ++ set_current_time(now); ++ server->lag = get_time_diff(now, server->lag_sent); ++ clear_time(server->lag_sent); + g_free_and_null(server->ping_id); + signal_emit("server lag", 1, server); + } else if (lmsg->node->children == NULL + && (rec = datalist_find(pings, server, from)) != NULL) { + pd = rec->data; + if (strcmp(id, pd->id) == 0) { +- g_get_current_time(&now); ++ set_current_time(now); + signal_emit("xmpp ping", 3, server, from, +- get_timeval_diff(&now, &pd->time)); ++ get_time_diff(now, pd->time)); + } + } + } else if (type == LM_MESSAGE_SUB_TYPE_GET) { +@@ -166,10 +190,10 @@ check_ping_func(void) + now = time(NULL); + for (tmp = supported_servers; tmp != NULL; tmp = tmp->next) { + server = XMPP_SERVER(tmp->data); +- if (server->lag_sent.tv_sec != 0) { ++ if (has_time(server->lag_sent)) { + /* waiting for lag reply */ + if (max_lag > 1 && +- (now - server->lag_sent.tv_sec) > max_lag) { ++ (now - get_time_sec(server->lag_sent)) > max_lag) { + /* too much lag - disconnect */ + signal_emit("server lag disconnect", 1, + server); diff -Nru irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/series irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/series --- irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/series 2021-01-22 10:33:44.000000000 +0100 +++ irssi-plugin-xmpp-0.54+git20191101+c13fa5/debian/patches/series 2022-07-29 09:48:28.000000000 +0200 @@ -32,3 +32,4 @@ strip_resource_08082009.patch singpolyma-fix-warnings.patch singpolyma-null-resource-was-causing-crash-here.patch +gtimeval-build-fix.patch