rrdtools: Update to 1.11.0

Message ID 20260808155722.3360924-1-matthias.fischer@ipfire.org
State Staged
Commit aeafe92d608aa5dfa71620d9243c2433ca6f9e79
Headers
Series rrdtools: Update to 1.11.0 |

Commit Message

Matthias Fischer 8 Aug 2026, 3:57 p.m. UTC
For details see:
https://github.com/oetiker/rrdtool-1.x/releases/tag/v1.11.0

"Bugfixes

    hardening: size the rrd_diff scratch buffer for its largest input @somethingwithproof

    rrdtool dump now uses a numeric UTC offset (%z, e.g. +0900) instead
    of the locale timezone name (%Z) in XML comments. Locale timezone names
    can be encoded in a non-UTF-8 encoding (e.g. CJK locales), which breaks
    the XML declaration and causes rrdtool restore to fail with
    "Input is not proper UTF-8". The numeric offset is always ASCII.
    Note: existing dump files already containing locale timezone names remain
    valid XML as long as their encoding matches; newly created dumps will
    always contain pure ASCII in these comments. Issue #1173
    reported by @k79e, fix by @oetiker.

    Fix segfault when --x-grid is given without a trailing date-format
    field. The %n conversion in sscanf() is not counted in its return
    value, so stroff remained uninitialized when the input ended before
    the final : separator; the subsequent stroff != 0 guard read
    garbage and could branch into strdup() with a bogus offset. Fixed by
    initialising stroff = 0 so a partial match safely falls through to
    the existing "invalid x-grid format" error path. Issue #1291
    reported by @anvilvapre, fixed by @oetiker

    libdbi /derive now returns 0 instead of NaN when the underlying
    counter is constant (zero delta). Previously the strict d_value > 0
    guard skipped zero deltas the same way it skips negative ones (counter
    resets). Changed to d_value >= 0. Issue #550 reported by
    @bitionaire, fix by @oetiker.

    Fix a 1-byte heap buffer overflow in checkUnusedValues() that
    triggered *** buffer overflow detected *** SIGABRT under glibc
    fortified strcat() when reporting unused graph arguments. The
    function under-allocated by one byte and silently relied on that
    overflow to make its trailing : strip land on the right index.
    Refactored to size buffers correctly and prepend the separator
    rather than build-then-strip, so the two no longer have to agree.
    Reported and original fix attempt in PR #1329 by @ppisar,
    refactored fix by @oetiker

    Pad the Perl $RRDs::VERSION / $RRDp::VERSION numeric encoding so
    two-digit minor releases compare monotonically. The numeric version
    now uses three-digit zero-padded minor and patch fields, e.g.
    1.10.3 -> 1.010003 (previously 1.10003, which was numerically less
    than 1.9.0 -> 1.9000). The same encoding is now used by NUMVERS
    in configure.ac and win32/rrd_config.h. Note: consumers that
    previously tested $RRDs::VERSION >= 1.2 need to update their
    checks (use >= 1.002 or compare against the X.Y.Z string via the
    version pragma) -- this is unavoidable given the existing format
    could not represent two-digit minors monotonically. Issue #1330
    reported by @ppisar, fixed by @oetiker

    Y-axis labels keep enough fractional precision when the gridstep is
    fractional after SI scaling (e.g. values around 10G+), avoiding
    duplicate labels on tall graphs. Issue #1326 reported by @muusik,
    fixed by @oetiker

    Detect nroff support for -Wbreak at configure time, so building the
    text documentation works on systems with BSD-derived nroff (e.g.
    macOS /usr/bin/nroff). Issue #1323 reported by @gigaimage, fixed by
    @oetiker

    Fix SIGFPE divide-by-zero crash in rrdtool dump when processing
    fuzz-crafted RRD files that contain an RRA with pdp_cnt or
    pdp_step equal to zero. The modulo operation at the heart of the
    timestamp calculation is now guarded: such files are rejected with
    a descriptive error message instead of crashing.
    Issue #783 reported by @rwhitworth, fix by @oetiker.

