Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package forgejo-runner for openSUSE:Factory 
checked in at 2026-02-23 17:04:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/forgejo-runner (Old)
 and      /work/SRC/openSUSE:Factory/.forgejo-runner.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "forgejo-runner"

Mon Feb 23 17:04:21 2026 rev:40 rq:1334503 version:12.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/forgejo-runner/forgejo-runner.changes    
2026-02-01 22:03:59.272952221 +0100
+++ /work/SRC/openSUSE:Factory/.forgejo-runner.new.1977/forgejo-runner.changes  
2026-02-23 17:04:22.966832352 +0100
@@ -1,0 +2,19 @@
+Mon Feb 23 13:06:09 UTC 2026 - Richard Rahl <[email protected]>
+
+- Update to version 12.7.0:
+  * feat: introduce secret URLs to runner configuration
+  * feat: allow config server.connections config to poll multiple Forgejo 
servers simultaneously
+  * feat: add connections to Runner configuration
+  * fix: do not emit warnings if max_retries, initial_delay are absent
+  * fix: ensure log buffer flush even if a command error occurs in host & lxc 
executor
+  * fix: kill containers explicitly, make Podman behave like Docker
+  * fix: premature task completion when chaining multiple reusable workflows
+  * fix: permit larger single-line output sizes to be parsed from 
FORGEJO_OUTPUT file
+  * refactor: introduce String() for Label
+  * introducing ephemeral-runners
+  * refactor: separate Config from on-disk format
+  * Preallocate space for variables in run_context
+  * refactor: pull cache server management out of runner
+  * refactor: add 1-to-1 client-to-runner relationship into poller
+
+-------------------------------------------------------------------

Old:
----
  forgejo-runner-12.6.3.obscpio

New:
----
  forgejo-runner-12.7.0.obscpio

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

Other differences:
------------------
++++++ forgejo-runner.spec ++++++
--- /var/tmp/diff_new_pack.oA5Z7v/_old  2026-02-23 17:04:24.146881570 +0100
+++ /var/tmp/diff_new_pack.oA5Z7v/_new  2026-02-23 17:04:24.150881737 +0100
@@ -18,7 +18,7 @@
 
 %define services %{name}.service
 Name:           forgejo-runner
-Version:        12.6.3
+Version:        12.7.0
 Release:        0
 Summary:        Daemon that connects to a Forgejo instance and runs CI jobs
 License:        GPL-3.0-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.oA5Z7v/_old  2026-02-23 17:04:24.190883405 +0100
+++ /var/tmp/diff_new_pack.oA5Z7v/_new  2026-02-23 17:04:24.194883572 +0100
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="url">https://code.forgejo.org/forgejo/runner</param>
     <param name="scm">git</param>
-    <param name="revision">refs/tags/v12.6.3</param>
+    <param name="revision">refs/tags/v12.7.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">disable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ forgejo-runner-12.6.3.obscpio -> forgejo-runner-12.7.0.obscpio ++++++
++++ 5734 lines of diff (skipped)

++++++ forgejo-runner.obsinfo ++++++
--- /var/tmp/diff_new_pack.oA5Z7v/_old  2026-02-23 17:04:25.654944468 +0100
+++ /var/tmp/diff_new_pack.oA5Z7v/_new  2026-02-23 17:04:25.658944635 +0100
@@ -1,5 +1,5 @@
 name: forgejo-runner
-version: 12.6.3
-mtime: 1769623549
-commit: 3b0a5f7ad38bc4ccbb4bfa279a1584520f31f10b
+version: 12.7.0
+mtime: 1771464526
+commit: bb4d56ff714d68e11fa67b9a975fb7de3d6b38cc
 

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.go 
new/vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.go
--- old/vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.go   
2026-01-30 23:38:49.000000000 +0100
+++ new/vendor/github.com/go-git/go-git/v5/plumbing/format/idxfile/decoder.go   
2026-02-19 02:28:46.000000000 +0100
@@ -1,9 +1,11 @@
 package idxfile
 
 import (
-       "bufio"
        "bytes"
+       "crypto"
+       "encoding/hex"
        "errors"
+       "fmt"
        "io"
 
        "github.com/go-git/go-git/v5/plumbing/hash"
@@ -25,12 +27,15 @@
 
 // Decoder reads and decodes idx files from an input stream.
 type Decoder struct {
-       *bufio.Reader
+       io.Reader
+       h hash.Hash
 }
 
 // NewDecoder builds a new idx stream decoder, that reads from r.
 func NewDecoder(r io.Reader) *Decoder {
-       return &Decoder{bufio.NewReader(r)}
+       h := hash.New(crypto.SHA1)
+       tr := io.TeeReader(r, h)
+       return &Decoder{tr, h}
 }
 
 // Decode reads from the stream and decode the content into the MemoryIndex 
struct.
@@ -45,7 +50,7 @@
                readObjectNames,
                readCRC32,
                readOffsets,
-               readChecksums,
+               readPackChecksum,
        }
 
        for _, f := range flow {
@@ -54,11 +59,21 @@
                }
        }
 
+       actual := d.h.Sum(nil)
+       if err := readIdxChecksum(idx, d); err != nil {
+               return err
+       }
+
+       if !bytes.Equal(actual, idx.IdxChecksum[:]) {
+               return fmt.Errorf("%w: checksum mismatch: %q instead of %q",
+                       ErrMalformedIdxFile, 
hex.EncodeToString(idx.IdxChecksum[:]), hex.EncodeToString(actual))
+       }
+
        return nil
 }
 
 func validateHeader(r io.Reader) error {
-       var h = make([]byte, 4)
+       h := make([]byte, 4)
        if _, err := io.ReadFull(r, h); err != nil {
                return err
        }
@@ -165,11 +180,15 @@
        return nil
 }
 
-func readChecksums(idx *MemoryIndex, r io.Reader) error {
+func readPackChecksum(idx *MemoryIndex, r io.Reader) error {
        if _, err := io.ReadFull(r, idx.PackfileChecksum[:]); err != nil {
                return err
        }
 
+       return nil
+}
+
+func readIdxChecksum(idx *MemoryIndex, r io.Reader) error {
        if _, err := io.ReadFull(r, idx.IdxChecksum[:]); err != nil {
                return err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/reader.go 
new/vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/reader.go
--- old/vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/reader.go    
2026-01-30 23:38:49.000000000 +0100
+++ new/vendor/github.com/go-git/go-git/v5/plumbing/format/objfile/reader.go    
2026-02-19 02:28:46.000000000 +0100
@@ -30,7 +30,7 @@
 func NewReader(r io.Reader) (*Reader, error) {
        zlib, err := sync.GetZlibReader(r)
        if err != nil {
-               return nil, packfile.ErrZLib.AddDetails(err.Error())
+               return nil, packfile.ErrZLib.AddDetails("%s", err.Error())
        }
 
        return &Reader{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/parser.go 
new/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/parser.go
--- old/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/parser.go   
2026-01-30 23:38:49.000000000 +0100
+++ new/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/parser.go   
2026-02-19 02:28:46.000000000 +0100
@@ -47,7 +47,6 @@
        oi         []*objectInfo
        oiByHash   map[plumbing.Hash]*objectInfo
        oiByOffset map[int64]*objectInfo
-       checksum   plumbing.Hash
 
        cache *cache.BufferLRU
        // delta content by offset, only used if source is not seekable
@@ -133,28 +132,27 @@
 // Parse start decoding phase of the packfile.
 func (p *Parser) Parse() (plumbing.Hash, error) {
        if err := p.init(); err != nil {
-               return plumbing.ZeroHash, err
+               return plumbing.ZeroHash, wrapEOF(err)
        }
 
        if err := p.indexObjects(); err != nil {
-               return plumbing.ZeroHash, err
+               return plumbing.ZeroHash, wrapEOF(err)
        }
 
-       var err error
-       p.checksum, err = p.scanner.Checksum()
+       checksum, err := p.scanner.Checksum()
        if err != nil && err != io.EOF {
-               return plumbing.ZeroHash, err
+               return plumbing.ZeroHash, wrapEOF(err)
        }
 
        if err := p.resolveDeltas(); err != nil {
-               return plumbing.ZeroHash, err
+               return plumbing.ZeroHash, wrapEOF(err)
        }
 
-       if err := p.onFooter(p.checksum); err != nil {
-               return plumbing.ZeroHash, err
+       if err := p.onFooter(checksum); err != nil {
+               return plumbing.ZeroHash, wrapEOF(err)
        }
 
-       return p.checksum, nil
+       return checksum, nil
 }
 
 func (p *Parser) init() error {
@@ -218,7 +216,7 @@
                        if !ok {
                                // can't find referenced object in this pack 
file
                                // this must be a "thin" pack.
-                               parent = &objectInfo{ //Placeholder parent
+                               parent = &objectInfo{ // Placeholder parent
                                        SHA1:        oh.Reference,
                                        ExternalRef: true, // mark as an 
external reference that must be resolved
                                        Type:        plumbing.AnyObject,
@@ -531,6 +529,13 @@
        return nil
 }
 
+func wrapEOF(err error) error {
+       if err == io.ErrUnexpectedEOF || err == io.EOF {
+               return fmt.Errorf("%w: %w", ErrMalformedPackFile, err)
+       }
+       return err
+}
+
 // applyPatchBase applies the patch to target.
 //
 // Note that ota will be updated based on the description in resolveObject.
@@ -558,15 +563,6 @@
        return nil
 }
 
-func getSHA1(t plumbing.ObjectType, data []byte) (plumbing.Hash, error) {
-       hasher := plumbing.NewHasher(t, int64(len(data)))
-       if _, err := hasher.Write(data); err != nil {
-               return plumbing.ZeroHash, err
-       }
-
-       return hasher.Sum(), nil
-}
-
 type objectInfo struct {
        Offset      int64
        Length      int64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/scanner.go 
new/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/scanner.go
--- old/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/scanner.go  
2026-01-30 23:38:49.000000000 +0100
+++ new/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/scanner.go  
2026-02-19 02:28:46.000000000 +0100
@@ -3,12 +3,15 @@
 import (
        "bufio"
        "bytes"
+       "crypto"
+       "errors"
        "fmt"
-       "hash"
+       gohash "hash"
        "hash/crc32"
        "io"
 
        "github.com/go-git/go-git/v5/plumbing"
+       "github.com/go-git/go-git/v5/plumbing/hash"
        "github.com/go-git/go-git/v5/utils/binary"
        "github.com/go-git/go-git/v5/utils/ioutil"
        "github.com/go-git/go-git/v5/utils/sync"
@@ -24,6 +27,8 @@
        ErrUnsupportedVersion = NewError("unsupported packfile version")
        // ErrSeekNotSupported returned if seek is not support
        ErrSeekNotSupported = NewError("not seek support")
+       // ErrMalformedPackFile is returned by the parser when the pack file is 
corrupted.
+       ErrMalformedPackFile = errors.New("malformed PACK file")
 )
 
 // ObjectHeader contains the information related to the object, this 
information
@@ -37,8 +42,9 @@
 }
 
 type Scanner struct {
-       r   *scannerReader
-       crc hash.Hash32
+       r          *scannerReader
+       crc        gohash.Hash32
+       packHasher hash.Hash
 
        // pendingObject is used to detect if an object has been read, or still
        // is waiting to be read
@@ -56,10 +62,12 @@
        _, ok := r.(io.ReadSeeker)
 
        crc := crc32.NewIEEE()
+       hasher := hash.New(crypto.SHA1)
        return &Scanner{
-               r:          newScannerReader(r, crc),
+               r:          newScannerReader(r, io.MultiWriter(crc, hasher)),
                crc:        crc,
                IsSeekable: ok,
+               packHasher: hasher,
        }
 }
 
@@ -68,6 +76,7 @@
 
        s.r.Reset(r)
        s.crc.Reset()
+       s.packHasher.Reset()
        s.IsSeekable = ok
        s.pendingObject = nil
        s.version = 0
@@ -114,7 +123,7 @@
 
 // readSignature reads a returns the signature field in the packfile.
 func (s *Scanner) readSignature() ([]byte, error) {
-       var sig = make([]byte, 4)
+       sig := make([]byte, 4)
        if _, err := io.ReadFull(s.r, sig); err != nil {
                return []byte{}, err
        }
@@ -322,7 +331,6 @@
 func (s *Scanner) ReadObject() (io.ReadCloser, error) {
        s.pendingObject = nil
        zr, err := sync.GetZlibReader(s.r)
-
        if err != nil {
                return nil, fmt.Errorf("zlib reset error: %s", err)
        }
@@ -374,7 +382,18 @@
                return plumbing.ZeroHash, err
        }
 
-       return binary.ReadHash(s.r)
+       s.r.Flush()
+       actual := plumbing.Hash(s.packHasher.Sum(nil))
+       packChecksum, err := binary.ReadHash(s.r)
+       if err != nil {
+               return plumbing.ZeroHash, err
+       }
+
+       if actual != packChecksum {
+               return plumbing.ZeroHash, fmt.Errorf("%w: checksum mismatch: %q 
instead of %q", ErrMalformedPackFile, packChecksum, actual)
+       }
+
+       return packChecksum, nil
 }
 
 // Close reads the reader until io.EOF
@@ -401,17 +420,17 @@
 //     to the crc32 hash writer.
 type scannerReader struct {
        reader io.Reader
-       crc    io.Writer
+       writer io.Writer
        rbuf   *bufio.Reader
        wbuf   *bufio.Writer
        offset int64
 }
 
-func newScannerReader(r io.Reader, h io.Writer) *scannerReader {
+func newScannerReader(r io.Reader, w io.Writer) *scannerReader {
        sr := &scannerReader{
-               rbuf: bufio.NewReader(nil),
-               wbuf: bufio.NewWriterSize(nil, 64),
-               crc:  h,
+               rbuf:   bufio.NewReader(nil),
+               wbuf:   bufio.NewWriterSize(nil, 64),
+               writer: w,
        }
        sr.Reset(r)
 
@@ -421,7 +440,7 @@
 func (r *scannerReader) Reset(reader io.Reader) {
        r.reader = reader
        r.rbuf.Reset(r.reader)
-       r.wbuf.Reset(r.crc)
+       r.wbuf.Reset(r.writer)
 
        r.offset = 0
        if seeker, ok := r.reader.(io.ReadSeeker); ok {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_decode.go
 
new/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_decode.go
--- 
old/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_decode.go
    2026-01-30 23:38:49.000000000 +0100
+++ 
new/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/advrefs_decode.go
    2026-02-19 02:28:46.000000000 +0100
@@ -262,9 +262,8 @@
        p.line = bytes.TrimPrefix(p.line, shallow)
 
        if len(p.line) != hashSize {
-               p.error(fmt.Sprintf(
-                       "malformed shallow hash: wrong length, expected 40 
bytes, read %d bytes",
-                       len(p.line)))
+               p.error("malformed shallow hash: wrong length, expected 40 
bytes, read %d bytes",
+                       len(p.line))
                return nil
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_encode.go 
new/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_encode.go
--- 
old/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_encode.go 
    2026-01-30 23:38:49.000000000 +0100
+++ 
new/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/updreq_encode.go 
    2026-02-19 02:28:46.000000000 +0100
@@ -62,7 +62,7 @@
        }
 
        for _, cmd := range cmds[1:] {
-               if err := e.Encodef(formatCommand(cmd)); err != nil {
+               if err := e.Encodef("%s", formatCommand(cmd)); err != nil {
                        return err
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go 
new/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go
--- old/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go 
2026-01-30 23:38:49.000000000 +0100
+++ new/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go 
2026-02-19 02:28:46.000000000 +0100
@@ -2,6 +2,8 @@
 
 import (
        "bytes"
+       "encoding/hex"
+       "fmt"
        "io"
        "os"
        "sync"
@@ -87,6 +89,11 @@
                return err
        }
 
+       if !bytes.Equal(idxf.PackfileChecksum[:], h[:]) {
+               return fmt.Errorf("%w: packfile mismatch: target is %q not %q",
+                       idxfile.ErrMalformedIdxFile, 
hex.EncodeToString(idxf.PackfileChecksum[:]), h.String())
+       }
+
        s.index[h] = idxf
        return err
 }
@@ -186,7 +193,8 @@
 }
 
 func (s *ObjectStorage) encodedObjectSizeFromUnpacked(h plumbing.Hash) (
-       size int64, err error) {
+       size int64, err error,
+) {
        f, err := s.dir.Object(h)
        if err != nil {
                if os.IsNotExist(err) {
@@ -274,7 +282,8 @@
 }
 
 func (s *ObjectStorage) encodedObjectSizeFromPackfile(h plumbing.Hash) (
-       size int64, err error) {
+       size int64, err error,
+) {
        if err := s.requireIndex(); err != nil {
                return 0, err
        }
@@ -310,7 +319,8 @@
 // EncodedObjectSize returns the plaintext size of the given object,
 // without actually reading the full object data from storage.
 func (s *ObjectStorage) EncodedObjectSize(h plumbing.Hash) (
-       size int64, err error) {
+       size int64, err error,
+) {
        size, err = s.encodedObjectSizeFromUnpacked(h)
        if err != nil && err != plumbing.ErrObjectNotFound {
                return 0, err
@@ -371,7 +381,8 @@
 // DeltaObject returns the object with the given hash, by searching for
 // it in the packfile and the git object directories.
 func (s *ObjectStorage) DeltaObject(t plumbing.ObjectType,
-       h plumbing.Hash) (plumbing.EncodedObject, error) {
+       h plumbing.Hash,
+) (plumbing.EncodedObject, error) {
        obj, err := s.getFromUnpacked(h)
        if err == plumbing.ErrObjectNotFound {
                obj, err = s.getFromPackfile(h, true)
@@ -451,8 +462,8 @@
 // Get returns the object with the given hash, by searching for it in
 // the packfile.
 func (s *ObjectStorage) getFromPackfile(h plumbing.Hash, canBeDelta bool) (
-       plumbing.EncodedObject, error) {
-
+       plumbing.EncodedObject, error,
+) {
        if err := s.requireIndex(); err != nil {
                return nil, err
        }
@@ -509,9 +520,7 @@
                return nil, err
        }
 
-       var (
-               base plumbing.Hash
-       )
+       var base plumbing.Hash
 
        switch header.Type {
        case plumbing.REFDeltaObject:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/go-git/go-git/v5/worktree.go 
new/vendor/github.com/go-git/go-git/v5/worktree.go
--- old/vendor/github.com/go-git/go-git/v5/worktree.go  2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/github.com/go-git/go-git/v5/worktree.go  2026-02-19 
02:28:46.000000000 +0100
@@ -310,13 +310,20 @@
                return err
        }
 
+       var removedFiles []string
        if opts.Mode == MixedReset || opts.Mode == MergeReset || opts.Mode == 
HardReset {
-               if err := w.resetIndex(t, dirs, opts.Files); err != nil {
+               if removedFiles, err = w.resetIndex(t, dirs, opts.Files); err 
!= nil {
                        return err
                }
        }
 
-       if opts.Mode == MergeReset || opts.Mode == HardReset {
+       if opts.Mode == MergeReset && len(removedFiles) > 0 {
+               if err := w.resetWorktree(t, removedFiles); err != nil {
+                       return err
+               }
+       }
+
+       if opts.Mode == HardReset {
                if err := w.resetWorktree(t, opts.Files); err != nil {
                        return err
                }
@@ -365,23 +372,24 @@
        return w.ResetSparsely(opts, nil)
 }
 
-func (w *Worktree) resetIndex(t *object.Tree, dirs []string, files []string) 
error {
+func (w *Worktree) resetIndex(t *object.Tree, dirs []string, files []string) 
([]string, error) {
        idx, err := w.r.Storer.Index()
        if err != nil {
-               return err
+               return nil, err
        }
 
        b := newIndexBuilder(idx)
 
        changes, err := w.diffTreeWithStaging(t, true)
        if err != nil {
-               return err
+               return nil, err
        }
 
+       var removedFiles []string
        for _, ch := range changes {
                a, err := ch.Action()
                if err != nil {
-                       return err
+                       return nil, err
                }
 
                var name string
@@ -392,7 +400,7 @@
                        name = ch.To.String()
                        e, err = t.FindEntry(name)
                        if err != nil {
-                               return err
+                               return nil, err
                        }
                case merkletrie.Delete:
                        name = ch.From.String()
@@ -406,6 +414,7 @@
                }
 
                b.Remove(name)
+               removedFiles = append(removedFiles, name)
                if e == nil {
                        continue
                }
@@ -424,7 +433,7 @@
                idx.SkipUnless(dirs)
        }
 
-       return w.r.Storer.SetIndex(idx)
+       return removedFiles, w.r.Storer.SetIndex(idx)
 }
 
 func inFiles(files []string, v string) bool {
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        2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_arm64.go        2026-02-19 
02:28:46.000000000 +0100
@@ -47,7 +47,7 @@
        switch runtime.GOOS {
        case "freebsd":
                readARM64Registers()
-       case "linux", "netbsd", "openbsd":
+       case "linux", "netbsd", "openbsd", "windows":
                doinit()
        default:
                // Many platforms don't seem to allow reading these registers.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go  2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_other_arm64.go  2026-02-19 
02:28:46.000000000 +0100
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-//go:build !linux && !netbsd && !openbsd && arm64
+//go:build !linux && !netbsd && !openbsd && !windows && arm64
 
 package cpu
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go 
new/vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go
--- old/vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go        1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go        2026-02-19 
02:28:46.000000000 +0100
@@ -0,0 +1,42 @@
+// Copyright 2026 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package cpu
+
+import (
+       "golang.org/x/sys/windows"
+)
+
+func doinit() {
+       // set HasASIMD and HasFP to true as per
+       // 
https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=msvc-170#base-requirements
+       //
+       // The ARM64 version of Windows always presupposes that it's running on 
an ARMv8 or later architecture.
+       // Both floating-point and NEON support are presumed to be present in 
hardware.
+       //
+       ARM64.HasASIMD = true
+       ARM64.HasFP = true
+
+       if 
windows.IsProcessorFeaturePresent(windows.PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE)
 {
+               ARM64.HasAES = true
+               ARM64.HasPMULL = true
+               ARM64.HasSHA1 = true
+               ARM64.HasSHA2 = true
+       }
+       ARM64.HasSHA3 = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE)
+       ARM64.HasCRC32 = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE)
+       ARM64.HasSHA512 = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE)
+       ARM64.HasATOMICS = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE)
+       if 
windows.IsProcessorFeaturePresent(windows.PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE) 
{
+               ARM64.HasASIMDDP = true
+               ARM64.HasASIMDRDM = true
+       }
+       if 
windows.IsProcessorFeaturePresent(windows.PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE)
 {
+               ARM64.HasLRCPC = true
+               ARM64.HasSM3 = true
+       }
+       ARM64.HasSVE = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_SVE_INSTRUCTIONS_AVAILABLE)
+       ARM64.HasSVE2 = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE)
+       ARM64.HasJSCVT = 
windows.IsProcessorFeaturePresent(windows.PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ioctl_signed.go 
new/vendor/golang.org/x/sys/unix/ioctl_signed.go
--- old/vendor/golang.org/x/sys/unix/ioctl_signed.go    2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/ioctl_signed.go    2026-02-19 
02:28:46.000000000 +0100
@@ -6,9 +6,7 @@
 
 package unix
 
-import (
-       "unsafe"
-)
+import "unsafe"
 
 // ioctl itself should not be exposed directly, but additional get/set
 // functions for specific types are permissible.
@@ -28,6 +26,13 @@
        return ioctlPtr(fd, req, unsafe.Pointer(&v))
 }
 
+// IoctlSetString performs an ioctl operation which sets a string value
+// on fd, using the specified request number.
+func IoctlSetString(fd int, req int, value string) error {
+       bs := append([]byte(value), 0)
+       return ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))
+}
+
 // IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
 //
 // To change fd's window size, the req argument should be TIOCSWINSZ.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ioctl_unsigned.go 
new/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
--- old/vendor/golang.org/x/sys/unix/ioctl_unsigned.go  2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/ioctl_unsigned.go  2026-02-19 
02:28:46.000000000 +0100
@@ -6,9 +6,7 @@
 
 package unix
 
-import (
-       "unsafe"
-)
+import "unsafe"
 
 // ioctl itself should not be exposed directly, but additional get/set
 // functions for specific types are permissible.
@@ -28,6 +26,13 @@
        return ioctlPtr(fd, req, unsafe.Pointer(&v))
 }
 
+// IoctlSetString performs an ioctl operation which sets a string value
+// on fd, using the specified request number.
+func IoctlSetString(fd int, req uint, value string) error {
+       bs := append([]byte(value), 0)
+       return ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))
+}
+
 // IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
 //
 // To change fd's window size, the req argument should be TIOCSWINSZ.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_solaris.go 
new/vendor/golang.org/x/sys/unix/syscall_solaris.go
--- old/vendor/golang.org/x/sys/unix/syscall_solaris.go 2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/syscall_solaris.go 2026-02-19 
02:28:46.000000000 +0100
@@ -1052,14 +1052,6 @@
        return ioctlRet(fd, req, uintptr(arg))
 }
 
-func IoctlSetString(fd int, req int, val string) error {
-       bs := make([]byte, len(val)+1)
-       copy(bs[:len(bs)-1], val)
-       err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))
-       runtime.KeepAlive(&bs[0])
-       return err
-}
-
 // Lifreq Helpers
 
 func (l *Lifreq) SetName(name string) error {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_unix.go 
new/vendor/golang.org/x/sys/unix/syscall_unix.go
--- old/vendor/golang.org/x/sys/unix/syscall_unix.go    2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/unix/syscall_unix.go    2026-02-19 
02:28:46.000000000 +0100
@@ -367,7 +367,9 @@
                iov[0].SetLen(len(p))
        }
        var rsa RawSockaddrAny
-       n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)
+       if n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa); 
err != nil {
+               return
+       }
        // source address is only specified if the socket is unconnected
        if rsa.Addr.Family != AF_UNSPEC {
                from, err = anyToSockaddr(fd, &rsa)
@@ -389,8 +391,10 @@
                }
        }
        var rsa RawSockaddrAny
-       n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)
-       if err == nil && rsa.Addr.Family != AF_UNSPEC {
+       if n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa); err 
!= nil {
+               return
+       }
+       if rsa.Addr.Family != AF_UNSPEC {
                from, err = anyToSockaddr(fd, &rsa)
        }
        return
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      2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/syscall_windows.go      2026-02-19 
02:28:46.000000000 +0100
@@ -900,6 +900,7 @@
 //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
+//sys  IsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) = 
kernel32.IsProcessorFeaturePresent
 
 // For testing: clients can set this flag to force
 // creation of IPv6 sockets to return EAFNOSUPPORT.
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        2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/types_windows.go        2026-02-19 
02:28:46.000000000 +0100
@@ -3938,3 +3938,88 @@
        MOUSE_EVENT              = 0x0002
        WINDOW_BUFFER_SIZE_EVENT = 0x0004
 )
+
+// The processor features to be tested for IsProcessorFeaturePresent, see
+// 
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent
+const (
+       PF_ARM_64BIT_LOADSTORE_ATOMIC              = 25
+       PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE        = 24
+       PF_ARM_EXTERNAL_CACHE_AVAILABLE            = 26
+       PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE         = 27
+       PF_ARM_VFP_32_REGISTERS_AVAILABLE          = 18
+       PF_3DNOW_INSTRUCTIONS_AVAILABLE            = 7
+       PF_CHANNELS_ENABLED                        = 16
+       PF_COMPARE_EXCHANGE_DOUBLE                 = 2
+       PF_COMPARE_EXCHANGE128                     = 14
+       PF_COMPARE64_EXCHANGE128                   = 15
+       PF_FASTFAIL_AVAILABLE                      = 23
+       PF_FLOATING_POINT_EMULATED                 = 1
+       PF_FLOATING_POINT_PRECISION_ERRATA         = 0
+       PF_MMX_INSTRUCTIONS_AVAILABLE              = 3
+       PF_NX_ENABLED                              = 12
+       PF_PAE_ENABLED                             = 9
+       PF_RDTSC_INSTRUCTION_AVAILABLE             = 8
+       PF_RDWRFSGSBASE_AVAILABLE                  = 22
+       PF_SECOND_LEVEL_ADDRESS_TRANSLATION        = 20
+       PF_SSE3_INSTRUCTIONS_AVAILABLE             = 13
+       PF_SSSE3_INSTRUCTIONS_AVAILABLE            = 36
+       PF_SSE4_1_INSTRUCTIONS_AVAILABLE           = 37
+       PF_SSE4_2_INSTRUCTIONS_AVAILABLE           = 38
+       PF_AVX_INSTRUCTIONS_AVAILABLE              = 39
+       PF_AVX2_INSTRUCTIONS_AVAILABLE             = 40
+       PF_AVX512F_INSTRUCTIONS_AVAILABLE          = 41
+       PF_VIRT_FIRMWARE_ENABLED                   = 21
+       PF_XMMI_INSTRUCTIONS_AVAILABLE             = 6
+       PF_XMMI64_INSTRUCTIONS_AVAILABLE           = 10
+       PF_XSAVE_ENABLED                           = 17
+       PF_ARM_V8_INSTRUCTIONS_AVAILABLE           = 29
+       PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE    = 30
+       PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE     = 31
+       PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE   = 34
+       PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE       = 43
+       PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE    = 44
+       PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE    = 45
+       PF_ARM_SVE_INSTRUCTIONS_AVAILABLE          = 46
+       PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE         = 47
+       PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE       = 48
+       PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE      = 49
+       PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE = 50
+       PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE  = 51
+       PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE     = 52
+       PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE    = 53
+       PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE   = 54
+       PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE     = 55
+       PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE      = 56
+       PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE     = 57
+       PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE    = 58
+       PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE    = 59
+       PF_BMI2_INSTRUCTIONS_AVAILABLE             = 60
+       PF_MOVDIR64B_INSTRUCTION_AVAILABLE         = 61
+       PF_ARM_LSE2_AVAILABLE                      = 62
+       PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE         = 64
+       PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE       = 65
+       PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE     = 66
+       PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE     = 67
+       PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE     = 68
+       PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE    = 69
+       PF_ARM_SME_INSTRUCTIONS_AVAILABLE          = 70
+       PF_ARM_SME2_INSTRUCTIONS_AVAILABLE         = 71
+       PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE       = 72
+       PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE       = 73
+       PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE      = 74
+       PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE = 75
+       PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE   = 76
+       PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE   = 77
+       PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE   = 78
+       PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE   = 79
+       PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE   = 80
+       PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE    = 81
+       PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE    = 82
+       PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE   = 83
+       PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE   = 84
+       PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE   = 85
+       PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE   = 86
+       PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE    = 87
+       PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE     = 88
+       PF_UMONITOR_INSTRUCTION_AVAILABLE          = 89
+)
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     2026-01-30 
23:38:49.000000000 +0100
+++ new/vendor/golang.org/x/sys/windows/zsyscall_windows.go     2026-02-19 
02:28:46.000000000 +0100
@@ -320,6 +320,7 @@
        procGetVolumePathNamesForVolumeNameW                     = 
modkernel32.NewProc("GetVolumePathNamesForVolumeNameW")
        procGetWindowsDirectoryW                                 = 
modkernel32.NewProc("GetWindowsDirectoryW")
        procInitializeProcThreadAttributeList                    = 
modkernel32.NewProc("InitializeProcThreadAttributeList")
+       procIsProcessorFeaturePresent                            = 
modkernel32.NewProc("IsProcessorFeaturePresent")
        procIsWow64Process                                       = 
modkernel32.NewProc("IsWow64Process")
        procIsWow64Process2                                      = 
modkernel32.NewProc("IsWow64Process2")
        procLoadLibraryExW                                       = 
modkernel32.NewProc("LoadLibraryExW")
@@ -2786,6 +2787,12 @@
        return
 }
 
+func IsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) {
+       r0, _, _ := syscall.SyscallN(procIsProcessorFeaturePresent.Addr(), 
uintptr(ProcessorFeature))
+       ret = r0 != 0
+       return
+}
+
 func IsWow64Process(handle Handle, isWow64 *bool) (err error) {
        var _p0 uint32
        if *isWow64 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-01-30 23:38:49.000000000 +0100
+++ new/vendor/modules.txt      2026-02-19 02:28:46.000000000 +0100
@@ -201,8 +201,8 @@
 github.com/go-git/go-billy/v5/memfs
 github.com/go-git/go-billy/v5/osfs
 github.com/go-git/go-billy/v5/util
-# github.com/go-git/go-git/v5 v5.16.4
-## explicit; go 1.23.0
+# github.com/go-git/go-git/v5 v5.16.5
+## explicit; go 1.24.0
 github.com/go-git/go-git/v5
 github.com/go-git/go-git/v5/config
 github.com/go-git/go-git/v5/internal/path_util
@@ -498,14 +498,14 @@
 ## explicit; go 1.24.0
 golang.org/x/sync/errgroup
 golang.org/x/sync/semaphore
-# golang.org/x/sys v0.40.0
+# golang.org/x/sys v0.41.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.39.0
+# golang.org/x/term v0.40.0
 ## explicit; go 1.24.0
 golang.org/x/term
 # golang.org/x/time v0.14.0

Reply via email to