diff --git a/rrdtool-fix_extra_reference.patch b/rrdtool-fix_extra_reference.patch new file mode 100644 index 0000000..97310a6 --- /dev/null +++ b/rrdtool-fix_extra_reference.patch @@ -0,0 +1,50 @@ +From: Martin Jambor +Date: Fri, 12 Jul 2024 17:02:04 +0200 +Subject: [PATCH] Fix extra reference of parameters of rrd_fetch_dbi_{long,double} +Upstream: https://github.com/oetiker/rrdtool-1.x/pull/1255 +Refrences: boo#1225919 + +Functions rrd_fetch_dbi_long and rrd_fetch_dbi_double currently take +the first parameter of type "bi_result result *" even though that is +already a pointer and the use of that parameter suggests the extra +indirection is not wanted. What is more, the caller passes just +"bi_result result" to the corresponding actual arguments which results +in compile errors with GCC 14 because it now does not accept +incompatible pointer types by default. +--- + src/rrd_fetch_libdbi.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/rrd_fetch_libdbi.c b/src/rrd_fetch_libdbi.c +index fe02b0d8..e4eccaa5 100644 +--- a/src/rrd_fetch_libdbi.c ++++ b/src/rrd_fetch_libdbi.c +@@ -26,13 +26,13 @@ static char* _find_next_separator(char* start,char separator); + static char* _find_next_separator_twice(char*start,char separator); + static char _hexcharhelper(char c); + static int _inline_unescape (char* string); +-static double rrd_fetch_dbi_double(dbi_result *result,int idx); +-static long rrd_fetch_dbi_long(dbi_result *result,int idx); ++static double rrd_fetch_dbi_double(dbi_result result,int idx); ++static long rrd_fetch_dbi_long(dbi_result result,int idx); + + /* the real code */ + + /* helpers to get correctly converted values from DB*/ +-static long rrd_fetch_dbi_long(dbi_result *result,int idx) { ++static long rrd_fetch_dbi_long(dbi_result result,int idx) { + char *ptmp=""; + long value=DNAN; + /* get the attributes for this filed */ +@@ -89,7 +89,7 @@ static long rrd_fetch_dbi_long(dbi_result *result,int idx) { + return value; + } + +-static double rrd_fetch_dbi_double(dbi_result *result,int idx) { ++static double rrd_fetch_dbi_double(dbi_result result,int idx) { + char *ptmp=""; + double value=DNAN; + /* get the attributes for this filed */ +-- +2.45.2 + diff --git a/rrdtool.changes b/rrdtool.changes index df2b211..6ec71cd 100644 --- a/rrdtool.changes +++ b/rrdtool.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Jul 12 15:12:22 UTC 2024 - Martin Jambor + +- Added rrdtool-fix_extra_reference.patch to fix pointer type + incompatibility and allow the package to be built with GCC 14 + without explicitely demoting errors to warnings. [boo#1225919] + ------------------------------------------------------------------- Fri Jul 5 20:30:43 UTC 2024 - Friedrich Haubensak diff --git a/rrdtool.spec b/rrdtool.spec index 6ac3712..d1f5f83 100644 --- a/rrdtool.spec +++ b/rrdtool.spec @@ -1,7 +1,7 @@ # # spec file for package rrdtool # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -55,6 +55,7 @@ Patch2: rrdtool-1.8.0-gcc14.patch # PATCH-FIX-UPSTREAM -- bnc#793636 Patch12: rrdtool-zero_vs_nothing.patch Patch14: harden_rrdcached.service.patch +Patch15: rrdtool-fix_extra_reference.patch # Needed for tests BuildRequires: bc BuildRequires: cairo-devel >= 1.2