diff --git a/kiwi/xml_state.py b/kiwi/xml_state.py index e72be164c65..15786c3d097 100644 --- a/kiwi/xml_state.py +++ b/kiwi/xml_state.py @@ -1912,9 +1912,22 @@ def get_repositories_signing_keys(self) -> List[str]: Get list of signing keys specified on the repositories """ key_file_list: List[str] = [] + release_version = self.get_release_version() + release_vars = [ + '$releasever', + '${releasever}' + ] for repository in self.get_repository_sections() or []: for signing in repository.get_source().get_signing() or []: - key_file_list.append(Uri(signing.get_key()).translate()) + normalized_key_url = Uri(signing.get_key()).translate() + if release_version: + for release_var in release_vars: + if release_var in normalized_key_url: + normalized_key_url = normalized_key_url.replace( + release_var, release_version + ) + if normalized_key_url not in key_file_list: + key_file_list.append(normalized_key_url) return key_file_list def set_repository( diff --git a/test/data/example_config.xml b/test/data/example_config.xml index e1054bbab04..1a71a0e1a26 100644 --- a/test/data/example_config.xml +++ b/test/data/example_config.xml @@ -184,6 +184,8 @@ + + diff --git a/test/unit/xml_state_test.py b/test/unit/xml_state_test.py index 3705599c97d..1c77d372a6b 100644 --- a/test/unit/xml_state_test.py +++ b/test/unit/xml_state_test.py @@ -1078,9 +1078,12 @@ def test_get_installintrd_modules(self): @patch('kiwi.system.uri.os.path.abspath') def test_get_repositories_signing_keys(self, mock_root_path): - mock_root_path.side_effect = lambda x: f'/some/path/{x}' + mock_root_path.side_effect = lambda x: f'(mock_abspath){x}' assert self.state.get_repositories_signing_keys() == [ - '/some/path/key_a', '/some/path/key_b' + '(mock_abspath)key_a', + '(mock_abspath)/usr/share/distribution-gpg-keys/' + 'fedora/RPM-GPG-KEY-fedora-15.3-primary', + '(mock_abspath)key_b' ] def test_this_path_resolver(self):