appliance: Fix searching for shared libraries on usr-merged Debian systems

If /lib is a symlink to usr/lib, paths to shared libraries as
determined by ld.so may differ from dpkg's file lists.

We turn the filename search pattern into a glob expression by
prefixing it with a '*', so the required packages are found again:

$ dpkg -S /lib/x86_64-linux-gnu/libpcre2-8.so.0
dpkg-query: no path found matching pattern /lib/x86_64-linux-gnu/libpcre2-8.so.0
$ dpkg -S */lib/x86_64-linux-gnu/libpcre2-8.so.0
libpcre2-8-0:amd64: /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0
This commit is contained in:
Hilko Bengen
2021-08-31 15:24:08 +02:00
committed by Richard W.M. Jones
parent 45de287447
commit 39f514b28d

View File

@@ -84,7 +84,7 @@ if HAVE_RPM
QUERY_FILES_CMD := xargs rpm -qf --qf '%{name}\n'
endif
if HAVE_DPKG
QUERY_FILES_CMD := xargs dpkg -S | cut -d: -f1
QUERY_FILES_CMD := sed -e 's,^/,\*/,' | xargs dpkg -S | cut -d: -f1
endif
if HAVE_PACMAN
QUERY_FILES_CMD := xargs pacman -Qo | sed -r 's/.* is owned by ([^ ]+) .*/\1/'