Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rpm2docserv for openSUSE:Factory 
checked in at 2026-10-06 19:20:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rpm2docserv (Old)
 and      /work/SRC/openSUSE:Factory/.rpm2docserv.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rpm2docserv"

Tue Oct  6 19:20:01 2026 rev:27 rq:1382743 version:20261006.d75a629

Changes:
--------
--- /work/SRC/openSUSE:Factory/rpm2docserv/rpm2docserv.changes  2026-07-07 
21:09:20.715039266 +0200
+++ /work/SRC/openSUSE:Factory/.rpm2docserv.new.3698736/rpm2docserv.changes     
2026-10-06 19:20:09.130909941 +0200
@@ -1,0 +2,9 @@
+Tue Oct 06 10:37:23 UTC 2026 - Thorsten Kukuk <[email protected]>
+
+- Update to version 20261006.d75a629:
+  * Update go dependencies
+  * Dockerfile: Fix path to nginx.conf
+  * Add missing dependency in Makefile
+  * Fix rendering of fragment links (section links) with colons
+
+-------------------------------------------------------------------

Old:
----
  rpm2docserv-20260707.78c4c29.tar.xz

New:
----
  rpm2docserv-20261006.d75a629.tar.xz

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

Other differences:
------------------
++++++ rpm2docserv.spec ++++++
--- /var/tmp/diff_new_pack.tfTvLu/_old  2026-10-06 19:20:10.720976700 +0200
+++ /var/tmp/diff_new_pack.tfTvLu/_new  2026-10-06 19:20:10.722976784 +0200
@@ -21,7 +21,7 @@
 %endif
 
 Name:           rpm2docserv
-Version:        20260707.78c4c29
+Version:        20261006.d75a629
 Release:        0
 Summary:        Make manpages from RPMs accessible in a web browser
 License:        Apache-2.0

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.tfTvLu/_old  2026-10-06 19:20:10.787979514 +0200
+++ /var/tmp/diff_new_pack.tfTvLu/_new  2026-10-06 19:20:10.791979682 +0200
@@ -1,7 +1,7 @@
 <servicedata>
   <service name="tar_scm">
     <param name="url">https://github.com/thkukuk/rpm2docserv.git</param>
-  <param 
name="changesrevision">78c4c290d5986ac6f490c9e0c03ef88888209a9b</param></service>
+  <param 
name="changesrevision">d75a62961d4f25c55336bd0074041f2bad1d8cb6</param></service>
 </servicedata>
 (No newline at EOF)
 


