user debian-rele...@lists.debian.org
usertag 1085153 + bsp-2024-10-at-sbg
tags 1085153 + patch
thanks

Dear maintainer,

I've prepared an NMU for rrdtool (versioned as 1.7.2-4.2). The diff
is attached to this message.

Cheers
-- 
Sebastian Ramacher
diff -Nru rrdtool-1.7.2/debian/changelog rrdtool-1.7.2/debian/changelog
--- rrdtool-1.7.2/debian/changelog	2024-02-29 16:29:46.000000000 +0100
+++ rrdtool-1.7.2/debian/changelog	2024-10-18 20:17:15.000000000 +0200
@@ -1,3 +1,10 @@
+rrdtool (1.7.2-4.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian/patches: Fix build on armel and armhf (Closes: #1085153)
+
+ -- Sebastian Ramacher <sramac...@debian.org>  Fri, 18 Oct 2024 20:17:15 +0200
+
 rrdtool (1.7.2-4.1) unstable; urgency=medium
 
   * Non-maintainer upload.
diff -Nru rrdtool-1.7.2/debian/patches/address-t64.patch rrdtool-1.7.2/debian/patches/address-t64.patch
--- rrdtool-1.7.2/debian/patches/address-t64.patch	1970-01-01 01:00:00.000000000 +0100
+++ rrdtool-1.7.2/debian/patches/address-t64.patch	2024-10-18 20:16:08.000000000 +0200
@@ -0,0 +1,274 @@
+From 5f954c9aa84420dca3c05caea5feb0f918d6bc47 Mon Sep 17 00:00:00 2001
+From: Andreas Hasenack <andreas.hasen...@canonical.com>
+Date: Mon, 26 Aug 2024 18:41:27 -0300
+Subject: [PATCH 1/2] Address the case when time_t is 64bits
+
+Fixes: #1264
+
+Signed-off-by: Andreas Hasenack <andreas.hasen...@canonical.com>
+---
+ bindings/tcl/tclrrd.c  |  6 +++-
+ src/rrd_fetch_libdbi.c | 66 +++++++++++++++++++++++++++++++++++++++++-
+ src/rrd_graph_helper.c |  2 +-
+ src/rrd_lastupdate.c   |  2 +-
+ src/rrd_tool.c         |  6 ++--
+ 5 files changed, 75 insertions(+), 7 deletions(-)
+
+--- a/bindings/tcl/tclrrd.c
++++ b/bindings/tcl/tclrrd.c
+@@ -510,7 +510,11 @@
+             sprintf(s, " %28s", ds_namv[i]);
+             Tcl_ListObjAppendElement(interp, listPtr,
+                                      Tcl_NewStringObj(s, -1));
++#if SIZEOF_TIME_T == 8
++            sprintf(s, "\n\n%10llu:", last_update);
++#else
+             sprintf(s, "\n\n%10lu:", last_update);
++#endif
+             Tcl_ListObjAppendElement(interp, listPtr,
+                                      Tcl_NewStringObj(s, -1));
+             for (i = 0; i < ds_cnt; i++) {
+--- a/src/rrd_fetch_libdbi.c
++++ b/src/rrd_fetch_libdbi.c
+@@ -53,14 +53,22 @@
+       } else if (attr & DBI_INTEGER_SIZE4) { value=dbi_result_get_int_idx(result,idx);
+       } else if (attr & DBI_INTEGER_SIZE8) { value=dbi_result_get_longlong_idx(result,idx);
+       } else {                               value=DNAN;
+-        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %i for type INTEGER\n",time(NULL),idx,attr ); }
++#if SIZEOF_TIME_T == 8
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: column %i unsupported attribute flags %u for type INTEGER\n",time(NULL),idx,attr ); }
++#else
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %u for type INTEGER\n",time(NULL),idx,attr ); }
++#endif
+       }
+       break;
+     case DBI_TYPE_DECIMAL:
+       if        (attr & DBI_DECIMAL_SIZE4) { value=floor(dbi_result_get_float_idx(result,idx));
+       } else if (attr & DBI_DECIMAL_SIZE8) { value=floor(dbi_result_get_double_idx(result,idx));
+       } else {                               value=DNAN;
+-        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %i for type DECIMAL\n",time(NULL),idx,attr ); }
++#if SIZEOF_TIME_T == 8
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: column %i unsupported attribute flags %u for type DECIMAL\n",time(NULL),idx,attr ); }
++#else
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %u for type DECIMAL\n",time(NULL),idx,attr ); }
++#endif
+       }
+       break;
+     case DBI_TYPE_BINARY:
+@@ -82,7 +90,11 @@
+        value=dbi_result_get_datetime_idx(result,idx);
+        break;
+     default:
+-      if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported type: %i with attribute %i\n",time(NULL),idx,type,attr ); }
++#if SIZEOF_TIME_T == 8
++      if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: column %i unsupported type: %u with attribute %u\n",time(NULL),idx,type,attr ); }
++#else
++      if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported type: %u with attribute %u\n",time(NULL),idx,type,attr ); }
++#endif
+       value=DNAN;
+       break;
+   }
+@@ -116,14 +128,23 @@
+       } else if (attr & DBI_INTEGER_SIZE4) { value=dbi_result_get_int_idx(result,idx);
+       } else if (attr & DBI_INTEGER_SIZE8) { value=dbi_result_get_longlong_idx(result,idx);
+       } else {                               value=DNAN;
+-        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %i for type INTEGER\n",time(NULL),idx,attr ); }
++#if SIZEOF_TIME_T == 8
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: column %i unsupported attribute flags %u for type INTEGER\n",time(NULL),idx,attr ); }
++#else
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %u for type INTEGER\n",time(NULL),idx,attr ); }
++#endif
++
+       }
+       break;
+     case DBI_TYPE_DECIMAL:
+       if        (attr & DBI_DECIMAL_SIZE4) { value=dbi_result_get_float_idx(result,idx);
+       } else if (attr & DBI_DECIMAL_SIZE8) { value=dbi_result_get_double_idx(result,idx);
+       } else {                               value=DNAN;
+-        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %i for type DECIMAL\n",time(NULL),idx,attr ); }
++#if SIZEOF_TIME_T == 8
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: column %i unsupported attribute flags %u for type DECIMAL\n",time(NULL),idx,attr ); }
++#else
++        if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported attribute flags %u for type DECIMAL\n",time(NULL),idx,attr ); }
++#endif
+       }
+       break;
+     case DBI_TYPE_BINARY:
+@@ -145,7 +166,11 @@
+        value=dbi_result_get_datetime_idx(result,idx);
+        break;
+     default:
+-      if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported type: %i with attribute %i\n",time(NULL),idx,type,attr ); }
++#if SIZEOF_TIME_T == 8
++      if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: column %i unsupported type: %u with attribute %u\n",time(NULL),idx,type,attr ); }
++#else
++      if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: column %i unsupported type: %u with attribute %u\n",time(NULL),idx,type,attr ); }
++#endif
+       value=DNAN;
+       break;
+   }
+@@ -155,10 +180,18 @@
+ static void _sql_close(struct sql_table_helper* th) {
+   /* close only if connected */
+   if (th->conn) {
++#if SIZEOF_TIME_T == 8
++    if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: close connection\n",time(NULL) ); }
++#else
+     if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: close connection\n",time(NULL) ); }
++#endif
+     /* shutdown dbi */
+     dbi_conn_close(th->conn);
++#if SIZEOF_TIME_T == 8
++    if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: shutting down libdbi\n",time(NULL) ); }
++#else
+     if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: shutting down libdbi\n",time(NULL) ); }
++#endif
+     dbi_shutdown();
+     /* and assign empty */
+     th->conn=NULL;
+@@ -176,7 +209,11 @@
+     th->result=NULL;
+     th->connected=0;
+     /* initialize db */
++#if SIZEOF_TIME_T == 8
++    if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: initialize libDBI\n",time(NULL) ); }
++#else
+     if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: initialize libDBI\n",time(NULL) ); }
++#endif
+     dbi_initialize(NULL);
+     /* load the driver */
+     driver=dbi_driver_open(th->dbdriver);
+@@ -198,7 +235,11 @@
+     _sql_close(th);
+     return -1; 
+   }
++#if SIZEOF_TIME_T == 8
++  if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: setting option %s to %s\n",time(NULL),key,value ); }
++#else
+   if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: setting option %s to %s\n",time(NULL),key,value ); }
++#endif
+   if (strcmp(key, "port") == 0) {
+     if (dbi_conn_set_option_numeric(th->conn,key,atoi(value))) {
+       dbi_conn_error(th->conn,(const char**)&dbi_errstr);
+@@ -228,7 +269,11 @@
+   }
+   if (! th->connected) {
+     /* and now connect */
++#if SIZEOF_TIME_T == 8
++    if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: connect to DB\n",time(NULL) ); }
++#else
+     if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: connect to DB\n",time(NULL) ); }
++#endif
+     if (dbi_conn_connect(th->conn) <0) {
+       dbi_conn_error(th->conn,(const char**)&dbi_errstr);
+       rrd_set_error( "libdbi: problems connecting to db with connect string %s - error: %s",th->filename,dbi_errstr);
+@@ -241,7 +286,11 @@
+   if (! th->result) {
+     /* return if table_next is NULL */
+     if (th->table_next==NULL) { 
++#if SIZEOF_TIME_T == 8
++    if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %lli: reached last table to connect to\n",time(NULL) ); }
++#else
+     if (getenv("RRDDEBUGSQL")) { fprintf(stderr,"RRDDEBUGSQL: %li: reached last table to connect to\n",time(NULL) ); }
++#endif
+       /* but first close connection */
+       _sql_close(th);
+       /* and return with end of data */
+@@ -263,13 +312,25 @@
+   	       th->timestamp,th->value,th->table_start,th->where);
+     }
+     /* and execute sql */
++#if SIZEOF_TIME_T == 8
++    if (getenv("RRDDEBUGSQL")) { startt=time(NULL); fprintf(stderr,"RRDDEBUGSQL: %lli: executing %s\n",startt,sql); }
++#else
+     if (getenv("RRDDEBUGSQL")) { startt=time(NULL); fprintf(stderr,"RRDDEBUGSQL: %li: executing %s\n",startt,sql); }
++#endif
+     th->result=dbi_conn_query(th->conn,sql);
++#if SIZEOF_TIME_T == 8
++    if (startt) { endt=time(NULL);fprintf(stderr,"RRDDEBUGSQL: %lli: timing %lli\n",endt,endt-startt); }
++#else
+     if (startt) { endt=time(NULL);fprintf(stderr,"RRDDEBUGSQL: %li: timing %li\n",endt,endt-startt); }
++#endif
+     /* handle error case */
+     if (! th->result) {
+       dbi_conn_error(th->conn,(const char**)&dbi_errstr);      
++#if SIZEOF_TIME_T == 8
++      if (startt) { fprintf(stderr,"RRDDEBUGSQL: %lli: error %s\n",endt,dbi_errstr); }
++#else
+       if (startt) { fprintf(stderr,"RRDDEBUGSQL: %li: error %s\n",endt,dbi_errstr); }
++#endif
+       rrd_set_error("libdbi: problems with query: %s - errormessage: %s",sql,dbi_errstr);
+       _sql_close(th);
+       return -1;
+@@ -410,7 +471,7 @@
+   int isunixtime=1;
+   long gmt_offset=0;
+   /* the result-set */
+-  long r_timestamp,l_timestamp,d_timestamp;
++  time_t r_timestamp,l_timestamp,d_timestamp;
+   double r_value,l_value,d_value;
+   int r_status;
+   int rows;
+@@ -578,7 +639,11 @@
+   if (where[0]) {strcat(where," AND ");}
+   i=strlen(where);
+   if (isunixtime) {
++#if SIZEOF_TIME_T == 8
++    snprintf(where+i,sizeof(where)-1-i,"%lli < %s AND %s < %lli",*start,table_help.timestamp,table_help.timestamp,*end);
++#else
+     snprintf(where+i,sizeof(where)-1-i,"%li < %s AND %s < %li",*start,table_help.timestamp,table_help.timestamp,*end);
++#endif
+   } else {
+     char tsstart[64];strftime(tsstart,sizeof(tsstart),"%Y-%m-%d %H:%M:%S",localtime(start));
+     char tsend[64];strftime(tsend,sizeof(tsend),"%Y-%m-%d %H:%M:%S",localtime(end));
+--- a/src/rrd_graph_helper.c
++++ b/src/rrd_graph_helper.c
+@@ -1459,7 +1459,7 @@
+   if (gdp->shidx>=0) {
+     dprintf("SHIFTBY : %s (%i)\n",im->gdes[gdp->shidx].vname,gdp->shidx);
+   } else {
+-#if defined _WIN32 && SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
++#if SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
+     dprintf("SHIFTBY : %lli\n",gdp->shval); /* argument 3 has type 'time_t {aka long long int}' */
+ #else
+     dprintf("SHIFTBY : %li\n",gdp->shval);
+--- a/src/rrd_lastupdate.c
++++ b/src/rrd_lastupdate.c
+@@ -77,7 +77,7 @@
+         printf(" %s", ds_names[i]);
+     printf ("\n\n");
+ 
+-#if defined _WIN32 && SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
++#if SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
+     printf ("%10llu:", last_update);        /* argument 2 has type 'time_t {aka long long int} */
+ #else
+     printf ("%10lu:", last_update);
+--- a/src/rrd_tool.c
++++ b/src/rrd_tool.c
+@@ -717,7 +717,7 @@
+     else if (strcmp("resize", argv[1]) == 0)
+         rrd_resize(argc - 1, &argv[1]);
+     else if (strcmp("last", argv[1]) == 0)
+-#if defined _WIN32 && SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
++#if SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
+         printf("%lld\n", rrd_last(argc - 1, &argv[1]));
+ #else
+         printf("%ld\n", rrd_last(argc - 1, &argv[1]));
+@@ -725,7 +725,7 @@
+     else if (strcmp("lastupdate", argv[1]) == 0) {
+         rrd_lastupdate(argc - 1, &argv[1]);
+     } else if (strcmp("first", argv[1]) == 0)
+-#if defined _WIN32 && SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
++#if SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
+         printf("%lld\n", rrd_first(argc - 1, &argv[1]));
+ #else
+         printf("%ld\n", rrd_first(argc - 1, &argv[1]));
+@@ -747,7 +747,7 @@
+                 printf("%20s", ds_namv[i]);
+             printf("\n\n");
+             for (ti = start + step; ti <= end; ti += step) {
+-#if defined _WIN32 && SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
++#if SIZEOF_TIME_T == 8    /* in case of __MINGW64__, _WIN64 and _MSC_VER >= 1400 (ifndef _USE_32BIT_TIME_T) */
+                 printf("%10llu:", ti);
+ #else
+                 printf("%10lu:", ti);
diff -Nru rrdtool-1.7.2/debian/patches/series rrdtool-1.7.2/debian/patches/series
--- rrdtool-1.7.2/debian/patches/series	2020-12-28 16:40:00.000000000 +0100
+++ rrdtool-1.7.2/debian/patches/series	2024-10-18 20:10:09.000000000 +0200
@@ -1,3 +1,4 @@
 no-rpath-for-ruby
 breaks-long-man-lines
 python3_example
+address-t64.patch

Reply via email to