Created attachment 691923 [details] list of installed packages (qlist) Calls to `guestfish' or `virt-copy-ou' request access to `supermin', and issue an error message about LIBGUESTFS_PATH. Normally supermin is a part of app-emulation/libguestfs-appliance. Installed versions of libguestfs and libguestfs-appliance are current. No output except for error messages. Calls examples: # virt-copy-out -a Gentoo.2021-03-16-04-55-38.vdi /sbin fslibguestfs: error: cannot find any suitable libguestfs supermin, fixed or old-style appliance on LIBGUESTFS_PATH (search path: /usr/lib64/guestfs) # guestfish --ro -a Gentoo.2021-03-16-04-55-38.vdi run : download /dev/sda /dev/sdd libguestfs: error: cannot find any suitable libguestfs supermin, fixed or old-style appliance on LIBGUESTFS_PATH (search path: /usr/lib64/guestfs) Exit code was 1 in either case. ------------------- Attachements -------------------------- $ emerge --info Portage 3.0.13 (python 3.8.8-final-0, default/linux/amd64/17.1/desktop/plasma, gcc-10.2.0, glibc-2.32-r7, 5.11.6-gentoo x86_64) ================================================================= System uname: Linux-5.11.6-gentoo-x86_64-Intel-R-_Core-TM-_i7-5820K_CPU_@_3.30GHz-with-glibc2.2.5 KiB Mem: 82201896 total, 3741500 free KiB Swap: 10780252 total, 10650972 free Timestamp of repository gentoo: Sun, 14 Mar 2021 16:00:01 +0000 Head commit of repository gentoo: ebc65b360483b27111d2f727bb4aea66aa778eba sh bash 5.0_p18 ld GNU ld (Gentoo 2.35.1 p2) 2.35.1 app-shells/bash: 5.0_p18::gentoo dev-java/java-config: 2.3.1::gentoo dev-lang/perl: 5.30.3::gentoo dev-lang/python: 2.7.18_p7::gentoo, 3.8.8::gentoo, 3.9.2::gentoo dev-util/cmake: 3.18.5::gentoo sys-apps/baselayout: 2.7::gentoo sys-apps/openrc: 0.42.1-r1::gentoo sys-apps/sandbox: 2.20::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo sys-devel/automake: 1.16.2-r1::gentoo sys-devel/binutils: 2.35.1-r1::gentoo sys-devel/gcc: 10.2.0-r5::gentoo sys-devel/gcc-config: 2.3.3::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.3::gentoo sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.32-r7::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-verify-metamanifest: yes sync-rsync-verify-jobs: 1 sync-rsync-extra-opts: haskell location: /var/lib/layman/haskell masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="@FREE linux-fw-redistributable no-source-code bh-luxi" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=haswell -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -march=haswell -pipe" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -march=haswell -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -march=haswell -pipe" GENTOO_MIRRORS="http://gentoo.mirrors.ovh.net/gentoo-distfiles/" LANG="fr_FR.US-ASCII" LDFLAGS="-Wl,-O1 -Wl,--as-needed" LINGUAS="fr en" MAKEOPTS="-j6" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X a52 aac acl acpi activities alsa amd64 audio base berkdb bindist bluetooth branding bzip2 cairo cdda cdr cli crypt cups dbus declarative dri dts dvd dvdr elogind emboss encode exif flac fortran gdbm gif gpm gtk gtk3 gui iconv icu ipv6 java jpeg kde kipi kwallet lcms libglvnd libnotify libtirpc mad mng mp3 mp4 mpeg mpi multilib ncurses networkmanager nls nptl ocaml ogg opengl openmp pam pango pcre pdf phonon plasma png policykit ppds qml qt4 qt5 readline sdl seccomp semantic-desktop spell split-usr ssl startup-notification static static-libs svg tcpd threads tiff truetype udev udisks unicode upower usb video virtualbox vorbis widgets wxwidgets x264 xattr xcb xml xv xvid zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64" INPUT_DEVICES="evdev synaptics" KERNEL="linux" L10N="fr en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_8" PYTHON_TARGETS="python3_8" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="nouveau intel vmware" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS --------------------- $ eix libguestfs-appliance [I] app-emulation/libguestfs-appliance Available versions: (~)1.38.0 Installed versions: 1.38.0(00:58:15 03/17/21) fab@fabpc ~/mkg $ eix libguestfs [I] app-emulation/libguestfs Available versions: (~)1.38.6-r103(0/1.38)^t {doc erlang +fuse gtk inspect-icons introspection libvirt lua ocaml +perl python ruby selinux static-libs systemtap test KERNEL="linux" LUA_SINGLE_TARGET="+lua5-1" PYTHON_SINGLE_TARGET="python3_7 python3_8"} Installed versions: 1.38.6-r103(0/1.38)^t(01:38:05 03/17/21)(fuse gtk inspect-icons introspection libvirt lua ocaml perl ruby static-libs systemtap -doc -erlang -python -selinux -test KERNEL="linux" LUA_SINGLE_TARGET="lua5-1" PYTHON_SINGLE_TARGET="python3_8 -python3_7")
Created attachment 691926 [details] strace log of virt-copy-out example
I haven't tried but this sound suspicious: LIBGUESTFS_PATH (search path: /usr/lib64/guestfs) Considering /etc/env.d/99libguestfs-appliance should set: LIBGUESTFS_PATH=/usr/share/guestfs/appliance/ If you've just installed it, maybe you need to source /etc/profile?
(In reply to Ionen Wolkens from comment #2) > I haven't tried but this sound suspicious: > LIBGUESTFS_PATH (search path: /usr/lib64/guestfs) > > Considering /etc/env.d/99libguestfs-appliance should set: > LIBGUESTFS_PATH=/usr/share/guestfs/appliance/ > > If you've just installed it, maybe you need to source /etc/profile? Well, normally emerge should work without sourcing /etc/profile. This said, you are right, it is part of the issue. A second sub-issue is that after sourcing /etc/profile, virt-copy requested me to add myself to the kvm group. This should be automated by portage somehow (as is done for the virtualbox packages). Yet once all of this was settled, it was not the whole story. Actually it so turns out that libguestfs has a covert dependency to libpulse.so (media-sound/pulseaudio), and that the ebuild has omitted it in its dependency graph. I would advise a fix to this effect. See below: "libpulse.so.0: cannot open shared object file: No such file or directory" $ groups fab wheel audio video users plugdev kvm $ . /etc/profile $ virt-copy-out -a Gentoo.2021-03-16-04-55-38.vdi /sbin fs libguestfs: error: /usr/local/bin/qemu-system-x86_64 exited with error status 127. To see full error messages you may need to enable debugging. Do: export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1 and run the command again. For further information, read: http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs You can also run 'libguestfs-test-tool' and post the *complete* output into a bug report or message to the libguestfs mailing list. >>> after exporting the above env. vars: ibguestfs: trace: set_verbose true libguestfs: trace: set_verbose = 0 libguestfs: trace: set_path "/usr/share/guestfs/appliance/" libguestfs: trace: set_path = 0 libguestfs: create: flags = 0, handle = 0x55fe86ee9190, program = virt-copy-out libguestfs: trace: set_pgroup true libguestfs: trace: set_pgroup = 0 libguestfs: trace: add_drive "Gentoo.2021-03-16-04-55-38.vdi" "readonly:true" libguestfs: creating COW overlay to protect original drive content libguestfs: trace: get_tmpdir libguestfs: trace: get_tmpdir = "/tmp" libguestfs: trace: disk_create "/tmp/libguestfsX9reBQ/overlay1.qcow2" "qcow2" -1 "backingfile:/home/fab/mkg/Gentoo.2021-03-16-04-55-38.vdi" libguestfs: command: run: qemu-img libguestfs: command: run: \ create libguestfs: command: run: \ -f qcow2 libguestfs: command: run: \ -o backing_file=/home/fab/mkg/Gentoo.2021-03-16-04-55-38.vdi libguestfs: command: run: \ /tmp/libguestfsX9reBQ/overlay1.qcow2 qemu-img: warning: Deprecated use of backing file without explicit backing format (detected format of vdi) Formatting '/tmp/libguestfsX9reBQ/overlay1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=57671680000 backing_file=/home/fab/mkg/Gentoo.2021-03-16-04-55-38.vdi backing_fmt=vdi lazy_refcounts=off refcount_bits=16 libguestfs: trace: disk_create = 0 libguestfs: trace: add_drive = 0 libguestfs: trace: is_config libguestfs: trace: is_config = 1 libguestfs: trace: launch libguestfs: trace: max_disks libguestfs: trace: max_disks = 255 libguestfs: trace: version libguestfs: trace: version = <struct guestfs_version = major: 1, minor: 38, release: 6, extra: -gentoo, > libguestfs: trace: get_backend libguestfs: trace: get_backend = "direct" libguestfs: launch: program=virt-copy-out libguestfs: launch: version=1.38.6-gentoo libguestfs: launch: backend registered: unix libguestfs: launch: backend registered: uml libguestfs: launch: backend registered: libvirt libguestfs: launch: backend registered: direct libguestfs: launch: backend=direct libguestfs: launch: tmpdir=/tmp/libguestfsX9reBQ libguestfs: launch: umask=0022 libguestfs: launch: euid=1000 libguestfs: trace: get_backend_setting "force_tcg" libguestfs: trace: get_backend_setting = NULL (error) libguestfs: begin testing qemu features libguestfs: trace: get_cachedir libguestfs: trace: get_cachedir = "/var/tmp" libguestfs: checking for previously cached test results of /usr/local/bin/qemu-system-x86_64, in /var/tmp/.guestfs-1000 libguestfs: command: run: /usr/local/bin/qemu-system-x86_64 libguestfs: command: run: \ -display none libguestfs: command: run: \ -help /usr/local/bin/qemu-system-x86_64: error while loading shared libraries: libpulse.so.0: cannot open shared object file: No such file or directory libguestfs: error: /usr/local/bin/qemu-system-x86_64 exited with error status 127, see debug messages above libguestfs: trace: launch = -1 (error) libguestfs: trace: close libguestfs: closing guestfs handle 0x55fe86ee9190 (state 0) libguestfs: command: run: rm libguestfs: command: run: \ -rf /tmp/libguestfsX9reBQ
Update: After installing media-sound/pulseaudio, the issue was solved. So it all boils down to: + adding a media-sound/pulseaudio to the COMMON_DEPEND variable of the ebuild (I checked that it is not there) + adding user to the kvm group + hopefully avoid sourcing /etc/profile manually.
(In reply to fabrice nicol from comment #4) > + adding a media-sound/pulseaudio to the COMMON_DEPEND variable of the > ebuild (I checked that it is not there) Look at the trace again, it used /usr/local/bin/qemu-system-x86_64. portage didn't install this, if you emerged qemu with USE=-pulseaudio it'd be in /usr/bin (not /usr/local) and not need pulseaudio Please clean old files from /usr/local > + adding user to the kvm group portage can't add "your" user to groups, it doesn't know what user you use. > + hopefully avoid sourcing /etc/profile manually. portage can't control the shells you have currently open, they need to be either restarted to update automatically, or have you source manually.
OK. Issue solved after cleaning up /usr/local/ and rebuilding libguestfs. One note however: the "add user to kvm group" issue should be somehow documented on a Gentoo page (as for Virtualbox) or any other means. Running into crashes before realizing this, upon reading relatively cryptic error messages is not ideaL Many thanks.
(In reply to fabrice nicol from comment #6) > One note however: the "add user to kvm group" issue should be somehow > documented on a Gentoo page (as for Virtualbox) or any other means. Running > into crashes before realizing this, upon reading relatively cryptic error > messages is not ideaL Was the error cryptic? When you said "requested me to add myself to the kvm group" I thought it was straight forward. For the record, I don't use this, so I haven't seen the messages. Generally I do feel packages should warn when they modify /etc/env.d in a way that requires shells to load it immediately to function though, so it's one thing I think should be changed.
+ The kvm group error message was not about an obligation for the **user** to be added to the kvm group but mentioned that "libguestfs may be very slow" if user is not in kvm. I had crashes whilst I did not add myself (as a user) to group kvm. But this may be an indirect problem caused by my local qemu build. + The portage qemu install adds qemu to group kvm automatically. So this may suffice to satisfy libguestfs. Now that I have removed myself (as a user) from group kvm, and rebuilt libguestfs, all is fine and I have no kvm warnings. + However considering the error message about slowness and the fact that you will add a warning about /etc/profile sourcing, it might be a good idea to warn about group kvm too.
This package seems stuck at 1.40.1 while libguestfs enjoys regular releases (1.44.1 currently). Barely any packaging other than us? https://repology.org/project/libguestfs-appliance/versions
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a69f9d864df4ffc4a078847d205efbba1fede560 commit a69f9d864df4ffc4a078847d205efbba1fede560 Author: Sam James <sam@gentoo.org> AuthorDate: 2021-10-02 21:41:10 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2021-10-02 21:41:44 +0000 app-emulation/libguestfs-appliance: warn users to source profile Closes: https://bugs.gentoo.org/776790 Signed-off-by: Sam James <sam@gentoo.org> .../libguestfs-appliance/libguestfs-appliance-1.40.1.ebuild | 5 +++++ 1 file changed, 5 insertions(+)