Matthew Booth
2010-Aug-16 13:39 UTC
[Libguestfs] [PATCH 1/2] Allow absolute paths in virt-v2v.conf
This patch allows paths in virt-v2v.conf to be either relative or absolute. If relative, they are relative to software-root. This allows virt-v2v.conf to use files provided by packages independent of virt-v2v. --- lib/Sys/VirtV2V/Config.pm | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Sys/VirtV2V/Config.pm b/lib/Sys/VirtV2V/Config.pm index f703152..121e774 100644 --- a/lib/Sys/VirtV2V/Config.pm +++ b/lib/Sys/VirtV2V/Config.pm @@ -118,14 +118,16 @@ sub get_transfer_iso foreach my $path ($dom->findnodes('/virt-v2v/app/path/text()')) { $path = $path->getData(); - # Get the absolute path if iso-root was defined my $abs; - if (defined($root)) { - $abs = File::Spec->catfile($root, $path); - } else { + if (File::Spec->file_name_is_absolute($path) || !defined($root)) { $abs = $path; } + # Make relative paths relative to iso-root if it was defined + else { + $abs = File::Spec->catfile($root, $path); + } + if (-r $abs) { $path_args{"$path=$abs"} = 1; $paths{$abs} = 1; -- 1.7.2.1
Matthew Booth
2010-Aug-16 13:39 UTC
[Libguestfs] [PATCH 2/2] Change the default location of Windows VirtIO drivers on the host
This patch updates the default virt-v2v.conf to use files installed by the virtio-win package. virt-v2v.conf also now specifies the directory containing viostor.sys rather than the file itself. --- lib/Sys/VirtV2V/Converter/Windows.pm | 9 ++++----- v2v/virt-v2v.conf | 24 +++++++++++++----------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/lib/Sys/VirtV2V/Converter/Windows.pm b/lib/Sys/VirtV2V/Converter/Windows.pm index 90822dd..1d4c526 100644 --- a/lib/Sys/VirtV2V/Converter/Windows.pm +++ b/lib/Sys/VirtV2V/Converter/Windows.pm @@ -357,7 +357,7 @@ sub _upload_files my @missing; my %files; - for my $file ("viostor", "firstboot", "firstbootapp", "rhsrvany") { + for my $file ("virtio", "firstboot", "firstbootapp", "rhsrvany") { my ($path) = $config->match_app ($desc, $file, $desc->{arch}); my $local = $config->get_transfer_path ($g, $path); push (@missing, $path) unless ($g->exists($local)); @@ -371,10 +371,9 @@ sub _upload_files "required, but missing: {list}", list => join(' ', @missing)))) if (@missing > 0); - # Copy viostor into place - my $driverpath = "/windows/system32/drivers"; - $driverpath = $g->case_sensitive_path ($driverpath); - $g->cp ($files{viostor}, $driverpath); + # Copy viostor directly into place as it's a critical boot device + $g->cp (File::Spec->catfile($files{virtio}, 'viostor.sys'), + $g->case_sensitive_path ("/windows/system32/drivers")); # Copy other files into a temp directory my $path = "/temp/v2v"; diff --git a/v2v/virt-v2v.conf b/v2v/virt-v2v.conf index a79f3a8..c2a3523 100644 --- a/v2v/virt-v2v.conf +++ b/v2v/virt-v2v.conf @@ -141,21 +141,23 @@ </app> <!-- Windows --> - <app os='windows' major='5' minor='1' arch='i386' name='viostor'> - <path>windows/xp/i386/viostor.sys</path> - </app> - <app os='windows' major='5' minor='2' arch='i386' name='viostor'> - <path>windows/2003/i386/viostor.sys</path> + + <!-- Each of these should point to the directory containing the appropriate + VirtIO drivers. On some platforms (RHEL 6), the directories below will + correspond to directories installed by the 'virtio-win' package. --> + <app os='windows' major='5' minor='2' arch='i386' name='virtio'> + <path>/usr/share/virtio-win/drivers/i386/Win2003</path> </app> - <app os='windows' major='5' minor='2' arch='x86_64' name='viostor'> - <path>windows/2003/x86_64/viostor.sys</path> + <app os='windows' major='5' minor='2' arch='x86_64' name='virtio'> + <path>/usr/share/virtio-win/drivers/amd64/Win2003</path> </app> - <app os='windows' major='6' arch='i386' name='viostor'> - <path>windows/2008/i386/viostor.sys</path> + <app os='windows' major='6' arch='i386' name='virtio'> + <path>/usr/share/virtio-win/drivers/i386/Win2008</path> </app> - <app os='windows' major='6' arch='x86_64' name='viostor'> - <path>windows/2008/x86_64/viostor.sys</path> + <app os='windows' major='6' arch='x86_64' name='virtio'> + <path>/usr/share/virtio-win/drivers/amd64/Win2008</path> </app> + <!-- RHSrvAny is compiled as a 32 bit app even on 64 bit Windows --> <app os='windows' name='rhsrvany'> <path>windows/rhsrvany.exe</path> -- 1.7.2.1
Richard W.M. Jones
2010-Aug-16 14:12 UTC
[Libguestfs] [PATCH 1/2] Allow absolute paths in virt-v2v.conf
On Mon, Aug 16, 2010 at 02:39:48PM +0100, Matthew Booth wrote:> This patch allows paths in virt-v2v.conf to be either relative or absolute. If > relative, they are relative to software-root. > > This allows virt-v2v.conf to use files provided by packages independent of > virt-v2v. > --- > lib/Sys/VirtV2V/Config.pm | 10 ++++++---- > 1 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/lib/Sys/VirtV2V/Config.pm b/lib/Sys/VirtV2V/Config.pm > index f703152..121e774 100644 > --- a/lib/Sys/VirtV2V/Config.pm > +++ b/lib/Sys/VirtV2V/Config.pm > @@ -118,14 +118,16 @@ sub get_transfer_iso > foreach my $path ($dom->findnodes('/virt-v2v/app/path/text()')) { > $path = $path->getData(); > > - # Get the absolute path if iso-root was defined > my $abs; > - if (defined($root)) { > - $abs = File::Spec->catfile($root, $path); > - } else { > + if (File::Spec->file_name_is_absolute($path) || !defined($root)) { > $abs = $path; > } > > + # Make relative paths relative to iso-root if it was defined > + else { > + $abs = File::Spec->catfile($root, $path); > + } > + > if (-r $abs) { > $path_args{"$path=$abs"} = 1; > $paths{$abs} = 1;ACK, seems reasonable. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into Xen guests. http://et.redhat.com/~rjones/virt-p2v
Apparently Analagous Threads
- [PATCH] Fix a Windows conversion error when C:\Temp exists in the guest
- [PATCH] Install VirtIO storage and network drivers in Windows
- [PATCH] Fix error in Converter::Windows when there is no transfer iso
- [PATCH] Windows: Display an error containing all missing when any are missing
- [PATCH v2v] Pre-convert Windows guests.