From eb1ab920cf8d92563abbc2912cc152103a72e3ba Mon Sep 17 00:00:00 2001 From: MichaIng Date: Tue, 1 Feb 2022 16:30:37 +0100 Subject: [PATCH] Make postinst script failsafe "systemctl restart systemd-binfmt" can only succeed when systemd is the used init system and when the binfmt_misc kernel module is available. The kernel module may not be available right after a kernel upgrade or within a container where it needs to be loaded on the host. The common check for whether systemd is used or not is to check for the directory "/run/systemd/system" which is hereby added. Since modprobe may not be available and within a container always fails (regardless whether the host provides it), the service restart is allowed to fail without failing the postinst script and hence the package install. If the service restart fails, Box86 support in binfmt becomes effective on next system restart, given binfmt_misc is generally available. Furthermore binfmt is a convenience feature while generally Box86 can be used without it. It is hence no reason to hard fail the package install when systemd-binfmt fails for any reason. Signed-off-by: MichaIng --- postinst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/postinst b/postinst index c0dedd6e..c1164e9b 100755 --- a/postinst +++ b/postinst @@ -1,2 +1,4 @@ #!/bin/sh -systemctl restart systemd-binfmt +if [ -d '/run/systemd/system' ]; then + systemctl restart systemd-binfmt || : +fi