Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package spicetify-cli for openSUSE:Factory 
checked in at 2025-06-11 16:22:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/spicetify-cli (Old)
 and      /work/SRC/openSUSE:Factory/.spicetify-cli.new.19631 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "spicetify-cli"

Wed Jun 11 16:22:42 2025 rev:16 rq:1284425 version:2.40.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/spicetify-cli/spicetify-cli.changes      
2025-06-03 17:56:32.461073513 +0200
+++ /work/SRC/openSUSE:Factory/.spicetify-cli.new.19631/spicetify-cli.changes   
2025-06-11 16:23:44.221490563 +0200
@@ -1,0 +2,9 @@
+Tue Jun 10 11:10:34 UTC 2025 - Jan Kužílek <jan.kuzi...@suse.com>
+
+- Update to version 2.40.11:
+  * fix(preprocess): ignore mini-player's css on `1.2.64` and higher
+  * chore(deps): bump github.com/pterm/pterm from 0.12.80 to 0.12.81 (#3432)
+  * chore(deps): bump golang.org/x/net from 0.40.0 to 0.41.0 (#3428)
+  * chore(css-map): add `exploreButton` (#3430)
+
+-------------------------------------------------------------------

Old:
----
  cli-2.40.10.obscpio

New:
----
  cli-2.40.11.obscpio

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

Other differences:
------------------
++++++ spicetify-cli.spec ++++++
--- /var/tmp/diff_new_pack.Gbghgd/_old  2025-06-11 16:23:45.541545649 +0200
+++ /var/tmp/diff_new_pack.Gbghgd/_new  2025-06-11 16:23:45.553546150 +0200
@@ -19,7 +19,7 @@
 %define sname cli
 %define binname spicetify
 Name:           spicetify-cli
-Version:        2.40.10
+Version:        2.40.11
 Release:        0
 Summary:        Command-line tool to customize Spotify client
 License:        LGPL-2.1-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.Gbghgd/_old  2025-06-11 16:23:45.577547152 +0200
+++ /var/tmp/diff_new_pack.Gbghgd/_new  2025-06-11 16:23:45.581547318 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/spicetify/cli</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v2.40.10</param>
+    <param name="revision">v2.40.11</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.Gbghgd/_old  2025-06-11 16:23:45.613548654 +0200
+++ /var/tmp/diff_new_pack.Gbghgd/_new  2025-06-11 16:23:45.613548654 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/spicetify/cli</param>
-              <param 
name="changesrevision">0b70a046f97c6792a3a6342b03f1cccd370c597a</param></service></servicedata>
+              <param 
name="changesrevision">5146df55e7fcea247e43aa1b0e33f3ba36cd205d</param></service></servicedata>
 (No newline at EOF)
 

++++++ cli-2.40.10.obscpio -> cli-2.40.11.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.10/css-map.json new/cli-2.40.11/css-map.json
--- old/cli-2.40.10/css-map.json        2025-05-27 20:53:44.000000000 +0200
+++ new/cli-2.40.11/css-map.json        2025-06-09 23:57:08.000000000 +0200
@@ -159,6 +159,7 @@
        "SruqsAzX8rUtY2isUZDF": "lyrics-lyricsContent-unsynced",
        "E4q8ogfdWtye7YgotBlN": "main-actionBar-ActionBar",
        "eSg4ntPU2KQLfpLGXAww": "main-actionBar-ActionBarRow",
+       "K06ol8ltPT_atXE_JjUP": "main-actionBar-exploreButton",
        "CoLO4pdSl8LGWyVZA00t": "main-actionBarBackground-background",
        "PkOz5g82CaoKk1J3GX0e": "main-actionBarBackground-background",
        "GTAFfOA_w5vh_bDaGJAG": "main-actionButtons",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.10/go.mod new/cli-2.40.11/go.mod
--- old/cli-2.40.10/go.mod      2025-05-27 20:53:44.000000000 +0200
+++ new/cli-2.40.11/go.mod      2025-06-09 23:57:08.000000000 +0200
@@ -5,8 +5,8 @@
 require (
        github.com/go-ini/ini v1.67.0
        github.com/mattn/go-colorable v0.1.14
-       github.com/pterm/pterm v0.12.80
-       golang.org/x/net v0.40.0
+       github.com/pterm/pterm v0.12.81
+       golang.org/x/net v0.41.0
        golang.org/x/sys v0.33.0
 )
 
@@ -14,7 +14,7 @@
        atomicgo.dev/cursor v0.2.0 // indirect
        atomicgo.dev/keyboard v0.2.9 // indirect
        atomicgo.dev/schedule v0.1.0 // indirect
-       github.com/containerd/console v1.0.3 // indirect
+       github.com/containerd/console v1.0.5 // indirect
        github.com/gookit/color v1.5.4 // indirect
        github.com/lithammer/fuzzysearch v1.1.8 // indirect
        github.com/mattn/go-isatty v0.0.20 // indirect
@@ -23,5 +23,5 @@
        github.com/stretchr/testify v1.9.0 // indirect
        github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
        golang.org/x/term v0.32.0 // indirect
-       golang.org/x/text v0.25.0 // indirect
+       golang.org/x/text v0.26.0 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.10/go.sum new/cli-2.40.11/go.sum
--- old/cli-2.40.10/go.sum      2025-05-27 20:53:44.000000000 +0200
+++ new/cli-2.40.11/go.sum      2025-06-09 23:57:08.000000000 +0200
@@ -16,8 +16,9 @@
 github.com/MarvinJWendt/testza v0.5.2 
h1:53KDo64C1z/h/d/stCYCPY69bt/OSwjq5KpFNwi+zB4=
 github.com/MarvinJWendt/testza v0.5.2/go.mod 
h1:xu53QFE5sCdjtMCKk8YMQ2MnymimEctc4n3EjyIYvEY=
 github.com/atomicgo/cursor v0.0.1/go.mod 
h1:cBON2QmmrysudxNBFthvMtN32r3jxVRIvzkUiF/RuIk=
-github.com/containerd/console v1.0.3 
h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=
 github.com/containerd/console v1.0.3/go.mod 
h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
+github.com/containerd/console v1.0.5 
h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc=
+github.com/containerd/console v1.0.5/go.mod 
h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -53,8 +54,8 @@
 github.com/pterm/pterm v0.12.33/go.mod 
h1:x+h2uL+n7CP/rel9+bImHD5lF3nM9vJj80k9ybiiTTE=
 github.com/pterm/pterm v0.12.36/go.mod 
h1:NjiL09hFhT/vWjQHSj1athJpx6H8cjpHXNAK5bUw8T8=
 github.com/pterm/pterm v0.12.40/go.mod 
h1:ffwPLwlbXxP+rxT0GsgDTzS3y3rmpAO1NMjUkGTYf8s=
-github.com/pterm/pterm v0.12.80 h1:mM55B+GnKUnLMUSqhdINe4s6tOuVQIetQ3my8JGyAIg=
-github.com/pterm/pterm v0.12.80/go.mod 
h1:c6DeF9bSnOSeFPZlfs4ZRAFcf5SCoTwvwQ5xaKGQlHo=
+github.com/pterm/pterm v0.12.81 h1:ju+j5I2++FO1jBKMmscgh5h5DPFDFMB7epEjSoKehKA=
+github.com/pterm/pterm v0.12.81/go.mod 
h1:TyuyrPjnxfwP+ccJdBTeWHtd/e0ybQHkOS/TakajZCw=
 github.com/rivo/uniseg v0.2.0/go.mod 
h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
 github.com/rivo/uniseg v0.4.7/go.mod 
h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
@@ -80,8 +81,8 @@
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod 
h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
-golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
+golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
+golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -94,6 +95,7 @@
 golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
@@ -110,8 +112,8 @@
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
-golang.org/x/text v0.25.0/go.mod 
h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
+golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
+golang.org/x/text v0.26.0/go.mod 
h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cli-2.40.10/src/preprocess/preprocess.go 
new/cli-2.40.11/src/preprocess/preprocess.go
--- old/cli-2.40.10/src/preprocess/preprocess.go        2025-05-27 
20:53:44.000000000 +0200
+++ new/cli-2.40.11/src/preprocess/preprocess.go        2025-06-09 
23:57:08.000000000 +0200
@@ -283,7 +283,7 @@
        appPath := filepath.Join(extractedAppsPath, "xpui")
        filepath.Walk(appPath, func(path string, info os.FileInfo, err error) 
error {
                // temp so text won't be black ._.
-               if info.Name() == "pip-mini-player.css" {
+               if strings.HasPrefix(info.Name(), "pip-mini-player") && 
strings.HasSuffix(info.Name(), ".css") {
                        return nil
                }
 

++++++ cli.obsinfo ++++++
--- /var/tmp/diff_new_pack.Gbghgd/_old  2025-06-11 16:23:45.821557334 +0200
+++ /var/tmp/diff_new_pack.Gbghgd/_new  2025-06-11 16:23:45.825557501 +0200
@@ -1,5 +1,5 @@
 name: cli
-version: 2.40.10
-mtime: 1748372024
-commit: 0b70a046f97c6792a3a6342b03f1cccd370c597a
+version: 2.40.11
+mtime: 1749506228
+commit: 5146df55e7fcea247e43aa1b0e33f3ba36cd205d
 

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/.golangci.yml 
new/vendor/github.com/containerd/console/.golangci.yml
--- old/vendor/github.com/containerd/console/.golangci.yml      2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/.golangci.yml      2025-06-09 
23:57:08.000000000 +0200
@@ -1,16 +1,16 @@
 linters:
   enable:
-    - structcheck
-    - varcheck
-    - staticcheck
-    - unconvert
     - gofmt
     - goimports
-    - golint
     - ineffassign
-    - vet
-    - unused
     - misspell
+    - revive
+    - staticcheck
+    - structcheck
+    - unconvert
+    - unused
+    - varcheck
+    - vet
   disable:
     - errcheck
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/README.md 
new/vendor/github.com/containerd/console/README.md
--- old/vendor/github.com/containerd/console/README.md  2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/README.md  2025-06-09 
23:57:08.000000000 +0200
@@ -22,8 +22,8 @@
 
 console is a containerd sub-project, licensed under the [Apache 2.0 
license](./LICENSE).
 As a containerd sub-project, you will find the:
- * [Project 
governance](https://github.com/containerd/project/blob/master/GOVERNANCE.md),
- * 
[Maintainers](https://github.com/containerd/project/blob/master/MAINTAINERS),
- * and [Contributing 
guidelines](https://github.com/containerd/project/blob/master/CONTRIBUTING.md)
+ * [Project 
governance](https://github.com/containerd/project/blob/main/GOVERNANCE.md),
+ * [Maintainers](https://github.com/containerd/project/blob/main/MAINTAINERS),
+ * and [Contributing 
guidelines](https://github.com/containerd/project/blob/main/CONTRIBUTING.md)
 
 information in our 
[`containerd/project`](https://github.com/containerd/project) repository.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/console.go 
new/vendor/github.com/containerd/console/console.go
--- old/vendor/github.com/containerd/console/console.go 2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/console.go 2025-06-09 
23:57:08.000000000 +0200
@@ -22,7 +22,10 @@
        "os"
 )
 
-var ErrNotAConsole = errors.New("provided file is not a console")
+var (
+       ErrNotAConsole    = errors.New("provided file is not a console")
+       ErrNotImplemented = errors.New("not implemented")
+)
 
 type File interface {
        io.ReadWriteCloser
@@ -45,7 +48,7 @@
        SetRaw() error
        // DisableEcho disables echo on the console
        DisableEcho() error
-       // Reset restores the console to its orignal state
+       // Reset restores the console to its original state
        Reset() error
        // Size returns the window size of the console
        Size() (WinSize, error)
@@ -78,7 +81,7 @@
 }
 
 // ConsoleFromFile returns a console using the provided file
-// nolint:golint
+// nolint:revive
 func ConsoleFromFile(f File) (Console, error) {
        if err := checkConsole(f); err != nil {
                return nil, err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/console_linux.go 
new/vendor/github.com/containerd/console/console_linux.go
--- old/vendor/github.com/containerd/console/console_linux.go   2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/console_linux.go   2025-06-09 
23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build linux
 // +build linux
 
 /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/console_other.go 
new/vendor/github.com/containerd/console/console_other.go
--- old/vendor/github.com/containerd/console/console_other.go   1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/containerd/console/console_other.go   2025-06-09 
23:57:08.000000000 +0200
@@ -0,0 +1,36 @@
+//go:build !darwin && !freebsd && !linux && !netbsd && !openbsd && !windows && 
!zos
+// +build !darwin,!freebsd,!linux,!netbsd,!openbsd,!windows,!zos
+
+/*
+   Copyright The containerd Authors.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package console
+
+// NewPty creates a new pty pair
+// The master is returned as the first console and a string
+// with the path to the pty slave is returned as the second
+func NewPty() (Console, string, error) {
+       return nil, "", ErrNotImplemented
+}
+
+// checkConsole checks if the provided file is a console
+func checkConsole(f File) error {
+       return ErrNotAConsole
+}
+
+func newMaster(f File) (Console, error) {
+       return nil, ErrNotImplemented
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/console_unix.go 
new/vendor/github.com/containerd/console/console_unix.go
--- old/vendor/github.com/containerd/console/console_unix.go    2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/console_unix.go    2025-06-09 
23:57:08.000000000 +0200
@@ -1,4 +1,5 @@
-// +build darwin freebsd linux netbsd openbsd solaris
+//go:build darwin || freebsd || linux || netbsd || openbsd || zos
+// +build darwin freebsd linux netbsd openbsd zos
 
 /*
    Copyright The containerd Authors.
@@ -30,6 +31,15 @@
        if err != nil {
                return nil, "", err
        }
+       return NewPtyFromFile(f)
+}
+
+// NewPtyFromFile creates a new pty pair, just like [NewPty] except that the
+// provided [os.File] is used as the master rather than automatically creating
+// a new master from /dev/ptmx. The ownership of [os.File] is passed to the
+// returned [Console], so the caller must be careful to not call Close on the
+// underlying file.
+func NewPtyFromFile(f File) (Console, string, error) {
        slave, err := ptsname(f)
        if err != nil {
                return nil, "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/console_windows.go 
new/vendor/github.com/containerd/console/console_windows.go
--- old/vendor/github.com/containerd/console/console_windows.go 2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/console_windows.go 2025-06-09 
23:57:08.000000000 +0200
@@ -24,12 +24,13 @@
        "golang.org/x/sys/windows"
 )
 
-var (
-       vtInputSupported  bool
-       ErrNotImplemented = errors.New("not implemented")
-)
+var vtInputSupported bool
 
 func (m *master) initStdios() {
+       // Note: We discard console mode warnings, because in/out can be 
redirected.
+       //
+       // TODO: Investigate opening CONOUT$/CONIN$ to handle this correctly
+
        m.in = windows.Handle(os.Stdin.Fd())
        if err := windows.GetConsoleMode(m.in, &m.inMode); err == nil {
                // Validate that windows.ENABLE_VIRTUAL_TERMINAL_INPUT is 
supported, but do not set it.
@@ -39,8 +40,6 @@
                // Unconditionally set the console mode back even on failure 
because SetConsoleMode
                // remembers invalid bits on input handles.
                windows.SetConsoleMode(m.in, m.inMode)
-       } else {
-               fmt.Printf("failed to get console mode for stdin: %v\n", err)
        }
 
        m.out = windows.Handle(os.Stdout.Fd())
@@ -50,8 +49,6 @@
                } else {
                        windows.SetConsoleMode(m.out, m.outMode)
                }
-       } else {
-               fmt.Printf("failed to get console mode for stdout: %v\n", err)
        }
 
        m.err = windows.Handle(os.Stderr.Fd())
@@ -61,8 +58,6 @@
                } else {
                        windows.SetConsoleMode(m.err, m.errMode)
                }
-       } else {
-               fmt.Printf("failed to get console mode for stderr: %v\n", err)
        }
 }
 
@@ -94,6 +89,8 @@
 }
 
 func (m *master) Reset() error {
+       var errs []error
+
        for _, s := range []struct {
                fd   windows.Handle
                mode uint32
@@ -103,10 +100,16 @@
                {m.err, m.errMode},
        } {
                if err := windows.SetConsoleMode(s.fd, s.mode); err != nil {
-                       return fmt.Errorf("unable to restore console mode: %w", 
err)
+                       // we can't just abort on the first error, otherwise we 
might leave
+                       // the console in an unexpected state.
+                       errs = append(errs, fmt.Errorf("unable to restore 
console mode: %w", err))
                }
        }
 
+       if len(errs) > 0 {
+               return errs[0]
+       }
+
        return nil
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/console_zos.go 
new/vendor/github.com/containerd/console/console_zos.go
--- old/vendor/github.com/containerd/console/console_zos.go     2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/console_zos.go     1970-01-01 
01:00:00.000000000 +0100
@@ -1,163 +0,0 @@
-// +build zos
-
-/*
-   Copyright The containerd Authors.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-*/
-
-package console
-
-import (
-       "fmt"
-       "os"
-
-       "golang.org/x/sys/unix"
-)
-
-// NewPty creates a new pty pair
-// The master is returned as the first console and a string
-// with the path to the pty slave is returned as the second
-func NewPty() (Console, string, error) {
-       var f File
-       var err error
-       var slave string
-       for i := 0;; i++ {
-               ptyp := fmt.Sprintf("/dev/ptyp%04d", i)
-               f, err = os.OpenFile(ptyp, os.O_RDWR, 0600)
-               if err == nil {
-                       slave = fmt.Sprintf("/dev/ttyp%04d", i)
-                       break
-               }
-               if os.IsNotExist(err) {
-                       return nil, "", err
-               }
-               // else probably Resource Busy
-       }
-       m, err := newMaster(f)
-       if err != nil {
-               return nil, "", err
-       }
-       return m, slave, nil
-}
-
-type master struct {
-       f        File
-       original *unix.Termios
-}
-
-func (m *master) Read(b []byte) (int, error) {
-       return m.f.Read(b)
-}
-
-func (m *master) Write(b []byte) (int, error) {
-       return m.f.Write(b)
-}
-
-func (m *master) Close() error {
-       return m.f.Close()
-}
-
-func (m *master) Resize(ws WinSize) error {
-       return tcswinsz(m.f.Fd(), ws)
-}
-
-func (m *master) ResizeFrom(c Console) error {
-       ws, err := c.Size()
-       if err != nil {
-               return err
-       }
-       return m.Resize(ws)
-}
-
-func (m *master) Reset() error {
-       if m.original == nil {
-               return nil
-       }
-       return tcset(m.f.Fd(), m.original)
-}
-
-func (m *master) getCurrent() (unix.Termios, error) {
-       var termios unix.Termios
-       if err := tcget(m.f.Fd(), &termios); err != nil {
-               return unix.Termios{}, err
-       }
-       return termios, nil
-}
-
-func (m *master) SetRaw() error {
-       rawState, err := m.getCurrent()
-       if err != nil {
-               return err
-       }
-       rawState = cfmakeraw(rawState)
-       rawState.Oflag = rawState.Oflag | unix.OPOST
-       return tcset(m.f.Fd(), &rawState)
-}
-
-func (m *master) DisableEcho() error {
-       rawState, err := m.getCurrent()
-       if err != nil {
-               return err
-       }
-       rawState.Lflag = rawState.Lflag &^ unix.ECHO
-       return tcset(m.f.Fd(), &rawState)
-}
-
-func (m *master) Size() (WinSize, error) {
-       return tcgwinsz(m.f.Fd())
-}
-
-func (m *master) Fd() uintptr {
-       return m.f.Fd()
-}
-
-func (m *master) Name() string {
-       return m.f.Name()
-}
-
-// checkConsole checks if the provided file is a console
-func checkConsole(f File) error {
-       var termios unix.Termios
-       if tcget(f.Fd(), &termios) != nil {
-               return ErrNotAConsole
-       }
-       return nil
-}
-
-func newMaster(f File) (Console, error) {
-       m := &master{
-               f: f,
-       }
-       t, err := m.getCurrent()
-       if err != nil {
-               return nil, err
-       }
-       m.original = &t
-       return m, nil
-}
-
-// ClearONLCR sets the necessary tty_ioctl(4)s to ensure that a pty pair
-// created by us acts normally. In particular, a not-very-well-known default of
-// Linux unix98 ptys is that they have +onlcr by default. While this isn't a
-// problem for terminal emulators, because we relay data from the terminal we
-// also relay that funky line discipline.
-func ClearONLCR(fd uintptr) error {
-       return setONLCR(fd, false)
-}
-
-// SetONLCR sets the necessary tty_ioctl(4)s to ensure that a pty pair
-// created by us acts as intended for a terminal emulator.
-func SetONLCR(fd uintptr) error {
-       return setONLCR(fd, true)
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/pty_freebsd_cgo.go 
new/vendor/github.com/containerd/console/pty_freebsd_cgo.go
--- old/vendor/github.com/containerd/console/pty_freebsd_cgo.go 2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/pty_freebsd_cgo.go 2025-06-09 
23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build freebsd && cgo
 // +build freebsd,cgo
 
 /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/pty_freebsd_nocgo.go 
new/vendor/github.com/containerd/console/pty_freebsd_nocgo.go
--- old/vendor/github.com/containerd/console/pty_freebsd_nocgo.go       
2025-05-19 16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/pty_freebsd_nocgo.go       
2025-06-09 23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build freebsd && !cgo
 // +build freebsd,!cgo
 
 /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/pty_unix.go 
new/vendor/github.com/containerd/console/pty_unix.go
--- old/vendor/github.com/containerd/console/pty_unix.go        2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/pty_unix.go        2025-06-09 
23:57:08.000000000 +0200
@@ -1,4 +1,5 @@
-// +build darwin linux netbsd openbsd solaris
+//go:build darwin || linux || netbsd || openbsd
+// +build darwin linux netbsd openbsd
 
 /*
    Copyright The containerd Authors.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/pty_zos.go 
new/vendor/github.com/containerd/console/pty_zos.go
--- old/vendor/github.com/containerd/console/pty_zos.go 1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/containerd/console/pty_zos.go 2025-06-09 
23:57:08.000000000 +0200
@@ -0,0 +1,43 @@
+//go:build zos
+// +build zos
+
+/*
+   Copyright The containerd Authors.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package console
+
+import (
+       "fmt"
+       "os"
+)
+
+// openpt allocates a new pseudo-terminal by opening the first available 
/dev/ptypXX device
+func openpt() (*os.File, error) {
+       var f *os.File
+       var err error
+       for i := 0; ; i++ {
+               ptyp := fmt.Sprintf("/dev/ptyp%04d", i)
+               f, err = os.OpenFile(ptyp, os.O_RDWR, 0600)
+               if err == nil {
+                       break
+               }
+               if os.IsNotExist(err) {
+                       return nil, err
+               }
+               // else probably Resource Busy
+       }
+       return f, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/tc_darwin.go 
new/vendor/github.com/containerd/console/tc_darwin.go
--- old/vendor/github.com/containerd/console/tc_darwin.go       2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_darwin.go       2025-06-09 
23:57:08.000000000 +0200
@@ -18,7 +18,6 @@
 
 import (
        "fmt"
-       "os"
 
        "golang.org/x/sys/unix"
 )
@@ -30,12 +29,12 @@
 
 // unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
 // unlockpt should be called before opening the slave side of a pty.
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        return unix.IoctlSetPointerInt(int(f.Fd()), unix.TIOCPTYUNLK, 0)
 }
 
 // ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        n, err := unix.IoctlGetInt(int(f.Fd()), unix.TIOCPTYGNAME)
        if err != nil {
                return "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/tc_freebsd_cgo.go 
new/vendor/github.com/containerd/console/tc_freebsd_cgo.go
--- old/vendor/github.com/containerd/console/tc_freebsd_cgo.go  2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_freebsd_cgo.go  2025-06-09 
23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build freebsd && cgo
 // +build freebsd,cgo
 
 /*
@@ -20,7 +21,6 @@
 
 import (
        "fmt"
-       "os"
 
        "golang.org/x/sys/unix"
 )
@@ -38,7 +38,7 @@
 
 // unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
 // unlockpt should be called before opening the slave side of a pty.
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        fd := C.int(f.Fd())
        if _, err := C.unlockpt(fd); err != nil {
                C.close(fd)
@@ -48,7 +48,7 @@
 }
 
 // ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        n, err := unix.IoctlGetInt(int(f.Fd()), unix.TIOCGPTN)
        if err != nil {
                return "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/tc_freebsd_nocgo.go 
new/vendor/github.com/containerd/console/tc_freebsd_nocgo.go
--- old/vendor/github.com/containerd/console/tc_freebsd_nocgo.go        
2025-05-19 16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_freebsd_nocgo.go        
2025-06-09 23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build freebsd && !cgo
 // +build freebsd,!cgo
 
 /*
@@ -20,7 +21,6 @@
 
 import (
        "fmt"
-       "os"
 
        "golang.org/x/sys/unix"
 )
@@ -41,12 +41,12 @@
 
 // unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
 // unlockpt should be called before opening the slave side of a pty.
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        panic("unlockpt() support requires cgo.")
 }
 
 // ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        n, err := unix.IoctlGetInt(int(f.Fd()), unix.TIOCGPTN)
        if err != nil {
                return "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/tc_linux.go 
new/vendor/github.com/containerd/console/tc_linux.go
--- old/vendor/github.com/containerd/console/tc_linux.go        2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_linux.go        2025-06-09 
23:57:08.000000000 +0200
@@ -18,7 +18,6 @@
 
 import (
        "fmt"
-       "os"
        "unsafe"
 
        "golang.org/x/sys/unix"
@@ -31,7 +30,7 @@
 
 // unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
 // unlockpt should be called before opening the slave side of a pty.
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        var u int32
        // XXX do not use unix.IoctlSetPointerInt here, see commit dbd69c59b81.
        if _, _, err := unix.Syscall(unix.SYS_IOCTL, f.Fd(), unix.TIOCSPTLCK, 
uintptr(unsafe.Pointer(&u))); err != 0 {
@@ -41,7 +40,7 @@
 }
 
 // ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        var u uint32
        // XXX do not use unix.IoctlGetInt here, see commit dbd69c59b81.
        if _, _, err := unix.Syscall(unix.SYS_IOCTL, f.Fd(), unix.TIOCGPTN, 
uintptr(unsafe.Pointer(&u))); err != 0 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/tc_netbsd.go 
new/vendor/github.com/containerd/console/tc_netbsd.go
--- old/vendor/github.com/containerd/console/tc_netbsd.go       2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_netbsd.go       2025-06-09 
23:57:08.000000000 +0200
@@ -18,7 +18,6 @@
 
 import (
        "bytes"
-       "os"
 
        "golang.org/x/sys/unix"
 )
@@ -31,12 +30,12 @@
 // unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
 // unlockpt should be called before opening the slave side of a pty.
 // This does not exist on NetBSD, it does not allocate controlling terminals 
on open
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        return nil
 }
 
 // ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        ptm, err := unix.IoctlGetPtmget(int(f.Fd()), unix.TIOCPTSNAME)
        if err != nil {
                return "", err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/tc_openbsd_cgo.go 
new/vendor/github.com/containerd/console/tc_openbsd_cgo.go
--- old/vendor/github.com/containerd/console/tc_openbsd_cgo.go  2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_openbsd_cgo.go  2025-06-09 
23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build openbsd && cgo
 // +build openbsd,cgo
 
 /*
@@ -19,8 +20,6 @@
 package console
 
 import (
-       "os"
-
        "golang.org/x/sys/unix"
 )
 
@@ -33,7 +32,7 @@
 )
 
 // ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        ptspath, err := C.ptsname(C.int(f.Fd()))
        if err != nil {
                return "", err
@@ -43,7 +42,7 @@
 
 // unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
 // unlockpt should be called before opening the slave side of a pty.
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        if _, err := C.grantpt(C.int(f.Fd())); err != nil {
                return err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/tc_openbsd_nocgo.go 
new/vendor/github.com/containerd/console/tc_openbsd_nocgo.go
--- old/vendor/github.com/containerd/console/tc_openbsd_nocgo.go        
2025-05-19 16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_openbsd_nocgo.go        
2025-06-09 23:57:08.000000000 +0200
@@ -1,3 +1,4 @@
+//go:build openbsd && !cgo
 // +build openbsd,!cgo
 
 /*
@@ -28,8 +29,6 @@
 package console
 
 import (
-       "os"
-
        "golang.org/x/sys/unix"
 )
 
@@ -38,10 +37,10 @@
        cmdTcSet = unix.TIOCSETA
 )
 
-func ptsname(f *os.File) (string, error) {
+func ptsname(f File) (string, error) {
        panic("ptsname() support requires cgo.")
 }
 
-func unlockpt(f *os.File) error {
+func unlockpt(f File) error {
        panic("unlockpt() support requires cgo.")
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/tc_solaris_cgo.go 
new/vendor/github.com/containerd/console/tc_solaris_cgo.go
--- old/vendor/github.com/containerd/console/tc_solaris_cgo.go  2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_solaris_cgo.go  1970-01-01 
01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-// +build solaris,cgo
-
-/*
-   Copyright The containerd Authors.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-*/
-
-package console
-
-import (
-       "os"
-
-       "golang.org/x/sys/unix"
-)
-
-//#include <stdlib.h>
-import "C"
-
-const (
-       cmdTcGet = unix.TCGETS
-       cmdTcSet = unix.TCSETS
-)
-
-// ptsname retrieves the name of the first available pts for the given master.
-func ptsname(f *os.File) (string, error) {
-       ptspath, err := C.ptsname(C.int(f.Fd()))
-       if err != nil {
-               return "", err
-       }
-       return C.GoString(ptspath), nil
-}
-
-// unlockpt unlocks the slave pseudoterminal device corresponding to the 
master pseudoterminal referred to by f.
-// unlockpt should be called before opening the slave side of a pty.
-func unlockpt(f *os.File) error {
-       if _, err := C.grantpt(C.int(f.Fd())); err != nil {
-               return err
-       }
-       return nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/containerd/console/tc_solaris_nocgo.go 
new/vendor/github.com/containerd/console/tc_solaris_nocgo.go
--- old/vendor/github.com/containerd/console/tc_solaris_nocgo.go        
2025-05-19 16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_solaris_nocgo.go        
1970-01-01 01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-// +build solaris,!cgo
-
-/*
-   Copyright The containerd Authors.
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-*/
-
-//
-// Implementing the functions below requires cgo support.  Non-cgo stubs
-// versions are defined below to enable cross-compilation of source code
-// that depends on these functions, but the resultant cross-compiled
-// binaries cannot actually be used.  If the stub function(s) below are
-// actually invoked they will display an error message and cause the
-// calling process to exit.
-//
-
-package console
-
-import (
-       "os"
-
-       "golang.org/x/sys/unix"
-)
-
-const (
-       cmdTcGet = unix.TCGETS
-       cmdTcSet = unix.TCSETS
-)
-
-func ptsname(f *os.File) (string, error) {
-       panic("ptsname() support requires cgo.")
-}
-
-func unlockpt(f *os.File) error {
-       panic("unlockpt() support requires cgo.")
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/tc_unix.go 
new/vendor/github.com/containerd/console/tc_unix.go
--- old/vendor/github.com/containerd/console/tc_unix.go 2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_unix.go 2025-06-09 
23:57:08.000000000 +0200
@@ -1,4 +1,5 @@
-// +build darwin freebsd linux netbsd openbsd solaris zos
+//go:build darwin || freebsd || linux || netbsd || openbsd || zos
+// +build darwin freebsd linux netbsd openbsd zos
 
 /*
    Copyright The containerd Authors.
@@ -83,7 +84,7 @@
        t.Oflag &^= unix.OPOST
        t.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | 
unix.IEXTEN)
        t.Cflag &^= (unix.CSIZE | unix.PARENB)
-       t.Cflag &^= unix.CS8
+       t.Cflag |= unix.CS8
        t.Cc[unix.VMIN] = 1
        t.Cc[unix.VTIME] = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/containerd/console/tc_zos.go 
new/vendor/github.com/containerd/console/tc_zos.go
--- old/vendor/github.com/containerd/console/tc_zos.go  2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/containerd/console/tc_zos.go  2025-06-09 
23:57:08.000000000 +0200
@@ -17,6 +17,8 @@
 package console
 
 import (
+       "strings"
+
        "golang.org/x/sys/unix"
 )
 
@@ -24,3 +26,13 @@
        cmdTcGet = unix.TCGETS
        cmdTcSet = unix.TCSETS
 )
+
+// unlockpt is a no-op on zos.
+func unlockpt(File) error {
+       return nil
+}
+
+// ptsname retrieves the name of the first available pts for the given master.
+func ptsname(f File) (string, error) {
+       return "/dev/ttyp" + strings.TrimPrefix(f.Name(), "/dev/ptyp"), nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/pterm/pterm/README.md 
new/vendor/github.com/pterm/pterm/README.md
--- old/vendor/github.com/pterm/pterm/README.md 2025-05-19 16:52:09.000000000 
+0200
+++ new/vendor/github.com/pterm/pterm/README.md 2025-06-09 23:57:08.000000000 
+0200
@@ -1,8 +1,11 @@
+<!-- GitAds-Verify: O8664I3XY9IA9QKAP4I9UHV4ZKFKZCT3 -->
 <!--suppress HtmlDeprecatedAttribute -->
 
 <h1 align="center">💻 PTerm | Pretty Terminal Printer</h1>
 <p align="center">A modern Go framework to make beautiful CLIs</p>
 
+
+
 <p align="center">
 
 <a href="https://github.com/pterm/pterm/releases"; style="text-decoration: 
none">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/pterm/pterm/box_printer.go 
new/vendor/github.com/pterm/pterm/box_printer.go
--- old/vendor/github.com/pterm/pterm/box_printer.go    2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/pterm/pterm/box_printer.go    2025-06-09 
23:57:08.000000000 +0200
@@ -195,6 +195,16 @@
        return &p
 }
 
+// WithVerticalPadding returns a new box with a specific TopPadding and 
BottomPadding.
+func (p BoxPrinter) WithVerticalPadding(padding int) *BoxPrinter {
+       if padding < 0 {
+               padding = 0
+       }
+       p.TopPadding = padding
+       p.BottomPadding = padding
+       return &p
+}
+
 // WithRightPadding returns a new box with a specific RightPadding.
 func (p BoxPrinter) WithRightPadding(padding int) *BoxPrinter {
        if padding < 0 {
@@ -213,6 +223,28 @@
        return &p
 }
 
+// WithHorizontalPadding returns a new box with a specific LeftPadding and 
RightPadding.
+func (p BoxPrinter) WithHorizontalPadding(padding int) *BoxPrinter {
+       if padding < 0 {
+               padding = 0
+       }
+       p.LeftPadding = padding
+       p.RightPadding = padding
+       return &p
+}
+
+// WithPadding returns a new box with a specific padding on all directions.
+func (p BoxPrinter) WithPadding(padding int) *BoxPrinter {
+       if padding < 0 {
+               padding = 0
+       }
+       p.TopPadding = padding
+       p.BottomPadding = padding
+       p.LeftPadding = padding
+       p.RightPadding = padding
+       return &p
+}
+
 // WithWriter sets the custom Writer.
 func (p BoxPrinter) WithWriter(writer io.Writer) *BoxPrinter {
        p.Writer = writer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/pterm/pterm/interactive_multiselect_printer.go 
new/vendor/github.com/pterm/pterm/interactive_multiselect_printer.go
--- old/vendor/github.com/pterm/pterm/interactive_multiselect_printer.go        
2025-05-19 16:52:09.000000000 +0200
+++ new/vendor/github.com/pterm/pterm/interactive_multiselect_printer.go        
2025-06-09 23:57:08.000000000 +0200
@@ -33,17 +33,18 @@
 
 // InteractiveMultiselectPrinter is a printer for interactive multiselect 
menus.
 type InteractiveMultiselectPrinter struct {
-       DefaultText     string
-       TextStyle       *Style
-       Options         []string
-       OptionStyle     *Style
-       DefaultOptions  []string
-       MaxHeight       int
-       Selector        string
-       SelectorStyle   *Style
-       Filter          bool
-       Checkmark       *Checkmark
-       OnInterruptFunc func()
+       DefaultText         string
+       TextStyle           *Style
+       Options             []string
+       OptionStyle         *Style
+       DefaultOptions      []string
+       MaxHeight           int
+       Selector            string
+       SelectorStyle       *Style
+       Filter              bool
+       Checkmark           *Checkmark
+       OnInterruptFunc     func()
+       ShowSelectedOptions bool
 
        selectedOption        int
        selectedOptions       []int
@@ -111,12 +112,18 @@
        return &p
 }
 
-// OnInterrupt sets the function to execute on exit of the input reader
+// WithOnInterruptFunc sets the function to execute on exit of the input reader
 func (p InteractiveMultiselectPrinter) WithOnInterruptFunc(exitFunc func()) 
*InteractiveMultiselectPrinter {
        p.OnInterruptFunc = exitFunc
        return &p
 }
 
+// WithShowSelectedOptions shows the selected options at the bottom if the menu
+func (p InteractiveMultiselectPrinter) WithShowSelectedOptions(b ...bool) 
*InteractiveMultiselectPrinter {
+       p.ShowSelectedOptions = internal.WithBoolean(b)
+       return &p
+}
+
 // Show shows the interactive multiselect menu and returns the selected entry.
 func (p *InteractiveMultiselectPrinter) Show(text ...string) ([]string, error) 
{
        // should be the first defer statement to make sure it is executed last
@@ -380,9 +387,19 @@
 
        help := fmt.Sprintf("%s: %s | %s: %s | left: %s | right: %s", 
p.KeySelect, Bold.Sprint("select"), p.KeyConfirm, Bold.Sprint("confirm"), 
Bold.Sprint("none"), Bold.Sprint("all"))
        if p.Filter {
-               help += fmt.Sprintf("| type to %s", Bold.Sprint("filter"))
+               help += fmt.Sprintf(" | type to %s", Bold.Sprint("filter"))
+       }
+       content.WriteString(ThemeDefault.SecondaryStyle.Sprintfln(help))
+
+       // Optionally, add selected options to the menu
+       if p.ShowSelectedOptions && len(p.selectedOptions) > 0 {
+               selected := make([]string, len(p.selectedOptions))
+               for i, optIdx := range p.selectedOptions {
+                       selected[i] = p.Options[optIdx]
+               }
+
+               
content.WriteString(ThemeDefault.SecondaryStyle.Sprint("Selected: ") + 
Green(strings.Join(selected, Gray(", "))) + "\n")
        }
-       content.WriteString(ThemeDefault.SecondaryStyle.Sprintfln("%s", help))
 
        return content.String()
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/pterm/pterm/logger.go 
new/vendor/github.com/pterm/pterm/logger.go
--- old/vendor/github.com/pterm/pterm/logger.go 2025-05-19 16:52:09.000000000 
+0200
+++ new/vendor/github.com/pterm/pterm/logger.go 2025-06-09 23:57:08.000000000 
+0200
@@ -3,6 +3,7 @@
 import (
        "encoding/json"
        "io"
+       "log/slog"
        "os"
        "path/filepath"
        "runtime"
@@ -394,7 +395,11 @@
        m := make(map[string]any)
 
        for _, arg := range args {
-               m[arg.Key] = arg.Value
+               v := arg.Value
+               if sv, ok := arg.Value.(slog.Value); ok {
+                       v = sv.Any()
+               }
+               m[arg.Key] = v
        }
 
        return m
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/pterm/pterm/multi_live_printer.go 
new/vendor/github.com/pterm/pterm/multi_live_printer.go
--- old/vendor/github.com/pterm/pterm/multi_live_printer.go     2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/pterm/pterm/multi_live_printer.go     2025-06-09 
23:57:08.000000000 +0200
@@ -1,12 +1,13 @@
 package pterm
 
 import (
-       "atomicgo.dev/schedule"
        "bytes"
        "io"
        "os"
        "strings"
        "time"
+
+       "atomicgo.dev/schedule"
 )
 
 var DefaultMultiPrinter = MultiPrinter{
@@ -59,18 +60,20 @@
                s = strings.Trim(s, "\n")
 
                parts := strings.Split(s, "\r") // only get the last override
-               s = parts[len(parts)-1]
 
-               // check if s is empty, if so get one part before, repeat until 
not empty
-               for s == "" {
+               // check if the last part is empty, if so remove it, repeat 
until not
+               // empty. If there is no part left, don't do anything
+               for len(parts) > 0 && parts[len(parts)-1] == "" {
                        parts = parts[:len(parts)-1]
-                       s = parts[len(parts)-1]
                }
 
-               s = strings.Trim(s, "\n\r")
-               buffer.WriteString(s)
-               buffer.WriteString("\n")
+               if len(parts) > 0 {
+                       s = strings.Trim(parts[len(parts)-1], "\n\r")
+                       buffer.WriteString(s)
+                       buffer.WriteString("\n")
+               }
        }
+
        return buffer.String()
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/pterm/pterm/print.go 
new/vendor/github.com/pterm/pterm/print.go
--- old/vendor/github.com/pterm/pterm/print.go  2025-05-19 16:52:09.000000000 
+0200
+++ new/vendor/github.com/pterm/pterm/print.go  2025-06-09 23:57:08.000000000 
+0200
@@ -120,6 +120,7 @@
        for _, spinner := range activeSpinnerPrinters {
                if spinner.IsActive && (spinner.Writer == writer || 
spinner.Writer == os.Stderr) {
                        ret += sClearLine()
+
                        ret += Sprinto(a...)
                        printed = true
                }
@@ -162,6 +163,11 @@
                return
        }
 
+       if RawOutput {
+               Sprint(a...)
+               return
+       }
+
        color.Print("\r" + Sprint(a...))
 }
 
@@ -170,6 +176,7 @@
        if !Output {
                return
        }
+
        if w != nil {
                color.Fprint(w, "\r", Sprint(a...))
        } else {
@@ -183,9 +190,17 @@
 }
 
 func fClearLine(writer io.Writer) {
+       if RawOutput || writer == nil || !Output {
+               return
+       }
+
        Fprinto(writer, strings.Repeat(" ", GetTerminalWidth()))
 }
 
 func sClearLine() string {
+       if RawOutput || !Output {
+               return ""
+       }
+
        return Sprinto(strings.Repeat(" ", GetTerminalWidth()))
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/pterm/pterm/spinner_printer.go 
new/vendor/github.com/pterm/pterm/spinner_printer.go
--- old/vendor/github.com/pterm/pterm/spinner_printer.go        2025-05-19 
16:52:09.000000000 +0200
+++ new/vendor/github.com/pterm/pterm/spinner_printer.go        2025-06-09 
23:57:08.000000000 +0200
@@ -138,7 +138,7 @@
 func (s *SpinnerPrinter) UpdateText(text string) {
        s.Text = text
        if !RawOutput {
-               Fprinto(s.Writer, s.Style.Sprint(s.currentSequence)+" 
"+s.MessageStyle.Sprint(s.Text))
+               Fprinto(s.Writer, "\033[K"+s.Style.Sprint(s.currentSequence)+" 
"+s.MessageStyle.Sprint(s.Text))
        } else {
                Fprintln(s.Writer, s.Text)
        }
@@ -154,9 +154,7 @@
                s.Text = Sprint(text...)
        }
 
-       if RawOutput {
-               Fprintln(s.Writer, s.Text)
-       }
+       Fprintln(s.Writer, s.Text)
 
        go func() {
                for s.IsActive {
@@ -185,7 +183,7 @@
 // Stop terminates the SpinnerPrinter immediately.
 // The SpinnerPrinter will not resolve into anything.
 func (s *SpinnerPrinter) Stop() error {
-       if !s.IsActive {
+       if !s.IsActive || RawOutput {
                return nil
        }
        s.IsActive = false
@@ -226,7 +224,9 @@
        if len(message) == 0 {
                message = []any{s.Text}
        }
+
        fClearLine(s.Writer)
+
        Fprinto(s.Writer, s.InfoPrinter.Sprint(message...))
        _ = s.Stop()
 }
@@ -241,7 +241,9 @@
        if len(message) == 0 {
                message = []any{s.Text}
        }
+
        fClearLine(s.Writer)
+
        Fprinto(s.Writer, s.SuccessPrinter.Sprint(message...))
        _ = s.Stop()
 }
@@ -256,7 +258,9 @@
        if len(message) == 0 {
                message = []any{s.Text}
        }
+
        fClearLine(s.Writer)
+
        Fprinto(s.Writer, s.FailPrinter.Sprint(message...))
        _ = s.Stop()
 }
@@ -271,7 +275,9 @@
        if len(message) == 0 {
                message = []any{s.Text}
        }
+
        fClearLine(s.Writer)
+
        Fprinto(s.Writer, s.WarningPrinter.Sprint(message...))
        _ = s.Stop()
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2025-05-19 16:52:09.000000000 +0200
+++ new/vendor/modules.txt      2025-06-09 23:57:08.000000000 +0200
@@ -9,7 +9,7 @@
 # atomicgo.dev/schedule v0.1.0
 ## explicit; go 1.18
 atomicgo.dev/schedule
-# github.com/containerd/console v1.0.3
+# github.com/containerd/console v1.0.5
 ## explicit; go 1.13
 github.com/containerd/console
 # github.com/go-ini/ini v1.67.0
@@ -30,8 +30,8 @@
 # github.com/mattn/go-runewidth v0.0.16
 ## explicit; go 1.9
 github.com/mattn/go-runewidth
-# github.com/pterm/pterm v0.12.80
-## explicit; go 1.21
+# github.com/pterm/pterm v0.12.81
+## explicit; go 1.23.0
 github.com/pterm/pterm
 github.com/pterm/pterm/internal
 # github.com/rivo/uniseg v0.4.7
@@ -42,7 +42,7 @@
 # github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
 ## explicit; go 1.19
 github.com/xo/terminfo
-# golang.org/x/net v0.40.0
+# golang.org/x/net v0.41.0
 ## explicit; go 1.23.0
 golang.org/x/net/websocket
 # golang.org/x/sys v0.33.0
@@ -53,7 +53,7 @@
 # golang.org/x/term v0.32.0
 ## explicit; go 1.23.0
 golang.org/x/term
-# golang.org/x/text v0.25.0
+# golang.org/x/text v0.26.0
 ## explicit; go 1.23.0
 golang.org/x/text/cases
 golang.org/x/text/internal

Reply via email to