From 466f8750a034c60599910a73472c419c1d25cc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20Sch=C3=A4fer?= Date: Mon, 11 Dec 2023 09:43:50 +0100 Subject: [PATCH] Set kpartx as default mapper tool for s390 Some time ago we moved the default partition mapper from kpartx to partx to reduce a package dependencies. However, on the s390 architecture partx does not work proplerly on e.g DASD devices. Thus the default mapper tool for this architecture will change to kpartx with this PR --- kiwi/defaults.py | 3 +++ test/unit/runtime_config_test.py | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/kiwi/defaults.py b/kiwi/defaults.py index bdc5c04aa10..126fdfc8a76 100644 --- a/kiwi/defaults.py +++ b/kiwi/defaults.py @@ -1791,6 +1791,9 @@ def get_part_mapper_tool(): :rtype: str """ + host_architecture = Defaults.get_platform_name() + if 's390' in host_architecture: + return 'kpartx' return 'partx' @staticmethod diff --git a/test/unit/runtime_config_test.py b/test/unit/runtime_config_test.py index 21b4b8299ca..6f7d213d8e8 100644 --- a/test/unit/runtime_config_test.py +++ b/test/unit/runtime_config_test.py @@ -78,7 +78,11 @@ def test_config_sections_from_home_base_config(self, mock_is_buildservice_worker ] @patch('kiwi.runtime_checker.Defaults.is_buildservice_worker') - def test_config_sections_defaults(self, mock_is_buildservice_worker): + @patch('kiwi.runtime_checker.Defaults.get_platform_name') + def test_config_sections_defaults( + self, mock_get_platform_name, mock_is_buildservice_worker + ): + mock_get_platform_name.return_value = 's390x' mock_is_buildservice_worker.return_value = True with patch.dict('os.environ', {'HOME': '../data/kiwi_config/defaults'}): runtime_config = RuntimeConfig(reread=True) @@ -93,11 +97,16 @@ def test_config_sections_defaults(self, mock_is_buildservice_worker): assert runtime_config.get_container_compression() is True assert runtime_config.get_iso_tool_category() == 'xorriso' assert runtime_config.get_oci_archive_tool() == 'umoci' - assert runtime_config.get_mapper_tool() == 'partx' + assert runtime_config.get_mapper_tool() == 'kpartx' assert runtime_config.get_package_changes() is False assert runtime_config.\ get_credentials_verification_metadata_signing_key_file() == '' + mock_get_platform_name.return_value = 'x86_64' + with patch.dict('os.environ', {'HOME': '../data/kiwi_config/defaults'}): + runtime_config = RuntimeConfig(reread=True) + assert runtime_config.get_mapper_tool() == 'partx' + def test_config_sections_invalid(self): with patch.dict('os.environ', {'HOME': '../data/kiwi_config/invalid'}): runtime_config = RuntimeConfig(reread=True)