[Libvirt-cim] [PATCH] (#2) Update web content to match libvirt.org

Jay Gagnon grendel at linux.vnet.ibm.com
Fri May 2 20:32:47 UTC 2008


# HG changeset patch
# User Jay Gagnon <grendel at linux.vnet.ibm.com>
# Date 1209760357 14400
# Node ID 0b26d79ea3283461b349d20dbcfdf1715344afcd
# Parent  02269d31d296b603dd99b5fd1c235c1a987f5a49
(#2) Update web content to match libvirt.org

Dan's problem seems to have been a matter of needing an autoconfiscate, so no related changes there.

Changes from 1 to 2:
	Cleaned up a few html validation things.

Signed-off-by: Jay Gagnon <grendel at linux.vnet.ibm.com>

diff -r 02269d31d296 -r 0b26d79ea328 doc/Makefile.am
--- a/doc/Makefile.am	Fri May 02 08:18:24 2008 -0700
+++ b/doc/Makefile.am	Fri May 02 16:32:37 2008 -0400
@@ -1,23 +1,26 @@ XSLTPROC = /usr/bin/xsltproc
 XSLTPROC = /usr/bin/xsltproc
+XMLLINT = /usr/bin/xmllint
 
-WEB_PAGES = index.html \
-            architecture.html \
-            downloads.html \
-            intro.html \
-            news.html \
-            patches.html \
-            platforms.html \
-            schema.html
+dot_html_in = $(wildcard *.html.in)
+dot_html = $(dot_html_in:%.html.in=%.html)
 
-EXTRA_DIST = site.xsl libvirt-cim.html $(WEB_PAGES)
-
-$(WEB_PAGES): libvirt-cim.html site.xsl
-	-@(if [ -x $(XSLTPROC) ]; then \
-	   $(XSLTPROC) --nonet --html $(top_srcdir)/doc/site.xsl $(top_srcdir)/doc/libvirt-cim.html > index.html; \
-	   fi);
+EXTRA_DIST = site.xsl $(dot_html) $(dot_html_in)
 
 install-data-local:
 	$(mkinstalldirs) $(DESTDIR)$(HTML_DIR)
 	@INSTALL@ -m 0644 $(srcdir)/*.html $(DESTDIR)$(HTML_DIR)
 
-all: $(WEB_PAGES)
+all: $(dot_html)
+
+%.html.tmp:	%.html.in site.xsl page.xsl sitemap.html.in
+		@(if [ -x $(XSLTPROC) ] ; then \
+		echo "Generating $@"; \
+		name=`echo $@ | sed -e 's/.tmp//'`; \
+		echo "name: $$name"; \
+		$(XSLTPROC) --stringparam pagename $$name --nonet --html $(top_srcdir)/doc/site.xsl $< > $@ || (rm $@ && exit 1) ; fi )
+
+
+%.html:	%.html.tmp
+	@(if [ -x $(XMLLINT) ] ; then \
+	echo "Validating $@" ; \
+	$(XMLLINT) --nonet --format --valid $< > $@ || : ; fi );
diff -r 02269d31d296 -r 0b26d79ea328 doc/architecture.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/architecture.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,30 @@
+<html>
+  <body>
+    <h1>Architecture</h1>
+
+    <p>
+      The libvirt-cim provider consists of two major parts:
+    </p>
+    <ul>
+      <li>
+        The provider classes themselves (<tt>src/</tt>)
+      </li>
+      <li>
+        A helper library of common components (<tt>libxkutil/</tt>)
+      </li>
+    </ul>
+    <p>
+      The provider classes implement the actual CIM class model.  Some of
+      the provider libraries implement one CIM class and one providier.
+      However, many of them perform more than one task.  For example,
+      the <tt>Virt_Device</tt> and <tt>Virt_DevicePool</tt> providers
+      implement the device and device pool classes for each of the major
+      device types: Memory, Processor, Network, and Disk.
+    </p>
+    <p>
+      The helper library contains common routines that almost all of the
+      providers use, such as libvirt connection type detection and device
+      and system XML parsing.
+    </p>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/downloads.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/downloads.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,27 @@
+<html>
+  <body>
+    <h1>Downloads</h1>
+
+    <p>
+      Official releases can be found on the libvirt.org 
+      <a href="ftp://libvirt.org/libvirt-cim">FTP</a> server. Alternatively, 
+      you can grab a 
+      <a href="http://libvirt.org/hg/libvirt-cim/archive/tip.tar.gz">tarball</a> or 
+      <a href="http://libvirt.org/hg/libvirt-cim/archive/tip.zip">zip</a> file 
+      snapshot of the development repository. These snapshots will have the 
+      latest features (and bugs).
+    </p>
+    <p>
+      The libvirt-cim development tree can be found in the 
+      <a href="http://libvirt.org/hg">libvirt.org/hg</a> repository.
+    </p>
+    <p>
+      To get a copy of the development tree, use 
+      <a href="http://www.selenic.com/mercurial/wiki/">mercurial</a>'s clone 
+      feature:
+    </p>
+    <pre>
+      $ hg clone http://libvirt.org/hg/libvirt-cim
+    </pre>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/generic.css
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/generic.css	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,75 @@
+
+body {
+  margin: 0em;
+  padding: 0px;
+  color: rgb(0,0,0);
+  font-family: Verdana, Arial, Helvetica, sans-serif;
+  font-size: 80%;
+//  font-size: 83%;
+}
+
+p, ul, ol, dl {
+  padding: 0px;
+  margin: 0px;
+}
+
+ol,ul {
+  margin-left: 3em;
+}
+
+ol,ul,dl,p {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+
+p:first-line {
+  margin-right: 1em;
+}
+
+div.body p:first-letter {
+  font-size: 1.2em;
+  font-weight: bold;
+}
+
+h1,h2,h3,h4,h5,h6 {
+  font-weight: bold;
+  margin: 0px;
+  padding: 0px;
+  margin-top: 0.5em;
+}
+
+div.footer {
+  margin-top: 1em;
+}
+
+h1 {
+  font-size: 2em;
+}
+h2 {
+  font-size: 1.6em;
+}
+h3 {
+  font-size: 1.4em;
+}
+h4 {
+  font-size: 1.2em;
+}
+h5 {
+  font-size: 1em;
+}
+h6 {
+  font-size: 0.8em;
+}
+
+dl dt {
+  margin-left: 1em;
+  margin-right: 2em;
+  font-weight: bold;
+  font-size: larger;
+}
+
+dl dd {
+  margin-left: 2em;
+  margin-right: 2em;
+  margin-bottom: 0.5em;
+}
diff -r 02269d31d296 -r 0b26d79ea328 doc/index.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/index.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,25 @@
+<html>
+  <body>
+    <h1>What is <strong>libvirt-cim</strong>?</h1>
+    <p>
+      Libvirt-CIM is a CIM provider for managing linux virtualization platforms 
+      using libvirt. It is written in C and should work in any CIMOM that 
+      supports CMPI 2.0 providers. The intent is to implement the SVPC 
+      virtualization class model currently available in the DMTF Experimental 
+      2.16 schema.
+    </p>
+    <p>
+      Libvirt-CIM is a CIM provider for managing linux virtualization platforms 
+      using libvirt. It is written in C and should work in any CIMOM that 
+      supports CMPI 2.0 providers. The intent is to implement the SVPC 
+      virtualization class model currently available in the DMTF Experimental 2.
+      16 schema.
+    </p>
+    <p>
+      The providers are currently under heavy development. Focus is on Xen 
+      support right now, which means some of the providers have some "shortcuts" 
+      hard-coded to Xen right now. The long-term goal is to support all of the 
+      platforms that libvirt supports with minimal differences. 
+    </p>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/libvirt.css
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/libvirt.css	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,343 @@
+
+
+h1 {
+    font-weight: normal;
+    color: #3c857c;
+}
+h1 strong {
+    font-weight: bold;
+}
+
+h2, h3, h4, h5, h6 {
+    color: #3c857c;
+}
+
+#header {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    margin: 0px;
+    height: 104px;
+    width: 100%;
+    background: url(libvirt-header-bg.png);
+    border: 0px;
+}
+
+#body {
+    position: relative;
+    border: 0px;
+    padding-top: 104px;
+    left: 0px;
+    margin: 0px;
+    padding-left: 250px;
+}
+
+#content {
+    float: right;
+    padding: 0px;
+    width: 100%;
+    padding-bottom: 1em;
+}
+
+#menu {
+    border: 0px;
+    margin-left: -250px;
+    position: relative;
+    margin-top: 0px;
+    left: 0px;
+    width: 220px;
+    margin-bottom: 1em;
+}
+
+#menu ul {
+    margin: 0px;
+    padding: 0px;
+    margin-left: 40px;
+}
+
+#menu li ul {
+    margin-left: 0px;
+}
+
+#menu ul li {
+    list-style: none;
+    color: black;
+    padding: 0px;
+    font-weight: bold;
+    font-size: 1.2em;
+}
+
+#menu li ul li {
+    font-size: 1em;
+}
+
+#menu ul li a, #menu ul li span {
+    text-decoration: inherit;
+    color: inherit;
+    display: block;
+    padding: 6px;
+    margin: 2px;
+}
+
+#menu ul li .active {
+    background: #a4c6c2;
+}
+
+#menu ul.l0 li .inactive {
+    background: #c5dbd8;
+}
+
+
+#menu ul.l1 li .inactive,
+#menu ul.l2 li .inactive {
+    background: #dfebea;
+    border-left: 8px solid #dfebea;
+}
+
+#menu ul.l1 li .inactive,
+#menu ul.l1 li .active {
+    padding-left: 1em;
+}
+
+#menu ul.l1 li .inactive {
+    border-left: 6px solid #dfebea;
+}
+#menu ul.l1 li .active {
+    border-left: 6px solid #a5c6c2;
+}
+
+#menu ul.l2 li .inactive,
+#menu ul.l2 li .active {
+    padding-left: 2em;
+    border-left: 8px solid #c5dbd8;
+}
+
+
+#headerLogo {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    height: 104px;
+    width: 400px;
+    background: url(libvirt-header-logo.png);
+}
+#headerSearch {
+    position: absolute;
+    top: 0px;
+    right: 0px;
+    padding: 2em;
+    z-index: 10;
+}
+
+#headerSearch input {
+    border: 1px solid #999999;
+    color: #999999;
+    background: white;
+    padding: 3px;
+    font-size: 1em;
+}
+
+#headerSearch #submit {
+    border: 1px solid #999999;
+    background: #eeeeee;
+    color: black;
+    padding: 3px;
+    font-size: 1em;
+}
+
+
+#sitemap ul li {
+    list-style: none;
+}
+
+#sitemap ul {
+    margin: 1em;
+    padding: 0em;
+}
+
+#sitemap ul ul {
+    padding-left: 2em;
+}
+
+#sitemap li {
+    margin: 0.5em;
+}
+
+#sitemap a {
+    color: inherit;
+    text-decoration: underline;
+    font-weight: bold;
+}
+
+pre {
+    border: 1px solid #999999;
+    background: #eeeeee;
+    color: black;
+    padding: 1em;
+}
+
+a {
+    color: #566866;
+}
+
+
+div.api {
+    border: 1px solid #999999;
+    background: #eeeeee;
+    color: black;
+}
+
+div.api pre {
+    margin: 0px;
+    border: 0px;
+    background: inherit;
+}
+
+div.api table {
+    margin: 0px;
+    padding-left: 2em;
+    font-family: fixed;
+    whitespace: pre;
+}
+
+
+h1 a, h2 a, h3 a, h4 a, h5 a {
+    color: inherit;
+    text-decoration: inherit;
+}
+
+#changelog .author {
+    color: #3c857c;
+    font-weight: bold;
+}
+
+p.image {
+    text-align: center;
+}
+
+.top_table {
+    border-collapse: collapse;
+}
+
+.top_table th {
+    background: #a4c6c2;
+}
+
+.top_table th a {
+    color: inherit;
+    text-decoration: inherit;
+}
+
+.top_table td, .top_table th {
+    border: 1px solid #999999;
+}
+
+.top_table tr:hover td, .top_table col:hover td {
+    background: #eeeeee;
+}
+
+.top_table tr td:hover {
+    background: #c5dbd8;
+}
+
+#footer {
+    clear: both;
+    position: relative;
+    margin: 0px;
+    padding: 0px;
+    border: 0px;
+    width: 100%;
+    background: #757575 url(footer_pattern.png) repeat-x;
+    height: 180px;
+}
+
+#footer p {
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    margin: 0px;
+    border: 0px solid red;
+    width: 220px;
+    text-align: center;
+}
+
+#footer p a img {
+    border: 0px;
+}
+
+#projects {
+    margin: 0px;
+    border: 0px;
+    position: absolute;
+    top: 0px;
+    left: 0px;
+    width: 100%;
+}
+
+
+#projects dl {
+    margin: 0px;
+    border: 0px solid white;
+    background: url(footer_corner.png) no-repeat;
+    height: 180px;
+    position: absolute;
+    top: 0px;
+    left: 0px;
+}
+
+
+#projects #p1 {
+    margin-left: 25%;
+    width: 75%;
+}
+
+#projects #p2 {
+    margin-left: 50%;
+    width: 50%;
+}
+
+#projects #p3 {
+    margin-left: 75%;
+    width: 25%;
+}
+
+#projects dt, #projects dd {
+    padding: 0px;
+    margin: 0px;
+}
+
+#projects #p1 dt, #projects #p1 dd {
+    width: 33%;
+}
+#projects #p2 dt, #projects #p2 dd {
+    width: 50%;
+}
+#projects #p3 dt, #projects #p3 dd {
+    width: 99%;
+}
+
+#projects {
+}
+
+#projects span {
+    font-size: 0.8em;
+    display: block;
+    padding-left: 1em;
+    padding-top: 0.5em;
+}
+
+#projects a {
+    font-size: 0.8em;
+    display: block;
+    padding-left: 0.8em;
+    padding-top: 1em;
+}
+
+#projects a {
+    color: white;
+    text-decoration: inherit;
+}
+
+#projects span {
+    color: #ccc;
+}
diff -r 02269d31d296 -r 0b26d79ea328 doc/main.css
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/main.css	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,2 @@
+ at import url(generic.css);
+ at import url(libvirt.css);
diff -r 02269d31d296 -r 0b26d79ea328 doc/page.xsl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/page.xsl	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  exclude-result-prefixes="xsl exsl"
+  version="1.0">
+
+  <!-- The sitemap.html.in page contains the master navigation structure -->
+  <xsl:variable name="sitemap" select="document('sitemap.html.in')/html/body/div[@id='sitemap']"/>
+
+  <!-- This processes the sitemap to form a context sensitive
+       navigation menu for the current page -->
+  <xsl:template match="ul" mode="menu">
+    <xsl:param name="pagename"/>
+    <xsl:param name="level"/>
+    <ul class="{concat('l', $level)}">
+      <xsl:for-each select="li">
+        <li>
+          <!-- A menu is active if there is an 'a' tag with
+               a href matching this pagename at this level
+               or a child menu -->
+          <xsl:variable name="class">
+            <xsl:choose>
+              <xsl:when test="count(.//a[@href = $pagename]) > 0">
+                <xsl:text>active</xsl:text>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:text>inactive</xsl:text>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:variable>
+
+          <!-- A menu should use a 'span' instead of 'a' if
+               the immediate 'a' tag has href matching the
+               current pagename -->
+          <xsl:choose>
+            <xsl:when test="$pagename = a/@href">
+              <span class="{$class}"><xsl:value-of select="a"/></span>
+            </xsl:when>
+            <xsl:when test="a/@href = 'http://wiki.libvirt.org'">
+              <a title="{./span}" class="{$class}" href="{a/@href}"><xsl:value-of select="a"/></a>
+            </xsl:when>
+            <xsl:otherwise>
+              <a title="{./span}" class="{$class}" href="{concat($href_base, a/@href)}"><xsl:value-of select="a"/></a>
+            </xsl:otherwise>
+          </xsl:choose>
+
+          <!-- A sub-menu should only be expanded it contains
+               an 'a' tag with href matching this pagename -->
+          <xsl:if test="count(.//a[@href = $pagename]) > 0">
+            <xsl:apply-templates select="ul" mode="menu">
+              <xsl:with-param name="pagename" select="$pagename"/>
+              <xsl:with-param name="level" select="$level + 1"/>
+            </xsl:apply-templates>
+          </xsl:if>
+        </li>
+      </xsl:for-each>
+    </ul>
+  </xsl:template>
+
+  <!-- This is the master page structure -->
+  <xsl:template match="/" mode="page">
+    <xsl:param name="pagename"/>
+    <html>
+      <xsl:comment>
+        This file is autogenerated from <xsl:value-of select="$pagename"/>.in
+        Do not edit this file. Changes will be lost.
+      </xsl:comment>
+      <head>
+        <link rel="stylesheet" type="text/css" href="{$href_base}main.css"/>
+        <link rel="SHORTCUT ICON" href="{$href_base}32favicon.png"/>
+        <title>libvirt: <xsl:value-of select="html/body/h1"/></title>
+        <meta name="description" content="libvirt, virtualization, virtualization API"/>
+      </head>
+      <body>
+        <div id="header">
+          <div id="headerLogo"/>
+          <div id="headerSearch">
+            <form action="{$href_base}search.php" enctype="application/x-www-form-urlencoded" method="get">
+              <input id="query" name="query" type="text" size="12" value=""/>
+              <input id="submit" name="submit" type="submit" value="Search"/>
+            </form>
+          </div>
+        </div>
+        <div id="body">
+          <div id="content">
+            <xsl:copy-of select="html/body/*"/>
+          </div>
+          <div id="menu">
+            <xsl:apply-templates select="exsl:node-set($sitemap)/ul" mode="menu">
+              <xsl:with-param name="pagename" select="$pagename"/>
+              <xsl:with-param name="level" select="0"/>
+            </xsl:apply-templates>
+          </div>
+        </div>
+        <div id="footer">
+          <div id="projects">
+            <dl id="p1">
+              <dt><a href="http://augeas.net/">Augeas</a></dt>
+              <dd><span>A configuration editing tool and API</span></dd>
+              <dt><a href="http://libvirt.org/">libvirt</a></dt>
+              <dd><span>The open source virtualization API</span></dd>
+            </dl>
+            <dl id="p2">
+              <dt><a href="http://cobbler.et.redhat.com/">Cobbler</a></dt>
+              <dd><span>OS provisioning and profile management</span></dd>
+              <dt><a href="http://ovirt.org/">oVirt</a></dt>
+              <dd><span>Virtualization management across the data center</span></dd>
+            </dl>
+            <dl id="p3">
+              <dt><a href="http://freeipa.org/">FreeIPA</a></dt>
+              <dd><span>Identity, policy and audit management</span></dd>
+              <dt><a href="http://virt-manager.org/">Virtual Machine Manager</a></dt>
+              <dd><span>Virtualization management from the desktop</span></dd>
+            </dl>
+          </div>
+          <!--
+          <p id="et">
+            <a href="http://et.redhat.com/"><img src="{$href_base}et_logo.png" alt="A Red Hat Emerging Technology Project"/></a>
+          </p>
+          -->
+        </div>
+      </body>
+    </html>
+  </xsl:template>
+
+</xsl:stylesheet>
diff -r 02269d31d296 -r 0b26d79ea328 doc/patches.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/patches.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,195 @@
+<html>
+  <body>
+    <h1>Patches</h1>
+
+    <p>
+      To submit patches to libvirt-cim, you must follow the DCO process, 
+      outlined below:
+    </p>
+    <h3>Developer's Certificate of Origin 1.1</h3>
+    <p>
+      By making a contribution to this project, I certify that:
+    </p>
+    <ol>
+      <li>
+        <p>
+          The contribution was created in whole or in part by me and I have the 
+          right to submit it under the open source license indicated in the 
+          file; or
+        </p>
+      </li>
+      <li>
+        <p>
+          The contribution is based upon previous work that, to the best of my 
+          knowledge, is covered under an appropriate open source license and I 
+          have the right under that license to submit that work with 
+          modifications, whether created in whole or in part by me, under the 
+          same open source license (unless I am permitted to submit under a 
+          different license), as indicated in the file; or
+        </p>
+      </li>
+      <li>
+        <p>
+          The contribution was provided directly to me by some other person who 
+          certified (1), (2) or (3) and I have not modified it.
+        </p>
+      </li>
+      <li>
+        <p>
+          I understand and agree that this project and the contribution are 
+          public and that a record of the contribution (including all personal 
+          information I submit with it, including my sign-off) is maintained 
+          indefinitely and may be redistributed consistent with this project or 
+          the open source license(s) involved.
+        </p>
+      </li>
+    </ol>
+    <p>
+      then you just add a line saying
+    </p>
+    <p>
+      Signed-off-by: Random J Developer <random at developer.example.org>
+    </p>
+    <p>
+      using your real name (sorry, no pseudonyms or anonymous contributions.)
+    </p>
+    <h3>Guidelines for Submitting Patches.</h3><p>
+      Patches should be submitted using Mercurial's patchbomb extension,  and we 
+      recommend using the queues extension as well.  On top of that, we have some 
+      guidelines you should follow when submitting patches.  This makes reviewing 
+      patches easier, which in turns improves the chances of your patch being 
+      accepted in a timely fashion.
+    </p>
+    <p>
+      For help on how to use the patchbomb extension, see 
+      <a href="http://hgbook.red-bean.com/hgbookch14.html">Section 14.4</a> of 
+      <i>Distributed revision control with Mercurial</i>.
+    </p>
+    <p>
+      For help on the queues extension, see 
+      <a href="http://hgbook.red-bean.com/hgbookch12.html">Chapter 12</a>.
+    </p>
+    <h4>Single Patches:</h4>
+    <ol>
+      <li>
+        <p>
+          When you add a patch to the queue you have an idea of where
+          you're going with it, and the commit message should reflect
+          that.  Be specific.  Avoid just saying something like,
+          "Various fixes to AllocationCapabilities."  Add a list of
+          what was actually fixed, like, "Add EnumInstanceNames
+          support," and, "Eliminate duplicate instances."
+        </p>
+      </li>
+      <li>
+        <p>
+          The first line of your commit message will be the subject of
+          the patch email when you send it out, so write it like a
+          subject.  Keep it short and to the point, then start a new
+          line and feel free to be as verbose as you need to be.  The
+          entire commit message will be included in the patch.
+        </p>
+      </li>
+      <li>
+        <p>
+          Stay on task with a patch.  If you notice other problems
+          while you are working on a patch, and they are not most
+          definitely specific to your patch, they should be another
+          patch.  The same goes for nitpicking.  While it might be
+          only a line or two here and there that is off track, this is
+          actually one of the easiest ways to make a patch difficult
+          to review.  All the trivial changes hide what is really
+          going on.  Make the unrelated changes a new patch or don't
+          make them at all.
+        </p>
+      </li>
+      <li>
+        <p>
+          If your patch addresses a strange issue or a rare edge case
+          that the reviewers are unlikely to be familiar with, make
+          sure the commit message include some example testcase with
+          results, so the reviewers can verify your patch more
+          quickly.
+        </p>
+      </li>
+      <li>
+        <p>
+          Before you email, export.  If you have a patch called
+          "alloc_fixes", which would be emailed with "hg email
+          alloc_fixes", you should first run "hg export alloc_fixes".
+          This lets you review your patch.  Does it have any typos in
+          the comments?  Did you accidentally include an irrelevant
+          change?  Is your commit message still accurate and useful?
+          This is the single biggest step in ensuring you have a good
+          patch.
+        </p>
+      </li>
+      <li>
+        <p>
+          If your patch needs to be reworked and resent, prepend a
+          "version number" to the first line of the commit message.
+          For example, "Add EnumInstance to RASD," becomes "#2 Add
+          EnumInstance to RASD."  This helps mail readers thread
+          discussions correctly and helps maintainers know they are
+          applying the right version of your patch.  At the end of the
+          commit message, explain what is different from one version
+          to the next.  Nobody likes having to diff a diff.
+        </p>
+      </li>
+      <li>
+        <p>
+          If your patch depends on a patch that exists on the mailing
+          list but not in the tree, it is okay to send your patch to
+          the list as long as your commit message mentions the
+          dependency.  It is also a good idea to import the patch into
+          your tree before you make your patch.  For example, a new
+          patch called "cu_statusf API change" is on the list, and
+          your patch needs the new API.  Save the email (no need to
+          trim headers) as api_change.eml, then do "hg qimport
+          api_change.eml" and "hg qpush" so that the patch is applied
+          to your tree.  Now write your patch on top of it.  You
+          should still indicate the dependency in your commit message.
+      </p></li>
+    </ol><h4>Patchsets:</h4><ol><li>
+        <p>
+          When you send a group of patches, Mercurial's email
+          extension will create a "header" email.  Make the subject
+          and body of that email meaningful, so we know how the
+          patches relate.  It's easy to say, "Each patch has a commit
+          message, it's obvious how they work together," but the rest
+          of the list usually won't agree with that.  If the commit
+          messages for each patch are good, you shouldn't need more
+          than a sentence or two to tie them all together, but you do
+          need it.
+        </p>
+      </li>
+      <li>
+        <p>
+          If any of your patches are rejected and you rework them,
+          resend the entire set.  This prevents things like, "So use
+          patch 1 of 4 from the set I sent yesterday, 2 and 3 of 4
+          from the patch I sent an hour later, and patch 4 of 4 from
+          today."
+        </p>
+      </li> 
+      <li>
+        <p>
+          If you resend a patchset, apply part (6) of the Single
+          Patches guidelines to your "Patch [0 of 3]" header email,
+          for all the same reasons.
+        </p>
+      </li>
+    </ol>
+    <p>
+      Questions/Comments on the Guidelines should be directed to:
+    </p>
+    <p>
+      Jay Gagnon <
+      <a href="mailto:grendel at linux.vnet.ibm.com">
+        grendel at linux.vnet.ibm.com
+      </a>>
+      <br />
+      Patch Compliance Officer
+    </p>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/platforms.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/platforms.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,47 @@
+<html>
+  <body>
+    <h1>Platform Support</h1>
+    <p>
+      Currently, libvirt-cim is targeting Xen as its primary support
+      platform because is has the largest installed user base.  The
+      long-term plan is to support many others (hopefully any that libvirt
+      supports).  This includes KVM and containers.
+    </p>
+    <p>
+      The code base currently has many Xen-specific "shortcuts" that need
+      to be resolved and generalized in order to support other platforms.
+      A short list of these may include:
+    </p>
+    <ul>
+      <li>
+        The XML generation and parsing code and the related device
+        modeling code.
+      </li>
+      <li>
+        The libvirt connection logic.  Right now, (in most places) we
+        detect the current hypervisor in use and connect to libvirt
+        appropriately.  This may or may not be the correct behavior in a
+        situation where you could need to support containers and QEMU
+        virtual machines.
+      </li>
+      <li>
+        Some lingering hard-coded "Xen_Foo" class names.
+      </li>
+    </ul>
+    <p>
+      Further, supporting new platforms have some registration and
+      modeling implications:
+    </p>
+    <ul>
+      <li>
+        Additions to the MOF and registration files for "branded"
+        classes (Xen_Foo, KVM_Foo, etc)
+      </li>
+      <li>
+        Modifications to some of the association providers that register
+        separate CMPI provider structures for each class type they handle
+        (to avoid duplicate results in the general case)
+      </li>
+    </ul>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/releases.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/releases.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,25 @@
+<html>
+  <body>
+    <h1>Releases</h1>
+
+    <p>
+      <strong>livirt-cim-0.1: Jan 14 2008</strong>
+    </p>
+    <ul>
+      <li>
+        Initial Release
+      </li>
+      <li>
+        Focused on Xen paravirtual guest support
+      </li>
+    </ul>
+    <p>
+      <strong>libcmpiutil-0.1: Nov 30 2007</strong>
+    </p>
+    <ul>
+      <li>
+        Initial Release
+      </li>
+    </ul>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/schema.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/schema.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,74 @@
+<html>
+  <body>
+    <h1>Schema</h1>
+    <p>
+      The libvirt-cim provider depends on an installed 
+      <a href="http://www.dmtf.org/standards/cim/cim_schema_v216/">DMTF 
+      CIM v2.16</a> Experimental schema.  The package can be obtained
+      <a href="http://www.dmtf.org/standards/cim/cim_schema_v216/cimv216Experimental-MOFs.zip">
+        here
+      </a>.
+    </p>
+    
+    <h4>To install the schema in Pegasus:</h4>
+    <pre>
+      $ PEGASUS_REPO=/var/lib/Pegasus # adjust this as needed
+      $ mkdir cim216
+      $ cd cim216
+      $ unzip $PATH_TO_ZIPFILE
+      $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt cimv216.mof
+      $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers.mof
+      $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/virt qualifiers_optional.mof
+      $ sudo cimmofl -uc -aEV -R$PEGASUS_REPO -n /root/interop cimv216-interop.mof
+    </pre>
+    
+    <h4>To install the schema in SFCB:</h4>
+    <pre>
+      $ SFCB_CIM=/usr/local/share/sfcb/CIM # adjust this as needed
+      $ mkdir cim216
+      $ cd cim216
+      $ unzip $PATH_TO_ZIPFILE
+      $ mv cimv216.mof CIM_Schema.mof
+      $ sudo cp * $SFCB_CIM
+      $ sudo sfcbrepos
+    </pre>
+    <p>
+      <strong>Note:</strong> in both cases, the CIM v2.16 schema seems to have a
+      few classes that don't register correctly.  You may need to
+      disable installation of classes with something like the
+      following:
+    </p>
+    <pre>
+      --- CIM_Schema.mof      2007-10-15 00:15:44.000000000 -0700
+      +++ cimv216.mof 2007-10-22 10:11:19.000000000 -0700
+      @@ -507,3 +507,3 @@
+      #pragma include ("Policy/CIM_SharedSecretAuthentication.mof")
+      -#pragma include ("Security/CIM_SecurityIndication.mof")
+      +//#pragma include ("Security/CIM_SecurityIndication.mof")
+      #pragma include ("Support/PRS_Activity.mof")
+      @@ -728,4 +728,4 @@
+      #pragma include ("Policy/CIM_PolicyConditionInPolicyRule.mof")
+      -#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+      -#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+      +//#pragma include ("Security/CIM_IPNetworkSecurityIndication.mof")
+      +//#pragma include ("Security/CIM_IPPacketFilterIndication.mof")
+      #pragma include ("Support/PRS_ActivityContact.mof")
+    </pre>
+    <p>
+      <strong>cimv216-interop.mof</strong> is not part of the official DMTF 
+      CIM v2.16 schema package. Please create with the following content:
+    </p>
+    <pre>
+      #pragma locale ("en_US")
+      #pragma include ("qualifiers.mof")
+      #pragma include ("qualifiers_optional.mof")
+      #pragma include ("Core/CIM_ManagedElement.mof")
+      #pragma include ("Interop/CIM_RegisteredProfile.mof")
+      #pragma include ("Interop/CIM_RegisteredSubProfile.mof")
+      #pragma include ("Core/CIM_Dependency.mof")
+      #pragma include ("Interop/CIM_ElementConformsToProfile.mof")
+      #pragma include ("Interop/CIM_ReferencedProfile.mof")
+      #pragma include ("Interop/CIM_SubProfileRequiresProfile.mof")
+    </pre>
+  </body>
+</html>
diff -r 02269d31d296 -r 0b26d79ea328 doc/site.xsl
--- a/doc/site.xsl	Fri May 02 08:18:24 2008 -0700
+++ b/doc/site.xsl	Fri May 02 16:32:37 2008 -0400
@@ -1,258 +1,25 @@
 <?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-  <xsl:output method="xml" encoding="ISO-8859-1" indent="yes"
-      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:exsl="http://exslt.org/common"
+  exclude-result-prefixes="xsl exsl"
+  version="1.0">
+
+  <xsl:import href="page.xsl"/>
+
+  <xsl:output
+    method="xml"
+    encoding="ISO-8859-1"
+    indent="yes"
+    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
 
   <xsl:variable name="href_base" select="''"/>
-  <xsl:variable name="menu_name">Main Menu</xsl:variable>
-<!--
- - returns the filename associated to an ID in the original file
- -->
-  <xsl:template name="filename">
-    <xsl:param name="name" select="string(@href)"/>
-    <xsl:choose>
-      <xsl:when test="$name = '#Introducti'">
-        <xsl:text>intro.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Documentat'">
-        <xsl:text>docs.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Reporting'">
-        <xsl:text>development.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#help'">
-        <xsl:text>help.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Help'">
-        <xsl:text>help.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Errors'">
-        <xsl:text>errors.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Downloads'">
-        <xsl:text>downloads.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#News'">
-        <xsl:text>news.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Contributi'">
-        <xsl:text>development.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#architecture'">
-        <xsl:text>architecture.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#FAQ'">
-        <xsl:text>FAQ.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Platforms'">
-        <xsl:text>platforms.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Schema'">
-	<xsl:text>schema.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = '#Patches'">
-        <xsl:text>patches.html</xsl:text>
-      </xsl:when>
-      <xsl:when test="$name = ''">
-        <xsl:text>unknown.html</xsl:text>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select="$name"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-<!--
- - The global title
- -->
-  <xsl:variable name="globaltitle" select="string(/html/body/h1[1])"/>
 
-<!--
-  the main menu box
- -->
-  <xsl:template name="linkList">
-  <div class="linkList2">
-    <div class="llinks2">
-      <h3 class="links2"><span>main menu</span></h3>
-      <ul>
-        <li><a href="{$href_base}index.html">Home</a></li>
-    <xsl:for-each select="/html/body/h2">
-    <xsl:variable name="filename">
-      <xsl:call-template name="filename">
-	<xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
-      </xsl:call-template>
-    </xsl:variable>
-    <xsl:if test="$filename != ''">
-      <li>
-	<xsl:element name="a">
-	  <xsl:attribute name="href">
-	    <xsl:value-of select="$filename"/>
-	  </xsl:attribute>
-	  <xsl:if test="$filename = 'docs.html'">
-	      <xsl:attribute name="style">font-weight:bold</xsl:attribute>
-	  </xsl:if>
-	  <xsl:value-of select="."/>
-	</xsl:element>
-      </li>
-    </xsl:if>
-    </xsl:for-each>
-      </ul>
-    </div>
-    <div class="llinks2">
-      <h3 class="links2"><span>related links</span></h3>
-      <ul>
-        <li> <a href="https://www.redhat.com/mailman/listinfo/libvirt-cim/">Mailing list</a></li>
-	<li> <a href="http://libvirt.org/">libvirt</a></li>
-        <li><a href="http://xmlsoft.org/"> <img src="http://libvirt.org/Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li>
-      </ul>
-      <p class='credits'>Graphics and design by <a href="mail:dfong at redhat.com">Diana Fong</a></p>
-    </div>
-  </div>
+  <xsl:template match="/">
+    <xsl:apply-templates select="." mode="page">
+      <xsl:with-param name="pagename" select="$pagename"/>
+    </xsl:apply-templates>
   </xsl:template>
 
-<!--
-  the page title
- -->
-
-  <xsl:template name="titlebox">
-    <xsl:param name="title"/>
-    <h1 class="style1"><xsl:value-of select="$title"/></h1>
-  </xsl:template>
-
-<!--
- - Write the styles in the head
- -->
-  <xsl:template name="style">
-    <link rel="stylesheet" type="text/css" href="http://libvirt.org/libvirt.css" />
-    <link rel="SHORTCUT ICON" href="/32favicon.png" />
-  </xsl:template>
-
-<!--
- - The top section 
- -->
-  <xsl:template name="top">
-    <div id="top">
-      <img src="{$href_base}libvirtHeader.png" alt="Libvirt the virtualization API" />
-    </div>
-  </xsl:template>
-
-<!--
- - The top section for the main page
- -->
-  <xsl:template name="topmain">
-    <div id="topmain">
-      <img src="{$href_base}libvirtLogo.png" alt="Libvirt the virtualization API" />
-    </div>
-  </xsl:template>
-
-<!--
- - The bottom section
- -->
-  <xsl:template name="bottom">
-    <div id="bottom">
-      <p class="p1"></p>
-    </div> 
-  </xsl:template>
-
-<!--
- - Handling of nodes in the body after an H2
- - Open a new file and dump all the siblings up to the next H2
- -->
-  <xsl:template name="subfile">
-    <xsl:param name="header" select="following-sibling::h2[1]"/>
-    <xsl:variable name="filename">
-      <xsl:call-template name="filename">
-        <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
-      </xsl:call-template>
-    </xsl:variable>
-    <xsl:variable name="title">
-      <xsl:value-of select="$header"/>
-    </xsl:variable>
-    <xsl:document href="{$filename}" method="xml" encoding="ISO-8859-1"
-      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-      <html>
-        <head>
-          <xsl:call-template name="style"/>
-          <xsl:element name="title">
-            <xsl:value-of select="$title"/>
-          </xsl:element>
-        </head>
-	<body>
-	<div id="container">
-	  <div id="intro">
-	    <div id="adjustments"/>
-	    <div id="pageHeader"/>
-	    <div id="content2">
-	      <xsl:call-template name="titlebox">
-		<xsl:with-param name="title" select="$title"/>
-	      </xsl:call-template>
-	      <xsl:apply-templates mode="subfile" select="$header/following-sibling::*[preceding-sibling::h2[1] = $header and name() != 'h2' ]"/>
-	    </div>
-	  </div>
-	  <xsl:call-template name="linkList"/>
-	  <xsl:call-template name="bottom"/>
-	</div>
-	</body>
-      </html>
-    </xsl:document>
-  </xsl:template>
-
-  <xsl:template mode="subcontent" match="@*|node()">
-    <xsl:copy>
-      <xsl:apply-templates mode="subcontent" select="@*|node()"/>
-    </xsl:copy>
-  </xsl:template>
-
-  <xsl:template mode="content" match="@*|node()">
-    <xsl:if test="name() != 'h1' and name() != 'h2'">
-      <xsl:copy>
-        <xsl:apply-templates mode="subcontent" select="@*|node()"/>
-      </xsl:copy>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template mode="subfile" match="@*|node()">
-    <xsl:copy>
-      <xsl:apply-templates mode="content" select="@*|node()"/>
-    </xsl:copy>
-  </xsl:template>
-
-<!--
- - Handling of the initial body and head HTML document
- -->
-  <xsl:template match="body">
-    <xsl:variable name="firsth2" select="./h2[1]"/>
-    <body>
-    <div id="container">
-      <div id="intro">
-	<div id="adjustments">
-	  <p class="p1"></p>
-	</div>
-	<div id="content">
-          <xsl:apply-templates mode="content" select="($firsth2/preceding-sibling::*)"/>
-          <xsl:for-each select="./h2">
-            <xsl:call-template name="subfile">
-	      <xsl:with-param name="header" select="."/>
-            </xsl:call-template>
-          </xsl:for-each>
-	</div>
-      </div>
-      <xsl:call-template name="linkList"/>
-      <xsl:call-template name="bottom"/>
-    </div>
-    </body>
-  </xsl:template>
-  <xsl:template match="head">
-  </xsl:template>
-  <xsl:template match="html">
-    <xsl:message>Generating the Web pages</xsl:message>
-    <html>
-      <head>
-        <xsl:call-template name="style"/>
-        <title>the virtualization API</title>
-      </head>
-      <xsl:apply-templates/>
-    </html>
-  </xsl:template>
 </xsl:stylesheet>
diff -r 02269d31d296 -r 0b26d79ea328 doc/sitemap.html.in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/sitemap.html.in	Fri May 02 16:32:37 2008 -0400
@@ -0,0 +1,50 @@
+<html>
+  <body>
+    <h1>Sitemap</h1>
+
+    <div id="sitemap">
+    <ul>
+      <li>
+        <a href="index.html">CIM</a>
+        <span>The libvirt-cim CIM providers</span>
+        <ul>
+          <li>
+            <a href="releases.html">Releases</a>
+            <span>Official releases</span>
+          </li>
+          <li>
+            <a href="downloads.html">Downloads</a>
+            <span>Development code</span>
+          </li>
+          <li>
+            <a href="patches.html">Patches</a>
+            <span>How to contribute</span>
+          </li>
+          <li>
+            <a href="schema.html">Schema</a>
+            <span>Required CIM Schema for the providers</span>
+          </li>
+          <li>
+            <a href="platforms.html">Platform Support</a>
+            <span>Target platforms</span>
+          </li>
+          <li>
+            <a href="architecture.html">Architecture</a>
+            <span>Basic code structure</span>
+          </li>
+          <li>
+            <a href="https://www.redhat.com/mailman/listinfo/libvirt-cim/">
+              Mailing List
+            </a>
+            <span>Report bugs, discuss development</span>
+          </li>
+        </ul>
+      </li>
+      <li>
+        <a href="sitemap.html">Sitemap</a>
+        <span>Overview of all content on the website</span>
+      </li>
+    </ul>
+    </div>
+  </body>
+</html>




More information about the Libvirt-cim mailing list