From a22f663d4a008413be9ba9038d1d5553c5dee106 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 18 2018 12:17:13 +0000 Subject: [PATCH 1/2] Add reproducer for #954 --- diff --git a/tests/test_utils/test_utils_mse.py b/tests/test_utils/test_utils_mse.py index 233854f..87541e4 100644 --- a/tests/test_utils/test_utils_mse.py +++ b/tests/test_utils/test_utils_mse.py @@ -137,6 +137,7 @@ class TestUtilsModuleStreamExpansion: self._make_module("foo:2:0:c5", {"platform": ["f29"]}, {}) self._make_module("platform:f28:0:c10", {}, {}) self._make_module("platform:f29:0:c11", {}, {}) + self._make_module("app:1:0:c6", {"platform": ["f29"]}, {}) def test_generate_expanded_mmds_context(self): self._generate_default_modules() @@ -206,6 +207,14 @@ class TestUtilsModuleStreamExpansion: set([ frozenset(['gtk:1']) ])), + + ({}, {"app": ["1"]}, False, + set([ + frozenset(['app:1:0:c6', 'platform:f29:0:c11']) + ]), + set([ + frozenset([]) + ])), ]) def test_generate_expanded_mmds_buildrequires( self, requires, build_requires, stream_ambigous, expected_xmd, From 31d92b14847963d54bd70678b1e724871af4967a Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Jun 18 2018 12:25:44 +0000 Subject: [PATCH 2/2] Fix MSE for self-buildrequiring modules We can't rely on matching name-stream to distinguish which module is currently being built as modules can buildrequire older versions of the same module-stream. Fixes #954 --- diff --git a/module_build_service/utils/mse.py b/module_build_service/utils/mse.py index b737591..0e680ee 100644 --- a/module_build_service/utils/mse.py +++ b/module_build_service/utils/mse.py @@ -297,9 +297,13 @@ def generate_expanded_mmds(session, mmd, raise_if_stream_ambigous=False, default # Get the values for dependencies_id, self_nsvca and req_name_stream variables. for nsvca in requires: - req_name, req_stream, _ = nsvca.split(":", 2) - if req_name == current_mmd.get_name() and req_stream == current_mmd.get_stream(): - dependencies_id = int(nsvca.split(":")[3]) + req_name, req_stream, _, req_context, req_arch = nsvca.split(":") + if req_arch == 'src': + assert req_name == current_mmd.get_name() + assert req_stream == current_mmd.get_stream() + assert dependencies_id is None + assert self_nsvca is None + dependencies_id = int(req_context) self_nsvca = nsvca continue req_name_stream[req_name] = req_stream