Monday, February 23, 2026

[maintainer update] multimedia/frei0r-plugins 2.5.1 -> 2.5.2

This updates multimedia/frei0r-plugins to the latest version 2.5.2.
It's a small update with just a few bug fixes.

Changelog:
https://github.com/dyne/frei0r/compare/v2.5.1...v2.5.2

ok?



Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/frei0r-plugins/Makefile,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 Makefile
--- Makefile 4 Dec 2025 17:59:35 -0000 1.12
+++ Makefile 23 Feb 2026 20:16:41 -0000
@@ -3,7 +3,7 @@ CATEGORIES = graphics multimedia

GH_ACCOUNT = dyne
GH_PROJECT = frei0r
-GH_TAGNAME = v2.5.1
+GH_TAGNAME = v2.5.2

DISTNAME = frei0r-plugins-${GH_TAGNAME:S/v//}

@@ -22,8 +22,8 @@ COMPILER = base-clang ports-gcc

MODULES = devel/cmake

-CONFIGURE_ARGS = -DWITHOUT_OPENCV=ON \
- -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON
+CONFIGURE_ARGS = -DWITHOUT_GAVL=ON \
+ -DWITHOUT_OPENCV=ON

NO_TEST = Yes

Index: distinfo
===================================================================
RCS file: /cvs/ports/multimedia/frei0r-plugins/distinfo,v
retrieving revision 1.8
diff -u -p -u -p -r1.8 distinfo
--- distinfo 4 Dec 2025 17:59:35 -0000 1.8
+++ distinfo 23 Feb 2026 20:16:41 -0000
@@ -1,2 +1,2 @@
-SHA256 (frei0r-plugins-2.5.1.tar.gz) = MY7EowQslKAKWPzNwesNkR82oivrNQTSeu/MpFmPQLA=
-SIZE (frei0r-plugins-2.5.1.tar.gz) = 942271
+SHA256 (frei0r-plugins-2.5.2.tar.gz) = +mq7Kh6GzsSXL53IkaSVPDXXFqcrhgxniIomu/GHeGI=
+SIZE (frei0r-plugins-2.5.2.tar.gz) = 942768

Re: [new] sysutils/susmb

On Mon, 23 Feb 2026 20:31:52 +0100, Hiltjo Posthuma wrote:
> On Mon, Feb 23, 2026 at 12:20:38PM +0000, Stuart Henderson wrote:
> > On 2026/02/22 19:22, Pascal Stumpf wrote:
> > > On Sun, 22 Feb 2026 14:06:54 +0100, Hiltjo Posthuma wrote:
> > > > On Sat, Feb 21, 2026 at 08:17:06PM +0100, Pascal Stumpf wrote:
> > > > > On Sat, 21 Feb 2026 19:02:49 +0000, Stuart Henderson wrote:
> > > > > > is there any point keeping usmb if we have this? (not sure of current
> > > > > > development status of usmb, I'm geoblocked from repo.or.cz)
> > > > >
> > > > > Not really. Maybe susmb should use readpassphrase(3) instead of an env
> > > > > var for the password though before we use it as the upgrade path for
> > > > > usmb.
> > > > >
> > > > > > --
> > > > > > Sent from a phone, apologies for poor formatting.
> > > > > >
> > > > > > On 21 February 2026 16:29:05 Pascal Stumpf <pascal@stumpf.co> wrote:
> > > > > >
> > > > > > > susmb lets you mount SMB/CIFS shares via FUSE, in the vein of the
> > > > > > > Map Network Drive functionality in Windows.
> > > > > > >
> > > > > > >
> > > > > > > This is a fork of usmb, most notably adding privdrop and unveil(2), and
> > > > > > > getting rid of the XML config file. Patches from sysutils/usmb have
> > > > > > > also been incorporated.
> > > > > >
> > > > > >
> > > >
> > > > Thanks for the feedback,
> > > >
> > > > I just added back support for reading the password from the tty:
> > > >
> > > > https://git.codemadness.org/susmb/commit/eb8f06e5e0f3dfc37d223025c6a43c99b963c2ef.html
> > >
> > > Thanks!
> > >
> > > > Note that the password is kept in memory during run-time. I'm not sure
> > > > currently how to make this more secure or improve privdropping (for example
> > > > currently it only uses unveil and not pledge), because of the Samba and FUSE
> > > > layer. If you have ideas, please let me know.
> > >
> > > Well, unveil() is already a huge improvement, and while you can try out
> > > which pledges would be needed with Samba, it might well turn into a
> > > "kitchen sink" type of pledge. I wouldn't worry too much.
> > >
> > > Updated port attached.
> > >
> > > > --
> > > > Kind regards,
> > > > Hiltjo
> >
> > Build fails on clean -current, fuse headers moved
> >
> > Here's a tweaked version which avoids patching (simpler to override
> > make variables on the command line via MAKE_FLAGS, and we can use
> > pkg-config there). I don't see a reason not to install README/LICENSE
> > so just drop the patch completely.
> >
> > This is ok sthen
> >
>
> Thanks, I was going to suggest overriding the Makefile flags too :)
>
> I tagged the first release and also made a release tarball.
>
> Feel free to use my site for the source-code for the port.
>
> https://codemadness.org/releases/susmb/
>
> https://codemadness.org/releases/susmb/susmb-0.9.tar.gz
> https://codemadness.org/releases/susmb/susmb-0.9.tar.gz.sha256
>
> Tested on OpenBSD snapshot, 7.7 and 7.8 and Void Linux.

Thanks; updated port attached.

> --
> Kind regards,
> Hiltjo

Re: [new] sysutils/susmb

On Mon, Feb 23, 2026 at 12:20:38PM +0000, Stuart Henderson wrote:
> On 2026/02/22 19:22, Pascal Stumpf wrote:
> > On Sun, 22 Feb 2026 14:06:54 +0100, Hiltjo Posthuma wrote:
> > > On Sat, Feb 21, 2026 at 08:17:06PM +0100, Pascal Stumpf wrote:
> > > > On Sat, 21 Feb 2026 19:02:49 +0000, Stuart Henderson wrote:
> > > > > is there any point keeping usmb if we have this? (not sure of current
> > > > > development status of usmb, I'm geoblocked from repo.or.cz)
> > > >
> > > > Not really. Maybe susmb should use readpassphrase(3) instead of an env
> > > > var for the password though before we use it as the upgrade path for
> > > > usmb.
> > > >
> > > > > --
> > > > > Sent from a phone, apologies for poor formatting.
> > > > >
> > > > > On 21 February 2026 16:29:05 Pascal Stumpf <pascal@stumpf.co> wrote:
> > > > >
> > > > > > susmb lets you mount SMB/CIFS shares via FUSE, in the vein of the
> > > > > > Map Network Drive functionality in Windows.
> > > > > >
> > > > > >
> > > > > > This is a fork of usmb, most notably adding privdrop and unveil(2), and
> > > > > > getting rid of the XML config file. Patches from sysutils/usmb have
> > > > > > also been incorporated.
> > > > >
> > > > >
> > >
> > > Thanks for the feedback,
> > >
> > > I just added back support for reading the password from the tty:
> > >
> > > https://git.codemadness.org/susmb/commit/eb8f06e5e0f3dfc37d223025c6a43c99b963c2ef.html
> >
> > Thanks!
> >
> > > Note that the password is kept in memory during run-time. I'm not sure
> > > currently how to make this more secure or improve privdropping (for example
> > > currently it only uses unveil and not pledge), because of the Samba and FUSE
> > > layer. If you have ideas, please let me know.
> >
> > Well, unveil() is already a huge improvement, and while you can try out
> > which pledges would be needed with Samba, it might well turn into a
> > "kitchen sink" type of pledge. I wouldn't worry too much.
> >
> > Updated port attached.
> >
> > > --
> > > Kind regards,
> > > Hiltjo
>
> Build fails on clean -current, fuse headers moved
>
> Here's a tweaked version which avoids patching (simpler to override
> make variables on the command line via MAKE_FLAGS, and we can use
> pkg-config there). I don't see a reason not to install README/LICENSE
> so just drop the patch completely.
>
> This is ok sthen
>

Thanks, I was going to suggest overriding the Makefile flags too :)

I tagged the first release and also made a release tarball.

Feel free to use my site for the source-code for the port.

https://codemadness.org/releases/susmb/

https://codemadness.org/releases/susmb/susmb-0.9.tar.gz
https://codemadness.org/releases/susmb/susmb-0.9.tar.gz.sha256

Tested on OpenBSD snapshot, 7.7 and 7.8 and Void Linux.

--
Kind regards,
Hiltjo

Re: NEW: devel/stb 0.0.20251026

On 2026/02/23 16:55, Rafael Sadowski wrote:
> New dependcy stb-0.0.20251026 to update graphics/zxing-cpp from 2 to 3.0.
>
> Comment:
> stb single-file public domain libraries for C/C++
>
> Description:
> Single-file public domain (or MIT licensed) libraries for C/C++.
> - image loader: stb_image.h
> - image writer: stb_image_write.h
> - image resizer: stb_image_resize.h
> - font text rasterizer: stb_truetype.h
> - typesafe containers: stb_ds.h
>
> Maintainer: The OpenBSD ports mailing-list <ports@openbsd.org>
>
> WWW: https://github.com/nothings/stb
>
>

there's a stray space at eol in COMMENT, and I don't think it should
repeat the name 'stb' at the start

otherwise ok

the various different libraries have different version numbers so
your date-based version seems sane

NEW: devel/stb 0.0.20251026

New dependcy stb-0.0.20251026 to update graphics/zxing-cpp from 2 to 3.0.

Comment:
stb single-file public domain libraries for C/C++

Description:
Single-file public domain (or MIT licensed) libraries for C/C++.
- image loader: stb_image.h
- image writer: stb_image_write.h
- image resizer: stb_image_resize.h
- font text rasterizer: stb_truetype.h
- typesafe containers: stb_ds.h

Maintainer: The OpenBSD ports mailing-list <ports@openbsd.org>

WWW: https://github.com/nothings/stb

Re: New: benchmarks/vkmark - a Vulkan benchmark

On Mon, 23 Feb 2026 10:40:03 +0100
Rafael Sadowski <rafael@sizeofvoid.org> wrote:

> On Sun Feb 22, 2026 at 12:44:27PM -0800, Thomas Frohwein wrote:
> > Hi,
> >
> > Please find attached the port of vkmark, a 3D benchmark in the vein
> > of the venerable glmark2, but for vulkan. It is used on Linux and
> > there is also a port on FreeBSD. Having this will help measure our
> > GPU performance.
> >
> > The GH homepage [1] shows some examples for how to run it with
> > different options. There is some data on openbenchmarking.org [2]
> > that could be carefully used for comparison (their version seems a
> > few years old now). I also found a little post on the background
> > behind this project at [3].
> >
> > I ran the default (just `vkmark`) on my desktop PC with Radeon RX
> > 6700 XT and got a score of 10714.
> >
> > DESCR:
> > vkmark is an extensible Vulkan benchmarking suite with targeted,
> > configurable scenes. vkmark offers a suite of scenes that can be
> > used to measure various aspects of Vulkan performance. The way in
> > which each scene is rendered is configurable through a set of
> > options. In vkmark, a benchmark is defined as a scene plus a set of
> > option values. You can specify the list and order of the benchmarks
> > to run.
> >
> > ok to import?
> >
> > [1] https://github.com/vkmark/vkmark
> > [2] https://openbenchmarking.org/test/pts/vkmark
> > [3]
> > https://www.collabora.com/news-and-blog/blog/2017/07/18/vkmark-more-than-a-vulkan-benchmark/
> >
>
>
> Does not build for me:

Hm, most likely only builds with the updated vulkan 1.4.341.0, see:

https://marc.info/?l=openbsd-ports&m=177170589504584&w=2

I wasn't expecting this as the vkmark tag is 12 months old...
You can try the vulkan update or wait until it's ready to be
packaged.