Features

    rrdgraph: new --vertical-label-angle and --right-axis-label-angle options
    to rotate the two y axis legends independently at run time. The compile
    time RRDGRAPH_YLEGEND_ANGLE remains the default for both, so existing
    graphs are unchanged. Use --right-axis-label-angle 270 to have the right
    hand legend read from the top down. Suggested by @blappm in #1377,
    implemented by @oetiker

    rrdgraph: new --right-axis-range min:max option to suppress right axis
    labels outside the given range, so a bounded right axis is no longer
    labelled with values it cannot reach when the left axis range does not
    line up. Either end may be left empty for unbounded. Suggested by @blappm
    in #1377, implemented by @oetiker"

Signed-off-by: Matthias Fischer <matthias.fischer@ipfire.org>
---
 config/rootfiles/common/rrdtool | 202 ++++++++++++++++----------------
 lfs/rrdtool                     |   4 +-
 2 files changed, 103 insertions(+), 103 deletions(-)
  

Patch

diff --git a/config/rootfiles/common/rrdtool b/config/rootfiles/common/rrdtool
index 628e3a777..140fb9899 100644
--- a/config/rootfiles/common/rrdtool
+++ b/config/rootfiles/common/rrdtool
@@ -33,107 +33,107 @@  usr/lib/perl5/site_perl/5.42.2/xxxMACHINExxx-linux-thread-multi/auto/RRDs/RRDs.s
 #usr/lib/python3/site-packages/rrdtool-0.1.10.dist-info/licenses/COPYING
 #usr/lib/python3/site-packages/rrdtool-0.1.10.dist-info/top_level.txt
 #usr/lib/python3/site-packages/rrdtool.cpython-310-xxxMACHINExxx-linux-gnu.so
