]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Add compat with older nspawn that doesn't know --rlimit
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Thu, 4 Aug 2022 12:54:00 +0000 (14:54 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 5 Aug 2022 07:22:21 +0000 (09:22 +0200)
Required for compat with Ubuntu 18.04

mkosi/__init__.py
mkosi/backend.py

index fbc8d9b995393fe771a2c3f1099ab9dbdbaa9c52..9cce217a529da1fa0e59205f87226aa4796d4a93 100644 (file)
@@ -86,6 +86,7 @@ from .backend import (
     is_epel_variant,
     is_rpm_distribution,
     nspawn_executable,
+    nspawn_knows_arg,
     nspawn_params_for_blockdev_access,
     nspawn_rlimit_params,
     nspawn_version,
@@ -7325,10 +7326,6 @@ def install_dir(args: MkosiArgs, root: Path) -> Path:
     return args.install_dir or workspace(root).joinpath("dest")
 
 
-def nspawn_knows_arg(arg: str) -> bool:
-    return bytes("unrecognized option", "UTF-8") not in run([nspawn_executable(), arg], stderr=PIPE, check=False).stderr
-
-
 def run_build_script(args: MkosiArgs, root: Path, raw: Optional[BinaryIO]) -> None:
     if args.build_script is None:
         return
index 48c7e30d2312304a7a473f1d1fcad83c2861881a..9402a5d341a7768e1414b19c4743cf0b4a1b53c1 100644 (file)
@@ -610,6 +610,10 @@ def var_tmp(root: Path) -> Path:
     return p
 
 
+def nspawn_knows_arg(arg: str) -> bool:
+    return "unrecognized option" not in run([nspawn_executable(), arg], stderr=subprocess.PIPE, check=False, text=True).stderr
+
+
 def nspawn_params_for_blockdev_access(args: MkosiArgs, loopdev: Path) -> List[str]:
     assert args.partition_table is not None
 
@@ -643,7 +647,7 @@ def format_rlimit(rlimit: int) -> str:
 def nspawn_rlimit_params() -> Sequence[str]:
     return [
         f"--rlimit=RLIMIT_CORE={format_rlimit(resource.RLIMIT_CORE)}",
-    ]
+    ] if nspawn_knows_arg("--rlimit") else []
 
 
 def nspawn_executable() -> str: