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',