diff --git a/databases/rrdtool/Makefile b/databases/rrdtool/Makefile index 50b268e6125f..15dab82a4e96 100644 --- a/databases/rrdtool/Makefile +++ b/databases/rrdtool/Makefile @@ -1,103 +1,119 @@ PORTNAME= rrdtool -DISTVERSION= 1.9.0 -PORTREVISION= 1 +DISTVERSION= 1.10.3 CATEGORIES= databases graphics MASTER_SITES= https://github.com/oetiker/rrdtool-1.x/releases/download/v${DISTVERSION}/ MAINTAINER= eduardo@FreeBSD.org COMMENT= Round Robin Database Tools WWW= https://oss.oetiker.ch/rrdtool/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE -USES= cpe gmake gnome libtool pkgconfig shebangfix +TEST_DEPENDS= bash:shells/bash \ + gseq:sysutils/coreutils + +USES= cpe gmake gnome libtool pkgconfig python:test shebangfix CPE_VENDOR= rrdtool_project USE_GNOME= glib20 libxml2 USE_LDCONFIG= yes USE_RC_SUBR= rrdcached -SHEBANG_FILES= examples/rrdcached/rrdcached-size.pl examples/stripes.py +SHEBANG_FILES= examples/rrdcached/rrdcached-size.pl examples/stripes.py \ + tests/* GNU_CONFIGURE= yes CONFIGURE_ARGS= --disable-tcl CONFIGURE_ENV= RRDDOCDIR=${DOCSDIR:Q} INSTALL_TARGET= install-strip +TEST_TARGET= check # Some symbols in the linker version script librrd.sym are undefined when the # CACHE option is off. Suppress errors with lld >= 17 due to these undefined # symbols. LDFLAGS+= -Wl,--undefined-version CONFLICTS= rrdtool12 PORTDOCS= * PORTEXAMPLES= cgi-demo.cgi OPTIONS_DEFINE= DEJAVU DOCS EXAMPLES GRAPH LOCKTIMEOUT MMAP NLS PERL \ PYTHON RUBY OPTIONS_DEFAULT= DEJAVU GRAPH MMAP PERL OPTIONS_SUB= yes DEJAVU_DESC= Use DejaVu fonts (requires X11) GRAPH_DESC= Enable the rrdtool graph command (needs cairo) LOCKTIMEOUT_DESC= Enable the patch for lock timeout MMAP_DESC= Use mmap in rrd_update PERL_DESC= Build PERL module PYTHON_DESC= Build PYTHON bindings RUBY_DESC= Build RUBY bindings DEJAVU_RUN_DEPENDS= dejavu>0:x11-fonts/dejavu DOCS_USES= groff DOCS_CONFIGURE_ENABLE= docs EXAMPLES_CONFIGURE_ENABLE= examples GRAPH_LIB_DEPENDS= libharfbuzz.so:print/harfbuzz \ libpng16.so:graphics/png GRAPH_USE= GNOME=cairo,pango GRAPH_CONFIGURE_OFF= --disable-rrd_graph \ --disable-rrdcgi LOCKTIMEOUT_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-locktimeout MMAP_CONFIGURE_ENABLE= mmap NLS_USES= gettext localbase NLS_USE= GNOME=intltool NLS_CONFIGURE_ENABLE= nls PERL_USES= perl5 PERL_CONFIGURE_ON= --enable-perl \ --enable-perl-site-install PERL_CONFIGURE_OFF= --disable-perl PERL_MAKE_ARGS= PERL_MAKE_OPTIONS='PREFIX="${PREFIX}" INSTALLPRIVLIB="${PREFIX}/lib" INSTALLARCHLIB="${PREFIX}/lib"' PERL_PORTEXAMPLES= 4charts.pl bigtops.pl minmax.pl perftest.pl \ piped-demo.pl rrdcached/rrdcached-size.pl \ rrdcached/RRDCached.pm shared-demo.pl \ stripes.pl -PYTHON_BUILD_DEPENDS= ${PY_SETUPTOOLS} +PYTHON_BUILD_DEPENDS= ${PY_SETUPTOOLS} \ + ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} PYTHON_USES= python PYTHON_USE= PYTHON=flavors,optsuffix PYTHON_CONFIGURE_ENABLE= python PYTHON_PORTEXAMPLES= stripes.py RUBY_USES= ruby RUBY_CONFIGURE_ENABLE= ruby post-extract: @${REINPLACE_CMD} -E 's|(^rrdtool_LDADD = librrd.la)|\1 $$\(ALL_LIBS\)|' \ ${WRKSRC}/src/Makefile.in +post-patch: + @${REINPLACE_CMD} -e 's|python3|${PYTHON_CMD}|g' \ + ${WRKSRC}/tests/functions \ + ${WRKSRC}/tests/xport3 + post-install-EXAMPLES-on: .if !defined(BATCH) @${ECHO_MSG} "" @${ECHO_MSG} "############################################################################" @${ECHO_MSG} "# See ${EXAMPLESDIR} for some demonstration code #" @${ECHO_MSG} "############################################################################" .endif post-install-PERL-on: ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/RRDs/RRDs.so post-install-PERL-off: ${RM} ${STAGEDIR}${EXAMPLESDIR}/*.pl ${RM} -r ${STAGEDIR}${EXAMPLESDIR}/rrdcached post-install-PYTHON-on: ${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/rrdtool*.so post-install-PYTHON-off: ${RM} ${STAGEDIR}${EXAMPLESDIR}/stripes.py post-install-RUBY-on: ${STRIP_CMD} ${STAGEDIR}${RUBY_SITEARCHLIBDIR}/RRD.so +pre-test: + @${MKDIR} ${WRKDIR}/.bin + @${LN} -fs ${LOCALBASE}/bin/gseq ${WRKDIR}/.bin/seq + @${MKDIR} ${WRKSRC}/tests/cached + .include diff --git a/databases/rrdtool/distinfo b/databases/rrdtool/distinfo index 96427b4ecb4f..e365060e6048 100644 --- a/databases/rrdtool/distinfo +++ b/databases/rrdtool/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1722247566 -SHA256 (rrdtool-1.9.0.tar.gz) = 5e65385e51f4a7c4b42aa09566396c20e7e1a0a30c272d569ed029a81656e56b -SIZE (rrdtool-1.9.0.tar.gz) = 2972593 +TIMESTAMP = 1780857193 +SHA256 (rrdtool-1.10.3.tar.gz) = 843b7caa2a80a815d44ac5c65daa42920cb64586fe804e36d0bc0783554e0635 +SIZE (rrdtool-1.10.3.tar.gz) = 2996378 diff --git a/databases/rrdtool/files/extra-patch-locktimeout b/databases/rrdtool/files/extra-patch-locktimeout index 9d6d4607a7fb..6cb8cac225d8 100644 --- a/databases/rrdtool/files/extra-patch-locktimeout +++ b/databases/rrdtool/files/extra-patch-locktimeout @@ -1,80 +1,81 @@ ---- src/rrd_open.c.orig 2019-05-28 01:48:09.000000000 +0700 -+++ src/rrd_open.c 2022-07-11 00:05:29.242533000 +0700 -@@ -32,6 +32,16 @@ +--- src/rrd_open.c.orig 2026-05-19 19:35:26 UTC ++++ src/rrd_open.c +@@ -33,6 +33,16 @@ #include "rrd_rados.h" #endif +#include +/* + * Signal handler for SIGALRM. + */ +static void +timeout(int sig) +{ + (void)sig; +} + #define MEMBLK 8192 #ifdef _WIN32 -@@ -776,8 +786,9 @@ int rrd_rwlock( +@@ -799,8 +809,9 @@ int rrd_rwlock( return 0; } #endif - int rcstat; + int rcstat, waitsec; rrd_simple_file_t *rrd_simple_file; + char *endptr, *pwaitsec; rrd_simple_file = (rrd_simple_file_t *) rrd_file->pvt; #ifdef USE_WINDOWS_LOCK -@@ -786,6 +797,25 @@ int rrd_rwlock( +@@ -809,6 +820,25 @@ int rrd_rwlock( /* Silence unused parameter compiler warning */ (void) writelock; #else + if ((pwaitsec = getenv("RRDTOOL_LOCK_TIMEOUT")) != NULL) { + waitsec = strtol(pwaitsec, &endptr, 0); + if (*endptr == '\0' && waitsec >= 0) { + if (waitsec > 0) { /* Set up a timeout. */ + struct sigaction act; + + act.sa_handler = timeout; + sigemptyset(&act.sa_mask); + act.sa_flags = SA_RESETHAND; /* Note that we do not set SA_RESTART. */ + sigaction(SIGALRM, &act, NULL); + alarm(waitsec); + } + rcstat = flock(rrd_simple_file->fd, writelock ? LOCK_EX : LOCK_SH); + if (waitsec > 0) + alarm(0); + + return (rcstat); + } + } { struct flock lock; - ---- doc/rrdtool.pod.orig 2019-02-04 20:54:28.000000000 +0700 -+++ doc/rrdtool.pod 2022-07-11 00:37:16.486373000 +0700 -@@ -321,6 +321,21 @@ + int op = lock_mode == RRD_LOCK_TRY ? F_SETLK : F_SETLKW; + +--- doc/rrdtool.pod.orig 2026-05-19 19:34:20 UTC ++++ doc/rrdtool.pod +@@ -356,6 +356,21 @@ stress on your disks. L, a caching daemon for RRDtool which may help you lessen the stress on your disks. +=head1 ENVIRONMENT + +=over 8 + +=item RRDTOOL_LOCK_TIMEOUT + +By default, B tries to lock RRD file and fails +if it cannot obtain the lock immediately. +This variable allows to change this behavior and specify +a time interval in seconds to wait for lock if the file is busy. +It will fail if the lock cannot be obtained in time. +Zero value makes it wait for the lock indefinitely. + +=back + =head1 SEE ALSO rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast, rrdxport, diff --git a/databases/rrdtool/files/patch-bindings_Makefile.in b/databases/rrdtool/files/patch-bindings_Makefile.in index a874e91ffa7b..dfd8472e1a37 100644 --- a/databases/rrdtool/files/patch-bindings_Makefile.in +++ b/databases/rrdtool/files/patch-bindings_Makefile.in @@ -1,16 +1,25 @@ ---- bindings/Makefile.in.orig 2022-03-14 14:29:39 UTC +--- bindings/Makefile.in.orig 2026-05-19 19:34:45 UTC +++ bindings/Makefile.in -@@ -727,11 +727,11 @@ all-local: @COMP_PERL@ @COMP_RUBY@ @COMP_PYTHON@ +@@ -728,11 +728,11 @@ install-data-local: install-data-local: $(AM_V_GEN)test -f ${builddir}/perl-piped/Makefile \ && ( cd ${builddir}/perl-piped \ - && $(MAKE) install ) \ + && $(MAKE) pure_install ) \ || true $(AM_V_GEN)test -f ${builddir}/perl-shared/Makefile \ && ( cd ${builddir}/perl-shared \ - && $(MAKE) install ) \ + && $(MAKE) pure_install ) \ || true $(AM_V_GEN)test -f ${builddir}/ruby/Makefile \ && ( cd ${builddir}/ruby \ +@@ -741,7 +741,7 @@ install-data-local: + $(AM_V_GEN)test -f ${builddir}/python/dist/*.whl \ + && ( $(PYTHON) -m pip install --upgrade --no-index --no-deps \ + --no-cache-dir --disable-pip-version-check \ +- --target=$(DESTDIR)$(libdir)/python3/site-packages \ ++ --target=$(DESTDIR)$(pythondir) \ + ${builddir}/python/dist/*.whl ) \ + || true + diff --git a/databases/rrdtool/files/patch-configure b/databases/rrdtool/files/patch-configure index a70b30a69a20..37839b3d9c1e 100644 --- a/databases/rrdtool/files/patch-configure +++ b/databases/rrdtool/files/patch-configure @@ -1,31 +1,31 @@ ---- configure.orig 2022-03-14 14:29:38 UTC +--- configure.orig 2026-05-19 19:34:43 UTC +++ configure -@@ -22491,7 +22491,7 @@ fi - if test "${enable_ruby_site_install+set}" = set; then : +@@ -24003,7 +24003,7 @@ else $as_nop + then : enableval=$enable_ruby_site_install; RUBY_MAKE_OPTIONS= - else + else $as_nop - RUBY_MAKE_OPTIONS="sitedir=$langpref/lib/ruby" + RUBY_MAKE_OPTIONS="PREFIX=$langpref INSTALL_BASE= LIB=$langpref/lib/ruby" fi -@@ -28807,19 +28807,6 @@ $as_echo_n "checking in... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: and out again" >&5 - $as_echo "and out again" >&6; } +@@ -30583,19 +30583,6 @@ printf "%s\n" "and out again" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: and out again" >&5 + printf "%s\n" "and out again" >&6; } -echo $ECHO_N "ordering CD from https://tobi.oetiker.ch/wish $ECHO_C" 1>&6 -sleep 1 -echo $ECHO_N ".$ECHO_C" 1>&6 -sleep 1 -echo $ECHO_N ".$ECHO_C" 1>&6 -sleep 1 -echo $ECHO_N ".$ECHO_C" 1>&6 -sleep 1 -echo $ECHO_N ".$ECHO_C" 1>&6 -sleep 1 --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: just kidding ;-)" >&5 --$as_echo " just kidding ;-)" >&6; } +-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: just kidding ;-)" >&5 +-printf "%s\n" " just kidding ;-)" >&6; } -echo echo "----------------------------------------------------------------" echo "Config is DONE!" echo diff --git a/databases/rrdtool/files/patch-examples_Makefile.in b/databases/rrdtool/files/patch-examples_Makefile.in index e5e0b6a5f497..8f8c1b8255c4 100644 --- a/databases/rrdtool/files/patch-examples_Makefile.in +++ b/databases/rrdtool/files/patch-examples_Makefile.in @@ -1,11 +1,11 @@ ---- examples/Makefile.in.orig 2022-03-14 14:29:40 UTC +--- examples/Makefile.in.orig 2026-05-19 19:34:45 UTC +++ examples/Makefile.in -@@ -431,7 +431,7 @@ top_builddir = @top_builddir@ +@@ -433,7 +433,7 @@ EXTRA_DIST = cgi-demo.cgi.in stripes.py top_srcdir = @top_srcdir@ SUBDIRS = rrdcached EXTRA_DIST = cgi-demo.cgi.in stripes.py -examplesdir = $(pkgdatadir)/examples +examplesdir = $(datadir)/examples/rrdtool examples_SCRIPTS = cgi-demo.cgi piped-demo.pl shared-demo.pl \ stripes.pl bigtops.pl minmax.pl 4charts.pl perftest.pl \ stripes.py diff --git a/databases/rrdtool/files/patch-examples_rrdcached_Makefile.in b/databases/rrdtool/files/patch-examples_rrdcached_Makefile.in index 795905d8894b..566472836e45 100644 --- a/databases/rrdtool/files/patch-examples_rrdcached_Makefile.in +++ b/databases/rrdtool/files/patch-examples_rrdcached_Makefile.in @@ -1,11 +1,11 @@ ---- examples/rrdcached/Makefile.in.orig 2022-03-14 14:29:40 UTC +--- examples/rrdcached/Makefile.in.orig 2026-05-19 19:34:45 UTC +++ examples/rrdcached/Makefile.in -@@ -368,7 +368,7 @@ target_vendor = @target_vendor@ +@@ -372,7 +372,7 @@ top_srcdir = @top_srcdir@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -examplesdir = $(pkgdatadir)/examples/rrdcached +examplesdir = $(datadir)/examples/rrdtool/rrdcached examples_SCRIPTS = rrdcached-size.pl examples_DATA = RRDCached.pm EXTRA_DIST = $(examples_DATA) $(examples_SCRIPTS) diff --git a/databases/rrdtool/pkg-plist b/databases/rrdtool/pkg-plist index 01208bf1e125..1824c2fd07a7 100644 --- a/databases/rrdtool/pkg-plist +++ b/databases/rrdtool/pkg-plist @@ -1,60 +1,65 @@ bin/rrdcached %%GRAPH%%bin/rrdcgi bin/rrdcreate bin/rrdinfo bin/rrdtool bin/rrdupdate include/rrd.h include/rrd_client.h include/rrd_format.h lib/librrd.a lib/librrd.so lib/librrd.so.8 lib/librrd.so.8.3.0 %%PERL%%%%SITE_PERL%%/RRDp.pm %%PERL%%%%SITE_ARCH%%/RRDs.pm %%PERL%%%%SITE_ARCH%%/auto/RRDs/RRDs.so %%PERL%%%%PERL5_MAN3%%/RRDp.3.gz %%PERL%%%%PERL5_MAN3%%/RRDs.3.gz -%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10-py%%PYTHON_VER%%.egg-info/PKG-INFO -%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10-py%%PYTHON_VER%%.egg-info/SOURCES.txt -%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10-py%%PYTHON_VER%%.egg-info/dependency_links.txt -%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10-py%%PYTHON_VER%%.egg-info/top_level.txt -%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool%%PYTHON_TAG%%.so +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/COPYING +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/INSTALLER +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/METADATA +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/RECORD +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/REQUESTED +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/WHEEL +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/direct_url.json +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool-0.1.10.dist-info/top_level.txt +%%PYTHON%%%%PYTHON_SITELIBDIR%%/rrdtool.cpython-%%PYTHON_SUFFIX%%.so %%RUBY%%%%RUBY_SITEARCHLIBDIR%%/RRD.so libdata/pkgconfig/librrd.pc %%PORTDOCS%%share/man/man1/bin_dec_hex.1.gz %%PORTDOCS%%share/man/man1/cdeftutorial.1.gz %%PORTDOCS%%share/man/man1/rpntutorial.1.gz %%PORTDOCS%%share/man/man1/rrd-beginners.1.gz %%PORTDOCS%%share/man/man1/rrd_pdpcalc.1.gz %%PORTDOCS%%share/man/man1/rrdbuild.1.gz %%PORTDOCS%%share/man/man1/rrdcached.1.gz %%PORTDOCS%%share/man/man1/rrdcgi.1.gz %%PORTDOCS%%share/man/man1/rrdcreate.1.gz %%PORTDOCS%%share/man/man1/rrddump.1.gz %%PORTDOCS%%share/man/man1/rrdfetch.1.gz %%PORTDOCS%%share/man/man1/rrdfirst.1.gz %%PORTDOCS%%share/man/man1/rrdflushcached.1.gz %%PORTDOCS%%share/man/man1/rrdgraph.1.gz %%PORTDOCS%%share/man/man1/rrdgraph_data.1.gz %%PORTDOCS%%share/man/man1/rrdgraph_examples.1.gz %%PORTDOCS%%share/man/man1/rrdgraph_graph.1.gz %%PORTDOCS%%share/man/man1/rrdgraph_rpn.1.gz %%PORTDOCS%%share/man/man1/rrdinfo.1.gz %%PORTDOCS%%share/man/man1/rrdlast.1.gz %%PORTDOCS%%share/man/man1/rrdlastupdate.1.gz %%PORTDOCS%%share/man/man1/rrdlist.1.gz %%PORTDOCS%%%%PYTHON%%share/man/man1/rrdpython.1.gz %%PORTDOCS%%share/man/man1/rrdresize.1.gz %%PORTDOCS%%share/man/man1/rrdrestore.1.gz %%PORTDOCS%%%%RUBY%%share/man/man1/rrdruby.1.gz %%PORTDOCS%%share/man/man1/rrdthreads.1.gz %%PORTDOCS%%share/man/man1/rrdtool.1.gz %%PORTDOCS%%share/man/man1/rrdtune.1.gz %%PORTDOCS%%share/man/man1/rrdtutorial.1.gz %%PORTDOCS%%share/man/man1/rrdupdate.1.gz %%PORTDOCS%%share/man/man1/rrdxport.1.gz %%PORTDOCS%%share/man/man3/librrd.3.gz %%NLS%%share/locale/fr/LC_MESSAGES/rrdtool.mo %%NLS%%share/locale/hu/LC_MESSAGES/rrdtool.mo +%%NLS%%share/locale/ka/LC_MESSAGES/rrdtool.mo