Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package product-composer for 
openSUSE:Factory checked in at 2025-07-06 17:06:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/product-composer (Old)
 and      /work/SRC/openSUSE:Factory/.product-composer.new.1903 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "product-composer"

Sun Jul  6 17:06:46 2025 rev:41 rq:1290671 version:0.6.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/product-composer/product-composer.changes        
2025-07-02 12:14:15.790600656 +0200
+++ 
/work/SRC/openSUSE:Factory/.product-composer.new.1903/product-composer.changes  
    2025-07-06 17:09:40.227326491 +0200
@@ -1,0 +2,20 @@
+Fri Jul  4 10:29:58 UTC 2025 - Adrian Schröter <adr...@suse.de>
+
+- update to version 0.6.6
+  * verify command works now also for setups which only builds
+    via a flavor
+  * Export directory content sizes in kb (boo#1245709)
+
+-------------------------------------------------------------------
+Thu Jul  3 14:54:15 UTC 2025 - Adrian Schröter <adr...@suse.de>
+
+- update to version 0.6.5
+  * Fixing further regressions of refactoring for iso building
+
+-------------------------------------------------------------------
+Thu Jul  3 09:30:47 UTC 2025 - Adrian Schröter <adr...@suse.de>
+
+- update to version 0.6.4
+  * Fixing the iso parsing crash for real
+
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ product-composer.spec ++++++
--- /var/tmp/diff_new_pack.UBrW84/_old  2025-07-06 17:09:42.603424811 +0200
+++ /var/tmp/diff_new_pack.UBrW84/_new  2025-07-06 17:09:42.603424811 +0200
@@ -23,7 +23,7 @@
 %endif
 
 Name:           product-composer
-Version:        0.6.3
+Version:        0.6.6
 Release:        0
 Summary:        Product Composer
 License:        GPL-2.0-or-later

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.UBrW84/_old  2025-07-06 17:09:42.939438714 +0200
+++ /var/tmp/diff_new_pack.UBrW84/_new  2025-07-06 17:09:42.971440038 +0200
@@ -1,5 +1,5 @@
-mtime: 1751355082
-commit: fcb94469daf672854df89495f2211da0a6ca98fb0cd484baed0ef0b61fde29b6
+mtime: 1751625087
+commit: 8b73dd6a1e3155e10030672d6a6918f96bd40c94fd4e8a126151ee8ec3f66d31
 url: https://src.opensuse.org/tools/product-composer
 revision: devel
 

++++++ build.specials.obscpio ++++++

++++++ product-composer.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/product-composer/src/productcomposer/commands/verify.py 
new/product-composer/src/productcomposer/commands/verify.py
--- old/product-composer/src/productcomposer/commands/verify.py 2025-07-01 
09:31:37.000000000 +0200
+++ new/product-composer/src/productcomposer/commands/verify.py 2025-07-04 
12:31:42.000000000 +0200
@@ -20,7 +20,8 @@
     def verify_flavor(self, filename, flavor):
         yml = parse_yaml(filename, flavor)
         if not flavor and not yml['architectures']:
-            die('No architecture defined and no flavor.')
+            # no default build defined, skipping
+            return yml.get('flavors')
         if not yml['architectures']:
             die(f'No architecture defined for flavor {flavor}')
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/product-composer/src/productcomposer/createartifacts/createagamaiso.py 
new/product-composer/src/productcomposer/createartifacts/createagamaiso.py
--- old/product-composer/src/productcomposer/createartifacts/createagamaiso.py  
2025-07-01 09:31:37.000000000 +0200
+++ new/product-composer/src/productcomposer/createartifacts/createagamaiso.py  
2025-07-04 12:31:42.000000000 +0200
@@ -8,7 +8,7 @@
 
 def create_agama_iso(outdir, isoconf, build_options, pool, workdir, 
application_id, arch):
     verbose = True if verbose_level > 0 else False
-    base = isoconf['base']
+    base = isoconf.base
     if verbose:
         note(f"Looking for baseiso-{base} rpm on {arch}")
     agama = pool.lookup_rpm(arch, f"baseiso-{base}")
@@ -36,10 +36,10 @@
     args = ['mksusecd', agamaiso, tempdir, '--create', workdir + 
'.install.iso']
     # mksusecd would take the volume_id, publisher, application_id, preparer 
from the agama iso
     args += ['--preparer', ISO_PREPARER]
-    if 'publisher' in isoconf and isoconf['publisher'] is not None:
-        args += ['--vendor', isoconf['publisher']]
-    if 'volume_id' in isoconf and isoconf['volume_id'] is not None:
-        args += ['--volume', isoconf['volume_id']]
+    if isoconf.publisher:
+        args += ['--vendor', isoconf.publisher]
+    if isoconf.volume_id:
+        args += ['--volume', isoconf.volume_id]
     args += ['--application', application_id]
     run_helper(args, failmsg="add tree to agama image", verbose=verbose)
     # mksusecd already did a tagmedia call with a sha256 digest
@@ -47,6 +47,7 @@
     shutil.rmtree(tempdir)
     shutil.rmtree(baseisodir)
     # just for the bootable image, signature is not yet applied, so ignore 
that error
+    # FIXME: fatal=False due to unknown reported El Torrito error on s390x atm.
     run_helper(['verifymedia', workdir + '.install.iso', '--ignore', 'ISO is 
signed'], fatal=False, failmsg="verify install.iso")
     # creating .sha256 for iso file
     create_sha256_for(workdir + '.install.iso')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/product-composer/src/productcomposer/createartifacts/createiso.py 
new/product-composer/src/productcomposer/createartifacts/createiso.py
--- old/product-composer/src/productcomposer/createartifacts/createiso.py       
2025-07-01 09:31:37.000000000 +0200
+++ new/product-composer/src/productcomposer/createartifacts/createiso.py       
2025-07-04 12:31:42.000000000 +0200
@@ -7,10 +7,10 @@
     verbose = True if verbose_level > 0 else False
     args = ['/usr/bin/mkisofs', '-quiet', '-p', ISO_PREPARER]
     args += ['-r', '-pad', '-f', '-J', '-joliet-long']
-    if isoconf['publisher']:
-        args += ['-publisher', isoconf['publisher']]
-    if isoconf['volume_id']:
-        args += ['-V', isoconf['volume_id']]
+    if isoconf.publisher:
+        args += ['-publisher', isoconf.publisher]
+    if isoconf.volume_id:
+        args += ['-V', isoconf.volume_id]
     args += ['-A', application_id]
     args += ['-o', workdir + '.iso', workdir]
     run_helper(args, cwd=outdir, failmsg="create iso file", verbose=verbose)
@@ -18,4 +18,4 @@
     args = ['tagmedia', '--digest', 'sha256', workdir + '.iso']
     run_helper(args, cwd=outdir, failmsg="tagmedia iso file", verbose=verbose)
     # creating .sha256 for iso file
-    create_sha256_for(workdir + ".iso")
\ No newline at end of file
+    create_sha256_for(workdir + ".iso")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/product-composer/src/productcomposer/createartifacts/createsusedataxml.py 
new/product-composer/src/productcomposer/createartifacts/createsusedataxml.py
--- 
old/product-composer/src/productcomposer/createartifacts/createsusedataxml.py   
    2025-07-01 09:31:37.000000000 +0200
+++ 
new/product-composer/src/productcomposer/createartifacts/createsusedataxml.py   
    2025-07-04 12:31:42.000000000 +0200
@@ -54,7 +54,8 @@
                 break
     dudata = []
     for dir, size in sorted(dudata_size.items()):
-        dudata.append((dir, size, dudata_count[dir]))
+        kilobyte = size / 1024
+        dudata.append((dir, kilobyte, dudata_count[dir]))
     return dudata
 
 # Create the main susedata.xml with translations, support, and disk usage 
information
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/product-composer/src/productcomposer/createartifacts/createtree.py 
new/product-composer/src/productcomposer/createartifacts/createtree.py
--- old/product-composer/src/productcomposer/createartifacts/createtree.py      
2025-07-01 09:31:37.000000000 +0200
+++ new/product-composer/src/productcomposer/createartifacts/createtree.py      
2025-07-04 12:31:42.000000000 +0200
@@ -160,7 +160,7 @@
         create_updateinfo_xml(maindir, yml, pool, flavor, debugdir, sourcedir)
 
     # Add License File and create extra .license directory
-    if yml['iso'] and yml['iso'].get('tree', None) != 'drop':
+    if yml['iso'] and yml['iso'].tree != 'drop':
         licensefilename = '/license.tar'
         if os.path.exists(maindir + '/license-' + yml['name'] + '.tar') or 
os.path.exists(maindir + '/license-' + yml['name'] + '.tar.gz'):
             licensefilename = '/license-' + yml['name'] + '.tar'
@@ -210,7 +210,7 @@
         # presumably you wouldn't need a bootable iso for source and
         # debuginfo packages.
         if yml['iso']:
-            if workdir == maindir and yml['iso']['base']:
+            if workdir == maindir and yml['iso'].base:
                 agama_arch = yml['architectures'][0]
                 note(f"Export main tree into agama iso file for {agama_arch}")
                 create_agama_iso(outdir, yml['iso'], yml['build_options'], 
pool, workdir, application_id, agama_arch)
@@ -218,7 +218,7 @@
                 create_iso(outdir, yml['iso'], workdir, application_id)
 
             # cleanup
-            if yml['iso']['tree'] == 'drop':
+            if yml['iso'].tree == 'drop':
                 shutil.rmtree(workdir)
 
     # create SBOM data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/product-composer/src/productcomposer/parsers/yamlparser.py 
new/product-composer/src/productcomposer/parsers/yamlparser.py
--- old/product-composer/src/productcomposer/parsers/yamlparser.py      
2025-07-01 09:31:37.000000000 +0200
+++ new/product-composer/src/productcomposer/parsers/yamlparser.py      
2025-07-04 12:31:42.000000000 +0200
@@ -5,7 +5,7 @@
 
 from ..utils.loggerutils import die
 from ..verifiers.composeschema import ComposeSchema
-
+from ..verifiers.composeschema import compose_schema_iso
 
 
 def parse_yaml(filename: str, flavor: str | None) -> Dict[str, any]:
@@ -59,9 +59,9 @@
         if f['iso']:
             for tag in ('volume_id', 'publisher', 'tree', 'base'):
                 if f['iso'].get(tag, None):
-                    if not 'iso' in yml:
-                        yml['iso'] = {}
-                    yml['iso'][tag] = f['iso'][tag]
+                    if not yml['iso']:
+                        yml['iso'] = compose_schema_iso()
+                    exec("yml['iso']." + tag + " = f['iso'][tag]")
 
     for tag in (
             'installcheck',

Reply via email to