>
> FAILED: src/libvkmark-core.a.p/vulkan_state.cpp.o
> c++ -Isrc/libvkmark-core.a.p -Isrc -I../vkmark-2025.01/src
> -I/usr/local/include -fdiagnostics-color=always
> -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -D_FILE_OFFS
> ET_BITS=64 -Wall -Winvalid-pch -std=c++17
> '-DVKMARK_WINDOW_SYSTEM_DIR="/usr/local/lib/vkmark"'
> '-DVKMARK_DATA_DIR="/usr/local/share/vkmark"'
> '-DVKMARK_VERSION_STR="2025.01" ' -O2 -pipe -fPIC -MD -MQ
> src/libvkmark-core.a.p/vulkan_state.cpp.o -MF
> src/libvkmark-core.a.p/vulkan_state.cpp.o.d -o
> src/libvkmark-core.a.p/vulkan_state.cpp.o -c ../vkmar
> k-2025.01/src/vulkan_state.cpp
> ../vkmark-2025.01/src/vulkan_state.cpp:203:14: warning:
> 'setPfnUserCallback' is deprecated: This setter is deprecated. Use
> the one taking a function pointer type from the v k-namespace
> instead. [-Wdeprecated-declarations] 203 |
> .setPfnUserCallback(debug_callback); | ^
> /usr/local/include/vulkan/vulkan_structs.hpp:32329:5: note:
> 'setPfnUserCallback' has been explicitly marked deprecated here 32329
> | VULKAN_HPP_DEPRECATED( "This setter is deprecated. Use the one
> taking a function pointer type from the vk-namespace instead." ) |
> ^ /usr/local/include/vulkan/vulkan_hpp_macros.hpp:213:42: note:
> expanded from macro 'VULKAN_HPP_DEPRECATED' 213 | # define
> VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]] |
> ^
> ../vkmark-2025.01/src/vulkan_state.cpp:207:24: error: no matching
> member function for call to 'createDebugUtilsMessengerEXT' 207 |
> instance().createDebugUtilsMessengerEXT(debug_create_info,
> nullptr, dud), | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/local/include/vulkan/vulkan_funcs.hpp:16273:59: note: candidate
> function template not viable: no known conversion from 'const
> DebugUtilsMessengerCreateInfoEXT' to 'con st
> DebugUtilsMessengerCreateInfoEXT *' for 1st argument; take the
> address of the argument with & 16273 | VULKAN_HPP_NODISCARD
> VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT(
> const DebugUtilsMessengerCreateInfoEXT * pCreateInfo, |
> ^
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/local/include/vulkan/vulkan_funcs.hpp:16289:107: note: candidate
> template ignored: requirement 'detail::isDispatchLoader<(anonymous
> namespace)::DebugUtilsDispatcher>:: value' was not satisfied [with
> Dispatch = DebugUtilsDispatcher] 16289 | VULKAN_HPP_NODISCARD
> VULKAN_HPP_INLINE typename
> ResultValueType<DebugUtilsMessengerEXT>::type
> Instance::createDebugUtilsMessengerEXT( |
> ^
> 1 warning and 1 error generated.

Re: avoid single-user mode boot

How about adding journaling to the file system?


-------- Original Message --------
On Sunday, 02/22/26 at 22:13 Kenneth Gober <kgober@gmail.com> wrote:
On Wed, Jul 24, 2024 at 1:52 PM <04-psyche.totter@icloud.com> wrote:
Thanks Stuart for all these thoughts. That's a lot of great ideas.

Let me try to clarify a few things:

- change `do_fsck` to `do_fsck -y`
---------------------------------------------
  I assume you mean Line 410. That seems like a great idea.
  Do I understand correctly that the normal behaviour for this `do_fsck` is to run the check, and mark filesystems dirty, and then enter single-user mode?
  Whereas if I replace it with `do_fsck -y `, the filesystems will not be marked dirty, and it will not enter singe user mode?

Apologies for reviving this old thread, but I had a recent experience with a remote router that failed to come up, presumably after having local power issues. This router was set up to use fsck -p -y and I learned the hard way that when using -p, there are some problems that cause fsck to exit without giving you the option to answer yes. Instead, you just get "UNEXPECTED INCONSISTENCY; RUN fsck_ffs MANUALLY." followed a bit later by "Automatic file system check failed; help!". "do_fsck -y" will not help you here.

Naturally, in this situation you should of course run fsck manually and decide what to do based on what fsck reports. Just blindly running fsck -y is dangerous and can make a simple issue much worse. But sometimes when a device is far away, you can't easily get there yourself, and you don't have someone on-site who can address it, an alternative is needed.

Having chosen to accept this risk, I changed /etc/rc, modifying the do_fsck function as follows:
old: fsck -p "$@"
new: fsck -p "$@" || { for i in a d e f g h; do fsck -y \/dev\/sd0$i; done; fsck -p "$@"; }

The idea is that if fsck -p fails, I run fsck -y for each file system where I think it's safe to do so unattended. Then I try the fsck -p command again to give it a second chance to succeed (if it fails twice then the old behavior remains). In this example, the file systems that I have chosen to auto-correct are sd0a, sd0d, sd0e, sd0f, sd0g and sd0h. You may choose to auto-correct a different set.

I tested this by power-cycling a test router while reordering of libc was in progress. This would ordinarily have caused the router to come up single-user with the "Automatic file system check failed; help!" message, but with the above change the router was able to boot normally (albeit with a ton of console spam regarding repairs for files in the /usr/share/relink tree):

root on sd0a (5e776adc85699112.a) swap on sd0b dump on sd0b
WARNING: / was not properly unmounted
Automatic boot in progress: starting file system checks.
/dev/sd0a (5e776adc85699112.a): INCORRECT BLOCK COUNT I=32837 (4 should be 0) (CORRECTED)
/dev/sd0a (5e776adc85699112.a): FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGED)
/dev/sd0a (5e776adc85699112.a): SUMMARY INFORMATION BAD (SALVAGED)
/dev/sd0a (5e776adc85699112.a): BLK(S) MISSING IN BIT MAPS (SALVAGED)
/dev/sd0a (5e776adc85699112.a): 1891 files, 49715 used, 202132 free (116 frags, 25252 blocks, 0.0% fragmentation)
/dev/sd0a (5e776adc85699112.a): MARKING FILE SYSTEM CLEAN
/dev/sd0d (5e776adc85699112.d): INCORRECT BLOCK COUNT I=54794 (704 should be 416) (CORRECTED)
/dev/sd0d (5e776adc85699112.d): UNALLOCATED  I=54976  OWNER=root MODE=100644
/dev/sd0d: SIZE=2096 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/connect.so

/dev/sd0d (5e776adc85699112.d): UNEXPECTED INCONSISTENCY; RUN fsck_ffs MANUALLY.
/dev/sd0e (5e776adc85699112.e): 78 files, 1779 used, 252068 free (20 frags, 31506 blocks, 0.0% fragmentation)
/dev/sd0e (5e776adc85699112.e): MARKING FILE SYSTEM CLEAN
/dev/sd0f (5e776adc85699112.f): INCORRECT BLOCK COUNT I=49194 (128 should be 0) (CORRECTED)
/dev/sd0f (5e776adc85699112.f): FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGED)
/dev/sd0f (5e776adc85699112.f): SUMMARY INFORMATION BAD (SALVAGED)
/dev/sd0f (5e776adc85699112.f): BLK(S) MISSING IN BIT MAPS (SALVAGED)
/dev/sd0f (5e776adc85699112.f): 423 files, 15221 used, 238626 free (90 frags, 29817 blocks, 0.0% fragmentation)
/dev/sd0f (5e776adc85699112.f): MARKING FILE SYSTEM CLEAN
/dev/sd0g (5e776adc85699112.g): INCORRECT BLOCK COUNT I=3 (4 should be 0) (CORRECTED)
/dev/sd0g (5e776adc85699112.g): UNREF FILE I=3  OWNER=root MODE=100600
/dev/sd0g: SIZE=0 MTIME=Feb 22 20:15 2026  (CLEARED)
/dev/sd0g (5e776adc85699112.g): 8 files, 6 used, 253841 free (33 frags, 31726 blocks, 0.0% fragmentation)
/dev/sd0g (5e776adc85699112.g): MARKING FILE SYSTEM CLEAN
/dev/sd0h (5e776adc85699112.h): 12 files, 11 used, 1520716 free (28 frags, 190086 blocks, 0.0% fragmentation)
/dev/sd0h (5e776adc85699112.h): MARKING FILE SYSTEM CLEAN
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
        ffs: 5e776adc85699112.d (/usr)
** /dev/rsd0a
** File system is clean; not checking
** /dev/rsd0d
** Last Mounted on /usr
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
UNALLOCATED  I=54976  OWNER=root MODE=100644
SIZE=2096 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/connect.so

REMOVE? yes

UNALLOCATED  I=54977  OWNER=root MODE=100644
SIZE=2080 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/fcntl.so

REMOVE? yes

UNALLOCATED  I=54978  OWNER=root MODE=100644
SIZE=2080 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/fsync.so

REMOVE? yes

UNALLOCATED  I=54979  OWNER=root MODE=100644
SIZE=2088 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/msgrcv.so

REMOVE? yes

UNALLOCATED  I=54980  OWNER=root MODE=100644
SIZE=2088 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/msgsnd.so

REMOVE? yes

(many more lines of fsck output removed, until eventually fsck -p runs again)

/dev/sd0a (5e776adc85699112.a): file system is clean; not checking
/dev/sd0d (5e776adc85699112.d): file system is clean; not checking
/dev/sd0e (5e776adc85699112.e): file system is clean; not checking
/dev/sd0f (5e776adc85699112.f): file system is clean; not checking
/dev/sd0g (5e776adc85699112.g): file system is clean; not checking
/dev/sd0h (5e776adc85699112.h): file system is clean; not checking
pf enabled
starting network
reordering: ld.so libc libcrypto sshd sshd-session sshd-auth ssh-agent.
starting early daemons: syslogd pflogd ntpd.
starting RPC daemons:.
savecore: /dev/sd0b: Device not configured
checking quotas: done.
clearing /tmp
kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
starting network daemons: sshd smtpd sndiod.
starting local daemons: cron.
Sun Feb 22 15:16:34 EST 2026

OpenBSD/amd64 (apu2d4.utility.internal) (tty00)

login:

Re: [new] sysutils/susmb

On 2026/02/22 19:22, Pascal Stumpf wrote:
> On Sun, 22 Feb 2026 14:06:54 +0100, Hiltjo Posthuma wrote:
> > On Sat, Feb 21, 2026 at 08:17:06PM +0100, Pascal Stumpf wrote:
> > > On Sat, 21 Feb 2026 19:02:49 +0000, Stuart Henderson wrote:
> > > > is there any point keeping usmb if we have this? (not sure of current
> > > > development status of usmb, I'm geoblocked from repo.or.cz)
> > >
> > > Not really. Maybe susmb should use readpassphrase(3) instead of an env
> > > var for the password though before we use it as the upgrade path for
> > > usmb.
> > >
> > > > --
> > > > Sent from a phone, apologies for poor formatting.
> > > >
> > > > On 21 February 2026 16:29:05 Pascal Stumpf <pascal@stumpf.co> wrote:
> > > >
> > > > > susmb lets you mount SMB/CIFS shares via FUSE, in the vein of the
> > > > > Map Network Drive functionality in Windows.
> > > > >
> > > > >
> > > > > This is a fork of usmb, most notably adding privdrop and unveil(2), and
> > > > > getting rid of the XML config file. Patches from sysutils/usmb have
> > > > > also been incorporated.
> > > >
> > > >
> >
> > Thanks for the feedback,
> >
> > I just added back support for reading the password from the tty:
> >
> > https://git.codemadness.org/susmb/commit/eb8f06e5e0f3dfc37d223025c6a43c99b963c2ef.html
>
> Thanks!
>
> > Note that the password is kept in memory during run-time. I'm not sure
> > currently how to make this more secure or improve privdropping (for example
> > currently it only uses unveil and not pledge), because of the Samba and FUSE
> > layer. If you have ideas, please let me know.
>
> Well, unveil() is already a huge improvement, and while you can try out
> which pledges would be needed with Samba, it might well turn into a
> "kitchen sink" type of pledge. I wouldn't worry too much.
>
> Updated port attached.
>
> > --
> > Kind regards,
> > Hiltjo

Build fails on clean -current, fuse headers moved

Here's a tweaked version which avoids patching (simpler to override
make variables on the command line via MAKE_FLAGS, and we can use
pkg-config there). I don't see a reason not to install README/LICENSE
so just drop the patch completely.

This is ok sthen

Re: [maintainer update] remind 6.2.3 -> 6.2.4

On Mon, 23 Feb 2026 10:24:25 +0100,
Martin Ziemer <horrad@horrad.de> wrote:
>
> This patch updates remind from 6.2.3 to 6.2.4.
>
> Tested on amd64.
>

Thanks, commited!

> Inndex: Makefile
> ===================================================================
> RCS file: /cvs/ports/misc/remind/Makefile,v
> diff -u -p -r1.100 Makefile
> --- Makefile 9 Feb 2026 09:15:29 -0000 1.100
> +++ Makefile 20 Feb 2026 12:49:53 -0000
> @@ -1,7 +1,7 @@
> COMMENT= scripting language for reminders, with a Tk front end
>
> -DISTNAME= remind-06.02.03
> -PKGNAME= remind-6.2.3
> +DISTNAME= remind-06.02.04
> +PKGNAME= remind-6.2.4
>
> CATEGORIES= misc
>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/misc/remind/distinfo,v
> diff -u -p -r1.69 distinfo
> --- distinfo 9 Feb 2026 09:15:29 -0000 1.69
> +++ distinfo 20 Feb 2026 12:49:53 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (remind-06.02.03.tar.gz) = Fa8rWHeT/ene3VJla7s9kjWaQvOs/KVx/kBiyrAZP4A=
> -SIZE (remind-06.02.03.tar.gz) = 9046184
> +SHA256 (remind-06.02.04.tar.gz) = wU/ZVHxapJ22hkBD4P8E076HE6C3ldwN9WEwTsHNNTY=
> +SIZE (remind-06.02.04.tar.gz) = 9054133
>

--
wbr, Kirill

[update] geo/traccar 6.12.1

