Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package melange for openSUSE:Factory checked 
in at 2025-12-16 15:53:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/melange (Old)
 and      /work/SRC/openSUSE:Factory/.melange.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "melange"

Tue Dec 16 15:53:43 2025 rev:127 rq:1322901 version:0.37.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/melange/melange.changes  2025-12-11 
18:43:06.045908445 +0100
+++ /work/SRC/openSUSE:Factory/.melange.new.1939/melange.changes        
2025-12-16 16:00:06.152565476 +0100
@@ -1,0 +2,11 @@
+Mon Dec 15 05:53:14 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.37.0:
+  * linter:tempdir: Relax check for /run directories slightly
+  * linter:tempdir: Consider directories too
+  * linter: Refactor so that individual linters can consider
+    directories
+  * feat: add TESTING environment variable feature gate for
+    microvm-init (#2264)
+
+-------------------------------------------------------------------

Old:
----
  melange-0.36.0.obscpio

New:
----
  melange-0.37.0.obscpio

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

Other differences:
------------------
++++++ melange.spec ++++++
--- /var/tmp/diff_new_pack.grh3J5/_old  2025-12-16 16:00:08.376658815 +0100
+++ /var/tmp/diff_new_pack.grh3J5/_new  2025-12-16 16:00:08.376658815 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           melange
-Version:        0.36.0
+Version:        0.37.0
 Release:        0
 Summary:        Build APKs from source code
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.grh3J5/_old  2025-12-16 16:00:08.428660997 +0100
+++ /var/tmp/diff_new_pack.grh3J5/_new  2025-12-16 16:00:08.432661165 +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.36.0</param>
+    <param name="revision">v0.37.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.grh3J5/_old  2025-12-16 16:00:08.460662340 +0100
+++ /var/tmp/diff_new_pack.grh3J5/_new  2025-12-16 16:00:08.464662508 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/chainguard-dev/melange</param>
-              <param 
name="changesrevision">c32e57daa58da05d589ec801b6c5c4c3086a83f9</param></service></servicedata>
+              <param 
name="changesrevision">70848dbbf4972daa018e43ce951faacc75a60a86</param></service></servicedata>
 (No newline at EOF)
 

++++++ melange-0.36.0.obscpio -> melange-0.37.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/container/qemu_runner.go 
new/melange-0.37.0/pkg/container/qemu_runner.go
--- old/melange-0.36.0/pkg/container/qemu_runner.go     2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/container/qemu_runner.go     2025-12-11 
19:04:59.000000000 +0100
@@ -717,7 +717,22 @@
        // panic=-1 ensures that if the init fails, we immediately exit the 
machine
        // Add default SSH keys to the VM
        sshkey := base64.StdEncoding.EncodeToString(pubKey)
-       baseargs = append(baseargs, "-append", kernelConsole+" nomodeset 
random.trust_cpu=on panic=-1 sshkey="+sshkey+" melange_qemu_runner=1")
+
+       // Build kernel command line arguments
+       kernelArgs := kernelConsole + " nomodeset random.trust_cpu=on panic=-1 
sshkey=" + sshkey + " melange_qemu_runner=1"
+
+       // Check for TESTING environment variable and pass it to microvm-init
+       // TESTING must be a number (0 for disabled, non-zero for enabled)
+       if testingValue, ok := os.LookupEnv("TESTING"); ok {
+               if _, err := strconv.Atoi(testingValue); err == nil {
+                       log.Infof("qemu: TESTING env set to %s, passing to 
microvm-init via kernel cmdline", testingValue)
+                       kernelArgs += " melange.testing=" + testingValue
+               } else {
+                       log.Warnf("qemu: TESTING env must be a number, ignoring 
invalid value: %s", testingValue)
+               }
+       }
+
+       baseargs = append(baseargs, "-append", kernelArgs)
        // we will *not* mount workspace using qemu, this will use 9pfs which 
is network-based, and will
        // kill all performances (lots of small files)
        // instead we will copy back the finished workspace artifacts when done.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linter.go 
new/melange-0.37.0/pkg/linter/linter.go
--- old/melange-0.36.0/pkg/linter/linter.go     2025-12-09 09:15:58.000000000 
+0100
+++ new/melange-0.37.0/pkg/linter/linter.go     2025-12-11 19:04:59.000000000 
+0100
@@ -101,7 +101,7 @@
        },
        "tempdir": {
                LinterFunc:      linters.TempDirLinter,
-               Explain:         "Remove any offending files in temporary dirs 
in the pipeline",
+               Explain:         "Remove any offending files in temporary dirs 
in the pipeline, or add a /usr/lib/tmpfiles.d/ snippet in the case of dirs 
under /run/",
                defaultBehavior: Require,
        },
        "usrlocal": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/common.go 
new/melange-0.37.0/pkg/linter/linters/common.go
--- old/melange-0.36.0/pkg/linter/linters/common.go     2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/common.go     2025-12-11 
19:04:59.000000000 +0100
@@ -30,14 +30,14 @@
        IsDocumentationFileRegex = 
regexp.MustCompile(`(?:READ(?:\.?ME)?|TODO|CREDITS|\.(?:md|docx?|rst|[0-9][a-z]))$`)
        IsObjectFileRegex        = regexp.MustCompile(`\.(a|so|dylib)(\..*)?`)
        IsSharedObjectFileRegex  = regexp.MustCompile(`\.so(?:\.[0-9]+)*$`)
-       IsTempDirRegex           = regexp.MustCompile("^(var/)?(tmp|run)/")
+       IsTempDirRegex           = regexp.MustCompile("^(var/)?tmp/")
        ManRegex                 = 
regexp.MustCompile(`^usr/(?:local/)?share/man(?:/man[0-9][^/]*)?(?:/[^/]+\.[0-9][^/]*(?:\.(?:gz|bz2|xz|lzma|Z))?)?$|^usr/man(?:/man[0-9][^/]*)?(?:/[^/]+\.[0-9][^/]*(?:\.(?:gz|bz2|xz|lzma|Z))?)?$`)
        PkgconfDirRegex          = 
regexp.MustCompile("^usr/(lib|share)/pkgconfig/")
 )
 
 // AllPaths walks the filesystem and collects all paths matching the predicate,
 // returning a structured error if any paths are found.
-func AllPaths(ctx context.Context, pkgname string, fsys fs.FS, predicate 
func(path string) bool, messageFunc func(pkgname string, paths []string) 
string) error {
+func AllPaths(ctx context.Context, pkgname string, fsys fs.FS, predicate 
func(path string, d fs.DirEntry) bool, messageFunc func(pkgname string, paths 
[]string) string) error {
        var matchedPaths []string
 
        err := fs.WalkDir(fsys, ".", func(path string, d fs.DirEntry, err 
error) error {
@@ -47,10 +47,7 @@
                if err != nil {
                        return err
                }
-               if d.IsDir() {
-                       return nil
-               }
-               if predicate(path) {
+               if predicate(path, d) {
                        matchedPaths = append(matchedPaths, path)
                }
                return nil
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/cuda.go 
new/melange-0.37.0/pkg/linter/linters/cuda.go
--- old/melange-0.36.0/pkg/linter/linters/cuda.go       2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/cuda.go       2025-12-11 
19:04:59.000000000 +0100
@@ -24,7 +24,7 @@
 
 func CudaDriverLibLinter(ctx context.Context, _ *config.Configuration, pkgname 
string, fsys fs.FS) error {
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return 
IsCudaDriverLibRegex.MatchString(path) },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
IsCudaDriverLibRegex.MatchString(path) },
                func(pkgname string, paths []string) string {
                        return fmt.Sprintf("%s contains CUDA driver-specific 
libraries", pkgname)
                },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/dev.go 
new/melange-0.37.0/pkg/linter/linters/dev.go
--- old/melange-0.36.0/pkg/linter/linters/dev.go        2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/dev.go        2025-12-11 
19:04:59.000000000 +0100
@@ -25,7 +25,7 @@
 
 func DevLinter(ctx context.Context, _ *config.Configuration, pkgname string, 
fsys fs.FS) error {
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return strings.HasPrefix(path, "dev/") 
},
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
strings.HasPrefix(path, "dev/") },
                func(pkgname string, paths []string) string { return 
fmt.Sprintf("%s writes to /dev", pkgname) },
        )
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/dll.go 
new/melange-0.37.0/pkg/linter/linters/dll.go
--- old/melange-0.36.0/pkg/linter/linters/dll.go        2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/dll.go        2025-12-11 
19:04:59.000000000 +0100
@@ -29,7 +29,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return filepath.Ext(path) == ".dll" },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
filepath.Ext(path) == ".dll" },
                func(pkgname string, paths []string) string {
                        fileWord := "file"
                        if len(paths) > 1 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/documentation.go 
new/melange-0.37.0/pkg/linter/linters/documentation.go
--- old/melange-0.36.0/pkg/linter/linters/documentation.go      2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/documentation.go      2025-12-11 
19:04:59.000000000 +0100
@@ -28,7 +28,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return 
IsDocumentationFileRegex.MatchString(path) },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
IsDocumentationFileRegex.MatchString(path) },
                func(pkgname string, paths []string) string {
                        fileWord := "file"
                        if len(paths) > 1 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/dylib.go 
new/melange-0.37.0/pkg/linter/linters/dylib.go
--- old/melange-0.36.0/pkg/linter/linters/dylib.go      2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/dylib.go      2025-12-11 
19:04:59.000000000 +0100
@@ -29,7 +29,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return filepath.Ext(path) == ".dylib" 
},
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
filepath.Ext(path) == ".dylib" },
                func(pkgname string, paths []string) string {
                        fileWord := "file"
                        if len(paths) > 1 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/infodir.go 
new/melange-0.37.0/pkg/linter/linters/infodir.go
--- old/melange-0.36.0/pkg/linter/linters/infodir.go    2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/infodir.go    2025-12-11 
19:04:59.000000000 +0100
@@ -25,7 +25,9 @@
 
 func InfodirLinter(ctx context.Context, _ *config.Configuration, pkgname 
string, fsys fs.FS) error {
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return strings.HasPrefix(path, 
"usr/share/info/dir/") },
+               func(path string, d fs.DirEntry) bool {
+                       return !d.IsDir() && strings.HasPrefix(path, 
"usr/share/info/dir/")
+               },
                func(pkgname string, paths []string) string {
                        return fmt.Sprintf("%s writes to /usr/share/info/dir/", 
pkgname)
                },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/lddcheck.go 
new/melange-0.37.0/pkg/linter/linters/lddcheck.go
--- old/melange-0.36.0/pkg/linter/linters/lddcheck.go   2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/lddcheck.go   2025-12-11 
19:04:59.000000000 +0100
@@ -59,7 +59,7 @@
 
        // Collect all shared object files
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return 
IsSharedObjectFileRegex.MatchString(path) },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
IsSharedObjectFileRegex.MatchString(path) },
                func(pkgname string, paths []string) string {
                        if cfg == nil {
                                return fmt.Sprintf("%s contains shared objects 
but missing .melange.yaml", pkgname)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/maninfo.go 
new/melange-0.37.0/pkg/linter/linters/maninfo.go
--- old/melange-0.36.0/pkg/linter/linters/maninfo.go    2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/maninfo.go    2025-12-11 
19:04:59.000000000 +0100
@@ -28,7 +28,9 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return ManRegex.MatchString(path) || 
InfoRegex.MatchString(path) },
+               func(path string, d fs.DirEntry) bool {
+                       return !d.IsDir() && (ManRegex.MatchString(path) || 
InfoRegex.MatchString(path))
+               },
                func(pkgname string, paths []string) string {
                        fileWord := "file"
                        if len(paths) > 1 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/object.go 
new/melange-0.37.0/pkg/linter/linters/object.go
--- old/melange-0.36.0/pkg/linter/linters/object.go     2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/object.go     2025-12-11 
19:04:59.000000000 +0100
@@ -25,7 +25,7 @@
 
 func ObjectLinter(ctx context.Context, _ *config.Configuration, pkgname 
string, fsys fs.FS) error {
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return filepath.Ext(path) == ".o" },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
filepath.Ext(path) == ".o" },
                func(pkgname string, paths []string) string {
                        fileWord := "file"
                        if len(paths) > 1 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/opt.go 
new/melange-0.37.0/pkg/linter/linters/opt.go
--- old/melange-0.36.0/pkg/linter/linters/opt.go        2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/opt.go        2025-12-11 
19:04:59.000000000 +0100
@@ -28,7 +28,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return strings.HasPrefix(path, "opt/") 
},
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
strings.HasPrefix(path, "opt/") },
                func(pkgname string, paths []string) string { return 
fmt.Sprintf("%s writes to /opt", pkgname) },
        )
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/pkgconf.go 
new/melange-0.37.0/pkg/linter/linters/pkgconf.go
--- old/melange-0.36.0/pkg/linter/linters/pkgconf.go    2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/pkgconf.go    2025-12-11 
19:04:59.000000000 +0100
@@ -59,7 +59,7 @@
 
        // Collect all pkgconfig files
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return 
PkgconfDirRegex.MatchString(path) },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
PkgconfDirRegex.MatchString(path) },
                func(pkgname string, paths []string) string {
                        if cfg == nil {
                                return fmt.Sprintf("%s contains pkgconfig files 
but missing .melange.yaml", pkgname)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/sbom.go 
new/melange-0.37.0/pkg/linter/linters/sbom.go
--- old/melange-0.36.0/pkg/linter/linters/sbom.go       2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/sbom.go       2025-12-11 
19:04:59.000000000 +0100
@@ -26,8 +26,8 @@
 
 func SbomLinter(ctx context.Context, _ *config.Configuration, pkgname string, 
fsys fs.FS) error {
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool {
-                       return filepath.Dir(path) == "var/lib/db/sbom" && 
!strings.HasSuffix(path, ".spdx.json")
+               func(path string, d fs.DirEntry) bool {
+                       return !d.IsDir() && filepath.Dir(path) == 
"var/lib/db/sbom" && !strings.HasSuffix(path, ".spdx.json")
                },
                func(pkgname string, paths []string) string {
                        return fmt.Sprintf("%s writes to var/lib/db/sbom", 
pkgname)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/srv.go 
new/melange-0.37.0/pkg/linter/linters/srv.go
--- old/melange-0.36.0/pkg/linter/linters/srv.go        2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/srv.go        2025-12-11 
19:04:59.000000000 +0100
@@ -28,7 +28,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return strings.HasPrefix(path, "srv/") 
},
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
strings.HasPrefix(path, "srv/") },
                func(pkgname string, paths []string) string { return 
fmt.Sprintf("%s writes to /srv", pkgname) },
        )
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/staticarchive.go 
new/melange-0.37.0/pkg/linter/linters/staticarchive.go
--- old/melange-0.36.0/pkg/linter/linters/staticarchive.go      2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/staticarchive.go      2025-12-11 
19:04:59.000000000 +0100
@@ -30,7 +30,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return filepath.Ext(path) == ".a" },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
filepath.Ext(path) == ".a" },
                func(pkgname string, paths []string) string {
                        fileWord := "archive"
                        if len(paths) > 1 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/tempdir.go 
new/melange-0.37.0/pkg/linter/linters/tempdir.go
--- old/melange-0.36.0/pkg/linter/linters/tempdir.go    2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/tempdir.go    2025-12-11 
19:04:59.000000000 +0100
@@ -18,13 +18,50 @@
        "context"
        "fmt"
        "io/fs"
+       "strings"
 
        "chainguard.dev/melange/pkg/config"
 )
 
 func TempDirLinter(ctx context.Context, _ *config.Configuration, pkgname 
string, fsys fs.FS) error {
+       hasTmpFilesSnippet := false
+       err := fs.WalkDir(fsys, ".", func(path string, d fs.DirEntry, err 
error) error {
+               if err := ctx.Err(); err != nil {
+                       return err
+               }
+               if err != nil {
+                       return err
+               }
+               if strings.HasPrefix(path, "usr/lib/tmpfiles.d/") {
+                       hasTmpFilesSnippet = true
+                       return fs.SkipAll
+               }
+               return nil
+       })
+       if err != nil {
+               return err
+       }
+
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return 
IsTempDirRegex.MatchString(path) },
+               func(path string, d fs.DirEntry) bool {
+                       // Non-directories in /tmp/ or /var/tmp/ are errors.
+                       if !d.IsDir() && IsTempDirRegex.MatchString(path) {
+                               return true
+                       }
+                       // Anything in /var/run/ is an error.
+                       if strings.HasPrefix(path, "var/run/") {
+                               return true
+                       }
+                       if strings.HasPrefix(path, "run/") {
+                               // Non-directories in /run/ are an error.
+                               if !d.IsDir() {
+                                       return true
+                               }
+                               // Directories in /run/ are an error if there 
are no tmpfiles.d snippets.
+                               return !hasTmpFilesSnippet
+                       }
+                       return false
+               },
                func(pkgname string, paths []string) string { return 
fmt.Sprintf("%s writes to a temp dir", pkgname) },
        )
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/usrlocal.go 
new/melange-0.37.0/pkg/linter/linters/usrlocal.go
--- old/melange-0.36.0/pkg/linter/linters/usrlocal.go   2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/usrlocal.go   2025-12-11 
19:04:59.000000000 +0100
@@ -28,7 +28,7 @@
                return nil
        }
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return strings.HasPrefix(path, 
"usr/local/") },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
strings.HasPrefix(path, "usr/local/") },
                func(pkgname string, paths []string) string {
                        return fmt.Sprintf("%s contains /usr/local path in 
non-compat package", pkgname)
                },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.36.0/pkg/linter/linters/varempty.go 
new/melange-0.37.0/pkg/linter/linters/varempty.go
--- old/melange-0.36.0/pkg/linter/linters/varempty.go   2025-12-09 
09:15:58.000000000 +0100
+++ new/melange-0.37.0/pkg/linter/linters/varempty.go   2025-12-11 
19:04:59.000000000 +0100
@@ -25,7 +25,7 @@
 
 func VarEmptyLinter(ctx context.Context, _ *config.Configuration, pkgname 
string, fsys fs.FS) error {
        return AllPaths(ctx, pkgname, fsys,
-               func(path string) bool { return strings.HasPrefix(path, 
"var/empty/") },
+               func(path string, d fs.DirEntry) bool { return !d.IsDir() && 
strings.HasPrefix(path, "var/empty/") },
                func(pkgname string, paths []string) string { return 
fmt.Sprintf("%s writes to /var/empty", pkgname) },
        )
 }

++++++ melange.obsinfo ++++++
--- /var/tmp/diff_new_pack.grh3J5/_old  2025-12-16 16:00:09.304697762 +0100
+++ /var/tmp/diff_new_pack.grh3J5/_new  2025-12-16 16:00:09.308697930 +0100
@@ -1,5 +1,5 @@
 name: melange
-version: 0.36.0
-mtime: 1765268158
-commit: c32e57daa58da05d589ec801b6c5c4c3086a83f9
+version: 0.37.0
+mtime: 1765476299
+commit: 70848dbbf4972daa018e43ce951faacc75a60a86
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/melange/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.melange.new.1939/vendor.tar.gz differ: char 133, 
line 2

Reply via email to