]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Compile kernel version regex pattern
authorJörg Behrmann <behrmann@physik.fu-berlin.de>
Wed, 24 Sep 2025 09:43:45 +0000 (11:43 +0200)
committerJörg Behrmann <behrmann@physik.fu-berlin.de>
Wed, 24 Sep 2025 10:42:01 +0000 (12:42 +0200)
mkosi/__init__.py

index 566e8ce54272554ee066b03e6e423097757cc186..24ebd87318279872e7aec670f768991e878ce6f8 100644 (file)
@@ -171,7 +171,7 @@ from mkosi.versioncomp import GenericVersion
 from mkosi.vmspawn import run_vmspawn
 
 # Allowed characters from https://uapi-group.org/specifications/specs/version_format_specification
-KERNEL_VERSION_PATTERN = r"\d+\.\d+[\w.\-~^+]*"
+KERNEL_VERSION_PATTERN = re.compile(r"\d+\.\d+[\w.\-~^+]*")
 
 
 @contextlib.contextmanager
@@ -1298,9 +1298,7 @@ def gzip_binary(context: Context) -> str:
 def kernel_get_ver_from_modules(context: Context) -> Optional[str]:
     # Try to get version from the first dir under usr/lib/modules but fail if multiple versions are found
     versions = [
-        p.name
-        for p in (context.root / "usr/lib/modules").glob("*")
-        if re.match(KERNEL_VERSION_PATTERN, p.name)
+        p.name for p in (context.root / "usr/lib/modules").glob("*") if KERNEL_VERSION_PATTERN.match(p.name)
     ]
     if len(versions) > 1:
         die(
@@ -1321,7 +1319,7 @@ def fixup_vmlinuz_location(context: Context) -> None:
 
             # Extract kernel version pattern from filename
             filename = d.name.removeprefix(f"{type}-")
-            match = re.search(KERNEL_VERSION_PATTERN, filename)
+            match = KERNEL_VERSION_PATTERN.search(filename)
             kver = match.group(0) if match else kernel_get_ver_from_modules(context)
             if kver is None:
                 logging.debug("Unable to get kernel version from modules directory")