Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package melange for openSUSE:Factory checked 
in at 2024-12-09 21:11:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/melange (Old)
 and      /work/SRC/openSUSE:Factory/.melange.new.29675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "melange"

Mon Dec  9 21:11:36 2024 rev:51 rq:1229107 version:0.17.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/melange/melange.changes  2024-12-02 
17:00:13.687960918 +0100
+++ /work/SRC/openSUSE:Factory/.melange.new.29675/melange.changes       
2024-12-09 21:12:47.664035512 +0100
@@ -1,0 +2,17 @@
+Sun Dec 08 09:04:12 UTC 2024 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 0.17.3:
+  * fix(sca): Revert recent SCA changes for Ruby
+
+-------------------------------------------------------------------
+Sun Dec 08 08:48:12 UTC 2024 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 0.17.2:
+  * fix(qemu): fix MacOS crosscompile path (#1678)
+  * fix(sca): Don't generate ruby dep when found in shebang
+  * fix(sca_test): Check for ruby-base
+  * fix(sca): Generate dependency for ruby-*-base instead of ruby-*
+  * Improve comment stripping errors
+  * Add package.srcdir substitution to README
+
+-------------------------------------------------------------------

Old:
----
  melange-0.17.1.obscpio

New:
----
  melange-0.17.3.obscpio

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

Other differences:
------------------
++++++ melange.spec ++++++
--- /var/tmp/diff_new_pack.23fWku/_old  2024-12-09 21:12:48.620075512 +0100
+++ /var/tmp/diff_new_pack.23fWku/_new  2024-12-09 21:12:48.624075679 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           melange
-Version:        0.17.1
+Version:        0.17.3
 Release:        0
 Summary:        Build APKs from source code
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.23fWku/_old  2024-12-09 21:12:48.656077018 +0100
+++ /var/tmp/diff_new_pack.23fWku/_new  2024-12-09 21:12:48.660077186 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/chainguard-dev/melange</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.17.1</param>
+    <param name="revision">v0.17.3</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.23fWku/_old  2024-12-09 21:12:48.680078022 +0100
+++ /var/tmp/diff_new_pack.23fWku/_new  2024-12-09 21:12:48.684078190 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/chainguard-dev/melange</param>
-              <param 
name="changesrevision">6d88b8b81475c4c7b2bd7802bf90b8cf2dc3d887</param></service></servicedata>
+              <param 
name="changesrevision">e788406063b83b86bef24ce16665e82495fc77ff</param></service></servicedata>
 (No newline at EOF)
 

++++++ melange-0.17.1.obscpio -> melange-0.17.3.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/README.md new/melange-0.17.3/README.md
--- old/melange-0.17.1/README.md        2024-12-01 21:15:53.000000000 +0100
+++ new/melange-0.17.3/README.md        2024-12-07 05:31:23.000000000 +0100
@@ -149,6 +149,7 @@
 | `${{package.epoch}}`        | Package epoch                                  
                          |
 | `${{package.full-version}}` | `${{package.version}}-r${{package.epoch}}`     
                          |
 | `${{package.description}}`  | Package description                            
                          |
+| `${{package.srcdir}}`       | Package source directory (`--source-dir`)      
                          |
 | `${{targets.outdir}}`       | Directory where targets will be stored         
                          |
 | `${{targets.contextdir}}`   | Directory where targets will be stored for 
main packages and subpackages |
 | `${{targets.destdir}}`      | Directory where targets will be stored for 
main                          |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/docs/md/melange_build.md 
new/melange-0.17.3/docs/md/melange_build.md
--- old/melange-0.17.1/docs/md/melange_build.md 2024-12-01 21:15:53.000000000 
+0100
+++ new/melange-0.17.3/docs/md/melange_build.md 2024-12-07 05:31:23.000000000 
+0100
@@ -36,7 +36,7 @@
       --cache-source string                                     directory or 
bucket used for preloading the cache
       --cleanup                                                 when enabled, 
the temp dir used for the guest will be cleaned up after completion (default 
true)
       --cpu string                                              default CPU 
resources to use for builds
-      --cpumodel string                                         default memory 
resources to use for builds (default "host")
+      --cpumodel string                                         default memory 
resources to use for builds
       --create-build-log                                        creates a 
package.log file containing a list of packages that were built by the command
       --debug                                                   enables debug 
logging of build pipelines
       --debug-runner                                            when enabled, 
the builder pod will persist after the build succeeds or fails
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/docs/md/melange_compile.md 
new/melange-0.17.3/docs/md/melange_compile.md
--- old/melange-0.17.1/docs/md/melange_compile.md       2024-12-01 
21:15:53.000000000 +0100
+++ new/melange-0.17.3/docs/md/melange_compile.md       2024-12-07 
05:31:23.000000000 +0100
@@ -43,10 +43,13 @@
       --env-file string             file to use for preloaded environment 
variables
       --fail-on-lint-warning        turns linter warnings into failures
       --generate-index              whether to generate APKINDEX.tar.gz 
(default true)
+      --git-commit string           commit hash of the git repository 
containing the build config file (defaults to detecting HEAD)
+      --git-repo-url string         URL of the git repository containing the 
build config file (defaults to detecting from configured git remotes)
       --guest-dir string            directory used for the build environment 
guest
   -h, --help                        help for compile
   -i, --interactive                 when enabled, attaches stdin with a tty to 
the pod on failure
   -k, --keyring-append strings      path to extra keys to include in the build 
environment keyring
+      --license string              license to use for the build config file 
itself (default "NOASSERTION")
       --log-policy strings          logging policy to use (default 
[builtin:stderr])
       --memory string               default memory resources to use for builds
       --namespace string            namespace to use in package URLs in SBOM 
(eg wolfi, alpine) (default "unknown")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/build/build.go 
new/melange-0.17.3/pkg/build/build.go
--- old/melange-0.17.1/pkg/build/build.go       2024-12-01 21:15:53.000000000 
+0100
+++ new/melange-0.17.3/pkg/build/build.go       2024-12-07 05:31:23.000000000 
+0100
@@ -207,9 +207,6 @@
        if b.ConfigFileRepositoryCommit == "" {
                return nil, fmt.Errorf("config file repository commit was not 
set")
        }
-       if b.Runner == nil {
-               return nil, fmt.Errorf("no runner was specified")
-       }
 
        parsedCfg, err := config.ParseConfiguration(ctx,
                b.ConfigFile,
@@ -717,6 +714,10 @@
        ctx, span := otel.Tracer("melange").Start(ctx, "BuildPackage")
        defer span.End()
 
+       if b.Runner == nil {
+               return fmt.Errorf("no runner was specified")
+       }
+
        b.summarize(ctx)
 
        namespace := b.Namespace
@@ -779,7 +780,7 @@
 
        log.Infof("evaluating pipelines for package requirements")
        if err := b.Compile(ctx); err != nil {
-               return fmt.Errorf("compiling build: %w", err)
+               return fmt.Errorf("compiling %s: %w", b.ConfigFile, err)
        }
 
        // Filter out any subpackages with false If conditions.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/build/compile.go 
new/melange-0.17.3/pkg/build/compile.go
--- old/melange-0.17.1/pkg/build/compile.go     2024-12-01 21:15:53.000000000 
+0100
+++ new/melange-0.17.3/pkg/build/compile.go     2024-12-07 05:31:23.000000000 
+0100
@@ -50,7 +50,7 @@
 
        // We want to evaluate this but not accumulate its deps.
        if err := ignore.CompilePipelines(ctx, sm, cfg.Pipeline); err != nil {
-               return fmt.Errorf("compiling main pipelines: %w", err)
+               return fmt.Errorf("compiling package %q pipelines: %w", 
t.Package, err)
        }
 
        for i, sp := range cfg.Subpackages {
@@ -103,7 +103,7 @@
                }
 
                if err := test.CompilePipelines(ctx, sm, cfg.Test.Pipeline); 
err != nil {
-                       return fmt.Errorf("compiling main test pipelines: %w", 
err)
+                       return fmt.Errorf("compiling %q test pipelines: %w", 
t.Package, err)
                }
 
                // Append anything the main package test needs.
@@ -126,7 +126,7 @@
        }
 
        if err := c.CompilePipelines(ctx, sm, cfg.Pipeline); err != nil {
-               return fmt.Errorf("compiling main pipelines: %w", err)
+               return fmt.Errorf("compiling %q pipelines: %w", 
cfg.Package.Name, err)
        }
 
        for i, sp := range cfg.Subpackages {
@@ -135,7 +135,7 @@
                if sp.If != "" {
                        sp.If, err = 
util.MutateAndQuoteStringFromMap(sm.Substitutions, sp.If)
                        if err != nil {
-                               return fmt.Errorf("mutating subpackage if: %w", 
err)
+                               return fmt.Errorf("mutating subpackage %q, if: 
%w", sp.Name, err)
                        }
                }
 
@@ -172,7 +172,7 @@
                }
 
                if err := tc.CompilePipelines(ctx, sm, cfg.Test.Pipeline); err 
!= nil {
-                       return fmt.Errorf("compiling main test pipelines: %w", 
err)
+                       return fmt.Errorf("compiling %q test pipelines: %w", 
cfg.Package.Name, err)
                }
 
                te := &b.Configuration.Test.Environment.Contents
@@ -370,6 +370,27 @@
        return nil
 }
 
+func maybeIncludeSyntaxError(runs string, err error) error {
+       var perr syntax.ParseError
+       if !errors.As(err, &perr) {
+               return err
+       }
+
+       line := perr.Pos.Line()
+       lines := strings.Split(runs, "\n")
+       if line <= 0 || line > uint(len(lines)) {
+               return err
+       }
+
+       padding := len("> ") + int(perr.Pos.Col())
+
+       // For example...
+       // 14:13: not a valid test operator: -m
+       // > if [[ uname -m == 'x86_64']]; then
+       //               ^
+       return fmt.Errorf("%w:\n> %s\n%*s", err, lines[line-1], padding, "^")
+}
+
 func stripComments(runs string) (string, error) {
        parser := syntax.NewParser(syntax.KeepComments(false))
        printer := syntax.NewPrinter()
@@ -391,7 +412,7 @@
                builder.WriteRune('\n')
                return perr == nil
        }); err != nil || perr != nil {
-               return "", errors.Join(err, perr)
+               return "", maybeIncludeSyntaxError(runs, errors.Join(err, perr))
        }
 
        return builder.String(), nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/build/compile_test.go 
new/melange-0.17.3/pkg/build/compile_test.go
--- old/melange-0.17.1/pkg/build/compile_test.go        2024-12-01 
21:15:53.000000000 +0100
+++ new/melange-0.17.3/pkg/build/compile_test.go        2024-12-07 
05:31:23.000000000 +0100
@@ -147,4 +147,15 @@
                        }
                })
        }
