Hi,
On Sun, Dec 28, 2025 at 07:46:13PM +0000, Douglas Silva wrote:
> As you've seen, it migrates to v2 without any user intervention.
Yes, and I've now tested that locally, and it works. V2 also speaks to V1 just
fine it seems (also turns out my android phone has been talking V2 to my V1
OpenBSD nodes for some time).
> > There are some (pre-existing) hard-coded paths in
> > this patch. We should fix these as a separate commit.
>
> Honestly, I have no idea what that means or how to fix it :D
I'll fix those in a follow-up commit. I also think any proposed changes to
logging should also be a follow-up commit. For now let's just focus on the
version upgrade.
> When opening the web GUI for the first time, I get the dialog asking if I
> want to enable telemetry. Isn't it supposed to be disabled by the patch
> `patch-lib_build_build_go`?
I think that patch is designed to do two things:
- disable auto-update
- disable telemetry
But it seems we now have to try harder for the latter.
Here's an updated diff which disables the telemetry nag screen, leaving
`urAccepted=0` in the config file. Please test.
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 29 Dec 2025 07:28:55 -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 29 Dec 2025 07:28:55 -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 29 Dec 2025 07:28:55 -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 29 Dec 2025 07:28:55 -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-gui_default_syncthing_core_syncthingController_js
===================================================================
RCS file: patches/patch-gui_default_syncthing_core_syncthingController_js
diff -N patches/patch-gui_default_syncthing_core_syncthingController_js
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-gui_default_syncthing_core_syncthingController_js 29 Dec
2025 08:28:59 -0000
@@ -0,0 +1,21 @@
+Disable nag screen for telemetry.
+
+Index: gui/default/syncthing/core/syncthingController.js
+--- gui/default/syncthing/core/syncthingController.js.orig
++++ gui/default/syncthing/core/syncthingController.js
+@@ -187,15 +187,6 @@ angular.module('syncthing.core')
+ $scope.version = data;
+ }).error($scope.emitHTTPError);
+
+- if ($scope.system && $scope.config.options.urAccepted > -1 &&
$scope.config.options.urSeen < $scope.system.urVersionMax &&
$scope.config.options.urAccepted < $scope.system.urVersionMax) {
+- // Usage reporting decision has not been taken or format
+- // has changed, prompt the user to (re-)accept.
+- $http.get(urlbase + '/svc/report').success(function
(data) {
+- $scope.reportData = data;
+- showModal('#ur');
+- }).error($scope.emitHTTPError);
+- }
+-
+ $http.get(urlbase + '/system/upgrade').success(function
(data) {
+ $scope.upgradeInfo = data;
+ }).error(function () {
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 29 Dec 2025 07:28:55 -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 29 Dec 2025 07:28:55 -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 29 Dec 2025 07:28:55 -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 29 Dec 2025 07:28:55 -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
--
Best Regards
Edd Barrett
https://www.theunixzoo.co.uk