diff --git a/pungi/scripts/create_packages_json.py b/pungi/scripts/create_packages_json.py index 620a0f2f..23bbd4a2 100644 --- a/pungi/scripts/create_packages_json.py +++ b/pungi/scripts/create_packages_json.py @@ -331,12 +331,20 @@ class PackagesGenerator: result = package.arch return result - def is_skipped_module_package(self, package: Package) -> bool: + def is_skipped_module_package( + self, + package: Package, + variant_arch: str, + ) -> bool: + package_key = self.get_package_key(package, variant_arch) # Even a module package will be added to packages.json if # it presents in the list of included packages return 'module' in package.release and not any( - re.search(included_package, package.name) - for included_package in self.included_packages + re.search( + f'^{included_pkg}$', + package_key, + ) or included_pkg in (package.name, package_key) + for included_pkg in self.included_packages ) def is_excluded_package( @@ -345,11 +353,13 @@ class PackagesGenerator: variant_arch: str, excluded_packages: List[str], ) -> bool: + package_key = self.get_package_key(package, variant_arch) return any( re.search( - excluded_pkg, - self.get_package_key(package, variant_arch), - ) for excluded_pkg in excluded_packages + f'^{excluded_pkg}$', + package_key, + ) or excluded_pkg in (package.name, package_key) + for excluded_pkg in excluded_packages ) @staticmethod @@ -376,18 +386,21 @@ class PackagesGenerator: for repo_info in variant_info.repos: is_reference = repo_info.is_reference for package in self.get_packages_iterator(repo_info=repo_info): - if self.is_skipped_module_package(package): - continue - if self.is_excluded_package( - package, - variant_info.arch, - self.excluded_packages, + if self.is_skipped_module_package( + package=package, + variant_arch=variant_info.arch, ): continue if self.is_excluded_package( - package, - variant_info.arch, - variant_info.excluded_packages, + package=package, + variant_arch=variant_info.arch, + excluded_packages=self.excluded_packages, + ): + continue + if self.is_excluded_package( + package=package, + variant_arch=variant_info.arch, + excluded_packages=variant_info.excluded_packages, ): continue package_key = self.get_package_key(