Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package docker-compose for openSUSE:Factory checked in at 2023-01-10 14:59:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/docker-compose (Old) and /work/SRC/openSUSE:Factory/.docker-compose.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "docker-compose" Tue Jan 10 14:59:56 2023 rev:15 rq:1057203 version:2.15.1 Changes: -------- --- /work/SRC/openSUSE:Factory/docker-compose/docker-compose.changes 2023-01-05 17:11:47.240506747 +0100 +++ /work/SRC/openSUSE:Factory/.docker-compose.new.32243/docker-compose.changes 2023-01-10 15:00:23.601403308 +0100 @@ -1,0 +2,10 @@ +Tue Jan 10 05:50:49 UTC 2023 - ka...@b1-systems.de + +- Update to version 2.15.1: + * Don't share the options map + * don't filter by services if no filter was set + * use a simpler prompt implementation when we lack a terminal + * fix CVE-2022-27664 and CVE-2022-32149 high-risk vulnerability + * add support for uts namespace + +------------------------------------------------------------------- Old: ---- compose-2.15.0.tar.gz New: ---- compose-2.15.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ docker-compose.spec ++++++ --- /var/tmp/diff_new_pack.CYOzUL/_old 2023-01-10 15:00:24.321407444 +0100 +++ /var/tmp/diff_new_pack.CYOzUL/_new 2023-01-10 15:00:24.329407489 +0100 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: docker-compose -Version: 2.15.0 +Version: 2.15.1 Release: 0 Summary: Define and run multi-container applications with Docker License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.CYOzUL/_old 2023-01-10 15:00:24.389407834 +0100 +++ /var/tmp/diff_new_pack.CYOzUL/_new 2023-01-10 15:00:24.393407857 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/docker/compose</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v2.15.0</param> + <param name="revision">v2.15.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> @@ -16,7 +16,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">compose-2.15.0.tar.gz</param> + <param name="archive">compose-2.15.1.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.CYOzUL/_old 2023-01-10 15:00:24.421408018 +0100 +++ /var/tmp/diff_new_pack.CYOzUL/_new 2023-01-10 15:00:24.425408041 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/docker/compose</param> - <param name="changesrevision">f6f29a4438f4209c4155ac87c5ac8e5bcf696f8d</param></service></servicedata> + <param name="changesrevision">00c60da331e7a70af922b1afcce5616c8ab6df36</param></service></servicedata> (No newline at EOF) ++++++ compose-2.15.0.tar.gz -> compose-2.15.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/go.mod new/compose-2.15.1/go.mod --- old/compose-2.15.0/go.mod 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/go.mod 2023-01-09 12:13:48.000000000 +0100 @@ -5,7 +5,7 @@ require ( github.com/AlecAivazis/survey/v2 v2.3.6 github.com/buger/goterm v1.0.4 - github.com/compose-spec/compose-go v1.8.1 + github.com/compose-spec/compose-go v1.8.2 github.com/containerd/console v1.0.3 github.com/containerd/containerd v1.6.14 github.com/distribution/distribution/v3 v3.0.0-20221201083218-92d136e113cf @@ -117,11 +117,11 @@ go.opentelemetry.io/otel/trace v1.11.2 // indirect go.opentelemetry.io/proto/otlp v0.12.0 // indirect golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88 // indirect - golang.org/x/net v0.0.0-20220906165146-f3363e06e74c // indirect + golang.org/x/net v0.4.0 // indirect golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect - golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64 // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect - golang.org/x/text v0.3.7 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/term v0.3.0 // indirect + golang.org/x/text v0.6.0 // indirect golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/go.sum new/compose-2.15.1/go.sum --- old/compose-2.15.0/go.sum 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/go.sum 2023-01-09 12:13:48.000000000 +0100 @@ -115,8 +115,8 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/compose-spec/compose-go v1.8.1 h1:TiWxTWtaxUe3XsWMyl7vo8s9IYxlrgtp0pZ+COBMjEw= -github.com/compose-spec/compose-go v1.8.1/go.mod h1:Tb5Ae2PsYN3GTqYqzl2IRbTPiJtPZZjMw8UKUvmehFk= +github.com/compose-spec/compose-go v1.8.2 h1:sUQvDxnPgpcOyoxC/lz7mFTrTlHeZ6LWyuASYetkOqw= +github.com/compose-spec/compose-go v1.8.2/go.mod h1:Tb5Ae2PsYN3GTqYqzl2IRbTPiJtPZZjMw8UKUvmehFk= github.com/containerd/cgroups v1.0.4 h1:jN/mbWBEaz+T1pi5OFtnkQ+8qnmEbAr1Oo1FRm5B0dA= github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= @@ -817,8 +817,8 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220906165146-f3363e06e74c h1:yKufUcDwucU5urd+50/Opbt4AYpqthk7wHpHok8f1lo= -golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= +golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -903,14 +903,14 @@ golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64 h1:UiNENfZ8gDvpiWw7IpOMQ27spWmThO1RwwdQVbJahJM= -golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -918,8 +918,8 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/compose/build.go new/compose-2.15.1/pkg/compose/build.go --- old/compose-2.15.0/pkg/compose/build.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/compose/build.go 2023-01-09 12:13:48.000000000 +0100 @@ -48,7 +48,6 @@ } func (s *composeService) build(ctx context.Context, project *types.Project, options api.BuildOptions) error { - opts := map[string]build.Options{} args := flatten(options.Args.Resolve(envResolver(project.Environment))) return InDependencyOrder(ctx, project, func(ctx context.Context, name string) error { @@ -92,7 +91,7 @@ Attrs: map[string]string{}, }} } - opts[imageName] = buildOptions + opts := map[string]build.Options{imageName: buildOptions} _, err = s.doBuild(ctx, project, opts, options.Progress) return err }, func(traversal *graphTraversal) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/compose/create.go new/compose-2.15.1/pkg/compose/create.go --- old/compose-2.15.0/pkg/compose/create.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/compose/create.go 2023-01-09 12:13:48.000000000 +0100 @@ -364,6 +364,7 @@ ExtraHosts: service.ExtraHosts.AsList(), SecurityOpt: securityOpts, UsernsMode: container.UsernsMode(service.UserNSMode), + UTSMode: container.UTSMode(service.Uts), Privileged: service.Privileged, PidMode: container.PidMode(service.Pid), Tmpfs: tmpfs, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/compose/ps.go new/compose-2.15.1/pkg/compose/ps.go --- old/compose-2.15.0/pkg/compose/ps.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/compose/ps.go 2023-01-09 12:13:48.000000000 +0100 @@ -37,19 +37,9 @@ return nil, err } - project := options.Project - if project == nil { - project, err = s.getProjectWithResources(ctx, containers, projectName) - if err != nil { - return nil, err - } + if len(options.Services) != 0 { + containers = containers.filter(isService(options.Services...)) } - - if len(options.Services) == 0 { - options.Services = project.ServiceNames() - } - - containers = containers.filter(isService(options.Services...)) summary := make([]api.ContainerSummary, len(containers)) eg, ctx := errgroup.WithContext(ctx) for i, container := range containers { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/compose/ps_test.go new/compose-2.15.1/pkg/compose/ps_test.go --- old/compose-2.15.0/pkg/compose/ps_test.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/compose/ps_test.go 2023-01-09 12:13:48.000000000 +0100 @@ -24,12 +24,10 @@ "github.com/golang/mock/gomock" "gotest.tools/v3/assert" - moby "github.com/docker/docker/api/types" - "github.com/docker/docker/api/types/filters" - "github.com/docker/docker/api/types/volume" - compose "github.com/docker/compose/v2/pkg/api" "github.com/docker/compose/v2/pkg/mocks" + moby "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/filters" ) func TestPs(t *testing.T) { @@ -51,8 +49,6 @@ c2, inspect2 := containerDetails("service1", "456", "running", "", 0) c2.Ports = []moby.Port{{PublicPort: 80, PrivatePort: 90, IP: "localhost"}} c3, inspect3 := containerDetails("service2", "789", "exited", "", 130) - api.EXPECT().VolumeList(ctx, gomock.Any()).Return(volume.ListResponse{}, nil) - api.EXPECT().NetworkList(ctx, gomock.Any()).Return([]moby.NetworkResource{}, nil) api.EXPECT().ContainerList(ctx, listOpts).Return([]moby.Container{c1, c2, c3}, nil) api.EXPECT().ContainerInspect(anyCancellableContext(), "123").Return(inspect1, nil) api.EXPECT().ContainerInspect(anyCancellableContext(), "456").Return(inspect2, nil) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/compose/remove.go new/compose-2.15.1/pkg/compose/remove.go --- old/compose-2.15.0/pkg/compose/remove.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/compose/remove.go 2023-01-09 12:13:48.000000000 +0100 @@ -61,7 +61,7 @@ if options.Force { fmt.Fprintln(s.stdout(), msg) } else { - confirm, err := prompt.User{}.Confirm(msg, false) + confirm, err := prompt.NewPrompt(s.stdin(), s.stdout()).Confirm(msg, false) if err != nil { return err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/prompt/prompt.go new/compose-2.15.1/pkg/prompt/prompt.go --- old/compose-2.15.0/pkg/prompt/prompt.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/prompt/prompt.go 2023-01-09 12:13:48.000000000 +0100 @@ -17,42 +17,58 @@ package prompt import ( + "fmt" + "io" + "github.com/AlecAivazis/survey/v2" + "github.com/docker/cli/cli/streams" + "github.com/docker/compose/v2/pkg/utils" ) //go:generate mockgen -destination=./prompt_mock.go -self_package "github.com/docker/compose/v2/pkg/prompt" -package=prompt . UI // UI - prompt user input type UI interface { - Select(message string, options []string) (int, error) - Input(message string, defaultValue string) (string, error) Confirm(message string, defaultValue bool) (bool, error) - Password(message string) (string, error) } -// User - aggregates prompt methods -type User struct{} - -// Select - displays a list -func (u User) Select(message string, options []string) (int, error) { - qs := &survey.Select{ - Message: message, - Options: options, +func NewPrompt(stdin *streams.In, stdout *streams.Out) UI { + if stdin.IsTerminal() { + return User{stdin: streamsFileReader{stdin}, stdout: streamsFileWriter{stdout}} } - var selected int - err := survey.AskOne(qs, &selected, nil) - return selected, err + return Pipe{stdin: stdin, stdout: stdout} } -// Input text with default value -func (u User) Input(message string, defaultValue string) (string, error) { - qs := &survey.Input{ - Message: message, - Default: defaultValue, - } - var s string - err := survey.AskOne(qs, &s, nil) - return s, err +// User - in a terminal +type User struct { + stdout streamsFileWriter + stdin streamsFileReader +} + +// adapt streams.Out to terminal.FileWriter +type streamsFileWriter struct { + stream *streams.Out +} + +func (s streamsFileWriter) Write(p []byte) (n int, err error) { + return s.stream.Write(p) +} + +func (s streamsFileWriter) Fd() uintptr { + return s.stream.FD() +} + +// adapt streams.In to terminal.FileReader +type streamsFileReader struct { + stream *streams.In +} + +func (s streamsFileReader) Read(p []byte) (n int, err error) { + return s.stream.Read(p) +} + +func (s streamsFileReader) Fd() uintptr { + return s.stream.FD() } // Confirm asks for yes or no input @@ -62,17 +78,24 @@ Default: defaultValue, } var b bool - err := survey.AskOne(qs, &b, nil) + err := survey.AskOne(qs, &b, func(options *survey.AskOptions) error { + options.Stdio.In = u.stdin + options.Stdio.Out = u.stdout + return nil + }) return b, err } -// Password implements a text input with masked characters. -func (u User) Password(message string) (string, error) { - qs := &survey.Password{ - Message: message, - } - var p string - err := survey.AskOne(qs, &p, nil) - return p, err +// Pipe - aggregates prompt methods +type Pipe struct { + stdout io.Writer + stdin io.Reader +} +// Confirm asks for yes or no input +func (u Pipe) Confirm(message string, defaultValue bool) (bool, error) { + fmt.Fprint(u.stdout, message) + var answer string + fmt.Scanln(&answer) + return utils.StringToBool(answer), nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/compose-2.15.0/pkg/utils/stringutils.go new/compose-2.15.1/pkg/utils/stringutils.go --- old/compose-2.15.0/pkg/utils/stringutils.go 2023-01-05 09:57:13.000000000 +0100 +++ new/compose-2.15.1/pkg/utils/stringutils.go 2023-01-09 12:13:48.000000000 +0100 @@ -33,6 +33,10 @@ // StringToBool converts a string to a boolean ignoring errors func StringToBool(s string) bool { - b, _ := strconv.ParseBool(strings.ToLower(strings.TrimSpace(s))) + s = strings.ToLower(strings.TrimSpace(s)) + if s == "y" { + return true + } + b, _ := strconv.ParseBool(s) return b } ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/docker-compose/vendor.tar.gz /work/SRC/openSUSE:Factory/.docker-compose.new.32243/vendor.tar.gz differ: char 5, line 1