Index: Makefile
===================================================================
RCS file: /cvs/ports/geo/traccar/Makefile,v
diff -u -p -r1.48 Makefile
--- Makefile 10 Dec 2025 15:09:38 -0000 1.48
+++ Makefile 23 Feb 2026 10:04:57 -0000
@@ -1,5 +1,5 @@
COMMENT = modern GPS tracking platform
-V = 6.11.1
+V = 6.12.1
PKGNAME = traccar-${V}
DISTNAME = traccar-other-${V}
EXTRACT_SUFX = .zip
Index: distinfo
===================================================================
RCS file: /cvs/ports/geo/traccar/distinfo,v
diff -u -p -r1.34 distinfo
--- distinfo 10 Dec 2025 15:09:38 -0000 1.34
+++ distinfo 23 Feb 2026 10:04:57 -0000
@@ -1,2 +1,2 @@
-SHA256 (traccar-other-6.11.1.zip) = eXfnWRAezGi1oe62FC9VFpLvFJAZUwhtwQvbyRukeyM=
-SIZE (traccar-other-6.11.1.zip) = 149658280
+SHA256 (traccar-other-6.12.1.zip) = /5Kj1MpHNpyWqxHk4xdaaEIv/83/FhyESrdwaLH7Oe0=
+SIZE (traccar-other-6.12.1.zip) = 156417101
Index: patches/patch-conf_traccar_xml
===================================================================
RCS file: /cvs/ports/geo/traccar/patches/patch-conf_traccar_xml,v
diff -u -p -r1.4 patch-conf_traccar_xml
--- patches/patch-conf_traccar_xml 29 Jan 2025 14:39:36 -0000 1.4
+++ patches/patch-conf_traccar_xml 23 Feb 2026 10:04:57 -0000
@@ -8,7 +8,7 @@ Index: conf/traccar.xml
- <entry key='database.url'>jdbc:h2:./data/database</entry>
+ <entry key='database.url'>jdbc:h2:/var/db/traccar/database</entry>
<entry key='database.user'>sa</entry>
- <entry key='database.password'></entry>
+ <entry key='database.password' />
+
+ <entry key='web.address'>127.0.0.1</entry>
+ <entry key='logger.file'>/var/log/traccar/tracker-server.log</entry>
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/geo/traccar/pkg/PLIST,v
diff -u -p -r1.38 PLIST
--- pkg/PLIST 10 Dec 2025 15:09:38 -0000 1.38
+++ pkg/PLIST 23 Feb 2026 10:04:57 -0000
@@ -35,33 +35,38 @@ share/traccar/lib/SparseBitSet-1.2.jar
share/traccar/lib/accessors-smart-2.5.2.jar
share/traccar/lib/amqp-client-5.28.0.jar
share/traccar/lib/animal-sniffer-annotations-1.24.jar
-share/traccar/lib/annotations-2.40.3.jar
+share/traccar/lib/annotations-2.41.34.jar
share/traccar/lib/annotations-26.0.2-1.jar
share/traccar/lib/annotations-4.1.1.4.jar
share/traccar/lib/aopalliance-1.0.jar
share/traccar/lib/aopalliance-repackaged-4.0.0-M3.jar
-share/traccar/lib/apache-client-2.40.3.jar
-share/traccar/lib/api-common-2.53.0.jar
-share/traccar/lib/asm-9.9.jar
+share/traccar/lib/apache-client-2.41.34.jar
+share/traccar/lib/api-common-2.56.1.jar
+share/traccar/lib/asm-9.9.1.jar
share/traccar/lib/asm-analysis-9.7.1.jar
-share/traccar/lib/asm-commons-9.9.jar
-share/traccar/lib/asm-tree-9.9.jar
+share/traccar/lib/asm-commons-9.9.1.jar
+share/traccar/lib/asm-tree-9.9.1.jar
share/traccar/lib/asm-util-9.7.1.jar
-share/traccar/lib/auth-2.40.3.jar
+share/traccar/lib/auth-2.41.34.jar
share/traccar/lib/auto-value-annotations-1.11.0.jar
-share/traccar/lib/aws-core-2.40.3.jar
-share/traccar/lib/aws-query-protocol-2.40.3.jar
-share/traccar/lib/checker-qual-3.49.5.jar
-share/traccar/lib/checksums-2.40.3.jar
-share/traccar/lib/checksums-spi-2.40.3.jar
+share/traccar/lib/aws-core-2.41.34.jar
+share/traccar/lib/aws-query-protocol-2.41.34.jar
+share/traccar/lib/azure-core-1.57.1.jar
+share/traccar/lib/azure-core-http-netty-1.16.3.jar
+share/traccar/lib/azure-identity-1.18.2.jar
+share/traccar/lib/azure-json-1.5.1.jar
+share/traccar/lib/azure-xml-1.2.1.jar
+share/traccar/lib/checker-qual-3.52.0.jar
+share/traccar/lib/checksums-2.41.34.jar
+share/traccar/lib/checksums-spi-2.41.34.jar
share/traccar/lib/commons-beanutils-1.9.4.jar
-share/traccar/lib/commons-codec-1.20.0.jar
+share/traccar/lib/commons-codec-1.21.0.jar
share/traccar/lib/commons-collections-3.2.2.jar
share/traccar/lib/commons-collections4-4.5.0.jar
share/traccar/lib/commons-compress-1.22.jar
share/traccar/lib/commons-digester3-3.2.jar
share/traccar/lib/commons-io-2.20.0.jar
-share/traccar/lib/commons-jexl3-3.6.0.jar
+share/traccar/lib/commons-jexl3-3.6.2.jar
share/traccar/lib/commons-lang3-3.19.0.jar
share/traccar/lib/commons-logging-1.3.5.jar
share/traccar/lib/commons-math3-3.6.1.jar
@@ -72,86 +77,88 @@ share/traccar/lib/content-type-2.3.jar
share/traccar/lib/curvesapi-1.07.jar
share/traccar/lib/dagger-2.42.jar
share/traccar/lib/detector-resources-support-0.33.0.jar
-share/traccar/lib/endpoints-spi-2.40.3.jar
-share/traccar/lib/error_prone_annotations-2.41.0.jar
+share/traccar/lib/endpoints-spi-2.41.34.jar
+share/traccar/lib/error_prone_annotations-2.42.0.jar
share/traccar/lib/eventstream-1.0.1.jar
share/traccar/lib/exporter-metrics-0.33.0.jar
-share/traccar/lib/failureaccess-1.0.2.jar
-share/traccar/lib/firebase-admin-9.7.0.jar
-share/traccar/lib/gapic-google-cloud-storage-v2-2.56.0.jar
-share/traccar/lib/gax-2.70.0.jar
-share/traccar/lib/gax-grpc-2.70.0.jar
-share/traccar/lib/gax-httpjson-2.70.0.jar
+share/traccar/lib/failureaccess-1.0.3.jar
+share/traccar/lib/firebase-admin-9.7.1.jar
+share/traccar/lib/gapic-google-cloud-storage-v2-2.62.0.jar
+share/traccar/lib/gax-2.73.1.jar
+share/traccar/lib/gax-grpc-2.73.1.jar
+share/traccar/lib/gax-httpjson-2.73.1.jar
share/traccar/lib/google-api-client-2.7.2.jar
share/traccar/lib/google-api-client-gson-2.7.2.jar
-share/traccar/lib/google-api-services-storage-v1-rev20250815-2.0.0.jar
-share/traccar/lib/google-auth-library-credentials-1.37.1.jar
-share/traccar/lib/google-auth-library-oauth2-http-1.37.1.jar
-share/traccar/lib/google-cloud-core-2.60.0.jar
-share/traccar/lib/google-cloud-core-grpc-2.60.0.jar
-share/traccar/lib/google-cloud-core-http-2.60.0.jar
-share/traccar/lib/google-cloud-firestore-3.32.2.jar
+share/traccar/lib/google-api-services-storage-v1-rev20251118-2.0.0.jar
+share/traccar/lib/google-auth-library-credentials-1.41.0.jar
+share/traccar/lib/google-auth-library-oauth2-http-1.41.0.jar
+share/traccar/lib/google-cloud-core-2.63.1.jar
+share/traccar/lib/google-cloud-core-grpc-2.63.1.jar
+share/traccar/lib/google-cloud-core-http-2.63.1.jar
+share/traccar/lib/google-cloud-firestore-3.35.1.jar
share/traccar/lib/google-cloud-monitoring-3.52.0.jar
-share/traccar/lib/google-cloud-storage-2.56.0.jar
-share/traccar/lib/google-http-client-1.47.1.jar
-share/traccar/lib/google-http-client-apache-v2-1.47.1.jar
-share/traccar/lib/google-http-client-appengine-1.47.1.jar
-share/traccar/lib/google-http-client-gson-1.47.1.jar
-share/traccar/lib/google-http-client-jackson2-1.47.1.jar
+share/traccar/lib/google-cloud-storage-2.62.0.jar
+share/traccar/lib/google-http-client-2.0.3.jar
+share/traccar/lib/google-http-client-apache-v2-2.0.3.jar
+share/traccar/lib/google-http-client-appengine-2.0.3.jar
+share/traccar/lib/google-http-client-gson-2.0.3.jar
+share/traccar/lib/google-http-client-jackson2-2.0.3.jar
share/traccar/lib/google-oauth-client-1.39.0.jar
share/traccar/lib/googleauth-1.5.0.jar
-share/traccar/lib/grpc-alts-1.71.0.jar
-share/traccar/lib/grpc-api-1.71.0.jar
-share/traccar/lib/grpc-auth-1.71.0.jar
-share/traccar/lib/grpc-context-1.71.0.jar
-share/traccar/lib/grpc-core-1.71.0.jar
-share/traccar/lib/grpc-google-cloud-storage-v2-2.56.0.jar
-share/traccar/lib/grpc-googleapis-1.71.0.jar
-share/traccar/lib/grpc-grpclb-1.71.0.jar
-share/traccar/lib/grpc-inprocess-1.71.0.jar
-share/traccar/lib/grpc-netty-shaded-1.71.0.jar
-share/traccar/lib/grpc-opentelemetry-1.71.0.jar
-share/traccar/lib/grpc-protobuf-1.71.0.jar
-share/traccar/lib/grpc-protobuf-lite-1.71.0.jar
-share/traccar/lib/grpc-rls-1.71.0.jar
-share/traccar/lib/grpc-services-1.71.0.jar
-share/traccar/lib/grpc-stub-1.71.0.jar
-share/traccar/lib/grpc-util-1.71.0.jar
-share/traccar/lib/grpc-xds-1.71.0.jar
+share/traccar/lib/grpc-alts-1.76.2.jar
+share/traccar/lib/grpc-api-1.76.2.jar
+share/traccar/lib/grpc-auth-1.76.2.jar
+share/traccar/lib/grpc-context-1.76.2.jar
+share/traccar/lib/grpc-core-1.76.2.jar
+share/traccar/lib/grpc-google-cloud-storage-v2-2.62.0.jar
+share/traccar/lib/grpc-googleapis-1.76.2.jar
+share/traccar/lib/grpc-grpclb-1.76.2.jar
+share/traccar/lib/grpc-inprocess-1.76.2.jar
+share/traccar/lib/grpc-netty-shaded-1.76.2.jar
+share/traccar/lib/grpc-opentelemetry-1.76.2.jar
+share/traccar/lib/grpc-protobuf-1.76.2.jar
+share/traccar/lib/grpc-protobuf-lite-1.76.2.jar
+share/traccar/lib/grpc-rls-1.76.2.jar
+share/traccar/lib/grpc-services-1.76.2.jar
+share/traccar/lib/grpc-stub-1.76.2.jar
+share/traccar/lib/grpc-util-1.76.2.jar
+share/traccar/lib/grpc-xds-1.76.2.jar
share/traccar/lib/gson-2.13.2.jar
-share/traccar/lib/guava-33.4.0-jre.jar
+share/traccar/lib/guava-33.5.0-jre.jar
share/traccar/lib/guice-7.0.0.jar
share/traccar/lib/guice-bridge-4.0.0-M3.jar
share/traccar/lib/guice-servlet-7.0.0.jar
share/traccar/lib/h2-2.4.240.jar
-share/traccar/lib/hivemq-mqtt-client-1.3.10.jar
+share/traccar/lib/hivemq-mqtt-client-1.3.12.jar
share/traccar/lib/hk2-api-4.0.0-M3.jar
share/traccar/lib/hk2-locator-4.0.0-M3.jar
share/traccar/lib/hk2-utils-4.0.0-M3.jar
-share/traccar/lib/http-auth-2.40.3.jar
-share/traccar/lib/http-auth-aws-2.40.3.jar
-share/traccar/lib/http-auth-aws-eventstream-2.40.3.jar
-share/traccar/lib/http-auth-spi-2.40.3.jar
-share/traccar/lib/http-client-spi-2.40.3.jar
+share/traccar/lib/http-auth-2.41.34.jar
+share/traccar/lib/http-auth-aws-2.41.34.jar
+share/traccar/lib/http-auth-aws-eventstream-2.41.34.jar
+share/traccar/lib/http-auth-spi-2.41.34.jar
+share/traccar/lib/http-client-spi-2.41.34.jar
share/traccar/lib/httpclient-4.5.14.jar
share/traccar/lib/httpclient5-5.3.1.jar
share/traccar/lib/httpcore-4.4.16.jar
share/traccar/lib/httpcore5-5.2.4.jar
share/traccar/lib/httpcore5-h2-5.2.4.jar
-share/traccar/lib/ical4j-4.2.1.jar
-share/traccar/lib/identity-spi-2.40.3.jar
+share/traccar/lib/ical4j-4.2.3.jar
+share/traccar/lib/identity-spi-2.41.34.jar
share/traccar/lib/itu-1.14.0.jar
-share/traccar/lib/j2objc-annotations-3.0.0.jar
-share/traccar/lib/jackson-annotations-2.19.2.jar
-share/traccar/lib/jackson-core-2.19.2.jar
-share/traccar/lib/jackson-databind-2.19.2.jar
-share/traccar/lib/jackson-dataformat-yaml-2.19.2.jar
-share/traccar/lib/jackson-datatype-jakarta-jsonp-2.19.2.jar
-share/traccar/lib/jackson-jaxrs-base-2.19.2.jar
-share/traccar/lib/jackson-jaxrs-json-provider-2.19.2.jar
-share/traccar/lib/jackson-module-blackbird-2.19.2.jar
-share/traccar/lib/jackson-module-jakarta-xmlbind-annotations-2.19.2.jar
-share/traccar/lib/jackson-module-jaxb-annotations-2.19.2.jar
+share/traccar/lib/j2objc-annotations-3.1.jar
+share/traccar/lib/jackson-annotations-2.20.jar
+share/traccar/lib/jackson-core-2.20.1.jar
+share/traccar/lib/jackson-databind-2.20.1.jar
+share/traccar/lib/jackson-dataformat-xml-2.20.1.jar
+share/traccar/lib/jackson-dataformat-yaml-2.20.1.jar
+share/traccar/lib/jackson-datatype-jakarta-jsonp-2.20.1.jar
+share/traccar/lib/jackson-datatype-jsr310-2.20.1.jar
+share/traccar/lib/jackson-jaxrs-base-2.20.1.jar
+share/traccar/lib/jackson-jaxrs-json-provider-2.20.1.jar
+share/traccar/lib/jackson-module-blackbird-2.20.1.jar
+share/traccar/lib/jackson-module-jakarta-xmlbind-annotations-2.20.1.jar
+share/traccar/lib/jackson-module-jaxb-annotations-2.20.1.jar
share/traccar/lib/jakarta.activation-2.0.1.jar
share/traccar/lib/jakarta.activation-api-2.1.3.jar
share/traccar/lib/jakarta.annotation-api-3.0.0.jar
@@ -177,47 +184,47 @@ share/traccar/lib/jaxb-api-2.3.1.jar
share/traccar/lib/jcip-annotations-1.0-1.jar
share/traccar/lib/jcl-over-slf4j-1.7.30.jar
share/traccar/lib/jctools-core-2.1.2.jar
-share/traccar/lib/jedis-7.1.0.jar
-share/traccar/lib/jersey-client-4.0.0.jar
-share/traccar/lib/jersey-common-4.0.0.jar
-share/traccar/lib/jersey-container-servlet-4.0.0.jar
-share/traccar/lib/jersey-entity-filtering-4.0.0.jar
-share/traccar/lib/jersey-hk2-4.0.0.jar
-share/traccar/lib/jersey-media-json-jackson-4.0.0.jar
-share/traccar/lib/jersey-server-4.0.0.jar
-share/traccar/lib/jetty-alpn-client-12.1.5.jar
-share/traccar/lib/jetty-annotations-12.1.5.jar
-share/traccar/lib/jetty-client-12.1.5.jar
-share/traccar/lib/jetty-compression-common-12.1.5.jar
-share/traccar/lib/jetty-compression-gzip-12.1.5.jar
-share/traccar/lib/jetty-compression-server-12.1.5.jar
-share/traccar/lib/jetty-ee-webapp-12.1.5.jar
-share/traccar/lib/jetty-ee10-annotations-12.1.5.jar
-share/traccar/lib/jetty-ee10-plus-12.1.5.jar
-share/traccar/lib/jetty-ee10-proxy-12.1.5.jar
-share/traccar/lib/jetty-ee10-servlet-12.1.5.jar
-share/traccar/lib/jetty-ee10-servlets-12.1.5.jar
-share/traccar/lib/jetty-ee10-webapp-12.1.5.jar
-share/traccar/lib/jetty-ee10-websocket-jakarta-client-12.1.5.jar
-share/traccar/lib/jetty-ee10-websocket-jakarta-common-12.1.5.jar
-share/traccar/lib/jetty-ee10-websocket-jakarta-server-12.1.5.jar
-share/traccar/lib/jetty-ee10-websocket-jetty-server-12.1.5.jar
-share/traccar/lib/jetty-ee10-websocket-servlet-12.1.5.jar
-share/traccar/lib/jetty-http-12.1.5.jar
-share/traccar/lib/jetty-io-12.1.5.jar
-share/traccar/lib/jetty-jndi-12.1.5.jar
-share/traccar/lib/jetty-plus-12.1.5.jar
-share/traccar/lib/jetty-security-12.1.5.jar
-share/traccar/lib/jetty-server-12.1.5.jar
-share/traccar/lib/jetty-session-12.1.5.jar
-share/traccar/lib/jetty-util-12.1.5.jar
-share/traccar/lib/jetty-websocket-core-client-12.1.5.jar
-share/traccar/lib/jetty-websocket-core-common-12.1.5.jar
-share/traccar/lib/jetty-websocket-core-server-12.1.5.jar
-share/traccar/lib/jetty-websocket-jetty-api-12.1.5.jar
-share/traccar/lib/jetty-websocket-jetty-common-12.1.5.jar
-share/traccar/lib/jetty-websocket-jetty-server-12.1.5.jar
-share/traccar/lib/jetty-xml-12.1.5.jar
+share/traccar/lib/jedis-7.3.0.jar
+share/traccar/lib/jersey-client-4.0.2.jar
+share/traccar/lib/jersey-common-4.0.2.jar
+share/traccar/lib/jersey-container-servlet-4.0.2.jar
+share/traccar/lib/jersey-entity-filtering-4.0.2.jar
+share/traccar/lib/jersey-hk2-4.0.2.jar
+share/traccar/lib/jersey-media-json-jackson-4.0.2.jar
+share/traccar/lib/jersey-server-4.0.2.jar
+share/traccar/lib/jetty-alpn-client-12.1.6.jar
+share/traccar/lib/jetty-annotations-12.1.6.jar
+share/traccar/lib/jetty-client-12.1.6.jar
+share/traccar/lib/jetty-compression-common-12.1.6.jar
+share/traccar/lib/jetty-compression-gzip-12.1.6.jar
+share/traccar/lib/jetty-compression-server-12.1.6.jar
+share/traccar/lib/jetty-ee-webapp-12.1.6.jar
+share/traccar/lib/jetty-ee10-annotations-12.1.6.jar
+share/traccar/lib/jetty-ee10-plus-12.1.6.jar
+share/traccar/lib/jetty-ee10-proxy-12.1.6.jar
+share/traccar/lib/jetty-ee10-servlet-12.1.6.jar
+share/traccar/lib/jetty-ee10-servlets-12.1.6.jar
+share/traccar/lib/jetty-ee10-webapp-12.1.6.jar
+share/traccar/lib/jetty-ee10-websocket-jakarta-client-12.1.6.jar
+share/traccar/lib/jetty-ee10-websocket-jakarta-common-12.1.6.jar
+share/traccar/lib/jetty-ee10-websocket-jakarta-server-12.1.6.jar
+share/traccar/lib/jetty-ee10-websocket-jetty-server-12.1.6.jar
+share/traccar/lib/jetty-ee10-websocket-servlet-12.1.6.jar
+share/traccar/lib/jetty-http-12.1.6.jar
+share/traccar/lib/jetty-io-12.1.6.jar
+share/traccar/lib/jetty-jndi-12.1.6.jar
+share/traccar/lib/jetty-plus-12.1.6.jar
+share/traccar/lib/jetty-security-12.1.6.jar
+share/traccar/lib/jetty-server-12.1.6.jar
+share/traccar/lib/jetty-session-12.1.6.jar
+share/traccar/lib/jetty-util-12.1.6.jar
+share/traccar/lib/jetty-websocket-core-client-12.1.6.jar
+share/traccar/lib/jetty-websocket-core-common-12.1.6.jar
+share/traccar/lib/jetty-websocket-core-server-12.1.6.jar
+share/traccar/lib/jetty-websocket-jetty-api-12.1.6.jar
+share/traccar/lib/jetty-websocket-jetty-common-12.1.6.jar
+share/traccar/lib/jetty-websocket-jetty-server-12.1.6.jar
+share/traccar/lib/jetty-xml-12.1.6.jar
share/traccar/lib/jffi-1.3.14-native.jar
share/traccar/lib/jffi-1.3.14.jar
share/traccar/lib/jna-5.18.1.jar
@@ -227,11 +234,12 @@ share/traccar/lib/jnr-constants-0.10.4.j
share/traccar/lib/jnr-ffi-2.2.18.jar
share/traccar/lib/jnr-posix-3.1.21.jar
share/traccar/lib/jnr-x86asm-1.0.2.jar
-share/traccar/lib/json-20250517.jar
+share/traccar/lib/json-20251224.jar
share/traccar/lib/json-schema-validator-2.0.0.jar
share/traccar/lib/json-simple-3.0.2.jar
share/traccar/lib/json-smart-2.5.2.jar
-share/traccar/lib/json-utils-2.40.3.jar
+share/traccar/lib/json-utils-2.41.34.jar
+share/traccar/lib/jspecify-1.0.0.jar
share/traccar/lib/jsr305-3.0.2.jar
share/traccar/lib/jts-core-1.20.0.jar
share/traccar/lib/junixsocket-common-2.10.1.jar
@@ -239,98 +247,113 @@ share/traccar/lib/junixsocket-mysql-2.10
share/traccar/lib/junixsocket-native-common-2.10.1.jar
share/traccar/lib/jxls-2.14.0.jar
share/traccar/lib/jxls-poi-2.14.0.jar
-share/traccar/lib/kafka-clients-4.1.1.jar
+share/traccar/lib/kafka-clients-4.2.0.jar
share/traccar/lib/lang-tag-1.7.jar
share/traccar/lib/liquibase-core-5.0.1.jar
share/traccar/lib/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
share/traccar/lib/log4j-api-2.17.2.jar
share/traccar/lib/logback-core-1.2.13.jar
-share/traccar/lib/lz4-java-1.8.0.jar
-share/traccar/lib/mariadb-java-client-3.5.6.jar
-share/traccar/lib/mcp-0.17.0.jar
-share/traccar/lib/mcp-core-0.17.0.jar
-share/traccar/lib/mcp-json-0.17.0.jar
-share/traccar/lib/mcp-json-jackson2-0.17.0.jar
-share/traccar/lib/metrics-spi-2.40.3.jar
+share/traccar/lib/lz4-java-1.10.1.jar
+share/traccar/lib/mariadb-java-client-3.5.7.jar
+share/traccar/lib/mcp-0.18.1.jar
+share/traccar/lib/mcp-core-0.18.1.jar
+share/traccar/lib/mcp-json-jackson2-0.18.1.jar
+share/traccar/lib/metrics-spi-2.41.34.jar
+share/traccar/lib/msal4j-1.23.1.jar
+share/traccar/lib/msal4j-persistence-extension-1.3.0.jar
share/traccar/lib/mssql-jdbc-13.2.1.jre11.jar
-share/traccar/lib/mysql-connector-j-9.5.0.jar
-share/traccar/lib/netty-buffer-4.2.7.Final.jar
-share/traccar/lib/netty-codec-4.2.7.Final.jar
-share/traccar/lib/netty-codec-base-4.2.7.Final.jar
-share/traccar/lib/netty-codec-compression-4.2.7.Final.jar
-share/traccar/lib/netty-codec-dns-4.2.7.Final.jar
-share/traccar/lib/netty-codec-http-4.2.7.Final.jar
-share/traccar/lib/netty-codec-http2-4.1.126.Final.jar
-share/traccar/lib/netty-codec-marshalling-4.2.7.Final.jar
-share/traccar/lib/netty-codec-mqtt-4.2.7.Final.jar
-share/traccar/lib/netty-codec-protobuf-4.2.7.Final.jar
-share/traccar/lib/netty-common-4.2.7.Final.jar
-share/traccar/lib/netty-handler-4.2.7.Final.jar
-share/traccar/lib/netty-nio-client-2.40.3.jar
-share/traccar/lib/netty-resolver-4.2.7.Final.jar
-share/traccar/lib/netty-resolver-dns-4.2.7.Final.jar
-share/traccar/lib/netty-transport-4.2.7.Final.jar
-share/traccar/lib/netty-transport-classes-epoll-4.1.126.Final.jar
-share/traccar/lib/netty-transport-native-unix-common-4.2.7.Final.jar
+share/traccar/lib/mysql-connector-j-9.6.0.jar
+share/traccar/lib/netty-buffer-4.2.10.Final.jar
+share/traccar/lib/netty-codec-4.2.10.Final.jar
+share/traccar/lib/netty-codec-base-4.2.10.Final.jar
+share/traccar/lib/netty-codec-compression-4.2.10.Final.jar
+share/traccar/lib/netty-codec-dns-4.2.10.Final.jar
+share/traccar/lib/netty-codec-http-4.2.10.Final.jar
+share/traccar/lib/netty-codec-http2-4.1.130.Final.jar
+share/traccar/lib/netty-codec-marshalling-4.2.10.Final.jar
+share/traccar/lib/netty-codec-mqtt-4.2.10.Final.jar
+share/traccar/lib/netty-codec-protobuf-4.2.10.Final.jar
+share/traccar/lib/netty-codec-socks-4.1.130.Final.jar
+share/traccar/lib/netty-common-4.2.10.Final.jar
+share/traccar/lib/netty-handler-4.2.10.Final.jar
+share/traccar/lib/netty-handler-proxy-4.1.130.Final.jar
+share/traccar/lib/netty-nio-client-2.41.34.jar
+share/traccar/lib/netty-resolver-4.2.10.Final.jar
+share/traccar/lib/netty-resolver-dns-4.2.10.Final.jar
+share/traccar/lib/netty-resolver-dns-classes-macos-4.1.128.Final.jar
+share/traccar/lib/netty-resolver-dns-native-macos-4.1.128.Final-osx-x86_64.jar
+share/traccar/lib/netty-tcnative-boringssl-static-2.0.74.Final.jar
+share/traccar/lib/netty-tcnative-classes-2.0.74.Final.jar
+share/traccar/lib/netty-transport-4.2.10.Final.jar
+share/traccar/lib/netty-transport-classes-epoll-4.1.130.Final.jar
+share/traccar/lib/netty-transport-classes-kqueue-4.1.130.Final.jar
+share/traccar/lib/netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar
+share/traccar/lib/netty-transport-native-kqueue-4.1.130.Final-osx-x86_64.jar
+share/traccar/lib/netty-transport-native-unix-common-4.2.10.Final.jar
share/traccar/lib/nimbus-jose-jwt-10.6.jar
-share/traccar/lib/oauth2-oidc-sdk-11.30.1.jar
+share/traccar/lib/oauth2-oidc-sdk-11.33.jar
share/traccar/lib/opencensus-api-0.31.1.jar
share/traccar/lib/opencensus-contrib-http-util-0.31.1.jar
share/traccar/lib/opencsv-5.12.0.jar
share/traccar/lib/openlocationcode-1.0.4.jar
-share/traccar/lib/opentelemetry-api-1.47.0.jar
-share/traccar/lib/opentelemetry-context-1.47.0.jar
+share/traccar/lib/opentelemetry-api-1.52.0.jar
+share/traccar/lib/opentelemetry-common-1.52.0.jar
+share/traccar/lib/opentelemetry-context-1.52.0.jar
share/traccar/lib/opentelemetry-extension-incubator-1.35.0-alpha.jar
share/traccar/lib/opentelemetry-gcp-resources-1.37.0-alpha.jar
share/traccar/lib/opentelemetry-grpc-1.6-2.1.0-alpha.jar
share/traccar/lib/opentelemetry-instrumentation-api-2.1.0.jar
share/traccar/lib/opentelemetry-instrumentation-api-incubator-2.1.0-alpha.jar
-share/traccar/lib/opentelemetry-sdk-1.47.0.jar
-share/traccar/lib/opentelemetry-sdk-common-1.47.0.jar
-share/traccar/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.47.0.jar
-share/traccar/lib/opentelemetry-sdk-logs-1.47.0.jar
-share/traccar/lib/opentelemetry-sdk-metrics-1.47.0.jar
-share/traccar/lib/opentelemetry-sdk-trace-1.47.0.jar
+share/traccar/lib/opentelemetry-sdk-1.52.0.jar
+share/traccar/lib/opentelemetry-sdk-common-1.52.0.jar
+share/traccar/lib/opentelemetry-sdk-extension-autoconfigure-spi-1.52.0.jar
+share/traccar/lib/opentelemetry-sdk-logs-1.52.0.jar
+share/traccar/lib/opentelemetry-sdk-metrics-1.52.0.jar
+share/traccar/lib/opentelemetry-sdk-trace-1.52.0.jar
share/traccar/lib/opentelemetry-semconv-1.29.0-alpha.jar
share/traccar/lib/osgi-resource-locator-3.0.0.jar
share/traccar/lib/perfmark-api-0.27.0.jar
share/traccar/lib/poi-5.2.2.jar
share/traccar/lib/poi-ooxml-5.2.2.jar
share/traccar/lib/poi-ooxml-lite-5.2.2.jar
-share/traccar/lib/postgresql-42.7.8.jar
-share/traccar/lib/profiles-2.40.3.jar
-share/traccar/lib/proto-google-cloud-firestore-bundle-v1-3.32.2.jar
-share/traccar/lib/proto-google-cloud-firestore-v1-3.32.2.jar
+share/traccar/lib/postgresql-42.7.10.jar
+share/traccar/lib/profiles-2.41.34.jar
+share/traccar/lib/proto-google-cloud-firestore-bundle-v1-3.35.1.jar
+share/traccar/lib/proto-google-cloud-firestore-v1-3.35.1.jar
share/traccar/lib/proto-google-cloud-monitoring-v3-3.52.0.jar
-share/traccar/lib/proto-google-cloud-storage-v2-2.56.0.jar
-share/traccar/lib/proto-google-common-protos-2.61.0.jar
-share/traccar/lib/proto-google-iam-v1-1.56.0.jar
-share/traccar/lib/protobuf-java-4.33.2.jar
+share/traccar/lib/proto-google-cloud-storage-v2-2.62.0.jar
+share/traccar/lib/proto-google-common-protos-2.64.1.jar
+share/traccar/lib/proto-google-iam-v1-1.59.1.jar
+share/traccar/lib/protobuf-java-4.33.5.jar
share/traccar/lib/protobuf-java-util-3.25.8.jar
-share/traccar/lib/protocol-core-2.40.3.jar
+share/traccar/lib/protocol-core-2.41.34.jar
share/traccar/lib/re2j-1.8.jar
share/traccar/lib/reactive-streams-1.0.4.jar
-share/traccar/lib/reactor-core-3.7.0.jar
+share/traccar/lib/reactor-core-3.7.14.jar
+share/traccar/lib/reactor-netty-core-1.2.13.jar
+share/traccar/lib/reactor-netty-http-1.2.13.jar
share/traccar/lib/redis-authx-core-0.1.1-beta2.jar
-share/traccar/lib/regions-2.40.3.jar
-share/traccar/lib/retries-2.40.3.jar
-share/traccar/lib/retries-spi-2.40.3.jar
+share/traccar/lib/regions-2.41.34.jar
+share/traccar/lib/retries-2.41.34.jar
+share/traccar/lib/retries-spi-2.41.34.jar
share/traccar/lib/rxjava-2.2.21.jar
-share/traccar/lib/sdk-core-2.40.3.jar
+share/traccar/lib/sdk-core-2.41.34.jar
share/traccar/lib/shared-resourcemapping-0.33.0.jar
share/traccar/lib/slf4j-api-2.0.17.jar
share/traccar/lib/slf4j-jdk14-2.0.17.jar
share/traccar/lib/snakeyaml-2.5.jar
share/traccar/lib/snappy-java-1.1.10.7.jar
-share/traccar/lib/sns-2.40.3.jar
+share/traccar/lib/sns-2.41.34.jar
share/traccar/lib/spatial4j-0.8.jar
-share/traccar/lib/third-party-jackson-core-2.40.3.jar
+share/traccar/lib/stax2-api-4.2.2.jar
+share/traccar/lib/third-party-jackson-core-2.41.34.jar
share/traccar/lib/threeten-extra-1.8.0.jar
share/traccar/lib/threetenbp-1.7.0.jar
-share/traccar/lib/utils-2.40.3.jar
-share/traccar/lib/utils-lite-2.40.3.jar
+share/traccar/lib/utils-2.41.34.jar
+share/traccar/lib/utils-lite-2.41.34.jar
share/traccar/lib/velocity-engine-core-2.4.1.jar
share/traccar/lib/velocity-tools-generic-3.1.jar
+share/traccar/lib/woodstox-core-7.0.0.jar
share/traccar/lib/xmlbeans-5.0.3.jar
share/traccar/lib/zstd-jni-1.5.6-10.jar
share/traccar/logs/
@@ -698,9 +721,9 @@ share/traccar/web/
share/traccar/web/apple-touch-icon-180x180.png
share/traccar/web/assets/
share/traccar/web/assets/alarm-DM0YUa2r.mp3
-share/traccar/web/assets/index-DlG-7fC8.js
-share/traccar/web/assets/index-DxDEs5mn.css
-share/traccar/web/assets/workbox-window.prod.es5-vqzQaGvo.js
+share/traccar/web/assets/index-8BRSFcR5.css
+share/traccar/web/assets/index-BIrtKF6J.js
+share/traccar/web/assets/workbox-window.prod.es5-BIl4cyR9.js
share/traccar/web/favicon.ico
share/traccar/web/index.html
share/traccar/web/logo.svg
Hello,

