Compare commits
No commits in common. "c8s" and "c10s-cve-2026-43958" have entirely different histories.
c8s
...
c10s-cve-2
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,4 +1,2 @@
|
||||
SOURCES/php4-r1190.tar.gz
|
||||
SOURCES/rrdtool-1.7.0.tar.gz
|
||||
/php4-r1190.tar.gz
|
||||
/rrdtool-1.7.0.tar.gz
|
||||
/rrdtool-*.tar.gz
|
||||
|
||||
23
gating.yaml
23
gating.yaml
@ -1,6 +1,25 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-8
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
|
||||
|
||||
#Rawhide
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/tier1-public.functional}
|
||||
|
||||
#gating rhel
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-*
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-public.functional}
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build./plans/tier1-internal.functional}
|
||||
36
plans.fmf
Normal file
36
plans.fmf
Normal file
@ -0,0 +1,36 @@
|
||||
/tier1-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/rrdtool.git
|
||||
name: /plans/tier1/internal
|
||||
|
||||
/tier1-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/rrdtool.git
|
||||
name: /plans/tier1/public
|
||||
|
||||
/tier2-tier3-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/rrdtool.git
|
||||
name: /plans/tier2-tier3/internal
|
||||
|
||||
/tier2-tier3-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/rrdtool.git
|
||||
name: /plans/tier2-tier3/public
|
||||
|
||||
/others-internal:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/rrdtool.git
|
||||
name: /plans/others/internal
|
||||
|
||||
/others-public:
|
||||
plan:
|
||||
import:
|
||||
url: https://gitlab.com/redhat/centos-stream/tests/rrdtool.git
|
||||
name: /plans/others/public
|
||||
|
||||
@ -1,239 +0,0 @@
|
||||
diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c
|
||||
index 23faeba..4e63d80 100644
|
||||
--- a/src/rrd_daemon.c
|
||||
+++ b/src/rrd_daemon.c
|
||||
@@ -521,7 +521,7 @@ static int check_pidfile(void)
|
||||
{
|
||||
int pid_fd;
|
||||
pid_t pid;
|
||||
- char pid_str[16];
|
||||
+ char pid_str[16] = {0};
|
||||
|
||||
pid_fd = open_pidfile("open", O_RDWR);
|
||||
if (pid_fd < 0){
|
||||
@@ -676,11 +676,7 @@ static int add_response_info(listen_socket_t *sock, char *fmt, ...) /* {{{ */
|
||||
if (sock->batch_start) return 0; /* no extra info returned when in BATCH */
|
||||
|
||||
va_start(argp, fmt);
|
||||
-#ifdef HAVE_VSNPRINTF
|
||||
len = vsnprintf(buffer, sizeof(buffer), fmt, argp);
|
||||
-#else
|
||||
- len = vsprintf(buffer, fmt, argp);
|
||||
-#endif
|
||||
va_end(argp);
|
||||
if (len < 0)
|
||||
{
|
||||
@@ -765,14 +761,12 @@ static int send_response (listen_socket_t *sock, response_code rc,
|
||||
rc = RESP_OK;
|
||||
} else {
|
||||
rclen = snprintf(buffer, sizeof buffer, "%d ", lines);
|
||||
+ if (rclen < 0 || rclen >= (int) sizeof(buffer))
|
||||
+ return -1;
|
||||
}
|
||||
|
||||
va_start(argp, fmt);
|
||||
-#ifdef HAVE_VSNPRINTF
|
||||
len = vsnprintf(buffer+rclen, sizeof(buffer)-rclen, fmt, argp);
|
||||
-#else
|
||||
- len = vsprintf(buffer+rclen, fmt, argp);
|
||||
-#endif
|
||||
va_end(argp);
|
||||
if (len < 0)
|
||||
return -1;
|
||||
@@ -2285,7 +2279,8 @@ static int handle_request_create (HANDLER_PROTO) /* {{{ */
|
||||
char *file_copy = NULL, *dir = NULL, *dir2 = NULL;
|
||||
char *tok;
|
||||
int ac = 0;
|
||||
- char *av[128];
|
||||
+#define MAX_CREATE_AV 128
|
||||
+ char *av[MAX_CREATE_AV];
|
||||
char **sources = NULL;
|
||||
int sources_length = 0;
|
||||
char *template = NULL;
|
||||
@@ -2392,8 +2387,26 @@ static int handle_request_create (HANDLER_PROTO) /* {{{ */
|
||||
no_overwrite = 1;
|
||||
continue;
|
||||
}
|
||||
- if( ! strncmp(tok,"DS:",3) ) { av[ac++]=tok; continue; }
|
||||
- if( ! strncmp(tok,"RRA:",4) ) { av[ac++]=tok; continue; }
|
||||
+ if( ! strncmp(tok,"DS:",3) ) {
|
||||
+ if (ac >= MAX_CREATE_AV) {
|
||||
+ rc = send_response(sock, RESP_ERR,
|
||||
+ "Too many DS/RRA definitions (max %d)\n",
|
||||
+ MAX_CREATE_AV);
|
||||
+ goto done;
|
||||
+ }
|
||||
+ av[ac++]=tok;
|
||||
+ continue;
|
||||
+ }
|
||||
+ if( ! strncmp(tok,"RRA:",4) ) {
|
||||
+ if (ac >= MAX_CREATE_AV) {
|
||||
+ rc = send_response(sock, RESP_ERR,
|
||||
+ "Too many DS/RRA definitions (max %d)\n",
|
||||
+ MAX_CREATE_AV);
|
||||
+ goto done;
|
||||
+ }
|
||||
+ av[ac++]=tok;
|
||||
+ continue;
|
||||
+ }
|
||||
rc = syntax_error(sock,cmd);
|
||||
goto done;
|
||||
}
|
||||
diff --git a/src/rrd_graph.c b/src/rrd_graph.c
|
||||
index fc7ee95..54aad94 100644
|
||||
--- a/src/rrd_graph.c
|
||||
+++ b/src/rrd_graph.c
|
||||
@@ -2449,7 +2449,7 @@ int draw_horizontal_grid(
|
||||
}
|
||||
}
|
||||
} else {
|
||||
- sprintf(graph_label, im->primary_axis_format,
|
||||
+ snprintf(graph_label, sizeof(graph_label), im->primary_axis_format,
|
||||
scaledstep * (double) i, sisym);
|
||||
}
|
||||
}
|
||||
@@ -3767,10 +3767,14 @@ static cairo_status_t cairo_output(
|
||||
{
|
||||
image_desc_t *im = (image_desc_t*)closure;
|
||||
|
||||
- im->rendered_image =
|
||||
- (unsigned char*)realloc(im->rendered_image, im->rendered_image_size + length);
|
||||
- if (im->rendered_image == NULL)
|
||||
- return CAIRO_STATUS_WRITE_ERROR;
|
||||
+ {
|
||||
+ unsigned char *tmp =
|
||||
+ (unsigned char *) realloc(im->rendered_image,
|
||||
+ im->rendered_image_size + length);
|
||||
+ if (tmp == NULL)
|
||||
+ return CAIRO_STATUS_WRITE_ERROR;
|
||||
+ im->rendered_image = tmp;
|
||||
+ }
|
||||
memcpy(im->rendered_image + im->rendered_image_size, data, length);
|
||||
im->rendered_image_size += length;
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
@@ -4057,6 +4061,15 @@ int graph_paint_timestring(
|
||||
(double *) malloc(sizeof(double) * im->xsize * 2);
|
||||
int drawem = 0;
|
||||
|
||||
+ if (foreY == NULL || foreX == NULL ||
|
||||
+ backY == NULL || backX == NULL) {
|
||||
+ free(foreY);
|
||||
+ free(foreX);
|
||||
+ free(backY);
|
||||
+ free(backX);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
for (ii = 0; ii <= im->xsize; ii++) {
|
||||
double ybase, ytop;
|
||||
|
||||
@@ -5694,6 +5707,12 @@ int vdef_calc(
|
||||
case VDEF_PERCENT:{
|
||||
rrd_value_t *array;
|
||||
int field;
|
||||
+ if (steps == 0) {
|
||||
+ dst->vf.val = DNAN;
|
||||
+ dst->vf.when = 0;
|
||||
+ dst->vf.never = 1;
|
||||
+ break;
|
||||
+ }
|
||||
if ((array = (rrd_value_t*)malloc(steps * sizeof(double))) == NULL) {
|
||||
rrd_set_error("malloc VDEV_PERCENT");
|
||||
return -1;
|
||||
@@ -5723,6 +5742,12 @@ int vdef_calc(
|
||||
if (!isnan(data[step * src->ds_cnt])) { nancount++; }
|
||||
}
|
||||
/* and allocate it */
|
||||
+ if (nancount == 0) {
|
||||
+ dst->vf.val = DNAN;
|
||||
+ dst->vf.when = 0;
|
||||
+ dst->vf.never = 1;
|
||||
+ break;
|
||||
+ }
|
||||
if ((array = (rrd_value_t*)malloc(nancount * sizeof(double))) == NULL) {
|
||||
rrd_set_error("malloc VDEV_PERCENT");
|
||||
return -1;
|
||||
diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c
|
||||
index 9e5ffdd..c954018 100644
|
||||
--- a/src/rrd_graph_helper.c
|
||||
+++ b/src/rrd_graph_helper.c
|
||||
@@ -866,7 +866,7 @@ static int parse_xport(enum gf_en,parsedargs_t*,image_desc_t *const);
|
||||
static void legend_shift(char *legend)
|
||||
{
|
||||
if (!legend || !legend[0]) { return; }
|
||||
- memmove(legend+2,legend,strlen(legend));
|
||||
+ memmove(legend+2,legend,strlen(legend)+1);
|
||||
legend[0]=' ';
|
||||
legend[1]=' ';
|
||||
}
|
||||
diff --git a/src/rrd_xport.c b/src/rrd_xport.c
|
||||
index fd7986d..0325dd9 100644
|
||||
--- a/src/rrd_xport.c
|
||||
+++ b/src/rrd_xport.c
|
||||
@@ -321,6 +321,16 @@ static int rrd_xport_fn(
|
||||
/* printf("step: %lu\n",*step); */
|
||||
free(step_list);
|
||||
|
||||
+ if (*step == 0) {
|
||||
+ rrd_set_error("xport step is zero");
|
||||
+ free(ref_list);
|
||||
+ for (unsigned long k = *col_cnt; k > 0; k--)
|
||||
+ free(legend_list[k - 1]);
|
||||
+ *col_cnt = 0;
|
||||
+ free(legend_list);
|
||||
+ return (-1);
|
||||
+ }
|
||||
+
|
||||
*start = im->start - im->start % (*step);
|
||||
if ( im->start > *start ) {
|
||||
*start = *start + *step;
|
||||
@@ -337,24 +347,30 @@ static int rrd_xport_fn(
|
||||
if (((*data) =
|
||||
(rrd_value_t*)malloc((*col_cnt) * row_cnt * sizeof(rrd_value_t))) == NULL) {
|
||||
free(ref_list);
|
||||
+ for (unsigned long k = *col_cnt; k > 0; k--)
|
||||
+ free(legend_list[k - 1]);
|
||||
+ *col_cnt = 0;
|
||||
free(legend_list);
|
||||
rrd_set_error("malloc xport data area");
|
||||
return (-1);
|
||||
}
|
||||
dstptr = (*data);
|
||||
|
||||
+ long unsigned int chosen_idx = 0;
|
||||
/* fill data structure */
|
||||
- for (dst_row = 0; (int) dst_row < (int) row_cnt; dst_row++) {
|
||||
- for (i = 0; i < (int) (*col_cnt); i++) {
|
||||
+ for (dst_row = 0; dst_row < row_cnt; dst_row++) {
|
||||
+ for (i = 0; (unsigned long) i < *col_cnt; i++) {
|
||||
long vidx = im->gdes[ref_list[i]].vidx;
|
||||
time_t now = *start + dst_row * *step;
|
||||
- (*dstptr++) = im->gdes[vidx].data[(unsigned long)
|
||||
- floor((double)
|
||||
- (now - im->gdes[vidx].start)
|
||||
- /im->gdes[vidx].step)
|
||||
- * im->gdes[vidx].ds_cnt +
|
||||
- im->gdes[vidx].ds];
|
||||
|
||||
+ if (im->gdes[vidx].step > 0 &&
|
||||
+ now >= im->gdes[vidx].start) {
|
||||
+ chosen_idx = floor((double) (now - im->gdes[vidx].start) / im->gdes[vidx].step) * im->gdes[vidx].ds_cnt + im->gdes[vidx].ds;
|
||||
+
|
||||
+ (*dstptr++) = im->gdes[vidx].data[chosen_idx];
|
||||
+ } else {
|
||||
+ (*dstptr++) = DNAN;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -821,6 +837,10 @@ static void escapeJSON(char* txt,size_t len) {
|
||||
char *tmp=(char*)malloc(len+2);
|
||||
size_t l=strlen(txt);
|
||||
size_t pos=0;
|
||||
+
|
||||
+ if (tmp == NULL)
|
||||
+ return;
|
||||
+
|
||||
/* now iterate over the chars */
|
||||
for(size_t i=0;(i<l)&&(pos<len);i++,pos++) {
|
||||
switch (txt[i]) {
|
||||
@ -1,49 +0,0 @@
|
||||
--- ./configure.ac.orig 2017-05-16 10:32:11.000000000 +0200
|
||||
+++ ./configure.ac 2018-01-05 14:00:09.261806009 +0100
|
||||
@@ -512,7 +512,11 @@
|
||||
|
||||
have_libdbi=no
|
||||
|
||||
-AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),[],[
|
||||
+AC_ARG_ENABLE(libdbi,AS_HELP_STRING([--disable-libdbi],[do not build in support for libdbi]),
|
||||
+[],
|
||||
+[enable_libdbi=yes])
|
||||
+
|
||||
+AS_IF([test "x$enable_libdbi" != xno], [
|
||||
AC_CHECK_HEADER(dbi/dbi.h, [
|
||||
AC_CHECK_LIB(dbi, dbi_initialize, [
|
||||
AC_DEFINE(HAVE_LIBDBI,[1],[have got libdbi installed])
|
||||
@@ -526,7 +530,11 @@
|
||||
|
||||
have_librados=no
|
||||
|
||||
-AC_ARG_ENABLE(librados,AS_HELP_STRING([--disable-librados],[do not build in support for librados]),[],[
|
||||
+AC_ARG_ENABLE(librados,AS_HELP_STRING([--disable-librados],[do not build in support for librados]),
|
||||
+[],
|
||||
+[enable_librados=yes])
|
||||
+
|
||||
+AS_IF([test "x$enable_librados" != xno], [
|
||||
AC_CHECK_HEADER(rados/librados.h, [
|
||||
AC_DEFINE(HAVE_LIBRADOS,[1],[have got librados installed])
|
||||
LIBS="${LIBS} -lrados"
|
||||
@@ -538,7 +546,11 @@
|
||||
|
||||
have_libwrap=no
|
||||
|
||||
-AC_ARG_ENABLE(libwrap, AS_HELP_STRING([--disable-libwrap], [do not build in support for libwrap (tcp wrapper)]),[],[
|
||||
+AC_ARG_ENABLE(libwrap, AS_HELP_STRING([--disable-libwrap], [do not build in support for libwrap (tcp wrapper)]),
|
||||
+[],
|
||||
+[enable_libwrap=yes])
|
||||
+
|
||||
+AS_IF([test "x$enable_libwrap" != xno], [
|
||||
AC_CHECK_HEADER(tcpd.h,[
|
||||
AC_CHECK_FUNCS(hosts_access, [
|
||||
AC_DEFINE(HAVE_LIBWRAP,[1],[have got libwrap installed])
|
||||
@@ -554,7 +566,6 @@
|
||||
])
|
||||
])
|
||||
|
||||
-
|
||||
AM_CONDITIONAL(BUILD_LIBWRAP,[test $have_libwrap != no])
|
||||
|
||||
AM_CONDITIONAL(BUILD_RRDGRAPH,[test $enable_rrd_graph != no])
|
||||
53
rrdtool-1.8.0-BUILD_DATE-fix.patch
Normal file
53
rrdtool-1.8.0-BUILD_DATE-fix.patch
Normal file
@ -0,0 +1,53 @@
|
||||
From e59f703bbcc0af949ee365206426b6394c340c6f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= <c72578@yahoo.de>
|
||||
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 <tobi@oetiker.ch>\n"
|
||||
+ " Compiled %s\n\n"
|
||||
+ "Usage: rrdtool [options] command command_options\n");
|
||||
+#else
|
||||
const char *help_main =
|
||||
N_("RRDtool %s"
|
||||
" Copyright by Tobias Oetiker <tobi@oetiker.ch>\n"
|
||||
" Compiled %s %s\n\n"
|
||||
"Usage: rrdtool [options] command command_options\n");
|
||||
+#endif
|
||||
|
||||
const char *help_list =
|
||||
N_
|
||||
275
rrdtool-1.8.0-CVE-2026-43958.patch
Normal file
275
rrdtool-1.8.0-CVE-2026-43958.patch
Normal file
@ -0,0 +1,275 @@
|
||||
diff --git a/src/rrd_daemon.c b/src/rrd_daemon.c
|
||||
index 5831c1b..db9589c 100644
|
||||
--- a/src/rrd_daemon.c
|
||||
+++ b/src/rrd_daemon.c
|
||||
@@ -343,7 +343,13 @@ static void do_log(
|
||||
pthread_mutex_lock(&log_lock);
|
||||
time_t now = time(NULL);
|
||||
|
||||
- strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", gmtime(&now));
|
||||
+ struct tm tm_buf;
|
||||
+
|
||||
+ if (gmtime_r(&now, &tm_buf) == NULL) {
|
||||
+ snprintf(buffer, sizeof(buffer), "(time error)");
|
||||
+ } else {
|
||||
+ strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &tm_buf);
|
||||
+ }
|
||||
fprintf(log_fh, "%s [%d] ", buffer, priority);
|
||||
vfprintf(log_fh, format, args);
|
||||
fprintf(log_fh, "\n");
|
||||
@@ -554,7 +560,7 @@ static int check_pidfile(
|
||||
{
|
||||
int pid_fd;
|
||||
pid_t pid;
|
||||
- char pid_str[16];
|
||||
+ char pid_str[16] = {0};
|
||||
|
||||
pid_fd = open_pidfile("open", O_RDWR);
|
||||
if (pid_fd < 0) {
|
||||
@@ -746,11 +752,7 @@ static int add_response_info(
|
||||
return 0; /* no extra info returned when in BATCH */
|
||||
|
||||
va_start(argp, fmt);
|
||||
-#ifdef HAVE_VSNPRINTF
|
||||
len = vsnprintf(buffer, sizeof(buffer), fmt, argp);
|
||||
-#else
|
||||
- len = vsprintf(buffer, fmt, argp);
|
||||
-#endif
|
||||
va_end(argp);
|
||||
if (len < 0) {
|
||||
RRDD_LOG(LOG_ERR, "add_response_info: vnsprintf failed");
|
||||
@@ -839,14 +841,12 @@ static int send_response(
|
||||
rc = RESP_OK;
|
||||
} else {
|
||||
rclen = snprintf(buffer, sizeof buffer, "%d ", lines);
|
||||
+ if (rclen < 0 || rclen >= (int) sizeof(buffer))
|
||||
+ return -1;
|
||||
}
|
||||
|
||||
va_start(argp, fmt);
|
||||
-#ifdef HAVE_VSNPRINTF
|
||||
len = vsnprintf(buffer + rclen, sizeof(buffer) - rclen, fmt, argp);
|
||||
-#else
|
||||
- len = vsprintf(buffer + rclen, fmt, argp);
|
||||
-#endif
|
||||
va_end(argp);
|
||||
if (len < 0)
|
||||
return -1;
|
||||
@@ -1829,7 +1829,7 @@ static int handle_request_tune(
|
||||
goto done;
|
||||
}
|
||||
argc = atoi(i);
|
||||
- if (argc < 0) {
|
||||
+ if (argc <= 0) {
|
||||
rc = send_response(sock, RESP_ERR, "Invalid argument count specified (%d)\n",
|
||||
argc);
|
||||
goto done;
|
||||
@@ -1842,6 +1842,11 @@ static int handle_request_tune(
|
||||
argc_tmp = 0;
|
||||
while ((status = buffer_get_field(&buffer, &buffer_size, &tok)) == 0
|
||||
&& tok) {
|
||||
+ if (argc_tmp >= argc) {
|
||||
+ rc = send_response(sock, RESP_ERR,
|
||||
+ "Too many arguments (expected %d)\n", argc);
|
||||
+ goto done;
|
||||
+ }
|
||||
argv[argc_tmp] = tok;
|
||||
argc_tmp += 1;
|
||||
}
|
||||
@@ -2388,7 +2393,8 @@ static int handle_request_create(
|
||||
char *file_copy = NULL, *dir = NULL, *dir2 = NULL;
|
||||
char *tok;
|
||||
int ac = 0;
|
||||
- char *av[128];
|
||||
+#define MAX_CREATE_AV 128
|
||||
+ char *av[MAX_CREATE_AV];
|
||||
char **sources = NULL;
|
||||
int sources_length = 0;
|
||||
char *template = NULL;
|
||||
@@ -2501,10 +2507,22 @@ static int handle_request_create(
|
||||
continue;
|
||||
}
|
||||
if (!strncmp(tok, "DS:", 3)) {
|
||||
+ if (ac >= MAX_CREATE_AV) {
|
||||
+ rc = send_response(sock, RESP_ERR,
|
||||
+ "Too many DS/RRA definitions (max %d)\n",
|
||||
+ MAX_CREATE_AV);
|
||||
+ goto done;
|
||||
+ }
|
||||
av[ac++] = tok;
|
||||
continue;
|
||||
}
|
||||
if (!strncmp(tok, "RRA:", 4)) {
|
||||
+ if (ac >= MAX_CREATE_AV) {
|
||||
+ rc = send_response(sock, RESP_ERR,
|
||||
+ "Too many DS/RRA definitions (max %d)\n",
|
||||
+ MAX_CREATE_AV);
|
||||
+ goto done;
|
||||
+ }
|
||||
av[ac++] = tok;
|
||||
continue;
|
||||
}
|
||||
diff --git a/src/rrd_graph.c b/src/rrd_graph.c
|
||||
index fa8b4c4..0d3577f 100644
|
||||
--- a/src/rrd_graph.c
|
||||
+++ b/src/rrd_graph.c
|
||||
@@ -2515,8 +2515,9 @@ int draw_horizontal_grid(
|
||||
}
|
||||
}
|
||||
} else {
|
||||
- sprintf(graph_label, im->primary_axis_format,
|
||||
- scaledstep * (double) i, sisym);
|
||||
+ snprintf(graph_label, sizeof(graph_label),
|
||||
+ im->primary_axis_format,
|
||||
+ scaledstep * (double) i, sisym);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -3858,11 +3859,14 @@ static cairo_status_t cairo_output(
|
||||
{
|
||||
image_desc_t *im = (image_desc_t *) closure;
|
||||
|
||||
- im->rendered_image =
|
||||
- (unsigned char *) realloc(im->rendered_image,
|
||||
- im->rendered_image_size + length);
|
||||
- if (im->rendered_image == NULL)
|
||||
- return CAIRO_STATUS_WRITE_ERROR;
|
||||
+ {
|
||||
+ unsigned char *tmp =
|
||||
+ (unsigned char *) realloc(im->rendered_image,
|
||||
+ im->rendered_image_size + length);
|
||||
+ if (tmp == NULL)
|
||||
+ return CAIRO_STATUS_WRITE_ERROR;
|
||||
+ im->rendered_image = tmp;
|
||||
+ }
|
||||
memcpy(im->rendered_image + im->rendered_image_size, data, length);
|
||||
im->rendered_image_size += length;
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
@@ -4153,6 +4157,15 @@ int graph_paint_timestring(
|
||||
(double *) malloc(sizeof(double) * im->xsize * 2);
|
||||
int drawem = 0;
|
||||
|
||||
+ if (foreY == NULL || foreX == NULL ||
|
||||
+ backY == NULL || backX == NULL) {
|
||||
+ free(foreY);
|
||||
+ free(foreX);
|
||||
+ free(backY);
|
||||
+ free(backX);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
for (ii = 0; ii <= im->xsize; ii++) {
|
||||
double ybase, ytop;
|
||||
|
||||
@@ -5881,6 +5894,12 @@ int vdef_calc(
|
||||
rrd_value_t *array;
|
||||
int field;
|
||||
|
||||
+ if (steps == 0) {
|
||||
+ dst->vf.val = DNAN;
|
||||
+ dst->vf.when = 0;
|
||||
+ dst->vf.never = 1;
|
||||
+ break;
|
||||
+ }
|
||||
if ((array = (rrd_value_t *) malloc(steps * sizeof(double))) == NULL) {
|
||||
rrd_set_error("malloc VDEV_PERCENT");
|
||||
return -1;
|
||||
@@ -5914,6 +5933,12 @@ int vdef_calc(
|
||||
}
|
||||
}
|
||||
/* and allocate it */
|
||||
+ if (nancount == 0) {
|
||||
+ dst->vf.val = DNAN;
|
||||
+ dst->vf.when = 0;
|
||||
+ dst->vf.never = 1;
|
||||
+ break;
|
||||
+ }
|
||||
if ((array =
|
||||
(rrd_value_t *) malloc(nancount * sizeof(double))) == NULL) {
|
||||
rrd_set_error("malloc VDEV_PERCENT");
|
||||
diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c
|
||||
index dda0069..7a5683a 100644
|
||||
--- a/src/rrd_graph_helper.c
|
||||
+++ b/src/rrd_graph_helper.c
|
||||
@@ -1186,7 +1186,7 @@ static void legend_shift(
|
||||
if (!legend || !legend[0]) {
|
||||
return;
|
||||
}
|
||||
- memmove(legend + 2, legend, strlen(legend));
|
||||
+ memmove(legend + 2, legend, strlen(legend) + 1);
|
||||
legend[0] = ' ';
|
||||
legend[1] = ' ';
|
||||
}
|
||||
diff --git a/src/rrd_xport.c b/src/rrd_xport.c
|
||||
index 405c9d8..bd07c3a 100644
|
||||
--- a/src/rrd_xport.c
|
||||
+++ b/src/rrd_xport.c
|
||||
@@ -357,6 +357,16 @@ static int rrd_xport_fn(
|
||||
/* printf("step: %lu\n",*step); */
|
||||
free(step_list);
|
||||
|
||||
+ if (*step == 0) {
|
||||
+ rrd_set_error("xport step is zero");
|
||||
+ free(ref_list);
|
||||
+ for (unsigned long k = *col_cnt; k > 0; k--)
|
||||
+ free(legend_list[k - 1]);
|
||||
+ *col_cnt = 0;
|
||||
+ free(legend_list);
|
||||
+ return (-1);
|
||||
+ }
|
||||
+
|
||||
*start = im->start - im->start % (*step);
|
||||
|
||||
*end = im->end - im->end % (*step);
|
||||
@@ -371,28 +381,30 @@ static int rrd_xport_fn(
|
||||
(rrd_value_t *) malloc((*col_cnt) * row_cnt *
|
||||
sizeof(rrd_value_t))) == NULL) {
|
||||
free(ref_list);
|
||||
- while ((*col_cnt)--)
|
||||
- free(legend_list[*col_cnt]);
|
||||
+ for (unsigned long k = *col_cnt; k > 0; k--)
|
||||
+ free(legend_list[k - 1]);
|
||||
+ *col_cnt = 0;
|
||||
free(legend_list);
|
||||
rrd_set_error("malloc xport data area");
|
||||
return (-1);
|
||||
}
|
||||
dstptr = (*data);
|
||||
|
||||
+ long unsigned int chosen_idx = 0;
|
||||
/* fill data structure */
|
||||
- for (dst_row = 0; (int) dst_row < (int) row_cnt; dst_row++) {
|
||||
- for (i = 0; i < (int) (*col_cnt); i++) {
|
||||
+ for (dst_row = 0; dst_row < row_cnt; dst_row++) {
|
||||
+ for (i = 0; (unsigned long) i < *col_cnt; i++) {
|
||||
long vidx = im->gdes[ref_list[i]].vidx;
|
||||
time_t now = *start + dst_row * *step;
|
||||
|
||||
- (*dstptr++) = im->gdes[vidx].data[(unsigned long)
|
||||
- floor((double)
|
||||
- (now -
|
||||
- im->gdes[vidx].start)
|
||||
- / im->gdes[vidx].step)
|
||||
- * im->gdes[vidx].ds_cnt +
|
||||
- im->gdes[vidx].ds];
|
||||
+ if (im->gdes[vidx].step > 0 &&
|
||||
+ now >= im->gdes[vidx].start) {
|
||||
+ chosen_idx = floor((double) (now - im->gdes[vidx].start) / im->gdes[vidx].step) * im->gdes[vidx].ds_cnt + im->gdes[vidx].ds;
|
||||
|
||||
+ (*dstptr++) = im->gdes[vidx].data[chosen_idx];
|
||||
+ } else {
|
||||
+ (*dstptr++) = DNAN;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -975,6 +987,9 @@ static void escapeJSON(
|
||||
size_t l = strlen(txt);
|
||||
size_t pos = 0;
|
||||
|
||||
+ if (tmp == NULL)
|
||||
+ return;
|
||||
+
|
||||
/* now iterate over the chars */
|
||||
for (size_t i = 0; (i < l) && (pos < len); i++, pos++) {
|
||||
switch (txt[i]) {
|
||||
1509
rrdtool-1.8.0-const-argv.patch
Normal file
1509
rrdtool-1.8.0-const-argv.patch
Normal file
File diff suppressed because it is too large
Load Diff
35
rrdtool-configure-c99.patch
Normal file
35
rrdtool-configure-c99.patch
Normal file
@ -0,0 +1,35 @@
|
||||
commit f3334fcbde0a77aa48938ba38602bff91c09cf85
|
||||
Author: Ryan Schmidt <git@ryandesign.com>
|
||||
Date: Sun Mar 20 16:29:10 2022 -0500
|
||||
|
||||
acinclude.m4: Include <stdlib.h> 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 <time.h>
|
||||
+ AC_TRY_COMPILE([#include <stdlib.h>
|
||||
+ #include <time.h>
|
||||
#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 <time.h>
|
||||
+ AC_TRY_COMPILE([#include <stdlib.h>
|
||||
+ #include <time.h>
|
||||
#include <$ac_cv_struct_tm>
|
||||
],
|
||||
[struct tm t;
|
||||
337
rrdtool.spec
337
rrdtool.spec
@ -1,9 +1,3 @@
|
||||
%if 0%{?rhel} > 7
|
||||
%global with_python2 %{?_without_python2: 0} %{?!_without_python2: 0}
|
||||
%else
|
||||
%global with_python2 %{?_without_python2: 0} %{?!_without_python2: 1}
|
||||
%endif
|
||||
|
||||
%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}
|
||||
@ -23,12 +17,12 @@
|
||||
|
||||
Summary: Round Robin Database Tool to store and display time-series data
|
||||
Name: rrdtool
|
||||
Version: 1.7.0
|
||||
Release: 17%{?dist}
|
||||
License: GPLv2+ with exceptions
|
||||
Group: Applications/Databases
|
||||
URL: http://oss.oetiker.ch/rrdtool/
|
||||
Source0: http://oss.oetiker.ch/%{name}/pub/%{name}-%{version}.tar.gz
|
||||
Version: 1.8.0
|
||||
Release: 21%{?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.
|
||||
@ -36,26 +30,44 @@ 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
|
||||
# https://github.com/oetiker/rrdtool-1.x/issues/861
|
||||
Patch5: rrdtool-1.7.0-fix-configure-parameters.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
|
||||
# backported from:
|
||||
# https://github.com/oetiker/rrdtool-1.x/commit/4218ec7127ba6c7ea1c20d7c8ea6e2b3f83df73a
|
||||
Patch6: rrdtool-1.7.0-CVE-2026-43958.patch
|
||||
Patch8: rrdtool-1.8.0-CVE-2026-43958.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
|
||||
BuildRequires: gcc-c++, openssl-devel, freetype-devel
|
||||
BuildRequires: libpng-devel, zlib-devel, intltool >= 0.35.0
|
||||
BuildRequires: cairo-devel >= 1.4.6, pango-devel >= 1.17
|
||||
BuildRequires: libtool, groff
|
||||
BuildRequires: gettext, libxml2-devel, systemd
|
||||
%if %{with_dbi}
|
||||
BuildRequires: libdbi-devel
|
||||
%endif
|
||||
BuildRequires: perl-ExtUtils-MakeMaker, perl-generators, perl-Pod-Html, perl-devel
|
||||
BuildRequires: automake, autoconf
|
||||
|
||||
%description
|
||||
RRD is the Acronym for Round Robin Database. RRD is a system to store and
|
||||
@ -68,7 +80,6 @@ put a friendly user interface on it.
|
||||
|
||||
%package devel
|
||||
Summary: RRDtool libraries and header files
|
||||
Group: Development/Libraries
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
|
||||
@ -79,7 +90,6 @@ server load average). This package allow you to use directly this library.
|
||||
|
||||
%package doc
|
||||
Summary: RRDtool documentation
|
||||
Group: Documentation
|
||||
|
||||
%description doc
|
||||
RRD is the Acronym for Round Robin Database. RRD is a system to store and
|
||||
@ -88,63 +98,27 @@ server load average). This package contains documentation on using RRD.
|
||||
|
||||
%package perl
|
||||
Summary: Perl RRDtool bindings
|
||||
Group: Development/Languages
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
|
||||
Obsoletes: perl-%{name} < %{version}-%{release}
|
||||
Provides: perl-%{name} = %{version}-%{release}
|
||||
|
||||
%description perl
|
||||
The Perl RRDtool bindings
|
||||
|
||||
%if %{with_python2}
|
||||
# Make sure the runtime python is newer than the build one;
|
||||
# give a default value to handle parsing in cases when python is not present:
|
||||
%{!?rrd_python_version: %global rrd_python_version %(%{__python2} -c 'import sys; print sys.version.split(" ")[0]' || echo "3.14")}
|
||||
|
||||
%package -n python2-rrdtool
|
||||
%{?python_provide:%python_provide python2-rrdtool}
|
||||
# Remove before F30
|
||||
Provides: %{name}-python = %{version}-%{release}
|
||||
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
||||
Obsoletes: %{name}-python < %{version}-%{release}
|
||||
Summary: Python RRDtool bindings
|
||||
Group: Development/Languages
|
||||
BuildRequires: python2-devel, python2-setuptools
|
||||
Requires: python2 >= %{rrd_python_version}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Obsoletes: python-%{name} < %{version}-%{release}
|
||||
Provides: python-%{name} = %{version}-%{release}
|
||||
|
||||
%description -n python2-rrdtool
|
||||
Python RRDtool bindings.
|
||||
%endif
|
||||
|
||||
%if %{with_python3}
|
||||
# Make sure the runtime python is newer than the build one;
|
||||
# give a default value to handle parsing in cases when python is not present:
|
||||
%{!?rrd_python3_version: %global rrd_python3_version %(%{__python3} -c 'import sys; print(sys.version.split(" ")[0])' || echo "3.14")}
|
||||
|
||||
%package -n python3-rrdtool
|
||||
%{?python_provide:%python_provide python3-rrdtool}
|
||||
Summary: Python RRDtool bindings
|
||||
Group: Development/Languages
|
||||
BuildRequires: python3-devel, python3-setuptools
|
||||
%{?__python3:Requires: %{__python3}}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
%if 0%{?rhel} > 7
|
||||
Requires: platform-python >= %{rrd_python3_version}
|
||||
%else
|
||||
Requires: python3 >= %{rrd_python3_version}
|
||||
%endif
|
||||
|
||||
%description -n python3-rrdtool
|
||||
Python RRDtool bindings.
|
||||
%endif
|
||||
|
||||
%if %{with_php}
|
||||
%package php
|
||||
Summary: PHP RRDtool bindings
|
||||
Group: Development/Languages
|
||||
BuildRequires: php-devel >= 4.0
|
||||
Requires: php >= 4.0
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
@ -162,7 +136,6 @@ RRDtool bindings to the PHP HTML-embedded scripting language.
|
||||
%if %{with_tcl}
|
||||
%package tcl
|
||||
Summary: Tcl RRDtool bindings
|
||||
Group: Development/Languages
|
||||
BuildRequires: tcl-devel >= 8.0
|
||||
Requires: tcl >= 8.0
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
@ -174,11 +147,10 @@ The %{name}-tcl package includes RRDtool bindings for Tcl.
|
||||
%endif
|
||||
|
||||
%if %{with_ruby}
|
||||
%{!?ruby_vendorarchdir: %global ruby_vendorarchdir %(ruby -rrbconfig -e 'puts Config::CONFIG["vendorarchdir"]')}
|
||||
%{!?ruby_vendorarchdir: %global ruby_vendorarchdir %(ruby -rrbconfig -e 'puts RbConfig::CONFIG["vendorarchdir"]')}
|
||||
|
||||
%package ruby
|
||||
Summary: Ruby RRDtool bindings
|
||||
Group: Development/Languages
|
||||
BuildRequires: ruby, ruby-devel
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
@ -193,7 +165,6 @@ The %{name}-ruby package includes RRDtool bindings for Ruby.
|
||||
|
||||
%package lua
|
||||
Summary: Lua RRDtool bindings
|
||||
Group: Development/Languages
|
||||
BuildRequires: lua, lua-devel
|
||||
%if "%{luaver}" != ""
|
||||
Requires: lua(abi) = %{luaver}
|
||||
@ -216,8 +187,10 @@ The %{name}-lua package includes RRDtool bindings for Lua.
|
||||
%patch3 -p1 -b .ruby-2-fix
|
||||
%endif
|
||||
%patch4 -p1 -b .php-ppc-fix
|
||||
%patch5 -p1 -b .fix-configure-parameters
|
||||
%patch6 -p1 -b .CVE-2026-43958
|
||||
%patch5 -p1 -b .BUILD_DATE-fix
|
||||
%patch6 -p1 -b .configure-c99
|
||||
%patch7 -p1 -b .const-argv
|
||||
%patch8 -p1 -b .CVE-2026-43958
|
||||
|
||||
# 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' \
|
||||
@ -235,7 +208,7 @@ perl -pi.orig -e 's|1.299907080300|1.29990708|' \
|
||||
#
|
||||
# fix config files for php4 bindings
|
||||
# workaround needed due to https://bugzilla.redhat.com/show_bug.cgi?id=211069
|
||||
cp -p /usr/lib/rpm/config.{guess,sub} php4/
|
||||
cp -p /usr/lib/rpm/redhat/config.{guess,sub} php4/
|
||||
|
||||
%build
|
||||
./bootstrap
|
||||
@ -248,7 +221,7 @@ cp -p /usr/lib/rpm/config.{guess,sub} php4/
|
||||
%else
|
||||
--disable-tcl \
|
||||
%endif
|
||||
%if %{with_python2} || %{with_python3}
|
||||
%if %{with_python3}
|
||||
--enable-python \
|
||||
%else
|
||||
--disable-python \
|
||||
@ -284,27 +257,20 @@ perl Makefile.PL INSTALLDIRS=vendor
|
||||
perl -pi.orig -e 's|/lib/perl|/%{_lib}/perl|g' Makefile
|
||||
popd
|
||||
|
||||
#{__make} %{?_smp_mflags}
|
||||
make
|
||||
%{make_build}
|
||||
|
||||
# Build the php module, the tmp install is required
|
||||
%if %{with_php}
|
||||
%global rrdtmp %{_tmppath}/%{name}-%{version}-tmpinstall
|
||||
make install DESTDIR="%{rrdtmp}"
|
||||
%{__make} install DESTDIR="%{rrdtmp}"
|
||||
pushd php4/
|
||||
|
||||
%if %{with_python2}
|
||||
export PYTHON=%{__python2}
|
||||
%endif
|
||||
%if %{with_python3}
|
||||
export PYTHON=%{__python3}
|
||||
%endif
|
||||
|
||||
%configure \
|
||||
--with-rrdtool="%{rrdtmp}%{_prefix}" \
|
||||
--disable-static
|
||||
#{__make} %{?_smp_mflags}
|
||||
make PYTHON="$PYTHON"
|
||||
%{make_build} PYTHON="$PYTHON"
|
||||
popd
|
||||
rm -rf %{rrdtmp}
|
||||
%endif
|
||||
@ -317,22 +283,12 @@ find examples/ -name "*.pl" \
|
||||
|
||||
# Rebuild python
|
||||
pushd bindings/python
|
||||
%if %{with_python2}
|
||||
%py2_build
|
||||
%endif
|
||||
%if %{with_python3}
|
||||
%py3_build
|
||||
%endif
|
||||
popd
|
||||
|
||||
%install
|
||||
%if %{with_python2}
|
||||
export PYTHON=%{__python2}
|
||||
%endif
|
||||
%if %{with_python3}
|
||||
export PYTHON=%{__python3}
|
||||
%endif
|
||||
make DESTDIR="$RPM_BUILD_ROOT" PYTHON="$PYTHON" install
|
||||
%{make_install} PYTHON="$PYTHON"
|
||||
|
||||
# Install the php module
|
||||
%if %{with_php}
|
||||
@ -371,12 +327,7 @@ find examples/ -type f -exec chmod 0644 {} \;
|
||||
|
||||
# Reinstall python
|
||||
pushd bindings/python
|
||||
%if %{with_python2}
|
||||
%py2_install
|
||||
%endif
|
||||
%if %{with_python3}
|
||||
%py3_install
|
||||
%endif
|
||||
popd
|
||||
|
||||
# Clean up the buildroot
|
||||
@ -418,10 +369,10 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} php -n \
|
||||
%{_unitdir}/rrdcached.socket
|
||||
%{_datadir}/%{name}
|
||||
%{_mandir}/man1/*
|
||||
%{_mandir}/man3/lib*.3*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/*.h
|
||||
%exclude %{_libdir}/*.la
|
||||
%{_libdir}/lib*.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
@ -431,23 +382,15 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} php -n \
|
||||
|
||||
%files perl
|
||||
%doc doc3/html
|
||||
%{_mandir}/man3/*
|
||||
%{_mandir}/man3/*.3pm*
|
||||
%{perl_vendorarch}/*.pm
|
||||
%attr(0755,root,root) %{perl_vendorarch}/auto/RRDs/
|
||||
|
||||
%if %{with_python2}
|
||||
%files -n python2-rrdtool
|
||||
%doc bindings/python/COPYING bindings/python/README.md
|
||||
%{python2_sitearch}/rrdtool.so
|
||||
%{python2_sitearch}/rrdtool-*.egg-info
|
||||
%endif
|
||||
|
||||
%if %{with_python3}
|
||||
%files -n python3-rrdtool
|
||||
%doc bindings/python/COPYING bindings/python/README.md
|
||||
%{python3_sitearch}/rrdtool*.so
|
||||
%{python3_sitearch}/rrdtool-*.egg-info
|
||||
%endif
|
||||
|
||||
%if %{with_php}
|
||||
%files php
|
||||
@ -472,26 +415,182 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} php -n \
|
||||
%if %{with_lua}
|
||||
%files lua
|
||||
%doc bindings/lua/README
|
||||
%exclude %{lualibdir}/*.la
|
||||
%{lualibdir}/*
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed May 20 2026 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-17
|
||||
* Wed May 20 2026 Jaroslav Škarvada <jskarvad@redhat.com> - 1.8.0-21
|
||||
- Fixed stack buffer overflow in rrdcached and added more security checks
|
||||
Resolves: RHEL-173259
|
||||
Resolves: RHEL-173264
|
||||
|
||||
* Thu Dec 6 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-16
|
||||
- Rebuilt to fix broken build
|
||||
Related: rhbz#1636795
|
||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1.8.0-20
|
||||
- Bump release for October 2024 mass rebuild:
|
||||
Resolves: RHEL-64018
|
||||
|
||||
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-15
|
||||
* Thu Aug 08 2024 Troy Dawson <tdawson@redhat.com> - 1.8.0-19
|
||||
- Bump release for Aug 2024 java mass rebuild
|
||||
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.8.0-18
|
||||
- Bump release for June 2024 mass rebuild
|
||||
|
||||
* Mon May 27 2024 Jaroslav Škarvada <jskarvad@redhat.com> - 1.8.0-17
|
||||
- Added recently approved SPDX exception rrdtool-floss-exception-2.0
|
||||
Resolves: RHEL-38985
|
||||
|
||||
* Wed Jan 24 2024 Jaroslav Škarvada <jskarvad@redhat.com> - 1.8.0-16
|
||||
- Converted license to SPDX
|
||||
|
||||
* Mon Jan 22 2024 Jaroslav Škarvada <jskarvad@redhat.com> - 1.8.0-15
|
||||
- Fixed FTBFS with GCC 14
|
||||
|
||||
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.0-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Wed Jan 03 2024 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.8.0-13
|
||||
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.0-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 1.8.0-11
|
||||
- Perl 5.38 rebuild
|
||||
|
||||
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1.8.0-10
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Mon Apr 17 2023 Florian Weimer <fweimer@redhat.com> - 1.8.0-9
|
||||
- Backport upstream patch to fix C99 issue in configure script
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.0-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Wed Jan 04 2023 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.8.0-7
|
||||
- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.2
|
||||
|
||||
* Fri Dec 02 2022 Wolfgang Stöggl <c72578@yahoo.de> - 1.8.0-6
|
||||
- Fix BUILD_DATE
|
||||
Add patch: rrdtool-1.8.0-BUILD_DATE-fix.patch
|
||||
|
||||
* Thu Nov 24 2022 FeRD (Frank Dana) <ferdnyc@gmail.com> - 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 <releng@fedoraproject.org> - 1.8.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.8.0-3
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Wed Jun 01 2022 Jitka Plesnikova <jplesnik@redhat.com> - 1.8.0-2
|
||||
- Perl 5.36 rebuild
|
||||
|
||||
* Tue Mar 22 2022 Jaroslav Škarvada <jskarvad@redhat.com> - 1.8.0-1
|
||||
- New version
|
||||
Resolves: rhbz#2065186
|
||||
|
||||
* Thu Jan 27 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.2-23
|
||||
- F-36: rebuild against ruby31
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-22
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.7.2-20
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Wed May 26 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-19
|
||||
- Removed rpath from python bindings better way
|
||||
|
||||
* Sat May 22 2021 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.2-18
|
||||
- Perl 5.34 rebuild
|
||||
|
||||
* Thu May 13 2021 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-17
|
||||
- Removed rpath from python bindings
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-16
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jan 06 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.2-15
|
||||
- F-34: rebuild against ruby 3.0
|
||||
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-14
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Thu Jul 23 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-12
|
||||
- Used macros for make
|
||||
|
||||
* Tue Jun 30 2020 Miro Hrončok <mhroncok@redhat.com> - 1.7.2-11
|
||||
- Rebuilt for Lua 5.4
|
||||
|
||||
* Thu Jun 25 2020 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.2-10
|
||||
- Perl 5.32 rebuild
|
||||
|
||||
* Mon Jun 8 2020 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-9
|
||||
- Fixed FTBFS
|
||||
Resolves: rhbz#1845126
|
||||
|
||||
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.7.2-8
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Sat Jan 18 2020 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.2-6
|
||||
- F-32: rebuild against ruby27
|
||||
|
||||
* Fri Aug 30 2019 Miro Hrončok <mhroncok@redhat.com> - 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 <mhroncok@redhat.com> - 1.7.2-4
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Sat Jun 01 2019 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.2-2
|
||||
- Perl 5.30 rebuild
|
||||
|
||||
* Mon May 27 2019 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.2-1
|
||||
- New version
|
||||
Resolves: rhbz#1714347
|
||||
- Dropped compile-fix patch (upstreamed)
|
||||
|
||||
* Tue Feb 5 2019 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.1-1
|
||||
- New version
|
||||
Resolves: rhbz#1672309
|
||||
- Dropped fix-configure-parameters patch (upstreamed)
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-21
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Jan 21 2019 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.7.0-20
|
||||
- F-30: rebuild against ruby26
|
||||
|
||||
* Wed Dec 5 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-19
|
||||
- Dropped useless Makefile in examples/rrdcached
|
||||
Resolves: rhbz#1636795
|
||||
|
||||
* Tue Sep 25 2018 Tomas Orsava <torsava@redhat.com> - 1.7.0-14
|
||||
- Require Platform-Python on RHEL
|
||||
- Resolves: rhbz#1633608
|
||||
* Thu Sep 27 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-18
|
||||
- Introduced python3 change requested by python team
|
||||
|
||||
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.0-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Wed Jul 04 2018 Petr Pisar <ppisar@redhat.com> - 1.7.0-16
|
||||
- Perl 5.28 rebuild
|
||||
|
||||
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 1.7.0-15
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Fri Jun 29 2018 Jitka Plesnikova <jplesnik@redhat.com> - 1.7.0-14
|
||||
- Perl 5.28 rebuild
|
||||
|
||||
* Tue Jun 19 2018 Jaroslav Škarvada <jskarvad@redhat.com> - 1.7.0-13
|
||||
- Added support for python3
|
||||
|
||||
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (php4-r1190.tar.gz) = 5fe8f3798abe50553a825ca8358c0d44af389ce5e5ae219c26da70e39f982fce95ad49ef620d03dd4a4a575e7a75d2f569c2013a250f2bcd16c3b2a5322a8eb7
|
||||
SHA512 (rrdtool-1.7.0.tar.gz) = 36d979561601135d74622eaf183701de15cba5e25118f7a308926a695ba84ecb33c3d16511bf4bc80cff055853e2eb85065bc4ed8aef19fc0277c6430ecd319f
|
||||
SHA512 (rrdtool-1.8.0.tar.gz) = 8ae6f94d119e8d0e1ba7f2d0738f1ba008a4880d1022f1c0c5436f662d961fceec5c42e01c241493ece3d6f55c60fd7d1d264f93e678f3cf1251201dcde027c1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user