On Wed, May 04, 2016 at 04:09:02PM +0200, Pino Toscano wrote: > On Wednesday 04 May 2016 14:12:30 Richard W.M. Jones wrote: > > For Windows, we now print: > > > > $ virt-customize -a ./test-data/phony-guests/windows.img --install MSSQL > > [ 0.0] Examining the guest ... > > [ 14.2] Setting a random seed > > virt-customize: warning: random seed could not be set for this type of > > guest > > [ 14.2] Installing packages: MSSQL > > virt-customize: error: '--install' failed because inspection could not > > determine the package manager for this guest OS. > > > > If this guest OS is a common one with ordinary package management then this > > may have been caused by a failure of libguestfs inspection. > > > > For OSes such as Windows that lack package management, this is not > > possible. Try using one of the '--firstboot*' flags instead (described in > > the manual). > > --- > > customize/customize_run.ml | 19 ++++++++++++++----- > > 1 file changed, 14 insertions(+), 5 deletions(-) > > > > diff --git a/customize/customize_run.ml b/customize/customize_run.ml > > index 83e70a6..c0e1e44 100644 > > --- a/customize/customize_run.ml > > +++ b/customize/customize_run.ml > > @@ -94,7 +94,7 @@ exec >>%s 2>&1 > > in > > > > (* http://distrowatch.com/dwres.php?resource=package-management *) > > - let guest_install_command packages = > > + let rec guest_install_command packages = > > let quoted_args = String.concat " " (List.map quote packages) in > > match g#inspect_get_package_management root with > > | "apk" -> > > @@ -116,10 +116,11 @@ exec >>%s 2>&1 > > | "urpmi" -> sprintf "urpmi %s" quoted_args > > | "yum" -> sprintf "yum -y install %s" quoted_args > > | "zypper" -> sprintf "zypper -n in -l %s" quoted_args > > + > > | "unknown" -> > > - error (f_"--install is not supported for this guest operating > > system") > > + error_unknown_package_manager (s_"--install") > > | pm -> > > - error (f_"sorry, don't know how to use --install with the '%s' > > package manager") pm > > + error_unimplemented_package_manager (s_"--install") pm > > > > and guest_update_command () = > > match g#inspect_get_package_management root with > > @@ -142,10 +143,18 @@ exec >>%s 2>&1 > > | "urpmi" -> "urpmi --auto-select" > > | "yum" -> "yum -y update" > > | "zypper" -> "zypper -n update -l" > > + > > | "unknown" -> > > - error (f_"--update is not supported for this guest operating system") > > + error_unknown_package_manager (s_"--update") > > | pm -> > > - error (f_"sorry, don't know how to use --update with the '%s' > > package manager") pm > > + error_unimplemented_package_manager (s_"--update") pm > > + > > + (* Windows has package_management == "unknown". *) > > + and error_unknown_package_manager flag = > > + error (f_"'%s' failed because inspection could not determine the > > package manager for this guest OS.\n\nIf this guest OS is a common one with > > ordinary package management then this may have been caused by a failure of > > libguestfs inspection.\n\nFor OSes such as Windows that lack package > > management, this is not possible. Try using one of the '--firstboot*' > > flags instead (described in the manual).") flag > > what about > "cannot run '%s' because no package management has been detected for > this guest OS.\n etc" > > > + > > + and error_unimplemented_package_manager flag pm = > > + error (f_"sorry, '%s' with the '%s' package manager has not been > > implemented.\n\nIf this guest OS has ordinary package management then you > > will need to add support to virt-customize.\n\nFor OSes lack package > > management, this is not possible.\n\nYou can work around this by using one > > of the '--run*' or '--firstboot*' options instead (described in the > > manual).") flag pm > > I'd shorten this message: > "sorry, '%s' with the '%s' package manager has not been implemented > yet.\n\nYou can work around this by using one of the '--run*' or > '--firstboot*' options instead (described in the manual)." > > rationale behind that: > - telling users to add support for that is not exactly useful, and what > will happen in such cases is that we get reports with that > - if the OS lacks package management, then the result will be "unknown" > and thus the other message will be shown > - this would be shown in virt-builder, other than virt-customize (but > that's just a minor point)
Thanks - I pushed these with the changes you suggested. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
