From f4750ea947dbfe5c56b23b67939172da6d944c373e5afa7ba01ef0e231cfd9ac Mon Sep 17 00:00:00 2001 From: Martin Pluskal Date: Mon, 12 Aug 2024 07:31:52 +0000 Subject: [PATCH] - Update to 1.9.0: * For the list of changes, please have a look here: https://github.com/oetiker/rrdtool-1.x/blob/v1.9.0/CHANGES - Removed upstreamed patches: * e59f703bbcc0af949ee365206426b6394c340c6f.patch * rrdtool-1.8.0-gcc14.patch * rrdtool-fix_extra_reference.patch OBS-URL: https://build.opensuse.org/package/show/server:database/rrdtool?expand=0&rev=12 --- ...703bbcc0af949ee365206426b6394c340c6f.patch | 53 - rrdtool-1.8.0-gcc14.patch | 1586 ----------------- rrdtool-1.8.0.tar.gz | 3 - rrdtool-1.9.0.tar.gz | 3 + rrdtool-fix_extra_reference.patch | 50 - rrdtool.changes | 11 + rrdtool.spec | 12 +- 7 files changed, 17 insertions(+), 1701 deletions(-) delete mode 100644 e59f703bbcc0af949ee365206426b6394c340c6f.patch delete mode 100644 rrdtool-1.8.0-gcc14.patch delete mode 100644 rrdtool-1.8.0.tar.gz create mode 100644 rrdtool-1.9.0.tar.gz delete mode 100644 rrdtool-fix_extra_reference.patch diff --git a/e59f703bbcc0af949ee365206426b6394c340c6f.patch b/e59f703bbcc0af949ee365206426b6394c340c6f.patch deleted file mode 100644 index 534716e..0000000 --- a/e59f703bbcc0af949ee365206426b6394c340c6f.patch +++ /dev/null @@ -1,53 +0,0 @@ -From e59f703bbcc0af949ee365206426b6394c340c6f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= -Date: Wed, 23 Mar 2022 17:58:45 +0100 -Subject: [PATCH] Fix BUILD_DATE in rrdtool help output - -- This is a followup to #1102 -- Fixes segfault when running "rrdtool --help" -- Change DATE_FMT to the same date format as the __DATE__ macro [1]: - mmm dd yyyy - -[1] https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html ---- - configure.ac | 2 +- - src/rrd_tool.c | 8 ++++++++ - 2 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 4d234585..5169b0d4 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -695,7 +695,7 @@ AC_MSG_RESULT(${COMP_PERL:-No Perl Modules will be built}) - - # Use reproducible build date and time - if test "$SOURCE_DATE_EPOCH"; then -- DATE_FMT="%d %b %Y %H:%M:%S" -+ DATE_FMT="%b %d %Y %H:%M:%S" - BUILD_DATE=$(LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT") - AC_DEFINE_UNQUOTED([BUILD_DATE], ["$BUILD_DATE"], [Use reproducible build date]) - fi -diff --git a/src/rrd_tool.c b/src/rrd_tool.c -index 930d0827..cc6119d9 100644 ---- a/src/rrd_tool.c -+++ b/src/rrd_tool.c -@@ -45,11 +45,19 @@ static void PrintUsage( - char *cmd) - { - -+#ifdef BUILD_DATE -+ const char *help_main = -+ N_("RRDtool %s" -+ " Copyright by Tobias Oetiker \n" -+ " Compiled %s\n\n" -+ "Usage: rrdtool [options] command command_options\n"); -+#else - const char *help_main = - N_("RRDtool %s" - " Copyright by Tobias Oetiker \n" - " Compiled %s %s\n\n" - "Usage: rrdtool [options] command command_options\n"); -+#endif - - const char *help_list = - N_ diff --git a/rrdtool-1.8.0-gcc14.patch b/rrdtool-1.8.0-gcc14.patch deleted file mode 100644 index e4bdc83..0000000 --- a/rrdtool-1.8.0-gcc14.patch +++ /dev/null @@ -1,1586 +0,0 @@ - -https://github.com/oetiker/rrdtool-1.x/pull/1242 - patch to CHANGES removed - - -From b76e3c578f1e9f582e9c28f50d82b1f569602075 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michal=20Such=C3=A1nek?= -Date: Fri, 5 Jan 2024 15:31:48 +0100 -Subject: [PATCH] Constify argv, fix warnings. (#1242) - -* Fix perl warnings - - - cast POPs to void to avoid unused value warning - - declare functions that don't set RETVAL as returning void - -Signed-off-by: Michal Suchanek - -* Constify argv - -rrd has no business modifying the string pointed to by passed agrv, and -as far as gcc can see it does indeed not modify them because it compiles -with const argv. - -This fixes warnings when passing const strings into rrd, and avoids the -need to duplicate all strings in the tcl bindings. - -This fixes warnings like these: -[ 3s] prog/sensord/rrd.c: In function 'rrdInit': -[ 3s] prog/sensord/rrd.c:302:40: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual] -[ 3s] 302 | ret = rrd_create(argc, (char**) argv); -[ 3s] | ^ -[ 3s] prog/sensord/rrd.c: In function 'rrdUpdate': -[ 3s] prog/sensord/rrd.c:458:42: warning: cast discards 'const' qualifier from pointer target type [-Wcast-qual] -[ 3s] 458 | if ((ret = rrd_update(3, (char **) /* WEAK */ argv))) { -[ 3s] | ^ - -Signed-off-by: Michal Suchanek - -* tcl: Do not duplicate const strings - ---------- - -Signed-off-by: Michal Suchanek ---- - bindings/lua/rrdlua.c | 25 +++++----- - bindings/perl-shared/RRDs.xs | 36 +++++++------- - bindings/python/rrdtoolmodule.c | 38 +++++++-------- - bindings/ruby/main.c | 10 ++-- - bindings/tcl/tclrrd.c | 84 ++++++++------------------------- - src/optparse.c | 14 +++--- - src/optparse.h | 6 +-- - src/rrd.h | 38 +++++++-------- - src/rrd_cgi.c | 24 +++++----- - src/rrd_create.c | 2 +- - src/rrd_daemon.c | 12 ++--- - src/rrd_dump.c | 4 +- - src/rrd_fetch.c | 2 +- - src/rrd_first.c | 2 +- - src/rrd_flushcached.c | 2 +- - src/rrd_graph.c | 6 +-- - src/rrd_graph.h | 4 +- - src/rrd_graph_helper.c | 2 +- - src/rrd_info.c | 2 +- - src/rrd_last.c | 2 +- - src/rrd_lastupdate.c | 2 +- - src/rrd_list.c | 6 +-- - src/rrd_modify.c | 2 +- - src/rrd_modify.h | 2 +- - src/rrd_resize.c | 4 +- - src/rrd_restore.c | 2 +- - src/rrd_tool.c | 26 +++++----- - src/rrd_tune.c | 2 +- - src/rrd_update.c | 4 +- - src/rrd_xport.c | 2 +- - src/rrdupdate.c | 7 +-- - 31 files changed, 168 insertions(+), 209 deletions(-) - -diff --git a/bindings/lua/rrdlua.c b/bindings/lua/rrdlua.c -index d1a700641..2095c3b5b 100644 ---- a/bindings/lua/rrdlua.c -+++ b/bindings/lua/rrdlua.c -@@ -37,8 +37,8 @@ - extern void rrd_freemem(void *mem); - - extern int luaopen_rrd (lua_State * L); --typedef int (*RRD_FUNCTION)(int, char **); --typedef rrd_info_t *(RRD_FUNCTION_V)(int, char **); -+typedef int (*RRD_FUNCTION)(int, const char **); -+typedef rrd_info_t *(RRD_FUNCTION_V)(int, const char **); - - /**********************************************************/ - -@@ -49,9 +49,9 @@ static void reset_rrd_state(void) - rrd_clear_error(); - } - --static char **make_argv(const char *cmd, lua_State * L) -+static const char **make_argv(const char *cmd, lua_State * L) - { -- char **argv; -+ const char **argv; - int i; - int argc = lua_gettop(L) + 1; - -@@ -60,13 +60,12 @@ static char **make_argv(const char *cmd, lua_State * L) - luaL_error(L, "Can't allocate memory for arguments array", cmd); - - /* fprintf(stderr, "Args:\n"); */ -- argv[0] = (char *) cmd; /* Dummy arg. Cast to (char *) because rrd */ -- /* functions don't expect (const * char) */ -+ argv[0] = cmd; - /* fprintf(stderr, "%s\n", argv[0]); */ - for (i=1; i - #include "../../src/rrd_tool.h" - #include "../../src/rrd_format.h" -+#include "../../src/unused.h" - - /* support pre-8.4 tcl */ - -@@ -41,47 +42,39 @@ extern int Tclrrd_SafeInit( - * Hence, we need to do some preparation before - * calling the rrd library functions. - */ --static char **getopt_init( -+static const char **getopt_init( - int argc, - CONST84 char *argv[]) - { -- char **argv2; -+ const char **argv2; - int i; - - argv2 = calloc(argc, sizeof(char *)); - for (i = 0; i < argc; i++) { -- argv2[i] = strdup(argv[i]); -+ argv2[i] = argv[i]; - } - return argv2; - } - - static void getopt_cleanup( -- int argc, -- char **argv2) -+ int UNUSED(argc), -+ const char **argv2) - { -- int i; -- -- for (i = 0; i < argc; i++) { -- if (argv2[i] != NULL) { -- free(argv2[i]); -- } -- } -- free(argv2); -+ free((void *)argv2); - } - - static void getopt_free_element( -- char *argv2[], -+ const char *argv2[], - int argn) - { - if (argv2[argn] != NULL) { -- free(argv2[argn]); - argv2[argn] = NULL; - } - } - - static void getopt_squieeze( - int *argc, -- char *argv2[]) -+ const char *argv2[]) - { - int i, null_i = 0, argc_tmp = *argc; - -@@ -104,7 +97,7 @@ static int Rrd_Create( - CONST84 char *argv[]) - { - int argv_i; -- char **argv2; -+ const char **argv2; - char *parsetime_error = NULL; - time_t last_up = time(NULL) - 10; - long int long_tmp; -@@ -295,7 +288,7 @@ static int Rrd_Flushcached( - return TCL_ERROR; - } - -- rrd_flushcached(argc, (char**)argv); -+ rrd_flushcached(argc, argv); - - if (rrd_test_error()) { - Tcl_AppendResult(interp, "RRD Error: ", -@@ -380,7 +373,7 @@ static int Rrd_Update( - CONST84 char *argv[]) - { - int argv_i; -- char **argv2, *template = NULL; -+ const char **argv2, *template = NULL; - - argv2 = getopt_init(argc, argv); - -@@ -391,16 +384,10 @@ static int Rrd_Update( - Tcl_AppendResult(interp, "RRD Error: option '", - argv2[argv_i - 1], "' needs an argument", - (char *) NULL); -- if (template != NULL) { -- free(template); -- } - getopt_cleanup(argc, argv2); - return TCL_ERROR; - } -- if (template != NULL) { -- free(template); -- } -- template = strdup(argv2[argv_i]); -+ template = argv2[argv_i]; - getopt_free_element(argv2, argv_i - 1); - getopt_free_element(argv2, argv_i); - } else if (!strcmp(argv2[argv_i], "--")) { -@@ -409,9 +396,6 @@ static int Rrd_Update( - } else if (argv2[argv_i][0] == '-') { - Tcl_AppendResult(interp, "RRD Error: unknown option '", - argv2[argv_i], "'", (char *) NULL); -- if (template != NULL) { -- free(template); -- } - getopt_cleanup(argc, argv2); - return TCL_ERROR; - } -@@ -422,18 +406,12 @@ static int Rrd_Update( - if (argc < 2) { - Tcl_AppendResult(interp, "RRD Error: needs rrd filename", - (char *) NULL); -- if (template != NULL) { -- free(template); -- } - getopt_cleanup(argc, argv2); - return TCL_ERROR; - } - - rrd_update_r(argv2[1], template, argc - 2, (const char **)argv2 + 2); - -- if (template != NULL) { -- free(template); -- } - getopt_cleanup(argc, argv2); - - if (rrd_test_error()) { -@@ -454,7 +432,6 @@ static int Rrd_Info( - { - int status = TCL_OK; - rrd_info_t *data; -- char **argv2; - - /* TODO: support for rrdcached */ - if (argc != 2) { -@@ -463,9 +440,7 @@ static int Rrd_Info( - return TCL_ERROR; - } - -- argv2 = getopt_init(argc, argv); -- -- data = rrd_info_r(argv2[1]); -+ data = rrd_info_r(argv[1]); - - if (data) { - Tcl_SetObjResult(interp, convert_info(data)); -@@ -477,7 +452,6 @@ static int Rrd_Info( - status = TCL_ERROR; - } - -- getopt_cleanup(argc, argv2); - return status; - } - -@@ -488,7 +462,6 @@ static int Rrd_Lastupdate( - CONST84 char *argv[]) - { - time_t last_update; -- char **argv2; - char **ds_namv; - char **last_ds; - char s[30]; -@@ -502,8 +475,7 @@ static int Rrd_Lastupdate( - return TCL_ERROR; - } - -- argv2 = getopt_init(argc, argv); -- if (rrd_lastupdate_r(argv2[1], &last_update, -+ if (rrd_lastupdate_r(argv[1], &last_update, - &ds_cnt, &ds_namv, &last_ds) == 0) { - listPtr = Tcl_GetObjResult(interp); - for (i = 0; i < ds_cnt; i++) { -@@ -527,7 +499,6 @@ static int Rrd_Lastupdate( - free(ds_namv); - } - } -- getopt_cleanup(argc, argv2); - return TCL_OK; - } - -@@ -543,10 +514,8 @@ static int Rrd_Fetch( - char **ds_namv; - Tcl_Obj *listPtr; - char s[30]; -- char **argv2; - -- argv2 = getopt_init(argc, argv); -- if (rrd_fetch(argc, argv2, &start, &end, &step, -+ if (rrd_fetch(argc, argv, &start, &end, &step, - &ds_cnt, &ds_namv, &data) != -1) { - datai = data; - listPtr = Tcl_GetObjResult(interp); -@@ -562,7 +531,6 @@ static int Rrd_Fetch( - free(ds_namv); - free(data); - } -- getopt_cleanup(argc, argv2); - - if (rrd_test_error()) { - Tcl_AppendResult(interp, "RRD Error: ", -@@ -590,7 +558,7 @@ static int Rrd_Graph( - int rc, xsize, ysize; - double ymin, ymax; - char dimensions[50]; -- char **argv2; -+ const char **argv2; - CONST84 char *save; - - /* -@@ -692,11 +660,7 @@ static int Rrd_Tune( - int argc, - CONST84 char *argv[]) - { -- char **argv2; -- -- argv2 = getopt_init(argc, argv); -- rrd_tune(argc, argv2); -- getopt_cleanup(argc, argv2); -+ rrd_tune(argc, argv); - - if (rrd_test_error()) { - Tcl_AppendResult(interp, "RRD Error: ", -@@ -716,11 +680,7 @@ static int Rrd_Resize( - int argc, - CONST84 char *argv[]) - { -- char **argv2; -- -- argv2 = getopt_init(argc, argv); -- rrd_resize(argc, argv2); -- getopt_cleanup(argc, argv2); -+ rrd_resize(argc, argv); - - if (rrd_test_error()) { - Tcl_AppendResult(interp, "RRD Error: ", -@@ -740,11 +700,7 @@ static int Rrd_Restore( - int argc, - CONST84 char *argv[]) - { -- char **argv2; -- -- argv2 = getopt_init(argc, argv); -- rrd_restore(argc, argv2); -- getopt_cleanup(argc, argv2); -+ rrd_restore(argc, argv); - - if (rrd_test_error()) { - Tcl_AppendResult(interp, "RRD Error: ", -diff --git a/src/optparse.c b/src/optparse.c -index 9040ba8b2..79a3efe11 100644 ---- a/src/optparse.c -+++ b/src/optparse.c -@@ -10,7 +10,7 @@ - #define options_argv(i) \ - ((i) < options->argc ? options->argv[i] : NULL) - --void optparse_init(struct optparse *options, int argc, char **argv) -+void optparse_init(struct optparse *options, int argc, const char **argv) - { - options->argv = argv; - options->argc = argc; -@@ -42,7 +42,7 @@ is_longopt(const char *arg) - static void - permute(struct optparse *options, int index) - { -- char *nonoption = options->argv[index]; -+ const char *nonoption = options->argv[index]; - for (int i = index; i < options->optind - 1; i++) - options->argv[i] = options->argv[i + 1]; - options->argv[options->optind - 1] = nonoption; -@@ -67,7 +67,7 @@ int optparse(struct optparse *options, const char *optstring) - options->errmsg[0] = '\0'; - options->optopt = 0; - options->optarg = NULL; -- char *option = options_argv(options->optind); -+ const char *option = options_argv(options->optind); - if (option == NULL) { - return -1; - } else if (is_dashdash(option)) { -@@ -88,7 +88,7 @@ int optparse(struct optparse *options, const char *optstring) - option += options->subopt + 1; - options->optopt = option[0]; - int type = argtype(optstring, option[0]); -- char *next = options_argv(options->optind + 1); -+ const char *next = options_argv(options->optind + 1); - switch (type) { - case -1: - opterror(options, "invalid option -- '%c'", option[0]); -@@ -128,10 +128,10 @@ int optparse(struct optparse *options, const char *optstring) - return 0; - } - --char *optparse_arg(struct optparse *options) -+const char *optparse_arg(struct optparse *options) - { - options->subopt = 0; -- char *option = options->argv[options->optind]; -+ const char *option = options->argv[options->optind]; - if (option != NULL) - options->optind++; - return option; -@@ -222,7 +222,7 @@ optparse_long(struct optparse *options, - int *longindex) - { - // printf("%i < %i\n",options->optind,options->argc); -- char *option = options_argv(options->optind); -+ const char *option = options_argv(options->optind); - if (option == NULL) { - return -1; - } else if (is_dashdash(option)) { -diff --git a/src/optparse.h b/src/optparse.h -index c4b0ec19c..7a0bb3885 100644 ---- a/src/optparse.h -+++ b/src/optparse.h -@@ -44,7 +44,7 @@ - */ - - struct optparse { -- char **argv; -+ const char **argv; - int argc; - int permute; - int optind; -@@ -65,7 +65,7 @@ struct optparse_long { - /** - * Initializes the parser state. - */ --void optparse_init(struct optparse *options, int argc, char **argv); -+void optparse_init(struct optparse *options, int argc, const char **argv); - - /** - * Read the next option in the argv array. -@@ -98,6 +98,6 @@ optparse_long(struct optparse *options, - * subcommand returned by optparse_arg(). This function allows you to - * ignore the value of optind. - */ --char *optparse_arg(struct optparse *options); -+const char *optparse_arg(struct optparse *options); - - #endif -diff --git a/src/rrd.h b/src/rrd.h -index 184887ccc..b40f9a449 100644 ---- a/src/rrd.h -+++ b/src/rrd.h -@@ -155,10 +155,10 @@ extern "C" { - /* main function blocks */ - int rrd_create( - int, -- char **); -+ const char **); - rrd_info_t *rrd_info( - int, -- char **); -+ const char **); - rrd_info_t *rrd_info_push( - rrd_info_t *, - char *, -@@ -170,19 +170,19 @@ extern "C" { - rrd_info_t *); - char *rrd_list( - int, -- char **); -+ const char **); - char *rrd_list_r( - int, -- char *dirname); -+ const char *dirname); - int rrd_update( - int, -- char **); -+ const char **); - rrd_info_t *rrd_update_v( - int, -- char **); -+ const char **); - int rrd_graph( - int, -- char **, -+ const char **, - char ***, - int *, - int *, -@@ -191,11 +191,11 @@ extern "C" { - double *); - rrd_info_t *rrd_graph_v( - int, -- char **); -+ const char **); - - int rrd_fetch( - int, -- char **, -+ const char **, - time_t *, - time_t *, - unsigned long *, -@@ -204,32 +204,32 @@ extern "C" { - rrd_value_t **); - int rrd_restore( - int, -- char **); -+ const char **); - int rrd_dump( - int, -- char **); -+ const char **); - int rrd_tune( - int, -- char **); -+ const char **); - time_t rrd_last( - int, -- char **); -+ const char **); - int rrd_lastupdate( - int argc, -- char **argv); -+ const char **argv); - time_t rrd_first( - int, -- char **); -+ const char **); - int rrd_resize( - int, -- char **); -+ const char **); - char *rrd_strversion( - void); - double rrd_version( - void); - int rrd_xport( - int, -- char **, -+ const char **, - int *, - time_t *, - time_t *, -@@ -239,7 +239,7 @@ extern "C" { - rrd_value_t **); - int rrd_flushcached( - int argc, -- char **argv); -+ const char **argv); - - void rrd_freemem( - void *mem); -@@ -323,7 +323,7 @@ extern "C" { - const char **argv); - int rrd_dump_opt_r( - const char *filename, -- char *outname, -+ const char *outname, - int opt_noheader); - int rrd_dump_r( - const char *filename, -diff --git a/src/rrd_cgi.c b/src/rrd_cgi.c -index b82c310db..14a4f511a 100644 ---- a/src/rrd_cgi.c -+++ b/src/rrd_cgi.c -@@ -102,7 +102,7 @@ static char *rrdstrip( - static char *scanargs( - char *line, - int *argc, -- char ***args); -+ const char ***args); - - /* format at-time specified times using strftime */ - static char *printstrftime( -@@ -317,7 +317,7 @@ static const char *putvar( - } - - /* expand those RRD:* directives that can be used recursively */ --static char *rrd_expand_vars( -+static const char *rrd_expand_vars( - char *buffer) - { - int i; -@@ -434,7 +434,7 @@ static int readfile( - - int main( - int argc, -- char *argv[]) -+ const char *argv[]) - { - char *buffer; - long i; -@@ -926,7 +926,7 @@ static char *drawgraph( - } - calfree(); - if (rrd_graph -- (argc + 1, (char **) args - 1, &calcpr, &xsize, &ysize, NULL, &ymin, -+ (argc + 1, args - 1, &calcpr, &xsize, &ysize, NULL, &ymin, - &ymax) != -1) { - return stralloc(calcpr[0]); - } else { -@@ -973,7 +973,7 @@ static char *printtimelast( - /* not raising argc in step with args - 1 since the last argument - will be used below for strftime */ - -- last = rrd_last(argc, (char **) args - 1); -+ last = rrd_last(argc, args - 1); - if (rrd_test_error()) { - char err[4096]; - -@@ -1027,7 +1027,7 @@ static char *printtimenow( - static char *scanargs( - char *line, - int *argument_count, -- char ***arguments) -+ const char ***arguments) - { - char *getP; /* read cursor */ - char *putP; /* write cursor */ -@@ -1039,8 +1039,8 @@ static char *scanargs( - - /* local array of arguments while parsing */ - int argc = 1; -- char **argv; -- char **argv_tmp; /* temp variable for realloc() */ -+ const char **argv; -+ const char **argv_tmp; /* temp variable for realloc() */ - - #ifdef DEBUG_PARSER - printf("<-- scanargs(%s) -->\n", line); -@@ -1051,7 +1051,7 @@ static char *scanargs( - - /* create initial argument array of char pointers */ - argsz = 32; -- argv = (char **) malloc(argsz * sizeof(char *)); -+ argv = malloc(argsz * sizeof(char *)); - if (!argv) { - return NULL; - } -@@ -1146,7 +1146,7 @@ static char *scanargs( - if (argc == argsz - 2) { - /* resize argument array */ - argsz *= 2; -- argv_tmp = (char **) rrd_realloc(argv, argsz * sizeof(char *)); -+ argv_tmp = rrd_realloc(argv, argsz * sizeof(char *)); - if (*argv_tmp == NULL) { - return NULL; - } -@@ -1213,7 +1213,7 @@ static int parse( - /* the name of the vairable ... */ - char *val; - long valln; -- char **args; -+ const char **args; - char *end; - long end_offset; - int argc; -@@ -1264,7 +1264,7 @@ static int parse( - /* make sure we do not shrink the mallocd block */ - size_t newbufsize = i + strlen(end) + valln + 1; - -- *buf = (char *) rrd_realloc(*buf, newbufsize); -+ *buf = rrd_realloc(*buf, newbufsize); - - if (*buf == NULL) { - perror("Realoc buf:"); -diff --git a/src/rrd_create.c b/src/rrd_create.c -index f9bad0866..919b4195a 100644 ---- a/src/rrd_create.c -+++ b/src/rrd_create.c -@@ -76,7 +76,7 @@ static void parseGENERIC_DS( - - int rrd_create( - int argc, -- char **argv) -+ const char **argv) - { - struct optparse_long longopts[] = { - {"start", 'b', OPTPARSE_REQUIRED}, -diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c -index 751798aa1..21c38a11d 100644 ---- a/src/rrd_daemon.c -+++ b/src/rrd_daemon.c -@@ -1877,7 +1877,7 @@ static int handle_request_tune( - HANDLER_PROTO) - { /* {{{ */ - int status; -- char** argv = NULL; -+ const char** argv = NULL; - int argc, argc_tmp; - char* i; - int rc; -@@ -1916,7 +1916,7 @@ static int handle_request_tune( - goto done; - } - -- if ((argv = (char **) malloc(argc * sizeof(char*))) == NULL) { -+ if ((argv = malloc(argc * sizeof(char*))) == NULL) { - rc = send_response(sock, RESP_ERR, "%s\n", rrd_strerror(ENOMEM)); - goto done; - } -@@ -1927,7 +1927,7 @@ static int handle_request_tune( - argc_tmp += 1; - } - -- status = rrd_tune_r(file, argc, (const char **)argv); -+ status = rrd_tune_r(file, argc, argv); - if (status != 0) { - rc = send_response(sock, RESP_ERR, "Got error %s\n", rrd_get_error()); - goto done; -@@ -1935,7 +1935,7 @@ static int handle_request_tune( - rc = send_response(sock, RESP_OK, "Success\n"); - done: - free(file); -- free(argv); -+ free((void *)argv); - return rc; - } - -@@ -4505,7 +4505,7 @@ static int cleanup( - - static int read_options( - int argc, -- char **argv) -+ const char **argv) - { /* {{{ */ - struct optparse_long longopts[] = { - {NULL, 'a', OPTPARSE_REQUIRED}, -@@ -5050,7 +5050,7 @@ static int read_options( - - int main( - int argc, -- char **argv) -+ const char **argv) - { - int status; - -diff --git a/src/rrd_dump.c b/src/rrd_dump.c -index a4490d594..c58e0ee4a 100644 ---- a/src/rrd_dump.c -+++ b/src/rrd_dump.c -@@ -497,7 +497,7 @@ static size_t rrd_dump_opt_cb_fileout( - - int rrd_dump_opt_r( - const char *filename, -- char *outname, -+ const char *outname, - int opt_noheader) - { - FILE *out_file; -@@ -543,7 +543,7 @@ int rrd_dump_r( - - int rrd_dump( - int argc, -- char **argv) -+ const char **argv) - { - int opt; - struct optparse_long longopts[] = { -diff --git a/src/rrd_fetch.c b/src/rrd_fetch.c -index c739bfc45..54780f19b 100644 ---- a/src/rrd_fetch.c -+++ b/src/rrd_fetch.c -@@ -61,7 +61,7 @@ - - int rrd_fetch( - int argc, -- char **argv, -+ const char **argv, - time_t *start, - time_t *end, /* which time frame do you want ? - * will be changed to represent reality */ -diff --git a/src/rrd_first.c b/src/rrd_first.c -index a696c5c38..f3dde5404 100644 ---- a/src/rrd_first.c -+++ b/src/rrd_first.c -@@ -13,7 +13,7 @@ - - time_t rrd_first( - int argc, -- char **argv) -+ const char **argv) - { - struct optparse_long longopts[] = { - {"rraindex", 129, OPTPARSE_REQUIRED}, -diff --git a/src/rrd_flushcached.c b/src/rrd_flushcached.c -index 090bca749..3bf6cd29d 100644 ---- a/src/rrd_flushcached.c -+++ b/src/rrd_flushcached.c -@@ -22,7 +22,7 @@ - #include "rrd_tool.h" - #include "rrd_client.h" - --int rrd_flushcached (int argc, char **argv) -+int rrd_flushcached (int argc, const char **argv) - { - struct optparse_long longopts[] = { - {"daemon", 'd', OPTPARSE_REQUIRED}, -diff --git a/src/rrd_graph.c b/src/rrd_graph.c -index b32d45085..46511e9a3 100644 ---- a/src/rrd_graph.c -+++ b/src/rrd_graph.c -@@ -4607,7 +4607,7 @@ int scan_for_col( - /* Now just a wrapper around rrd_graph_v */ - int rrd_graph( - int argc, -- char **argv, -+ const char **argv, - char ***prdata, - int *xsize, - int *ysize, -@@ -4690,7 +4690,7 @@ int rrd_graph( - - rrd_info_t *rrd_graph_v( - int argc, -- char **argv) -+ const char **argv) - { - image_desc_t im; - rrd_info_t *grinfo; -@@ -4953,7 +4953,7 @@ void rrd_graph_init( - - void rrd_graph_options( - int argc, -- char *argv[], -+ const char **argv, - struct optparse *poptions, - image_desc_t *im) - { -diff --git a/src/rrd_graph.h b/src/rrd_graph.h -index 4df32ec66..083cf3800 100644 ---- a/src/rrd_graph.h -+++ b/src/rrd_graph.h -@@ -473,12 +473,12 @@ void time_clean( - - void rrd_graph_options( - int, -- char **, -+ const char **, - struct optparse *, - image_desc_t *); - void rrd_graph_script( - int, -- char **, -+ const char **, - image_desc_t *const, - int); - int rrd_graph_color( -diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c -index 99cdefa65..ba90e1a6c 100644 ---- a/src/rrd_graph_helper.c -+++ b/src/rrd_graph_helper.c -@@ -1952,7 +1952,7 @@ static int parse_xport( - - void rrd_graph_script( - int argc, -- char *argv[], -+ const char **argv, - image_desc_t *const im, - int optno) - { -diff --git a/src/rrd_info.c b/src/rrd_info.c -index c0c6f68c7..eb0d4e4de 100644 ---- a/src/rrd_info.c -+++ b/src/rrd_info.c -@@ -82,7 +82,7 @@ rrd_info_t - - rrd_info_t *rrd_info( - int argc, -- char **argv) -+ const char **argv) - { - struct optparse_long longopts[] = { - {"daemon", 'd', OPTPARSE_REQUIRED}, -diff --git a/src/rrd_last.c b/src/rrd_last.c -index 026a1e828..1aae72512 100644 ---- a/src/rrd_last.c -+++ b/src/rrd_last.c -@@ -11,7 +11,7 @@ - - time_t rrd_last( - int argc, -- char **argv) -+ const char **argv) - { - char *opt_daemon = NULL; - time_t lastupdate; -diff --git a/src/rrd_lastupdate.c b/src/rrd_lastupdate.c -index ab30dcf67..4f7f4770e 100644 ---- a/src/rrd_lastupdate.c -+++ b/src/rrd_lastupdate.c -@@ -14,7 +14,7 @@ - #include "rrd_client.h" - #include - --int rrd_lastupdate (int argc, char **argv) -+int rrd_lastupdate (int argc, const char **argv) - { - struct optparse_long longopts[] = { - {"daemon", 'd', OPTPARSE_REQUIRED}, -diff --git a/src/rrd_list.c b/src/rrd_list.c -index e743b9b7d..6e96220ea 100644 ---- a/src/rrd_list.c -+++ b/src/rrd_list.c -@@ -37,7 +37,7 @@ static char *move_past_prefix(const char *prefix, const char *string) - return (char *)&(string[index]); - } - --static char *rrd_list_rec(int recursive, char *root, char *dirname) -+static char *rrd_list_rec(int recursive, const char *root, const char *dirname) - { - #define SANE_ASPRINTF2(_dest_str, _format, ...) \ - if (asprintf(&_dest_str, _format, __VA_ARGS__) == -1) { \ -@@ -138,7 +138,7 @@ static char *rrd_list_rec(int recursive, char *root, char *dirname) - return out; - } - --char *rrd_list_r(int recursive, char *dirname) -+char *rrd_list_r(int recursive, const char *dirname) - { - #define SANE_ASPRINTF(_dest_str, _format, ...) \ - if (asprintf(&_dest_str, _format, __VA_ARGS__) == -1) { \ -@@ -240,7 +240,7 @@ char *rrd_list_r(int recursive, char *dirname) - return rrd_list_rec(recursive, dirname, dirname); - } - --char *rrd_list(int argc, char **argv) -+char *rrd_list(int argc, const char **argv) - { - char *opt_daemon = NULL; - int status; -diff --git a/src/rrd_modify.c b/src/rrd_modify.c -index a2b07f640..70ac9e77f 100644 ---- a/src/rrd_modify.c -+++ b/src/rrd_modify.c -@@ -1297,7 +1297,7 @@ static int add_rras(const rrd_t *in, rrd_t *out, const int *ds_map, - } - - int handle_modify(const rrd_t *in, const char *outfilename, -- int argc, char **argv, int optidx, -+ int argc, const char **argv, int optidx, - int newstep) { - // parse add/remove options - int rc = -1; -diff --git a/src/rrd_modify.h b/src/rrd_modify.h -index 52d8789be..64a39926e 100644 ---- a/src/rrd_modify.h -+++ b/src/rrd_modify.h -@@ -28,7 +28,7 @@ typedef struct { - } rra_mod_op_t; - - int handle_modify(const rrd_t *in, const char *outfilename, -- int argc, char **argv, int optind, -+ int argc, const char **argv, int optind, - int newstep); - - typedef union { -diff --git a/src/rrd_resize.c b/src/rrd_resize.c -index fb75d81ff..742e6d141 100644 ---- a/src/rrd_resize.c -+++ b/src/rrd_resize.c -@@ -12,9 +12,9 @@ - - int rrd_resize( - int argc, -- char **argv) -+ const char **argv) - { -- char *infilename, outfilename[11] = "resize.rrd"; -+ const char *infilename, outfilename[11] = "resize.rrd"; - rrd_t rrdold, rrdnew; - rrd_value_t buffer; - int version; -diff --git a/src/rrd_restore.c b/src/rrd_restore.c -index 85d481e0c..ebef5efe8 100644 ---- a/src/rrd_restore.c -+++ b/src/rrd_restore.c -@@ -1378,7 +1378,7 @@ int write_file( - - int rrd_restore( - int argc, -- char **argv) -+ const char **argv) - { - struct optparse_long longopts[] = { - {"range-check", 'r', OPTPARSE_NONE}, -diff --git a/src/rrd_tool.c b/src/rrd_tool.c -index cc6119d9a..56321ee1a 100644 ---- a/src/rrd_tool.c -+++ b/src/rrd_tool.c -@@ -22,16 +22,16 @@ - - - static void PrintUsage( -- char *cmd); -+ const char *cmd); - static int CountArgs( - char *aLine); - static int CreateArgs( -+ const char *, - char *, -- char *, -- char **); -+ const char **); - static int HandleInputLine( - int, -- char **, -+ const char **, - FILE *); - int RemoteMode = 0; - int ChangeRoot = 0; -@@ -42,7 +42,7 @@ int ChangeRoot = 0; - - - static void PrintUsage( -- char *cmd) -+ const char *cmd) - { - - #ifdef BUILD_DATE -@@ -443,11 +443,11 @@ static char *fgetslong( - - int main( - int argc, -- char *argv[]) -+ const char *argv[]) - { -- char **myargv; -+ const char **myargv; - char *aLine; -- char *firstdir = ""; -+ const char *firstdir = ""; - - #ifdef MUST_DISABLE_SIGFPE - signal(SIGFPE, SIG_IGN); -@@ -526,7 +526,7 @@ int main( - printf("ERROR: not enough arguments\n"); - continue; - } -- if ((myargv = (char **) malloc((argc + 1) * -+ if ((myargv = malloc((argc + 1) * - sizeof(char *))) == NULL) { - perror("malloc"); - exit(1); -@@ -572,7 +572,7 @@ int main( - resolving them portably is not really simple. */ - static int HandleInputLine( - int argc, -- char **argv, -+ const char **argv, - FILE * out) - { - #if defined(HAVE_OPENDIR) && defined (HAVE_READDIR) -@@ -887,12 +887,12 @@ static int CountArgs( - * CreateArgs - take a string (aLine) and tokenize - */ - static int CreateArgs( -- char *pName, -+ const char *pName, - char *aLine, -- char **argv) -+ const char **argv) - { - char *getP, *putP; -- char **pargv = argv; -+ const char **pargv = argv; - char Quote = 0; - int inArg = 0; - int len; -diff --git a/src/rrd_tune.c b/src/rrd_tune.c -index 198817f37..dd3f3f7cb 100644 ---- a/src/rrd_tune.c -+++ b/src/rrd_tune.c -@@ -71,7 +71,7 @@ static int set_hwsmootharg( - - int rrd_tune( - int argc, -- char **argv) -+ const char **argv) - { - char *opt_daemon = NULL; - const char *in_filename = NULL; -diff --git a/src/rrd_update.c b/src/rrd_update.c -index fbbe2820a..bb9a0602c 100644 ---- a/src/rrd_update.c -+++ b/src/rrd_update.c -@@ -299,7 +299,7 @@ static void initialize_time( - - rrd_info_t *rrd_update_v( - int argc, -- char **argv) -+ const char **argv) - { - struct optparse_long longopts[] = { - {"template", 't', OPTPARSE_REQUIRED}, -@@ -674,7 +674,7 @@ static int rrd_template_update(const char *filename, /* {{{ */ - - int rrd_update( - int argc, -- char **argv) -+ const char **argv) - { - struct optparse_long longopts[] = { - {"template", 't', OPTPARSE_REQUIRED}, -diff --git a/src/rrd_xport.c b/src/rrd_xport.c -index d15d33dd9..93c02f926 100644 ---- a/src/rrd_xport.c -+++ b/src/rrd_xport.c -@@ -73,7 +73,7 @@ static int rrd_xport_format_addprints( - - int rrd_xport( - int argc, -- char **argv, -+ const char **argv, - int UNUSED(*xsize), - time_t *start, - time_t *end, /* which time frame do you want ? -diff --git a/src/rrdupdate.c b/src/rrdupdate.c -index cbbf48cc1..e368516c8 100644 ---- a/src/rrdupdate.c -+++ b/src/rrdupdate.c -@@ -20,19 +20,20 @@ int main( - int argc, - char **argv) - { -+ const char **cargv = (const char **)argv; - char *name=basename(argv[0]); - rrd_info_t *info; - - if (!strcmp(name, "rrdcreate")) { -- rrd_create(argc, argv); -+ rrd_create(argc, cargv); - } - else if (!strcmp(name, "rrdinfo")) { -- info=rrd_info(argc, argv); -+ info=rrd_info(argc, cargv); - rrd_info_print(info); - rrd_info_free(info); - } - else { -- rrd_update(argc, argv); -+ rrd_update(argc, cargv); - } - - if (rrd_test_error()) { diff --git a/rrdtool-1.8.0.tar.gz b/rrdtool-1.8.0.tar.gz deleted file mode 100644 index 641d9ea..0000000 --- a/rrdtool-1.8.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd37614137d7a8dc523359648eb2a81631a34fd91a82ed5581916a52c08433f4 -size 2955398 diff --git a/rrdtool-1.9.0.tar.gz b/rrdtool-1.9.0.tar.gz new file mode 100644 index 0000000..b5d65aa --- /dev/null +++ b/rrdtool-1.9.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e65385e51f4a7c4b42aa09566396c20e7e1a0a30c272d569ed029a81656e56b +size 2972593 diff --git a/rrdtool-fix_extra_reference.patch b/rrdtool-fix_extra_reference.patch deleted file mode 100644 index 97310a6..0000000 --- a/rrdtool-fix_extra_reference.patch +++ /dev/null @@ -1,50 +0,0 @@ -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 73fc993..f3ccb73 100644 --- a/rrdtool.changes +++ b/rrdtool.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Aug 8 16:56:07 UTC 2024 - Antonio Teixeira + +- Update to 1.9.0: + * For the list of changes, please have a look here: + https://github.com/oetiker/rrdtool-1.x/blob/v1.9.0/CHANGES +- Removed upstreamed patches: + * e59f703bbcc0af949ee365206426b6394c340c6f.patch + * rrdtool-1.8.0-gcc14.patch + * rrdtool-fix_extra_reference.patch + ------------------------------------------------------------------- Mon Jul 29 07:19:23 UTC 2024 - Martin Pluskal diff --git a/rrdtool.spec b/rrdtool.spec index 220547a..b08f069 100644 --- a/rrdtool.spec +++ b/rrdtool.spec @@ -32,7 +32,7 @@ %bcond_without libwrap %bcond_with rados Name: rrdtool -Version: 1.8.0 +Version: 1.9.0 Release: 0 Summary: Round Robin Database Tool to store and display time-series data License: GPL-2.0-or-later AND LGPL-2.0-or-later @@ -43,19 +43,13 @@ Source2: sysconfig.rrdcached Source4: rrdcached-systemd-pre Source5: rrdcached.service Source99: %{name}.changes -# PATCH-FIX-UPSTREAM -- Fix BUILD_DATE in rrdtool help output (fix segfault) -# https://github.com/oetiker/rrdtool-1.x/commit/e59f703bbcc0af949ee365206426b6394c340c6f.patch -Patch1: e59f703bbcc0af949ee365206426b6394c340c6f.patch -## PATCH-FIX-UPTREAM -- https://github.com/oetiker/rrdtool-1.x/pull/1242 -Patch2: rrdtool-1.8.0-gcc14.patch # PATCH-FIX-UPTREAM -- Prevent possible segfault ## this patch against rrdtool-1.4.5 dates from 2011, seems unneccessary today, ## never appeared upstream, and it does no longer apply ##Patch3: rrdtool-tclsegfault.patch # PATCH-FIX-UPSTREAM -- bnc#793636 -Patch12: rrdtool-zero_vs_nothing.patch -Patch14: harden_rrdcached.service.patch -Patch15: rrdtool-fix_extra_reference.patch +Patch1: rrdtool-zero_vs_nothing.patch +Patch2: harden_rrdcached.service.patch # Needed for tests BuildRequires: bc BuildRequires: cairo-devel >= 1.2