FS#45819 - [qemu] Think glusterfs needs to be a depends

Attached to Project: Arch Linux
Opened by James Harvey (jamespharvey20) - Wednesday, 29 July 2015, 00:07 GMT
Last edited by Sébastien Luttringer (seblu) - Monday, 03 August 2015, 22:09 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Tobias Powalowski (tpowa)
Sébastien Luttringer (seblu)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

PKGBUILD build() calls configure with --enable-glusterfs

Pretty sure this makes the package glusterfs a depends. Without it, if I try creating a virtual machine, I get: "internal error: process exited while connecting to monitor: Failed to open module: libgfapi.so.0: cannot open shared object file: No such file or directory".

That is while not using anything glusterfs related, attempting to use pure LVM storage. It's still expecting to be able to load the shared library.



Also, tried building this in a clean chroot to check namcap output to see if any others might need to be a depends rather than makedepends or optdepends, but I'm running into:

=====
ERROR: User requested feature spice
configure was not able to find it.
Install spice-server(>=0.12.0) and spice-protocol(>=0.12.3) devel
=====

spice and spice-protocol are installed in the cleanchroot. /usr/lib/pkgconfig/spice-server.pc exists. Even exporting PKG_CONFIG_PATH=/usr/lib/pkgconfig doesn't get configure running for me.
Closed by  Sébastien Luttringer (seblu)
Monday, 03 August 2015, 22:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  qemu 2.3.0-7
Comment by Vincenzo Maffione (vmaffione) - Wednesday, 29 July 2015, 13:48 GMT
Indeed, when running qemu-system-x86_64 I get this error:

Failed to open module: libgfapi.so.0: cannot open shared object file: No such file or directory

that does not prevent the VM to run, but it's still annoying.

Installing the glusterfs package removes the issue.
Comment by Peter Wu (Lekensteyn) - Wednesday, 29 July 2015, 15:19 GMT
I suggest making a split package for gluster and/or rbd for a specific /usr/lib/qemu/block-*.so. Maybe qemu-block-* or qemu-mod-*?

/usr/lib/qemu/block-gluster.so:
libgfapi.so.0 => not found
/usr/lib/qemu/block-rbd.so:
librbd.so.1 => not found
librados.so.2 => not found

It adds more complexity for the packager but avoids having to pull a huge pile of unnecessary dependencies for most users.
Comment by Sébastien Luttringer (seblu) - Wednesday, 29 July 2015, 15:44 GMT
There is also warnings when other modules are not installed:

Failed to open module: libiscsi.so.4: cannot open shared object file: No such file or directory
Failed to open module: librbd.so.1: cannot open shared object file: No such file or directory
Failed to open module: libgfapi.so.0: cannot open shared object file: No such file or directory

Even that message is useless, is there any issue around there?
Comment by Peter Wu (Lekensteyn) - Wednesday, 29 July 2015, 16:03 GMT
There are no issues if you do not use said block devices. Remove the files /usr/lib/qemu/block-{gluster,rbd}.so if it bothers you (example command to reproduce: qemu-io --help).
Comment by Peter Wu (Lekensteyn) - Wednesday, 29 July 2015, 16:07 GMT
s/block devices/block drivers/
Comment by Sébastien Luttringer (seblu) - Wednesday, 29 July 2015, 16:37 GMT
I think the best think to do is to provide a patch to upstream to remove these messages. They are not welcome as we build qemu with --enable-modules which allow to use qemu without pulling heavy deps when they are not needed.
Comment by Peter Wu (Lekensteyn) - Wednesday, 29 July 2015, 17:27 GMT
Had a chat in #qemu at OFTC, pm215 (QEMU developer) claims it is a packaging bug.

19:19:27 < pm215> the module should be in a package which depends on the various external libraries it links against
...
19:20:39 < pm215> ok, so qemu is correct, and whatever is failing to install librbd.so is the thing that needs fixing

Debian has a qemu-block-extra package for curl, iscsi, rbd and ssh: https://packages.debian.org/sid/qemu-block-extra

Maybe that is an approach to follow? It could be further split into a qemu-block-{curl,iscsi,rbd,ssh} package, hmm.
Comment by Sébastien Luttringer (seblu) - Friday, 31 July 2015, 09:55 GMT
Thanks for pointing this to me. I will put module in sub-packages with rights deps.
Comment by Sébastien Luttringer (seblu) - Monday, 03 August 2015, 13:57 GMT
could you confirm it's fixed with version 2.3.0-6?
Comment by Peter Wu (Lekensteyn) - Monday, 03 August 2015, 16:47 GMT
A typo in the optdepends section ("RDB block support" -> "RBD block support"). "QEMU" is spelled like that, not "Qemu". splited -> splitted.

(29/29) upgrading qemu
New optional dependencies for qemu
qemu-block-gluster: glusterfs block support
qemu-block-iscsi: iSCSI block support
qemu-block-rbd: RDB block support
samba: SMB/CIFS server support [installed]

Seems to work otherwise (package dependencies exist, did not verify its contents though).

Loading...