test: ignore missing libudev when creating the test image

Same scenario as with libsystemd - ldd might use unprefixed RPATH, and
we install our own stuff into the image unconditionally anyway.

Also, bail out early if we hit a missing DSO with a possibly helpful
message.
This commit is contained in:
Frantisek Sumsal 2023-08-04 18:02:01 +02:00 committed by Yu Watanabe
parent 9afd4dde22
commit 04bce24d4e

View File

@ -2331,14 +2331,7 @@ inst_libs() {
[[ "$line" = 'not a dynamic executable' ]] && break
# Ignore errors about our own stuff missing. This is most likely caused
# by ldd attempting to use the unprefixed RPATH.
[[ "$line" =~ libsystemd.*\ not\ found ]] && continue
if [[ "$line" =~ $so_regex ]]; then
file="${BASH_REMATCH[1]}"
[[ -e "${initdir:?}/$file" ]] && continue
inst_library "$file"
continue
fi
[[ "$line" =~ (libsystemd|libudev).*\ not\ found ]] && continue
if [[ "$line" =~ not\ found ]]; then
dfatal "Missing a shared library required by $bin."
@ -2347,6 +2340,12 @@ inst_libs() {
dfatal "Cannot create a test image."
exit 1
fi
if [[ "$line" =~ $so_regex ]]; then
file="${BASH_REMATCH[1]}"
[[ -e "${initdir:?}/$file" ]] && continue
inst_library "$file"
fi
done < <(LC_ALL=C ldd "$bin" 2>/dev/null)
}