diff --git a/apollo/rpmworker/repomd.py b/apollo/rpmworker/repomd.py index 1ee4cff..717763f 100644 --- a/apollo/rpmworker/repomd.py +++ b/apollo/rpmworker/repomd.py @@ -11,13 +11,13 @@ import yaml NVRA_RE = re.compile( - r"^(\S+)-([\w~%.+^]+)-(\w+(?:\.[\w~%+]+)+?)(?:\.(\w+))?(?:\.rpm)?$" + r"^(\S+)-([\w~%.+^]+)-([\w~^]+(?:\.[\w~%+^]+)+?)(?:\.(\w+))?(?:\.rpm)?$" ) NEVRA_RE = re.compile( - r"^(\S+)-(?:(\d)+:)([\w~%.+^]+)-(\w+(?:\.[\w~%+]+)+?)(?:\.(\w+))?(?:\.rpm)?$" + r"^(\S+)-(?:(\d)+:)([\w~%.+^]+)-([\w~^]+(?:\.[\w~%+^]+)+?)(?:\.(\w+))?(?:\.rpm)?$" ) EPOCH_RE = re.compile(r"(\d+):") -DIST_RE = re.compile(r"(\.el\d(?:_\d|))") +DIST_RE = re.compile(r"(\.el\d+(?:_\d+|))") MODULE_DIST_RE = re.compile(r"\.module.+$") diff --git a/apollo/rpmworker/rh_matcher_activities.py b/apollo/rpmworker/rh_matcher_activities.py index 3f5ec3d..f5e661b 100644 --- a/apollo/rpmworker/rh_matcher_activities.py +++ b/apollo/rpmworker/rh_matcher_activities.py @@ -682,7 +682,13 @@ async def process_repomd( # becomes the package stripped of any module information # and with the nvra prepended with 'module.' cleaned, raw = repomd.clean_nvra_pkg(pkg) - name = repomd.NVRA_RE.search(cleaned).group(1) + match = repomd.NVRA_RE.search(cleaned) + if not match: + logger.warning( + "Skipping package with unrecognized NVRA: %s", cleaned + ) + continue + name = match.group(1) if cleaned not in raw_pkg_nvras: raw_pkg_nvras[cleaned] = []