usr/src/cmd/distro_const/DC-manifest.rng
changeset 663 68e739d50740
parent 659 230370af933c
child 693 c6c48f08de33
--- a/usr/src/cmd/distro_const/DC-manifest.rng	Thu Dec 10 14:54:40 2009 -0800
+++ b/usr/src/cmd/distro_const/DC-manifest.rng	Thu Dec 10 15:11:42 2009 -0800
@@ -54,8 +54,13 @@
 			<!-- General distro-constructor parameters -->
 			<ref name="nm_distro_constr_params"/>
 
-			<!-- Parameters for building live image portion -->
-			<ref name="nm_img_params"/>
+			<choice>
+				<!-- Parameters for building live image -->
+				<ref name="nm_img_params"/>
+
+				<!-- Parameters for building VM image -->
+				<ref name="nm_vmimg_params"/>
+			</choice>
 
 			<!-- General key-value pairs -->
 			<ref name="nm_key_value_pairs"/>
@@ -71,45 +76,20 @@
 		<element name="distro_constr_params">
 		<interleave>	<!-- Any element order is OK. -->
 
+			<!-- Directory to build the pkg-image area in.
+			     Will be created if it doesn't exist. -->
+			<element name="build_area">
+				<text/>	<!-- dirpath -->
+			</element>
+
 			<!-- Flags controlling DC execution. -->
 			<ref name="nm_distro_constr_flags"/>
 
-			<!-- Main (default) repo (and it's mirrors) to get
-			     packages for live image and optional on-board repo.
-			     FMRIs without an explicit authority will be
-			     sought-for here.  -->
-			<element name="pkg_repo_default_authority">
-				<ref name="nm_pkg_repo_contents"/>
-			</element>
+			<!--  Parameters specific to different output images -->
+			<oneOrMore>
+				<ref name="nm_output_image"/>
+			</oneOrMore>
 
-			<!-- Aliases for additional repos, where to find
-			     packages not in main repo.  Packages using one of
-			     these aliases must spell the alias out as part of
-			     the package FMRI.  It is called an alias because it
-			     instructs DC to search through a prefered repo
-			     (same name as the alias itself) and then mirror
-			     repos if necessary. -->
-			<zeroOrMore>
-				<element name="pkg_repo_addl_authority">
-					<ref name="nm_pkg_repo_contents"/>
-				</element>
-			</zeroOrMore>
-
-			<!-- The default repo (and it's mirrors) for the system
-			    to use after the install has completed.  -->
-			<optional>
-				<element name="post_install_repo_default_authority">
-					<ref name="nm_pkg_repo_contents"/>
-				</element>
-			</optional>
-
-			<!-- Additional repos (and their mirrors) for the system
-			    to use after the install has completed.  -->
-			<zeroOrMore>
-				<element name="post_install_repo_addl_authority">
-					<ref name="nm_pkg_repo_contents"/>
-				</element>
-			</zeroOrMore>
 		</interleave>
 		</element>
 	</define>
@@ -169,6 +149,43 @@
 		<element name="img_params">
 		<interleave>
 
+			<!-- Main (default) repo (and it's mirrors) to get
+			     packages for live image and optional on-board repo.
+			     FMRIs without an explicit authority will be
+			     sought-for here.  -->
+			<element name="pkg_repo_default_authority">
+				<ref name="nm_pkg_repo_contents"/>
+			</element>
+
+			<!-- Aliases for additional repos, where to find
+			     packages not in main repo.  Packages using one of
+			     these aliases must spell the alias out as part of
+			     the package FMRI.  It is called an alias because it
+			     instructs DC to search through a prefered repo
+			     (same name as the alias itself) and then mirror
+			     repos if necessary. -->
+			<zeroOrMore>
+				<element name="pkg_repo_addl_authority">
+					<ref name="nm_pkg_repo_contents"/>
+				</element>
+			</zeroOrMore>
+
+			<!-- The default repo (and it's mirrors) for the system
+			    to use after the install has completed.  -->
+			<optional>
+				<element name="post_install_repo_default_authority">
+					<ref name="nm_pkg_repo_contents"/>
+				</element>
+			</optional>
+
+			<!-- Additional repos (and their mirrors) for the system
+			    to use after the install has completed.  -->
+			<zeroOrMore>
+				<element name="post_install_repo_addl_authority">
+					<ref name="nm_pkg_repo_contents"/>
+				</element>
+			</zeroOrMore>
+
 			<!-- List of packages from which live image is built.
 			     Package name can the name of an IPS incorporation
 			     if such incorporation is in the source repository.
@@ -256,12 +273,6 @@
 				<ref name="nm_power_mgmt"/>
 			</optional>
 
-			<!-- Directory to build the pkg-image area in.
-			     Will be created if it doesn't exist. -->
-			<element name="build_area">
-				<text/>	<!-- dirpath -->
-			</element>
-
 			<!-- Limit of how large the pkg image area can grow.
 			     Zero is unlimited. -->
 			<optional>
@@ -271,16 +282,24 @@
 				</element>
 			</optional>
 
-			<!--  Parameters specific to different output images -->
-			<oneOrMore>
-				<ref name="nm_output_image"/>
-			</oneOrMore>
 		</interleave>
 		</element>
 	</define>
 
 	<!--
 	=======================================================================
+	"Top" section for VM image parameters.  This section describes how to
+	build a VM image.
+	=======================================================================
+	-->
+	<define name="nm_vmimg_params">
+		<element name="vmimg_params">
+			<empty/>
+		</element>
+	</define>
+
+	<!--
+	=======================================================================
 	Grub menu modifications
 	=======================================================================
 	-->
@@ -465,7 +484,7 @@
 		<element name="output_image">
 			<interleave>
 
-				<!-- Tweaks to the boot archive specific for this
+				<!-- Tweeks to the boot archive specific for this
 				     output image. -->
 				<optional> <!-- Maybe generic boot archive is fine -->
 					<ref name="nm_output_image_boot_archive"/>
@@ -485,7 +504,7 @@
 
 	<!--
 	=======================================================================
-	Tweaks to the boot archive specific for this output image.
+	Tweeks to the boot archive specific for this output image.
 	=======================================================================
 	-->
 	<define name="nm_output_image_boot_archive">
@@ -508,7 +527,7 @@
 					</element>
 				</optional>
 				
-				<!-- If/how to compress boot archive-->
+				<!-- If/how to compress boot archive -->
 				<optional>
 					<element name="compression">
       	                         		<ref name=