commit: 8c2d81eb205bf05445eca616818681e047639eb5 Author: Raul E Rangel <rrangel <AT> chromium <DOT> org> AuthorDate: Tue Sep 19 20:43:21 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Oct 13 10:19:00 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=8c2d81eb
config: Don't directly modify FEATURES Iterating on self.features returns items in a non-deterministic order, it also leaves self.features out of sync. If we instead use the `remove` method, the values get sorted and synchronized correctly. Bug: https://bugs.gentoo.org/914441 Signed-off-by: Raul E Rangel <rrangel <AT> chromium.org> Signed-off-by: Sam James <sam <AT> gentoo.org> lib/portage/package/ebuild/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/portage/package/ebuild/config.py b/lib/portage/package/ebuild/config.py index e07d27e8fc..3ee7fd65ed 100644 --- a/lib/portage/package/ebuild/config.py +++ b/lib/portage/package/ebuild/config.py @@ -2204,7 +2204,7 @@ class config: # "test" is in IUSE and USE=test is masked, so execution # of src_test() probably is not reliable. Therefore, # temporarily disable FEATURES=test just for this package. - self["FEATURES"] = " ".join(x for x in self.features if x != "test") + self.features.remove("test") # Allow _* flags from USE_EXPAND wildcards to pass through here. use.difference_update(