Here is a diff for geo/traccar 6.12.1
Tested on amd64

Best Regards

Re: New: benchmarks/vkmark - a Vulkan benchmark

On Sun Feb 22, 2026 at 12:44:27PM -0800, Thomas Frohwein wrote:
> Hi,
>
> Please find attached the port of vkmark, a 3D benchmark in the vein of
> the venerable glmark2, but for vulkan. It is used on Linux and there is
> also a port on FreeBSD. Having this will help measure our GPU
> performance.
>
> The GH homepage [1] shows some examples for how to run it with
> different options. There is some data on openbenchmarking.org [2] that
> could be carefully used for comparison (their version seems a few
> years old now). I also found a little post on the background behind
> this project at [3].
>
> I ran the default (just `vkmark`) on my desktop PC with Radeon RX 6700
> XT and got a score of 10714.
>
> DESCR:
> vkmark is an extensible Vulkan benchmarking suite with targeted,
> configurable scenes. vkmark offers a suite of scenes that can be used to
> measure various aspects of Vulkan performance. The way in which each
> scene is rendered is configurable through a set of options. In vkmark, a
> benchmark is defined as a scene plus a set of option values. You can
> specify the list and order of the benchmarks to run.
>
> ok to import?
>
> [1] https://github.com/vkmark/vkmark
> [2] https://openbenchmarking.org/test/pts/vkmark
> [3]
> https://www.collabora.com/news-and-blog/blog/2017/07/18/vkmark-more-than-a-vulkan-benchmark/


