[Libguestfs] [PATCH] appliance: Fix searching for shared libraries on usr-merged Debian systems

Richard W.M. Jones rjones at redhat.com
Tue Aug 31 14:50:17 UTC 2021


On Tue, Aug 31, 2021 at 03:24:08PM +0200, Hilko Bengen wrote:
> 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
> ---
>  appliance/Makefile.am | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/appliance/Makefile.am b/appliance/Makefile.am
> index a213e12be4..6dd1df75a6 100644
> --- a/appliance/Makefile.am
> +++ b/appliance/Makefile.am
> @@ -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/'

Thanks, I pushed it.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list