liboping: fix compilation with ncurses 6.3
authorHannu Nyman <hannu.nyman@iki.fi>
Sun, 20 Mar 2022 18:36:53 +0000 (20:36 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Sun, 20 Mar 2022 18:55:15 +0000 (20:55 +0200)
Fix compilation with ncurses 6.3 by adjusting the printf format strings.

Apparently ncurses 6.3 introduced some new formatting tweaks that
broke things.

Fixes #18110

Reference to:
* https://github.com/octo/liboping/issues/62
* https://github.com/octo/liboping/pull/61
* https://salsa.debian.org/debian/liboping/-/blob/debian/debian/patches/fix_HOST_PRINTF_format_string.patch

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit cb4d8ccb2715c33acfcfe987545f9e899056e18f)

libs/liboping/Makefile
libs/liboping/patches/05-fix-format-arguments-ncurses63.patch [new file with mode: 0644]

index 8ef66bc7d004f20d70bdc7c3597bb8d51159b139..8973dd5c93996393531d9b8e1f8bea967a7c37ba 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=liboping
 PKG_VERSION:=1.10.0
-PKG_RELEASE:=2
+PKG_RELEASE:=$(AUTORELEASE)
 PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
 PKG_LICENSE:=LGPL-2.1-or-later
 
diff --git a/libs/liboping/patches/05-fix-format-arguments-ncurses63.patch b/libs/liboping/patches/05-fix-format-arguments-ncurses63.patch
new file mode 100644 (file)
index 0000000..66b9657
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/src/oping.c
++++ b/src/oping.c
+@@ -1125,7 +1125,7 @@ static int update_graph_prettyping (ping
+                       wattron (ctx->window, COLOR_PAIR(color));
+               if (has_utf8())
+-                      mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, symbol);
++                      mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s", symbol);
+               else
+                       mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, symbolc);
+@@ -1223,7 +1223,7 @@ static int update_graph_histogram (ping_
+                       mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, ' ');
+               else if (has_utf8 ())
+                       mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2,
+-                                      hist_symbols_utf8[index]);
++                                      "%s", hist_symbols_utf8[index]);
+               else
+                       mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2,
+                                       hist_symbols_acs[index] | A_ALTCHARSET);
+@@ -1600,8 +1600,7 @@ static void update_host_hook (pingobj_it
+                       HOST_PRINTF ("%zu bytes from %s (%s): icmp_seq=%u ttl=%i ",
+                                       data_len, context->host, context->addr,
+-                                      sequence, recv_ttl,
+-                                      format_qos (recv_qos, recv_qos_str, sizeof (recv_qos_str)));
++                                      sequence, recv_ttl);
+                       if ((recv_qos != 0) || (opt_send_qos != 0))
+                       {
+                               HOST_PRINTF ("qos=%s ",