Does not build for me:

FAILED: src/libvkmark-core.a.p/vulkan_state.cpp.o
c++ -Isrc/libvkmark-core.a.p -Isrc -I../vkmark-2025.01/src -I/usr/local/include -fdiagnostics-color=always -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST -D_FILE_OFFS
ET_BITS=64 -Wall -Winvalid-pch -std=c++17 '-DVKMARK_WINDOW_SYSTEM_DIR="/usr/local/lib/vkmark"' '-DVKMARK_DATA_DIR="/usr/local/share/vkmark"' '-DVKMARK_VERSION_STR="2025.01"
' -O2 -pipe -fPIC -MD -MQ src/libvkmark-core.a.p/vulkan_state.cpp.o -MF src/libvkmark-core.a.p/vulkan_state.cpp.o.d -o src/libvkmark-core.a.p/vulkan_state.cpp.o -c ../vkmar
k-2025.01/src/vulkan_state.cpp
../vkmark-2025.01/src/vulkan_state.cpp:203:14: warning: 'setPfnUserCallback' is deprecated: This setter is deprecated. Use the one taking a function pointer type from the v
k-namespace instead. [-Wdeprecated-declarations]
203 | .setPfnUserCallback(debug_callback);
| ^
/usr/local/include/vulkan/vulkan_structs.hpp:32329:5: note: 'setPfnUserCallback' has been explicitly marked deprecated here
32329 | VULKAN_HPP_DEPRECATED( "This setter is deprecated. Use the one taking a function pointer type from the vk-namespace instead." )
| ^
/usr/local/include/vulkan/vulkan_hpp_macros.hpp:213:42: note: expanded from macro 'VULKAN_HPP_DEPRECATED'
213 | # define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
| ^
../vkmark-2025.01/src/vulkan_state.cpp:207:24: error: no matching member function for call to 'createDebugUtilsMessengerEXT'
207 | instance().createDebugUtilsMessengerEXT(debug_create_info, nullptr, dud),
| ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/vulkan/vulkan_funcs.hpp:16273:59: note: candidate function template not viable: no known conversion from 'const DebugUtilsMessengerCreateInfoEXT' to 'con
st DebugUtilsMessengerCreateInfoEXT *' for 1st argument; take the address of the argument with &
16273 | VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT * pCreateInfo,
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/vulkan/vulkan_funcs.hpp:16289:107: note: candidate template ignored: requirement 'detail::isDispatchLoader<(anonymous namespace)::DebugUtilsDispatcher>::
value' was not satisfied [with Dispatch = DebugUtilsDispatcher]
16289 | VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DebugUtilsMessengerEXT>::type Instance::createDebugUtilsMessengerEXT(
| ^
1 warning and 1 error generated.

Re: databases/timescaledb 2.25.1

ping...

On 17.02.2026 20:37, Mark Patruck wrote:
>Update databases/timescaledb to 2.25.1 (+ extras) released today.
>
>I'm running with 2.25.0 for a few days already and didn't spot
>any problems.
>
>2.25.1 improves performance and fixes small bugs.
>
>Changes since in-ports 2.23.1:
>
>https://github.com/timescale/timescaledb/releases/tag/2.24.0
>https://github.com/timescale/timescaledb/releases/tag/2.25.0
>https://github.com/timescale/timescaledb/releases/tag/2.25.1
>
>
>No issues running together with net/zabbix (patch for supporting
>timescaledb 2.25.1 sent to ports@ before)
>
>
>Index: Makefile
>===================================================================
>RCS file: /cvs/ports/databases/timescaledb/Makefile,v
>retrieving revision 1.35
>diff -u -p -r1.35 Makefile
>--- Makefile 23 Nov 2025 03:08:24 -0000 1.35
>+++ Makefile 17 Feb 2026 19:28:04 -0000
>@@ -4,10 +4,10 @@ ONLY_FOR_ARCHS = ${LP64_ARCHS}
> GH_ACCOUNT = timescale
> GH_PROJECT = timescaledb
>-GH_TAGNAME = 2.23.1
>+GH_TAGNAME = 2.25.1
> # -extras is only used for 2.15.X-fix_hypertable_foreign_keys.sql
>-EXTRAS_COMMIT = ba47f5dff02e8d75268cb09dd3c30101cf12dd6f
>+EXTRAS_COMMIT = a9a9b9967a3bd37c5495f2f68f10084ad17ec05f
> DIST_TUPLE += github timescale timescaledb-extras ${EXTRAS_COMMIT} _extras
> CATEGORIES = databases
>Index: distinfo
>===================================================================
>RCS file: /cvs/ports/databases/timescaledb/distinfo,v
>retrieving revision 1.29
>diff -u -p -r1.29 distinfo
>--- distinfo 23 Nov 2025 03:08:24 -0000 1.29
>+++ distinfo 17 Feb 2026 19:28:04 -0000
>@@ -1,4 +1,4 @@
>-SHA256 (timescale-timescaledb-extras-ba47f5dff02e8d75268cb09dd3c30101cf12dd6f.tar.gz) = MFKGKubWrbok/Gqg6qo3sBn/5J9H1uHK2C9O682MCAw=
>-SHA256 (timescaledb-2.23.1.tar.gz) = JldfqeKHphB6a/Fiusq0kysN8ZvuONKMEy+aLWWR1kc=
>-SIZE (timescale-timescaledb-extras-ba47f5dff02e8d75268cb09dd3c30101cf12dd6f.tar.gz) = 17811
>-SIZE (timescaledb-2.23.1.tar.gz) = 8276671
>+SHA256 (timescale-timescaledb-extras-a9a9b9967a3bd37c5495f2f68f10084ad17ec05f.tar.gz) = ynoVAALGNMSoM9Mi6ZnRZTliWBoiyL8kmslLC3GWMM8=
>+SHA256 (timescaledb-2.25.1.tar.gz) = kUKM1gtsuY/AzSXwnpAvkZxnDZhxGp7g2jL0PnoleqE=
>+SIZE (timescale-timescaledb-extras-a9a9b9967a3bd37c5495f2f68f10084ad17ec05f.tar.gz) = 24216
>+SIZE (timescaledb-2.25.1.tar.gz) = 8282380
>Index: pkg/PLIST
>===================================================================
>RCS file: /cvs/ports/databases/timescaledb/pkg/PLIST,v
>retrieving revision 1.30
>diff -u -p -r1.30 PLIST
>--- pkg/PLIST 23 Nov 2025 03:08:25 -0000 1.30
>+++ pkg/PLIST 17 Feb 2026 19:28:04 -0000
>@@ -1,5 +1,4 @@
> @so lib/postgresql/timescaledb-${GH_TAGNAME}.so
>-@so lib/postgresql/timescaledb-invalidations-${GH_TAGNAME}.so
> @so lib/postgresql/timescaledb-tsl-${GH_TAGNAME}.so
> @so lib/postgresql/timescaledb.so
> share/doc/pkg-readmes/${PKGSTEM}
>@@ -46,6 +45,9 @@ share/postgresql/extension/timescaledb--
> share/postgresql/extension/timescaledb--2.22.0--${GH_TAGNAME}.sql
> share/postgresql/extension/timescaledb--2.22.1--${GH_TAGNAME}.sql
> share/postgresql/extension/timescaledb--2.23.0--${GH_TAGNAME}.sql
>+share/postgresql/extension/timescaledb--2.23.1--${GH_TAGNAME}.sql
>+share/postgresql/extension/timescaledb--2.24.0--${GH_TAGNAME}.sql
>+share/postgresql/extension/timescaledb--2.25.0--${GH_TAGNAME}.sql
> share/postgresql/extension/timescaledb--${GH_TAGNAME}.sql
> share/postgresql/extension/timescaledb--2.9.0--${GH_TAGNAME}.sql
> share/postgresql/extension/timescaledb--2.9.1--${GH_TAGNAME}.sql
>
>
>--
>Mark Patruck ( mark at wrapped.cx )
>GPG key 0xF2865E51 / 187F F6D3 EE04 1DCE 1C74 F644 0D3C F66F F286 5E51
>https://www.wrapped.cx
>

--
Mark Patruck ( mark at wrapped.cx )
GPG key 0xF2865E51 / 187F F6D3 EE04 1DCE 1C74 F644 0D3C F66F F286 5E51

https://www.wrapped.cx

[maintainer update] remind 6.2.3 -> 6.2.4

This patch updates remind from 6.2.3 to 6.2.4.

Tested on amd64.

Inndex: Makefile
===================================================================
RCS file: /cvs/ports/misc/remind/Makefile,v
diff -u -p -r1.100 Makefile
--- Makefile 9 Feb 2026 09:15:29 -0000 1.100
+++ Makefile 20 Feb 2026 12:49:53 -0000
@@ -1,7 +1,7 @@
COMMENT= scripting language for reminders, with a Tk front end

-DISTNAME= remind-06.02.03
-PKGNAME= remind-6.2.3
+DISTNAME= remind-06.02.04
+PKGNAME= remind-6.2.4

CATEGORIES= misc

Index: distinfo
===================================================================
RCS file: /cvs/ports/misc/remind/distinfo,v
diff -u -p -r1.69 distinfo
--- distinfo 9 Feb 2026 09:15:29 -0000 1.69
+++ distinfo 20 Feb 2026 12:49:53 -0000
@@ -1,2 +1,2 @@
-SHA256 (remind-06.02.03.tar.gz) = Fa8rWHeT/ene3VJla7s9kjWaQvOs/KVx/kBiyrAZP4A=
-SIZE (remind-06.02.03.tar.gz) = 9046184
+SHA256 (remind-06.02.04.tar.gz) = wU/ZVHxapJ22hkBD4P8E076HE6C3ldwN9WEwTsHNNTY=
+SIZE (remind-06.02.04.tar.gz) = 9054133

Re: ftp(1): parse fractional seconds in MDTM responses

diff is full of spaces which should be tabs.


On 2026/02/22 22:07, Benjamin Lee McQueen wrote:
> hello,
>
> i updated the patch, to actually show the parsed fractional seconds.
>
> here is the format it will show in (timestamp not date)
>
> 06:00:00.PARSED_FRACTIONAL_SECONDS
>
> here is the diff:
>
> Index: cmds.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ftp/cmds.c,v
> diff -u -p -u -p -r1.85 cmds.c
> --- cmds.c 8 Mar 2023 04:43:11 -0000 1.85
> +++ cmds.c 18 Feb 2026 22:48:04 -0000
> @@ -1587,19 +1587,39 @@ sizecmd(int argc, char *argv[])
> void
> modtime(int argc, char *argv[])
> {
> - time_t mtime;
> -
> + struct timespec mtime;
> if ((argc < 2 && !another(&argc, &argv, "file")) || argc > 2) {
> fprintf(ttyout, "usage: %s file\n", argv[0]);
> code = -1;
> return;
> }
> - mtime = remotemodtime(argv[1], 1);
> - if (mtime != -1)
> - fprintf(ttyout, "%s\t%s", argv[1], asctime(localtime(&mtime)));
> - code = mtime;
> -}
> + mtime = remotemodtime(argv[1], 1);
> + if (mtime.tv_sec != -1) {
> + char timebuf[64];
> + struct tm *tm;
> +
> + tm = localtime(&mtime.tv_sec);
> + strftime(timebuf, sizeof(timebuf), "%a %b %d %H:%M:%S", tm);
>
> + if (mtime.tv_nsec == 0) {
> + fprintf(ttyout, "%s\t%s %d\n", argv[1], timebuf,
> + tm->tm_year + 1900);
> + } else {
> + char nsbuf[16];
> + char *end;
> +
> + snprintf(nsbuf, sizeof(nsbuf), "%09ld", mtime.tv_nsec);
> + end = nsbuf + strlen(nsbuf) - 1;
> + while (end > nsbuf && *end == '0')
> + end--;
> + *(end + 1) = '\0';
> + fprintf(ttyout, "%s\t%s.%s %d\n", argv[1], timebuf,
> + nsbuf, tm->tm_year + 1900);
> + }
> +
> + }
> + code = mtime.tv_sec;
> +}
> /*
> * Show status on remote machine
> */
> Index: extern.h
> ===================================================================
> RCS file: /cvs/src/usr.bin/ftp/extern.h,v
> diff -u -p -u -p -r1.54 extern.h
> --- extern.h 21 May 2024 05:00:48 -0000 1.54
> +++ extern.h 18 Feb 2026 22:48:04 -0000
> @@ -101,7 +101,7 @@ void recvrequest(const char *, const cha
> const char *, int, int);
> char *remglob(char **, int, char **);
> off_t remotesize(const char *, int);
> -time_t remotemodtime(const char *, int);
> +struct timespec remotemodtime(const char *, int);
> void reset(int, char **);
> void rmthelp(int, char **);
> void sethash(int, char **);
> Index: ftp.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ftp/ftp.c,v
> diff -u -p -u -p -r1.109 ftp.c
> --- ftp.c 8 Mar 2023 04:43:11 -0000 1.109
> +++ ftp.c 18 Feb 2026 22:48:04 -0000
> @@ -1204,7 +1204,7 @@ break2:
> if (bytes > 0)
> ptransfer(0);
> if (preserve && (closefunc == fclose)) {
> - mtime = remotemodtime(remote, 0);
> + mtime = remotemodtime(remote, 0).tv_sec;
> if (mtime != -1) {
> struct timespec times[2];
>
> Index: small.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ftp/small.c,v
> diff -u -p -u -p -r1.13 small.c
> --- small.c 8 Mar 2023 04:43:11 -0000 1.13
> +++ small.c 18 Feb 2026 22:48:04 -0000
> @@ -269,7 +269,7 @@ usage:
> if (ret == 0) {
> time_t mtime;
>
> - mtime = remotemodtime(argv[1], 0);
> + mtime = remotemodtime(argv[1], 0).tv_sec;
> if (mtime == -1)
> goto freegetit;
> if (stbuf.st_mtime >= mtime) {
> Index: util.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/ftp/util.c,v
> diff -u -p -u -p -r1.99 util.c
> --- util.c 21 Dec 2025 07:29:03 -0000 1.99
> +++ util.c 18 Feb 2026 22:48:04 -0000
> @@ -602,29 +602,32 @@ remotesize(const char *file, int noisy)
> /*
> * determine last modification time (in GMT) of remote file
> */
> -time_t
> +struct timespec
> remotemodtime(const char *file, int noisy)
> {
> - int overbose;
> - time_t rtime;
> - int ocode;
> + struct timespec rtime;
> + int ocode, overbose;
>
> - overbose = verbose;
> - ocode = code;
> - rtime = -1;
> + overbose = verbose;
> + ocode = code;
> + rtime.tv_sec = -1;
> + rtime.tv_nsec = 0;
> #ifndef SMALL
> if (!debug)
>

Re: [update] lang/gravity to 0.9.0 and adding "static" flavor

On 2026/02/23 02:19, Slava Voronzoff wrote:
> сб, 21 февр. 2026 г. в 22:09, Stuart Henderson <stu@spacehopper.org>:
> >
> > On 2026/02/21 19:25, Slava Voronzoff wrote:
> > > Do you mind also to look in -static flavor part of my patch? This
> > > little gravity thingy really neat to drop in cgi-bin of chroot and
> > > start hacking some little scripts.
> >
> > you still need to copy it into /var/www, so why not copy libc/libm
> > across as well? (easily scripted, and then you don't end up with a copy
> > of the file that doesn't get updated when the libraries change in base)
> >
>
> Hm, interesting idea, but isn't lib update on current will rebuild package?

No, only if the library version changes. (technically only needed if the
library major version changes, though I think pkg_add may update for a
minor version change too).

If the libc<>kernel interface changes (e.g. syscalls), but the
libc<>executables interface does not, there's no bump of library
version.

That doesn't happen all that often, but it does happen.

Sunday, February 22, 2026

PATCH: Fix 10s IPTV join latency in net/igmpproxy (rttable.c)

Hi,

I am using igmpproxy 0.4 on OpenBSD 7.8 for IPTV (with an Amino STB). I noticed a consistent 10-second delay when switching channels.

After analyzing the igmp -d -vv output, the source and the OpenBSD-specific patches, with some AI help, I found a deadlock in the routing logic.

The simple verbose logs (-d -v) during a channel change:

# Here we see the Amino STB to change channels:

RECV Leave message from 192.168.100.48 to 224.0.0.2 (ip_hl 24, data 8)
Leaving group 224.0.251.125 on interface vlan4
RECV V2 member report from 192.168.100.48 to 224.0.251.124 (ip_hl 24, data 8)
Inserted route table entry for 224.0.251.124 on VIF #0
Joining group 224.0.251.124 on interface vlan4

# And then very quickly after we start to receive the actual upstream data from the provider, but the MFC is not updated as igmpproxy has the route still as inactive:

New origin for route 224.0.251.124 is 217.166.225.124, flood -1

# Why not update the route entry already here?!


# Now it takes a 10 seconds cycle for the Amino STB to again explain it wants the channel data.
# This looks like an unnecessary delay.

RECV V2 member report from 192.168.100.48 to 224.0.251.124 (ip_hl 24, data 8)

# And then finally the igmpproxy decides to update the route entry:

Updated route entry for 224.0.251.124 on VIF #0
Adding MFC: 217.166.225.124 -> 224.0.251.124, InpVIf: 1


Wouldn't it be better to just update the MFC at the moment we receive the upstream data?
As we already do know the Amino STB is interested in the stream?!



Detailed technical description:


Technical Description of the Amino IPTV Patch for igmpproxy 0.4
===============================================================

Problem Scenario:
-----------------

When an Amino Set-Top Box (STB) switches channels, it immediately sends an
IGMPv2 Membership Report (Join). The OpenBSD kernel, upon receiving the first
multicast packets from the upstream provider on the WAN interface, generates
an IGMPMSG_NOCACHE upcall to igmpproxy.

In the current OpenBSD port of igmpproxy 0.4, the following sequence causes a
significant delay (approx. 10 seconds):

igmpproxy receives the Join and creates a route entry in rtable.c.

However, the route is initialized with the state ROUTE_ST_INACTIVE.

Because the state is INACTIVE, the function updateKernelRoute is either not
called or blocked by a state-check.

The kernel's Multicast Forwarding Cache (MFC) remains empty for that specific
group.

Multicast traffic is dropped by the kernel until the next IGMP query cycle or
until the internal state-machine finally transitions the route to ACTIVE.

The Solution:
-------------

This patch modifies rtable.c (specifically within the OpenBSD Red-Black tree
implementation) to force a kernel MFC update the moment a route is inserted or
updated, regardless of the INACTIVE state.

Changes:
--------

In rtable.c, inside the function responsible for adding or activating routes
(typically insertRoute or activateRoute in the patched source), we added an
explicit call to:
internUpdateKernelRoute(croute, 1, o);

Why this works:
---------------

By calling internUpdateKernelRoute immediately when the first 'Origin' (source)
is identified for a group, we bypass the elective state-check. We instruct the
OpenBSD kernel to start forwarding the multicast stream from the upstream
interface to the downstream interface immediately. This reduces the
"black screen" time on Amino STBs from 10 seconds to under 3 seconds, as the
stream is available as soon as the hardware is ready to decode it.


Patch file to be applied on after of the already existing patches for this file:


openbsd# cat patch-src_rttable_c_zzz

--- src/rttable.c.orig Mon Feb 23 07:16:22 2026
+++ src/rttable.c Sun Feb 22 21:51:21 2026
@@ -445,6 +445,12 @@
o->flood = downIf;
o->pktcnt = 0;
TAILQ_INSERT_TAIL(&croute->originList, o, next);
+
+ // Fix to activate route pro-actively in early phase not waiting for second join:
+ my_log(LOG_INFO, 0, "Amino-fix: Forcing kernel update for group %s from origin %s",
+ inetFmt(croute->group, s1), inetFmt(originAddr, s2));
+ internUpdateKernelRoute(croute, 1, o);
+
} else {
my_log(LOG_INFO, 0, "Have origin for route %s at %s, pktcnt %d",
inetFmt(croute->group, s1),





I have tested this, and it reduces zap time from 10s to <3s without any side effects on system stability.

It works regardless of the Quickleave option.

I would highly appreciate your feedback on this findings. Specifically, I'm curious if you see any architectural risks in forcing the MFC update at this stage, or if there is a more 'OpenBSD-native' way to bridge this gap between the NOCACHE upcall and the route activation.

Looking forward to your thoughts.


Best regards,

Remco van den Berg

Re: ftp(1): parse fractional seconds in MDTM responses

? cmds.d
? cmdtab.d
? complete.d
? cookie.d
? domacro.d
? fetch.d
? ftp
? ftp.d
? list.d
? main.d
? ruserpass.d
? small.d
? stringlist.d
? util.d
Index: cmds.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/cmds.c,v
diff -u -p -u -p -r1.85 cmds.c
--- cmds.c 8 Mar 2023 04:43:11 -0000 1.85
+++ cmds.c 18 Feb 2026 22:48:04 -0000
@@ -1587,19 +1587,39 @@ sizecmd(int argc, char *argv[])
void
modtime(int argc, char *argv[])
{
- time_t mtime;
-
+ struct timespec mtime;
if ((argc < 2 && !another(&argc, &argv, "file")) || argc > 2) {
fprintf(ttyout, "usage: %s file\n", argv[0]);
code = -1;
return;
}
- mtime = remotemodtime(argv[1], 1);
- if (mtime != -1)
- fprintf(ttyout, "%s\t%s", argv[1], asctime(localtime(&mtime)));
- code = mtime;
-}
+ mtime = remotemodtime(argv[1], 1);
+ if (mtime.tv_sec != -1) {
+ char timebuf[64];
+ struct tm *tm;
+
+ tm = localtime(&mtime.tv_sec);
+ strftime(timebuf, sizeof(timebuf), "%a %b %d %H:%M:%S", tm);

+ if (mtime.tv_nsec == 0) {
+ fprintf(ttyout, "%s\t%s %d\n", argv[1], timebuf,
+ tm->tm_year + 1900);
+ } else {
+ char nsbuf[16];
+ char *end;
+
+ snprintf(nsbuf, sizeof(nsbuf), "%09ld", mtime.tv_nsec);
+ end = nsbuf + strlen(nsbuf) - 1;
+ while (end > nsbuf && *end == '0')
+ end--;
+ *(end + 1) = '\0';
+ fprintf(ttyout, "%s\t%s.%s %d\n", argv[1], timebuf,
+ nsbuf, tm->tm_year + 1900);
+ }
+
+ }
+ code = mtime.tv_sec;
+}
/*
* Show status on remote machine
*/
Index: extern.h
===================================================================
RCS file: /cvs/src/usr.bin/ftp/extern.h,v
diff -u -p -u -p -r1.54 extern.h
--- extern.h 21 May 2024 05:00:48 -0000 1.54
+++ extern.h 18 Feb 2026 22:48:04 -0000
@@ -101,7 +101,7 @@ void recvrequest(const char *, const cha
const char *, int, int);
char *remglob(char **, int, char **);
off_t remotesize(const char *, int);
-time_t remotemodtime(const char *, int);
+struct timespec remotemodtime(const char *, int);
void reset(int, char **);
void rmthelp(int, char **);
void sethash(int, char **);
Index: ftp.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/ftp.c,v
diff -u -p -u -p -r1.109 ftp.c
--- ftp.c 8 Mar 2023 04:43:11 -0000 1.109
+++ ftp.c 18 Feb 2026 22:48:04 -0000
@@ -1204,7 +1204,7 @@ break2:
if (bytes > 0)
ptransfer(0);
if (preserve && (closefunc == fclose)) {
- mtime = remotemodtime(remote, 0);
+ mtime = remotemodtime(remote, 0).tv_sec;
if (mtime != -1) {
struct timespec times[2];

Index: small.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/small.c,v
diff -u -p -u -p -r1.13 small.c
--- small.c 8 Mar 2023 04:43:11 -0000 1.13
+++ small.c 18 Feb 2026 22:48:04 -0000
@@ -269,7 +269,7 @@ usage:
if (ret == 0) {
time_t mtime;

- mtime = remotemodtime(argv[1], 0);
+ mtime = remotemodtime(argv[1], 0).tv_sec;
if (mtime == -1)
goto freegetit;
if (stbuf.st_mtime >= mtime) {
Index: util.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/util.c,v
diff -u -p -u -p -r1.99 util.c
--- util.c 21 Dec 2025 07:29:03 -0000 1.99
+++ util.c 18 Feb 2026 22:48:04 -0000
@@ -602,29 +602,32 @@ remotesize(const char *file, int noisy)
/*
* determine last modification time (in GMT) of remote file
*/
-time_t
+struct timespec
remotemodtime(const char *file, int noisy)
{
- int overbose;
- time_t rtime;
- int ocode;
+ struct timespec rtime;
+ int ocode, overbose;

- overbose = verbose;
- ocode = code;
- rtime = -1;
+ overbose = verbose;
+ ocode = code;
+ rtime.tv_sec = -1;
+ rtime.tv_nsec = 0;
#ifndef SMALL
if (!debug)
#endif /* !SMALL */
verbose = -1;
if (command("MDTM %s", file) == COMPLETE) {
- struct tm timebuf;
- int yy, mo, day, hour, min, sec;
+ fprintf(ttyout, "DEBUG: reply_string = '%s'\n", reply_string);
+ struct tm timebuf;
+ int yy, mo, day, hour, min, sec;
+ char *cp, *ep;
+ long frac, nsec;
+ int i, multiplier, num_digits;
/*
* time-val = 14DIGIT [ "." 1*DIGIT ]
* YYYYMMDDHHMMSS[.sss]
* mdtm-response = "213" SP time-val CRLF / error-response
*/
- /* TODO: parse .sss as well, use timespecs. */
char *timestr = reply_string;

/* Repair `19%02d' bug on server side */
@@ -649,15 +652,40 @@ remotemodtime(const char *file, int nois
timebuf.tm_mon = mo - 1;
timebuf.tm_year = yy - 1900;
timebuf.tm_isdst = -1;
- rtime = mktime(&timebuf);
- if (rtime == -1 && (noisy
+
+ cp = strchr(reply_string, '.');
+ if (cp != NULL) {
+ cp++;
+ ep = cp;
+ while (isdigit((unsigned char)*ep))
+ ep++;
+ num_digits = ep - cp;
+ if (num_digits == 0 || num_digits > 9)
+ nsec = 0;
+ else {
+ frac = 0;
+ for (i = 0; i < num_digits; i++)
+ frac = frac * 10 + (cp[i] - '0');
+ multiplier = 1;
+ for (i = num_digits; i < 9; i++)
+ multiplier *= 10;
+ nsec = frac * multiplier;
+ }
+ } else
+ nsec = 0;
+
+ rtime.tv_sec = mktime(&timebuf);
+ rtime.tv_nsec = nsec;
+ if (rtime.tv_sec == -1 && (noisy
#ifndef SMALL
|| debug
#endif /* !SMALL */
))
- fprintf(ttyout, "Can't convert %s to a time.\n", reply_string);
+ fprintf(ttyout, "Can't convert %s to a time.\n",
+ reply_string);
else
- rtime += timebuf.tm_gmtoff; /* conv. local -> GMT */
+ /* conv. local -> GMT */
+ rtime.tv_sec += timebuf.tm_gmtoff;
} else if (noisy
#ifndef SMALL
&& !debug
@@ -667,11 +695,10 @@ remotemodtime(const char *file, int nois
fputc('\n', ttyout);
}
verbose = overbose;
- if (rtime == -1)
+ if (rtime.tv_sec == -1)
code = ocode;
return (rtime);
}
-
/*
* Ensure file is in or under dir.
* Returns 1 if so, 0 if not (or an error occurred).
hello,

i updated the patch, to actually show the parsed fractional seconds.

here is the format it will show in (timestamp not date)

06:00:00.PARSED_FRACTIONAL_SECONDS

here is the diff:

Index: cmds.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/cmds.c,v
diff -u -p -u -p -r1.85 cmds.c
--- cmds.c 8 Mar 2023 04:43:11 -0000 1.85
+++ cmds.c 18 Feb 2026 22:48:04 -0000
@@ -1587,19 +1587,39 @@ sizecmd(int argc, char *argv[])
void
modtime(int argc, char *argv[])
{
- time_t mtime;
-
+ struct timespec mtime;
if ((argc < 2 && !another(&argc, &argv, "file")) || argc > 2) {
fprintf(ttyout, "usage: %s file\n", argv[0]);
code = -1;
return;
}
- mtime = remotemodtime(argv[1], 1);
- if (mtime != -1)
- fprintf(ttyout, "%s\t%s", argv[1], asctime(localtime(&mtime)));
- code = mtime;
-}
+ mtime = remotemodtime(argv[1], 1);
+ if (mtime.tv_sec != -1) {
+ char timebuf[64];
+ struct tm *tm;
+
+ tm = localtime(&mtime.tv_sec);
+ strftime(timebuf, sizeof(timebuf), "%a %b %d %H:%M:%S", tm);

+ if (mtime.tv_nsec == 0) {
+ fprintf(ttyout, "%s\t%s %d\n", argv[1], timebuf,
+ tm->tm_year + 1900);
+ } else {
+ char nsbuf[16];
+ char *end;
+
+ snprintf(nsbuf, sizeof(nsbuf), "%09ld", mtime.tv_nsec);
+ end = nsbuf + strlen(nsbuf) - 1;
+ while (end > nsbuf && *end == '0')
+ end--;
+ *(end + 1) = '\0';
+ fprintf(ttyout, "%s\t%s.%s %d\n", argv[1], timebuf,
+ nsbuf, tm->tm_year + 1900);
+ }
+
+ }
+ code = mtime.tv_sec;
+}
/*
* Show status on remote machine
*/
Index: extern.h
===================================================================
RCS file: /cvs/src/usr.bin/ftp/extern.h,v
diff -u -p -u -p -r1.54 extern.h
--- extern.h 21 May 2024 05:00:48 -0000 1.54
+++ extern.h 18 Feb 2026 22:48:04 -0000
@@ -101,7 +101,7 @@ void recvrequest(const char *, const cha
const char *, int, int);
char *remglob(char **, int, char **);
off_t remotesize(const char *, int);
-time_t remotemodtime(const char *, int);
+struct timespec remotemodtime(const char *, int);
void reset(int, char **);
void rmthelp(int, char **);
void sethash(int, char **);
Index: ftp.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/ftp.c,v
diff -u -p -u -p -r1.109 ftp.c
--- ftp.c 8 Mar 2023 04:43:11 -0000 1.109
+++ ftp.c 18 Feb 2026 22:48:04 -0000
@@ -1204,7 +1204,7 @@ break2:
if (bytes > 0)
ptransfer(0);
if (preserve && (closefunc == fclose)) {
- mtime = remotemodtime(remote, 0);
+ mtime = remotemodtime(remote, 0).tv_sec;
if (mtime != -1) {
struct timespec times[2];

Index: small.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/small.c,v
diff -u -p -u -p -r1.13 small.c
--- small.c 8 Mar 2023 04:43:11 -0000 1.13
+++ small.c 18 Feb 2026 22:48:04 -0000
@@ -269,7 +269,7 @@ usage:
if (ret == 0) {
time_t mtime;

- mtime = remotemodtime(argv[1], 0);
+ mtime = remotemodtime(argv[1], 0).tv_sec;
if (mtime == -1)
goto freegetit;
if (stbuf.st_mtime >= mtime) {
Index: util.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/util.c,v
diff -u -p -u -p -r1.99 util.c
--- util.c 21 Dec 2025 07:29:03 -0000 1.99
+++ util.c 18 Feb 2026 22:48:04 -0000
@@ -602,29 +602,32 @@ remotesize(const char *file, int noisy)
/*
* determine last modification time (in GMT) of remote file
*/
-time_t
+struct timespec
remotemodtime(const char *file, int noisy)
{
- int overbose;
- time_t rtime;
- int ocode;
+ struct timespec rtime;
+ int ocode, overbose;

- overbose = verbose;
- ocode = code;
- rtime = -1;
+ overbose = verbose;
+ ocode = code;
+ rtime.tv_sec = -1;
+ rtime.tv_nsec = 0;
#ifndef SMALL
if (!debug)

Re: signify-like for encryption?

On 2/23/26 00:23, Slava Voronzoff wrote:
> Hi, I played recently with signify and love it. Little useful tool,
> pure OpenBSD style. Is there something like this for encryption?
>
You might try Age: https://github.com/FiloSottile/age

Brad

Re: [update] lang/gravity to 0.9.0 and adding "static" flavor

On Mon, 23 Feb 2026 00:19:48 +0100,
Slava Voronzoff <slava.voronzoff@gmail.com> wrote:
>
> сб, 21 февр. 2026 г. в 22:09, Stuart Henderson <stu@spacehopper.org>:
> >
> > On 2026/02/21 19:25, Slava Voronzoff wrote:
> > > Do you mind also to look in -static flavor part of my patch? This
> > > little gravity thingy really neat to drop in cgi-bin of chroot and
> > > start hacking some little scripts.
> >
> > you still need to copy it into /var/www, so why not copy libc/libm
> > across as well? (easily scripted, and then you don't end up with a copy
> > of the file that doesn't get updated when the libraries change in base)
> >
>
> Hm, interesting idea, but isn't lib update on current will rebuild package?
>
> About bin+lib copy instead of just bin -
> yeah, while (thanks to "no deps") there is not much to copy it is I
> guess more a matter of taste.
> I just prefer solo binary as it is more tidy.
>

Here a nice way that I use to actualize cert.pem in stunnel's chroot:

~ $ tail -n 2 /upgrade.site
echo Syncing stunnel cert.pem for chroot
install -m 644 /etc/ssl/cert.pem /var/stunnel/etc/ssl/
~ $

I think this is a direction which you're looking for.

--
wbr, Kirill

signify-like for encryption?

Hi, I played recently with signify and love it. Little useful tool,
pure OpenBSD style. Is there something like this for encryption?

Re: [update] lang/gravity to 0.9.0 and adding "static" flavor

сб, 21 февр. 2026 г. в 22:09, Stuart Henderson <stu@spacehopper.org>:
>
> On 2026/02/21 19:25, Slava Voronzoff wrote:
> > Do you mind also to look in -static flavor part of my patch? This
> > little gravity thingy really neat to drop in cgi-bin of chroot and
> > start hacking some little scripts.
>
> you still need to copy it into /var/www, so why not copy libc/libm
> across as well? (easily scripted, and then you don't end up with a copy
> of the file that doesn't get updated when the libraries change in base)
>

Hm, interesting idea, but isn't lib update on current will rebuild package?

About bin+lib copy instead of just bin -
yeah, while (thanks to "no deps") there is not much to copy it is I
guess more a matter of taste.
I just prefer solo binary as it is more tidy.

Re: avoid single-user mode boot

On Wed, Jul 24, 2024 at 1:52 PM <04-psyche.totter@icloud.com> wrote:
Thanks Stuart for all these thoughts. That's a lot of great ideas.

Let me try to clarify a few things:

- change `do_fsck` to `do_fsck -y`
---------------------------------------------
  I assume you mean Line 410. That seems like a great idea.
  Do I understand correctly that the normal behaviour for this `do_fsck` is to run the check, and mark filesystems dirty, and then enter single-user mode?
  Whereas if I replace it with `do_fsck -y `, the filesystems will not be marked dirty, and it will not enter singe user mode?

Apologies for reviving this old thread, but I had a recent experience with a remote router that failed to come up, presumably after having local power issues. This router was set up to use fsck -p -y and I learned the hard way that when using -p, there are some problems that cause fsck to exit without giving you the option to answer yes. Instead, you just get "UNEXPECTED INCONSISTENCY; RUN fsck_ffs MANUALLY." followed a bit later by "Automatic file system check failed; help!". "do_fsck -y" will not help you here.

Naturally, in this situation you should of course run fsck manually and decide what to do based on what fsck reports. Just blindly running fsck -y is dangerous and can make a simple issue much worse. But sometimes when a device is far away, you can't easily get there yourself, and you don't have someone on-site who can address it, an alternative is needed.

Having chosen to accept this risk, I changed /etc/rc, modifying the do_fsck function as follows:
old: fsck -p "$@"
new: fsck -p "$@" || { for i in a d e f g h; do fsck -y \/dev\/sd0$i; done; fsck -p "$@"; }

The idea is that if fsck -p fails, I run fsck -y for each file system where I think it's safe to do so unattended. Then I try the fsck -p command again to give it a second chance to succeed (if it fails twice then the old behavior remains). In this example, the file systems that I have chosen to auto-correct are sd0a, sd0d, sd0e, sd0f, sd0g and sd0h. You may choose to auto-correct a different set.

I tested this by power-cycling a test router while reordering of libc was in progress. This would ordinarily have caused the router to come up single-user with the "Automatic file system check failed; help!" message, but with the above change the router was able to boot normally (albeit with a ton of console spam regarding repairs for files in the /usr/share/relink tree):

root on sd0a (5e776adc85699112.a) swap on sd0b dump on sd0b
WARNING: / was not properly unmounted
Automatic boot in progress: starting file system checks.
/dev/sd0a (5e776adc85699112.a): INCORRECT BLOCK COUNT I=32837 (4 should be 0) (CORRECTED)
/dev/sd0a (5e776adc85699112.a): FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGED)
/dev/sd0a (5e776adc85699112.a): SUMMARY INFORMATION BAD (SALVAGED)
/dev/sd0a (5e776adc85699112.a): BLK(S) MISSING IN BIT MAPS (SALVAGED)
/dev/sd0a (5e776adc85699112.a): 1891 files, 49715 used, 202132 free (116 frags, 25252 blocks, 0.0% fragmentation)
/dev/sd0a (5e776adc85699112.a): MARKING FILE SYSTEM CLEAN
/dev/sd0d (5e776adc85699112.d): INCORRECT BLOCK COUNT I=54794 (704 should be 416) (CORRECTED)
/dev/sd0d (5e776adc85699112.d): UNALLOCATED  I=54976  OWNER=root MODE=100644
/dev/sd0d: SIZE=2096 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/connect.so

/dev/sd0d (5e776adc85699112.d): UNEXPECTED INCONSISTENCY; RUN fsck_ffs MANUALLY.
/dev/sd0e (5e776adc85699112.e): 78 files, 1779 used, 252068 free (20 frags, 31506 blocks, 0.0% fragmentation)
/dev/sd0e (5e776adc85699112.e): MARKING FILE SYSTEM CLEAN
/dev/sd0f (5e776adc85699112.f): INCORRECT BLOCK COUNT I=49194 (128 should be 0) (CORRECTED)
/dev/sd0f (5e776adc85699112.f): FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGED)
/dev/sd0f (5e776adc85699112.f): SUMMARY INFORMATION BAD (SALVAGED)
/dev/sd0f (5e776adc85699112.f): BLK(S) MISSING IN BIT MAPS (SALVAGED)
/dev/sd0f (5e776adc85699112.f): 423 files, 15221 used, 238626 free (90 frags, 29817 blocks, 0.0% fragmentation)
/dev/sd0f (5e776adc85699112.f): MARKING FILE SYSTEM CLEAN
/dev/sd0g (5e776adc85699112.g): INCORRECT BLOCK COUNT I=3 (4 should be 0) (CORRECTED)
/dev/sd0g (5e776adc85699112.g): UNREF FILE I=3  OWNER=root MODE=100600
/dev/sd0g: SIZE=0 MTIME=Feb 22 20:15 2026  (CLEARED)
/dev/sd0g (5e776adc85699112.g): 8 files, 6 used, 253841 free (33 frags, 31726 blocks, 0.0% fragmentation)
/dev/sd0g (5e776adc85699112.g): MARKING FILE SYSTEM CLEAN
/dev/sd0h (5e776adc85699112.h): 12 files, 11 used, 1520716 free (28 frags, 190086 blocks, 0.0% fragmentation)
/dev/sd0h (5e776adc85699112.h): MARKING FILE SYSTEM CLEAN
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
        ffs: 5e776adc85699112.d (/usr)
** /dev/rsd0a
** File system is clean; not checking
** /dev/rsd0d
** Last Mounted on /usr
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
UNALLOCATED  I=54976  OWNER=root MODE=100644
SIZE=2096 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/connect.so

REMOVE? yes

UNALLOCATED  I=54977  OWNER=root MODE=100644
SIZE=2080 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/fcntl.so

REMOVE? yes

UNALLOCATED  I=54978  OWNER=root MODE=100644
SIZE=2080 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/fsync.so

REMOVE? yes

UNALLOCATED  I=54979  OWNER=root MODE=100644
SIZE=2088 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/msgrcv.so

REMOVE? yes

UNALLOCATED  I=54980  OWNER=root MODE=100644
SIZE=2088 MTIME=Feb 22 20:15 2026
FILE=/share/relink/_rebuild.GJZYRqDFYfz5/msgsnd.so

REMOVE? yes

(many more lines of fsck output removed, until eventually fsck -p runs again)

/dev/sd0a (5e776adc85699112.a): file system is clean; not checking
/dev/sd0d (5e776adc85699112.d): file system is clean; not checking
/dev/sd0e (5e776adc85699112.e): file system is clean; not checking
/dev/sd0f (5e776adc85699112.f): file system is clean; not checking
/dev/sd0g (5e776adc85699112.g): file system is clean; not checking
/dev/sd0h (5e776adc85699112.h): file system is clean; not checking
pf enabled
starting network
reordering: ld.so libc libcrypto sshd sshd-session sshd-auth ssh-agent.
starting early daemons: syslogd pflogd ntpd.
starting RPC daemons:.
savecore: /dev/sd0b: Device not configured
checking quotas: done.
clearing /tmp
kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
starting network daemons: sshd smtpd sndiod.
starting local daemons: cron.
Sun Feb 22 15:16:34 EST 2026

OpenBSD/amd64 (apu2d4.utility.internal) (tty00)

login: