[rhel6-branch] add unsupported_hardware kickstart command (#824963)

Vratislav Podzimek vpodzime at redhat.com
Mon Oct 1 07:01:17 UTC 2012


This looks good to me, but what about the pykickstart part? I tried to
'git grep' in the pykickstart's rhel6-branch and didn't find anything
making this work.

On Fri, 2012-09-28 at 10:37 -0700, Brian C. Lane wrote:
> From: "Brian C. Lane" <bcl at redhat.com>
> 
> If unsupported_hardware is included in the kickstart file skip the
> interactive dialog warning and log that it is installing on
> unsupported hardware.
> 
> Resolves: rhbz#824963
> ---
>  anaconda.spec.in   |  2 +-
>  loader/kickstart.c | 10 ++++++++++
>  loader/kickstart.h |  1 +
>  loader/loader.c    | 18 +++++++++++-------
>  loader/loader.h    |  2 ++
>  5 files changed, 25 insertions(+), 8 deletions(-)
> 
> diff --git a/anaconda.spec.in b/anaconda.spec.in
> index ff40ccb..f5ffe0d 100644
> --- a/anaconda.spec.in
> +++ b/anaconda.spec.in
> @@ -27,7 +27,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
>  %define intltoolver 0.31.2-3
>  %define libnlver 1.0
>  %define libselinuxver 1.6
> -%define pykickstartver 1.74.11
> +%define pykickstartver 1.74.12
>  %define rpmpythonver 4.2-0.61
>  %define slangver 2.0.6-2
>  %define yumver 2.9.2
> diff --git a/loader/kickstart.c b/loader/kickstart.c
> index 0429d9d..27f5f66 100644
> --- a/loader/kickstart.c
> +++ b/loader/kickstart.c
> @@ -89,6 +89,8 @@ static void setUpdates(struct loaderData_s * loaderData, int argc,
>                         char ** argv);
>  static void setVnc(struct loaderData_s * loaderData, int argc,
>                         char ** argv);
> +static void setUnsupportedHw(struct loaderData_s * loaderData, int argc,
> +                       char ** argv);
>  
>  struct ksCommandNames ksTable[] = {
>      { KS_CMD_NFS, "nfs", setKickstartNfs },
> @@ -110,6 +112,7 @@ struct ksCommandNames ksTable[] = {
>      { KS_CMD_MEDIACHECK, "mediacheck", setMediaCheck },
>      { KS_CMD_UPDATES, "updates", setUpdates },
>      { KS_CMD_VNC, "vnc", setVnc },
> +    { KS_CMD_UNSUPPORTED_HW, "unsupported_hardware", setUnsupportedHw },
>      { KS_CMD_NONE, NULL, NULL }
>  };
>  
> @@ -435,6 +438,13 @@ void getKickstartFile(struct loaderData_s *loaderData) {
>      return;
>  }
>  
> +static void setUnsupportedHw(struct loaderData_s * loaderData, int argc,
> +                   char ** argv) {
> +    logMessage(INFO, "kickstart setting unsupported_hardware");
> +    flags |= LOADER_FLAGS_UNSUPPORTED_HW;
> +    return;
> +}
> +
>  static void setVnc(struct loaderData_s * loaderData, int argc,
>                     char ** argv) {
>      logMessage(INFO, "kickstart forcing graphical mode over vnc");
> diff --git a/loader/kickstart.h b/loader/kickstart.h
> index 24612cf..4a67940 100644
> --- a/loader/kickstart.h
> +++ b/loader/kickstart.h
> @@ -41,6 +41,7 @@
>  #define KS_CMD_MEDIACHECK  17
>  #define KS_CMD_UPDATES     18
>  #define KS_CMD_VNC         19
> +#define KS_CMD_UNSUPPORTED_HW 20
>  
>  int ksReadCommands(char * cmdFile);
>  int ksGetCommand(int cmd, char ** last, int * argc, char *** argv);
> diff --git a/loader/loader.c b/loader/loader.c
> index 52ddc5d..8c967be 100644
> --- a/loader/loader.c
> +++ b/loader/loader.c
> @@ -1276,13 +1276,17 @@ static void checkTaintFlag(void) {
>      }
>  
>      if (l & (1 << 28)) {
> -        startNewt();
> -        newtWinMessage(_("Unsupported Hardware Detected"), _("OK"),
> -                       _("This hardware (or a combination thereof) is not "
> -                         "supported by Red Hat.  For more information on "
> -                         "supported hardware, please refer to "
> -                         "http://www.redhat.com/hardware."));
> -        stopNewt();
> +        if(!FL_UNSUPPORTED_HW(flags)) {
> +            startNewt();
> +            newtWinMessage(_("Unsupported Hardware Detected"), _("OK"),
> +                           _("This hardware (or a combination thereof) is not "
> +                             "supported by Red Hat.  For more information on "
> +                             "supported hardware, please refer to "
> +                             "http://www.redhat.com/hardware."));
> +            stopNewt();
> +        } else {
> +            logMessage(WARNING, "Installing on Unsupported Hardware.");
> +        }
>      }
>  
>      g_free(contents);
> diff --git a/loader/loader.h b/loader/loader.h
> index 6df95f9..564dc6c 100644
> --- a/loader/loader.h
> +++ b/loader/loader.h
> @@ -73,6 +73,7 @@
>  #define LOADER_FLAGS_AUTOMODDISK        (((uint64_t) 1) << 40)
>  #define LOADER_FLAGS_NOEJECT            (((uint64_t) 1) << 41)
>  #define LOADER_FLAGS_NOVERIFYSSL        (((uint64_t) 1) << 42)
> +#define LOADER_FLAGS_UNSUPPORTED_HW     (((uint64_t) 1) << 43)
>  
>  #define FL_TEXT(a)               ((a) & LOADER_FLAGS_TEXT)
>  #define FL_RESCUE(a)             ((a) & LOADER_FLAGS_RESCUE)
> @@ -112,6 +113,7 @@
>  #define FL_AUTOMODDISK(a)        ((a) & LOADER_FLAGS_AUTOMODDISK)
>  #define FL_NOEJECT(a)            ((a) & LOADER_FLAGS_NOEJECT)
>  #define FL_NOVERIFYSSL(a)        ((a) & LOADER_FLAGS_NOVERIFYSSL)
> +#define FL_UNSUPPORTED_HW(a)     ((a) & LOADER_FLAGS_UNSUPPORTED_HW)
>  
>  void startNewt(void);
>  void stopNewt(void);

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic



More information about the anaconda-patches mailing list