From: Douglas Silva Subject: Re: Upgrade net/syncthing to v2 To: "ports@openbsd.org" Cc: "edd@openbsd.org" , "kn@openbsd.org" , Lydia Sobot Date: Wed, 24 Dec 2025 20:02:20 +0000 Thanks, I appreciate the help. I've asked for help on the Syncthing forum [1] and got a reply from the maintainer, but I'm not sure I understand what needs to be done. Oh, and I'm attaching the `make build` log, and the current diff below. I forgot to do that before. [1] https://forum.syncthing.net/t/error-building-syncthing-v2-on-openbsd/25929?u=harpia 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 23 Dec 2025 14:06:16 -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} 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 23 Dec 2025 14:06:16 -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 23 Dec 2025 14:06:16 -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 23 Dec 2025 14:06:16 -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-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 23 Dec 2025 14:06:16 -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) On Friday, December 19th, 2025 at 20:28, Lydia Sobot wrote: > > > > > >`make build` is failing with the following error: > > > lib/syncthing/globalmigrations.go:10:2: code in directory /usr/ports/pobj/syncthing-2.0.12/go/src/github.com/syncthing/syncthing/internal/db expects import "github.com/syncthing/syncthing/internal/db/sqlite" > > > > I'm not at all familiar with Go, so I need some help with this. > > I'm no expert on Go tooling myself however I am a regular and very > satisfied user of Syncthing so I'm trying to look into this, it may > have something to do with the following forum thread and OpenBSD go-mod > infrastructure: > https://forum.syncthing.net/t/go-module-path-for-syncthing-lib-remains-at-v1-unable-to-import-v2/25532/3 +++ Tue Dec 23 11:01:03 -03 2025 ===> Patching for syncthing-2.0.12 ===> Applying OpenBSD patch patch-build_go Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Print build commands | |Index: build.go |--- build.go.orig |+++ build.go -------------------------- Patching file build.go using Plan A... Hunk #1 succeeded at 532. done ===> Applying OpenBSD patch patch-cmd_syncthing_main_go Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |use unveil(2) to limit execution to |- restarting itself |- xdg-open(1) aka. to open the web interface | |Index: cmd/syncthing/main.go |--- cmd/syncthing/main.go.orig |+++ cmd/syncthing/main.go -------------------------- Patching file cmd/syncthing/main.go using Plan A... Hunk #1 succeeded at 31. Hunk #2 succeeded at 215. done ===> Applying OpenBSD patch patch-lib_build_build_go Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Disable phone-home calls / anonymous usage reporting | |Index: lib/build/build.go |--- lib/build/build.go.orig |+++ lib/build/build.go -------------------------- Patching file lib/build/build.go using Plan A... Hunk #1 succeeded at 83. done ===> Compiler link: clang -> /usr/bin/clang ===> Compiler link: clang++ -> /usr/bin/clang++ ===> Compiler link: cc -> /usr/bin/cc ===> Compiler link: c++ -> /usr/bin/c++ ===> Generating configure for syncthing-2.0.12 ===> Configuring for syncthing-2.0.12 ===> Building for syncthing-2.0.12 cd /usr/ports/pobj/syncthing-2.0.12/go/src/github.com/syncthing/syncthing && /usr/bin/env -i GOMAXPROCS=1 GO386=softfloat GOCACHE="/usr/ports/pobj/syncthing-2.0.12/go-cache" GOTOOLCHAIN=local TMPDIR="/usr/ports/pobj/syncthing-2.0.12/build-amd64" GOPROXY=invalid://ports.should.not.fetch.at.buildtime/ GO111MODULE=off GOPATH="/usr/ports/pobj/syncthing-2.0.12/go:/usr/local/go-pkg" PORTSDIR="/usr/ports" LIBTOOL="/usr/bin/libtool" PATH='/usr/ports/pobj/syncthing-2.0.12/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11R6/bin' PREFIX='/usr/local' LOCALBASE='/usr/local' X11BASE='/usr/X11R6' CFLAGS='-O2 -pipe' TRUEPREFIX='/usr/local' DESTDIR='' HOME='/syncthing-2.0.12_writes_to_HOME' PICFLAG="-fpic" BINGRP=bin BINOWN=root BINMODE=755 NONBINMODE=644 DIRMODE=755 INSTALL_COPY=-c INSTALL_STRIP= MANGRP=bin MANOWN=root MANMODE=644 BSD_INSTALL_PROGRAM="/usr/ports/pobj/syncthing-2.0.12/bin/install -c -m 755" BSD_INSTALL_SCRIPT="/usr/ports/pobj/syncthing-2.0.12/bin/install -c -m 755" BSD_INSTALL_DATA="/usr/ports/pobj/syncthing-2.0.12/bin/install -c -m 644" BSD_INSTALL_MAN="/usr/ports/pobj/syncthing-2.0.12/bin/install -c -m 644" BSD_INSTALL_PROGRAM_DIR="/usr/ports/pobj/syncthing-2.0.12/bin/install -d -m 755" BSD_INSTALL_SCRIPT_DIR="/usr/ports/pobj/syncthing-2.0.12/bin/install -d -m 755" BSD_INSTALL_DATA_DIR="/usr/ports/pobj/syncthing-2.0.12/bin/install -d -m 755" BSD_INSTALL_MAN_DIR="/usr/ports/pobj/syncthing-2.0.12/bin/install -d -m 755" go run build.go -version v2.0.12 -no-upgrade install syncthing lib/syncthing/globalmigrations.go:10:2: code in directory /usr/ports/pobj/syncthing-2.0.12/go/src/github.com/syncthing/syncthing/internal/db expects import "github.com/syncthing/syncthing/internal/db/sqlite" 2025-12-23 11:01:41 INF exit status 1 exit status 1 *** Error 1 in . (Makefile:38 'do-build') *** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:3063 '/usr/ports/pobj/syncthing-2.0.12/build-amd64/.build_done': @cd /usr/ports/n...) *** Error 2 in /usr/ports/net/syncthing (/usr/ports/infrastructure/mk/bsd.port.mk:2710 'build': @lock=syncthing-2.0.12; export _LOCKS_HELD=...) --- Tue Dec 23 11:01:42 -03 2025