Bug 1382275
Summary: | virt-v2v is pulling in the X11 stack | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Fabian Deutsch <fdeutsch> |
Component: | libguestfs | Assignee: | Richard W.M. Jones <rjones> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.3 | CC: | fdeutsch, juzhou, kuwei, michal.skrivanek, mxie, mzhan, ptoscano, rjones, tzheng, xiaodwan |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | V2V | ||
Fixed In Version: | libguestfs-1.36.1-1.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2017-08-01 22:11:26 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1359086, 1432893, 1452605 | ||
Bug Blocks: | 1401400 |
Description
Fabian Deutsch
2016-10-06 08:28:44 UTC
separating to p2v and v2v parts may do the trick Yes I suspect the dependency comes from the virt-p2v binary in /usr/libexec, required by virt-p2v-make-* scripts. I'll see if I can split things sensibly. This is in Rawhide, but the packaging is similar to RHEL 7. I split out virt-p2v and the virt-p2v-make-* scripts into a new subpackage called 'virt-p2v-maker'. This results in fewer dependencies of virt-v2v. In particular I believe that all the graphical dependencies have now gone, ie. cairo, gdk, gtk, etc. Differences below. So I think we should do something like that in RHEL 7 too. --- /tmp/old-requires 2016-10-06 10:10:11.884230455 +0100 +++ /tmp/new-requires 2016-10-06 10:24:32.058804063 +0100 @@ -1,10 +1,7 @@ -/bin/bash /usr/bin/virsh -binutils curl gawk gzip -libatk-1.0.so.0()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.15)(64bit) @@ -13,30 +10,16 @@ libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) -libc.so.6(GLIBC_2.8)(64bit) -libcairo-gobject.so.2()(64bit) -libcairo.so.2()(64bit) libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) -libgdk-3.so.0()(64bit) -libgdk_pixbuf-2.0.so.0()(64bit) -libgio-2.0.so.0()(64bit) -libglib-2.0.so.0()(64bit) -libgobject-2.0.so.0()(64bit) -libgtk-3.so.0()(64bit) -libguestfs = 1:1.34.0-1.fc24 -libguestfs-tools-c = 1:1.34.0-1.fc24 +libguestfs = 1:1.35.6-2.fc26 +libguestfs-tools-c = 1:1.35.6-2.fc26 libguestfs.so.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) -libpango-1.0.so.0()(64bit) -libpangocairo-1.0.so.0()(64bit) -libpcre.so.1()(64bit) -libpthread.so.0()(64bit) -libpthread.so.0(GLIBC_2.2.5)(64bit) libvirt.so.0()(64bit) libvirt.so.0(LIBVIRT_0.0.3)(64bit) libvirt.so.0(LIBVIRT_0.1.0)(64bit) @@ -48,7 +31,6 @@ libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) -libxml2.so.2(LIBXML2_2.6.5)(64bit) mingw32-srvany >= 1.0-13 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 This is the Fedora Rawhide change implementing the above: http://pkgs.fedoraproject.org/cgit/rpms/libguestfs.git/commit/?id=7cef4a33055226cddc2208db8c08f041303f8270 I have got this working in Rawhide now. The new 'virt-p2v-maker' RPM has only simple dependencies: $ rpm -qR virt-p2v-maker /bin/bash binutils gawk gzip libguestfs-tools-c = 1:1.35.8-1.fc26 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 The old virt-v2v RPM no longer depends on X11/Gtk/etc: $ rpm -qR virt-v2v /usr/bin/virsh curl gawk gzip libc.so.6()(64bit) [...] libdl.so.2()(64bit) libdl.so.2(GLIBC_2.2.5)(64bit) libgcc_s.so.1()(64bit) [...] libguestfs = 1:1.35.8-1.fc26 libguestfs-tools-c = 1:1.35.8-1.fc26 libguestfs.so.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libvirt.so.0()(64bit) [...] libxml2.so.2()(64bit) [...] mingw32-srvany >= 1.0-13 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 rtld(GNU_HASH) unzip The full list of patches needed is a bit more than initially anticipated. For libguestfs we need: https://github.com/libguestfs/libguestfs/commit/face52f62e5731cc33183d5995a13b04f7f6a4c2 https://github.com/libguestfs/libguestfs/commit/4c8fc40d6624181939aaa3a6e4eda4f2505318cd https://github.com/libguestfs/libguestfs/commit/19332919a224e8fd989d30a28673d4e6dea5f58d For the specfile we need: http://pkgs.fedoraproject.org/cgit/rpms/libguestfs.git/commit/?id=7cef4a33055226cddc2208db8c08f041303f8270 http://pkgs.fedoraproject.org/cgit/rpms/libguestfs.git/commit/?id=a61242ebb4cf518eaaca2be1fa6bd0c68a6b0c56 Of course we will also need rel-eng changes to add the new virt-p2v-maker package. Verify the bug with builds: virt-v2v-1.36.2-1.el7.x86_64 libguestfs-1.36.2-1.el7.x86_64 Steps: 1.Prepare a rhel7.3 guest which has minimal os installation 2.Configure the related repo in guest for installing virt-v2v pkg 3.Try to install virt-v2v in guest but libX11 package still appears during virt-v2v dependence resolution, details pls refer to virt-v2v-dependence.log # cat virt-v2v-dependence.log |grep libX11 --> Processing Dependency: libX11-xcb.so.1()(64bit) for package: pulseaudio-libs-10.0-2.el7.x86_64 --> Processing Dependency: libX11.so.6()(64bit) for package: pulseaudio-libs-10.0-2.el7.x86_64 ---> Package libX11.x86_64 0:1.6.4-4.el7 will be installed --> Processing Dependency: libX11-common >= 1.6.4-4.el7 for package: libX11-1.6.4-4.el7.x86_64 ---> Package libX11-common.noarch 0:1.6.4-4.el7 will be installed 4.Check virt-v2v dependence but there is no libX11 pkg # rpm -qR virt-v2v |grep libX11 nothing Hi rjones, Pls help to check if the bug has not been fixed yet? The problem now is virt-v2v -> qemu-kvm-rhev -> pulseaudio-libs -> libxcb. (qemu-kvm also depends on pulseaudio-libs, so that wouldn't make any difference). I've no idea why pulseaudio-libs depends on X11. It sounds plausibly like that's a bug in pulseaudio. In any case, we've gone as far as we can go with fixing virt-v2v. Fabian: See above. If you need to go further with this bug, you will have to file another bug about the pulseaudio-libs -> X11 dependency. Yep - Thank you. We'll file a separate bug for pulse audio. Will verify this bug again when bug 1432893 is fixed, (In reply to mxie from comment #12) > Will verify this bug again when bug 1432893 is fixed, Not sure whether bug 1432893 is going to be fixed -- in the end, the X11 packages are not a big overhead though. OTOH, on the libguestfs side we've done what we could, basically. The dependency chain now is basically: virt-p2v-maker -> libguestfs-tools-c -> libguestfs -> qemu-kvm -> pulseaudio-libs -> libX11 virt-p2v-maker requires libguestfs-tools-c because of virt-builder. mxie: with qemu-kvm-rhev-2.9.0-6.el7 it should be possible to verify this bug (In reply to Pino Toscano from comment #15) > mxie: with qemu-kvm-rhev-2.9.0-6.el7 it should be possible to verify this bug Thanks for reminding,Ming is working on this bug and will paste comments later. Verify the bug with below builds: virt-v2v-1.36.3-4.el7.x86_64 libguestfs-1.36.3-4.el7.x86_64 qemu-kvm-rhev-2.9.0-7.el7.x86_64 qemu-kvm-1.5.3-139.el7.x86_64 Steps: 1.Prepare a rhel7.4 guest which has minimal os installation 2.Configure the related repos which has qemu-kvm-rhev repo in guest for installing virt-v2v pkg 3.Try to install virt-v2v in guest #yum install virt-v2v > virt-v2v-dependence.log 4.Check virt-v2v dependence but there is no libX11 pkg # cat virt-v2v-dependence.log |grep libX11 nothing # rpm -qR virt-v2v |grep libX11 nothing Hi Pino qemu-kvm-rhev-2.9.0-7.el7 has dropped depending on pulseaudio-libs -> libX11, but qemu-kvm-1.5.3-139.el7 still depends on libX11,customer will see the libX11 pkg when install virt-v2v with qemu-kvm, could we move this bug to verified status without fixing on qemu-kvm side? # cat virt-v2v-qemu-kvm.log |grep libX11 --> Processing Dependency: libX11.so.6()(64bit) for package: cairo-1.14.2-1.el7.x86_64 ---> Package libX11.x86_64 0:1.6.3-3.el7 will be installed --> Processing Dependency: libX11-common >= 1.6.3-3.el7 for package: libX11-1.6.3-3.el7.x86_64 ---> Package libX11-common.noarch 0:1.6.3-3.el7 will be installed I'd say so for now, as on the libguestfs side we've fixed what we could. According to comment 17 and comment18, move this bug from ON_QA to VERIFIED Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2017:2023 |