commit 9fc1c4edf540a6e50ee6d4b3aa41fbfdad220bf8 Author: MSVSphere Packaging Team Date: Tue Nov 26 19:11:57 2024 +0300 import rrdtool-1.8.0-19.el10 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2ecae60 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/php4-r1190.tar.gz +SOURCES/rrdtool-1.8.0.tar.gz diff --git a/.rrdtool.metadata b/.rrdtool.metadata new file mode 100644 index 0000000..b6844ed --- /dev/null +++ b/.rrdtool.metadata @@ -0,0 +1,2 @@ +215b1e335313edb4b7462368d5341502d7824652 SOURCES/php4-r1190.tar.gz +4da6da5e2f789d006c1ccc3b816a5a1ac9123bc8 SOURCES/rrdtool-1.8.0.tar.gz diff --git a/SOURCES/rrdtool-1.4.4-php54.patch b/SOURCES/rrdtool-1.4.4-php54.patch new file mode 100644 index 0000000..bf92011 --- /dev/null +++ b/SOURCES/rrdtool-1.4.4-php54.patch @@ -0,0 +1,100 @@ +diff -up rrdtool-1.4.4/php4/rrdtool.c.php54 rrdtool-1.4.4/php4/rrdtool.c +--- rrdtool-1.4.4/php4/rrdtool.c.php54 2011-12-29 08:57:00.790784347 +0100 ++++ rrdtool-1.4.4/php4/rrdtool.c 2011-12-29 09:00:55.960794927 +0100 +@@ -39,7 +39,7 @@ + ZEND_DECLARE_MODULE_GLOBALS(rrdtool) + */ + +-function_entry rrdtool_functions[] = { ++zend_function_entry rrdtool_functions[] = { + PHP_FE(rrd_graph, NULL) + PHP_FE(rrd_fetch, NULL) + PHP_FE(rrd_error, NULL) +@@ -119,8 +119,8 @@ PHP_MINFO_FUNCTION(rrdtool) + Creates a graph based on options passed via an array */ + PHP_FUNCTION(rrd_graph) + { +- pval *file, *args, *p_argc; +- pval *entry; ++ zval *file, *args, *p_argc; ++ zval *entry; + zval *p_calcpr; + HashTable *args_arr; + int i, xsize, ysize, argc; +@@ -155,7 +155,7 @@ PHP_FUNCTION(rrd_graph) + + for (i = 3; i < argc; i++) + { +- pval **dataptr; ++ zval **dataptr; + + if ( zend_hash_get_current_data(args_arr, (void *) &dataptr) == FAILURE ) + continue; +@@ -216,9 +216,8 @@ PHP_FUNCTION(rrd_graph) + Fetch info from an RRD file */ + PHP_FUNCTION(rrd_fetch) + { +- pval *file, *args, *p_argc; +- pval *entry; +- pval *p_start, *p_end, *p_step, *p_ds_cnt; ++ zval *file, *args, *p_argc; ++ zval *entry; + HashTable *args_arr; + zval *p_ds_namv, *p_data; + int i, j, argc; +@@ -254,7 +253,7 @@ PHP_FUNCTION(rrd_fetch) + + for (i = 3; i < argc; i++) + { +- pval **dataptr; ++ zval **dataptr; + + if ( zend_hash_get_current_data(args_arr, (void *) &dataptr) == FAILURE ) + continue; +@@ -361,7 +360,7 @@ PHP_FUNCTION(rrd_clear_error) + Update an RRD file with values specified */ + PHP_FUNCTION(rrd_update) + { +- pval *file, *opt; ++ zval *file, *opt; + char **argv; + + if ( rrd_test_error() ) +@@ -404,7 +403,7 @@ PHP_FUNCTION(rrd_update) + Gets last update time of an RRD file */ + PHP_FUNCTION(rrd_last) + { +- pval *file; ++ zval *file; + unsigned long retval; + + char **argv = (char **) emalloc(3 * sizeof(char *)); +@@ -439,8 +438,8 @@ PHP_FUNCTION(rrd_last) + Create an RRD file with the options passed (passed via array) */ + PHP_FUNCTION(rrd_create) + { +- pval *file, *args, *p_argc; +- pval *entry; ++ zval *file, *args, *p_argc; ++ zval *entry; + char **argv; + HashTable *args_arr; + int argc, i; +@@ -449,7 +448,7 @@ PHP_FUNCTION(rrd_create) + rrd_clear_error(); + + if ( ZEND_NUM_ARGS() == 3 && +- getParameters(ht, 3, &file, &args, &p_argc) == SUCCESS ) ++ zend_get_parameters(ht, 3, &file, &args, &p_argc) == SUCCESS ) + { + if ( args->type != IS_ARRAY ) + { +@@ -473,7 +472,7 @@ PHP_FUNCTION(rrd_create) + + for (i = 3; i < argc; i++) + { +- pval **dataptr; ++ zval **dataptr; + + if ( zend_hash_get_current_data(args_arr, (void *) &dataptr) == FAILURE ) + continue; diff --git a/SOURCES/rrdtool-1.4.7-php55.patch b/SOURCES/rrdtool-1.4.7-php55.patch new file mode 100644 index 0000000..44fc451 --- /dev/null +++ b/SOURCES/rrdtool-1.4.7-php55.patch @@ -0,0 +1,83 @@ +--- rrdtool-1.4.7/php4/rrdtool.c.orig 2013-03-22 14:54:18.520877577 +0100 ++++ rrdtool-1.4.7/php4/rrdtool.c 2013-03-22 14:59:23.056303502 +0100 +@@ -20,13 +20,11 @@ + + /* PHP Includes */ + #include "php.h" +-#include "php_logos.h" + #include "ext/standard/info.h" + #include "SAPI.h" + + /* rrdtool includes */ + #include "php_rrdtool.h" +-#include "rrdtool_logo.h" + #include + + #ifdef HAVE_CONFIG_H +@@ -48,7 +46,6 @@ + PHP_FE(rrd_last, NULL) + PHP_FE(rrd_create, NULL) + PHP_FE(rrdtool_info, NULL) +- PHP_FE(rrdtool_logo_guid, NULL) + {NULL, NULL, NULL} + }; + +@@ -83,8 +80,6 @@ + /* {{{ PHP_MINIT_FUNCTION */ + PHP_MINIT_FUNCTION(rrdtool) + { +- php_register_info_logo(RRDTOOL_LOGO_GUID , "image/gif", rrdtool_logo , sizeof(rrdtool_logo)); +- + return SUCCESS; + } + /* }}} */ +@@ -92,8 +87,6 @@ + /* {{{ PHP_MSHUTDOWN_FUNCTION */ + PHP_MSHUTDOWN_FUNCTION(rrdtool) + { +- php_unregister_info_logo(RRDTOOL_LOGO_GUID); +- + return SUCCESS; + } + /* }}} */ +@@ -102,11 +95,6 @@ + PHP_MINFO_FUNCTION(rrdtool) + { + php_info_print_box_start(1); +- PUTS("\"ClamAV\n"); + php_printf("

rrdtool Version %s

\n", PHP_RRD_VERSION_STRING); + php_info_print_box_end(); + php_info_print_table_start(); +@@ -548,11 +536,6 @@ + PUTS("
\n"); + + php_info_print_box_start(1); +- PUTS("\"ClamAV\n"); + php_printf("

rrdtool Version %s

\n", PHP_RRD_VERSION_STRING); + php_info_print_box_end(); + php_info_print_table_start(); +@@ -590,16 +573,6 @@ + } + /* }}} */ + +-PHP_FUNCTION(rrdtool_logo_guid) +-{ +- if (ZEND_NUM_ARGS() != 0) { +- WRONG_PARAM_COUNT; +- } +- +- RETURN_STRINGL(RRDTOOL_LOGO_GUID, sizeof(RRDTOOL_LOGO_GUID)-1, 1); +-} +-/* }}} */ +- + #endif /* HAVE_RRDTOOL */ + + /* diff --git a/SOURCES/rrdtool-1.4.8-php-ppc-fix.patch b/SOURCES/rrdtool-1.4.8-php-ppc-fix.patch new file mode 100644 index 0000000..23c22aa --- /dev/null +++ b/SOURCES/rrdtool-1.4.8-php-ppc-fix.patch @@ -0,0 +1,11 @@ +--- a/php4/ltconfig 2014-08-11 13:01:13.020065855 +0000 ++++ a/php4/ltconfig 2014-08-11 13:01:23.870060274 +0000 +@@ -1939,7 +1939,7 @@ + else + # Only the GNU ld.so supports shared libraries on MkLinux. + case "$host_cpu" in +- powerpc*) dynamic_linker=no ;; ++# powerpc*) dynamic_linker=no ;; + *) dynamic_linker='Linux ld.so' ;; + esac + fi diff --git a/SOURCES/rrdtool-1.6.0-ruby-2-fix.patch b/SOURCES/rrdtool-1.6.0-ruby-2-fix.patch new file mode 100644 index 0000000..5f80630 --- /dev/null +++ b/SOURCES/rrdtool-1.6.0-ruby-2-fix.patch @@ -0,0 +1,26 @@ +diff --git a/bindings/Makefile.am b/bindings/Makefile.am +index 54f5c23..ee85c23 100644 +--- a/bindings/Makefile.am ++++ b/bindings/Makefile.am +@@ -35,8 +35,9 @@ install-data-local: + && $(MAKE) install ) \ + || true + $(AM_V_GEN)test -f ${builddir}/ruby/Makefile \ +- && ( cd ${builddir}/ruby \ +- && $(MAKE) EPREFIX=$(DESTDIR)$(exec_prefix) $(RUBY_MAKE_OPTIONS) install ) \ ++ && ( $(MKDIR_P) $(DESTDIR)$(libdir)/ruby/vendor_ruby && cd ${builddir}/ruby \ ++ && $(MAKE) EPREFIX=$(DESTDIR)$(exec_prefix) $(RUBY_MAKE_OPTIONS) \ ++ hdrdir="$(includedir)" rubyhdrdir="$(includedir)" includedir="$(includedir)" install ) \ + || true + $(AM_V_GEN)test -d ${builddir}/python/build \ + && ( cd ${builddir}/python \ +@@ -57,7 +58,8 @@ ruby: + EPREFIX=$(exec_prefix) \ + ABS_TOP_SRCDIR=${abs_top_srcdir} \ + ABS_TOP_BUILDDIR=${abs_top_builddir} \ +- $(RUBY_MAKE_OPTIONS) RUBYARCHDIR= ) ++ $(RUBY_MAKE_OPTIONS) hdrdir="$(includedir)" \ ++ rubyhdrdir="$(includedir)" includedir="$(includedir)" RUBYARCHDIR= ) + + # rules for building the python module + python: diff --git a/SOURCES/rrdtool-1.8.0-BUILD_DATE-fix.patch b/SOURCES/rrdtool-1.8.0-BUILD_DATE-fix.patch new file mode 100644 index 0000000..548efe8 --- /dev/null +++ b/SOURCES/rrdtool-1.8.0-BUILD_DATE-fix.patch @@ -0,0 +1,53 @@ +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/SOURCES/rrdtool-1.8.0-const-argv.patch b/SOURCES/rrdtool-1.8.0-const-argv.patch new file mode 100644 index 0000000..7401cde --- /dev/null +++ b/SOURCES/rrdtool-1.8.0-const-argv.patch @@ -0,0 +1,1509 @@ +diff --git a/bindings/lua/rrdlua.c b/bindings/lua/rrdlua.c +index d1a7006..2095c3b 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 9040ba8..79a3efe 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 c4b0ec1..7a0bb38 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 8439413..4f0e566 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); +@@ -309,7 +309,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 e7eb5be..bc007b2 100644 +--- a/src/rrd_cgi.c ++++ b/src/rrd_cgi.c +@@ -100,7 +100,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( +@@ -315,7 +315,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; +@@ -432,7 +432,7 @@ static int readfile( + + int main( + int argc, +- char *argv[]) ++ const char *argv[]) + { + char *buffer; + long i; +@@ -924,7 +924,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 { +@@ -971,7 +971,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]; + +@@ -1025,7 +1025,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 */ +@@ -1037,8 +1037,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); +@@ -1049,7 +1049,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; + } +@@ -1144,7 +1144,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; + } +@@ -1211,7 +1211,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; +@@ -1262,7 +1262,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 0cb5b78..984c438 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 cf12547..5831c1b 100644 +--- a/src/rrd_daemon.c ++++ b/src/rrd_daemon.c +@@ -1796,7 +1796,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; +@@ -1835,7 +1835,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; + } +@@ -1846,7 +1846,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; +@@ -1854,7 +1854,7 @@ static int handle_request_tune( + rc = send_response(sock, RESP_OK, "Success\n"); + done: + free(file); +- free(argv); ++ free((void *)argv); + return rc; + } + +@@ -4418,7 +4418,7 @@ static int cleanup( + + static int read_options( + int argc, +- char **argv) ++ const char **argv) + { /* {{{ */ + struct optparse_long longopts[] = { + {NULL, 'a', OPTPARSE_REQUIRED}, +@@ -4963,7 +4963,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 4f616fc..991cdcd 100644 +--- a/src/rrd_dump.c ++++ b/src/rrd_dump.c +@@ -472,7 +472,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; +@@ -512,7 +512,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 aa05cd0..e0c4f4f 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 6279524..7ecc4f1 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 090bca7..3bf6cd2 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 c0ce6d4..fa8b4c4 100644 +--- a/src/rrd_graph.c ++++ b/src/rrd_graph.c +@@ -4606,7 +4606,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, +@@ -4689,7 +4689,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; +@@ -4952,7 +4952,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 4df32ec..083cf38 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 f88893b..dda0069 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 76277e8..f1b4313 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 2e05886..4b6a79f 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 31ab3f7..28211da 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 e743b9b..6e96220 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 6de7926..d43fec2 100644 +--- a/src/rrd_modify.c ++++ b/src/rrd_modify.c +@@ -1297,7 +1297,7 @@ done: + } + + 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 d78d961..8596801 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 44c1ee5..5236cd6 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 14b9446..19975da 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 71e2263..ddbae96 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 3374dd1..dfa8a86 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 831b8ee..8989f3f 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}, +@@ -668,7 +668,7 @@ error: + + 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 eb814fb..405c9d8 100644 +--- a/src/rrd_xport.c ++++ b/src/rrd_xport.c +@@ -72,7 +72,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 340ef5b..6b51530 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/SOURCES/rrdtool-configure-c99.patch b/SOURCES/rrdtool-configure-c99.patch new file mode 100644 index 0000000..127e3e4 --- /dev/null +++ b/SOURCES/rrdtool-configure-c99.patch @@ -0,0 +1,35 @@ +commit f3334fcbde0a77aa48938ba38602bff91c09cf85 +Author: Ryan Schmidt +Date: Sun Mar 20 16:29:10 2022 -0500 + + acinclude.m4: Include when using exit + + Fixes: + + conftest.c:124:33: error: implicitly declaring library function 'exit' + with type 'void (int) __attribute__((noreturn))' + +diff --git a/m4/acinclude.m4 b/m4/acinclude.m4 +index d9d9eb25..0d6fbf5d 100644 +--- a/m4/acinclude.m4 ++++ b/m4/acinclude.m4 +@@ -582,7 +582,8 @@ AC_DEFUN([GC_TIMEZONE], [ + AC_REQUIRE([AC_STRUCT_TM]) + AC_CACHE_CHECK([tm_gmtoff in struct tm], gq_cv_have_tm_gmtoff, + gq_cv_have_tm_gmtoff=no +- AC_TRY_COMPILE([#include ++ AC_TRY_COMPILE([#include ++ #include + #include <$ac_cv_struct_tm> + ], + [struct tm t; +@@ -595,7 +596,8 @@ AC_DEFUN([GC_TIMEZONE], [ + + AC_CACHE_CHECK([__tm_gmtoff in struct tm], gq_cv_have___tm_gmtoff, + gq_cv_have___tm_gmtoff=no +- AC_TRY_COMPILE([#include ++ AC_TRY_COMPILE([#include ++ #include + #include <$ac_cv_struct_tm> + ], + [struct tm t; diff --git a/SPECS/rrdtool.spec b/SPECS/rrdtool.spec new file mode 100644 index 0000000..025b091 --- /dev/null +++ b/SPECS/rrdtool.spec @@ -0,0 +1,1203 @@ +%global with_python3 %{?_without_python3: 0} %{?!_without_python3: 1} +%global with_php %{?_without_php: 0} %{?!_without_php: 0} +%global with_tcl %{?_without_tcl: 0} %{?!_without_tcl: 1} +%global with_ruby %{?_without_ruby: 0} %{?!_without_ruby: 1} +%global with_lua %{?_without_lua: 0} %{?!_without_lua: 1} +%global with_dbi %{?rhel: 0} %{?!rhel: 1} +%global php_extdir %(php-config --extension-dir 2>/dev/null || echo %{_libdir}/php4) +%global svnrev r1190 +#global pretag 1.2.99908020600 + +%if "%{php_version}" < "5.6" +%global ini_name %{name}.ini +%else +%global ini_name 40-%{name}.ini +%endif + + +Summary: Round Robin Database Tool to store and display time-series data +Name: rrdtool +Version: 1.8.0 +Release: 19%{?dist} +# gd license in php bindings isn't by default built-in +License: gpl-1.0-or-later AND gpl-2.0-or-later AND gpl-2.0-or-later WITH rrdtool-floss-exception-2.0 AND mit AND lgpl-2.0-or-later AND lgpl-2.1-or-later AND bsd-source-code AND snprintf AND bsd-3-clause AND gpl-2.0-only AND licenseref-fedora-public-domain AND gtkbook +URL: https://oss.oetiker.ch/rrdtool/ +Source0: https://github.com/oetiker/rrdtool-1.x/releases/download/v%{version}/%{name}-%{version}.tar.gz +Source1: php4-%{svnrev}.tar.gz +Patch1: rrdtool-1.4.4-php54.patch +# disable logo for php 5.5. +Patch2: rrdtool-1.4.7-php55.patch +Patch3: rrdtool-1.6.0-ruby-2-fix.patch +# enable php bindings on ppc +Patch4: rrdtool-1.4.8-php-ppc-fix.patch +# Fix BUILD_DATE in rrdtool help output +# https://github.com/oetiker/rrdtool-1.x/commit/e59f703 +Patch5: rrdtool-1.8.0-BUILD_DATE-fix.patch +Patch6: rrdtool-configure-c99.patch +# gcc-14 fix +# https://github.com/oetiker/rrdtool-1.x/commit/b76e3c578f1e9f582e9c28f50d82b1f569602075 +Patch7: rrdtool-1.8.0-const-argv.patch + +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: freetype-devel +BuildRequires: libpng-devel +BuildRequires: zlib-devel +BuildRequires: intltool >= 0.35.0 +BuildRequires: cairo-devel >= 1.4.6 +BuildRequires: pango-devel >= 1.17 +BuildRequires: libtool +BuildRequires: groff +BuildRequires: gettext +BuildRequires: libxml2-devel +BuildRequires: systemd +BuildRequires: sed +%if %{with_dbi} +BuildRequires: libdbi-devel +%endif +BuildRequires: perl-ExtUtils-MakeMaker +BuildRequires: perl-generators +BuildRequires: perl-Pod-Html +BuildRequires: perl-devel +BuildRequires: automake +BuildRequires: autoconf +Requires: dejavu-sans-mono-fonts +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +%description +RRD is the Acronym for Round Robin Database. RRD is a system to store and +display time-series data (i.e. network bandwidth, machine-room temperature, +server load average). It stores the data in a very compact way that will not +expand over time, and it presents useful graphs by processing the data to +enforce a certain data density. It can be used either via simple wrapper +scripts (from shell or Perl) or via frontends that poll network devices and +put a friendly user interface on it. + +%package devel +Summary: RRDtool libraries and header files +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +%description devel +RRD is the Acronym for Round Robin Database. RRD is a system to store and +display time-series data (i.e. network bandwidth, machine-room temperature, +server load average). This package allow you to use directly this library. + +%package doc +Summary: RRDtool documentation + +%description doc +RRD is the Acronym for Round Robin Database. RRD is a system to store and +display time-series data (i.e. network bandwidth, machine-room temperature, +server load average). This package contains documentation on using RRD. + +%package perl +Summary: Perl RRDtool bindings +Requires: %{name} = %{version}-%{release} +Obsoletes: perl-%{name} < %{version}-%{release} +Provides: perl-%{name} = %{version}-%{release} + +%description perl +The Perl RRDtool bindings + + +%package -n python3-rrdtool +%{?python_provide:%python_provide python3-rrdtool} +Summary: Python RRDtool bindings +BuildRequires: python3-devel, python3-setuptools +%{?__python3:Requires: %{__python3}} +Requires: %{name} = %{version}-%{release} + +%description -n python3-rrdtool +Python RRDtool bindings. + +%if %{with_php} +%package php +Summary: PHP RRDtool bindings +BuildRequires: php-devel >= 4.0 +Requires: php >= 4.0 +Requires: %{name} = %{version}-%{release} +Requires: php(zend-abi) = %{php_zend_api} +Requires: php(api) = %{php_core_api} +Obsoletes: php-%{name} < %{version}-%{release} +Provides: php-%{name} = %{version}-%{release} +Provides: php-pecl(rrdtool) + +%description php +The %{name}-php package includes a dynamic shared object (DSO) that adds +RRDtool bindings to the PHP HTML-embedded scripting language. +%endif + +%if %{with_tcl} +%package tcl +Summary: Tcl RRDtool bindings +BuildRequires: tcl-devel >= 8.0 +Requires: tcl >= 8.0 +Requires: %{name} = %{version}-%{release} +Obsoletes: tcl-%{name} < %{version}-%{release} +Provides: tcl-%{name} = %{version}-%{release} + +%description tcl +The %{name}-tcl package includes RRDtool bindings for Tcl. +%endif + +%if %{with_ruby} +%{!?ruby_vendorarchdir: %global ruby_vendorarchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["vendorarchdir"]')} + +%package ruby +Summary: Ruby RRDtool bindings +BuildRequires: ruby, ruby-devel +Requires: %{name} = %{version}-%{release} + +%description ruby +The %{name}-ruby package includes RRDtool bindings for Ruby. +%endif + +%if %{with_lua} +%{!?luaver: %global luaver %(lua -e "print(string.sub(_VERSION, 5))")} +%global lualibdir %{_libdir}/lua/%{luaver} +%global luapkgdir %{_datadir}/lua/%{luaver} + +%package lua +Summary: Lua RRDtool bindings +BuildRequires: lua, lua-devel +%if "%{luaver}" != "" +Requires: lua(abi) = %{luaver} +%endif +Requires: %{name} = %{version}-%{release} + +%description lua +The %{name}-lua package includes RRDtool bindings for Lua. +%endif + +%prep +%setup -q -n %{name}-%{version} %{?with_php: -a 1} +%if %{with_php} +%patch1 -p1 -b .php54 +%patch2 -p1 -b .php55 +%endif +# Workaround for rhbz#92165 +# Do not apply on RHEL-6 or lower +%if %{?rhel} %{?!rhel:7} > 6 +%patch3 -p1 -b .ruby-2-fix +%endif +%patch4 -p1 -b .php-ppc-fix +%patch5 -p1 -b .BUILD_DATE-fix +%patch6 -p1 -b .configure-c99 +%patch7 -p1 -b .const-argv + +# Fix to find correct python dir on lib64 +perl -pi -e 's|get_python_lib\(0,0,prefix|get_python_lib\(1,0,prefix|g' \ + configure + +# Most edits shouldn't be necessary when using --libdir, but +# w/o, some introduce hardcoded rpaths where they shouldn't +perl -pi.orig -e 's|/lib\b|/%{_lib}|g' \ + configure Makefile.in php4/configure php4/ltconfig* + +# Perl 5.10 seems to not like long version strings, hack around it +perl -pi.orig -e 's|1.299907080300|1.29990708|' \ + bindings/perl-shared/RRDs.pm bindings/perl-piped/RRDp.pm + +# +# fix config files for php4 bindings +# workaround needed due to https://bugzilla.redhat.com/show_bug.cgi?id=211069 +cp -p /usr/lib/rpm/redhat/config.{guess,sub} php4/ + +%build +./bootstrap +%configure \ + --with-perl-options='INSTALLDIRS="vendor"' \ + --disable-rpath \ +%if %{with_tcl} + --enable-tcl-site \ + --with-tcllib=%{_libdir} \ +%else + --disable-tcl \ +%endif +%if %{with_python3} + --enable-python \ +%else + --disable-python \ +%endif +%if %{with_ruby} + --enable-ruby \ +%else + --disable-ruby \ +%endif +%if %{with_dbi} + --enable-libdbi \ +%else + --disable-libdbi \ +%endif + --disable-static \ + --with-pic + +# Fix another rpath issue +perl -pi.orig -e 's|-Wl,--rpath -Wl,\$rp||g' \ + bindings/perl-shared/Makefile.PL + +%if %{with_ruby} +# Remove Rpath from Ruby +perl -pi.orig -e 's|-Wl,--rpath -Wl,\$\(EPREFIX\)/lib||g' \ + bindings/ruby/extconf.rb +sed -i 's|extconf.rb \\|extconf.rb --vendor \\|' bindings/Makefile +%endif + +# Force RRDp bits where we want 'em, not sure yet why the +# --with-perl-options and --libdir don't take +pushd bindings/perl-piped/ +perl Makefile.PL INSTALLDIRS=vendor +perl -pi.orig -e 's|/lib/perl|/%{_lib}/perl|g' Makefile +popd + +%{make_build} + +# Build the php module, the tmp install is required +%if %{with_php} +%global rrdtmp %{_tmppath}/%{name}-%{version}-tmpinstall +%{__make} install DESTDIR="%{rrdtmp}" +pushd php4/ + +export PYTHON=%{__python3} + +%configure \ + --with-rrdtool="%{rrdtmp}%{_prefix}" \ + --disable-static +%{make_build} PYTHON="$PYTHON" +popd +rm -rf %{rrdtmp} +%endif + +# Fix @perl@ and @PERL@ +find examples/ -type f \ + -exec perl -pi -e 's|^#! \@perl\@|#!%{__perl}|gi' {} \; +find examples/ -name "*.pl" \ + -exec perl -pi -e 's|\015||gi' {} \; + +# Rebuild python +pushd bindings/python +%py3_build +popd + +%install +export PYTHON=%{__python3} +%{make_install} PYTHON="$PYTHON" + +# Install the php module +%if %{with_php} +install -D -m0755 php4/modules/rrdtool.so \ + %{buildroot}%{php_extdir}/rrdtool.so +# Clean up the examples for inclusion as docs +rm -rf php4/examples/.svn +# Put the php config bit into place +mkdir -p %{buildroot}%{_sysconfdir}/php.d +cat << __EOF__ > %{buildroot}%{_sysconfdir}/php.d/%{ini_name} +; Enable rrdtool extension module +extension=rrdtool.so +__EOF__ +%endif + +# Pesky RRDp.pm... +mv $RPM_BUILD_ROOT%{perl_vendorlib}/RRDp.pm $RPM_BUILD_ROOT%{perl_vendorarch}/ + +# Dunno why this is getting installed here... +rm -f $RPM_BUILD_ROOT%{perl_vendorlib}/leaktest.pl + +# We only want .txt and .html files for the main documentation +mkdir -p doc2/html doc2/txt +cp -a doc/*.txt doc2/txt/ +cp -a doc/*.html doc2/html/ + +# Put perl docs in perl package +mkdir -p doc3/html +mv doc2/html/RRD*.html doc3/html/ + +# Clean up the examples +rm -f examples/Makefile* examples/*.in examples/rrdcached/Makefile* + +# This is so rpm doesn't pick up perl module dependencies automatically +find examples/ -type f -exec chmod 0644 {} \; + +# Reinstall python +pushd bindings/python +%py3_install +popd + +# Clean up the buildroot +rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}-* \ + $RPM_BUILD_ROOT%{perl_vendorarch}/ntmake.pl \ + $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod \ + $RPM_BUILD_ROOT%{_datadir}/%{name}/examples \ + $RPM_BUILD_ROOT%{perl_vendorarch}/auto/*/{.packlist,*.bs} + +%find_lang %{name} + +%check +# minimal load test for the PHP extension +%if %{with_php} +LD_LIBRARY_PATH=%{buildroot}%{_libdir} php -n \ + -d extension_dir=%{buildroot}%{php_extdir} \ + -d extension=rrdtool.so -m \ + | grep rrdtool +%endif + + +%post +/sbin/ldconfig +%systemd_post rrdcached.service rrdcached.socket + +%preun +%systemd_post rrdcached.service rrdcached.socket + +%postun +/sbin/ldconfig +%systemd_post rrdcached.service rrdcached.socket + +%files -f %{name}.lang +%license LICENSE +%doc CONTRIBUTORS COPYRIGHT TODO NEWS CHANGES THREADS +%{_bindir}/* +%{_libdir}/*.so.* +%{_unitdir}/rrdcached.service +%{_unitdir}/rrdcached.socket +%{_datadir}/%{name} +%{_mandir}/man1/* +%{_mandir}/man3/lib*.3* + +%files devel +%{_includedir}/*.h +%{_libdir}/lib*.so +%{_libdir}/pkgconfig/*.pc + +# License file is missing, upstream was notified +%files doc +%doc examples doc2/html doc2/txt + +%files perl +%doc doc3/html +%{_mandir}/man3/*.3pm* +%{perl_vendorarch}/*.pm +%attr(0755,root,root) %{perl_vendorarch}/auto/RRDs/ + + +%files -n python3-rrdtool +%doc bindings/python/COPYING bindings/python/README.md +%{python3_sitearch}/rrdtool*.so +%{python3_sitearch}/rrdtool-*.egg-info + +%if %{with_php} +%files php +%doc php4/examples php4/README +%config(noreplace) %{_sysconfdir}/php.d/%{ini_name} +%{php_extdir}/rrdtool.so +%endif + +%if %{with_tcl} +%files tcl +%doc bindings/tcl/README +%{_libdir}/tclrrd*.so +%{_libdir}/rrdtool/*.tcl +%endif + +%if %{with_ruby} +%files ruby +%doc bindings/ruby/README +%{ruby_vendorarchdir}/RRD.so +%endif + +%if %{with_lua} +%files lua +%doc bindings/lua/README +%{lualibdir}/* +%endif + +%changelog +* Tue Nov 26 2024 MSVSphere Packaging Team - 1.8.0-19 +- Rebuilt for MSVSphere 10 + +* Thu Aug 08 2024 Troy Dawson - 1.8.0-19 +- Bump release for Aug 2024 java mass rebuild + +* Mon Jun 24 2024 Troy Dawson - 1.8.0-18 +- Bump release for June 2024 mass rebuild + +* Mon May 27 2024 Jaroslav Škarvada - 1.8.0-17 +- Added recently approved SPDX exception rrdtool-floss-exception-2.0 + Resolves: RHEL-38985 + +* Wed Jan 24 2024 Jaroslav Škarvada - 1.8.0-16 +- Converted license to SPDX + +* Mon Jan 22 2024 Jaroslav Škarvada - 1.8.0-15 +- Fixed FTBFS with GCC 14 + +* Mon Jan 22 2024 Fedora Release Engineering - 1.8.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 03 2024 Mamoru TASAKA - 1.8.0-13 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3 + +* Fri Jul 21 2023 Fedora Release Engineering - 1.8.0-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jul 11 2023 Jitka Plesnikova - 1.8.0-11 +- Perl 5.38 rebuild + +* Tue Jun 13 2023 Python Maint - 1.8.0-10 +- Rebuilt for Python 3.12 + +* Mon Apr 17 2023 Florian Weimer - 1.8.0-9 +- Backport upstream patch to fix C99 issue in configure script + +* Fri Jan 20 2023 Fedora Release Engineering - 1.8.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 04 2023 Mamoru TASAKA - 1.8.0-7 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2 + +* Fri Dec 02 2022 Wolfgang Stöggl - 1.8.0-6 +- Fix BUILD_DATE + Add patch: rrdtool-1.8.0-BUILD_DATE-fix.patch + +* Thu Nov 24 2022 FeRD (Frank Dana) - 1.8.0-5 +- Remove excludes for nonexistent .la files +- Fix Ruby directory lookup +- Move librrd(3) man page from -perl subpackage to main package + +* Sat Jul 23 2022 Fedora Release Engineering - 1.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 1.8.0-3 +- Rebuilt for Python 3.11 + +* Wed Jun 01 2022 Jitka Plesnikova - 1.8.0-2 +- Perl 5.36 rebuild + +* Tue Mar 22 2022 Jaroslav Škarvada - 1.8.0-1 +- New version + Resolves: rhbz#2065186 + +* Thu Jan 27 2022 Mamoru TASAKA - 1.7.2-23 +- F-36: rebuild against ruby31 + +* Fri Jan 21 2022 Fedora Release Engineering - 1.7.2-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 1.7.2-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 1.7.2-20 +- Rebuilt for Python 3.10 + +* Wed May 26 2021 Jaroslav Škarvada - 1.7.2-19 +- Removed rpath from python bindings better way + +* Sat May 22 2021 Jitka Plesnikova - 1.7.2-18 +- Perl 5.34 rebuild + +* Thu May 13 2021 Jaroslav Škarvada - 1.7.2-17 +- Removed rpath from python bindings + +* Wed Jan 27 2021 Fedora Release Engineering - 1.7.2-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jan 06 2021 Mamoru TASAKA - 1.7.2-15 +- F-34: rebuild against ruby 3.0 + +* Sat Aug 01 2020 Fedora Release Engineering - 1.7.2-14 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.7.2-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jul 23 2020 Jaroslav Škarvada - 1.7.2-12 +- Used macros for make + +* Tue Jun 30 2020 Miro Hrončok - 1.7.2-11 +- Rebuilt for Lua 5.4 + +* Thu Jun 25 2020 Jitka Plesnikova - 1.7.2-10 +- Perl 5.32 rebuild + +* Mon Jun 8 2020 Jaroslav Škarvada - 1.7.2-9 +- Fixed FTBFS + Resolves: rhbz#1845126 + +* Tue May 26 2020 Miro Hrončok - 1.7.2-8 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 1.7.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jan 18 2020 Mamoru TASAKA - 1.7.2-6 +- F-32: rebuild against ruby27 + +* Fri Aug 30 2019 Miro Hrončok - 1.7.2-5 +- Subpackage python2-rrdtool has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Mon Aug 19 2019 Miro Hrončok - 1.7.2-4 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 1.7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Jun 01 2019 Jitka Plesnikova - 1.7.2-2 +- Perl 5.30 rebuild + +* Mon May 27 2019 Jaroslav Škarvada - 1.7.2-1 +- New version + Resolves: rhbz#1714347 +- Dropped compile-fix patch (upstreamed) + +* Tue Feb 5 2019 Jaroslav Škarvada - 1.7.1-1 +- New version + Resolves: rhbz#1672309 +- Dropped fix-configure-parameters patch (upstreamed) + +* Sat Feb 02 2019 Fedora Release Engineering - 1.7.0-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 21 2019 Mamoru TASAKA - 1.7.0-20 +- F-30: rebuild against ruby26 + +* Wed Dec 5 2018 Jaroslav Škarvada - 1.7.0-19 +- Dropped useless Makefile in examples/rrdcached + +* Thu Sep 27 2018 Jaroslav Škarvada - 1.7.0-18 +- Introduced python3 change requested by python team + +* Sat Jul 14 2018 Fedora Release Engineering - 1.7.0-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 04 2018 Petr Pisar - 1.7.0-16 +- Perl 5.28 rebuild + +* Mon Jul 02 2018 Miro Hrončok - 1.7.0-15 +- Rebuilt for Python 3.7 + +* Fri Jun 29 2018 Jitka Plesnikova - 1.7.0-14 +- Perl 5.28 rebuild + +* Tue Jun 19 2018 Jaroslav Škarvada - 1.7.0-13 +- Added support for python3 + +* Mon Feb 12 2018 Iryna Shcherbina - 1.7.0-12 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 1.7.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 20 2018 Björn Esser - 1.7.0-10 +- Rebuilt for switch to libxcrypt + +* Mon Jan 08 2018 Mamoru TASAKA - 1.7.0-9 +- Again rebuild for ruby25 + +* Fri Jan 5 2018 Jaroslav Škarvada - 1.7.0-8 +- Dropped libdbi on RHEL + Resolves: rhbz#1531474 + +* Fri Jan 05 2018 Mamoru TASAKA - 1.7.0-7 +- F-28: rebuild for ruby25 + +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 1.7.0-6 +- Add Provides for the old name without %%_isa + +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1.7.0-5 +- Python 2 binary package renamed to python2-rrdtool + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + +* Thu Aug 03 2017 Fedora Release Engineering - 1.7.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.7.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun Jun 04 2017 Jitka Plesnikova - 1.7.0-2 +- Perl 5.26 rebuild + +* Wed May 17 2017 Jaroslav Škarvada - 1.7.0-1 +- New version + Resolves: rhbz#1451534 +- Spec cleanup +- Added support for locales + +* Sat Feb 11 2017 Fedora Release Engineering - 1.6.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 13 2017 Mamoru TASAKA - 1.6.0-7 +- F-26: rebuild for ruby24 + +* Fri Jul 29 2016 Petr Pisar - 1.6.0-6 +- Adjust lua version computaion to SRPM build root without lua + +* Tue Jul 19 2016 Fedora Release Engineering - 1.6.0-5 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Fri Jul 15 2016 Jaroslav Škarvada - 1.6.0-4 +- Disabled php bindings due to rhbz#1353500 and: + https://github.com/oetiker/rrdtool-1.x/issues/724 + +* Fri Jul 15 2016 Jaroslav Škarvada - 1.6.0-3 +- Rebuilt for php + +* Tue May 17 2016 Jitka Plesnikova - 1.6.0-2 +- Perl 5.24 rebuild + +* Wed Apr 20 2016 Jaroslav Škarvada - 1.6.0-1 +- New version + Resolves: rhbz#1328651 +- Dropped lua-5.2 and arm-crash-fix patches (upstreamed) +- Updated ruby-2-fix patch + +* Tue Apr 19 2016 Jaroslav Škarvada - 1.5.6-1 +- New version + +* Thu Feb 04 2016 Fedora Release Engineering - 1.5.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Jan 12 2016 Vít Ondruch - 1.5.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.3 + +* Wed Nov 11 2015 Jaroslav Škarvada - 1.5.5-1 +- New version + Resolves: rhbz#1280118 + +* Mon Aug 10 2015 Jaroslav Škarvada - 1.5.4-1 +- New version + Resolves: rhbz#1251737 +- Defuzzified ruby-2-fix and lua-5.2 patches +- Used global instead of define +- Dropped macros for commands (e.g. rm) + +* Thu Jun 18 2015 Fedora Release Engineering - 1.5.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat Jun 06 2015 Jitka Plesnikova - 1.5.3-3 +- Perl 5.22 rebuild + +* Mon May 25 2015 Jaroslav Škarvada - 1.5.3-2 +- Fixed crash on ARM + Resolves: rhbz#1224530 + +* Mon May 4 2015 Jaroslav Škarvada - 1.5.3-1 +- New version + Resolves: rhbz#1217759 + +* Sat Apr 25 2015 Jaroslav Škarvada - 1.5.2-1 +- New version + Resolves: rhbz#1215162 + +* Thu Apr 23 2015 Jaroslav Škarvada - 1.5.1-1 +- New version + Resolves: rhbz#1214750 +- Dropped python-fix (upstreamed) + +* Mon Apr 20 2015 Jaroslav Škarvada - 1.5.0-1 +- New version + Resolves: rhbz#1213035 +- Dropped autoconf and doc-fix patches (all upstreamed) +- Included systemd rrdcached service and socket from upstream +- General documentation (like NEWS) moved to basic package + +* Mon Jan 19 2015 Mamoru TASAKA - 1.4.9-4 +- Again rebuild for ruby 2.2 + +* Sun Jan 18 2015 Michel Alexandre Salim - 1.4.9-3 +- Rebuilt for Lua 5.3 + +* Fri Jan 16 2015 Mamoru TASAKA - 1.4.9-2 +- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_2.2 + +* Tue Sep 30 2014 Jaroslav Škarvada - 1.4.9-1 +- New version + Resolves: rhbz#1147901 +- Dropped imginfo-check patch (upstreamed) +- De-fuzzified patches + +* Thu Aug 28 2014 Jitka Plesnikova - 1.4.8-18 +- Perl 5.20 rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 1.4.8-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Tue Aug 12 2014 Jaroslav Škarvada - 1.4.8-16 +- Enabled php bindings on ppc + +* Fri Aug 8 2014 Jaroslav Škarvada - 1.4.8-15 +- Fixed conditionalized patch to be according to Packaging guidelines + +* Tue Jun 24 2014 Jaroslav Škarvada - 1.4.8-14 +- Improved backward compatibility + Resolves: rhbz#111633 + +* Thu Jun 19 2014 Remi Collet - 1.4.8-13 +- rebuild for https://fedoraproject.org/wiki/Changes/Php56 +- add numerical prefix to extension configuration file +- cleanup filter (no more needed in F20+) + +* Sun Jun 08 2014 Fedora Release Engineering - 1.4.8-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 28 2014 Vít Ondruch - 1.4.8-11 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.1 + +* Mon Feb 17 2014 Jaroslav Škarvada - 1.4.8-10 +- Used macro to detect all ppc64 host variants + Resolves: rhbz#1054300 + +* Tue Jan 21 2014 Tom Callaway - 1.4.8-9 +- rebuild for new libdbi + +* Mon Dec 9 2013 Jaroslav Škarvada - 1.4.8-8 +- Enabled libdbi support + Resolves: rhbz#1039326 + +* Mon Nov 4 2013 Jaroslav Škarvada - 1.4.8-7 +- Fixed multilib problems + +* Fri Oct 11 2013 Jaroslav Škarvada - 1.4.8-6 +- Fixed twice packaging of tclrrd1.4.8.so + +* Sun Aug 04 2013 Fedora Release Engineering - 1.4.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 17 2013 Petr Pisar - 1.4.8-4 +- Perl 5.18 rebuild + +* Mon Jul 1 2013 Jaroslav Škarvada - 1.4.8-3 +- Minor doc / man fixes + +* Fri Jun 7 2013 Jaroslav Škarvada - 1.4.8-2 +- Added imginfo format check + Resolves: CVE-2013-2131 + +* Thu May 23 2013 Jaroslav Škarvada - 1.4.8-1 +- New version + Resolves: rhbz#966639 +- Updated and defuzzified patches + +* Mon May 20 2013 Jaroslav Škarvada - 1.4.7-17 +- Require lua abi instead of package version + +* Wed May 15 2013 Tom Callaway - 1.4.7-16 +- lua 5.2 + +* Tue May 7 2013 Jaroslav Škarvada - 1.4.7-15 +- Removed unneccassary dejavu-lgc-sans-mono-fonts requirement + Resolves: rhbz#922467 + +* Tue Mar 26 2013 Jaroslav Škarvada - 1.4.7-14 +- Fixed autoconf (by autoconf-fix patch) +- Added support for aarch64 + Resolves: rhbz#926455 + +* Mon Mar 25 2013 Jaroslav Škarvada - 1.4.7-13 +- Fixed build failure + Resolves: rhbz#926037 + +* Fri Mar 22 2013 Remi Collet - 1.4.7-12 +- rebuild for http://fedoraproject.org/wiki/Features/Php55 +- remove rrdtool_logo_guid function + +* Tue Mar 19 2013 Jaroslav Škarvada - 1.4.7-11 +- Dropped ruby(abi) explicit requirement + +* Mon Mar 18 2013 Jaroslav Škarvada - 1.4.7-10 +- Fixed build failure with ruby-2.0 (by ruby-2-fix patch) +- Fixed bogus date in changelog + +* Thu Feb 14 2013 Fedora Release Engineering - 1.4.7-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Jan 8 2013 Jaroslav Škarvada - 1.4.7-8 +- Removed libtool archive from the lua subpackage + +* Sat Jul 21 2012 Fedora Release Engineering - 1.4.7-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jun 11 2012 Petr Pisar - 1.4.7-6 +- Perl 5.16 rebuild + +* Thu Feb 9 2012 Jaroslav Škarvada - 1.4.7-5 +- Changed ruby(abi) to 1.9.1 + +* Wed Feb 8 2012 Jaroslav Škarvada - 1.4.7-4 +- Used ruby_vendorarchdir instead of ruby_sitearch + +* Wed Feb 8 2012 Jaroslav Škarvada - 1.4.7-3 +- Fixed ruby(abi) requires + +* Tue Feb 7 2012 Jaroslav Škarvada - 1.4.7-2 +- Rebuilt for new ruby + +* Thu Jan 26 2012 Jaroslav Škarvada - 1.4.7-1 +- New version + Resolves: rhbz#783553 +- Dropped fix-tcl-site-option patch (upstreamed) + +* Thu Jan 19 2012 Remi Collet - 1.4.4-9 +- build with php 5.4 + +* Thu Dec 29 2011 Remi Collet - 1.4.4-8 +- add patch for php 5.4 +- add minimal load test for PHP extension +- add provides filters + +* Tue Dec 06 2011 Adam Jackson - 1.4.4-7 +- Rebuild for new libpng + +* Fri Jun 17 2011 Marcela Mašláňová - 1.4.4-6 +- Perl mass rebuild + +* Sat Jun 11 2011 Jaroslav Škarvada - 1.4.4-5 +- Fixed build failure due to change in php_zend_api macro type + +* Fri Jun 10 2011 Marcela Mašláňová - 1.4.4-4 +- Perl 5.14 mass rebuild + +* Wed Feb 09 2011 Fedora Release Engineering - 1.4.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Nov 23 2010 Jaroslav Škarvada - 1.4.4-2 +- Fixed mixed tabs and spaces rpmlint warning +- Fixed tcl-site configure option (upstream ticket #281) +- Removed Rpath from Ruby +- Enabled Lua bindings (#656080), thanks to Tim Niemueller + +* Tue Nov 16 2010 Jaroslav Škarvada - 1.4.4-1 +- Update to rrdtool 1.4.4 + +* Thu Jul 22 2010 David Malcolm - 1.3.8-8 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Wed Jun 02 2010 Marcela Maslanova - 1.3.8-7 +- Mass rebuild with perl-5.12.0 + +* Wed Jan 13 2010 Stepan Kasal - 1.3.8-6 +- remove python_* macros clashing with the built-in ones +- fix for new vendorlib directory + +* Mon Dec 7 2009 Stepan Kasal - 1.3.8-5 +- rebuild against perl 5.10.1 + +* Sun Jul 26 2009 Fedora Release Engineering - 1.3.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jul 13 2009 Remi Collet 1.3.8-3 +- rebuild for new PHP 5.3.0 ABI (20090626) + +* Tue May 26 2009 Jarod Wilson 1.3.8-2 +- Update dejavu font deps yet again, hopefully for the last time... (#473551) + +* Tue May 19 2009 Jarod Wilson 1.3.8-1 +- Update to rrdtool 1.3.8 + +* Thu Apr 09 2009 Jarod Wilson 1.3.7-1 +- Update to rrdtool 1.3.7 + +* Wed Feb 25 2009 Fedora Release Engineering - 1.3.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Jan 19 2009 Jarod Wilson 1.3.6-1 +- Update to rrdtool 1.3.6 + +* Fri Jan 16 2009 Jarod Wilson 1.3.5-2 +- dejavu font package names changed again... + +* Tue Dec 16 2008 Jarod Wilson 1.3.5-1 +- Update to rrdtool 1.3.5 + +* Thu Dec 04 2008 Ignacio Vazquez-Abrams - 1.3.4-5 +- Rebuild for Python 2.6 + +* Mon Dec 01 2008 Jarod Wilson 1.3.4-4 +- Update dejavu font dependencies (#473551) + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 1.3.4-3 +- Rebuild for Python 2.6 + +* Mon Oct 20 2008 Jarod Wilson 1.3.4-2 +- Drop php bindings patch, rrd_update changed back to its + prior prototype post-beta (#467593) + +* Mon Oct 06 2008 Jarod Wilson 1.3.4-1 +- Update to rrdtool 1.3.4 + +* Mon Sep 15 2008 Jarod Wilson 1.3.3-1 +- Update to rrdtool 1.3.3 + * fixes segfault on graph creation regression in 1.3.2 (#462301) + +* Sat Sep 06 2008 Jarod Wilson 1.3.2-1 +- Update to rrdtool 1.3.2 + * fixes a data corruption bug when rrd wraps around + * make imginfo behave the same as docs say it does + * fixes for numerous memory leaks + +* Tue Aug 12 2008 Jarod Wilson 1.3.1-1 +- Update to rrdtool 1.3.1 + +* Mon Jun 16 2008 Chris Ricker 1.3.0-1 +- Update to rrdtool 1.3.0 + +* Sun Jun 08 2008 Jarod Wilson 1.3-0.20.rc9 +- Update to rrdtool 1.3 rc9 +- Minor spec tweaks to permit building on older EL + +* Wed Jun 04 2008 Chris Ricker 1.3-0.19.rc7 +- Update to rrdtool 1.3 rc7 + +* Tue May 27 2008 Chris Ricker 1.3-0.18.rc6 +- Update to rrdtool 1.3 rc6 + +* Wed May 21 2008 Chris Ricker 1.3-0.17.rc4 +- Bump version and rebuild + +* Wed May 21 2008 Chris Ricker 1.3-0.16.rc4 +- Fix php bindings compile on x86_64 + +* Mon May 19 2008 Chris Ricker 1.3-0.15.rc4 +- Update to rrdtool 1.3 rc4 + +* Tue May 13 2008 Jarod Wilson 1.3-0.15.rc1 +- Update to rrdtool 1.3 rc1 +- Fix versioning in changelog entries, had an extra 0 in there... +- Drop cairo and python patches, they're in 1.3 rc1 +- Add Requires: gettext and libxml2-devel for new translations + +* Wed Apr 30 2008 Jarod Wilson 1.3-0.14.beta4 +- Drop some conditional flags, they're not working at the moment... + +* Wed Apr 30 2008 Jarod Wilson 1.3-0.13.beta4 +- Fix problem with cairo_save/cairo_restore (#444827) + +* Wed Apr 23 2008 Jarod Wilson 1.3-0.12.beta4 +- Fix python bindings rrdtool info implementation (#435468) + +* Tue Apr 08 2008 Jarod Wilson 1.3-0.11.beta4 +- Work around apparent version string length issue w/perl 5.10 (#441359) + +* Sat Apr 05 2008 Jarod Wilson 1.3-0.10.beta4 +- Fix use of rrd_update in php bindings (#437558) + +* Mon Mar 3 2008 Tom "spot" Callaway 1.3-0.9.beta4 +- rebuild for new perl (again) + +* Wed Feb 13 2008 Jarod Wilson 1.3-0.8.beta4 +- Update to rrdtool 1.3 beta4 + +* Tue Feb 05 2008 Tom "spot" Callaway 1.3-0.7.beta3 +- rebuild for new perl (and fix license tag) + +* Mon Feb 04 2008 Jarod Wilson 1.3-0.6.beta3 +- Plug memory leak (#430879) + +* Mon Jan 07 2008 Jarod Wilson 1.3-0.5.beta3 +- Fix right-aligned text alignment and scaling (Resolves: #427609) + +* Wed Jan 02 2008 Jarod Wilson 1.3-0.4.beta3 +- Add newly built python egg to %%files + +* Wed Jan 02 2008 Jarod Wilson 1.3-0.3.beta3 +- Update to rrdtool 1.3 beta3 +- Return properly from errors in RRDp.pm (Resolves: #427040) +- Requires: dejavu-lgc-fonts (Resolves: #426935) + +* Thu Dec 06 2007 Jarod Wilson 1.3-0.2.beta2 +- Update to rrdtool 1.3 beta2 + +* Wed Aug 08 2007 Jarod Wilson 1.3-0.1.beta1 +- Update to rrdtool 1.3 beta1 + +* Tue Jul 10 2007 Jarod Wilson 1.2.999-0.3.r1144 +- Update to latest rrdtool pre-1.3 svn snapshot (svn r1144) +- Add php abi check (Resolves: #247339) + +* Fri Jun 15 2007 Jarod Wilson 1.2.999-0.2.r1127 +- Fix up BuildRequires + +* Fri Jun 15 2007 Jarod Wilson 1.2.999-0.1.r1127 +- Update to rrdtool pre-1.3 svn snapshot (svn r1127) + +* Mon May 21 2007 Jarod Wilson 1.2.23-5 +- BR: ruby so %%ruby_sitearch gets set + +* Mon May 21 2007 Jarod Wilson 1.2.23-4 +- Build ruby bindings + +* Thu May 03 2007 Jarod Wilson 1.2.23-3 +- Disable php bits on ppc64 for now, they fail to build + +* Thu May 03 2007 Jarod Wilson 1.2.23-2 +- Add BR: perl-devel for Fedora 7 and later + +* Tue May 01 2007 Jarod Wilson 1.2.23-1 +- New upstream release + +* Tue May 01 2007 Jarod Wilson 1.2.21-1 +- New upstream release + +* Wed Apr 25 2007 Jarod Wilson 1.2.19-2 +- Define %%python_version *before* its needed (#237826) + +* Mon Apr 09 2007 Jarod Wilson 1.2.19-1 +- New upstream release + +* Tue Jan 23 2007 Jarod Wilson 1.2.18-1 +- New upstream release + +* Mon Jan 22 2007 Jarod Wilson 1.2.17-1 +- New upstream release + +* Tue Jan 02 2007 Jarod Wilson 1.2.15-9 +- Fix crash with long error strings (upstream + changesets 929 and 935) + +* Thu Dec 14 2006 Jarod Wilson 1.2.15-8 +- Fix for log grid memory leak (#201241) + +* Tue Dec 12 2006 Jarod Wilson 1.2.15-7 +- Rebuild for python 2.5 + +* Tue Nov 14 2006 Jarod Wilson 1.2.15-6 +- Conditionalize python, php and tcl bits (Resolves #203275) + +* Wed Oct 25 2006 Jarod Wilson 1.2.15-5 +- Add tcl sub-package (#203275) + +* Tue Sep 05 2006 Jarod Wilson 1.2.15-4 +- Rebuild for new glibc + +* Wed Aug 02 2006 Jarod Wilson 1.2.15-3 +- One more addition to initrrdtool patch, to fully revert + and correct upstream changeset 839 +- Fix for no python in minimal fc4 buildroots + +* Tue Aug 1 2006 Mihai Ibanescu 1.2.15-2 +- Fixed rrdtool-python to import the module properly (patch + rrdtool-1.2.15-initrrdtool.patch) + +* Mon Jul 17 2006 Jarod Wilson 1.2.15-1 +- Update to 1.2.15 +- Minor spec cleanups + +* Sat Jun 24 2006 Jarod Wilson 1.2.13-7 +- Fix up Obsoletes + +* Mon Jun 19 2006 Jarod Wilson 1.2.13-6 +- Flip perl, php and python sub-package names around to + conform with general practices + +* Sat Jun 10 2006 Jarod Wilson 1.2.13-5 +- Minor fixes to make package own created directories + +* Wed Jun 07 2006 Jarod Wilson 1.2.13-4 +- Add php bits back into the mix + +* Mon Jun 05 2006 Jarod Wilson 1.2.13-3 +- Merge spec fixes from bz 185909 + +* Sun Jun 04 2006 Jarod Wilson 1.2.13-2 +- Remove explicit perl dep, version grabbing using rpm during + rpmbuild not guaranteed to work (fails on ppc in plague), + and auto-gen perl deps are sufficient + +* Sat Jun 03 2006 Jarod Wilson 1.2.13-1 +- Update to release 1.2.13 +- Merge spec changes from dag, atrpms and mdk builds +- Additional hacktastic contortions for lib64 & rpath messiness +- Add missing post/postun ldconfig +- Fix a bunch of rpmlint errors +- Disable static libs, per FE guidelines +- Split off docs + +* Wed Apr 19 2006 Chris Ricker 1.2.12-1 +- Rev to 1.2 + +* Fri May 20 2005 Matthias Saou 1.0.49-5 +- Include patch from Michael to fix perl module compilation on FC4 (#156242). + +* Fri May 20 2005 Matthias Saou 1.0.49-4 +- Fix for the php module patch (Joe Pruett, Dag Wieers), #156716. +- Update source URL to new location since 1.2 is now the default stable. +- Don't (yet) update to 1.0.50, as it introduces some changes in the perl + modules install. + +* Mon Jan 31 2005 Matthias Saou 1.0.49-3 +- Put perl modules in vendor_perl and not site_perl. #146513 + +* Thu Jan 13 2005 Matthias Saou 1.0.49-2 +- Minor cleanups. + +* Wed Aug 25 2004 Dag Wieers - 1.0.49-1 +- Updated to release 1.0.49. + +* Wed Aug 25 2004 Dag Wieers - 1.0.48-3 +- Fixes for x86_64. (Garrick Staples) + +* Fri Jul 2 2004 Matthias Saou 1.0.48-3 +- Actually apply the patch for fixing the php module, doh! + +* Thu May 27 2004 Matthias Saou 1.0.48-2 +- Added php.d config entry to load the module once installed. + +* Thu May 13 2004 Dag Wieers - 1.0.48-1 +- Updated to release 1.0.48. + +* Tue Apr 06 2004 Dag Wieers - 1.0.47-1 +- Updated to release 1.0.47. + +* Thu Mar 4 2004 Matthias Saou 1.0.46-2 +- Change the strict dependency on perl to fix problem with the recent + update. + +* Mon Jan 5 2004 Matthias Saou 1.0.46-1 +- Update to 1.0.46. +- Use system libpng and zlib instead of bundled ones. +- Added php-rrdtool sub-package for the php4 module. + +* Fri Dec 5 2003 Matthias Saou 1.0.45-4 +- Added epoch to the perl dependency to work with rpm > 4.2. +- Fixed the %% escaping in the perl dep. + +* Mon Nov 17 2003 Matthias Saou 1.0.45-2 +- Rebuild for Fedora Core 1. + +* Sun Aug 3 2003 Matthias Saou +- Update to 1.0.45. + +* Wed Apr 16 2003 Matthias Saou +- Update to 1.0.42. + +* Mon Mar 31 2003 Matthias Saou +- Rebuilt for Red Hat Linux 9. + +* Wed Mar 5 2003 Matthias Saou +- Added explicit perl version dependency. + +* Sun Feb 23 2003 Matthias Saou +- Update to 1.0.41. + +* Fri Jan 31 2003 Matthias Saou +- Update to 1.0.40. +- Spec file cleanup. + +* Fri Jul 05 2002 Henri Gomez +- 1.0.39 + +* Mon Jun 03 2002 Henri Gomez +- 1.0.38 + +* Fri Apr 19 2002 Henri Gomez +- 1.0.37 + +* Tue Mar 12 2002 Henri Gomez +- 1.0.34 +- rrdtools include zlib 1.1.4 which fix vulnerabilities in 1.1.3 +