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(

Reply via email to