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 <[email protected]>
+
+- 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 <[email protected]>
+
+- 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 <[email protected]>
+
+- 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',