From: Douglas Silva Subject: Re: Upgrade net/syncthing to v2 To: "ports@openbsd.org" Cc: Lydia Sobot , "edd@openbsd.org" , "kn@openbsd.org" Date: Sun, 28 Dec 2025 19:36:56 +0000 > This seems to be a side effect of how pkg_add creates > directories and users in general, however I do think it > should be fixed tbh Is there anything we can do to fix this in the Syncthing port? BTW, I've fixed an obsolete section in pkg/README. It was still referencing a default folder 'Sync', which Syncthing no longer creates for new configurations. Here's the diff. Index: Makefile =================================================================== RCS file: /cvs/ports/net/syncthing/Makefile,v diff -u -p -r1.73 Makefile --- Makefile 22 Jul 2025 20:20:25 -0000 1.73 +++ Makefile 28 Dec 2025 19:26:41 -0000 @@ -1,6 +1,6 @@ COMMENT = open decentralized synchronization utility -V = 1.30.0 +V = 2.0.12 DISTNAME = syncthing-${V} DISTFILES = syncthing-source-v${V}${EXTRACT_SUFX} @@ -22,7 +22,6 @@ WRKDIST = ${WRKDIR}/syncthing WRKSRC = ${WRKDIR}/go/src/github.com/syncthing/syncthing MODULES = lang/go -MODGO_TYPE = bin # Syncthing contains a lot of stuff that end users wouldn't be interested in, # so we package only these binaries. Index: distinfo =================================================================== RCS file: /cvs/ports/net/syncthing/distinfo,v diff -u -p -r1.50 distinfo --- distinfo 4 Jul 2025 19:19:39 -0000 1.50 +++ distinfo 28 Dec 2025 19:26:41 -0000 @@ -1,2 +1,2 @@ -SHA256 (syncthing-source-v1.30.0.tar.gz) = 7xvnHGZ1PAQhKrHJxUjmeNRoutmNxUYeg1QKTvXC/Lo= -SIZE (syncthing-source-v1.30.0.tar.gz) = 16142834 +SHA256 (syncthing-source-v2.0.12.tar.gz) = VgBK5tl0qjh8PGpzTrmKr9XWFZ/GV6H0xhjgsYFPra4= +SIZE (syncthing-source-v2.0.12.tar.gz) = 62613260 Index: patches/patch-build_go =================================================================== RCS file: /cvs/ports/net/syncthing/patches/patch-build_go,v diff -u -p -r1.24 patch-build_go --- patches/patch-build_go 4 Jun 2025 20:07:43 -0000 1.24 +++ patches/patch-build_go 28 Dec 2025 19:26:41 -0000 @@ -3,7 +3,7 @@ Print build commands Index: build.go --- build.go.orig +++ build.go -@@ -549,7 +549,7 @@ func appendParameters(args []string, tags []string, pk +@@ -532,7 +532,7 @@ func appendParameters(args []string, tags []string, pk if !debugBinary { // Regular binaries get version tagged and skip some debug symbols Index: patches/patch-cmd_syncthing_main_go =================================================================== RCS file: /cvs/ports/net/syncthing/patches/patch-cmd_syncthing_main_go,v diff -u -p -r1.3 patch-cmd_syncthing_main_go --- patches/patch-cmd_syncthing_main_go 15 Jun 2025 16:42:21 -0000 1.3 +++ patches/patch-cmd_syncthing_main_go 28 Dec 2025 19:26:41 -0000 @@ -5,8 +5,8 @@ use unveil(2) to limit execution to Index: cmd/syncthing/main.go --- cmd/syncthing/main.go.orig +++ cmd/syncthing/main.go -@@ -29,6 +29,8 @@ import ( - "syscall" +@@ -31,6 +31,8 @@ import ( + "text/tabwriter" "time" + "golang.org/x/sys/unix" @@ -14,23 +14,28 @@ Index: cmd/syncthing/main.go "github.com/alecthomas/kong" "github.com/gofrs/flock" "github.com/thejerf/suture/v4" -@@ -206,6 +208,19 @@ func defaultVars() kong.Vars { - } - +@@ -213,6 +215,24 @@ func defaultVars() kong.Vars { func main() { + // Create a parser with an overridden help function to print our extra + // help info. ++ + if err := unix.Unveil("/", "rwc"); err != nil { + panic(err) + } ++ + if err := unix.Unveil("/usr/local/bin/syncthing", "rx"); err != nil { + panic(err) + } ++ + if err := unix.Unveil("/usr/local/bin/xdg-open", "rx"); err != nil { + panic(err) + } ++ + if err := unix.UnveilBlock(); err != nil { + panic(err) + } + - // First some massaging of the raw command line to fit the new model. - // Basically this means adding the default command at the front, and - // converting -options to --options. ++ + var entrypoint CLI + parser, err := kong.New( + &entrypoint, Index: patches/patch-internal_db_interface_go =================================================================== RCS file: patches/patch-internal_db_interface_go diff -N patches/patch-internal_db_interface_go --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-internal_db_interface_go 28 Dec 2025 19:26:41 -0000 @@ -0,0 +1,20 @@ +Remove canonical import path that prevents successful build. + +This has been fixed upstream [1] and, when released, will +make this patch obsolete. + +[1] https://github.com/syncthing/syncthing/commit/1843cac6d9cb1e3c8b7dd96e5ec4fcb28f554275 + + +Index: internal/db/interface.go +--- internal/db/interface.go.orig ++++ internal/db/interface.go +@@ -4,7 +4,7 @@ + // License, v. 2.0. If a copy of the MPL was not distributed with this file, + // You can obtain one at https://mozilla.org/MPL/2.0/. + +-package db // import "github.com/syncthing/syncthing/internal/db/sqlite" ++package db + + import ( + "iter" Index: patches/patch-lib_build_build_go =================================================================== RCS file: /cvs/ports/net/syncthing/patches/patch-lib_build_build_go,v diff -u -p -r1.4 patch-lib_build_build_go --- patches/patch-lib_build_build_go 28 Nov 2024 11:47:47 -0000 1.4 +++ patches/patch-lib_build_build_go 28 Dec 2025 19:26:41 -0000 @@ -3,7 +3,7 @@ Disable phone-home calls / anonymous usa Index: lib/build/build.go --- lib/build/build.go.orig +++ lib/build/build.go -@@ -74,7 +74,7 @@ func setBuildData() { +@@ -83,7 +83,7 @@ func setBuildData() { exp := regexp.MustCompile(`^v\d+\.\d+\.\d+(-[a-z]+[\d\.]+)?$`) IsRelease = exp.MatchString(Version) Index: pkg/README =================================================================== RCS file: /cvs/ports/net/syncthing/pkg/README,v diff -u -p -r1.8 README --- pkg/README 16 Feb 2024 15:09:13 -0000 1.8 +++ pkg/README 28 Dec 2025 19:26:41 -0000 @@ -21,8 +21,8 @@ Starting via RC script Syncthing can be started via the included RC script, thus running Syncthing as a system service. This is fine for single user -configurations. Under this mode of operation, Syncthing will run as the -_syncthing user and store the default 'Sync' folder under +configurations. Under this mode of operation, Syncthing runs as the +_syncthing user, and the default location for folders is ${LOCALSTATEDIR}/syncthing. Starting Manually @@ -31,7 +31,7 @@ Starting Manually The other way is to simply invoke ${TRUEPREFIX}/bin/syncthing manually. This is a better choice for situations where several users all want to run their own instances of Syncthing. Under this mode, the default -'Sync' folder will be stored in the user's home directory. Users will +location for folders is the user's home directory. Users will have to configure Syncthing to listen on different TCP ports for this method to work. Index: pkg/syncthing.rc =================================================================== RCS file: /cvs/ports/net/syncthing/pkg/syncthing.rc,v diff -u -p -r1.6 syncthing.rc --- pkg/syncthing.rc 11 Mar 2022 19:47:38 -0000 1.6 +++ pkg/syncthing.rc 28 Dec 2025 19:26:41 -0000 @@ -1,7 +1,7 @@ #!/bin/ksh daemon="${TRUEPREFIX}/bin/syncthing" -daemon_flags="-no-browser" +daemon_flags="--no-browser" daemon_user="_syncthing" . /etc/rc.d/rc.subr On Sunday, December 28th, 2025 at 16:19, Lydia Sobot wrote: > > > > > >1. Although `make install` succeeds, I get this warning: > > > useradd: Warning: home directory `/var/syncthing` doesn't exist, and -m was not specified > > > > But then you look at `/var/syncthing` and it's already there — it was created. > > This seems to be a side effect of how pkg_add creates directories and > users in general, however I do think it should be fixed tbh