There was another piece of code triggering the telemetry modal, so I removed it 
too. Now it doesn't show up anymore.

But if you go to Settings and look for the "Anonymous Usage Reporting", it's 
now set to "Undecided (will prompt)" by default. We need to set it to 
"Disabled", somehow.

In the same file there is a function defined as '$scope.declineUR', which seems 
to be what we need. I'm going to experiment with that tomorrow.


Index: Makefile
===================================================================
RCS file: /cvs/ports/net/syncthing/Makefile,v
diff -u -p -u -p -r1.73 Makefile
--- Makefile    22 Jul 2025 20:20:25 -0000      1.73
+++ Makefile    31 Dec 2025 03:14:19 -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 -u -p -r1.50 distinfo
--- distinfo    4 Jul 2025 19:19:39 -0000       1.50
+++ distinfo    31 Dec 2025 03:14:19 -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 -u -p -r1.24 patch-build_go
--- patches/patch-build_go      4 Jun 2025 20:07:43 -0000       1.24
+++ patches/patch-build_go      31 Dec 2025 03:14:19 -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 -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 31 Dec 2025 03:14:19 -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     31 Dec 
2025 03:14:19 -0000
@@ -0,0 +1,48 @@
+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 () {
+@@ -365,26 +356,6 @@ angular.module('syncthing.core')
+                         delete 
$scope.pendingFolders[folderDev.folderID].offeredBy[folderDev.deviceID];
+                     }
+                 });
+             }
+         });
+-
+-        $scope.$on('ConfigLoaded', function () {
+-            if ($scope.config.options.urAccepted === 0) {
+-                // If usage reporting has been neither accepted nor declined,
+-                // we want to ask the user to make a choice. But we don't want
+-                // to bug them during initial setup, so we set a cookie with
+-                // the time of the first visit. When that cookie is present
+-                // and the time is more than four hours ago, we ask the
+-                // question.
+-
+-                var firstVisit = 
document.cookie.replace(/(?:(?:^|.*;\s*)firstVisit\s*\=\s*([^;]*).*$)|^.*$/, 
"$1");
+-                if (!firstVisit) {
+-                    document.cookie = "firstVisit=" + Date.now() + 
";max-age=" + 30 * 24 * 3600;
+-                } else {
+-                    if (+firstVisit < Date.now() - 4 * 3600 * 1000) {
+-                        showModal('#ur');
+-                    }
+-                }
+-            }
+-        });
+ 
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      31 Dec 2025 03:14:19 -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 -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    31 Dec 2025 03:14:19 -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 -u -p -r1.8 README
--- pkg/README  16 Feb 2024 15:09:13 -0000      1.8
+++ pkg/README  31 Dec 2025 03:14:19 -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 -u -p -r1.6 syncthing.rc
--- pkg/syncthing.rc    11 Mar 2022 19:47:38 -0000      1.6
+++ pkg/syncthing.rc    31 Dec 2025 03:14:19 -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 Tuesday, December 30th, 2025 at 15:22, Douglas Silva <[email protected]> 
wrote:

> 
> 
> 
> 
> I just tested your patch, but the telemetry prompt is still shown for a new 
> configuration. I'll take a look at that code.
> 
> 
> For the record:
> The patching was failing here because my mail client deletes trailing spaces, 
> which are critical for context matching. Running patch(1) with 
> --ignore-whitespace makes it work.
> 
> 
> 
> 
> 
> On Monday, December 29th, 2025 at 05:37, Edd Barrett [email protected] 
> wrote:
> 
> > 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

Reply via email to