summaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/Makefile1
-rw-r--r--sysutils/consul/Makefile5
-rw-r--r--sysutils/consul/distinfo30
-rw-r--r--sysutils/containerd/Makefile2
-rw-r--r--sysutils/containerd/distinfo6
-rw-r--r--sysutils/debhelper/Makefile2
-rw-r--r--sysutils/debhelper/distinfo6
-rw-r--r--sysutils/flock/Makefile12
-rw-r--r--sysutils/flock/distinfo6
-rw-r--r--sysutils/lxqt-admin/Makefile1
-rw-r--r--sysutils/lxqt-config/Makefile1
-rw-r--r--sysutils/lxqt-policykit/Makefile1
-rw-r--r--sysutils/lxqt-powermanagement/Makefile1
-rw-r--r--sysutils/lxqt-qt6plugin/Makefile1
-rw-r--r--sysutils/opentofu/Makefile4
-rw-r--r--sysutils/opentofu/distinfo10
-rw-r--r--sysutils/pfstat/Makefile24
-rw-r--r--sysutils/pfstat/files/patch-pf.c50
-rw-r--r--sysutils/py-hcloud/Makefile2
-rw-r--r--sysutils/py-hcloud/distinfo6
-rw-r--r--sysutils/py-rendercv/Makefile43
-rw-r--r--sysutils/py-rendercv/distinfo3
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_cli_error__handler.py20
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_cli_render__command_run__rendercv.py21
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_renderer_templater_entry__templates__from__input.py20
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__complex__fields.py11
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__date.py11
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_section.py46
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py20
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_built__in__design.py22
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_classic__theme.py23
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_font__family.py8
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_typst__dimension.py8
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_locale_locale.py22
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_models_path.py19
-rw-r--r--sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py38
-rw-r--r--sysutils/py-rendercv/pkg-descr5
-rw-r--r--sysutils/py-tmuxp/Makefile4
-rw-r--r--sysutils/py-tmuxp/distinfo6
-rw-r--r--sysutils/rubygem-capistrano/Makefile2
-rw-r--r--sysutils/rubygem-capistrano/distinfo6
-rw-r--r--sysutils/rubygem-chef-licensing/Makefile3
-rw-r--r--sysutils/rubygem-chef-licensing/distinfo6
-rw-r--r--sysutils/rubygem-chef-licensing/files/patch-gemspec10
-rw-r--r--sysutils/rubygem-puppet_forge/Makefile8
-rw-r--r--sysutils/rubygem-puppet_forge/distinfo6
-rw-r--r--sysutils/rubygem-puppet_forge/files/patch-gemspec11
-rw-r--r--sysutils/usb_modeswitch/Makefile2
48 files changed, 474 insertions, 101 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile
index 2ce5f3d8dc01..7b71b1c7ea29 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1101,6 +1101,7 @@
SUBDIR += py-queuelib
SUBDIR += py-ranger
SUBDIR += py-rdiff-backup
+ SUBDIR += py-rendercv
SUBDIR += py-resolve-march-native
SUBDIR += py-salt
SUBDIR += py-salt-tower
diff --git a/sysutils/consul/Makefile b/sysutils/consul/Makefile
index d83c39158ed1..4134ca82c27c 100644
--- a/sysutils/consul/Makefile
+++ b/sysutils/consul/Makefile
@@ -1,7 +1,6 @@
PORTNAME= consul
DISTVERSIONPREFIX= v
-DISTVERSION= 1.22.1
-PORTREVISION= 1
+DISTVERSION= 1.22.2
CATEGORIES= sysutils
MASTER_SITES= https://raw.githubusercontent.com/hashicorp/consul/${DISTVERSIONFULL}/
DISTFILES= go.mod \
@@ -44,7 +43,7 @@ CONSUL_USER?= consul
CONSUL_GROUP?= consul
CONSUL_DBDIR?= /var/db/${PORTNAME}
-GITID= 3831feb
+GITID= 71f21bf
# Bring DISTINFO_FILE into scope so we can get the timestamp.
.include <bsd.port.pre.mk>
diff --git a/sysutils/consul/distinfo b/sysutils/consul/distinfo
index a8d81b856758..6795f6cea0da 100644
--- a/sysutils/consul/distinfo
+++ b/sysutils/consul/distinfo
@@ -1,15 +1,15 @@
-TIMESTAMP = 1764317920
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/go.mod) = 1231f01a41aa03813ba3daf8fea306c36df5a2b265fe9d89595fcf0b66ac657e
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/go.mod) = 15516
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/api/go.mod) = 7f88971c6f3605924f215b20b52cb87dbc11f85b5a4468f23cca5a9bc3e5a673
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/api/go.mod) = 1910
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/envoyextensions/go.mod) = 300f8d29f91a03b0e64698b5e3a5121f62bbb9c5f05fe3f74daf90b9956bfbd6
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/envoyextensions/go.mod) = 2128
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/proto-public/go.mod) = 5c6add582bbee29f43f38f40ce894606ca8754c8df642cb604f8e3b48db14f59
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/proto-public/go.mod) = 343
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/sdk/go.mod) = 9dc73c35e3549431c5f5b75c0e02b59bb125b2d2e9d0387aadde4e7fca45b1d3
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/sdk/go.mod) = 822
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/troubleshoot/go.mod) = df3b54e0d481f30a2451ba35635ec5ef655f43da70086a8b8dc261f0cf6b4997
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/troubleshoot/go.mod) = 2915
-SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/hashicorp-consul-v1.22.1_GH0.tar.gz) = 3a397f1d9e10fabf7dba713e633406efe73f2192ef6c8b5a9e21c975bfb7e460
-SIZE (go/sysutils_consul/hashicorp-consul-v1.22.1_GH0/hashicorp-consul-v1.22.1_GH0.tar.gz) = 50628621
+TIMESTAMP = 1766220396
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/go.mod) = 0765401cc9fceb26588fc6ec31c31f9e5899894bc8e00185110f3fe35ec8281b
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/go.mod) = 15516
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/api/go.mod) = 9666057ddfbd6aff9a070a9d7c3d4f1fcfcda9545f1b09d67d13d20c9f341886
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/api/go.mod) = 1910
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/envoyextensions/go.mod) = f40812e29b5972b71ec65de3c255656d838b13a1769b3b07cc917893586f2251
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/envoyextensions/go.mod) = 2128
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/proto-public/go.mod) = 43a50190b5a07b33f2eef063b997c763645fe83b8bff54901cfb288eb48b69a2
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/proto-public/go.mod) = 343
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/sdk/go.mod) = 774954de6ececabaf766bfa1ec81d58c5e39feef43023110a68b45b2c79789cc
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/sdk/go.mod) = 822
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/troubleshoot/go.mod) = c6266774a745ad0ebb86d5c5613f1c004d600e43ec4376b061bff1accdb504a4
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/troubleshoot/go.mod) = 2915
+SHA256 (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/hashicorp-consul-v1.22.2_GH0.tar.gz) = 61124ea62fa4eb34f2367648a331d20a5916915e38efeb9d8eb96cbb84da81de
+SIZE (go/sysutils_consul/hashicorp-consul-v1.22.2_GH0/hashicorp-consul-v1.22.2_GH0.tar.gz) = 50618145
diff --git a/sysutils/containerd/Makefile b/sysutils/containerd/Makefile
index c7d24e5df0e4..34c801f0b405 100644
--- a/sysutils/containerd/Makefile
+++ b/sysutils/containerd/Makefile
@@ -1,6 +1,6 @@
PORTNAME= containerd
DISTVERSIONPREFIX=v
-DISTVERSION= 2.2.0
+DISTVERSION= 2.2.1
CATEGORIES= sysutils
MAINTAINER= decke@FreeBSD.org
diff --git a/sysutils/containerd/distinfo b/sysutils/containerd/distinfo
index 5f50b9428fcc..17ca95c5a6db 100644
--- a/sysutils/containerd/distinfo
+++ b/sysutils/containerd/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1766089181
-SHA256 (containerd-containerd-v2.2.0_GH0.tar.gz) = 86e7a268fc73f5332522baef86082c1d6c17986e2957a9ad842ead35d1080fca
-SIZE (containerd-containerd-v2.2.0_GH0.tar.gz) = 11475770
+TIMESTAMP = 1766133382
+SHA256 (containerd-containerd-v2.2.1_GH0.tar.gz) = af5707a26891486332142cc0ade4f0c543f707d3954838f5cecee73b833cf9b4
+SIZE (containerd-containerd-v2.2.1_GH0.tar.gz) = 11492859
diff --git a/sysutils/debhelper/Makefile b/sysutils/debhelper/Makefile
index 69eda1766f0e..c8fee10a8110 100644
--- a/sysutils/debhelper/Makefile
+++ b/sysutils/debhelper/Makefile
@@ -1,5 +1,5 @@
PORTNAME= debhelper
-PORTVERSION= 13.28
+PORTVERSION= 13.29
CATEGORIES= sysutils
MASTER_SITES= DEBIAN
DISTNAME= debhelper_${PORTVERSION}
diff --git a/sysutils/debhelper/distinfo b/sysutils/debhelper/distinfo
index 3c81c161144b..e3f200432d20 100644
--- a/sysutils/debhelper/distinfo
+++ b/sysutils/debhelper/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1759816570
-SHA256 (debhelper_13.28.tar.xz) = f1ff36f62abf89ba0c2d83c965755ab833933118a503bfadeb3b774460eb8ecb
-SIZE (debhelper_13.28.tar.xz) = 634756
+TIMESTAMP = 1766036367
+SHA256 (debhelper_13.29.tar.xz) = aac88c3f0388fc74eb3e587c53aa02013ceb5caf7f38f260c10c52a2a6d65c96
+SIZE (debhelper_13.29.tar.xz) = 636312
diff --git a/sysutils/flock/Makefile b/sysutils/flock/Makefile
index af2350634725..9497e5e74ae7 100644
--- a/sysutils/flock/Makefile
+++ b/sysutils/flock/Makefile
@@ -1,12 +1,10 @@
PORTNAME= flock
-PORTVERPREFIX= 2.37
-PORTVERSION= ${PORTVERPREFIX}.2
-PORTREVISION= 1
+PORTVERSION= 2.41.3
CATEGORIES= sysutils
-MASTER_SITES= KERNEL_ORG/linux/utils/util-linux/v${PORTVERPREFIX}/
+MASTER_SITES= KERNEL_ORG/linux/utils/util-linux/v${PORTVERSION:R}/
DISTNAME= util-linux-${PORTVERSION}
-MAINTAINER= franco@opnsense.org
+MAINTAINER= garga@FreeBSD.org
COMMENT= Manage locks from shell scripts
WWW= https://www.kernel.org/pub/linux/utils/util-linux/
@@ -16,9 +14,9 @@ LICENSE_FILE= ${WRKSRC}/COPYING
USES= libtool pkgconfig
GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --disable-nls
+CONFIGURE_ARGS= --disable-liblastlog2 --disable-nls
-CFLAGS= -D_WITH_CPU_SET_T
+CFLAGS+= -D_WITH_CPU_SET_T
PLIST_FILES= bin/flock share/man/man1/flock.1.gz \
etc/bash_completion.d/flock
diff --git a/sysutils/flock/distinfo b/sysutils/flock/distinfo
index e570a67f7445..81ce561ff9d8 100644
--- a/sysutils/flock/distinfo
+++ b/sysutils/flock/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1640072142
-SHA256 (util-linux-2.37.2.tar.gz) = 15db966474e459b33fa390a6b892190a92079a73ca45384cde4c86e6ed265a86
-SIZE (util-linux-2.37.2.tar.gz) = 12232498
+TIMESTAMP = 1766159136
+SHA256 (util-linux-2.41.3.tar.gz) = 24160e7c3bfc6feecb9076706437fdb1212817549aaf9b4408f5a8e0b94e3eca
+SIZE (util-linux-2.41.3.tar.gz) = 20687833
diff --git a/sysutils/lxqt-admin/Makefile b/sysutils/lxqt-admin/Makefile
index a850ef34d2d4..788aabb1b11d 100644
--- a/sysutils/lxqt-admin/Makefile
+++ b/sysutils/lxqt-admin/Makefile
@@ -1,5 +1,6 @@
PORTNAME= lxqt-admin
PORTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= LXQT
diff --git a/sysutils/lxqt-config/Makefile b/sysutils/lxqt-config/Makefile
index e6168cdf7d3f..557c8f68e448 100644
--- a/sysutils/lxqt-config/Makefile
+++ b/sysutils/lxqt-config/Makefile
@@ -1,5 +1,6 @@
PORTNAME= lxqt-config
PORTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= sysutils
DIST_SUBDIR= lxqt
diff --git a/sysutils/lxqt-policykit/Makefile b/sysutils/lxqt-policykit/Makefile
index afac44ea601c..9b03cf167b0a 100644
--- a/sysutils/lxqt-policykit/Makefile
+++ b/sysutils/lxqt-policykit/Makefile
@@ -1,5 +1,6 @@
PORTNAME= lxqt-policykit
PORTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= LXQT
diff --git a/sysutils/lxqt-powermanagement/Makefile b/sysutils/lxqt-powermanagement/Makefile
index bf5779a95a4b..0d8b9282b2dc 100644
--- a/sysutils/lxqt-powermanagement/Makefile
+++ b/sysutils/lxqt-powermanagement/Makefile
@@ -1,5 +1,6 @@
PORTNAME= lxqt-powermanagement
PORTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= LXQT
diff --git a/sysutils/lxqt-qt6plugin/Makefile b/sysutils/lxqt-qt6plugin/Makefile
index 720d5a5e29ca..1eb11714b566 100644
--- a/sysutils/lxqt-qt6plugin/Makefile
+++ b/sysutils/lxqt-qt6plugin/Makefile
@@ -1,5 +1,6 @@
PORTNAME= lxqt-qt6plugin
PORTVERSION= 2.3.0
+PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= LXQT
diff --git a/sysutils/opentofu/Makefile b/sysutils/opentofu/Makefile
index a7d8298f62ac..05730c7ed79d 100644
--- a/sysutils/opentofu/Makefile
+++ b/sysutils/opentofu/Makefile
@@ -1,6 +1,6 @@
PORTNAME= opentofu
DISTVERSIONPREFIX= v
-DISTVERSION= 1.11.1
+DISTVERSION= 1.11.2
CATEGORIES= sysutils
MAINTAINER= bofh@FreeBSD.org
@@ -10,7 +10,7 @@ WWW= https://opentofu.org/
LICENSE= MPL20
LICENSE_FILE= ${WRKSRC}/LICENSE
-USES= go:1.25,modules
+USES= go:modules
GO_MODULE= github.com/opentofu/opentofu
GO_TARGET= ./cmd/tofu
GO_BUILDFLAGS= -o bin/
diff --git a/sysutils/opentofu/distinfo b/sysutils/opentofu/distinfo
index 48860a5fe3ec..19c8e66b17c5 100644
--- a/sysutils/opentofu/distinfo
+++ b/sysutils/opentofu/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1765709105
-SHA256 (go/sysutils_opentofu/opentofu-v1.11.1/v1.11.1.mod) = acb009cfc614d9cbee62cdef67c24c51929ef58dcda02490419a91daed29f5cf
-SIZE (go/sysutils_opentofu/opentofu-v1.11.1/v1.11.1.mod) = 17136
-SHA256 (go/sysutils_opentofu/opentofu-v1.11.1/v1.11.1.zip) = 0c6aa7bcd31cc17ec1f751e2ae654867636b69f7c8c8a63190d6afebcc14341c
-SIZE (go/sysutils_opentofu/opentofu-v1.11.1/v1.11.1.zip) = 7006172
+TIMESTAMP = 1766220684
+SHA256 (go/sysutils_opentofu/opentofu-v1.11.2/v1.11.2.mod) = 3c52d38ad621e98d1c069fa595d7968dd3f83b7f1416af0ed2225a0e1e45f71e
+SIZE (go/sysutils_opentofu/opentofu-v1.11.2/v1.11.2.mod) = 17136
+SHA256 (go/sysutils_opentofu/opentofu-v1.11.2/v1.11.2.zip) = d19b6c43b8ed5d301a28c1bd7c8c9558beeb2305321a0696a0966945656f267c
+SIZE (go/sysutils_opentofu/opentofu-v1.11.2/v1.11.2.zip) = 6998754
diff --git a/sysutils/pfstat/Makefile b/sysutils/pfstat/Makefile
index a89e00609971..7062f41a81f8 100644
--- a/sysutils/pfstat/Makefile
+++ b/sysutils/pfstat/Makefile
@@ -1,23 +1,24 @@
PORTNAME= pfstat
-PORTVERSION= 2.5
-PORTREVISION= 8
+DISTVERSION= 2.5
+PORTREVISION= 9
CATEGORIES= sysutils net
MASTER_SITES= https://www.benzedrine.ch/
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= rootnode+freebsd@wollwage.com
COMMENT= Utility to render graphical statistics for pf
WWW= https://www.benzedrine.ch/pfstat.html
LICENSE= BSD2CLAUSE
LIB_DEPENDS= libgd.so:graphics/gd \
+ libpfctl.so:net/libpfctl \
libpng.so:graphics/png
-USES= iconv jpeg
-
+USES= iconv jpeg localbase:ldflags
USE_RC_SUBR= pfstatd
-MAKE_ARGS= "LD_GD=gd"
+CFLAGS+= -I/usr/include/net
+LDFLAGS+= -lpfctl
PLIST_FILES= bin/pfstat \
bin/pfstatd \
@@ -25,16 +26,13 @@ PLIST_FILES= bin/pfstat \
share/man/man8/pfstatd.8.gz
post-patch:
- @${REINPLACE_CMD} -e 's|-lgd|-l$${LD_GD}|; s| -lttf||' \
- ${WRKSRC}/Makefile
@${REINPLACE_CMD} -e "s|/etc/|${PREFIX}/etc/|" \
${WRKSRC}/pfstat.[c8]
- @${REINPLACE_CMD} 's|altq/|net/&|' ${WRKSRC}/pf.c
do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/pfstat ${STAGEDIR}/${PREFIX}/bin
- ${INSTALL_PROGRAM} ${WRKSRC}/pfstatd/pfstatd ${STAGEDIR}/${PREFIX}/bin
- ${INSTALL_MAN} ${WRKSRC}/pfstat.8 ${STAGEDIR}/${PREFIX}/share/man/man8
- ${INSTALL_MAN} ${WRKSRC}/pfstatd/pfstatd.8 ${STAGEDIR}/${PREFIX}/share/man/man8
+ ${INSTALL_PROGRAM} ${WRKSRC}/pfstat \
+ ${WRKSRC}/pfstatd/pfstatd ${STAGEDIR}/${PREFIX}/bin
+ ${INSTALL_MAN} ${WRKSRC}/pfstat.8 \
+ ${WRKSRC}/pfstatd/pfstatd.8 ${STAGEDIR}/${PREFIX}/share/man/man8
.include <bsd.port.mk>
diff --git a/sysutils/pfstat/files/patch-pf.c b/sysutils/pfstat/files/patch-pf.c
new file mode 100644
index 000000000000..a5ee52b7b909
--- /dev/null
+++ b/sysutils/pfstat/files/patch-pf.c
@@ -0,0 +1,50 @@
+--- pf.c.orig 2007-01-11 16:01:58 UTC
++++ pf.c
+@@ -46,6 +46,7 @@ static const char rcsid[] = "$Id: pf.c,v 1.1.1.1 2007/
+ #include <err.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <libpfctl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -167,20 +168,29 @@ query_counters(int fd, void (*cb)(int, const char *, i
+ static int
+ query_counters(int fd, void (*cb)(int, const char *, int, double))
+ {
+- struct pf_status s;
+- int i;
++ struct pfctl_status *s;
++ struct pfctl_status_counter *np;
+
+- memset(&s, 0, sizeof(s));
+- if (ioctl(fd, DIOCGETSTATUS, &s)) {
+- fprintf(stderr, "ioctl: DIOCGETSTATUS: %s\n", strerror(errno));
++ s = pfctl_get_status(fd);
++ if (s == NULL) {
++ fputs("pfctl_get_status failure.\n",stderr);
+ return (1);
+ }
+- (*cb)(COL_TYPE_SINCE, "", 0, s.since);
+- (*cb)(COL_TYPE_GLOBAL, "", 0, s.states);
+- for (i = 0; i < FCNT_MAX; ++i)
+- (*cb)(COL_TYPE_GLOBAL, "", 1 + i, s.fcounters[i]);
+- for (i = 0; i < PFRES_MAX; ++i)
+- (*cb)(COL_TYPE_GLOBAL, "", 1 + FCNT_MAX + i, s.counters[i]);
++
++ (*cb)(COL_TYPE_SINCE, "", 0, s->since);
++ (*cb)(COL_TYPE_GLOBAL, "", 0, s->states);
++
++ TAILQ_FOREACH(np, &s->fcounters, entry) {
++ if (np->id < FCNT_MAX)
++ (*cb)(COL_TYPE_GLOBAL, "", 1 + np->id, np->counter);
++ }
++
++ TAILQ_FOREACH(np, &s->counters, entry) {
++ if (np->id < PFRES_MAX)
++ (*cb)(COL_TYPE_GLOBAL, "", 1 + FCNT_MAX + np->id, np->counter);
++ }
++
++ pfctl_free_status(s);
+ return (0);
+ }
diff --git a/sysutils/py-hcloud/Makefile b/sysutils/py-hcloud/Makefile
index 6c7e24195143..b40c2c92102e 100644
--- a/sysutils/py-hcloud/Makefile
+++ b/sysutils/py-hcloud/Makefile
@@ -1,5 +1,5 @@
PORTNAME= hcloud
-DISTVERSION= 2.12.0
+DISTVERSION= 2.13.0
CATEGORIES= sysutils python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/sysutils/py-hcloud/distinfo b/sysutils/py-hcloud/distinfo
index 7e211ca87b40..95367c84c550 100644
--- a/sysutils/py-hcloud/distinfo
+++ b/sysutils/py-hcloud/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1765457422
-SHA256 (hcloud-2.12.0.tar.gz) = f145b18efc6d70fff3d48b244edfde29c0fe3dddfbbadcfe71d63f41f52441f7
-SIZE (hcloud-2.12.0.tar.gz) = 152256
+TIMESTAMP = 1766235980
+SHA256 (hcloud-2.13.0.tar.gz) = 974b22a36c347e113ff8b25abd2cd3868011288485192b562729dba6b22375e1
+SIZE (hcloud-2.13.0.tar.gz) = 153639
diff --git a/sysutils/py-rendercv/Makefile b/sysutils/py-rendercv/Makefile
new file mode 100644
index 000000000000..4eb46c2ca27c
--- /dev/null
+++ b/sysutils/py-rendercv/Makefile
@@ -0,0 +1,43 @@
+PORTNAME= rendercv
+DISTVERSION= 2.5
+CATEGORIES= sysutils python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= dtxdf@FreeBSD.org
+COMMENT= Typst-based CV/resume generator
+WWW= https://github.com/rendercv/rendercv \
+ https://pypi.org/project/rendercv
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}uv-build>=0:devel/py-uv-build@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}phonenumbers>=0:devel/py-phonenumbers@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=0:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic-extra-types>=0:devel/py-pydantic-extra-types@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}email-validator>=0:mail/py-email-validator@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}ruamel.yaml>=0:devel/py-ruamel.yaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}packaging>=0:devel/py-packaging@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= autoplist pep517
+
+NO_ARCH= yes
+
+OPTIONS_DEFINE= CLI MARKDOWN WATCHDOG TYPST FONT
+OPTIONS_DEFAULT= CLI MARKDOWN WATCHDOG TYPST FONT
+
+CLI_DESC= Enable Command-line interface support
+MARKDOWN_DESC= Convert Markdown to HTML
+WATCHDOG_DESC= Monitor files for updates
+TYPST_DESC= Render PDF from Typst source files
+FONT_DESC= Font files for RenderCV
+
+CLI_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}typer>=0:devel/py-typer@${PY_FLAVOR}
+MARKDOWN_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}markdown>=0:textproc/py-markdown@${PY_FLAVOR}
+WATCHDOG_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}watchdog>=0:devel/py-watchdog@${PY_FLAVOR}
+TYPST_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}typst>=0:textproc/py-typst@${PY_FLAVOR}
+FONT_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}rendercv-fonts>=0:x11-fonts/py-rendercv-fonts@${PY_FLAVOR}
+
+.include <bsd.port.mk>
diff --git a/sysutils/py-rendercv/distinfo b/sysutils/py-rendercv/distinfo
new file mode 100644
index 000000000000..c6f5b4128d33
--- /dev/null
+++ b/sysutils/py-rendercv/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1766178034
+SHA256 (rendercv-2.5.tar.gz) = 7e5b51c7ed4340fa2e78084a3d74aa4784aa3e42e53d585c3c8433082982434b
+SIZE (rendercv-2.5.tar.gz) = 77147
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_cli_error__handler.py b/sysutils/py-rendercv/files/patch-src_rendercv_cli_error__handler.py
new file mode 100644
index 000000000000..7c8350de5c53
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_cli_error__handler.py
@@ -0,0 +1,20 @@
+--- src/rendercv/cli/error_handler.py.orig 2025-12-20 00:46:25 UTC
++++ src/rendercv/cli/error_handler.py
+@@ -8,7 +8,7 @@ from rendercv.exception import RenderCVUserError
+ from rendercv.exception import RenderCVUserError
+
+
+-def handle_user_errors[T, **P](function: Callable[P, None]) -> Callable[P, None]:
++def handle_user_errors(function):
+ """Decorator that catches user errors and displays friendly messages without stack traces.
+
+ Why:
+@@ -33,7 +33,7 @@ def handle_user_errors[T, **P](function: Callable[P, N
+ """
+
+ @functools.wraps(function)
+- def wrapper(*args: P.args, **kwargs: P.kwargs) -> None:
++ def wrapper(*args, **kwargs) -> None:
+ try:
+ return function(*args, **kwargs)
+ except RenderCVUserError as e:
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_cli_render__command_run__rendercv.py b/sysutils/py-rendercv/files/patch-src_rendercv_cli_render__command_run__rendercv.py
new file mode 100644
index 000000000000..3ede1d8e2ce3
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_cli_render__command_run__rendercv.py
@@ -0,0 +1,21 @@
+--- src/rendercv/cli/render_command/run_rendercv.py.orig 2025-12-20 00:43:25 UTC
++++ src/rendercv/cli/render_command/run_rendercv.py
+@@ -19,13 +19,13 @@ from .progress_panel import ProgressPanel
+ from .progress_panel import ProgressPanel
+
+
+-def timed_step[T, **P](
++def timed_step(
+ message: str,
+ progress_panel: ProgressPanel,
+- func: Callable[P, T],
+- *args: P.args,
+- **kwargs: P.kwargs,
+-) -> T:
++ func,
++ *args,
++ **kwargs,
++):
+ """Execute function, measure timing, and update progress panel with result.
+
+ Why:
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_renderer_templater_entry__templates__from__input.py b/sysutils/py-rendercv/files/patch-src_rendercv_renderer_templater_entry__templates__from__input.py
new file mode 100644
index 000000000000..d3fbd6e1175e
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_renderer_templater_entry__templates__from__input.py
@@ -0,0 +1,20 @@
+--- src/rendercv/renderer/templater/entry_templates_from_input.py.orig 2025-12-20 00:49:48 UTC
++++ src/rendercv/renderer/templater/entry_templates_from_input.py
+@@ -14,14 +14,14 @@ uppercase_word_pattern = re.compile(r"\b[A-Z_]+\b")
+ uppercase_word_pattern = re.compile(r"\b[A-Z_]+\b")
+
+
+-def render_entry_templates[EntryType: Entry](
+- entry: EntryType,
++def render_entry_templates(
++ entry,
+ *,
+ templates: Templates,
+ locale: Locale,
+ show_time_span: bool,
+ current_date: Date,
+-) -> EntryType:
++):
+ """Expand entry templates by substituting field placeholders with processed values.
+
+ Why:
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__complex__fields.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__complex__fields.py
new file mode 100644
index 000000000000..c3e40f6ba6fd
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__complex__fields.py
@@ -0,0 +1,11 @@
+--- src/rendercv/schema/models/cv/entries/bases/entry_with_complex_fields.py.orig 2025-12-19 21:42:57 UTC
++++ src/rendercv/schema/models/cv/entries/bases/entry_with_complex_fields.py
+@@ -37,7 +37,7 @@ def validate_exact_date(date: str | int) -> str | int:
+ return date
+
+
+-type ExactDate = Annotated[str | int, pydantic.AfterValidator(validate_exact_date)]
++ExactDate = Annotated[str | int, pydantic.AfterValidator(validate_exact_date)]
+
+
+ def get_date_object(date: str | int, current_date: Date | None = None) -> Date:
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__date.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__date.py
new file mode 100644
index 000000000000..8c792c689936
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_entries_bases_entry__with__date.py
@@ -0,0 +1,11 @@
+--- src/rendercv/schema/models/cv/entries/bases/entry_with_date.py.orig 2025-12-19 21:34:29 UTC
++++ src/rendercv/schema/models/cv/entries/bases/entry_with_date.py
+@@ -31,7 +31,7 @@ def validate_arbitrary_date(date: int | str) -> int |
+ return date
+
+
+-type ArbitraryDate = Annotated[
++ArbitraryDate = Annotated[
+ int | str, pydantic.AfterValidator(validate_arbitrary_date)
+ ]
+
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_section.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_section.py
new file mode 100644
index 000000000000..d2f7a9c12c81
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_section.py
@@ -0,0 +1,46 @@
+--- src/rendercv/schema/models/cv/section.py.orig 2025-12-19 21:43:39 UTC
++++ src/rendercv/schema/models/cv/section.py
+@@ -21,7 +21,7 @@ from .entries.reversed_numbered import ReversedNumbere
+ # Below needs to be updated when new entry types are added.
+
+ # str is an entry type (TextEntry) but not a model, so it's not included in EntryModel.
+-type EntryModel = (
++EntryModel = (
+ OneLineEntry
+ | NormalEntry
+ | ExperienceEntry
+@@ -31,13 +31,22 @@ type EntryModel = (
+ | NumberedEntry
+ | ReversedNumberedEntry
+ )
+-type Entry = EntryModel | str
++Entry = EntryModel | str
+ ########################################################################################
+-available_entry_models: tuple[type[EntryModel], ...] = get_args(EntryModel.__value__)
++available_entry_models: tuple[type[EntryModel], ...] = (
++ OneLineEntry,
++ NormalEntry,
++ ExperienceEntry,
++ EducationEntry,
++ PublicationEntry,
++ BulletEntry,
++ NumberedEntry,
++ ReversedNumberedEntry
++)
+ available_entry_type_names: tuple[str, ...] = tuple(
+ [entry_type.__name__ for entry_type in available_entry_models] + ["TextEntry"]
+ )
+-type ListOfEntries = list[str] | reduce( # pyright: ignore[reportInvalidTypeForm]
++ListOfEntries = list[str] | reduce( # pyright: ignore[reportInvalidTypeForm]
+ or_, [list[entry_type] for entry_type in available_entry_models]
+ )
+
+@@ -244,7 +253,7 @@ def validate_section(sections_input: Any) -> Any:
+ # Create a custom type named Section, which is a list of entries. The entries can be any
+ # of the available entry types. The section is validated with the `validate_section`
+ # function.
+-type Section = Annotated[
++Section = Annotated[
+ pydantic.json_schema.SkipJsonSchema[Any] | ListOfEntries,
+ pydantic.BeforeValidator(lambda entries: validate_section(entries)),
+ ]
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py
new file mode 100644
index 000000000000..50d71355c92c
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_cv_social__network.py
@@ -0,0 +1,20 @@
+--- src/rendercv/schema/models/cv/social_network.py.orig 2025-12-19 21:44:26 UTC
++++ src/rendercv/schema/models/cv/social_network.py
+@@ -10,7 +10,7 @@ url_validator = pydantic.TypeAdapter(pydantic.HttpUrl)
+ from ..base import BaseModelWithoutExtraKeys
+
+ url_validator = pydantic.TypeAdapter(pydantic.HttpUrl)
+-type SocialNetworkName = Literal[
++SocialNetworkName = Literal[
+ "LinkedIn",
+ "GitHub",
+ "GitLab",
+@@ -27,7 +27,7 @@ type SocialNetworkName = Literal[
+ "Leetcode",
+ "X",
+ ]
+-available_social_networks = get_args(SocialNetworkName.__value__)
++#available_social_networks = get_args(SocialNetworkName.__value__)
+ url_dictionary: dict[SocialNetworkName, str] = {
+ "LinkedIn": "https://linkedin.com/in/",
+ "GitHub": "https://github.com/",
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_built__in__design.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_built__in__design.py
new file mode 100644
index 000000000000..2519ce6c6ec4
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_built__in__design.py
@@ -0,0 +1,22 @@
+--- src/rendercv/schema/models/design/built_in_design.py.orig 2025-12-19 21:32:57 UTC
++++ src/rendercv/schema/models/design/built_in_design.py
+@@ -37,14 +37,13 @@ def discover_other_themes() -> list[type[ClassicTheme]
+
+ return discovered
+
++discovered_other_themes = discover_other_themes()
+
+ # Build discriminated union dynamically
+-type BuiltInDesign = Annotated[
+- ClassicTheme | reduce(or_, discover_other_themes()), # pyright: ignore[reportInvalidTypeForm]
++BuiltInDesign = Annotated[
++ ClassicTheme | reduce(or_, discovered_other_themes), # pyright: ignore[reportInvalidTypeForm]
+ pydantic.Field(discriminator="theme"),
+ ]
+-available_themes: list[str] = [
+- ThemeClass.model_fields["theme"].default
+- for ThemeClass in get_args(get_args(BuiltInDesign.__value__)[0])
+-]
++discovered_other_themes.append(ClassicTheme)
++available_themes: list[str] = [ThemeClass.model_fields["theme"].default for ThemeClass in discovered_other_themes]
+ built_in_design_adapter = pydantic.TypeAdapter(BuiltInDesign)
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_classic__theme.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_classic__theme.py
new file mode 100644
index 000000000000..30f05b163fbc
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_classic__theme.py
@@ -0,0 +1,23 @@
+--- src/rendercv/schema/models/design/classic_theme.py.orig 2025-12-19 21:33:55 UTC
++++ src/rendercv/schema/models/design/classic_theme.py
+@@ -7,14 +7,14 @@ from rendercv.schema.models.design.typst_dimension imp
+ from rendercv.schema.models.design.font_family import FontFamily as FontFamilyType
+ from rendercv.schema.models.design.typst_dimension import TypstDimension
+
+-type Bullet = Literal["●", "•", "◦", "-", "◆", "★", "■", "—", "○"]
+-type BodyAlignment = Literal["left", "justified", "justified-with-no-hyphenation"]
+-type Alignment = Literal["left", "center", "right"]
+-type SectionTitleType = Literal[
++Bullet = Literal["●", "•", "◦", "-", "◆", "★", "■", "—", "○"]
++BodyAlignment = Literal["left", "justified", "justified-with-no-hyphenation"]
++Alignment = Literal["left", "center", "right"]
++SectionTitleType = Literal[
+ "with_partial_line", "with_full_line", "without_line", "moderncv"
+ ]
+-type PhoneNumberFormatType = Literal["national", "international", "E164"]
+-type PageSize = Literal["a4", "a5", "us-letter", "us-executive"]
++PhoneNumberFormatType = Literal["national", "international", "E164"]
++PageSize = Literal["a4", "a5", "us-letter", "us-executive"]
+
+ length_common_description = (
+ "It can be specified with units (cm, in, pt, mm, ex, em). For example, `0.1cm`."
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_font__family.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_font__family.py
new file mode 100644
index 000000000000..0563084ad505
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_font__family.py
@@ -0,0 +1,8 @@
+--- src/rendercv/schema/models/design/font_family.py.orig 2025-12-19 21:33:15 UTC
++++ src/rendercv/schema/models/design/font_family.py
+@@ -50,4 +50,4 @@ available_font_families = sorted(
+ )
+
+
+-type FontFamily = SkipJsonSchema[str] | Literal[*tuple(available_font_families)] # pyright: ignore[reportInvalidTypeForm]
++FontFamily = SkipJsonSchema[str] | Literal[*tuple(available_font_families)] # pyright: ignore[reportInvalidTypeForm]
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_typst__dimension.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_typst__dimension.py
new file mode 100644
index 000000000000..f9c2dfb78d2c
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_design_typst__dimension.py
@@ -0,0 +1,8 @@
+--- src/rendercv/schema/models/design/typst_dimension.py.orig 2025-12-19 21:33:37 UTC
++++ src/rendercv/schema/models/design/typst_dimension.py
+@@ -29,4 +29,4 @@ def validate_typst_dimension(dimension: str) -> str:
+ return dimension
+
+
+-type TypstDimension = Annotated[str, pydantic.AfterValidator(validate_typst_dimension)]
++TypstDimension = Annotated[str, pydantic.AfterValidator(validate_typst_dimension)]
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_locale_locale.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_locale_locale.py
new file mode 100644
index 000000000000..78889b6444b0
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_locale_locale.py
@@ -0,0 +1,22 @@
+--- src/rendercv/schema/models/locale/locale.py.orig 2025-12-19 21:44:44 UTC
++++ src/rendercv/schema/models/locale/locale.py
+@@ -37,14 +37,13 @@ def discover_other_locales() -> list[type[EnglishLocal
+
+ return discovered
+
++discovered_other_locales = discover_other_locales()
+
+ # Build discriminated union dynamically
+-type Locale = Annotated[
+- EnglishLocale | reduce(or_, discover_other_locales()), # pyright: ignore[reportInvalidTypeForm]
++Locale = Annotated[
++ EnglishLocale | reduce(or_, discovered_other_locales), # pyright: ignore[reportInvalidTypeForm]
+ pydantic.Field(discriminator="language"),
+ ]
+-available_locales = [
+- LocaleModel.model_fields["language"].default
+- for LocaleModel in get_args(get_args(Locale.__value__)[0])
+-]
++discovered_other_locales.append(EnglishLocale)
++available_locales = [LocaleModel.model_fields["language"].default for LocaleModel in discovered_other_locales]
+ locale_adapter = pydantic.TypeAdapter(Locale)
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_path.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_path.py
new file mode 100644
index 000000000000..74b7cab315b6
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_models_path.py
@@ -0,0 +1,19 @@
+--- src/rendercv/schema/models/path.py.orig 2025-12-19 21:40:25 UTC
++++ src/rendercv/schema/models/path.py
+@@ -60,14 +60,14 @@ def serialize_path(path: pathlib.Path) -> str:
+ return str(path.relative_to(pathlib.Path.cwd()))
+
+
+-type ExistingPathRelativeToInput = Annotated[
++ExistingPathRelativeToInput = Annotated[
+ pathlib.Path,
+ pydantic.AfterValidator(
+ lambda path, info: resolve_relative_path(path, info, must_exist=True)
+ ),
+ ]
+
+-type PlannedPathRelativeToInput = Annotated[
++PlannedPathRelativeToInput = Annotated[
+ pathlib.Path,
+ pydantic.AfterValidator(
+ lambda path, info: resolve_relative_path(path, info, must_exist=False)
diff --git a/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py b/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py
new file mode 100644
index 000000000000..8760ecb47deb
--- /dev/null
+++ b/sysutils/py-rendercv/files/patch-src_rendercv_schema_variant__pydantic__model__generator.py
@@ -0,0 +1,38 @@
+--- src/rendercv/schema/variant_pydantic_model_generator.py.orig 2025-12-19 21:48:58 UTC
++++ src/rendercv/schema/variant_pydantic_model_generator.py
+@@ -6,17 +6,17 @@ from rendercv.exception import RenderCVInternalError
+
+ from rendercv.exception import RenderCVInternalError
+
+-type FieldSpec = tuple[type[Any], FieldInfo]
++FieldSpec = tuple[type[Any], FieldInfo]
+
+
+-def create_variant_pydantic_model[T: pydantic.BaseModel](
++def create_variant_pydantic_model(
+ variant_name: str,
+ defaults: dict[str, Any],
+- base_class: type[T],
++ base_class,
+ discriminator_field: str,
+ class_name_suffix: str,
+ module_name: str,
+-) -> type[T]:
++):
+ """Create Pydantic model variant with customized defaults.
+
+ Why:
+@@ -190,10 +190,10 @@ def create_discriminator_field_spec(
+ return (cast(type[Any], field_annotation), new_field)
+
+
+-def deep_merge_nested_object[T: pydantic.BaseModel](
+- base_nested_obj: T,
++def deep_merge_nested_object(
++ base_nested_obj,
+ updates: dict[str, Any],
+-) -> T:
++):
+ """Recursively merge nested dictionary updates into Pydantic model instance.
+
+ Why:
diff --git a/sysutils/py-rendercv/pkg-descr b/sysutils/py-rendercv/pkg-descr
new file mode 100644
index 000000000000..58a97762cbe9
--- /dev/null
+++ b/sysutils/py-rendercv/pkg-descr
@@ -0,0 +1,5 @@
+RenderCV is a python tool for creating a CV from YAML.
+
+Write your CV or resume as YAML, then run RenderCV, and get a PDF
+with perfect typography. No template wrestling. No broken layouts.
+Consistent spacing, every time.
diff --git a/sysutils/py-tmuxp/Makefile b/sysutils/py-tmuxp/Makefile
index b873e5c28e15..55256282d9cf 100644
--- a/sysutils/py-tmuxp/Makefile
+++ b/sysutils/py-tmuxp/Makefile
@@ -1,5 +1,5 @@
PORTNAME= tmuxp
-PORTVERSION= 1.61.0
+PORTVERSION= 1.62.0
CATEGORIES= sysutils python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -14,7 +14,7 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>=0:devel/py-hatchling@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}colorama>=0.3.9:devel/py-colorama@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}libtmux>=0.52.1<0.53:devel/py-libtmux@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}libtmux>=0.53.0<0.54:devel/py-libtmux@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0:devel/py-pyyaml@${PY_FLAVOR} \
tmux:sysutils/tmux
diff --git a/sysutils/py-tmuxp/distinfo b/sysutils/py-tmuxp/distinfo
index 91e9a06deac8..5a49ff762875 100644
--- a/sysutils/py-tmuxp/distinfo
+++ b/sysutils/py-tmuxp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1765895750
-SHA256 (tmuxp-1.61.0.tar.gz) = b4355d35aff5da859f576407ee791b89a0404db97f8a16074cda0441152e11d2
-SIZE (tmuxp-1.61.0.tar.gz) = 939821
+TIMESTAMP = 1766036509
+SHA256 (tmuxp-1.62.0.tar.gz) = 6cece0720ff9a29fca07b2330bcbf06720613828f97bd163ff235a9d30dfec19
+SIZE (tmuxp-1.62.0.tar.gz) = 939909
diff --git a/sysutils/rubygem-capistrano/Makefile b/sysutils/rubygem-capistrano/Makefile
index dd88e6c33e11..6ff2cc511f21 100644
--- a/sysutils/rubygem-capistrano/Makefile
+++ b/sysutils/rubygem-capistrano/Makefile
@@ -1,5 +1,5 @@
PORTNAME= capistrano
-PORTVERSION= 3.19.2
+PORTVERSION= 3.20.0
CATEGORIES= sysutils rubygems
MASTER_SITES= RG
diff --git a/sysutils/rubygem-capistrano/distinfo b/sysutils/rubygem-capistrano/distinfo
index d69cdfc4e9d1..cb33aa0b3fed 100644
--- a/sysutils/rubygem-capistrano/distinfo
+++ b/sysutils/rubygem-capistrano/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1731679932
-SHA256 (rubygem/capistrano-3.19.2.gem) = e0c79823edf604ba513533b224f85f5a9fe33c4c6c9cbde9483a56b48838f563
-SIZE (rubygem/capistrano-3.19.2.gem) = 73216
+TIMESTAMP = 1766036675
+SHA256 (rubygem/capistrano-3.20.0.gem) = 0113e58dda99add0342e56a244f664734c59f442c5ed734f5303b0b559b479c9
+SIZE (rubygem/capistrano-3.20.0.gem) = 74752
diff --git a/sysutils/rubygem-chef-licensing/Makefile b/sysutils/rubygem-chef-licensing/Makefile
index d86cb19e337f..8fae02558846 100644
--- a/sysutils/rubygem-chef-licensing/Makefile
+++ b/sysutils/rubygem-chef-licensing/Makefile
@@ -1,5 +1,5 @@
PORTNAME= chef-licensing
-PORTVERSION= 1.3.0
+PORTVERSION= 1.3.1
CATEGORIES= sysutils rubygems
MASTER_SITES= RG
@@ -12,7 +12,6 @@ LICENSE= APACHE20
RUN_DEPENDS= rubygem-chef-config>=15:sysutils/rubygem-chef-config \
rubygem-faraday>=1<3:www/rubygem-faraday \
rubygem-faraday-http-cache>=0:www/rubygem-faraday-http-cache \
- rubygem-faraday_middleware>=1.0<2:www/rubygem-faraday_middleware \
rubygem-mixlib-log>=3.0<4:devel/rubygem-mixlib-log \
rubygem-ostruct>=0.1.0<1:devel/rubygem-ostruct \
rubygem-pstore>=0.1.1<1:devel/rubygem-pstore \
diff --git a/sysutils/rubygem-chef-licensing/distinfo b/sysutils/rubygem-chef-licensing/distinfo
index f8f12fc4dd87..812f7a597dd7 100644
--- a/sysutils/rubygem-chef-licensing/distinfo
+++ b/sysutils/rubygem-chef-licensing/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1763854412
-SHA256 (rubygem/chef-licensing-1.3.0.gem) = 9b353ad981a31f820c6b5cfd9045fc049fe7553b9ebd0554c9fd29d7b2cbe78f
-SIZE (rubygem/chef-licensing-1.3.0.gem) = 32256
+TIMESTAMP = 1766036635
+SHA256 (rubygem/chef-licensing-1.3.1.gem) = 0fc0194909721ee6aa81f6017c98cd008095c9fdbe2e5f0abc85c6f56eea8e93
+SIZE (rubygem/chef-licensing-1.3.1.gem) = 32256
diff --git a/sysutils/rubygem-chef-licensing/files/patch-gemspec b/sysutils/rubygem-chef-licensing/files/patch-gemspec
index 2def80aa6503..76186acb616f 100644
--- a/sysutils/rubygem-chef-licensing/files/patch-gemspec
+++ b/sysutils/rubygem-chef-licensing/files/patch-gemspec
@@ -1,13 +1,7 @@
---- chef-licensing.gemspec.orig 2025-11-23 10:06:50 UTC
+--- chef-licensing.gemspec.orig 2025-12-18 12:56:41 UTC
+++ chef-licensing.gemspec
-@@ -24,12 +24,12 @@ Gem::Specification.new do |s|
-
- s.add_runtime_dependency(%q<chef-config>.freeze, [">= 15".freeze])
- s.add_runtime_dependency(%q<tty-prompt>.freeze, ["~> 0.23".freeze])
-- s.add_runtime_dependency(%q<faraday>.freeze, [">= 1".freeze, "< 2".freeze])
-+ s.add_runtime_dependency(%q<faraday>.freeze, [">= 1".freeze, "< 3".freeze])
+@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency(%q<faraday-http-cache>.freeze, [">= 0".freeze])
- s.add_runtime_dependency(%q<faraday_middleware>.freeze, ["~> 1.0".freeze])
s.add_runtime_dependency(%q<tty-spinner>.freeze, ["~> 0.9.3".freeze])
s.add_runtime_dependency(%q<mixlib-log>.freeze, ["~> 3.0".freeze])
- s.add_runtime_dependency(%q<ostruct>.freeze, ["~> 0.1.0".freeze])
diff --git a/sysutils/rubygem-puppet_forge/Makefile b/sysutils/rubygem-puppet_forge/Makefile
index 2b34d132a4f9..b5806bab0b6f 100644
--- a/sysutils/rubygem-puppet_forge/Makefile
+++ b/sysutils/rubygem-puppet_forge/Makefile
@@ -1,6 +1,5 @@
PORTNAME= puppet_forge
-PORTVERSION= 6.0.0
-PORTREVISION= 1
+PORTVERSION= 6.1.0
CATEGORIES= sysutils rubygems
MASTER_SITES= RG
@@ -11,8 +10,9 @@ WWW= https://github.com/puppetlabs/forge-ruby
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
-RUN_DEPENDS= rubygem-faraday>=2.0<3:www/rubygem-faraday \
- rubygem-faraday-follow_redirects>=0.3.0<1:www/rubygem-faraday-follow_redirects \
+RUN_DEPENDS= rubygem-base64>=0.2.0<0.4.0:converters/rubygem-base64 \
+ rubygem-faraday>=2.0<3:www/rubygem-faraday \
+ rubygem-faraday-follow_redirects>=0.3<0.5:www/rubygem-faraday-follow_redirects \
rubygem-minitar>=1.0.2<2:archivers/rubygem-minitar \
rubygem-semantic_puppet>=1.0<2:devel/rubygem-semantic_puppet
diff --git a/sysutils/rubygem-puppet_forge/distinfo b/sysutils/rubygem-puppet_forge/distinfo
index d7ef0018ee31..4a1db82a576d 100644
--- a/sysutils/rubygem-puppet_forge/distinfo
+++ b/sysutils/rubygem-puppet_forge/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1727315502
-SHA256 (rubygem/puppet_forge-6.0.0.gem) = 0770bed61c9f5b21bd81666b121e086165e34c45691bdefec70438bf412f8ddf
-SIZE (rubygem/puppet_forge-6.0.0.gem) = 776192
+TIMESTAMP = 1766036677
+SHA256 (rubygem/puppet_forge-6.1.0.gem) = e3bfe83282f0136adf0938f52180a53b45434b70464a5a453d6398df6563764b
+SIZE (rubygem/puppet_forge-6.1.0.gem) = 776704
diff --git a/sysutils/rubygem-puppet_forge/files/patch-gemspec b/sysutils/rubygem-puppet_forge/files/patch-gemspec
deleted file mode 100644
index 2a36232d4278..000000000000
--- a/sysutils/rubygem-puppet_forge/files/patch-gemspec
+++ /dev/null
@@ -1,11 +0,0 @@
---- puppet_forge.gemspec.orig 2025-10-15 12:40:49 UTC
-+++ puppet_forge.gemspec
-@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
- s.specification_version = 4
-
- s.add_runtime_dependency(%q<faraday>.freeze, ["~> 2.0".freeze])
-- s.add_runtime_dependency(%q<faraday-follow_redirects>.freeze, ["~> 0.3.0".freeze])
-+ s.add_runtime_dependency(%q<faraday-follow_redirects>.freeze, ["~> 0.3".freeze])
- s.add_runtime_dependency(%q<semantic_puppet>.freeze, ["~> 1.0".freeze])
- s.add_runtime_dependency(%q<minitar>.freeze, ["~> 1.0".freeze, ">= 1.0.2".freeze])
- s.add_development_dependency(%q<rake>.freeze, [">= 0".freeze])
diff --git a/sysutils/usb_modeswitch/Makefile b/sysutils/usb_modeswitch/Makefile
index cfe0b5f766ae..c1a68fa9d067 100644
--- a/sysutils/usb_modeswitch/Makefile
+++ b/sysutils/usb_modeswitch/Makefile
@@ -7,7 +7,7 @@ DISTNAME= ${PORTNAME:S|_|-|}-${PORTVERSION}
DISTFILES= ${DISTNAME}.tar.bz2 \
${DATANAME}.tar.bz2
-MAINTAINER= franco@opnsense.org
+MAINTAINER= ports@FreeBSD.org
COMMENT= Handling Mode-Switching USB Devices
WWW= https://www.draisberghof.de/usb_modeswitch/