Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 911274 - app-emulation/virtiofsd-1.6.1 has mismatched the virtiofsd path in 40-qemu-virtiofsd.json
Summary: app-emulation/virtiofsd-1.6.1 has mismatched the virtiofsd path in 40-qemu-vi...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal (vote)
Assignee: Michal Prívozník
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2023-07-27 04:00 UTC by Yuhu.Zhao
Modified: 2023-08-01 02:07 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuhu.Zhao 2023-07-27 04:00:04 UTC
After installing app-emulation/virtiofsd-1.6.1, guest failed to start with error: "error: internal error: virtiofsd binary '/usr/libexec/virtiofsd' is not executable"



Reproducible: Always

Steps to Reproduce:
1. start any guest
2. navigate to "Add Hardware" in virt-manager
3. choose "Filesystem" and choose driver "virtiofs"
4. restart the guest
5. then it report error:
"error: internal error: virtiofsd binary '/usr/libexec/virtiofsd' is not executable"

Actual Results:  
# qlist app-emulation/virtiofsd
/usr/share/qemu/vhost-user/40-qemu-virtiofsd.json
/usr/bin/virtiofsd

then, check 40-qemu-virtiofsd.json, the expected binary path is "/usr/libexec/virtiofsd", but the package installed in /usr/bin/virtiofsd

Further check it again, there is actually no '/usr/libexec/virtiofsd' installed by the package.

Expected Results:  
have the 40-qemu-virtiofsd.json point to the correct binary path.