++++++ rpm2docserv-20260707.78c4c29.tar.xz -> 
rpm2docserv-20261006.d75a629.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpm2docserv-20260707.78c4c29/Dockerfile 
new/rpm2docserv-20261006.d75a629/Dockerfile
--- old/rpm2docserv-20260707.78c4c29/Dockerfile 2026-07-07 16:03:17.000000000 
+0200
+++ new/rpm2docserv-20261006.d75a629/Dockerfile 2026-10-06 11:45:40.000000000 
+0200
@@ -18,7 +18,7 @@
 
 COPY --from=build-stage /srv/docserv /srv/docserv
 COPY --from=build-stage /src/rpm2docserv/bin/* /usr/local/bin
-COPY nginx/nginx.conf /usr/local/nginx/etc/
+COPY nginx/nginx.conf /etc/nginx/
 COPY nginx/*.sh /docker-entrypoint.d/
 COPY --from=build-stage /usr/bin/openssl /usr/bin/
 COPY --from=build-stage /etc/ssl/openssl.cnf /etc/ssl/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpm2docserv-20260707.78c4c29/Dockerfile.microos 
new/rpm2docserv-20261006.d75a629/Dockerfile.microos
--- old/rpm2docserv-20260707.78c4c29/Dockerfile.microos 2026-07-07 
16:03:17.000000000 +0200
+++ new/rpm2docserv-20261006.d75a629/Dockerfile.microos 2026-10-06 
11:45:40.000000000 +0200
@@ -18,7 +18,7 @@
 
 COPY --from=build-stage /srv/docserv /srv/docserv
 COPY --from=build-stage /src/rpm2docserv/bin/* /usr/local/bin
-COPY nginx/nginx.conf /usr/local/nginx/etc/
+COPY nginx/nginx.conf /etc/nginx/
 COPY nginx/*.sh /docker-entrypoint.d/
 COPY --from=build-stage /usr/bin/openssl /usr/bin/
 COPY --from=build-stage /etc/ssl/openssl.cnf /etc/ssl/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpm2docserv-20260707.78c4c29/Makefile 
new/rpm2docserv-20261006.d75a629/Makefile
--- old/rpm2docserv-20260707.78c4c29/Makefile   2026-07-07 16:03:17.000000000 
+0200
+++ new/rpm2docserv-20261006.d75a629/Makefile   2026-10-06 11:45:40.000000000 
+0200
@@ -28,7 +28,7 @@
 bundle: ## Generate embedded files
        $(GO) generate bundle.go
 
-build: ## Build the binary files
+build: bundle ## Build the binary files
        $(GO) build -v -o bin/ $(USE_VENDOR) $(LOCAL_LDFLAGS) ./cmd/...
 
 clean: ## Remove previous builds
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/rpm2docserv-20260707.78c4c29/cmd/rpm2docserv/rendermanpage.go 
new/rpm2docserv-20261006.d75a629/cmd/rpm2docserv/rendermanpage.go
--- old/rpm2docserv-20260707.78c4c29/cmd/rpm2docserv/rendermanpage.go   
2026-07-07 16:03:17.000000000 +0200
+++ new/rpm2docserv-20261006.d75a629/cmd/rpm2docserv/rendermanpage.go   
2026-10-06 11:45:40.000000000 +0200
@@ -64,9 +64,9 @@
                        "LongSection": func(section string) string {
                                return longSections[section]
                        },
-                       "FragmentLink": func(fragment string) string {
+                       "FragmentLink": func(fragment string) template.URL {
                                u := url.URL{Fragment: 
strings.Replace(fragment, " ", "_", -1)}
-                               return u.String()
+                               return template.URL(u.String())
                        },
                }).
                Parse(bundled.Asset("manpage.tmpl")))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpm2docserv-20260707.78c4c29/go.mod 
new/rpm2docserv-20261006.d75a629/go.mod
--- old/rpm2docserv-20260707.78c4c29/go.mod     2026-07-07 16:03:17.000000000 
+0200
+++ new/rpm2docserv-20261006.d75a629/go.mod     2026-10-06 11:45:40.000000000 
+0200
@@ -1,13 +1,13 @@
 module github.com/thkukuk/rpm2docserv
 
-go 1.25.0
+go 1.26.0
 
 require (
-       github.com/knqyf263/go-rpm-version v0.0.0-20240918084003-2afd7dc6a38f
-       golang.org/x/net v0.56.0
-       golang.org/x/sync v0.21.0
-       golang.org/x/text v0.39.0
+       github.com/knqyf263/go-rpm-version v0.0.0-20260811110310-1815e1f1b790
+       golang.org/x/net v0.59.0
+       golang.org/x/sync v0.23.0
+       golang.org/x/text v0.42.0
        gopkg.in/yaml.v3 v3.0.1
 )
 
-require google.golang.org/protobuf v1.36.11
+require google.golang.org/protobuf v1.36.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/rpm2docserv-20260707.78c4c29/go.sum 
new/rpm2docserv-20261006.d75a629/go.sum
--- old/rpm2docserv-20260707.78c4c29/go.sum     2026-07-07 16:03:17.000000000 
+0200
+++ new/rpm2docserv-20261006.d75a629/go.sum     2026-10-06 11:45:40.000000000 
+0200
@@ -1,15 +1,15 @@
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod 
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/knqyf263/go-rpm-version v0.0.0-20240918084003-2afd7dc6a38f 
h1:xt29M2T6STgldg+WEP51gGePQCsQvklmP2eIhPIBK3g=
-github.com/knqyf263/go-rpm-version v0.0.0-20240918084003-2afd7dc6a38f/go.mod 
h1:i4sF0l1fFnY1aiw08QQSwVAFxHEm311Me3WsU/X7nL0=
-golang.org/x/net v0.56.0 h1:Rw8j/hFzGvJUZwNBXnAtf5sVDVt+65SK2C7IxCxZt5o=
-golang.org/x/net v0.56.0/go.mod h1:D3Ku6r+V6JROoZK144D2XfMHFcMq/0zSfLelVTCFKec=
-golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
-golang.org/x/sync v0.21.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/text v0.39.0 h1:UbZz4pLOvn600D6Oh6GGEI6VAmndrEBLv8/6BEXzyus=
-golang.org/x/text v0.39.0/go.mod 
h1:3UwRclnC2g0TU9x8PZiyfOajCd1zaUNHF9cvqcQZ+ZM=
-google.golang.org/protobuf v1.36.11 
h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
-google.golang.org/protobuf v1.36.11/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+github.com/knqyf263/go-rpm-version v0.0.0-20260811110310-1815e1f1b790 
h1:2R0QOkcV/csVHDigcH1sMNP3fQLw4Wi1ZxG0oC+29Ts=
+github.com/knqyf263/go-rpm-version v0.0.0-20260811110310-1815e1f1b790/go.mod 
h1:i4sF0l1fFnY1aiw08QQSwVAFxHEm311Me3WsU/X7nL0=
+golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues=
+golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg=
+golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk=
+golang.org/x/sync v0.23.0/go.mod 
h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
+golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
+golang.org/x/text v0.42.0/go.mod 
h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
+google.golang.org/protobuf v1.36.12 
h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc=
+google.golang.org/protobuf v1.36.12/go.mod 
h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/knqyf263/go-rpm-version/README.md 
new/vendor/github.com/knqyf263/go-rpm-version/README.md
--- old/vendor/github.com/knqyf263/go-rpm-version/README.md     2026-07-07 
16:03:17.000000000 +0200
+++ new/vendor/github.com/knqyf263/go-rpm-version/README.md     2026-10-06 
11:45:40.000000000 +0200
@@ -10,7 +10,7 @@
 go-rpm-version is a library for parsing and comparing rpm versions
 
 For the original C implementation, see:
-https://github.com/rpm-software-management/rpm/blob/master/lib/rpmvercmp.c#L16
+https://github.com/rpm-software-management/rpm/blob/master/rpmio/rpmvercmp.cc
 
 OS: RedHat/CentOS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/knqyf263/go-rpm-version/version.go 
new/vendor/github.com/knqyf263/go-rpm-version/version.go
--- old/vendor/github.com/knqyf263/go-rpm-version/version.go    2026-07-07 
16:03:17.000000000 +0200
+++ new/vendor/github.com/knqyf263/go-rpm-version/version.go    2026-10-06 
11:45:40.000000000 +0200
@@ -10,9 +10,10 @@
        "unicode"
 )
 
-// alphanumPattern is a regular expression to match all sequences of numeric
-// characters or alphanumeric characters.
-var alphanumPattern = regexp.MustCompile("([a-zA-Z]+)|([0-9]+)|(~)")
+// alphanumPattern is a regular expression to match all sequences of alphabetic
+// or numeric characters, as well as the tilde and the caret,
+// which are separators with a special meaning in RPM version comparison.
+var alphanumPattern = regexp.MustCompile(`([a-zA-Z]+)|([0-9]+)|([~^])`)
 
 // Version represents a package version.
 type Version struct {
@@ -110,11 +111,11 @@
        return version
 }
 
-// rpmcmpver compares two version or release strings.
-// Lifted from https://github.com/cavaliercoder/go-rpm/blob/master/version.go
+// rpmvercmp compares two version or release strings.
+// Lifted from https://github.com/cavaliergopher/rpm/blob/main/version.go
 //
 // For the original C implementation, see:
-// 
https://github.com/rpm-software-management/rpm/blob/master/lib/rpmvercmp.c#L16
+// 
https://github.com/rpm-software-management/rpm/blob/master/rpmio/rpmvercmp.cc
 func rpmvercmp(a, b string) int {
        // shortcut for equality
        if a == b {
@@ -140,6 +141,22 @@
                                return -1
                        }
                }
+
+               // compare carets. The concept is the same as the tilde, except 
that
+               // a caret sorts after the base version instead of before it:
+               // 1.0~rc1 < 1.0 < 1.0^git1 < 1.0.1
+               // The loop walks the common segments only, so both versions 
always
+               // have a segment here, e.g. "^" against "1" in 1.0^git1 vs 
1.0.1.
+               // The case where one of them runs out of segments, e.g. 1.0 vs 
1.0^,
+               // is left to the "most segments wins" rule at the end of this 
function.
+               if []rune(a)[0] == '^' || []rune(b)[0] == '^' {
+                       if []rune(a)[0] != '^' {
+                               return 1
+                       }
+                       if []rune(b)[0] != '^' {
+                               return -1
+                       }
+               }
 
                if unicode.IsNumber([]rune(a)[0]) {
                        // numbers are always greater than alphas
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/html/escape.go 
new/vendor/golang.org/x/net/html/escape.go
--- old/vendor/golang.org/x/net/html/escape.go  2026-07-07 16:03:17.000000000 
+0200
+++ new/vendor/golang.org/x/net/html/escape.go  2026-10-06 11:45:40.000000000 
+0200
@@ -154,10 +154,7 @@
        } else if x := entity2[entityName]; x[0] != 0 {
                return x[0], x[1], i
        } else if !attribute {
-               maxLen := len(entityName) - 1
-               if maxLen > longestEntityWithoutSemicolon {
-                       maxLen = longestEntityWithoutSemicolon
-               }
+               maxLen := min(len(entityName)-1, longestEntityWithoutSemicolon)
                for j := maxLen; j > 1; j-- {
                        if x := entity[entityName[:j]]; x != 0 {
                                return x, 0, j + 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/google.golang.org/protobuf/encoding/prototext/decode.go 
new/vendor/google.golang.org/protobuf/encoding/prototext/decode.go
--- old/vendor/google.golang.org/protobuf/encoding/prototext/decode.go  
2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/google.golang.org/protobuf/encoding/prototext/decode.go  
2026-10-06 11:45:40.000000000 +0200
@@ -8,6 +8,7 @@
        "fmt"
        "unicode/utf8"
 
+       "google.golang.org/protobuf/encoding/protowire"
        "google.golang.org/protobuf/internal/encoding/messageset"
        "google.golang.org/protobuf/internal/encoding/text"
        "google.golang.org/protobuf/internal/errors"
@@ -49,12 +50,19 @@
                protoregistry.MessageTypeResolver
                protoregistry.ExtensionTypeResolver
        }
+
+       // RecursionLimit limits how deeply messages may be nested.
+       // If zero, a default limit is applied.
+       RecursionLimit int
 }
 
 // Unmarshal reads the given []byte and populates the given [proto.Message]
 // using options in the UnmarshalOptions object.
 // The provided message must be mutable (e.g., a non-nil pointer to a message).
 func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {
+       if o.RecursionLimit == 0 {
+               o.RecursionLimit = protowire.DefaultRecursionLimit
+       }
        return o.unmarshal(b, m)
 }
 
@@ -102,8 +110,14 @@
        return errors.New(head+f, x...)
 }
 
+var errRecursionDepth = errors.New("exceeded maximum recursion depth")
+
 // unmarshalMessage unmarshals into the given protoreflect.Message.
 func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) 
error {
+       if d.opts.RecursionLimit--; d.opts.RecursionLimit < 0 {
+               return errRecursionDepth
+       }
+
        messageDesc := m.Descriptor()
        if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {
                return errors.New("no support for proto1 MessageSets")
@@ -437,6 +451,10 @@
 // unmarshalMap unmarshals into given protoreflect.Map. A map value is a
 // textproto message containing {key: <kvalue>, value: <mvalue>}.
 func (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap 
protoreflect.Map) error {
+       if d.opts.RecursionLimit--; d.opts.RecursionLimit < 0 {
+               return errRecursionDepth
+       }
+
        // Determine ahead whether map entry is a scalar type or a message type 
in
        // order to call the appropriate unmarshalMapValue func inside
        // unmarshalMapEntry.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go 
new/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go
--- old/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go  
2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go  
2026-10-06 11:45:40.000000000 +0200
@@ -83,12 +83,13 @@
        case protoreflect.FileImports:
                for i := 0; i < vs.Len(); i++ {
                        var rs records
-                       rv := reflect.ValueOf(vs.Get(i))
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Path"), "Path"},
-                               {rv.MethodByName("Package"), "Package"},
-                               {rv.MethodByName("IsPublic"), "IsPublic"},
-                               {rv.MethodByName("IsWeak"), "IsWeak"},
+                       fi := vs.Get(i)
+                       rv := reflect.ValueOf(fi)
+                       rs.Append(rv, []attrAndName{
+                               {fi.Path(), "Path"},
+                               {fi.Package(), "Package"},
+                               {fi.IsPublic, "IsPublic"},
+                               {fi.IsWeak, "IsWeak"},
                        }...)
                        ss = append(ss, "{"+rs.Join()+"}")
                }
@@ -104,9 +105,9 @@
        }
 }
 
-type methodAndName struct {
-       method reflect.Value
-       name   string
+type attrAndName struct {
+       attr any
+       name string
 }
 
 func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) {
@@ -126,58 +127,58 @@
                start = rt.Name() + "{"
        }
 
-       _, isFile := t.(protoreflect.FileDescriptor)
+       fd, isFile := t.(protoreflect.FileDescriptor)
        rs := records{
                allowMulti: allowMulti,
                record:     record,
        }
        if t.IsPlaceholder() {
                if isFile {
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Path"), "Path"},
-                               {rv.MethodByName("Package"), "Package"},
-                               {rv.MethodByName("IsPlaceholder"), 
"IsPlaceholder"},
+                       rs.Append(rv, []attrAndName{
+                               {fd.Path(), "Path"},
+                               {fd.Package(), "Package"},
+                               {fd.IsPlaceholder(), "IsPlaceholder"},
                        }...)
                } else {
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("FullName"), "FullName"},
-                               {rv.MethodByName("IsPlaceholder"), 
"IsPlaceholder"},
+                       rs.Append(rv, []attrAndName{
+                               {t.FullName(), "FullName"},
+                               {t.IsPlaceholder(), "IsPlaceholder"},
                        }...)
                }
        } else {
                switch {
                case isFile:
-                       rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), 
"Syntax"})
+                       rs.Append(rv, attrAndName{fd.Syntax(), "Syntax"})
                case isRoot:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Syntax"), "Syntax"},
-                               {rv.MethodByName("FullName"), "FullName"},
+                       rs.Append(rv, []attrAndName{
+                               {t.Syntax(), "Syntax"},
+                               {t.FullName(), "FullName"},
                        }...)
                default:
-                       rs.Append(rv, methodAndName{rv.MethodByName("Name"), 
"Name"})
+                       rs.Append(rv, attrAndName{t.Name(), "Name"})
                }
                switch t := t.(type) {
                case protoreflect.FieldDescriptor:
-                       accessors := []methodAndName{
-                               {rv.MethodByName("Number"), "Number"},
-                               {rv.MethodByName("Cardinality"), "Cardinality"},
-                               {rv.MethodByName("Kind"), "Kind"},
-                               {rv.MethodByName("HasJSONName"), "HasJSONName"},
-                               {rv.MethodByName("JSONName"), "JSONName"},
-                               {rv.MethodByName("HasPresence"), "HasPresence"},
-                               {rv.MethodByName("IsExtension"), "IsExtension"},
-                               {rv.MethodByName("IsPacked"), "IsPacked"},
-                               {rv.MethodByName("IsWeak"), "IsWeak"},
-                               {rv.MethodByName("IsList"), "IsList"},
-                               {rv.MethodByName("IsMap"), "IsMap"},
-                               {rv.MethodByName("MapKey"), "MapKey"},
-                               {rv.MethodByName("MapValue"), "MapValue"},
-                               {rv.MethodByName("HasDefault"), "HasDefault"},
-                               {rv.MethodByName("Default"), "Default"},
-                               {rv.MethodByName("ContainingOneof"), 
"ContainingOneof"},
-                               {rv.MethodByName("ContainingMessage"), 
"ContainingMessage"},
-                               {rv.MethodByName("Message"), "Message"},
-                               {rv.MethodByName("Enum"), "Enum"},
+                       accessors := []attrAndName{
+                               {t.Number(), "Number"},
+                               {t.Cardinality(), "Cardinality"},
+                               {t.Kind(), "Kind"},
+                               {t.HasJSONName(), "HasJSONName"},
+                               {t.JSONName(), "JSONName"},
+                               {t.HasPresence(), "HasPresence"},
+                               {t.IsExtension(), "IsExtension"},
+                               {t.IsPacked(), "IsPacked"},
+                               {t.IsWeak(), "IsWeak"},
+                               {t.IsList(), "IsList"},
+                               {t.IsMap(), "IsMap"},
+                               {t.MapKey(), "MapKey"},
+                               {t.MapValue(), "MapValue"},
+                               {t.HasDefault(), "HasDefault"},
+                               {t.Default(), "Default"},
+                               {t.ContainingOneof(), "ContainingOneof"},
+                               {t.ContainingMessage(), "ContainingMessage"},
+                               {t.Message(), "Message"},
+                               {t.Enum(), "Enum"},
                        }
                        for _, s := range accessors {
                                switch s.name {
@@ -223,58 +224,54 @@
                        }
 
                case protoreflect.FileDescriptor:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Path"), "Path"},
-                               {rv.MethodByName("Package"), "Package"},
-                               {rv.MethodByName("Imports"), "Imports"},
-                               {rv.MethodByName("Messages"), "Messages"},
-                               {rv.MethodByName("Enums"), "Enums"},
-                               {rv.MethodByName("Extensions"), "Extensions"},
-                               {rv.MethodByName("Services"), "Services"},
+                       rs.Append(rv, []attrAndName{
+                               {t.Path(), "Path"},
+                               {t.Package(), "Package"},
+                               {t.Imports(), "Imports"},
+                               {t.Messages(), "Messages"},
+                               {t.Enums(), "Enums"},
+                               {t.Extensions(), "Extensions"},
+                               {t.Services(), "Services"},
                        }...)
 
                case protoreflect.MessageDescriptor:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("IsMapEntry"), "IsMapEntry"},
-                               {rv.MethodByName("Fields"), "Fields"},
-                               {rv.MethodByName("Oneofs"), "Oneofs"},
-                               {rv.MethodByName("ReservedNames"), 
"ReservedNames"},
-                               {rv.MethodByName("ReservedRanges"), 
"ReservedRanges"},
-                               {rv.MethodByName("RequiredNumbers"), 
"RequiredNumbers"},
-                               {rv.MethodByName("ExtensionRanges"), 
"ExtensionRanges"},
-                               {rv.MethodByName("Messages"), "Messages"},
-                               {rv.MethodByName("Enums"), "Enums"},
-                               {rv.MethodByName("Extensions"), "Extensions"},
+                       rs.Append(rv, []attrAndName{
+                               {t.IsMapEntry(), "IsMapEntry"},
+                               {t.Fields(), "Fields"},
+                               {t.Oneofs(), "Oneofs"},
+                               {t.ReservedNames(), "ReservedNames"},
+                               {t.ReservedRanges(), "ReservedRanges"},
+                               {t.RequiredNumbers(), "RequiredNumbers"},
+                               {t.ExtensionRanges(), "ExtensionRanges"},
+                               {t.Messages(), "Messages"},
+                               {t.Enums(), "Enums"},
+                               {t.Extensions(), "Extensions"},
                        }...)
 
                case protoreflect.EnumDescriptor:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Values"), "Values"},
-                               {rv.MethodByName("ReservedNames"), 
"ReservedNames"},
-                               {rv.MethodByName("ReservedRanges"), 
"ReservedRanges"},
-                               {rv.MethodByName("IsClosed"), "IsClosed"},
+                       rs.Append(rv, []attrAndName{
+                               {t.Values(), "Values"},
+                               {t.ReservedNames(), "ReservedNames"},
+                               {t.ReservedRanges(), "ReservedRanges"},
+                               {t.IsClosed(), "IsClosed"},
                        }...)
 
                case protoreflect.EnumValueDescriptor:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Number"), "Number"},
-                       }...)
+                       rs.Append(rv, attrAndName{t.Number(), "Number"})
 
                case protoreflect.ServiceDescriptor:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Methods"), "Methods"},
-                       }...)
+                       rs.Append(rv, attrAndName{t.Methods(), "Methods"})
 
                case protoreflect.MethodDescriptor:
-                       rs.Append(rv, []methodAndName{
-                               {rv.MethodByName("Input"), "Input"},
-                               {rv.MethodByName("Output"), "Output"},
-                               {rv.MethodByName("IsStreamingClient"), 
"IsStreamingClient"},
-                               {rv.MethodByName("IsStreamingServer"), 
"IsStreamingServer"},
+                       rs.Append(rv, []attrAndName{
+                               {t.Input(), "Input"},
+                               {t.Output(), "Output"},
+                               {t.IsStreamingClient(), "IsStreamingClient"},
+                               {t.IsStreamingServer(), "IsStreamingServer"},
                        }...)
                }
-               if m := rv.MethodByName("GoType"); m.IsValid() {
-                       rs.Append(rv, methodAndName{m, "GoType"})
+               if m, ok := t.(interface{ GoType() reflect.Type }); ok {
+                       rs.Append(rv, attrAndName{m.GoType(), "GoType"})
                }
        }
        return start + rs.Join() + end
@@ -297,68 +294,66 @@
        rs.recs = append(rs.recs, newRecs)
 }
 
-func (rs *records) Append(v reflect.Value, accessors ...methodAndName) {
-       for _, a := range accessors {
-               if rs.record != nil {
-                       rs.record(a.name)
-               }
-               var rv reflect.Value
-               if a.method.IsValid() {
-                       rv = a.method.Call(nil)[0]
-               }
-               if v.Kind() == reflect.Struct && !rv.IsValid() {
-                       rv = v.FieldByName(a.name)
-               }
-               if !rv.IsValid() {
-                       panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), 
a.name))
-               }
-               if _, ok := rv.Interface().(protoreflect.Value); ok {
-                       rv = rv.MethodByName("Interface").Call(nil)[0]
-                       if !rv.IsNil() {
-                               rv = rv.Elem()
-                       }
-               }
+func (rs *records) Append(v reflect.Value, results ...attrAndName) {
+       for _, r := range results {
+               rs.appendAttribute(v, r.name, r.attr)
+       }
+}
 
-               // Ignore zero values.
-               var isZero bool
-               switch rv.Kind() {
-               case reflect.Interface, reflect.Slice:
-                       isZero = rv.IsNil()
-               case reflect.Bool:
-                       isZero = rv.Bool() == false
-               case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, 
reflect.Int64:
-                       isZero = rv.Int() == 0
-               case reflect.Uint, reflect.Uint8, reflect.Uint16, 
reflect.Uint32, reflect.Uint64:
-                       isZero = rv.Uint() == 0
-               case reflect.String:
-                       isZero = rv.String() == ""
-               }
-               if n, ok := rv.Interface().(list); ok {
-                       isZero = n.Len() == 0
-               }
-               if isZero {
-                       continue
+func (rs *records) appendAttribute(val reflect.Value, name string, attrVal 
any) {
+       if rs.record != nil {
+               rs.record(name)
+       }
+       if attrVal == nil {
+               return
+       }
+       rv := reflect.ValueOf(attrVal)
+       if _, ok := rv.Interface().(protoreflect.Value); ok {
+               rv = rv.MethodByName("Interface").Call(nil)[0]
+               if !rv.IsNil() {
+                       rv = rv.Elem()
                }
+       }
 
-               // Format the value.
-               var s string
-               v := rv.Interface()
-               switch v := v.(type) {
-               case list:
-                       s = formatListOpt(v, false, rs.allowMulti)
-               case protoreflect.FieldDescriptor, 
protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, 
protoreflect.MethodDescriptor:
-                       s = string(v.(protoreflect.Descriptor).Name())
-               case protoreflect.Descriptor:
-                       s = string(v.FullName())
-               case string:
-                       s = strconv.Quote(v)
-               case []byte:
-                       s = fmt.Sprintf("%q", v)
-               default:
-                       s = fmt.Sprint(v)
-               }
-               rs.recs = append(rs.recs, [2]string{a.name, s})
+       // Ignore zero values.
+       var isZero bool
+       switch rv.Kind() {
+       case reflect.Interface, reflect.Slice:
+               isZero = rv.IsNil()
+       case reflect.Bool:
+               isZero = rv.Bool() == false
+       case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, 
reflect.Int64:
+               isZero = rv.Int() == 0
+       case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, 
reflect.Uint64:
+               isZero = rv.Uint() == 0
+       case reflect.String:
+               isZero = rv.String() == ""
+       }
+       if n, ok := rv.Interface().(list); ok {
+               isZero = n.Len() == 0
+       }
+       if isZero {
+               return
+       }
+
+       // Format the value.
+       var s string
+       v := rv.Interface()
+       switch v := v.(type) {
+       case list:
+               s = formatListOpt(v, false, rs.allowMulti)
+       case protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, 
protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor:
+               s = string(v.(protoreflect.Descriptor).Name())
+       case protoreflect.Descriptor:
+               s = string(v.FullName())
+       case string:
+               s = strconv.Quote(v)
+       case []byte:
+               s = fmt.Sprintf("%q", v)
+       default:
+               s = fmt.Sprint(v)
        }
+       rs.recs = append(rs.recs, [2]string{name, s})
 }
 
 func (rs *records) Join() string {
Binary files 
old/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
 and 
new/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go 
new/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go
--- old/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go   
2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go   
2026-10-06 11:45:40.000000000 +0200
@@ -69,19 +69,19 @@
                        }
                }
        case protoreflect.Int32Kind, protoreflect.Sint32Kind, 
protoreflect.Sfixed32Kind:
-               if v, err := strconv.ParseInt(s, 10, 32); err == nil {
+               if v, err := strconv.ParseInt(s, 0, 32); err == nil {
                        return protoreflect.ValueOfInt32(int32(v)), nil, nil
                }
        case protoreflect.Int64Kind, protoreflect.Sint64Kind, 
protoreflect.Sfixed64Kind:
-               if v, err := strconv.ParseInt(s, 10, 64); err == nil {
+               if v, err := strconv.ParseInt(s, 0, 64); err == nil {
                        return protoreflect.ValueOfInt64(int64(v)), nil, nil
                }
        case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
-               if v, err := strconv.ParseUint(s, 10, 32); err == nil {
+               if v, err := strconv.ParseUint(s, 0, 32); err == nil {
                        return protoreflect.ValueOfUint32(uint32(v)), nil, nil
                }
        case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
-               if v, err := strconv.ParseUint(s, 10, 64); err == nil {
+               if v, err := strconv.ParseUint(s, 0, 64); err == nil {
                        return protoreflect.ValueOfUint64(uint64(v)), nil, nil
                }
        case protoreflect.FloatKind, protoreflect.DoubleKind:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go 
new/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
--- old/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go      
2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go      
2026-10-06 11:45:40.000000000 +0200
@@ -26,6 +26,7 @@
        Edition_EDITION_PROTO3_enum_value          = 999
        Edition_EDITION_2023_enum_value            = 1000
        Edition_EDITION_2024_enum_value            = 1001
+       Edition_EDITION_2026_enum_value            = 1002
        Edition_EDITION_UNSTABLE_enum_value        = 9999
        Edition_EDITION_1_TEST_ONLY_enum_value     = 1
        Edition_EDITION_2_TEST_ONLY_enum_value     = 2
@@ -806,11 +807,13 @@
        FieldOptions_FeatureSupport_EditionDeprecated_field_name  
protoreflect.Name = "edition_deprecated"
        FieldOptions_FeatureSupport_DeprecationWarning_field_name 
protoreflect.Name = "deprecation_warning"
        FieldOptions_FeatureSupport_EditionRemoved_field_name     
protoreflect.Name = "edition_removed"
+       FieldOptions_FeatureSupport_RemovalError_field_name       
protoreflect.Name = "removal_error"
 
        FieldOptions_FeatureSupport_EditionIntroduced_field_fullname  
protoreflect.FullName = 
"google.protobuf.FieldOptions.FeatureSupport.edition_introduced"
        FieldOptions_FeatureSupport_EditionDeprecated_field_fullname  
protoreflect.FullName = 
"google.protobuf.FieldOptions.FeatureSupport.edition_deprecated"
        FieldOptions_FeatureSupport_DeprecationWarning_field_fullname 
protoreflect.FullName = 
"google.protobuf.FieldOptions.FeatureSupport.deprecation_warning"
        FieldOptions_FeatureSupport_EditionRemoved_field_fullname     
protoreflect.FullName = 
"google.protobuf.FieldOptions.FeatureSupport.edition_removed"
+       FieldOptions_FeatureSupport_RemovalError_field_fullname       
protoreflect.FullName = 
"google.protobuf.FieldOptions.FeatureSupport.removal_error"
 )
 
 // Field numbers for google.protobuf.FieldOptions.FeatureSupport.
@@ -819,6 +822,7 @@
        FieldOptions_FeatureSupport_EditionDeprecated_field_number  
protoreflect.FieldNumber = 2
        FieldOptions_FeatureSupport_DeprecationWarning_field_number 
protoreflect.FieldNumber = 3
        FieldOptions_FeatureSupport_EditionRemoved_field_number     
protoreflect.FieldNumber = 4
+       FieldOptions_FeatureSupport_RemovalError_field_number       
protoreflect.FieldNumber = 5
 )
 
 // Names for google.protobuf.OneofOptions.
@@ -1152,6 +1156,7 @@
        FeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN_enum_value = 0
        FeatureSet_STYLE2024_enum_value                    = 1
        FeatureSet_STYLE_LEGACY_enum_value                 = 2
+       FeatureSet_STYLE2026_enum_value                    = 3
 )
 
 // Names for google.protobuf.FeatureSet.VisibilityFeature.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/google.golang.org/protobuf/internal/version/version.go 
new/vendor/google.golang.org/protobuf/internal/version/version.go
--- old/vendor/google.golang.org/protobuf/internal/version/version.go   
2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/google.golang.org/protobuf/internal/version/version.go   
2026-10-06 11:45:40.000000000 +0200
@@ -52,7 +52,7 @@
 const (
        Major      = 1
        Minor      = 36
-       Patch      = 11
+       Patch      = 12
        PreRelease = ""
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go 
new/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
--- old/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go    
2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go    
2026-10-06 11:45:40.000000000 +0200
@@ -546,6 +546,8 @@
                b = p.appendSingularField(b, "deprecation_warning", nil)
        case 4:
                b = p.appendSingularField(b, "edition_removed", nil)
+       case 5:
+               b = p.appendSingularField(b, "removal_error", nil)
        }
        return b
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-07-07 16:03:17.000000000 +0200
+++ new/vendor/modules.txt      2026-10-06 11:45:40.000000000 +0200
@@ -1,23 +1,23 @@
-# github.com/knqyf263/go-rpm-version v0.0.0-20240918084003-2afd7dc6a38f
+# github.com/knqyf263/go-rpm-version v0.0.0-20260811110310-1815e1f1b790
 ## explicit
 github.com/knqyf263/go-rpm-version
-# golang.org/x/net v0.56.0
-## explicit; go 1.25.0
+# golang.org/x/net v0.59.0
+## explicit; go 1.26.0
 golang.org/x/net/context
 golang.org/x/net/html
 golang.org/x/net/html/atom
-# golang.org/x/sync v0.21.0
-## explicit; go 1.25.0
+# golang.org/x/sync v0.23.0
+## explicit; go 1.26.0
 golang.org/x/sync/errgroup
-# golang.org/x/text v0.39.0
-## explicit; go 1.25.0
+# golang.org/x/text v0.42.0
+## explicit; go 1.26.0
 golang.org/x/text/internal/format
 golang.org/x/text/internal/language
 golang.org/x/text/internal/language/compact
 golang.org/x/text/internal/tag
 golang.org/x/text/language
 golang.org/x/text/language/display
-# google.golang.org/protobuf v1.36.11
+# google.golang.org/protobuf v1.36.12
 ## explicit; go 1.23
 google.golang.org/protobuf/encoding/prototext
 google.golang.org/protobuf/encoding/protowire

Reply via email to