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):