Wolfgang Stöggl [Sun, 19 May 2019 18:28:59 +0000 (20:28 +0200)]
Define _POSIX_THREAD_SAFE_FUNCTIONS (MinGW-w64)
- time.h of MinGW-w64 requires _POSIX_THREAD_SAFE_FUNCTIONS to be
defined in order to provide ctime_r, gmtime_r or localtime_r.
- In newer versions of winpthreads (e.g. git-7.0.0.5447.a2d94c81),
_POSIX_THREAD_SAFE_FUNCTIONS is not defined any more in
pthread_unistd.h. Hence define it here directly.
- This is a follow-up to commit:
https://github.com/oetiker/rrdtool-1.x/commit/603de9a
Wolfgang Stöggl [Tue, 30 Apr 2019 14:23:32 +0000 (16:23 +0200)]
Fix compiler warning: label defined but not used
- The label 'no_lseek_necessary' is only relevant,
if HAVE_POSIX_FALLOCATE is defined.
- Fixes the following compiler warning on systems, where
HAVE_POSIX_FALLOCATE is not defined:
rrd_open.c:387:3: warning: label 'no_lseek_necessary' defined but not
used [-Wunused-label]
Wolfgang Stöggl [Sat, 13 Apr 2019 20:34:48 +0000 (22:34 +0200)]
Avoid MinGW-w64 strndup compiler warning
- Fixes the following MinGW-w64 GCC compiler warning:
rrd_create.c:287:14: warning: declaration of 'strndup' shadows a
built-in function [-Wshadow] static char *strndup(
- MinGW-w64: strndup is not detected by configure, therefore
HAVE_STRNDUP is not defined.
Use strndup_() here instead of strndup() to avoid any collisions.
Wolfgang Stöggl [Wed, 24 Apr 2019 13:29:54 +0000 (15:29 +0200)]
Consider flags for CreateFileA(), Windows
- Implement dwDesiredAccess and dwCreationDisposition based on
the flags O_RDONLY, O_RDWR, O_CREAT | O_TRUNC and O_EXCL
- This updates how a file handle is created using CreateFileA()
under Windows, considering the flags. Use e.g.
DesiredAccess = GENERIC_READ | GENERIC_WRITE
dwCreationDisposition = OPEN_EXISTING
- CreateFileA(): Check for INVALID_HANDLE_VALUE and add output of error
messages using GetLastError() and FormatMessage()
- The error message provides correct output now, which error occurs.
e.g.: rrdtool.exe info not_existing_file.rrd
ERROR: opening 'not_existing_file.rrd':
The system cannot find the file specified.
Previously, the following error occurred later in the code:
ERROR: short read while reading header rrd->stat_head
And also empty files were left behind:
e.g. rrdtool.exe resize not_existing_file.rrd 0 GROW 5200
- Use <CharacterSet>MultiByte</CharacterSet> consistently
in .vcxproj files. There were 4 inadvertent occurrences of
<CharacterSet>Unicode</CharacterSet> in librrd-4.vcxproj.
Using MultiByte or NotSet instead of Unicode is required for
printing "(LPTSTR) lpMsgBuf" from FormatMessage() using %s, to avoid
unnecessary wide characters.
- This commit is an update to a9671a7
Wolfgang Stöggl [Wed, 24 Apr 2019 12:42:01 +0000 (14:42 +0200)]
Add missing #define and indent rrd_open.c
- Add missing "#define __rrd_read(dst, dst_t, cnt) { \" after
#elif defined(HAVE_LIBRADOS) && !defined(HAVE_MMAP)
- This fixes:
indent: src/rrd_open.c:77: Error:Unmatched 'else'
indent: src/rrd_open.c:79: Error:Stmt nesting error.
and errors in case of defined(HAVE_LIBRADOS) && !defined(HAVE_MMAP)
- indent src/rrd_open.c using GNU indent 2.2.12
- Replace all remaining tabs by four spaces
Wolfgang Stöggl [Fri, 12 Apr 2019 14:59:36 +0000 (16:59 +0200)]
Fix GCC string truncation warnings
- Fixes the following GCC compiler warnings:
rrd_fetch.c:338:9: warning: 'strncpy' output may be truncated copying
19 bytes from a string of length 19 [-Wstringop-truncation]
strncpy((*ds_namv)[i], rrd.ds_def[i].ds_nam, DS_NAM_SIZE - 1);
rrd_tune.c:284:13: warning: 'strncpy' output may be truncated copying
19 bytes from a string of length 19 [-Wstringop-truncation]
strncpy(rrd.ds_def[ds].ds_nam, ds_new, DS_NAM_SIZE - 1);
rrd_graph.c:2282:17: warning: 'strncpy' output may be truncated
copying 204 bytes from a string of length 204
[-Wstringop-truncation] strncpy(im->gdes[i].legend, saved_legend,
sizeof im->gdes[0].legend - 1);
Wolfgang Stöggl [Wed, 10 Apr 2019 11:20:59 +0000 (13:20 +0200)]
Avoid pragma comment warning under MinGW
- Removes the following MinGW compiler warning:
rrd_client.c:32: warning: ignoring #pragma comment
[-Wunknown-pragmas] #pragma comment(lib, "ws2_32.lib")
- This #pragma comment is only relevant for MSVC
Wolfgang Stöggl [Tue, 9 Apr 2019 11:35:53 +0000 (13:35 +0200)]
Cast lua_tostring return value to char *
- Fixes the following gcc compiler warning:
rrdlua.c:69:21: warning: assignment discards ‘const’ qualifier from
pointer target type [-Wdiscarded-qualifiers]
if (!(argv[i] = lua_tostring (L, i))) {
Wolfgang Stöggl [Thu, 4 Apr 2019 13:35:18 +0000 (15:35 +0200)]
Cast unsigned long values to long for labs()
- Fixes the following clang compiler warning:
rrd_fetch.c:391:29: warning: taking the absolute value of unsigned
type 'unsigned long' has no effect [-Wabsolute-value]
tmp_step_diff = labs(*step - (rrd.stat_head->pdp_step
Wolfgang Stöggl [Wed, 3 Apr 2019 16:13:33 +0000 (18:13 +0200)]
Use fabs() for floating point, labs() for long
- Fixes the following clang compiler warnings:
rrd_rpncalc.c:999:11: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
if (abs(percentile) > 100) {
rrd_rpncalc.c:1103:24: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
int idx = round(abs(idxf));
rrd_hw.c:519:36: warning: absolute value function 'abs' given an
argument of type 'long' but has parameter of type 'int' which may
cause truncation of value [-Wabsolute-value]
new_val = ((unsigned long) abs(val)) % mod;
Wolfgang Stöggl [Thu, 28 Mar 2019 14:10:05 +0000 (15:10 +0100)]
Update strftime.c and use it under MinGW
- Add %F and %T to strftime.c
These format codes are commonly used, part of C99 and used in the
test vformatter1
- rrd_graph.c: Include local strftime.h and use strftime_ from
strftime.c in case of MinGW or MinGW-w64 builds.
- This allows test vformatter1 to pass under MSYS2 (MinGW-w64)
Wolfgang Stöggl [Tue, 26 Mar 2019 16:04:53 +0000 (17:04 +0100)]
Update test list1
- Avoid double slashes at beginning of filename paths.
Leave "/" in CACHED_DIR (only sed ^$BASEDIR), then it is not
necessary to add "/" in function do_list_tests() several times
again and "$1" can be used instead of "/$1" there.
- This allows passing of test list1 under MSYS2 (Windows), where paths
starting (unnecessarily) with // are not working. Exit test list1
under Windows (MSYS2) before "Starting rrdcached..."
Wolfgang Stöggl [Mon, 25 Mar 2019 08:58:31 +0000 (09:58 +0100)]
Update further URLs from http to https
- Command used to replace http with https:
git grep -l 'http://tobi.oetiker.ch' -- './*' ':(exclude)CHANGES' | \
xargs sed -i 's|http://tobi.oetiker.ch|https://tobi.oetiker.ch|g'
- This is an addition to commit: 267369f
Wolfgang Stöggl [Sat, 23 Mar 2019 14:12:16 +0000 (15:12 +0100)]
Let two more tests pass under MSYS2 (Windows)
- Updates the following tests:
create-with-source-4, xport1
- Avoid Windows drive letter in the path of DEF:vname=rrdfile
under MSYS or MSYS2. Use only the filename of the rrd and not
the full path if environmental variable MSYSTEM is set.
Óscar Nájera [Mon, 18 Mar 2019 15:22:31 +0000 (16:22 +0100)]
Fix bounds in rrd_xport
rrdxport needs to provide enough data points in its output for the
receiving client to be able to reproduce the graphs generated by rrdgraph.
- The start time pointer needs to be at the start of the interval that
contain the query start time. For the function that retrieves the data.
On output the returned start timestamp is > than query timestamp.
- SV export was missing the end boundary
Wolfgang Stöggl [Mon, 11 Mar 2019 00:03:34 +0000 (01:03 +0100)]
Add typenames to .indent.pro, add to EXTRA_DIST
- Several typenames have been added in the meantime using typedef.
Add them to .indent.pro
- Add .indent.pro file to EXTRA_DIST, so that it is available in the
tarball
- re-indent src/rrd_xport.c with updated .indent.pro
Wolfgang Stöggl [Mon, 18 Feb 2019 15:35:52 +0000 (16:35 +0100)]
Update etc/Makefile.am
- Add rrdcached-init-lsb to EXTRA_DIST
- Trim trailing space after backslash. Fixes:
etc/Makefile.am:1: warning: whitespace following trailing backslash
Wolfgang Stöggl [Mon, 18 Feb 2019 10:28:09 +0000 (11:28 +0100)]
Update snprintf.m4, add _HW_FUNC_XPRINTF_REPLACE
- Add _HW_FUNC_XPRINTF_REPLACE again to snprintf.m4, in a modified way.
Use AC_LIBOBJ([rrd_snprintf]) instead of original AC_LIBOBJ([snprintf])
- Fixes the following configure messages under MinGW-w64:
./configure: line 14694: _HW_FUNC_XPRINTF_REPLACE: command not found
./configure: line 14752: _HW_FUNC_XPRINTF_REPLACE: command not found
Wolfgang Stöggl [Sun, 10 Feb 2019 01:46:21 +0000 (02:46 +0100)]
Update FSF address and fix UTF8
- Update FSF address in COPYRIGHT
old: 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
new: 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Update LICENSE file according to the current version from:
https://www.gnu.org/licenses/gpl-2.0.txt
- Update bindings/python/COPYING according to the current version from:
https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
- Change encoding of CONTRIBUTORS from ISO 8859-1 to UTF-8
- Fixes rpmlint warnings and errors:
W: file-not-utf8 CONTRIBUTORS
E: incorrect-fsf-address COPYRIGHT
E: incorrect-fsf-address LICENSE
E: incorrect-fsf-address bindings/python/COPYING
Wolfgang Stöggl [Fri, 25 Jan 2019 10:08:18 +0000 (11:08 +0100)]
Fix rc compiler redefinition warnings (nmake)
- Surround code in win32/rrd_config.h that causes warnings by rc with
#ifndef RC_INVOKED and #endif. Remark: _MSC_VER is unknown to rc
- Fixes the following warnings for .rc files, e.g.:
rc /nologo /I./src /fo./win32/rrdtool.res ./win32\rrdtool.rc
./win32\rrd_config.h(130) : warning RC4005: 'isinf' : redefinition
./win32\rrd_config.h(131) : warning RC4005: 'isnan' : redefinition
- This concerns: librrd-4.rc, rrdtool.rc, rrdupdate.rc, rrdcgi.rc,
when using the resource compiler (rc) via nmake under Windows
Wolfgang Stöggl [Thu, 24 Jan 2019 16:44:01 +0000 (17:44 +0100)]
Initialize local variable junk
- Fixes the following compiler warnings (MSVC):
rrd_modify.c(439) : warning C4700: uninitialized local variable
'junk' used
rrd_modify.c(1027) : warning C4700: uninitialized local variable
'junk' used
Wolfgang Stöggl [Sun, 20 Jan 2019 21:11:34 +0000 (22:11 +0100)]
Include winsdkver.h for _WIN32_MAXVER
- _WIN32_MAXVER is defined in winsdkver.h
The include is required in case of MinGW-w64 builds
- Fixes rrd_open.c:11:5: warning:
"_WIN32_MAXVER" is not defined, evaluates to 0 [-Wundef]
#if _WIN32_MAXVER >= 0x0602 /* _WIN32_WINNT_WIN8 */
Wolfgang Stöggl [Fri, 18 Jan 2019 17:05:47 +0000 (18:05 +0100)]
Fix: Cannot rename temporary file to final file
- Fixes the following failing tests under Windows:
modify1, modify2, modify3, modify4, modify5
- Use CreateFileA() with FILE_SHARE_DELETE in rrd_open.c,
so that the outfilename can later be replaced by tmpfilename using
write_rrd() in rrd_create.c
Wolfgang Stöggl [Tue, 15 Jan 2019 09:44:39 +0000 (10:44 +0100)]
Define realpath for MinGW builds
- Define realpath the same way as in win32/rrd_config.h
- Fixes the following compiler warnings in rrd_client.c:
115:11: warning: implicit declaration of function 'realpath';
[-Wimplicit-function-declaration] ret = realpath(path, NULL);
115:11: warning: nested extern declaration of 'realpath'
[-Wnested-externs]
115:9: warning: assignment to 'char *' from 'int' makes pointer from
integer without a cast [-Wint-conversion] ret = realpath(path, NULL);
132:22: warning: assignment to 'char *' from 'int' makes pointer from
integer without a cast [-Wint-conversion]
dir_path = realpath(dir, NULL);
Wolfgang Stöggl [Wed, 16 Jan 2019 08:17:43 +0000 (09:17 +0100)]
Remove LINKTYPE from perl-piped/Makefile.PL
- Remove line:
'linkext' => {LINKTYPE => ''},
Since version 5.00 of MakeMaker such a line can be deleted safely.
MakeMaker recognizes when there's nothing to be linked.
See: https://perldoc.perl.org/ExtUtils/MakeMaker.html
- Fixes Warning:
LINKTYPE set to '', no longer necessary
Wolfgang Stöggl [Thu, 10 Jan 2019 16:06:21 +0000 (17:06 +0100)]
Use g_list_free_full instead of g_list_foreach
- Fixes the following compiler warnings in rrd_create.c:
236:34: warning: cast between incompatible function types from
'void (*)(void *)' to 'void (*)(void *, void *)'
[-Wcast-function-type] g_list_foreach( sources, (GFunc)free, NULL );
1022:44: warning: cast between incompatible function types from
'void (*)(rrd_file_t *)' {aka 'void (*)(struct rrd_file_t *)'} to
'void (*)(void *, void *)' [-Wcast-function-type]
g_list_foreach(sources_rrd_files, (GFunc) cleanup_source_file, NULL);
Wolfgang Stöggl [Thu, 10 Jan 2019 13:39:37 +0000 (14:39 +0100)]
Remove function substring from rrd_graph.c
- The function substring is not used any more. This was a leftover
from https://github.com/oetiker/rrdtool-1.x/commit/cd4a728
- Fixes rrd_graph.c:6159:7: warning:
no previous prototype for 'substring' [-Wmissing-prototypes]
*** WARNING: line containing nothing but whitespace in paragraph at line 46 in file PDP_calculation_explanation.pod
*** ERROR: Apparent command =head1 not preceded by blank line at line 176 in file PDP_calculation_explanation.pod
*** WARNING: node 'https://gallery.technet.microsoft.com/scriptcenter/Sample-Script-to-Generate-59c80d4c =head1 AUTHOR' contains non-escaped | or / at line 175 in file PDP_calculation_explanation.pod
*** ERROR: unresolved internal link 'https://gallery.technet.microsoft.com/scriptcenter/Sample-Script-to-Generate-59c80d4c =head1 AUTHOR' at line 175 in file PDP_calculation_explanation.pod
PDP_calculation_explanation.pod has 2 pod syntax errors.
Wolfgang Stöggl [Tue, 18 Dec 2018 16:23:06 +0000 (17:23 +0100)]
Add -lws2_32 for MinGW builds by configure
- Add -lws2_32 to LIBS in case of MinGW or MinGW-w64 builds.
This makes building Windows executables more straightforward using
configure.
- Update README-MinGW-w64, remove LIBS='-lws2_32' from configure
instructions.
Wolfgang Stöggl [Tue, 18 Dec 2018 10:57:22 +0000 (11:57 +0100)]
Check for gobject-2.0 in configure
- Since pango version 1.43.0, -lgobject-2.0 is not added automatically
any more during configure. Remark: pango.pc uses Requires.private
now for gobject-2.0 instead of formerly Requires: gobject-2.0
- Check for gobject-2.0 in configure to make sure, that -lgobject-2.0
is added to ALL_LIBS
- Fixes the following linker errors:
.libs/librrd_la-rrd_graph.o: In function `im_free':
src/rrd_graph.c:465: undefined reference to `g_object_unref'
.libs/librrd_la-rrd_graph.o: In function `rrd_graph_init':
src/rrd_graph.c:4840: undefined reference to `g_object_unref'