00systemd: check if systemd version is a number
The recent systemd upstream introduced a slightly modified version string which included information about a git commit, which however broke the version check in dracut. Unfortunately, the (( )) bash syntax went along with it in certain cases and introduced a pretty nasty issue, when the systemd would boot up but with slightly changed environment. To prevent this from happening in the future, let's at least check if the version parsed from the `systemd --version` output is a comparable number.master
parent
44f2fe5170
commit
53cb081b4c
|
|
@ -5,6 +5,11 @@ check() {
|
||||||
[[ $mount_needs ]] && return 1
|
[[ $mount_needs ]] && return 1
|
||||||
if require_binaries $systemdutildir/systemd; then
|
if require_binaries $systemdutildir/systemd; then
|
||||||
SYSTEMD_VERSION=$($systemdutildir/systemd --version | { read a b a; echo $b; })
|
SYSTEMD_VERSION=$($systemdutildir/systemd --version | { read a b a; echo $b; })
|
||||||
|
# Check if the systemd version is a valid number
|
||||||
|
if ! [[ $SYSTEMD_VERSION =~ ^[0-9]+$ ]]; then
|
||||||
|
dfatal "systemd version is not a number ($SYSTEMD_VERSION)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
(( $SYSTEMD_VERSION >= 198 )) && return 0
|
(( $SYSTEMD_VERSION >= 198 )) && return 0
|
||||||
return 255
|
return 255
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue