Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qubesome for openSUSE:Factory 
checked in at 2025-11-17 12:18:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qubesome (Old)
 and      /work/SRC/openSUSE:Factory/.qubesome.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qubesome"

Mon Nov 17 12:18:58 2025 rev:11 rq:1318077 version:0.0.16

Changes:
--------
--- /work/SRC/openSUSE:Factory/qubesome/qubesome.changes        2025-11-06 
18:14:24.414468894 +0100
+++ /work/SRC/openSUSE:Factory/.qubesome.new.2061/qubesome.changes      
2025-11-17 12:24:14.655960722 +0100
@@ -1,0 +2,18 @@
+Sun Nov 16 12:02:11 UTC 2025 - Paulo Gomes <[email protected]>
+
+- Update to version 0.0.16:
+  * build: Remove protoc version prefix
+  * fix(deps): update module golang.org/x/term to v0.37.0
+  * chore(deps): update dependency protocolbuffers/protobuf to v33.1
+  * chore(deps): update dependency golangci/golangci-lint to v2.6.1
+  * chore(deps): update dependency protocolbuffers/protobuf to v33
+  * chore(deps): update dependency golangci/golangci-lint to v2.6.0
+  * build: Remove renovate workflow This is being replaced by the workflow in 
qubesome/.github: 
https://github.com/qubesome/.github/blob/main/.github/workflows/renovate.yml
+  * build: Add renovate workflow
+  * build: Add renovate workflow
+  * build(deps): bump github.com/urfave/cli/v3 from 3.5.0 to 3.6.0
+  * build(deps): bump golang.org/x/sys in the golang-org group
+  * build: Transition to new archives config x-ref: 
https://goreleaser.com/deprecations/#archivesformat
+  * build: Add support for new cosign bundle
+
+-------------------------------------------------------------------

Old:
----
  qubesome-0.0.15.tar.gz

New:
----
  qubesome-0.0.16.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qubesome.spec ++++++
--- /var/tmp/diff_new_pack.AZnIZz/_old  2025-11-17 12:24:17.680088248 +0100
+++ /var/tmp/diff_new_pack.AZnIZz/_new  2025-11-17 12:24:17.684088417 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           qubesome
-Version:        0.0.15
+Version:        0.0.16
 Release:        0
 Summary:        Containerize Window Managers, apps and config from a 
declarative state in Git
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.AZnIZz/_old  2025-11-17 12:24:17.872096345 +0100
+++ /var/tmp/diff_new_pack.AZnIZz/_new  2025-11-17 12:24:17.940099212 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/qubesome/cli.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.0.15</param>
+    <param name="revision">v0.0.16</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="match-tag">v*</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.AZnIZz/_old  2025-11-17 12:24:18.144107816 +0100
+++ /var/tmp/diff_new_pack.AZnIZz/_new  2025-11-17 12:24:18.160108490 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/qubesome/cli.git</param>
-              <param 
name="changesrevision">934455fbc63211650bbada1523e53708e8623807</param></service></servicedata>
+              <param 
name="changesrevision">2717ef3dfb24a8557dff572b7f41c405411999a5</param></service></servicedata>
 (No newline at EOF)
 

++++++ qubesome-0.0.15.tar.gz -> qubesome-0.0.16.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.15/.goreleaser.yaml 
new/qubesome-0.0.16/.goreleaser.yaml
--- old/qubesome-0.0.15/.goreleaser.yaml        2025-11-03 23:31:15.000000000 
+0100
+++ new/qubesome-0.0.16/.goreleaser.yaml        2025-11-14 09:34:43.000000000 
+0100
@@ -19,18 +19,16 @@
       - CGO_ENABLED=0
 
 archives:
-  - id: default
-    format: binary
+  - formats: [ 'binary' ]
 
 signs:
   - cmd: cosign
-    certificate: '${artifact}.pem'
+    signature: "${artifact}.sigstore.json"
     args:
       - sign-blob
       - '--yes'
-      - '--output-signature=${signature}'
-      - '--output-certificate=${certificate}'
-      - '--bundle=${artifact}.bundle'
+      - '--new-bundle-format=true'
+      - '--bundle=${signature}'
       - '${artifact}'
     artifacts: checksum
     output: true
@@ -44,7 +42,3 @@
     artifacts: source
     documents:
       - '{{ .ProjectName }}_{{ .Version }}_sbom.spdx.json'
-
-release:
-  extra_files:
-    - glob: ./**/*.bundle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.15/.renovaterc.json5 
new/qubesome-0.0.16/.renovaterc.json5
--- old/qubesome-0.0.15/.renovaterc.json5       1970-01-01 01:00:00.000000000 
+0100
+++ new/qubesome-0.0.16/.renovaterc.json5       2025-11-14 09:34:43.000000000 
+0100
@@ -0,0 +1,4 @@
+{
+  "$schema": "https://docs.renovatebot.com/renovate-schema.json";,
+  "extends": ["github>qubesome/.github"]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.15/go.mod new/qubesome-0.0.16/go.mod
--- old/qubesome-0.0.15/go.mod  2025-11-03 23:31:15.000000000 +0100
+++ new/qubesome-0.0.16/go.mod  2025-11-14 09:34:43.000000000 +0100
@@ -7,10 +7,10 @@
        github.com/go-git/go-git/v6 v6.0.0-20250628104446-20c25df268c3
        github.com/google/uuid v1.6.0
        github.com/stretchr/testify v1.11.1
-       github.com/urfave/cli/v3 v3.5.0
+       github.com/urfave/cli/v3 v3.6.0
        github.com/zalando/go-keyring v0.2.6
-       golang.org/x/sys v0.37.0
-       golang.org/x/term v0.36.0
+       golang.org/x/sys v0.38.0
+       golang.org/x/term v0.37.0
        google.golang.org/grpc v1.76.0
        google.golang.org/protobuf v1.36.10
        gopkg.in/yaml.v3 v3.0.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.15/go.sum new/qubesome-0.0.16/go.sum
--- old/qubesome-0.0.15/go.sum  2025-11-03 23:31:15.000000000 +0100
+++ new/qubesome-0.0.16/go.sum  2025-11-14 09:34:43.000000000 +0100
@@ -74,8 +74,8 @@
 github.com/stretchr/testify v1.4.0/go.mod 
h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.11.1 
h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
 github.com/stretchr/testify v1.11.1/go.mod 
h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
-github.com/urfave/cli/v3 v3.5.0 h1:qCuFMmdayTF3zmjG8TSsoBzrDqszNrklYg2x3g4MSgw=
-github.com/urfave/cli/v3 v3.5.0/go.mod 
h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso=
+github.com/urfave/cli/v3 v3.6.0 h1:oIdArVjkdIXHWg3iqxgmqwQGC8NM0JtdgwQAj2sRwFo=
+github.com/urfave/cli/v3 v3.6.0/go.mod 
h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso=
 github.com/zalando/go-keyring v0.2.6 
h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8ua9s=
 github.com/zalando/go-keyring v0.2.6/go.mod 
h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI=
 go.opentelemetry.io/auto/sdk v1.1.0 
h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
@@ -96,10 +96,10 @@
 golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod 
h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
 golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
 golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
-golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
-golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q=
-golang.org/x/term v0.36.0/go.mod 
h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss=
+golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
+golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
+golang.org/x/term v0.37.0/go.mod 
h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
 golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
 golang.org/x/text v0.27.0/go.mod 
h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
 gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.15/hack/base.mk 
new/qubesome-0.0.16/hack/base.mk
--- old/qubesome-0.0.15/hack/base.mk    2025-11-03 23:31:15.000000000 +0100
+++ new/qubesome-0.0.16/hack/base.mk    2025-11-14 09:34:43.000000000 +0100
@@ -1,5 +1,7 @@
-GOLANGCI_VERSION ?= v2.5.0
-PROTOC_VERSION ?= 32.1
+# renovate: datasource=github-tags depName=golangci/golangci-lint
+GOLANGCI_VERSION ?= v2.6.1
+# renovate: datasource=github-tags depName=protocolbuffers/protobuf
+PROTOC_VERSION ?= v33.1
 TOOLS_BIN := $(shell mkdir -p build/tools && realpath build/tools)
 
 ifneq ($(shell git status --porcelain --untracked-files=no),)
@@ -16,7 +18,7 @@
 
 PROTOC = $(TOOLS_BIN)/protoc
 $(PROTOC):
-       curl -fsSL 
https://github.com/protocolbuffers/protobuf/releases/download/v$(PROTOC_VERSION)/protoc-$(PROTOC_VERSION)-linux-x86_64.zip
 \
+       curl -fsSL 
https://github.com/protocolbuffers/protobuf/releases/download/$(PROTOC_VERSION)/protoc-$(patsubst
 v%,%,$(PROTOC_VERSION))-linux-x86_64.zip \
                -o $(TOOLS_BIN)/protoc.zip
        unzip -j $(TOOLS_BIN)/protoc.zip -d $(TOOLS_BIN) "bin/protoc"
        rm $(TOOLS_BIN)/protoc.zip

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/command.go 
new/vendor/github.com/urfave/cli/v3/command.go
--- old/vendor/github.com/urfave/cli/v3/command.go      2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/command.go      2025-11-14 
09:34:43.000000000 +0100
@@ -101,6 +101,8 @@
        SliceFlagSeparator string `json:"sliceFlagSeparator"`
        // DisableSliceFlagSeparator is used to disable SliceFlagSeparator, the 
default is false
        DisableSliceFlagSeparator bool `json:"disableSliceFlagSeparator"`
+       // MapFlagKeyValueSeparator is used to customize the separator for 
MapFlag, the default is "="
+       MapFlagKeyValueSeparator string `json:"mapFlagKeyValueSeparator"`
        // Boolean to enable short-option handling so user can combine several
        // single-character bool arguments into one
        // i.e. foobar -o -v -> foobar -ov
@@ -155,6 +157,10 @@
        didSetupDefaults bool
        // whether in shell completion mode
        shellCompletion bool
+       // whether global help flag was added
+       globaHelpFlagAdded bool
+       // whether global version flag was added
+       globaVersionFlagAdded bool
 }
 
 // FullName returns the full name of the command.
@@ -349,6 +355,7 @@
 
 func (cmd *Command) set(fName string, f Flag, val string) error {
        cmd.setFlags[f] = struct{}{}
+       cmd.setMultiValueParsingConfig(f)
        if err := f.Set(fName, val); err != nil {
                return fmt.Errorf("invalid value %q for flag -%s: %v", val, 
fName, err)
        }
@@ -377,6 +384,21 @@
        return nil
 }
 
+// this looks up only allowed flags, i.e. local flags for current command
+// or persistent flags from ancestors
+func (cmd *Command) lookupAppliedFlag(name string) Flag {
+       for _, f := range cmd.appliedFlags {
+               if slices.Contains(f.Names(), name) {
+                       tracef("appliedFlag found for name %[1]q (cmd=%[2]q)", 
name, cmd.Name)
+                       return f
+               }
+       }
+
+       tracef("lookupAppliedflag NOT found for name %[1]q (cmd=%[2]q)", name, 
cmd.Name)
+       cmd.onInvalidFlag(context.TODO(), name)
+       return nil
+}
+
 func (cmd *Command) checkRequiredFlag(f Flag) (bool, string) {
        if rf, ok := f.(RequiredFlag); ok && rf.IsRequired() {
                flagName := f.Names()[0]
@@ -440,9 +462,21 @@
        return count // cmd.flagSet.NFlag()
 }
 
+func (cmd *Command) setMultiValueParsingConfig(f Flag) {
+       tracef("setMultiValueParsingConfig %T, %+v", f, f)
+       if cf, ok := f.(multiValueParsingConfigSetter); ok {
+               cf.setMultiValueParsingConfig(multiValueParsingConfig{
+                       SliceFlagSeparator:        cmd.SliceFlagSeparator,
+                       DisableSliceFlagSeparator: 
cmd.DisableSliceFlagSeparator,
+                       MapFlagKeyValueSeparator:  cmd.MapFlagKeyValueSeparator,
+               })
+       }
+}
+
 // Set sets a context flag to a value.
 func (cmd *Command) Set(name, value string) error {
        if f := cmd.lookupFlag(name); f != nil {
+               cmd.setMultiValueParsingConfig(f)
                return f.Set(name, value)
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/command_parse.go 
new/vendor/github.com/urfave/cli/v3/command_parse.go
--- old/vendor/github.com/urfave/cli/v3/command_parse.go        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/command_parse.go        2025-11-14 
09:34:43.000000000 +0100
@@ -144,7 +144,7 @@
 
                tracef("flagName:2 (fName=%[1]q) (fVal=%[2]q)", flagName, 
flagVal)
 
-               f := cmd.lookupFlag(flagName)
+               f := cmd.lookupAppliedFlag(flagName)
                // found a flag matching given flagName
                if f != nil {
                        tracef("Trying flag type (fName=%[1]q) (type=%[2]T)", 
flagName, f)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/command_run.go 
new/vendor/github.com/urfave/cli/v3/command_run.go
--- old/vendor/github.com/urfave/cli/v3/command_run.go  2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/command_run.go  2025-11-14 
09:34:43.000000000 +0100
@@ -207,9 +207,14 @@
        }
 
        for _, flag := range cmd.allFlags() {
+               isSet := flag.IsSet()
                if err := flag.PostParse(); err != nil {
                        return ctx, err
                }
+               // add env set flags here
+               if !isSet && flag.IsSet() {
+                       cmd.setFlags[flag] = struct{}{}
+               }
        }
 
        if cmd.After != nil && !cmd.Root().shellCompletion {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/command_setup.go 
new/vendor/github.com/urfave/cli/v3/command_setup.go
--- old/vendor/github.com/urfave/cli/v3/command_setup.go        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/command_setup.go        2025-11-14 
09:34:43.000000000 +0100
@@ -80,7 +80,18 @@
 
        if !cmd.HideVersion && isRoot {
                tracef("appending version flag (cmd=%[1]q)", cmd.Name)
-               cmd.appendFlag(VersionFlag)
+               if !cmd.globaVersionFlagAdded {
+                       var localVersionFlag Flag
+                       if globalVersionFlag, ok := VersionFlag.(*BoolFlag); ok 
{
+                               flag := *globalVersionFlag
+                               localVersionFlag = &flag
+                       } else {
+                               localVersionFlag = VersionFlag
+                       }
+
+                       cmd.appendFlag(localVersionFlag)
+                       cmd.globaVersionFlagAdded = true
+               }
        }
 
        if cmd.PrefixMatchCommands && cmd.SuggestCommandFunc == nil {
@@ -130,14 +141,6 @@
                cmd.Metadata = map[string]any{}
        }
 
-       if len(cmd.SliceFlagSeparator) != 0 {
-               tracef("setting defaultSliceFlagSeparator from 
cmd.SliceFlagSeparator (cmd=%[1]q)", cmd.Name)
-               defaultSliceFlagSeparator = cmd.SliceFlagSeparator
-       }
-
-       tracef("setting disableSliceFlagSeparator from 
cmd.DisableSliceFlagSeparator (cmd=%[1]q)", cmd.Name)
-       disableSliceFlagSeparator = cmd.DisableSliceFlagSeparator
-
        cmd.setFlags = map[Flag]struct{}{}
 }
 
@@ -200,15 +203,21 @@
                }
 
                if HelpFlag != nil {
-                       // TODO need to remove hack
-                       if hf, ok := HelpFlag.(*BoolFlag); ok {
-                               hf.applied = false
-                               hf.hasBeenSet = false
-                               hf.Value = false
-                               hf.value = nil
+                       if !cmd.globaHelpFlagAdded {
+                               var localHelpFlag Flag
+                               if globalHelpFlag, ok := HelpFlag.(*BoolFlag); 
ok {
+                                       flag := *globalHelpFlag
+                                       localHelpFlag = &flag
+                               } else {
+                                       localHelpFlag = HelpFlag
+                               }
+
+                               tracef("appending HelpFlag (cmd=%[1]q)", 
cmd.Name)
+                               cmd.appendFlag(localHelpFlag)
+                               cmd.globaHelpFlagAdded = true
+                       } else {
+                               tracef("HelpFlag already added, skip 
(cmd=%[1]q)", cmd.Name)
                        }
-                       tracef("appending HelpFlag (cmd=%[1]q)", cmd.Name)
-                       cmd.appendFlag(HelpFlag)
                }
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/flag.go 
new/vendor/github.com/urfave/cli/v3/flag.go
--- old/vendor/github.com/urfave/cli/v3/flag.go 2025-11-03 23:31:15.000000000 
+0100
+++ new/vendor/github.com/urfave/cli/v3/flag.go 2025-11-14 09:34:43.000000000 
+0100
@@ -10,7 +10,7 @@
 
 const defaultPlaceholder = "value"
 
-var (
+const (
        defaultSliceFlagSeparator       = ","
        defaultMapFlagKeyValueSeparator = "="
        disableSliceFlagSeparator       = false
@@ -222,10 +222,13 @@
        return false
 }
 
-func flagSplitMultiValues(val string) []string {
-       if disableSliceFlagSeparator {
+func flagSplitMultiValues(val string, sliceSeparator string, 
disableSliceSeparator bool) []string {
+       if disableSliceSeparator {
                return []string{val}
        }
 
-       return strings.Split(val, defaultSliceFlagSeparator)
+       if len(sliceSeparator) == 0 {
+               sliceSeparator = defaultSliceFlagSeparator
+       }
+       return strings.Split(val, sliceSeparator)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/flag_impl.go 
new/vendor/github.com/urfave/cli/v3/flag_impl.go
--- old/vendor/github.com/urfave/cli/v3/flag_impl.go    2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/flag_impl.go    2025-11-14 
09:34:43.000000000 +0100
@@ -19,6 +19,20 @@
        IsBoolFlag() bool
 }
 
+type multiValueParsingConfig struct {
+       // SliceFlagSeparator is used to customize the separator for SliceFlag, 
the default is ","
+       SliceFlagSeparator string
+       // DisableSliceFlagSeparator is used to disable SliceFlagSeparator, the 
default is false
+       DisableSliceFlagSeparator bool
+       // MapFlagKeyValueSeparator is used to customize the separator for 
MapFlag, the default is "="
+       MapFlagKeyValueSeparator string
+}
+
+type multiValueParsingConfigSetter interface {
+       // configuration of parsing
+       setMultiValueParsingConfig(c multiValueParsingConfig)
+}
+
 // ValueCreator is responsible for creating a flag.Value emulation
 // as well as custom formatting
 //
@@ -134,6 +148,14 @@
        return nil
 }
 
+// pass configuration of parsing to value
+func (f *FlagBase[T, C, V]) setMultiValueParsingConfig(c 
multiValueParsingConfig) {
+       tracef("setMultiValueParsingConfig %T, %+v", f.value, f.value)
+       if cf, ok := f.value.(multiValueParsingConfigSetter); ok {
+               cf.setMultiValueParsingConfig(c)
+       }
+}
+
 func (f *FlagBase[T, C, V]) PreParse() error {
        newVal := f.Value
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/flag_map_impl.go 
new/vendor/github.com/urfave/cli/v3/flag_map_impl.go
--- old/vendor/github.com/urfave/cli/v3/flag_map_impl.go        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/flag_map_impl.go        2025-11-14 
09:34:43.000000000 +0100
@@ -10,9 +10,10 @@
 
 // MapBase wraps map[string]T to satisfy flag.Value
 type MapBase[T any, C any, VC ValueCreator[T, C]] struct {
-       dict       *map[string]T
-       hasBeenSet bool
-       value      Value
+       dict             *map[string]T
+       hasBeenSet       bool
+       value            Value
+       multiValueConfig multiValueParsingConfig
 }
 
 func (i MapBase[T, C, VC]) Create(val map[string]T, p *map[string]T, c C) 
Value {
@@ -36,6 +37,18 @@
        }
 }
 
+// configuration of slicing
+func (i *MapBase[T, C, VC]) setMultiValueParsingConfig(c 
multiValueParsingConfig) {
+       i.multiValueConfig = c
+       mvc := &i.multiValueConfig
+       tracef(
+               "set map parsing config - keyValueSeparator '%s', slice 
separator '%s', disable separator:%v",
+               mvc.MapFlagKeyValueSeparator,
+               mvc.SliceFlagSeparator,
+               mvc.DisableSliceFlagSeparator,
+       )
+}
+
 // Set parses the value and appends it to the list of values
 func (i *MapBase[T, C, VC]) Set(value string) error {
        if !i.hasBeenSet {
@@ -50,10 +63,23 @@
                return nil
        }
 
-       for _, item := range flagSplitMultiValues(value) {
-               key, value, ok := strings.Cut(item, 
defaultMapFlagKeyValueSeparator)
+       mvc := &i.multiValueConfig
+       keyValueSeparator := mvc.MapFlagKeyValueSeparator
+       if len(keyValueSeparator) == 0 {
+               keyValueSeparator = defaultMapFlagKeyValueSeparator
+       }
+
+       tracef(
+               "splitting map value '%s', keyValueSeparator '%s', slice 
separator '%s', disable separator:%v",
+               value,
+               keyValueSeparator,
+               mvc.SliceFlagSeparator,
+               mvc.DisableSliceFlagSeparator,
+       )
+       for _, item := range flagSplitMultiValues(value, 
mvc.SliceFlagSeparator, mvc.DisableSliceFlagSeparator) {
+               key, value, ok := strings.Cut(item, keyValueSeparator)
                if !ok {
-                       return fmt.Errorf("item %q is missing separator %q", 
item, defaultMapFlagKeyValueSeparator)
+                       return fmt.Errorf("item %q is missing separator %q", 
item, keyValueSeparator)
                }
                if err := i.value.Set(value); err != nil {
                        return err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/flag_slice_base.go 
new/vendor/github.com/urfave/cli/v3/flag_slice_base.go
--- old/vendor/github.com/urfave/cli/v3/flag_slice_base.go      2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/flag_slice_base.go      2025-11-14 
09:34:43.000000000 +0100
@@ -9,9 +9,11 @@
 
 // SliceBase wraps []T to satisfy flag.Value
 type SliceBase[T any, C any, VC ValueCreator[T, C]] struct {
-       slice      *[]T
-       hasBeenSet bool
-       value      Value
+       slice                 *[]T
+       hasBeenSet            bool
+       value                 Value
+       sliceSeparator        string
+       disableSliceSeparator bool
 }
 
 func (i SliceBase[T, C, VC]) Create(val []T, p *[]T, c C) Value {
@@ -33,6 +35,13 @@
        }
 }
 
+// configuration of slicing
+func (i *SliceBase[T, C, VC]) setMultiValueParsingConfig(c 
multiValueParsingConfig) {
+       i.disableSliceSeparator = c.DisableSliceFlagSeparator
+       i.sliceSeparator = c.SliceFlagSeparator
+       tracef("set slice parsing config - slice separator '%s', disable 
separator:%v", i.sliceSeparator, i.disableSliceSeparator)
+}
+
 // Set parses the value and appends it to the list of values
 func (i *SliceBase[T, C, VC]) Set(value string) error {
        if !i.hasBeenSet {
@@ -57,7 +66,8 @@
                trimSpace = false
        }
 
-       for _, s := range flagSplitMultiValues(value) {
+       tracef("splitting slice value '%s', separator '%s', disable 
separator:%v", value, i.sliceSeparator, i.disableSliceSeparator)
+       for _, s := range flagSplitMultiValues(value, i.sliceSeparator, 
i.disableSliceSeparator) {
                if trimSpace {
                        s = strings.TrimSpace(s)
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/urfave/cli/v3/godoc-current.txt 
new/vendor/github.com/urfave/cli/v3/godoc-current.txt
--- old/vendor/github.com/urfave/cli/v3/godoc-current.txt       2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/godoc-current.txt       2025-11-14 
09:34:43.000000000 +0100
@@ -502,6 +502,8 @@
        SliceFlagSeparator string `json:"sliceFlagSeparator"`
        // DisableSliceFlagSeparator is used to disable SliceFlagSeparator, the 
default is false
        DisableSliceFlagSeparator bool `json:"disableSliceFlagSeparator"`
+       // MapFlagKeyValueSeparator is used to customize the separator for 
MapFlag, the default is "="
+       MapFlagKeyValueSeparator string `json:"mapFlagKeyValueSeparator"`
        // Boolean to enable short-option handling so user can combine several
        // single-character bool arguments into one
        // i.e. foobar -o -v -> foobar -ov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt 
new/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt
--- old/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt 2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt 2025-11-14 
09:34:43.000000000 +0100
@@ -1,5 +1,5 @@
-mkdocs-git-revision-date-localized-plugin==1.4.7
-mkdocs-material==9.6.22
+mkdocs-git-revision-date-localized-plugin==1.5.0
+mkdocs-material==9.6.23
 mkdocs==1.6.1
 mkdocs-redirects==1.2.2
 pygments==2.19.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu.go 
new/vendor/golang.org/x/sys/cpu/cpu.go
--- old/vendor/golang.org/x/sys/cpu/cpu.go      2025-11-03 23:31:15.000000000 
+0100
+++ new/vendor/golang.org/x/sys/cpu/cpu.go      2025-11-14 09:34:43.000000000 
+0100
@@ -92,6 +92,9 @@
        HasSHA2     bool // SHA2 hardware implementation
        HasCRC32    bool // CRC32 hardware implementation
        HasATOMICS  bool // Atomic memory operation instruction set
+       HasHPDS     bool // Hierarchical permission disables in translations 
tables
+       HasLOR      bool // Limited ordering regions
+       HasPAN      bool // Privileged access never
        HasFPHP     bool // Half precision floating-point instruction set
        HasASIMDHP  bool // Advanced SIMD half precision instruction set
        HasCPUID    bool // CPUID identification scheme registers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_arm64.go        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_arm64.go        2025-11-14 
09:34:43.000000000 +0100
@@ -65,10 +65,10 @@
 func readARM64Registers() {
        Initialized = true
 
-       parseARM64SystemRegisters(getisar0(), getisar1(), getpfr0())
+       parseARM64SystemRegisters(getisar0(), getisar1(), getmmfr1(), getpfr0())
 }
 
-func parseARM64SystemRegisters(isar0, isar1, pfr0 uint64) {
+func parseARM64SystemRegisters(isar0, isar1, mmfr1, pfr0 uint64) {
        // ID_AA64ISAR0_EL1
        switch extractBits(isar0, 4, 7) {
        case 1:
@@ -152,6 +152,22 @@
                ARM64.HasI8MM = true
        }
 
+       // ID_AA64MMFR1_EL1
+       switch extractBits(mmfr1, 12, 15) {
+       case 1, 2:
+               ARM64.HasHPDS = true
+       }
+
+       switch extractBits(mmfr1, 16, 19) {
+       case 1:
+               ARM64.HasLOR = true
+       }
+
+       switch extractBits(mmfr1, 20, 23) {
+       case 1, 2, 3:
+               ARM64.HasPAN = true
+       }
+
        // ID_AA64PFR0_EL1
        switch extractBits(pfr0, 16, 19) {
        case 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_arm64.s 
new/vendor/golang.org/x/sys/cpu/cpu_arm64.s
--- old/vendor/golang.org/x/sys/cpu/cpu_arm64.s 2025-11-03 23:31:15.000000000 
+0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_arm64.s 2025-11-14 09:34:43.000000000 
+0100
@@ -9,31 +9,34 @@
 // func getisar0() uint64
 TEXT ·getisar0(SB),NOSPLIT,$0-8
        // get Instruction Set Attributes 0 into x0
-       // mrs x0, ID_AA64ISAR0_EL1 = d5380600
-       WORD    $0xd5380600
+       MRS     ID_AA64ISAR0_EL1, R0
        MOVD    R0, ret+0(FP)
        RET
 
 // func getisar1() uint64
 TEXT ·getisar1(SB),NOSPLIT,$0-8
        // get Instruction Set Attributes 1 into x0
-       // mrs x0, ID_AA64ISAR1_EL1 = d5380620
-       WORD    $0xd5380620
+       MRS     ID_AA64ISAR1_EL1, R0
+       MOVD    R0, ret+0(FP)
+       RET
+
+// func getmmfr1() uint64
+TEXT ·getmmfr1(SB),NOSPLIT,$0-8
+       // get Memory Model Feature Register 1 into x0
+       MRS     ID_AA64MMFR1_EL1, R0
        MOVD    R0, ret+0(FP)
        RET
 
 // func getpfr0() uint64
 TEXT ·getpfr0(SB),NOSPLIT,$0-8
        // get Processor Feature Register 0 into x0
-       // mrs x0, ID_AA64PFR0_EL1 = d5380400
-       WORD    $0xd5380400
+       MRS     ID_AA64PFR0_EL1, R0
        MOVD    R0, ret+0(FP)
        RET
 
 // func getzfr0() uint64
 TEXT ·getzfr0(SB),NOSPLIT,$0-8
        // get SVE Feature Register 0 into x0
-       // mrs  x0, ID_AA64ZFR0_EL1 = d5380480
-       WORD $0xd5380480
+       MRS     ID_AA64ZFR0_EL1, R0
        MOVD    R0, ret+0(FP)
        RET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go     2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_gc_arm64.go     2025-11-14 
09:34:43.000000000 +0100
@@ -8,5 +8,6 @@
 
 func getisar0() uint64
 func getisar1() uint64
+func getmmfr1() uint64
 func getpfr0() uint64
 func getzfr0() uint64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go  2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_gccgo_arm64.go  2025-11-14 
09:34:43.000000000 +0100
@@ -8,4 +8,5 @@
 
 func getisar0() uint64 { return 0 }
 func getisar1() uint64 { return 0 }
+func getmmfr1() uint64 { return 0 }
 func getpfr0() uint64  { return 0 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go 2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_netbsd_arm64.go 2025-11-14 
09:34:43.000000000 +0100
@@ -167,7 +167,7 @@
                setMinimalFeatures()
                return
        }
-       parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, 
cpuid.aa64pfr0)
+       parseARM64SystemRegisters(cpuid.aa64isar0, cpuid.aa64isar1, 
cpuid.aa64mmfr1, cpuid.aa64pfr0)
 
        Initialized = true
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_openbsd_arm64.go        2025-11-14 
09:34:43.000000000 +0100
@@ -59,7 +59,7 @@
        if !ok {
                return
        }
-       parseARM64SystemRegisters(isar0, isar1, 0)
+       parseARM64SystemRegisters(isar0, isar1, 0, 0)
 
        Initialized = true
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/mkerrors.sh 
new/vendor/golang.org/x/sys/unix/mkerrors.sh
--- old/vendor/golang.org/x/sys/unix/mkerrors.sh        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/mkerrors.sh        2025-11-14 
09:34:43.000000000 +0100
@@ -226,6 +226,7 @@
 #include <linux/cryptouser.h>
 #include <linux/devlink.h>
 #include <linux/dm-ioctl.h>
+#include <linux/elf.h>
 #include <linux/errqueue.h>
 #include <linux/ethtool_netlink.h>
 #include <linux/falloc.h>
@@ -529,6 +530,7 @@
                $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||
                $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||
                $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||
+               $2 ~ /^(DT|EI|ELF|EV|NN|NT|PF|SHF|SHN|SHT|STB|STT|VER)_/ ||
                $2 ~ /^O?XTABS$/ ||
                $2 ~ /^TC[IO](ON|OFF)$/ ||
                $2 ~ /^IN_/ ||
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux.go 
new/vendor/golang.org/x/sys/unix/syscall_linux.go
--- old/vendor/golang.org/x/sys/unix/syscall_linux.go   2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/syscall_linux.go   2025-11-14 
09:34:43.000000000 +0100
@@ -2643,3 +2643,9 @@
 
 //sys  Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags 
uint) (err error)
 //sys  Mseal(b []byte, flags uint) (err error)
+
+//sys  setMemPolicy(mode int, mask *CPUSet, size int) (err error) = 
SYS_SET_MEMPOLICY
+
+func SetMemPolicy(mode int, mask *CPUSet) error {
+       return setMemPolicy(mode, mask, _CPU_SETSIZE)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux.go 
new/vendor/golang.org/x/sys/unix/zerrors_linux.go
--- old/vendor/golang.org/x/sys/unix/zerrors_linux.go   2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/zerrors_linux.go   2025-11-14 
09:34:43.000000000 +0100
@@ -853,20 +853,86 @@
        DM_VERSION_MAJOR                            = 0x4
        DM_VERSION_MINOR                            = 0x32
        DM_VERSION_PATCHLEVEL                       = 0x0
+       DT_ADDRRNGHI                                = 0x6ffffeff
+       DT_ADDRRNGLO                                = 0x6ffffe00
        DT_BLK                                      = 0x6
        DT_CHR                                      = 0x2
+       DT_DEBUG                                    = 0x15
        DT_DIR                                      = 0x4
+       DT_ENCODING                                 = 0x20
        DT_FIFO                                     = 0x1
+       DT_FINI                                     = 0xd
+       DT_FLAGS_1                                  = 0x6ffffffb
+       DT_GNU_HASH                                 = 0x6ffffef5
+       DT_HASH                                     = 0x4
+       DT_HIOS                                     = 0x6ffff000
+       DT_HIPROC                                   = 0x7fffffff
+       DT_INIT                                     = 0xc
+       DT_JMPREL                                   = 0x17
        DT_LNK                                      = 0xa
+       DT_LOOS                                     = 0x6000000d
+       DT_LOPROC                                   = 0x70000000
+       DT_NEEDED                                   = 0x1
+       DT_NULL                                     = 0x0
+       DT_PLTGOT                                   = 0x3
+       DT_PLTREL                                   = 0x14
+       DT_PLTRELSZ                                 = 0x2
        DT_REG                                      = 0x8
+       DT_REL                                      = 0x11
+       DT_RELA                                     = 0x7
+       DT_RELACOUNT                                = 0x6ffffff9
+       DT_RELAENT                                  = 0x9
+       DT_RELASZ                                   = 0x8
+       DT_RELCOUNT                                 = 0x6ffffffa
+       DT_RELENT                                   = 0x13
+       DT_RELSZ                                    = 0x12
+       DT_RPATH                                    = 0xf
        DT_SOCK                                     = 0xc
+       DT_SONAME                                   = 0xe
+       DT_STRSZ                                    = 0xa
+       DT_STRTAB                                   = 0x5
+       DT_SYMBOLIC                                 = 0x10
+       DT_SYMENT                                   = 0xb
+       DT_SYMTAB                                   = 0x6
+       DT_TEXTREL                                  = 0x16
        DT_UNKNOWN                                  = 0x0
+       DT_VALRNGHI                                 = 0x6ffffdff
+       DT_VALRNGLO                                 = 0x6ffffd00
+       DT_VERDEF                                   = 0x6ffffffc
+       DT_VERDEFNUM                                = 0x6ffffffd
+       DT_VERNEED                                  = 0x6ffffffe
+       DT_VERNEEDNUM                               = 0x6fffffff
+       DT_VERSYM                                   = 0x6ffffff0
        DT_WHT                                      = 0xe
        ECHO                                        = 0x8
        ECRYPTFS_SUPER_MAGIC                        = 0xf15f
        EFD_SEMAPHORE                               = 0x1
        EFIVARFS_MAGIC                              = 0xde5e81e4
        EFS_SUPER_MAGIC                             = 0x414a53
+       EI_CLASS                                    = 0x4
+       EI_DATA                                     = 0x5
+       EI_MAG0                                     = 0x0
+       EI_MAG1                                     = 0x1
+       EI_MAG2                                     = 0x2
+       EI_MAG3                                     = 0x3
+       EI_NIDENT                                   = 0x10
+       EI_OSABI                                    = 0x7
+       EI_PAD                                      = 0x8
+       EI_VERSION                                  = 0x6
+       ELFCLASS32                                  = 0x1
+       ELFCLASS64                                  = 0x2
+       ELFCLASSNONE                                = 0x0
+       ELFCLASSNUM                                 = 0x3
+       ELFDATA2LSB                                 = 0x1
+       ELFDATA2MSB                                 = 0x2
+       ELFDATANONE                                 = 0x0
+       ELFMAG                                      = "\177ELF"
+       ELFMAG0                                     = 0x7f
+       ELFMAG1                                     = 'E'
+       ELFMAG2                                     = 'L'
+       ELFMAG3                                     = 'F'
+       ELFOSABI_LINUX                              = 0x3
+       ELFOSABI_NONE                               = 0x0
        EM_386                                      = 0x3
        EM_486                                      = 0x6
        EM_68K                                      = 0x4
@@ -1152,14 +1218,24 @@
        ETH_P_WCCP                                  = 0x883e
        ETH_P_X25                                   = 0x805
        ETH_P_XDSA                                  = 0xf8
+       ET_CORE                                     = 0x4
+       ET_DYN                                      = 0x3
+       ET_EXEC                                     = 0x2
+       ET_HIPROC                                   = 0xffff
+       ET_LOPROC                                   = 0xff00
+       ET_NONE                                     = 0x0
+       ET_REL                                      = 0x1
        EV_ABS                                      = 0x3
        EV_CNT                                      = 0x20
+       EV_CURRENT                                  = 0x1
        EV_FF                                       = 0x15
        EV_FF_STATUS                                = 0x17
        EV_KEY                                      = 0x1
        EV_LED                                      = 0x11
        EV_MAX                                      = 0x1f
        EV_MSC                                      = 0x4
+       EV_NONE                                     = 0x0
+       EV_NUM                                      = 0x2
        EV_PWR                                      = 0x16
        EV_REL                                      = 0x2
        EV_REP                                      = 0x14
@@ -2276,7 +2352,167 @@
        NLM_F_REPLACE                               = 0x100
        NLM_F_REQUEST                               = 0x1
        NLM_F_ROOT                                  = 0x100
+       NN_386_IOPERM                               = "LINUX"
+       NN_386_TLS                                  = "LINUX"
+       NN_ARC_V2                                   = "LINUX"
+       NN_ARM_FPMR                                 = "LINUX"
+       NN_ARM_GCS                                  = "LINUX"
+       NN_ARM_HW_BREAK                             = "LINUX"
+       NN_ARM_HW_WATCH                             = "LINUX"
+       NN_ARM_PACA_KEYS                            = "LINUX"
+       NN_ARM_PACG_KEYS                            = "LINUX"
+       NN_ARM_PAC_ENABLED_KEYS                     = "LINUX"
+       NN_ARM_PAC_MASK                             = "LINUX"
+       NN_ARM_POE                                  = "LINUX"
+       NN_ARM_SSVE                                 = "LINUX"
+       NN_ARM_SVE                                  = "LINUX"
+       NN_ARM_SYSTEM_CALL                          = "LINUX"
+       NN_ARM_TAGGED_ADDR_CTRL                     = "LINUX"
+       NN_ARM_TLS                                  = "LINUX"
+       NN_ARM_VFP                                  = "LINUX"
+       NN_ARM_ZA                                   = "LINUX"
+       NN_ARM_ZT                                   = "LINUX"
+       NN_AUXV                                     = "CORE"
+       NN_FILE                                     = "CORE"
+       NN_GNU_PROPERTY_TYPE_0                      = "GNU"
+       NN_LOONGARCH_CPUCFG                         = "LINUX"
+       NN_LOONGARCH_CSR                            = "LINUX"
+       NN_LOONGARCH_HW_BREAK                       = "LINUX"
+       NN_LOONGARCH_HW_WATCH                       = "LINUX"
+       NN_LOONGARCH_LASX                           = "LINUX"
+       NN_LOONGARCH_LBT                            = "LINUX"
+       NN_LOONGARCH_LSX                            = "LINUX"
+       NN_MIPS_DSP                                 = "LINUX"
+       NN_MIPS_FP_MODE                             = "LINUX"
+       NN_MIPS_MSA                                 = "LINUX"
+       NN_PPC_DEXCR                                = "LINUX"
+       NN_PPC_DSCR                                 = "LINUX"
+       NN_PPC_EBB                                  = "LINUX"
+       NN_PPC_HASHKEYR                             = "LINUX"
+       NN_PPC_PKEY                                 = "LINUX"
+       NN_PPC_PMU                                  = "LINUX"
+       NN_PPC_PPR                                  = "LINUX"
+       NN_PPC_SPE                                  = "LINUX"
+       NN_PPC_TAR                                  = "LINUX"
+       NN_PPC_TM_CDSCR                             = "LINUX"
+       NN_PPC_TM_CFPR                              = "LINUX"
+       NN_PPC_TM_CGPR                              = "LINUX"
+       NN_PPC_TM_CPPR                              = "LINUX"
+       NN_PPC_TM_CTAR                              = "LINUX"
+       NN_PPC_TM_CVMX                              = "LINUX"
+       NN_PPC_TM_CVSX                              = "LINUX"
+       NN_PPC_TM_SPR                               = "LINUX"
+       NN_PPC_VMX                                  = "LINUX"
+       NN_PPC_VSX                                  = "LINUX"
+       NN_PRFPREG                                  = "CORE"
+       NN_PRPSINFO                                 = "CORE"
+       NN_PRSTATUS                                 = "CORE"
+       NN_PRXFPREG                                 = "LINUX"
+       NN_RISCV_CSR                                = "LINUX"
+       NN_RISCV_TAGGED_ADDR_CTRL                   = "LINUX"
+       NN_RISCV_VECTOR                             = "LINUX"
+       NN_S390_CTRS                                = "LINUX"
+       NN_S390_GS_BC                               = "LINUX"
+       NN_S390_GS_CB                               = "LINUX"
+       NN_S390_HIGH_GPRS                           = "LINUX"
+       NN_S390_LAST_BREAK                          = "LINUX"
+       NN_S390_PREFIX                              = "LINUX"
+       NN_S390_PV_CPU_DATA                         = "LINUX"
+       NN_S390_RI_CB                               = "LINUX"
+       NN_S390_SYSTEM_CALL                         = "LINUX"
+       NN_S390_TDB                                 = "LINUX"
+       NN_S390_TIMER                               = "LINUX"
+       NN_S390_TODCMP                              = "LINUX"
+       NN_S390_TODPREG                             = "LINUX"
+       NN_S390_VXRS_HIGH                           = "LINUX"
+       NN_S390_VXRS_LOW                            = "LINUX"
+       NN_SIGINFO                                  = "CORE"
+       NN_TASKSTRUCT                               = "CORE"
+       NN_VMCOREDD                                 = "LINUX"
+       NN_X86_SHSTK                                = "LINUX"
+       NN_X86_XSAVE_LAYOUT                         = "LINUX"
+       NN_X86_XSTATE                               = "LINUX"
        NSFS_MAGIC                                  = 0x6e736673
+       NT_386_IOPERM                               = 0x201
+       NT_386_TLS                                  = 0x200
+       NT_ARC_V2                                   = 0x600
+       NT_ARM_FPMR                                 = 0x40e
+       NT_ARM_GCS                                  = 0x410
+       NT_ARM_HW_BREAK                             = 0x402
+       NT_ARM_HW_WATCH                             = 0x403
+       NT_ARM_PACA_KEYS                            = 0x407
+       NT_ARM_PACG_KEYS                            = 0x408
+       NT_ARM_PAC_ENABLED_KEYS                     = 0x40a
+       NT_ARM_PAC_MASK                             = 0x406
+       NT_ARM_POE                                  = 0x40f
+       NT_ARM_SSVE                                 = 0x40b
+       NT_ARM_SVE                                  = 0x405
+       NT_ARM_SYSTEM_CALL                          = 0x404
+       NT_ARM_TAGGED_ADDR_CTRL                     = 0x409
+       NT_ARM_TLS                                  = 0x401
+       NT_ARM_VFP                                  = 0x400
+       NT_ARM_ZA                                   = 0x40c
+       NT_ARM_ZT                                   = 0x40d
+       NT_AUXV                                     = 0x6
+       NT_FILE                                     = 0x46494c45
+       NT_GNU_PROPERTY_TYPE_0                      = 0x5
+       NT_LOONGARCH_CPUCFG                         = 0xa00
+       NT_LOONGARCH_CSR                            = 0xa01
+       NT_LOONGARCH_HW_BREAK                       = 0xa05
+       NT_LOONGARCH_HW_WATCH                       = 0xa06
+       NT_LOONGARCH_LASX                           = 0xa03
+       NT_LOONGARCH_LBT                            = 0xa04
+       NT_LOONGARCH_LSX                            = 0xa02
+       NT_MIPS_DSP                                 = 0x800
+       NT_MIPS_FP_MODE                             = 0x801
+       NT_MIPS_MSA                                 = 0x802
+       NT_PPC_DEXCR                                = 0x111
+       NT_PPC_DSCR                                 = 0x105
+       NT_PPC_EBB                                  = 0x106
+       NT_PPC_HASHKEYR                             = 0x112
+       NT_PPC_PKEY                                 = 0x110
+       NT_PPC_PMU                                  = 0x107
+       NT_PPC_PPR                                  = 0x104
+       NT_PPC_SPE                                  = 0x101
+       NT_PPC_TAR                                  = 0x103
+       NT_PPC_TM_CDSCR                             = 0x10f
+       NT_PPC_TM_CFPR                              = 0x109
+       NT_PPC_TM_CGPR                              = 0x108
+       NT_PPC_TM_CPPR                              = 0x10e
+       NT_PPC_TM_CTAR                              = 0x10d
+       NT_PPC_TM_CVMX                              = 0x10a
+       NT_PPC_TM_CVSX                              = 0x10b
+       NT_PPC_TM_SPR                               = 0x10c
+       NT_PPC_VMX                                  = 0x100
+       NT_PPC_VSX                                  = 0x102
+       NT_PRFPREG                                  = 0x2
+       NT_PRPSINFO                                 = 0x3
+       NT_PRSTATUS                                 = 0x1
+       NT_PRXFPREG                                 = 0x46e62b7f
+       NT_RISCV_CSR                                = 0x900
+       NT_RISCV_TAGGED_ADDR_CTRL                   = 0x902
+       NT_RISCV_VECTOR                             = 0x901
+       NT_S390_CTRS                                = 0x304
+       NT_S390_GS_BC                               = 0x30c
+       NT_S390_GS_CB                               = 0x30b
+       NT_S390_HIGH_GPRS                           = 0x300
+       NT_S390_LAST_BREAK                          = 0x306
+       NT_S390_PREFIX                              = 0x305
+       NT_S390_PV_CPU_DATA                         = 0x30e
+       NT_S390_RI_CB                               = 0x30d
+       NT_S390_SYSTEM_CALL                         = 0x307
+       NT_S390_TDB                                 = 0x308
+       NT_S390_TIMER                               = 0x301
+       NT_S390_TODCMP                              = 0x302
+       NT_S390_TODPREG                             = 0x303
+       NT_S390_VXRS_HIGH                           = 0x30a
+       NT_S390_VXRS_LOW                            = 0x309
+       NT_SIGINFO                                  = 0x53494749
+       NT_TASKSTRUCT                               = 0x4
+       NT_VMCOREDD                                 = 0x700
+       NT_X86_SHSTK                                = 0x204
+       NT_X86_XSAVE_LAYOUT                         = 0x205
+       NT_X86_XSTATE                               = 0x202
        OCFS2_SUPER_MAGIC                           = 0x7461636f
        OCRNL                                       = 0x8
        OFDEL                                       = 0x80
@@ -2463,6 +2699,59 @@
        PERF_RECORD_MISC_USER                       = 0x2
        PERF_SAMPLE_BRANCH_PLM_ALL                  = 0x7
        PERF_SAMPLE_WEIGHT_TYPE                     = 0x1004000
+       PF_ALG                                      = 0x26
+       PF_APPLETALK                                = 0x5
+       PF_ASH                                      = 0x12
+       PF_ATMPVC                                   = 0x8
+       PF_ATMSVC                                   = 0x14
+       PF_AX25                                     = 0x3
+       PF_BLUETOOTH                                = 0x1f
+       PF_BRIDGE                                   = 0x7
+       PF_CAIF                                     = 0x25
+       PF_CAN                                      = 0x1d
+       PF_DECnet                                   = 0xc
+       PF_ECONET                                   = 0x13
+       PF_FILE                                     = 0x1
+       PF_IB                                       = 0x1b
+       PF_IEEE802154                               = 0x24
+       PF_INET                                     = 0x2
+       PF_INET6                                    = 0xa
+       PF_IPX                                      = 0x4
+       PF_IRDA                                     = 0x17
+       PF_ISDN                                     = 0x22
+       PF_IUCV                                     = 0x20
+       PF_KCM                                      = 0x29
+       PF_KEY                                      = 0xf
+       PF_LLC                                      = 0x1a
+       PF_LOCAL                                    = 0x1
+       PF_MAX                                      = 0x2e
+       PF_MCTP                                     = 0x2d
+       PF_MPLS                                     = 0x1c
+       PF_NETBEUI                                  = 0xd
+       PF_NETLINK                                  = 0x10
+       PF_NETROM                                   = 0x6
+       PF_NFC                                      = 0x27
+       PF_PACKET                                   = 0x11
+       PF_PHONET                                   = 0x23
+       PF_PPPOX                                    = 0x18
+       PF_QIPCRTR                                  = 0x2a
+       PF_R                                        = 0x4
+       PF_RDS                                      = 0x15
+       PF_ROSE                                     = 0xb
+       PF_ROUTE                                    = 0x10
+       PF_RXRPC                                    = 0x21
+       PF_SECURITY                                 = 0xe
+       PF_SMC                                      = 0x2b
+       PF_SNA                                      = 0x16
+       PF_TIPC                                     = 0x1e
+       PF_UNIX                                     = 0x1
+       PF_UNSPEC                                   = 0x0
+       PF_VSOCK                                    = 0x28
+       PF_W                                        = 0x2
+       PF_WANPIPE                                  = 0x19
+       PF_X                                        = 0x1
+       PF_X25                                      = 0x9
+       PF_XDP                                      = 0x2c
        PID_FS_MAGIC                                = 0x50494446
        PIPEFS_MAGIC                                = 0x50495045
        PPPIOCGNPMODE                               = 0xc008744c
@@ -2758,6 +3047,23 @@
        PTRACE_SYSCALL_INFO_NONE                    = 0x0
        PTRACE_SYSCALL_INFO_SECCOMP                 = 0x3
        PTRACE_TRACEME                              = 0x0
+       PT_AARCH64_MEMTAG_MTE                       = 0x70000002
+       PT_DYNAMIC                                  = 0x2
+       PT_GNU_EH_FRAME                             = 0x6474e550
+       PT_GNU_PROPERTY                             = 0x6474e553
+       PT_GNU_RELRO                                = 0x6474e552
+       PT_GNU_STACK                                = 0x6474e551
+       PT_HIOS                                     = 0x6fffffff
+       PT_HIPROC                                   = 0x7fffffff
+       PT_INTERP                                   = 0x3
+       PT_LOAD                                     = 0x1
+       PT_LOOS                                     = 0x60000000
+       PT_LOPROC                                   = 0x70000000
+       PT_NOTE                                     = 0x4
+       PT_NULL                                     = 0x0
+       PT_PHDR                                     = 0x6
+       PT_SHLIB                                    = 0x5
+       PT_TLS                                      = 0x7
        P_ALL                                       = 0x0
        P_PGID                                      = 0x2
        P_PID                                       = 0x1
@@ -3091,6 +3397,47 @@
        SEEK_MAX                                    = 0x4
        SEEK_SET                                    = 0x0
        SELINUX_MAGIC                               = 0xf97cff8c
+       SHF_ALLOC                                   = 0x2
+       SHF_EXCLUDE                                 = 0x8000000
+       SHF_EXECINSTR                               = 0x4
+       SHF_GROUP                                   = 0x200
+       SHF_INFO_LINK                               = 0x40
+       SHF_LINK_ORDER                              = 0x80
+       SHF_MASKOS                                  = 0xff00000
+       SHF_MASKPROC                                = 0xf0000000
+       SHF_MERGE                                   = 0x10
+       SHF_ORDERED                                 = 0x4000000
+       SHF_OS_NONCONFORMING                        = 0x100
+       SHF_RELA_LIVEPATCH                          = 0x100000
+       SHF_RO_AFTER_INIT                           = 0x200000
+       SHF_STRINGS                                 = 0x20
+       SHF_TLS                                     = 0x400
+       SHF_WRITE                                   = 0x1
+       SHN_ABS                                     = 0xfff1
+       SHN_COMMON                                  = 0xfff2
+       SHN_HIPROC                                  = 0xff1f
+       SHN_HIRESERVE                               = 0xffff
+       SHN_LIVEPATCH                               = 0xff20
+       SHN_LOPROC                                  = 0xff00
+       SHN_LORESERVE                               = 0xff00
+       SHN_UNDEF                                   = 0x0
+       SHT_DYNAMIC                                 = 0x6
+       SHT_DYNSYM                                  = 0xb
+       SHT_HASH                                    = 0x5
+       SHT_HIPROC                                  = 0x7fffffff
+       SHT_HIUSER                                  = 0xffffffff
+       SHT_LOPROC                                  = 0x70000000
+       SHT_LOUSER                                  = 0x80000000
+       SHT_NOBITS                                  = 0x8
+       SHT_NOTE                                    = 0x7
+       SHT_NULL                                    = 0x0
+       SHT_NUM                                     = 0xc
+       SHT_PROGBITS                                = 0x1
+       SHT_REL                                     = 0x9
+       SHT_RELA                                    = 0x4
+       SHT_SHLIB                                   = 0xa
+       SHT_STRTAB                                  = 0x3
+       SHT_SYMTAB                                  = 0x2
        SHUT_RD                                     = 0x0
        SHUT_RDWR                                   = 0x2
        SHUT_WR                                     = 0x1
@@ -3317,6 +3664,16 @@
        STATX_UID                                   = 0x8
        STATX_WRITE_ATOMIC                          = 0x10000
        STATX__RESERVED                             = 0x80000000
+       STB_GLOBAL                                  = 0x1
+       STB_LOCAL                                   = 0x0
+       STB_WEAK                                    = 0x2
+       STT_COMMON                                  = 0x5
+       STT_FILE                                    = 0x4
+       STT_FUNC                                    = 0x2
+       STT_NOTYPE                                  = 0x0
+       STT_OBJECT                                  = 0x1
+       STT_SECTION                                 = 0x3
+       STT_TLS                                     = 0x6
        SYNC_FILE_RANGE_WAIT_AFTER                  = 0x4
        SYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1
        SYNC_FILE_RANGE_WRITE                       = 0x2
@@ -3553,6 +3910,8 @@
        UTIME_OMIT                                  = 0x3ffffffe
        V9FS_MAGIC                                  = 0x1021997
        VERASE                                      = 0x2
+       VER_FLG_BASE                                = 0x1
+       VER_FLG_WEAK                                = 0x2
        VINTR                                       = 0x0
        VKILL                                       = 0x3
        VLNEXT                                      = 0xf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux.go 
new/vendor/golang.org/x/sys/unix/zsyscall_linux.go
--- old/vendor/golang.org/x/sys/unix/zsyscall_linux.go  2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/zsyscall_linux.go  2025-11-14 
09:34:43.000000000 +0100
@@ -2238,3 +2238,13 @@
        }
        return
 }
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setMemPolicy(mode int, mask *CPUSet, size int) (err error) {
+       _, _, e1 := Syscall(SYS_SET_MEMPOLICY, uintptr(mode), 
uintptr(unsafe.Pointer(mask)), uintptr(size))
+       if e1 != 0 {
+               err = errnoErr(e1)
+       }
+       return
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux.go    2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux.go    2025-11-14 
09:34:43.000000000 +0100
@@ -3590,6 +3590,8 @@
        Flags    uint32
 }
 
+const SizeofNhmsg = 0x8
+
 type NexthopGrp struct {
        Id     uint32
        Weight uint8
@@ -3597,6 +3599,8 @@
        Resvd2 uint16
 }
 
+const SizeofNexthopGrp = 0x8
+
 const (
        NHA_UNSPEC     = 0x0
        NHA_ID         = 0x1
@@ -6332,3 +6336,30 @@
 }
 
 const RTM_NEWNVLAN = 0x70
+
+const (
+       MPOL_BIND                = 0x2
+       MPOL_DEFAULT             = 0x0
+       MPOL_F_ADDR              = 0x2
+       MPOL_F_MEMS_ALLOWED      = 0x4
+       MPOL_F_MOF               = 0x8
+       MPOL_F_MORON             = 0x10
+       MPOL_F_NODE              = 0x1
+       MPOL_F_NUMA_BALANCING    = 0x2000
+       MPOL_F_RELATIVE_NODES    = 0x4000
+       MPOL_F_SHARED            = 0x1
+       MPOL_F_STATIC_NODES      = 0x8000
+       MPOL_INTERLEAVE          = 0x3
+       MPOL_LOCAL               = 0x4
+       MPOL_MAX                 = 0x7
+       MPOL_MF_INTERNAL         = 0x10
+       MPOL_MF_LAZY             = 0x8
+       MPOL_MF_MOVE_ALL         = 0x4
+       MPOL_MF_MOVE             = 0x2
+       MPOL_MF_STRICT           = 0x1
+       MPOL_MF_VALID            = 0x7
+       MPOL_MODE_FLAGS          = 0xe000
+       MPOL_PREFERRED           = 0x1
+       MPOL_PREFERRED_MANY      = 0x5
+       MPOL_WEIGHTED_INTERLEAVE = 0x6
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go 
new/vendor/golang.org/x/sys/windows/syscall_windows.go
--- old/vendor/golang.org/x/sys/windows/syscall_windows.go      2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go      2025-11-14 
09:34:43.000000000 +0100
@@ -892,8 +892,12 @@
 //sys  MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr 
int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = 
kernel32.MultiByteToWideChar
 //sys  getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) 
(errcode error) = iphlpapi.GetBestInterfaceEx
 //sys   GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = 
iphlpapi.GetIfEntry2Ex
+//sys   GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) = 
iphlpapi.GetIpForwardEntry2
+//sys   GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode 
error) = iphlpapi.GetIpForwardTable2
 //sys   GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) 
= iphlpapi.GetUnicastIpAddressEntry
+//sys   FreeMibTable(memory unsafe.Pointer) = iphlpapi.FreeMibTable
 //sys   NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext 
unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode 
error) = iphlpapi.NotifyIpInterfaceChange
+//sys   NotifyRouteChange2(family uint16, callback uintptr, callerContext 
unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode 
error) = iphlpapi.NotifyRouteChange2
 //sys   NotifyUnicastIpAddressChange(family uint16, callback uintptr, 
callerContext unsafe.Pointer, initialNotification bool, notificationHandle 
*Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange
 //sys   CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = 
iphlpapi.CancelMibChangeNotify2
 
@@ -916,6 +920,17 @@
        Scope_id uint32
 }
 
+// RawSockaddrInet is a union that contains an IPv4, an IPv6 address, or an 
address family. See
+// 
https://learn.microsoft.com/en-us/windows/win32/api/ws2ipdef/ns-ws2ipdef-sockaddr_inet.
+//
+// A [*RawSockaddrInet] may be converted to a [*RawSockaddrInet4] or 
[*RawSockaddrInet6] using
+// unsafe, depending on the address family.
+type RawSockaddrInet struct {
+       Family uint16
+       Port   uint16
+       Data   [6]uint32
+}
+
 type RawSockaddr struct {
        Family uint16
        Data   [14]int8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/types_windows.go 
new/vendor/golang.org/x/sys/windows/types_windows.go
--- old/vendor/golang.org/x/sys/windows/types_windows.go        2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/types_windows.go        2025-11-14 
09:34:43.000000000 +0100
@@ -2320,6 +2320,82 @@
        OutQLen                     uint64
 }
 
+// IP_ADDRESS_PREFIX stores an IP address prefix. See
+// 
https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-ip_address_prefix.
+type IpAddressPrefix struct {
+       Prefix       RawSockaddrInet
+       PrefixLength uint8
+}
+
+// NL_ROUTE_ORIGIN enumeration from nldef.h or
+// 
https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_origin.
+const (
+       NlroManual              = 0
+       NlroWellKnown           = 1
+       NlroDHCP                = 2
+       NlroRouterAdvertisement = 3
+       Nlro6to4                = 4
+)
+
+// NL_ROUTE_ORIGIN enumeration from nldef.h or
+// 
https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_route_protocol.
+const (
+       MIB_IPPROTO_OTHER             = 1
+       MIB_IPPROTO_LOCAL             = 2
+       MIB_IPPROTO_NETMGMT           = 3
+       MIB_IPPROTO_ICMP              = 4
+       MIB_IPPROTO_EGP               = 5
+       MIB_IPPROTO_GGP               = 6
+       MIB_IPPROTO_HELLO             = 7
+       MIB_IPPROTO_RIP               = 8
+       MIB_IPPROTO_IS_IS             = 9
+       MIB_IPPROTO_ES_IS             = 10
+       MIB_IPPROTO_CISCO             = 11
+       MIB_IPPROTO_BBN               = 12
+       MIB_IPPROTO_OSPF              = 13
+       MIB_IPPROTO_BGP               = 14
+       MIB_IPPROTO_IDPR              = 15
+       MIB_IPPROTO_EIGRP             = 16
+       MIB_IPPROTO_DVMRP             = 17
+       MIB_IPPROTO_RPL               = 18
+       MIB_IPPROTO_DHCP              = 19
+       MIB_IPPROTO_NT_AUTOSTATIC     = 10002
+       MIB_IPPROTO_NT_STATIC         = 10006
+       MIB_IPPROTO_NT_STATIC_NON_DOD = 10007
+)
+
+// MIB_IPFORWARD_ROW2 stores information about an IP route entry. See
+// 
https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_row2.
+type MibIpForwardRow2 struct {
+       InterfaceLuid        uint64
+       InterfaceIndex       uint32
+       DestinationPrefix    IpAddressPrefix
+       NextHop              RawSockaddrInet
+       SitePrefixLength     uint8
+       ValidLifetime        uint32
+       PreferredLifetime    uint32
+       Metric               uint32
+       Protocol             uint32
+       Loopback             uint8
+       AutoconfigureAddress uint8
+       Publish              uint8
+       Immortal             uint8
+       Age                  uint32
+       Origin               uint32
+}
+
+// MIB_IPFORWARD_TABLE2 contains a table of IP route entries. See
+// 
https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipforward_table2.
+type MibIpForwardTable2 struct {
+       NumEntries uint32
+       Table      [1]MibIpForwardRow2
+}
+
+// Rows returns the IP route entries in the table.
+func (t *MibIpForwardTable2) Rows() []MibIpForwardRow2 {
+       return unsafe.Slice(&t.Table[0], t.NumEntries)
+}
+
 // MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See
 // 
https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row.
 type MibUnicastIpAddressRow struct {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/zsyscall_windows.go 
new/vendor/golang.org/x/sys/windows/zsyscall_windows.go
--- old/vendor/golang.org/x/sys/windows/zsyscall_windows.go     2025-11-03 
23:31:15.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/zsyscall_windows.go     2025-11-14 
09:34:43.000000000 +0100
@@ -182,13 +182,17 @@
        procDwmGetWindowAttribute                                = 
moddwmapi.NewProc("DwmGetWindowAttribute")
        procDwmSetWindowAttribute                                = 
moddwmapi.NewProc("DwmSetWindowAttribute")
        procCancelMibChangeNotify2                               = 
modiphlpapi.NewProc("CancelMibChangeNotify2")
+       procFreeMibTable                                         = 
modiphlpapi.NewProc("FreeMibTable")
        procGetAdaptersAddresses                                 = 
modiphlpapi.NewProc("GetAdaptersAddresses")
        procGetAdaptersInfo                                      = 
modiphlpapi.NewProc("GetAdaptersInfo")
        procGetBestInterfaceEx                                   = 
modiphlpapi.NewProc("GetBestInterfaceEx")
        procGetIfEntry                                           = 
modiphlpapi.NewProc("GetIfEntry")
        procGetIfEntry2Ex                                        = 
modiphlpapi.NewProc("GetIfEntry2Ex")
+       procGetIpForwardEntry2                                   = 
modiphlpapi.NewProc("GetIpForwardEntry2")
+       procGetIpForwardTable2                                   = 
modiphlpapi.NewProc("GetIpForwardTable2")
        procGetUnicastIpAddressEntry                             = 
modiphlpapi.NewProc("GetUnicastIpAddressEntry")
        procNotifyIpInterfaceChange                              = 
modiphlpapi.NewProc("NotifyIpInterfaceChange")
+       procNotifyRouteChange2                                   = 
modiphlpapi.NewProc("NotifyRouteChange2")
        procNotifyUnicastIpAddressChange                         = 
modiphlpapi.NewProc("NotifyUnicastIpAddressChange")
        procAddDllDirectory                                      = 
modkernel32.NewProc("AddDllDirectory")
        procAssignProcessToJobObject                             = 
modkernel32.NewProc("AssignProcessToJobObject")
@@ -1624,6 +1628,11 @@
        return
 }
 
+func FreeMibTable(memory unsafe.Pointer) {
+       syscall.SyscallN(procFreeMibTable.Addr(), uintptr(memory))
+       return
+}
+
 func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, 
adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {
        r0, _, _ := syscall.SyscallN(procGetAdaptersAddresses.Addr(), 
uintptr(family), uintptr(flags), uintptr(reserved), 
uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)))
        if r0 != 0 {
@@ -1664,6 +1673,22 @@
        return
 }
 
+func GetIpForwardEntry2(row *MibIpForwardRow2) (errcode error) {
+       r0, _, _ := syscall.SyscallN(procGetIpForwardEntry2.Addr(), 
uintptr(unsafe.Pointer(row)))
+       if r0 != 0 {
+               errcode = syscall.Errno(r0)
+       }
+       return
+}
+
+func GetIpForwardTable2(family uint16, table **MibIpForwardTable2) (errcode 
error) {
+       r0, _, _ := syscall.SyscallN(procGetIpForwardTable2.Addr(), 
uintptr(family), uintptr(unsafe.Pointer(table)))
+       if r0 != 0 {
+               errcode = syscall.Errno(r0)
+       }
+       return
+}
+
 func GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) {
        r0, _, _ := syscall.SyscallN(procGetUnicastIpAddressEntry.Addr(), 
uintptr(unsafe.Pointer(row)))
        if r0 != 0 {
@@ -1681,6 +1706,18 @@
        if r0 != 0 {
                errcode = syscall.Errno(r0)
        }
+       return
+}
+
+func NotifyRouteChange2(family uint16, callback uintptr, callerContext 
unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode 
error) {
+       var _p0 uint32
+       if initialNotification {
+               _p0 = 1
+       }
+       r0, _, _ := syscall.SyscallN(procNotifyRouteChange2.Addr(), 
uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), 
uintptr(unsafe.Pointer(notificationHandle)))
+       if r0 != 0 {
+               errcode = syscall.Errno(r0)
+       }
        return
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/term/terminal.go 
new/vendor/golang.org/x/term/terminal.go
--- old/vendor/golang.org/x/term/terminal.go    2025-11-03 23:31:15.000000000 
+0100
+++ new/vendor/golang.org/x/term/terminal.go    2025-11-14 09:34:43.000000000 
+0100
@@ -413,7 +413,7 @@
        }
 }
 
-// countToLeftWord returns then number of characters from the cursor to the
+// countToLeftWord returns the number of characters from the cursor to the
 // start of the previous word.
 func (t *Terminal) countToLeftWord() int {
        if t.pos == 0 {
@@ -438,7 +438,7 @@
        return t.pos - pos
 }
 
-// countToRightWord returns then number of characters from the cursor to the
+// countToRightWord returns the number of characters from the cursor to the
 // start of the next word.
 func (t *Terminal) countToRightWord() int {
        pos := t.pos
@@ -478,7 +478,7 @@
        return length
 }
 
-// histroryAt unlocks the terminal and relocks it while calling History.At.
+// historyAt unlocks the terminal and relocks it while calling History.At.
 func (t *Terminal) historyAt(idx int) (string, bool) {
        t.lock.Unlock()     // Unlock to avoid deadlock if History methods use 
the output writer.
        defer t.lock.Lock() // panic in At (or Len) protection.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2025-11-03 23:31:15.000000000 +0100
+++ new/vendor/modules.txt      2025-11-14 09:34:43.000000000 +0100
@@ -159,7 +159,7 @@
 github.com/stretchr/testify/assert
 github.com/stretchr/testify/assert/yaml
 github.com/stretchr/testify/require
-# github.com/urfave/cli/v3 v3.5.0
+# github.com/urfave/cli/v3 v3.6.0
 ## explicit; go 1.22
 github.com/urfave/cli/v3
 # github.com/zalando/go-keyring v0.2.6
@@ -198,14 +198,14 @@
 golang.org/x/net/internal/timeseries
 golang.org/x/net/proxy
 golang.org/x/net/trace
-# golang.org/x/sys v0.37.0
+# golang.org/x/sys v0.38.0
 ## explicit; go 1.24.0
 golang.org/x/sys/cpu
 golang.org/x/sys/execabs
 golang.org/x/sys/plan9
 golang.org/x/sys/unix
 golang.org/x/sys/windows
-# golang.org/x/term v0.36.0
+# golang.org/x/term v0.37.0
 ## explicit; go 1.24.0
 golang.org/x/term
 # golang.org/x/text v0.27.0

Reply via email to