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-07-22 17:15:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/melange (Old)
 and      /work/SRC/openSUSE:Factory/.melange.new.17339 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "melange"

Mon Jul 22 17:15:08 2024 rev:29 rq:1188524 version:0.11.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/melange/melange.changes  2024-07-17 
15:15:57.119827343 +0200
+++ /work/SRC/openSUSE:Factory/.melange.new.17339/melange.changes       
2024-07-22 17:15:25.099068765 +0200
@@ -1,0 +2,6 @@
+Fri Jul 19 05:38:35 UTC 2024 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 0.11.1:
+  * feat(sca): Generate dependency on Ruby when building gems
+
+-------------------------------------------------------------------

Old:
----
  melange-0.11.0.obscpio

New:
----
  melange-0.11.1.obscpio

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

Other differences:
------------------
++++++ melange.spec ++++++
--- /var/tmp/diff_new_pack.dr0fku/_old  2024-07-22 17:15:28.155191658 +0200
+++ /var/tmp/diff_new_pack.dr0fku/_new  2024-07-22 17:15:28.175192463 +0200
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           melange
-Version:        0.11.0
+Version:        0.11.1
 Release:        0
 Summary:        Build APKs from source code
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.dr0fku/_old  2024-07-22 17:15:28.447203401 +0200
+++ /var/tmp/diff_new_pack.dr0fku/_new  2024-07-22 17:15:28.475204526 +0200
@@ -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.11.0</param>
+    <param name="revision">v0.11.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.dr0fku/_old  2024-07-22 17:15:28.623210478 +0200
+++ /var/tmp/diff_new_pack.dr0fku/_new  2024-07-22 17:15:28.659211926 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/chainguard-dev/melange</param>
-              <param 
name="changesrevision">751494ab1c257e8e03ce3ec76bfb521846b032f9</param></service></servicedata>
+              <param 
name="changesrevision">a52edcc075ebf1dc89aea87893e3821944171ee3</param></service></servicedata>
 (No newline at EOF)
 

++++++ melange-0.11.0.obscpio -> melange-0.11.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/melange-0.11.0/pkg/sca/sca.go 
new/melange-0.11.1/pkg/sca/sca.go
--- old/melange-0.11.0/pkg/sca/sca.go   2024-07-16 18:52:12.000000000 +0200
+++ new/melange-0.11.1/pkg/sca/sca.go   2024-07-19 03:42:34.000000000 +0200
@@ -556,6 +556,86 @@
        return nil
 }
 
+// generateRubyDeps generates a ruby-X.Y dependency for packages which ship
+// Ruby gems.
+func generateRubyDeps(ctx context.Context, hdl SCAHandle, generated 
*config.Dependencies) error {
+       log := clog.FromContext(ctx)
+       log.Infof("scanning for ruby gems...")
+
+       fsys, err := hdl.Filesystem()
+       if err != nil {
+               return err
+       }
+
+       var rubyGemVer string
+       if err := fs.WalkDir(fsys, ".", func(path string, d fs.DirEntry, err 
error) error {
+               if err != nil {
+                       return err
+               }
+
+               // Ruby gems are installed in paths such as 
/usr/lib/ruby/gems/X.Y.Z/gems/...,
+               // so if we find a directory named gems, and its parent is a 
ruby directory,
+               // then we have a Ruby gem directory.
+               basename := filepath.Base(path)
+               if basename != "gems" {
+                       return nil
+               }
+
+               parent := filepath.Dir(path)
+               basename = filepath.Base(parent)
+
+               // The gems path we want is nested in another gems directory, 
where the parent
+               // contains the Ruby version. Return if the parent is the Ruby 
directory
+               if basename == "ruby" {
+                       return nil
+               }
+
+               // Ruby versions are formatted as major.minor.patch
+               majorMinorPatch := `^\d+\.\d+\.\d+$`
+
+               // Compile expected Ruby version format
+               re := regexp.MustCompile(majorMinorPatch)
+
+               // Match the directory against version format
+               if !re.MatchString(basename) {
+                       return nil
+               }
+
+               // This probably shouldn't ever happen, but lets check to make 
sure.
+               if !d.IsDir() {
+                       return nil
+               }
+
+               // This takes the X.Y part of the ruby/gems/X.Y.Z directory 
name as the version to pin against.
+               // If the X.Y part is not present, then rubyModuleVer will 
remain an empty string and
+               // no dependency will be generated.
+               rubyGemVer = basename[:3]
+               return nil
+       }); err != nil {
+               return err
+       }
+
+       // Nothing to do...
+       if rubyGemVer == "" {
+               return nil
+       }
+
+       // Do not add a Ruby dependency if one already exists.
+       for _, dep := range hdl.BaseDependencies().Runtime {
+               if strings.HasPrefix(dep, "ruby") {
+                       log.Warnf("%s: Ruby dependency %q already specified, 
consider removing it in favor of SCA-generated dependency", hdl.PackageName(), 
dep)
+                       return nil
+               }
+       }
+
+       log.Infof("  found ruby gem, generating ruby-%s dependency", rubyGemVer)
+       if !hdl.Options().NoDepends {
+               generated.Runtime = append(generated.Runtime, 
fmt.Sprintf("ruby-%s", rubyGemVer))
+       }
+
+       return nil
+}
+
 func sonameLibver(soname string) string {
        parts := strings.Split(soname, ".so.")
        if len(parts) < 2 {
@@ -677,6 +757,7 @@
                generateCmdProviders,
                generatePkgConfigDeps,
                generatePythonDeps,
+               generateRubyDeps,
                generateShbangDeps,
        }
 

++++++ melange.obsinfo ++++++
--- /var/tmp/diff_new_pack.dr0fku/_old  2024-07-22 17:15:29.215234284 +0200
+++ /var/tmp/diff_new_pack.dr0fku/_new  2024-07-22 17:15:29.235235089 +0200
@@ -1,5 +1,5 @@
 name: melange
-version: 0.11.0
-mtime: 1721148732
-commit: 751494ab1c257e8e03ce3ec76bfb521846b032f9
+version: 0.11.1
+mtime: 1721353354
+commit: a52edcc075ebf1dc89aea87893e3821944171ee3
 

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

Reply via email to