From 388b31b6939d8959a2de4f4f341564b56d35b9cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= Date: Thu, 27 Sep 2018 15:12:03 +0200 Subject: [PATCH] Fix filtering noarch RPMs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The list of arches we compare against should not include multilib arches. Otherwise excluding does not behave correctly. Example: A build has ExcludeArch: i686 (because it only works on 64 bit arches). A noarch package is built there, but it would be excluded from x86_64. Relates: https://pagure.io/pungi/pull-request/1050 Signed-off-by: Lubomír Sedlář --- module_build_service/builder/KojiContentGenerator.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/module_build_service/builder/KojiContentGenerator.py b/module_build_service/builder/KojiContentGenerator.py index c8a43079..b633b04d 100644 --- a/module_build_service/builder/KojiContentGenerator.py +++ b/module_build_service/builder/KojiContentGenerator.py @@ -451,6 +451,10 @@ class KojiContentGenerator(object): # "i686" -> [] multilib_arches = set(compatible_arches) - set( pungi.arch.get_compatible_arches(arch)) + # List of architectures that should be in ExclusiveArch tag or missing + # from ExcludeArch tag. Multilib should not be enabled here. + exclusive_arches = pungi.arch.get_valid_arches( + arch, multilib=False, add_noarch=False) # Modulemd.SimpleSet into which we will add the RPMs. rpm_artifacts = Modulemd.SimpleSet() @@ -465,9 +469,9 @@ class KojiContentGenerator(object): # Skip the RPM if it is excluded on this arch or exclusive # for different arch. - if rpm["excludearch"] and set(rpm["excludearch"]) & set(compatible_arches): + if rpm["excludearch"] and set(rpm["excludearch"]) & set(exclusive_arches): continue - if rpm["exclusivearch"] and not set(rpm["exclusivearch"]) & set(compatible_arches): + if rpm["exclusivearch"] and not set(rpm["exclusivearch"]) & set(exclusive_arches): continue # Check the "whitelist" buildopts section of MMD.