FS#64853 - [libguestfs] guestfsd in the guest image is broken

Attached to Project: Community Packages
Opened by Ivan Shapovalov (intelfx) - Monday, 16 December 2019, 00:35 GMT
Last edited by Robin Broda (coderobe) - Sunday, 07 June 2020, 12:08 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Robin Broda (coderobe)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

guestfsd inside of the guest image in community-testing/libguestfs cannot start due to a missing libtsk.so.13 (presumably a soname mismatch), which renders libguestfs unusable.
Rebuilding libguestfs package locally via the community-testing PKGBUILD fixes the problem.

Additional info:
* community-testing/libguestfs 1.40.2-10
* full output of `LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 guestfish --remote` attached

Steps to reproduce:

eval $(LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 guestfish --listen 2>guestfish.log)
guestfish --remote -- disk-create /tmp/test.qcow2 qcow2 256M
guestfish --remote -- add /tmp/test.qcow2
guestfish --remote -- run
This task depends upon

Closed by  Robin Broda (coderobe)
Sunday, 07 June 2020, 12:08 GMT
Reason for closing:  Fixed
Additional comments about closing:  libguestfs 1.42.0-2
Comment by Toolybird (Toolybird) - Monday, 16 December 2019, 02:01 GMT
This is actually a bug in supermin tickled by recent kernels.

A patch has been posted upstream. Full story here:

https://bugzilla.redhat.com/show_bug.cgi?id=1770304
Comment by Robin Broda (coderobe) - Monday, 16 December 2019, 10:28 GMT
There are more issues than this. libguestfs is only available in testing and marked as known-bad. I'm waiting on upstream for this, anyways, and then need to figure out the spurious build failures...
Comment by Ivan Shapovalov (intelfx) - Monday, 16 December 2019, 16:52 GMT
Oh, okay, it's more complicated than I thought. Guess I just got lucky with my rebuild?
Comment by Toolybird (Toolybird) - Monday, 16 December 2019, 21:49 GMT
> spurious build failures

Interesting. Not seeing those here.

However my current setup is hacked together in a custom fashion:

(a) have moved on to the 1.41 dev versions
(b) opted to build my own "Fixed Appliance" (as opposed to the AUR method of downloading a pre-built fixed appliance from upstream)

Point (b) is supported by upstream but is not the recommended or optimal way to use libguestfs. I chose this method partly because supermin doesn't function properly in the presence of a custom repo in pacman.conf. See here:

https://bugzilla.redhat.com/show_bug.cgi?id=1683798

Either way, would strongly encourage you to apply supermin symlink patch otherwise libguestfs is badly broken when using kernel >= 5.3.8
Comment by Toolybird (Toolybird) - Wednesday, 22 April 2020, 06:47 GMT
Ok, I finally have this package straightened out and running in the optimal and "recommended by upstream" fashion. It's worth the effort IMHO, as virt-sparsify is possibly up there with the greatest pieces of software ever written 😉

What you need to do:

1. Upgrade to latest release of supermin (5.2.0)
2. Apply this Arch specific supermin patch (will be in next release):
https://github.com/libguestfs/supermin/commit/c05b77000f6a13ac2932121bd625574eea6d5a80
3. Upgrade to latest libguestfs release (1.42.0)

I've attached my personal PKGBUILD which is not suitable for Arch as is, but can definitely be used as a guide.

Trust me, I've been through the crazy list of deps with a Fine Tooth Comb™️. This is not something any sane person wants to do.

Note:
- I've broken the list of deps up into categories, reflecting my personal preference. Should be self explanatory.
- I haven't built all the bindings (only Perl, Python, OCaml, gobject-introspection)
- To run the quickcheck test you have to have /dev/kvm available in the chroot. This can be achieved by passing "-d /dev/kvm" to makechrootpkg. Not sure if this is possible with Arch build infra.

Good luck.
   PKGBUILD (3.2 KiB)
Comment by Robin Broda (coderobe) - Wednesday, 22 April 2020, 12:37 GMT
Thanks a lot, this is super useful - i'll be going through this and applying it to supermin and libguestfs in testing later.
Comment by Robin Broda (coderobe) - Wednesday, 06 May 2020, 15:23 GMT
pushed a new release.. please test!
Comment by hexchain (hexchain) - Friday, 05 June 2020, 22:37 GMT
I'm getting a similar error:

guestfsd: error while loading shared libraries: libyara.so.3: cannot open shared object file: No such file or directory

It seems that yara bumped its soname and only provides /usr/lib/libyara.so.4 now.

supermin 5.2.0-2
libguestfs 1.42.0-1
Comment by hexchain (hexchain) - Saturday, 06 June 2020, 11:02 GMT
Rebuilding libguestfs using extra-x86_64-build fixed it for me.

Loading...