Richard W.M. Jones
2022-Mar-31 12:27 UTC
[Libguestfs] [p2v PATCH 01/10] remove qemu-nbd support
On Thu, Mar 31, 2022 at 09:22:02AM +0200, Laszlo Ersek wrote:> diff --git a/dependencies.m4 b/dependencies.m4 > index 40b3786cb0b7..20d068028dbe 100644 > --- a/dependencies.m4 > +++ b/dependencies.m4 > @@ -23,39 +23,40 @@ dnl only runs on the virt-v2v conversion server. > ifelse(REDHAT,1, > dnl Used by the virt-p2v binary. > pcre > libxml2 > gtk`'GTK_VERSION > dbus-libs > > dnl Run as external programs by the p2v binary. > /usr/bin/ssh > - /usr/bin/qemu-nbd > + /usr/sbin/nbdkit > + /usr/lib64/nbdkit/plugins/nbdkit-file-plugin.soThis should be: - /usr/bin/qemu-nbd + nbdkit-server + nbdkit-file-plugin All Fedora & RHEL packages we've ever shipped should recognise these virtual Provides and install just the nbdkit server and the file plugin, without pulling in any complicated dependencies. In the same file, the DEBIAN section should be modified: - qemu-utils + nbdkit because: https://packages.debian.org/sid/amd64/nbdkit/filelist (Unfortunately this will pull in some large dependencies, but that's a problem for Debian to fix.) In the same file, for ARCHLINUX: - qemu + nbdkit (https://aur.archlinux.org/packages/nbdkit) In the same file, for SUSE (same as REDHAT): - qemu-tools + nbdkit-server + nbdkit-file-plugin> @@ -128,33 +129,34 @@ ifelse(SUSE,1, > ifelse(OPENMANDRIVA,1, > dnl Used by the virt-p2v binary. > pcre > libxml2 > gtk`'GTK_VERSION > dbus-libs > > dnl Run as external programs by the p2v binary. > /usr/bin/ssh > - /usr/bin/qemu-nbd > + /usr/sbin/nbdkit > + /usr/lib64/nbdkit/plugins/nbdkit-file-plugin.so > whichI couldn't find any reference to any openmandriva nbdkit package, but I guess we can leave this hunk alone and the openmandriva developers can fix it if they want. [...]> diff --git a/test-virt-p2v-nbdkit.sh b/test-virt-p2v-nbdkit.sh > index 9adb195f9249..8e91d45c4014 100755 > --- a/test-virt-p2v-nbdkit.sh > +++ b/test-virt-p2v-nbdkit.sh > @@ -1,28 +1,27 @@ > #!/bin/bash - > # libguestfs virt-p2v test script > # Copyright (C) 2014-2019 Red Hat Inc. > # > # This program is free software; you can redistribute it and/or modify > # it under the terms of the GNU General Public License as published by > # the Free Software Foundation; either version 2 of the License, or > # (at your option) any later version. > # > # This program is distributed in the hope that it will be useful, > # but WITHOUT ANY WARRANTY; without even the implied warranty of > # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > # GNU General Public License for more details. > # > # You should have received a copy of the GNU General Public License > # along with this program. If not, see <https://www.gnu.org/licenses/>. > > -# Test virt-p2v in non-GUI mode using nbdkit instead of qemu-nbd. > +# Test virt-p2v in non-GUI mode using nbdkit. > > set -e > > $TEST_FUNCTIONS > skip_if_skipped > skip_if_backend uml > -skip_unless nbdkit file --versionDon't we want to keep this line? The p2v-building instructions say that nbdkit is optional, so we should skip the test if it's not available. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
On 03/31/22 14:27, Richard W.M. Jones wrote:> On Thu, Mar 31, 2022 at 09:22:02AM +0200, Laszlo Ersek wrote: >> diff --git a/dependencies.m4 b/dependencies.m4 >> index 40b3786cb0b7..20d068028dbe 100644 >> --- a/dependencies.m4 >> +++ b/dependencies.m4 >> @@ -23,39 +23,40 @@ dnl only runs on the virt-v2v conversion server. >> ifelse(REDHAT,1, >> dnl Used by the virt-p2v binary. >> pcre >> libxml2 >> gtk`'GTK_VERSION >> dbus-libs >> >> dnl Run as external programs by the p2v binary. >> /usr/bin/ssh >> - /usr/bin/qemu-nbd >> + /usr/sbin/nbdkit >> + /usr/lib64/nbdkit/plugins/nbdkit-file-plugin.so > > This should be: > > - /usr/bin/qemu-nbd > + nbdkit-server > + nbdkit-file-plugin > > All Fedora & RHEL packages we've ever shipped should recognise these > virtual Provides and install just the nbdkit server and the file > plugin, without pulling in any complicated dependencies.I used pathnames rather than package names just to stick with the tradition of "/usr/bin/qemu-nbd". Secondly, there is no package called "nbdkit-file-plugin"; it's called "nbdkit-basic-plugins". Do you mean that "nbdkit-file-plugin" is resolvable due to the work done for <https://bugzilla.redhat.com/show_bug.cgi?id=2059291> (and before that, manually listed Provides:?) ... I think that dnf behaves very misleadingly here. Consider:> # dnf search nbdkit-file-plugin > No matches found.(Because I *did* try that yesterday.) At the same time:> # dnf install nbdkit-file-plugin > Dependencies resolved. > =====================================================================================================================> Package Architecture Version Repository Size > =====================================================================================================================> Installing: > nbdkit-basic-plugins x86_64 1.28.6-1.fc35 updates 204 k > Installing dependencies: > nbdkit-server x86_64 1.28.6-1.fc35 updates 130 k > > Transaction Summary > =====================================================================================================================> Install 2 Packages > > Total download size: 334 k > Installed size: 719 k > Is this ok [y/N]:This is very non-intuitive. A virtual "provides" apparently satisfies "install", but does not satisfy "search". IMO that's simply a bug in dnf, one that keeps tricking me. Anyway, I'll update the deps. Back to your email: On 03/31/22 14:27, Richard W.M. Jones wrote:> > In the same file, the DEBIAN section should be modified: > > - qemu-utils > + nbdkit > > because: > > https://packages.debian.org/sid/amd64/nbdkit/filelist > > (Unfortunately this will pull in some large dependencies, but that's a > problem for Debian to fix.) > > In the same file, for ARCHLINUX: > > - qemu > + nbdkit > > (https://aur.archlinux.org/packages/nbdkit) > > In the same file, for SUSE (same as REDHAT): > > - qemu-tools > + nbdkit-server > + nbdkit-file-plugin > >> @@ -128,33 +129,34 @@ ifelse(SUSE,1, >> ifelse(OPENMANDRIVA,1, >> dnl Used by the virt-p2v binary. >> pcre >> libxml2 >> gtk`'GTK_VERSION >> dbus-libs >> >> dnl Run as external programs by the p2v binary. >> /usr/bin/ssh >> - /usr/bin/qemu-nbd >> + /usr/sbin/nbdkit >> + /usr/lib64/nbdkit/plugins/nbdkit-file-plugin.so >> which > > I couldn't find any reference to any openmandriva nbdkit package, but > I guess we can leave this hunk alone and the openmandriva developers > can fix it if they want.OK.> > [...] >> diff --git a/test-virt-p2v-nbdkit.sh b/test-virt-p2v-nbdkit.sh >> index 9adb195f9249..8e91d45c4014 100755 >> --- a/test-virt-p2v-nbdkit.sh >> +++ b/test-virt-p2v-nbdkit.sh >> @@ -1,28 +1,27 @@ >> #!/bin/bash - >> # libguestfs virt-p2v test script >> # Copyright (C) 2014-2019 Red Hat Inc. >> # >> # This program is free software; you can redistribute it and/or modify >> # it under the terms of the GNU General Public License as published by >> # the Free Software Foundation; either version 2 of the License, or >> # (at your option) any later version. >> # >> # This program is distributed in the hope that it will be useful, >> # but WITHOUT ANY WARRANTY; without even the implied warranty of >> # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> # GNU General Public License for more details. >> # >> # You should have received a copy of the GNU General Public License >> # along with this program. If not, see <https://www.gnu.org/licenses/>. >> >> -# Test virt-p2v in non-GUI mode using nbdkit instead of qemu-nbd. >> +# Test virt-p2v in non-GUI mode using nbdkit. >> >> set -e >> >> $TEST_FUNCTIONS >> skip_if_skipped >> skip_if_backend uml >> -skip_unless nbdkit file --version > > Don't we want to keep this line? The p2v-building instructions say > that nbdkit is optional, so we should skip the test if it's not > available.I removed this line because the qemu-nbd based "sibling" test case, "test-virt-p2v.sh", which this patch removes, has a hard dependency on qemu-nbd (i.e., it does not include a similar "skip_unless" line), despite the docs listing qemu-nbd as optional too. And now with this patch, nbdkit takes the place of qemu-nbd. If your argument is that the lack of "skip_unless qemu-nbd --version" is a preexistent bug in "test-virt-p2v.sh", then I agree to keep "skip_unless nbdkit file --version" here. Thanks! Laszlo