diff --git a/databases/rrdtool/Makefile b/databases/rrdtool/Makefile index 15dab82a4e96..3ff022896531 100644 --- a/databases/rrdtool/Makefile +++ b/databases/rrdtool/Makefile @@ -1,119 +1,119 @@ PORTNAME= rrdtool -DISTVERSION= 1.10.3 +DISTVERSION= 1.11.0 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 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 \ 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_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 e365060e6048..1d9dde8ed9da 100644 --- a/databases/rrdtool/distinfo +++ b/databases/rrdtool/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1780857193 -SHA256 (rrdtool-1.10.3.tar.gz) = 843b7caa2a80a815d44ac5c65daa42920cb64586fe804e36d0bc0783554e0635 -SIZE (rrdtool-1.10.3.tar.gz) = 2996378 +TIMESTAMP = 1786124133 +SHA256 (rrdtool-1.11.0.tar.gz) = 24c345b5c077c1b2b2fcbc1a364f1da051650fb6743ad5213096adc04c862ed4 +SIZE (rrdtool-1.11.0.tar.gz) = 2994499 diff --git a/databases/rrdtool/files/extra-patch-locktimeout b/databases/rrdtool/files/extra-patch-locktimeout index 6cb8cac225d8..9fb0ed8f9f24 100644 --- a/databases/rrdtool/files/extra-patch-locktimeout +++ b/databases/rrdtool/files/extra-patch-locktimeout @@ -1,81 +1,81 @@ ---- src/rrd_open.c.orig 2026-05-19 19:35:26 UTC +--- src/rrd_open.c.orig 2026-08-07 13:49:31 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 @@ -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 @@ -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; 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.orig 2026-08-07 13:48:29 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 dfd8472e1a37..34476491a82d 100644 --- a/databases/rrdtool/files/patch-bindings_Makefile.in +++ b/databases/rrdtool/files/patch-bindings_Makefile.in @@ -1,25 +1,25 @@ ---- bindings/Makefile.in.orig 2026-05-19 19:34:45 UTC +--- bindings/Makefile.in.orig 2026-08-07 13:48:57 UTC +++ bindings/Makefile.in -@@ -728,11 +728,11 @@ install-data-local: +@@ -729,11 +729,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: +@@ -742,7 +742,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 37839b3d9c1e..489f2816dab9 100644 --- a/databases/rrdtool/files/patch-configure +++ b/databases/rrdtool/files/patch-configure @@ -1,31 +1,31 @@ ---- configure.orig 2026-05-19 19:34:43 UTC +--- configure.orig 2026-08-07 13:48:56 UTC +++ configure -@@ -24003,7 +24003,7 @@ else $as_nop +@@ -24004,7 +24004,7 @@ else $as_nop then : enableval=$enable_ruby_site_install; RUBY_MAKE_OPTIONS= else $as_nop - RUBY_MAKE_OPTIONS="sitedir=$langpref/lib/ruby" + RUBY_MAKE_OPTIONS="PREFIX=$langpref INSTALL_BASE= LIB=$langpref/lib/ruby" fi -@@ -30583,19 +30583,6 @@ printf "%s\n" "and out again" >&6; } +@@ -30596,19 +30596,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 -{ 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 8f8c1b8255c4..8fc3a4255b93 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 2026-05-19 19:34:45 UTC +--- examples/Makefile.in.orig 2026-08-07 13:48:57 UTC +++ examples/Makefile.in -@@ -433,7 +433,7 @@ EXTRA_DIST = cgi-demo.cgi.in stripes.py +@@ -434,7 +434,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 566472836e45..944ed78c93a9 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 2026-05-19 19:34:45 UTC +--- examples/rrdcached/Makefile.in.orig 2026-08-07 13:48:57 UTC +++ examples/rrdcached/Makefile.in -@@ -372,7 +372,7 @@ top_srcdir = @top_srcdir@ +@@ -373,7 +373,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)