31.12.2025 17:13, Douglas Silva пишет:
> Got it. Now the usage report is disabled on first run.
> 
> - If you ever decide to enable it, you can — I just tested it.
> - If you ever set it to "Undecided", it will reset to "Disabled" after a page 
> reload; but I think that's fine, since it can't open that modal anymore.
> 
> But now I do wonder: what if the package user doesn't ever use the GUI to 
> manage it? Syncthing has a CLI interface too.

Thanks everyone, this works fine for me on amd64 to against Android
clients running 1.x and 2.x;  FWIW, just have 'synchting --no-browser'
in ~/.xsession and don't use the web UI unless clients/folders change.

Edd, OK kn if you'd like to commit this.

I did not follow the entire discussion and won't have much time
(for syncthing) in the next coming days.

> 
> 
> 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 14:01:51 -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 14:01:51 -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 14:01:51 -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 14:01:51 -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 14:01:51 -0000
> @@ -0,0 +1,46 @@
> +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 () {
> +@@ -370,21 +361,9 @@ angular.module('syncthing.core')
> + 
> +         $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');
> +-                    }
> +-                }
> ++                $scope.config.options.urAccepted = -1;
> ++                $scope.config.options.urSeen = $scope.system.urVersionMax;
> ++                $scope.saveConfig();
> +             }
> +         });
> + 
> 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 14:01:51 -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 14:01:51 -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 14:01:51 -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 14:01:51 -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 Wednesday, December 31st, 2025 at 00:29, Douglas Silva <[email protected]> 
> wrote:
> 
>>
>>
>>
>>
>> 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