+
+       wantErr := `1:13: not a valid test operator: -m:
+> if [[ uname -m == 'x86_64']]; then
+              ^`
+
+       got, err := stripComments("if [[ uname -m == 'x86_64']]; then")
+       if err == nil {
+               t.Errorf("expected error, got %q", got)
+       } else if err.Error() != wantErr {
+               t.Errorf("want:\n%s\ngot:\n%s", wantErr, err)
+       }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/build/test.go 
new/melange-0.17.3/pkg/build/test.go
--- old/melange-0.17.1/pkg/build/test.go        2024-12-01 21:15:53.000000000 
+0100
+++ new/melange-0.17.3/pkg/build/test.go        2024-12-07 05:31:23.000000000 
+0100
@@ -343,7 +343,7 @@
 
        log.Infof("evaluating pipelines for package requirements")
        if err := t.Compile(ctx); err != nil {
-               return fmt.Errorf("compiling test pipelines: %w", err)
+               return fmt.Errorf("compiling %s tests: %w", t.ConfigFile, err)
        }
 
        if t.Runner.Name() == container.QemuName {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/cli/build.go 
new/melange-0.17.3/pkg/cli/build.go
--- old/melange-0.17.1/pkg/cli/build.go 2024-12-01 21:15:53.000000000 +0100
+++ new/melange-0.17.3/pkg/cli/build.go 2024-12-07 05:31:23.000000000 +0100
@@ -251,7 +251,7 @@
        cmd.Flags().BoolVarP(&interactive, "interactive", "i", false, "when 
enabled, attaches stdin with a tty to the pod on failure")
        cmd.Flags().BoolVar(&remove, "rm", true, "clean up intermediate 
artifacts (e.g. container images, temp dirs)")
        cmd.Flags().StringVar(&cpu, "cpu", "", "default CPU resources to use 
for builds")
-       cmd.Flags().StringVar(&cpumodel, "cpumodel", "host", "default memory 
resources to use for builds")
+       cmd.Flags().StringVar(&cpumodel, "cpumodel", "", "default memory 
resources to use for builds")
        cmd.Flags().StringVar(&disk, "disk", "", "disk size to use for builds")
        cmd.Flags().StringVar(&memory, "memory", "", "default memory resources 
to use for builds")
        cmd.Flags().DurationVar(&timeout, "timeout", 0, "default timeout for 
builds")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/cli/compile.go 
new/melange-0.17.3/pkg/cli/compile.go
--- old/melange-0.17.1/pkg/cli/compile.go       2024-12-01 21:15:53.000000000 
+0100
+++ new/melange-0.17.3/pkg/cli/compile.go       2024-12-07 05:31:23.000000000 
+0100
@@ -25,6 +25,7 @@
 
        apko_types "chainguard.dev/apko/pkg/build/types"
        "chainguard.dev/melange/pkg/build"
+       "github.com/chainguard-dev/clog"
        "github.com/spf13/cobra"
        "go.opentelemetry.io/otel"
 )
@@ -63,6 +64,9 @@
        var cpu, memory string
        var timeout time.Duration
        var extraPackages []string
+       var configFileGitCommit string
+       var configFileGitRepoURL string
+       var configFileLicense string
 
        cmd := &cobra.Command{
                Use:     "compile",
@@ -72,6 +76,31 @@
                Args:    cobra.MinimumNArgs(0),
                RunE: func(cmd *cobra.Command, args []string) error {
                        ctx := cmd.Context()
+                       log := clog.FromContext(ctx)
+
+                       var buildConfigFilePath string
+                       if len(args) > 0 {
+                               buildConfigFilePath = args[0] // e.g. 
"crane.yaml"
+                       }
+
+                       // Favor explicit, user-provided information for the 
git provenance of the
+                       // melange build definition. As a fallback, detect this 
from local git state.
+                       // Git auto-detection should be "best effort" and not 
fail the build if it
+                       // fails.
+                       if configFileGitCommit == "" {
+                               log.Infof("git commit for build config not 
provided, attempting to detect automatically")
+                               commit, err := detectGitHead(ctx, 
buildConfigFilePath)
+                               if err != nil {
+                                       log.Warnf("unable to detect commit for 
build config file: %v", err)
+                                       configFileGitCommit = "unknown"
+                               } else {
+                                       configFileGitCommit = commit
+                               }
+                       }
+                       if configFileGitRepoURL == "" {
+                               log.Warnf("git repository URL for build config 
not provided")
+                               configFileGitRepoURL = 
"https://unknown/unknown/unknown";
+                       }
 
                        arch := apko_types.ParseArchitecture(archstr)
                        options := []build.Option{
@@ -108,6 +137,9 @@
                                build.WithCPU(cpu),
                                build.WithMemory(memory),
                                build.WithTimeout(timeout),
+                               
build.WithConfigFileRepositoryCommit(configFileGitCommit),
+                               
build.WithConfigFileRepositoryURL(configFileGitRepoURL),
+                               build.WithConfigFileLicense(configFileLicense),
                        }
 
                        if len(args) > 0 {
@@ -176,6 +208,10 @@
        cmd.Flags().StringVar(&memory, "memory", "", "default memory resources 
to use for builds")
        cmd.Flags().DurationVar(&timeout, "timeout", 0, "default timeout for 
builds")
 
+       cmd.Flags().StringVar(&configFileGitCommit, "git-commit", "", "commit 
hash of the git repository containing the build config file (defaults to 
detecting HEAD)")
+       cmd.Flags().StringVar(&configFileGitRepoURL, "git-repo-url", "", "URL 
of the git repository containing the build config file (defaults to detecting 
from configured git remotes)")
+       cmd.Flags().StringVar(&configFileLicense, "license", "NOASSERTION", 
"license to use for the build config file itself")
+
        return cmd
 }
 
@@ -191,7 +227,7 @@
        defer bc.Close(ctx)
 
        if err := bc.Compile(ctx); err != nil {
-               return fmt.Errorf("failed to compile package: %w", err)
+               return fmt.Errorf("failed to compile %s: %w", bc.ConfigFile, 
err)
        }
 
        return json.NewEncoder(os.Stdout).Encode(bc.Configuration)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.17.1/pkg/container/qemu_runner.go 
new/melange-0.17.3/pkg/container/qemu_runner.go
--- old/melange-0.17.1/pkg/container/qemu_runner.go     2024-12-01 
21:15:53.000000000 +0100
+++ new/melange-0.17.3/pkg/container/qemu_runner.go     2024-12-07 
05:31:23.000000000 +0100
@@ -358,14 +358,14 @@
        }
 
        // use kvm on linux, and Hypervisor.framework on macOS
-       if runtime.GOOS == "linux" {
-               if cfg.Arch.ToAPK() != 
apko_types.ParseArchitecture(runtime.GOARCH).ToAPK() {
-                       baseargs = append(baseargs, "-accel", 
"tcg,thread=multi")
-               } else if _, err := os.Stat("/dev/kvm"); err == nil {
+       if cfg.Arch.ToAPK() != 
apko_types.ParseArchitecture(runtime.GOARCH).ToAPK() {
+               baseargs = append(baseargs, "-accel", "tcg,thread=multi")
+       } else {
+               if runtime.GOOS == "linux" {
                        baseargs = append(baseargs, "-accel", "kvm")
+               } else if runtime.GOOS == "darwin" {
+                       baseargs = append(baseargs, "-accel", "hvf")
                }
-       } else if runtime.GOOS == "darwin" {
-               baseargs = append(baseargs, "-accel", "hvf")
        }
 
        if cfg.CPUModel != "" {

++++++ melange.obsinfo ++++++
--- /var/tmp/diff_new_pack.23fWku/_old  2024-12-09 21:12:49.012091913 +0100
+++ /var/tmp/diff_new_pack.23fWku/_new  2024-12-09 21:12:49.012091913 +0100
@@ -1,5 +1,5 @@
 name: melange
-version: 0.17.1
-mtime: 1733084153
-commit: 6d88b8b81475c4c7b2bd7802bf90b8cf2dc3d887
+version: 0.17.3
+mtime: 1733545883
+commit: e788406063b83b86bef24ce16665e82495fc77ff
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/melange/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.melange.new.29675/vendor.tar.gz differ: char 5, 
line 1

Reply via email to