create an softlink resolved the issue:
# ln -s /usr/bin/virtiofsd /usr/libexec/virtiofsd
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-27 04:01:14 UTC
Please share which (full) versions of libvirt and qemu are installed, thanks.
Comment 2 Yuhu.Zhao 2023-07-27 04:36:07 UTC
(In reply to Sam James from comment #1)
> Please share which (full) versions of libvirt and qemu are installed, thanks.

Hello, here are the qemu and libvirt info:
```
localhost ~ # eix -e app-emulation/qemu
[I] app-emulation/qemu
     Available versions:  7.2.0-r3^t ~7.2.1^t 7.2.3^t ~7.2.3-r1^t ~7.2.4^t ~8.0.0-r1^t ~8.0.2^t ~8.0.2-r2^t 8.0.3^t **9999*l^t {accessibility +aio alsa bpf bzip2 capstone +curl debug (+)doc +fdt +filecaps fuse glusterfs +gnutls gtk infiniband io-uring iscsi jack jemalloc +jpeg lzo multipath ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire plugins +png pulseaudio python rbd sasl sdl sdl-image +seccomp selinux +slirp smartcard snappy spice ssh static static-user systemtap test udev usb usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen zstd PYTHON_TARGETS="python3_10 python3_11 python3_12" QEMU_SOFTMMU_TARGETS="aarch64 alpha arm avr cris hppa i386 loongarch64 m68k microblaze microblazeel mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 rx s390x sh4 sh4eb sparc sparc64 tricore x86_64 xtensa xtensaeb" QEMU_USER_TARGETS="aarch64 aarch64_be alpha arm armeb cris hexagon hppa i386 loongarch64 m68k microblaze microblazeel mips mips64 mips64el mipsel mipsn32 mipsn32el nios2 or1k ppc ppc64 ppc64le riscv32 riscv64 s390x sh4 sh4eb sparc sparc64 sparc32plus x86_64 xtensa xtensaeb"}
     Installed versions:  8.0.3^t(04:19:06 PM 07/26/2023)(aio alsa bpf bzip2 curl fdt filecaps gnutls gtk io-uring jpeg ncurses nls opengl oss pam pin-upstream-blobs png pulseaudio sdl seccomp slirp spice udev usb usbredir vhost-net virgl virtfs vnc xattr zstd -accessibility -capstone -debug -doc -fuse -glusterfs -infiniband -iscsi -jack -jemalloc -lzo -multipath -nfs -numa -plugins -python -rbd -sasl -sdl-image -selinux -smartcard -snappy -ssh -static-user -systemtap -test -vde -vte -xen PYTHON_TARGETS="python3_11 -python3_10 -python3_12" QEMU_SOFTMMU_TARGETS="x86_64 -aarch64 -alpha -arm -avr -cris -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -nios2 -or1k -ppc -ppc64 -riscv32 -riscv64 -rx -s390x -sh4 -sh4eb -sparc -sparc64 -tricore -xtensa -xtensaeb" QEMU_USER_TARGETS="-aarch64 -aarch64_be -alpha -arm -armeb -cris -hexagon -hppa -i386 -loongarch64 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -nios2 -or1k -ppc -ppc64 -ppc64le -riscv32 -riscv64 -s390x -sh4 -sh4eb -sparc -sparc64 -sparc32plus -x86_64 -xtensa -xtensaeb")
     Homepage:            https://www.qemu.org https://www.linux-kvm.org
     Description:         QEMU + Kernel-based Virtual Machine userland tools

```

```
localhost ~ # eix -e app-emulation/libvirt
[I] app-emulation/libvirt
     Available versions:  9.3.0(0/9.3.0)^t ~9.4.0-r3(0/9.4.0)^t ~9.5.0(0/9.5.0)^t **9999(0/9999)*l^t {apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs iscsi iscsi-direct libssh libssh2 +libvirtd lvm lxc nfs nls numa openvz parted pcap policykit +qemu rbd sasl selinux test +udev verify-sig +virt-network virtualbox wireshark-plugins xen zfs}
     Installed versions:  9.3.0(0/9.3.0)^t(09:29:01 PM 06/09/2023)(caps libvirtd nls policykit qemu udev virt-network -apparmor -audit -bash-completion -dtrace -firewalld -fuse -glusterfs -iscsi -iscsi-direct -libssh -libssh2 -lvm -lxc -nfs -numa -openvz -parted -pcap -rbd -sasl -selinux -test -verify-sig -virtualbox -wireshark-plugins -xen -zfs)
     Homepage:            https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/
     Description:         C toolkit to manipulate virtual machines
```
Comment 3 Larry the Git Cow gentoo-dev 2023-07-27 12:00:53 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a38ac0e9f9f4f6b7c0f8fbca13b6ae9256ad6ed

commit 0a38ac0e9f9f4f6b7c0f8fbca13b6ae9256ad6ed
Author:     Michal Privoznik <michal.privoznik@gmail.com>
AuthorDate: 2023-07-27 10:08:48 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-27 12:00:29 +0000

    app-emulation/virtiofsd: Move virtiofsd binary into /usr/libexec
    
    In one of my recent commits I've introduced JSON descriptor file
    that libvirt uses when learning about helper binaries
    (40-qemu-virtiofsd.json). What I did not realize is that the file
    tells libvirt to execute /usr/libexec/virtiofsd while our ebuilds
    install the binary under /usr/bin/.
    
    I haven't found a way to tell cargo_src_install where to install
    the binary so we have to move it 'manually'.
    
    Bug: https://bugs.gentoo.org/909372
    Closes: https://bugs.gentoo.org/911274
    Signed-off-by: Michal Privoznik <michal.privoznik@gmail.com>
    Closes: https://github.com/gentoo/gentoo/pull/32062
    Signed-off-by: Sam James <sam@gentoo.org>

 .../virtiofsd/{virtiofsd-1.5.1-r1.ebuild => virtiofsd-1.5.1-r2.ebuild} | 3 +++
 .../virtiofsd/{virtiofsd-1.6.1.ebuild => virtiofsd-1.6.1-r1.ebuild}    | 3 +++
 app-emulation/virtiofsd/virtiofsd-9999.ebuild                          | 3 +++
 3 files changed, 9 insertions(+)
Comment 4 Yuhu.Zhao 2023-08-01 02:07:33 UTC
Thanks!