Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-kiwi for openSUSE:Factory checked in at 2024-06-12 15:37:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-kiwi (Old) and /work/SRC/openSUSE:Factory/.python-kiwi.new.19518 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-kiwi" Wed Jun 12 15:37:28 2024 rev:115 rq:1179969 version:10.0.21 Changes: -------- --- /work/SRC/openSUSE:Factory/python-kiwi/python-kiwi.changes 2024-06-04 12:51:03.415665035 +0200 +++ /work/SRC/openSUSE:Factory/.python-kiwi.new.19518/python-kiwi.changes 2024-06-12 15:38:06.313649030 +0200 @@ -1,0 +2,67 @@ +Tue Jun 04 11:13:01 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Bump version: 10.0.20 â 10.0.21 + +------------------------------------------------------------------- +Mon Jun 03 21:30:46 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Add missing write_meta_data method to BLS base + + The standard bootloader interface class provided a method + named write_meta_data which is expected to be implemented + in the specialized bootloader implementation. For BLS + bootloaders this method was missing in the BLS base class. + write_meta_data can provide additional cmdline options + for booting. If not covered some boot options might be + missing. This patch fixes it + +------------------------------------------------------------------- +Mon Jun 03 17:59:18 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Fix TW integration test to build outside OBS + +------------------------------------------------------------------- +Mon Jun 03 17:46:52 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Make sure BootLoaderConfig fixes are effective + + The BootLoaderConfigGrub2 class has methods to fix the grub-mkconfig + generated files. It does that by mounting the system and changing the + respective files after the mkconfig call. However, after the change + the class instance stays open in combination with BootLoaderInstallGrub2 + instance which itself under certain circumstances also mounts the + system to call grub-install. At the time grub-install is called it + cannot be guaranteed that all changes has been written unless an + explicit umount in the BootLoaderConfigGrub2 class instance happened. + This commit address the potential race condition. + +------------------------------------------------------------------- +Mon Jun 03 09:22:00 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Bump version: 10.0.19 â 10.0.20 + +------------------------------------------------------------------- +Mon Jun 03 08:25:11 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Update rawhide integration test + + Use new arch attribute for testing in the repository + element of the rawhide/test-image-live-disk integration + test. + +------------------------------------------------------------------- +Sat Jun 01 20:55:02 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Add support for arch attr in repository element + + Allow to provide different repository sections per architecture + +------------------------------------------------------------------- +Fri May 31 12:38:04 CEST 2024 - Marcus Schäfer <marcus.schae...@gmail.com> + +- Add --list-profiles to image info + + Allow to list available profiles from the processed image + description + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-kiwi.spec ++++++ --- /var/tmp/diff_new_pack.j1OI92/_old 2024-06-12 15:38:07.053676127 +0200 +++ /var/tmp/diff_new_pack.j1OI92/_new 2024-06-12 15:38:07.057676274 +0200 @@ -44,7 +44,7 @@ %endif Name: python-kiwi -Version: 10.0.19 +Version: 10.0.21 Provides: kiwi-schema = 8.1 Release: 0 Url: https://github.com/OSInside/kiwi ++++++ PKGBUILD ++++++ --- /var/tmp/diff_new_pack.j1OI92/_old 2024-06-12 15:38:07.085677299 +0200 +++ /var/tmp/diff_new_pack.j1OI92/_new 2024-06-12 15:38:07.097677739 +0200 @@ -3,7 +3,7 @@ pkgname=('python-kiwi' 'kiwi-man-pages' 'dracut-kiwi-lib' 'dracut-kiwi-oem-repart' 'dracut-kiwi-oem-dump' 'dracut-kiwi-live' 'dracut-kiwi-overlay') arch=(x86_64) -pkgver=10.0.19 +pkgver=10.0.21 pkgrel=0 pkgdesc="KIWI - Appliance Builder Next Generation" url="https://github.com/SUSE/kiwi/tarball/master" @@ -12,7 +12,7 @@ provides=(kiwi-ng kiwi) source=("${pkgname}.tar.gz") changelog="${pkgname}.changes" -md5sums=('57e3c2063f957f448bd085685fa1358a') +md5sums=('7a57fc01393c8e62449d1899cb185642') build() { ++++++ python-kiwi.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/.bumpversion.cfg new/kiwi-10.0.21/.bumpversion.cfg --- old/kiwi-10.0.19/.bumpversion.cfg 2024-05-30 21:55:20.175337600 +0200 +++ new/kiwi-10.0.21/.bumpversion.cfg 2024-06-04 11:13:01.552985400 +0200 @@ -1,5 +1,5 @@ [bumpversion] -current_version = 10.0.19 +current_version = 10.0.21 commit = True tag = True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/PKG-INFO new/kiwi-10.0.21/PKG-INFO --- old/kiwi-10.0.19/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 +++ new/kiwi-10.0.21/PKG-INFO 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: kiwi -Version: 10.0.19 +Version: 10.0.21 Summary: KIWI - Appliance Builder Home-page: https://osinside.github.io/kiwi/ License: GPL-3.0-or-later diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/doc/source/commands/image_info.rst new/kiwi-10.0.21/doc/source/commands/image_info.rst --- old/kiwi-10.0.19/doc/source/commands/image_info.rst 2024-03-23 14:13:18.723997000 +0100 +++ new/kiwi-10.0.21/doc/source/commands/image_info.rst 2024-06-03 08:23:55.002286000 +0200 @@ -13,6 +13,7 @@ kiwi-ng image info -h | --help kiwi-ng image info --description=<directory> [--resolve-package-list] + [--list-profiles] [--ignore-repos] [--add-repo=<source,type,alias,priority>...] [--print-xml|--print-yaml] @@ -52,6 +53,17 @@ processing the requested image information, which could lead to an error. +--list-profiles + + list profiles available for the selected/default type. + + NOTE: + If the image description is designed in a way that there + is no default build type configured and/or the main build + type is also profiled, it's required to provide this + information to kiwi to list further profiles for this type. + For example: kiwi-ng --profile top_level_entry_profile image info ... + --resolve-package-list Solve package dependencies and return a list of all diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/doc/source/conf.py new/kiwi-10.0.21/doc/source/conf.py --- old/kiwi-10.0.19/doc/source/conf.py 2024-05-30 21:55:20.175337600 +0200 +++ new/kiwi-10.0.21/doc/source/conf.py 2024-06-04 11:13:01.552985400 +0200 @@ -139,7 +139,7 @@ # built documents. # # The short X.Y version. -version = '10.0.19' +version = '10.0.21' # The full version, including alpha/beta/rc tags. release = version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/doc/source/image_description/elements.rst new/kiwi-10.0.21/doc/source/image_description/elements.rst --- old/kiwi-10.0.19/doc/source/image_description/elements.rst 2024-05-06 20:46:27.402189300 +0200 +++ new/kiwi-10.0.21/doc/source/image_description/elements.rst 2024-06-03 09:21:45.397441600 +0200 @@ -1208,7 +1208,7 @@ .. code:: xml - <repository> + <repository arch="arch"> <source path="uri"/> </repository> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/bootloader/config/base.py new/kiwi-10.0.21/kiwi/bootloader/config/base.py --- old/kiwi-10.0.19/kiwi/bootloader/config/base.py 2024-03-13 21:08:18.141673000 +0100 +++ new/kiwi-10.0.21/kiwi/bootloader/config/base.py 2024-06-04 11:12:52.548991400 +0200 @@ -50,6 +50,7 @@ self.bootloader = xml_state.get_build_type_bootloader_name() self.arch = Defaults.get_platform_name() + self.system_is_mounted = False self.volumes_mount = [] self.root_mount = None self.boot_mount = None @@ -578,6 +579,27 @@ self.device_mount.bind_mount() self.proc_mount.bind_mount() self.sys_mount.bind_mount() + self.system_is_mounted = True + + def _umount_system(self): + if self.system_is_mounted: + for volume_mount in reversed(self.volumes_mount): + volume_mount.umount() + if self.device_mount: + self.device_mount.umount() + if self.proc_mount: + self.proc_mount.umount() + if self.sys_mount: + self.sys_mount.umount() + if self.efi_mount: + self.efi_mount.umount() + if self.tmp_mount: + self.tmp_mount.umount() + if self.boot_mount: + self.boot_mount.umount() + if self.root_mount: + self.root_mount.umount() + self.system_is_mounted = False def _get_root_cmdline_parameter(self, boot_device): """ @@ -662,19 +684,4 @@ } def __exit__(self, exc_type, exc_value, traceback): - for volume_mount in reversed(self.volumes_mount): - volume_mount.umount() - if self.device_mount: - self.device_mount.umount() - if self.proc_mount: - self.proc_mount.umount() - if self.sys_mount: - self.sys_mount.umount() - if self.efi_mount: - self.efi_mount.umount() - if self.tmp_mount: - self.tmp_mount.umount() - if self.boot_mount: - self.boot_mount.umount() - if self.root_mount: - self.root_mount.umount() + self._umount_system() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/bootloader/config/bootloader_spec_base.py new/kiwi-10.0.21/kiwi/bootloader/config/bootloader_spec_base.py --- old/kiwi-10.0.19/kiwi/bootloader/config/bootloader_spec_base.py 2024-03-13 21:08:18.141673000 +0100 +++ new/kiwi-10.0.21/kiwi/bootloader/config/bootloader_spec_base.py 2024-06-04 11:12:52.548991400 +0200 @@ -89,6 +89,19 @@ """ pass + def write_meta_data( + self, root_device=None, write_device=None, boot_options='' + ): + """ + For bootloaders following the bootloader spec take over + the cmdline options and store them for later use + + :param string root_device: unused + :param string write_device: unused + :param string boot_options: kernel options as string + """ + self.cmdline = f'{self.cmdline} {boot_options}'.strip() + def setup_disk_image_config( self, boot_uuid: str = '', root_uuid: str = '', hypervisor: str = '', kernel: str = '', initrd: str = '', boot_options: Dict = {} @@ -111,7 +124,7 @@ self.custom_args['kernel'] = kernel self.custom_args['initrd'] = initrd self.custom_args['boot_options'] = boot_options - self.cmdline = ' '.join( + plus_cmdline = ' '.join( [ self.get_boot_cmdline( boot_options.get('root_device'), @@ -119,6 +132,7 @@ ) ] ) + self.cmdline = f'{self.cmdline} {plus_cmdline}'.strip() self.setup_loader(self.target.disk) def setup_install_image_config( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/bootloader/config/grub2.py new/kiwi-10.0.21/kiwi/bootloader/config/grub2.py --- old/kiwi-10.0.19/kiwi/bootloader/config/grub2.py 2024-04-26 21:48:06.317111300 +0200 +++ new/kiwi-10.0.21/kiwi/bootloader/config/grub2.py 2024-06-04 11:12:52.548991400 +0200 @@ -322,6 +322,7 @@ self._copy_grub_config_to_efi_path( self.efi_mount.mountpoint, self.early_boot_script_efi ) + self._umount_system() def setup_install_image_config( self, mbrid, hypervisor='xen.gz', kernel='linux', initrd='initrd' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/schema/kiwi.rnc new/kiwi-10.0.21/kiwi/schema/kiwi.rnc --- old/kiwi-10.0.19/kiwi/schema/kiwi.rnc 2024-05-06 20:46:27.402189300 +0200 +++ new/kiwi-10.0.21/kiwi/schema/kiwi.rnc 2024-06-03 09:21:45.397441600 +0200 @@ -1051,6 +1051,7 @@ ] ] k.repository.profiles.attribute = k.profiles.attribute + k.repository.arch.attribute = k.arch.attribute k.repository.type.attribute = ## Type of repository attribute type { @@ -1143,6 +1144,7 @@ k.repository.attlist = k.repository.type.attribute? & k.repository.profiles.attribute? & + k.repository.arch.attribute? & k.repository.alias.attribute? & k.repository.sourcetype.attribute? & k.repository.components.attribute? & diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/schema/kiwi.rng new/kiwi-10.0.21/kiwi/schema/kiwi.rng --- old/kiwi-10.0.19/kiwi/schema/kiwi.rng 2024-05-06 20:46:27.402189300 +0200 +++ new/kiwi-10.0.21/kiwi/schema/kiwi.rng 2024-06-03 09:21:45.397441600 +0200 @@ -1589,6 +1589,9 @@ <define name="k.repository.profiles.attribute"> <ref name="k.profiles.attribute"/> </define> + <define name="k.repository.arch.attribute"> + <ref name="k.arch.attribute"/> + </define> <define name="k.repository.type.attribute"> <attribute name="type"> <a:documentation>Type of repository</a:documentation> @@ -1726,6 +1729,9 @@ <ref name="k.repository.profiles.attribute"/> </optional> <optional> + <ref name="k.repository.arch.attribute"/> + </optional> + <optional> <ref name="k.repository.alias.attribute"/> </optional> <optional> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/tasks/image_info.py new/kiwi-10.0.21/kiwi/tasks/image_info.py --- old/kiwi-10.0.19/kiwi/tasks/image_info.py 2023-12-20 21:01:15.934654500 +0100 +++ new/kiwi-10.0.21/kiwi/tasks/image_info.py 2024-06-03 08:23:55.002286000 +0200 @@ -19,6 +19,7 @@ usage: kiwi-ng image info -h | --help kiwi-ng image info --description=<directory> [--resolve-package-list] + [--list-profiles] [--ignore-repos] [--add-repo=<source,type,alias,priority>...] [--print-xml|--print-yaml|--print-toml] @@ -40,6 +41,8 @@ solve package dependencies and return a list of all packages including their attributes e.g size, shasum, etc... + --list-profiles + list profiles available for the selected/default type --print-xml|--print-yaml|--print-toml print image description in specified format """ @@ -93,6 +96,12 @@ 'image': self.xml_state.xml_data.get_name() } + if self.command_args['--list-profiles']: + result['profile_names'] = [] + for profiles_section in self.xml_state.xml_data.get_profiles(): + for profile in profiles_section.get_profile(): + result['profile_names'].append(profile.get_name()) + if self.command_args['--resolve-package-list']: solver = self._setup_solver() boostrap_package_list = self.xml_state.get_bootstrap_packages() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/version.py new/kiwi-10.0.21/kiwi/version.py --- old/kiwi-10.0.19/kiwi/version.py 2024-05-30 21:55:20.175337600 +0200 +++ new/kiwi-10.0.21/kiwi/version.py 2024-06-04 11:13:01.552985400 +0200 @@ -18,5 +18,5 @@ """ Global version information used in kiwi and the package """ -__version__ = '10.0.19' +__version__ = '10.0.21' __githash__ = '$Format:%H$' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/xml_parse.py new/kiwi-10.0.21/kiwi/xml_parse.py --- old/kiwi-10.0.19/kiwi/xml_parse.py 2024-05-06 20:46:27.402189300 +0200 +++ new/kiwi-10.0.21/kiwi/xml_parse.py 2024-06-03 09:21:45.401441800 +0200 @@ -3,7 +3,7 @@ # # Generated by generateDS.py version 2.29.24. -# Python 3.11.5 (main, Sep 06 2023, 11:21:05) [GCC] +# Python 3.11.8 (main, Feb 29 2024, 12:19:47) [GCC] # # Command line options: # ('-f', '') @@ -2412,11 +2412,12 @@ """The Name of the Repository""" subclass = None superclass = k_source - def __init__(self, source=None, type_=None, profiles=None, alias=None, sourcetype=None, components=None, distribution=None, imageinclude=None, imageonly=None, repository_gpgcheck=None, customize=None, package_gpgcheck=None, priority=None, password=None, username=None, use_for_bootstrap=None): + def __init__(self, source=None, type_=None, profiles=None, arch=None, alias=None, sourcetype=None, components=None, distribution=None, imageinclude=None, imageonly=None, repository_gpgcheck=None, customize=None, package_gpgcheck=None, priority=None, password=None, username=None, use_for_bootstrap=None): self.original_tagname_ = None super(repository, self).__init__(source, ) self.type_ = _cast(None, type_) self.profiles = _cast(None, profiles) + self.arch = _cast(None, arch) self.alias = _cast(None, alias) self.sourcetype = _cast(None, sourcetype) self.components = _cast(None, components) @@ -2445,6 +2446,8 @@ def set_type(self, type_): self.type_ = type_ def get_profiles(self): return self.profiles def set_profiles(self, profiles): self.profiles = profiles + def get_arch(self): return self.arch + def set_arch(self, arch): self.arch = arch def get_alias(self): return self.alias def set_alias(self, alias): self.alias = alias def get_sourcetype(self): return self.sourcetype @@ -2471,6 +2474,13 @@ def set_username(self, username): self.username = username def get_use_for_bootstrap(self): return self.use_for_bootstrap def set_use_for_bootstrap(self, use_for_bootstrap): self.use_for_bootstrap = use_for_bootstrap + def validate_arch_name(self, value): + # Validate type arch-name, a restriction on xs:token. + if value is not None and Validate_simpletypes_: + if not self.gds_validate_simple_patterns( + self.validate_arch_name_patterns_, value): + warnings_.warn('Value "%s" does not match xsd pattern restrictions: %s' % (value.encode('utf-8'), self.validate_arch_name_patterns_, )) + validate_arch_name_patterns_ = [['^.*$']] def validate_safe_posix_name(self, value): # Validate type safe-posix-name, a restriction on xs:token. if value is not None and Validate_simpletypes_: @@ -2514,6 +2524,9 @@ if self.profiles is not None and 'profiles' not in already_processed: already_processed.add('profiles') outfile.write(' profiles=%s' % (self.gds_encode(self.gds_format_string(quote_attrib(self.profiles), input_name='profiles')), )) + if self.arch is not None and 'arch' not in already_processed: + already_processed.add('arch') + outfile.write(' arch=%s' % (quote_attrib(self.arch), )) if self.alias is not None and 'alias' not in already_processed: already_processed.add('alias') outfile.write(' alias=%s' % (quote_attrib(self.alias), )) @@ -2572,6 +2585,12 @@ if value is not None and 'profiles' not in already_processed: already_processed.add('profiles') self.profiles = value + value = find_attr_value_('arch', node) + if value is not None and 'arch' not in already_processed: + already_processed.add('arch') + self.arch = value + self.arch = ' '.join(self.arch.split()) + self.validate_arch_name(self.arch) # validate type arch-name value = find_attr_value_('alias', node) if value is not None and 'alias' not in already_processed: already_processed.add('alias') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/kiwi/xml_state.py new/kiwi-10.0.21/kiwi/xml_state.py --- old/kiwi-10.0.19/kiwi/xml_state.py 2024-05-06 20:46:27.402189300 +0200 +++ new/kiwi-10.0.21/kiwi/xml_state.py 2024-06-03 09:21:45.401441800 +0200 @@ -407,6 +407,22 @@ """ return self._section_matches_host_architecture(preferences) + def repository_matches_host_architecture(self, repository: Any) -> bool: + """ + Tests if the given repository section is applicable for the + current host architecture. If no architecture is specified within + the section it is considered as a match returning True. + + Note: The XML section pointer must provide an arch attribute + + :param section: XML section object + + :return: True or False + + :rtype: bool + """ + return self._section_matches_host_architecture(repository) + def get_package_sections( self, packages_sections: List ) -> List[package_type]: @@ -1897,15 +1913,18 @@ def get_repository_sections(self) -> List: """ - List of all repository sections matching configured profiles + List of all repository sections for the selected profiles that + matches the host architecture :return: <repository> section reference(s) :rtype: list """ - return self._profiled( - self.xml_data.get_repository() - ) + repository_list = [] + for repository in self._profiled(self.xml_data.get_repository()): + if self.repository_matches_host_architecture(repository): + repository_list.append(repository) + return repository_list def get_repository_sections_used_for_build(self) -> List: """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/pyproject.toml new/kiwi-10.0.21/pyproject.toml --- old/kiwi-10.0.19/pyproject.toml 2024-05-30 21:55:20.175337600 +0200 +++ new/kiwi-10.0.21/pyproject.toml 2024-06-04 11:13:01.552985400 +0200 @@ -1,6 +1,6 @@ [tool.poetry] name = "kiwi" -version = "10.0.19" +version = "10.0.21" description = "KIWI - Appliance Builder" license = "GPL-3.0-or-later" readme = "README.rst" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/test/data/image_info/config.xml new/kiwi-10.0.21/test/data/image_info/config.xml --- old/kiwi-10.0.19/test/data/image_info/config.xml 2024-03-06 22:52:19.848948500 +0100 +++ new/kiwi-10.0.21/test/data/image_info/config.xml 2024-06-03 08:23:55.002286000 +0200 @@ -19,6 +19,9 @@ <bootsplash-theme>openSUSE</bootsplash-theme> <bootloader-theme>openSUSE</bootloader-theme> </preferences> + <profiles> + <profile name="some" description="text"/> + </profiles> <preferences> <type image="iso" mediacheck="true"/> </preferences> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kiwi-10.0.19/test/unit/tasks/image_info_test.py new/kiwi-10.0.21/test/unit/tasks/image_info_test.py --- old/kiwi-10.0.19/test/unit/tasks/image_info_test.py 2024-03-06 22:52:19.852948400 +0100 +++ new/kiwi-10.0.21/test/unit/tasks/image_info_test.py 2024-06-03 08:23:55.002286000 +0200 @@ -92,6 +92,7 @@ self.task.command_args['--add-repo'] = [] self.task.command_args['--ignore-repos'] = False self.task.command_args['--resolve-package-list'] = False + self.task.command_args['--list-profiles'] = False self.task.command_args['--print-xml'] = False self.task.command_args['--print-yaml'] = False self.task.command_args['--print-toml'] = False @@ -117,6 +118,17 @@ ) @patch('kiwi.tasks.image_info.DataOutput') + def test_process_image_info_list_profiles(self, mock_out): + self._init_command_args() + self.task.command_args['info'] = True + self.task.command_args['--list-profiles'] = True + self.task.process() + self.runtime_checker.check_repositories_configured.assert_called_once_with() + mock_out.assert_called_once_with( + {'image': 'LimeJeOS', 'profile_names': ['some']} + ) + + @patch('kiwi.tasks.image_info.DataOutput') @patch('kiwi.tasks.image_info.SolverRepository.new') @patch('kiwi.tasks.image_info.Uri') @patch('kiwi.tasks.image_info.SolverRepositoryBase.get_repo_type')