-#usr/share/doc/rrdtool-1.10.3
-#usr/share/doc/rrdtool-1.10.3/html
-#usr/share/doc/rrdtool-1.10.3/html/RRDp.html
-#usr/share/doc/rrdtool-1.10.3/html/RRDs.html
-#usr/share/doc/rrdtool-1.10.3/html/bin_dec_hex.html
-#usr/share/doc/rrdtool-1.10.3/html/cdeftutorial.html
-#usr/share/doc/rrdtool-1.10.3/html/index.html
-#usr/share/doc/rrdtool-1.10.3/html/librrd.html
-#usr/share/doc/rrdtool-1.10.3/html/rpntutorial.html
-#usr/share/doc/rrdtool-1.10.3/html/rrd-beginners.html
-#usr/share/doc/rrdtool-1.10.3/html/rrd_pdpcalc.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdbuild.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdcached.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdcgi.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdcreate.html
-#usr/share/doc/rrdtool-1.10.3/html/rrddump.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdfetch.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdfirst.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdflushcached.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdgraph.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdgraph_data.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdgraph_examples.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdgraph_graph.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdgraph_rpn.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdinfo.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdlast.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdlastupdate.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdlist.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdpython.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdresize.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdrestore.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdthreads.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdtool.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdtune.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdtutorial.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdupdate.html
-#usr/share/doc/rrdtool-1.10.3/html/rrdxport.html
-#usr/share/doc/rrdtool-1.10.3/txt
-#usr/share/doc/rrdtool-1.10.3/txt/bin_dec_hex.pod
-#usr/share/doc/rrdtool-1.10.3/txt/bin_dec_hex.txt
-#usr/share/doc/rrdtool-1.10.3/txt/cdeftutorial.pod
-#usr/share/doc/rrdtool-1.10.3/txt/cdeftutorial.txt
-#usr/share/doc/rrdtool-1.10.3/txt/librrd.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rpntutorial.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rpntutorial.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrd-beginners.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrd-beginners.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrd_pdpcalc.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrd_pdpcalc.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdbuild.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdbuild.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdcached.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdcached.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdcgi.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdcgi.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdcreate.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdcreate.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrddump.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrddump.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdfetch.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdfetch.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdfirst.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdfirst.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdflushcached.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdflushcached.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_data.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_data.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_examples.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_examples.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_graph.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_graph.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_rpn.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdgraph_rpn.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdinfo.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdinfo.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdlast.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdlast.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdlastupdate.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdlastupdate.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdlist.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdlist.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdpython.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdpython.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdresize.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdresize.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdrestore.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdrestore.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdthreads.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdthreads.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdtool.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdtool.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdtune.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdtune.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdtutorial.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdtutorial.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdupdate.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdupdate.txt
-#usr/share/doc/rrdtool-1.10.3/txt/rrdxport.pod
-#usr/share/doc/rrdtool-1.10.3/txt/rrdxport.txt
+#usr/share/doc/rrdtool-1.11.0
+#usr/share/doc/rrdtool-1.11.0/html
+#usr/share/doc/rrdtool-1.11.0/html/RRDp.html
+#usr/share/doc/rrdtool-1.11.0/html/RRDs.html
+#usr/share/doc/rrdtool-1.11.0/html/bin_dec_hex.html
+#usr/share/doc/rrdtool-1.11.0/html/cdeftutorial.html
+#usr/share/doc/rrdtool-1.11.0/html/index.html
+#usr/share/doc/rrdtool-1.11.0/html/librrd.html
+#usr/share/doc/rrdtool-1.11.0/html/rpntutorial.html
+#usr/share/doc/rrdtool-1.11.0/html/rrd-beginners.html
+#usr/share/doc/rrdtool-1.11.0/html/rrd_pdpcalc.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdbuild.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdcached.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdcgi.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdcreate.html
+#usr/share/doc/rrdtool-1.11.0/html/rrddump.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdfetch.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdfirst.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdflushcached.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdgraph.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdgraph_data.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdgraph_examples.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdgraph_graph.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdgraph_rpn.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdinfo.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdlast.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdlastupdate.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdlist.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdpython.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdresize.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdrestore.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdthreads.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdtool.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdtune.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdtutorial.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdupdate.html
+#usr/share/doc/rrdtool-1.11.0/html/rrdxport.html
+#usr/share/doc/rrdtool-1.11.0/txt
+#usr/share/doc/rrdtool-1.11.0/txt/bin_dec_hex.pod
+#usr/share/doc/rrdtool-1.11.0/txt/bin_dec_hex.txt
+#usr/share/doc/rrdtool-1.11.0/txt/cdeftutorial.pod
+#usr/share/doc/rrdtool-1.11.0/txt/cdeftutorial.txt
+#usr/share/doc/rrdtool-1.11.0/txt/librrd.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rpntutorial.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rpntutorial.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrd-beginners.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrd-beginners.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrd_pdpcalc.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrd_pdpcalc.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdbuild.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdbuild.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdcached.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdcached.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdcgi.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdcgi.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdcreate.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdcreate.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrddump.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrddump.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdfetch.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdfetch.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdfirst.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdfirst.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdflushcached.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdflushcached.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_data.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_data.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_examples.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_examples.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_graph.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_graph.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_rpn.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdgraph_rpn.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdinfo.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdinfo.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdlast.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdlast.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdlastupdate.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdlastupdate.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdlist.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdlist.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdpython.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdpython.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdresize.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdresize.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdrestore.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdrestore.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdthreads.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdthreads.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdtool.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdtool.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdtune.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdtune.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdtutorial.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdtutorial.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdupdate.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdupdate.txt
+#usr/share/doc/rrdtool-1.11.0/txt/rrdxport.pod
+#usr/share/doc/rrdtool-1.11.0/txt/rrdxport.txt
 #usr/share/locale/fr/LC_MESSAGES/rrdtool.mo
 #usr/share/locale/hu/LC_MESSAGES/rrdtool.mo
 #usr/share/locale/ka/LC_MESSAGES/rrdtool.mo
diff --git a/lfs/rrdtool b/lfs/rrdtool
index c9c70c0cc..27db7b00b 100644
--- a/lfs/rrdtool
+++ b/lfs/rrdtool
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 1.10.3
+VER        = 1.11.0
 
 THISAPP    = rrdtool-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 5ceacdeb3c653db27516f65ea1748bc1e50c1b4a44ec2bdfe4375e34807654eff29d0c14e350a2b95b1b59da61e159d5cbadfb5bedcd44ab0ce79ee250e41733
+$(DL_FILE)_BLAKE2 = 3c02df300dcd096aeccecf24b8331df5227d1ec5c24dfe3382357e8c1dc5ec66620e276b8834894c17200063788a6825c37936a716f7220bdc9169965519c964
 
 install : $(TARGET)