[virt-tools-list] [PATCH 10/10] Add desktop profile for Windows

Daniel P. Berrange berrange at redhat.com
Wed Jun 13 10:25:58 UTC 2012


On Mon, Jun 11, 2012 at 11:23:11PM -0300, Fabiano Fidêncio wrote:
> +	<xsl:template match="/install-script-config">
> +sc config TlntSvr start= auto
> +net user <xsl:value-of select="config/user-realname"/> <xsl:value-of select="config/admin-password"/> /add /passwordreq:no
> +net localgroup administrators <xsl:value-of select="config/user-realname"/> /add
> +net accounts /maxpwage:unlimited
> +copy a:\<xsl:value-of select="config/user-realname"/>.bmp "c:\Documents and Settings\All Users\Application Data\Microsoft\User Account Pictures"
> +REGEDIT /S a:\windows.reg
> +EXIT


...<continued my reply from the fedora patch>

where as to use the Windows desktop profile, an application needs to know
that they must provide a floppy disk containing an icon file in the BMP
format.

I'm wondering how we can avoid the need for applications to know about
these OS specific requirements.



> diff --git a/data/oses/windows.xml b/data/oses/windows.xml
> index 8769511..2fb18be 100644
> --- a/data/oses/windows.xml
> +++ b/data/oses/windows.xml
> @@ -308,7 +308,10 @@
>      </resources>
>  
>      <installer>
> -      <script id='http://microsoft.com/windows/sif'/>
> +      <script id='http://microsoft.com/windows/sif/jeos'/>
> +      <script id='http://microsoft.com/windows/sif/desktop'/>
> +      <script id='http://microsoft.com/windows/reg/desktop'/>
> +      <script id='http://microsoft.com/windows/cmd/desktop'/>
>      </installer>
>    </os>

I'm wondering if we should have one <install-script> that contains
data for all 3 files, instead of one <install-script> per file.


> @@ -103,15 +103,18 @@ static void script_file_name_get(char *distro)
>  {
>      if (!(strcmp(distro, "win2k")) || !(strcmp(distro, "winxp")) ||
>          !(strcmp(distro, "win2k3")) || !(strcmp(distro, "win2k3r3"))) {
> -        output = g_strdup("windows.sif");
> +        outputScripts = g_slist_append(outputScripts, g_strdup("windows.sif"));
> +        outputScripts = g_slist_append(outputScripts, g_strdup("windows.reg"));
> +        outputScripts = g_slist_append(outputScripts, g_strdup("windows.cmd"));


I'm also wondering if we can change the XML database, such that we don't
need to hardcode these filenames.

>      } else if (!(strcmp(distro, "win2k8")) || !(strcmp(distro, "win2k8r2")) ||
>                 !(strcmp(distro, "vista")) || !(strcmp(distro, "win7")) ||
>                 !(strcmp(distro, "win8"))) {
> -        output = g_strdup("windows.xml");
> +        outputScripts = g_slist_append(outputScripts, g_strdup("windows.xml"));
>      } else {
>          gsize len = sizeof(distro) + sizeof(".ks");
> -        output = g_malloc(len);
> +        gchar *output = g_malloc(len);
>          g_snprintf(output, len, "%s.ks", distro);
> +        outputScripts = g_slist_append(outputScripts, output);

Can be better written as:

    gchar *output = g_strdup_printf("%s.ks", distro)



Considering all of this data, what if we were to change the <install-script>
XML syntax to allow multiple output files, and also provide metadata about
the external disk that needs to be provided, and the images (or other files)
within it.

eg something like:

  <install-script id='http://microsoft.com/windows/sif'>
    <profile>desktop</profile>

    <assets>
       <disk media='floppy'/>

       <resource type='image'/>
          <path>/user.bmp</path>
          <mime-type>image/bmp</mime-type>
          <width>64</width>
          <height>64</height>
       </image>
    </assets>

    <template filename='windows.sif'>
      <xsl:stylesheet>
        ....
      </xsl:stylesheet>
    </template>

    <template filename='windows.cmd'>
      <xsl:stylesheet>
        ....
      </xsl:stylesheet>
    </template>

    <template filename='windows.reg'>
      <xsl:stylesheet>
        ....
      </xsl:stylesheet>
    </template>
  </install-script>




  <install-script id='http://fedoraproject.org/kickstart'>
    <profile>desktop</profile>

    <assets>
       <disk media='harddisk'/>

       <resource type='image'/>
          <path>/user.png</path>
          <mime-type>image/png</mime-type>
          <width>128</width>
          <height>128</height>
       </image>
    </assets>

    <template filename='fedora.ks'>
      <xsl:stylesheet>
        ....
      </xsl:stylesheet>
    </template>
  </install-script>



Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the virt-tools-list mailing list