Index | Thread | Search

From:
Douglas Silva <doug.hs@proton.me>
Subject:
Re: Upgrade net/syncthing to v2
To:
"ports@openbsd.org" <ports@openbsd.org>
Cc:
Lydia Sobot <chilledfrogs@disroot.org>, "edd@openbsd.org" <edd@openbsd.org>, "kn@openbsd.org" <kn@openbsd.org>
Date:
Sun, 28 Dec 2025 19:36:56 +0000

Download raw body.

Thread
  • Lydia Sobot:

    Upgrade net/syncthing to v2

  • > 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 <chilledfrogs@disroot.org> 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
    
    
  • Lydia Sobot:

    Upgrade net/syncthing to v2