[Libguestfs] [PATCH] supermin: If disabled, don't compile in supermin code or check for supermin.
Guido Günther
agx at sigxcpu.org
Mon Nov 8 12:59:44 UTC 2010
On Mon, Nov 08, 2010 at 12:49:57PM +0000, Richard W.M. Jones wrote:
> On Sun, Nov 07, 2010 at 07:12:42PM +0000, Richard W.M. Jones wrote:
> > It works, but this warning message is definitely a bug:
> >
> > sh: febootstrap-supermin-helper: command not found
>
> Attached is a patch which fixes this issue.
>
> I tested this by compiling with and without supermin, and it works
> (ie. compiles and runs simple tests) in both cases.
Looks great. Thanks
-- Guido
>
> 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
> From 4e656a61d40ff51e63aa06d857c40c14ff31ddb9 Mon Sep 17 00:00:00 2001
> From: Richard W.M. Jones <rjones at redhat.com>
> Date: Mon, 8 Nov 2010 12:46:31 +0000
> Subject: [PATCH] supermin: If disabled, don't compile in supermin code or check for supermin.
>
> If supermin is disabled at compile time and the user just wants to
> use the ordinary appliance, there is no need to compile in all
> the supermin code, and in particular there is no need to check
> for the supermin appliance (which involves running
> febootstrap-supermin-helper that probably doesn't exist).
>
> This fixes a warning message observed under Debian w/o supermin:
>
> sh: febootstrap-supermin-helper: command not found
> ---
> configure.ac | 2 +-
> src/appliance.c | 16 +++++++++++-----
> 2 files changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index c42a855..b42429e 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -404,7 +404,7 @@ dnl enabling this option.
> AC_ARG_ENABLE([supermin],
> [AS_HELP_STRING([--enable-supermin],
> [enable supermin appliance (see README) @<:@default=no@:>@])],
> - [],
> + [AC_DEFINE([ENABLE_SUPERMIN],[1],[Supermin appliance enabled.])],
> [enable_supermin=no])
> AM_CONDITIONAL([SUPERMIN],[test "x$enable_supermin" = "xyes"])
>
> diff --git a/src/appliance.c b/src/appliance.c
> index 7dc42c1..26f5261 100644
> --- a/src/appliance.c
> +++ b/src/appliance.c
> @@ -47,12 +47,14 @@ static const char *initrd_name = "initramfs." host_cpu ".img";
> static int find_path (guestfs_h *g, int (*pred) (guestfs_h *g, const char *pelem, void *data), void *data, char **pelem);
> static int dir_contains_file (const char *dir, const char *file);
> static int dir_contains_files (const char *dir, ...);
> -static int contains_supermin_appliance (guestfs_h *g, const char *path, void *data);
> static int contains_ordinary_appliance (guestfs_h *g, const char *path, void *data);
> +#if ENABLE_SUPERMIN
> +static int contains_supermin_appliance (guestfs_h *g, const char *path, void *data);
> static char *calculate_supermin_checksum (guestfs_h *g, const char *supermin_path);
> static int check_for_cached_appliance (guestfs_h *g, const char *supermin_path, const char *checksum, char **kernel, char **initrd, char **appliance);
> static int build_supermin_appliance (guestfs_h *g, const char *supermin_path, const char *checksum, char **kernel, char **initrd, char **appliance);
> static int run_supermin_helper (guestfs_h *g, const char *supermin_path, const char *cachedir, size_t cdlen);
> +#endif
>
> /* Locate or build the appliance.
> *
> @@ -88,6 +90,7 @@ guestfs___build_appliance (guestfs_h *g,
> {
> int r;
>
> +#if ENABLE_SUPERMIN
> /* Step (1). */
> char *supermin_path;
> r = find_path (g, contains_supermin_appliance, NULL, &supermin_path);
> @@ -116,6 +119,7 @@ guestfs___build_appliance (guestfs_h *g,
> }
> free (supermin_path);
> }
> +#endif
>
> /* Step (5). */
> char *path;
> @@ -141,15 +145,16 @@ guestfs___build_appliance (guestfs_h *g,
> }
>
> static int
> -contains_supermin_appliance (guestfs_h *g, const char *path, void *data)
> +contains_ordinary_appliance (guestfs_h *g, const char *path, void *data)
> {
> - return dir_contains_files (path, "supermin.d", "kmod.whitelist", NULL);
> + return dir_contains_files (path, kernel_name, initrd_name, NULL);
> }
>
> +#if ENABLE_SUPERMIN
> static int
> -contains_ordinary_appliance (guestfs_h *g, const char *path, void *data)
> +contains_supermin_appliance (guestfs_h *g, const char *path, void *data)
> {
> - return dir_contains_files (path, kernel_name, initrd_name, NULL);
> + return dir_contains_files (path, "supermin.d", "kmod.whitelist", NULL);
> }
>
> /* supermin_path is a path which is known to contain a supermin
> @@ -531,6 +536,7 @@ run_supermin_helper (guestfs_h *g, const char *supermin_path,
> perror ("execvp");
> _exit (EXIT_FAILURE);
> }
> +#endif
>
> /* Search elements of g->path, returning the first path element which
> * matches the predicate function 'pred'.
> --
> 1.7.3.2
>
More information about the Libguestfs
mailing list