7037014 Install DTDs should be versioned
authorDarren Kenny <Darren.Kenny@Oracle.COM>
Fri, 19 Aug 2011 08:56:26 -0700
changeset 1403 7d79448a5018
parent 1402 882307634c92
child 1404 eb440adee8e3
7037014 Install DTDs should be versioned
usr/src/Makefile.master
usr/src/Targetdirs
usr/src/cmd/Makefile.targ
usr/src/cmd/ai-webserver/data_files.py
usr/src/cmd/auto-install/checkpoints/dmm.py
usr/src/cmd/auto-install/manifest/Makefile
usr/src/cmd/auto-install/manifest/ai_manifest.xml
usr/src/cmd/auto-install/manifest/ai_manifest.xml.src
usr/src/cmd/auto-install/manifest/default.xml
usr/src/cmd/auto-install/manifest/default.xml.src
usr/src/cmd/auto-install/manifest/zone_default.xml
usr/src/cmd/auto-install/manifest/zone_default.xml.src
usr/src/cmd/auto-install/svc/Makefile
usr/src/cmd/auto-install/svc/auto-installer
usr/src/cmd/auto-install/svc/auto-installer.src
usr/src/cmd/auto-install/test/manifest_auto_reboot_false.xml
usr/src/cmd/auto-install/test/manifest_auto_reboot_false.xml.src
usr/src/cmd/auto-install/test/manifest_auto_reboot_invalid.xml
usr/src/cmd/auto-install/test/manifest_auto_reboot_invalid.xml.src
usr/src/cmd/auto-install/test/manifest_auto_reboot_not_set.xml
usr/src/cmd/auto-install/test/manifest_auto_reboot_not_set.xml.src
usr/src/cmd/auto-install/test/manifest_auto_reboot_true.xml
usr/src/cmd/auto-install/test/manifest_auto_reboot_true.xml.src
usr/src/cmd/auto-install/xslt/new-to-newer.xslt
usr/src/cmd/auto-install/xslt/old-to-new.xslt
usr/src/cmd/distro_const/checkpoints/pre_pkg_img_mod.py
usr/src/cmd/distro_const/checkpoints/xslt/Makefile
usr/src/cmd/distro_const/checkpoints/xslt/doc2_media_transfer.xslt
usr/src/cmd/distro_const/checkpoints/xslt/doc2_media_transfer.xslt.src
usr/src/cmd/distro_const/manifest/Makefile
usr/src/cmd/distro_const/manifest/dc_ai_sparc.xml
usr/src/cmd/distro_const/manifest/dc_ai_sparc.xml.src
usr/src/cmd/distro_const/manifest/dc_ai_x86.xml
usr/src/cmd/distro_const/manifest/dc_ai_x86.xml.src
usr/src/cmd/distro_const/manifest/dc_livecd.xml
usr/src/cmd/distro_const/manifest/dc_livecd.xml.src
usr/src/cmd/distro_const/manifest/dc_text_sparc.xml
usr/src/cmd/distro_const/manifest/dc_text_sparc.xml.src
usr/src/cmd/distro_const/manifest/dc_text_x86.xml
usr/src/cmd/distro_const/manifest/dc_text_x86.xml.src
usr/src/cmd/js2ai/modules/Makefile
usr/src/cmd/js2ai/modules/common.py
usr/src/cmd/js2ai/modules/default_xml.py
usr/src/cmd/js2ai/modules/default_xml.py.src
usr/src/lib/install_common/Makefile
usr/src/lib/install_common/__init__.py
usr/src/lib/install_common/__init__.py.src
usr/src/lib/install_common/test/test_install_common.py
usr/src/lib/install_manifest/dtd/Makefile
usr/src/lib/install_manifest/dtd/ai.dtd
usr/src/lib/install_manifest/dtd/ai.dtd.src
usr/src/lib/install_manifest/dtd/dc.dtd
usr/src/lib/install_manifest/dtd/dc.dtd.src
usr/src/lib/install_manifest/dtd/media-transfer.dtd
usr/src/lib/install_manifest/dtd/media-transfer.dtd.src
usr/src/lib/install_manifest_input/test/test_manifest_input_overlay.py
usr/src/lib/install_manifest_input/test/test_manifest_input_pathing.py
usr/src/lib/install_manifest_input/test/test_manifest_input_set_get_add.py
usr/src/lib/install_manifest_input/test/test_manifest_input_validate_commit.py
usr/src/pkg/Makefile
usr/src/pkg/manifests/system-library-install.mf
usr/src/tools/tests/slim_test
--- a/usr/src/Makefile.master	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/Makefile.master	Fri Aug 19 08:56:26 2011 -0700
@@ -132,6 +132,7 @@
 ROOTPYTHONVENDORSOLINSTALLDATACACHE=	$(ROOTPYTHONVENDORSOLINSTALL)/data_object
 ROOTPYTHONVENDORINSTALLDC=	$(ROOTPYTHONVENDORSOLINSTALL)/distro_const
 ROOTPYTHONVENDORINSTALLDCCHKPT= $(ROOTPYTHONVENDORINSTALLDC)/checkpoints
+ROOTPYTHONVENDORINSTALLDCCHKPTXSLT= $(ROOTPYTHONVENDORINSTALLDCCHKPT)/xslt
 ROOTPYTHONVENDORSOLINSTALLAI= \
 		$(ROOTPYTHONVENDORSOLINSTALL)/auto_install
 ROOTPYTHONVENDORSOLINSTALLAICHKPT= \
@@ -195,6 +196,16 @@
 OWNER=			bin
 GROUP=			bin
 
+# DTD File Versions
+DTD_VERSION_AI = 1
+DTD_VERSION_DC = 1
+DTD_VERSION_BOOT_MODS = 1
+DTD_VERSION_CONFIGURATION = 1
+DTD_VERSION_EXECUTION = 1
+DTD_VERSION_MEDIA_TRANSFER = 1
+DTD_VERSION_SOFTWARE = 1
+DTD_VERSION_TARGET = 1
+
 # CH toggles operations restricted to root.  It is normally set to `#'.  When
 # running as root, it should be set to `' (null) in your environment.
 # RELEASE_BUILD should be cleared for RE builds.  This is completely
@@ -449,5 +460,16 @@
 	cp $*.ksh $@
 	chmod a+x $@
 
+.src:
+	$(RM) $@
+	$(SED)	-e "s,@DTD_VERSION_AI@,$(DTD_VERSION_AI),g" \
+		-e "s,@DTD_VERSION_DC@,$(DTD_VERSION_DC),g" \
+		-e "s,@DTD_VERSION_BOOT_MODS@,$(DTD_VERSION_BOOT_MODS),g" \
+		-e "s,@DTD_VERSION_CONFIGURATION@,$(DTD_VERSION_CONFIGURATION),g" \
+		-e "s,@DTD_VERSION_EXECUTION@,$(DTD_VERSION_EXECUTION),g" \
+		-e "s,@DTD_VERSION_MEDIA_TRANSFER@,$(DTD_VERSION_MEDIA_TRANSFER),g" \
+		-e "s,@DTD_VERSION_SOFTWARE@,$(DTD_VERSION_SOFTWARE),g" \
+		-e "s,@DTD_VERSION_TARGET@,$(DTD_VERSION_TARGET),g" \
+ 		$< > $@
 
-.SUFFIXES:    $(SUFFIXES) .po .ksh .ksh~ 
+.SUFFIXES:    $(SUFFIXES) .po .ksh .ksh~ .src
--- a/usr/src/Targetdirs	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/Targetdirs	Fri Aug 19 08:56:26 2011 -0700
@@ -70,6 +70,7 @@
 	/usr/lib/python2.6/vendor-packages/solaris_install/distro_const \
 	/usr/lib/python2.6/vendor-packages/solaris_install/distro_const/checkpoints \
 	/usr/lib/python2.6/vendor-packages/solaris_install/distro_const/checkpoints/defaultfiles \
+	/usr/lib/python2.6/vendor-packages/solaris_install/distro_const/checkpoints/xslt \
 	/usr/lib/python2.6/vendor-packages/solaris_install \
 	/usr/lib/python2.6/vendor-packages/solaris_install/boot \
 	/usr/lib/python2.6/vendor-packages/solaris_install/configuration \
--- a/usr/src/cmd/Makefile.targ	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/Makefile.targ	Fri Aug 19 08:56:26 2011 -0700
@@ -86,6 +86,9 @@
 $(ROOTPYTHONVENDORINSTALLDCCHKPT):
 	$(INS.dir)
 
+$(ROOTPYTHONVENDORINSTALLDCCHKPTXSLT):
+	$(INS.dir)
+
 $(ROOTPYTHONVENDORINSTALLAI):
 	$(INS.dir)
 
@@ -182,6 +185,9 @@
 $(ROOTAUTOINSTSCPROFILES)/%: %
 	$(INS.file)
 
+$(ROOTPYTHONVENDORINSTALLDCCHKPTXSLT)/%: %
+	$(INS.file)
+
 $(ROOTGUIINST):
 	$(INS.dir)
 
--- a/usr/src/cmd/ai-webserver/data_files.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/ai-webserver/data_files.py	Fri Aug 19 08:56:26 2011 -0700
@@ -44,8 +44,7 @@
 import osol_install.auto_install.verifyXML as verifyXML
 from osol_install.auto_install.installadm_common import _
 
-IMG_AI_MANIFEST_DTD = "auto_install/ai.dtd"
-SYS_AI_MANIFEST_DTD = "/usr/share/install/ai.dtd"
+from solaris_install import IMG_AI_MANIFEST_PATH, IMG_AI_MANIFEST_DTD
 
 IMG_AI_MANIFEST_SCHEMA = "auto_install/ai_manifest.rng"
 
@@ -557,12 +556,16 @@
         if service_dir:
             self.service = service_dir
 
+        self._manifest_name = manifest_name
+        self.manifest_is_script = self.manifest_is_a_script(manifest_file)
+
         # Holds path to AI image
         self._imagepath = None
         if image_path:
             self.image_path = image_path
             # set the AI schema once image_path is set
-            self.set_AI_schema()
+            self.set_AI_schema(
+                manifest_file if not self.manifest_is_script else None)
 
         # Holds database object for criteria database
         self._db = None
@@ -588,9 +591,6 @@
                 raise ValueError(_("Error: Unable to determine AI manifest "
                                    "validation type.\n"))
 
-        self._manifest_name = manifest_name
-        self.manifest_is_script = self.manifest_is_a_script(manifest_file)
-
         # Bypass XML verification if script passed in instead of a manifest.
         if self.manifest_is_script:
             self._manifest = manifest_file
@@ -859,28 +859,62 @@
         else:
             raise AssertionError('AIschema not set')
 
-    def set_AI_schema(self):
+    def set_AI_schema(self, manifest_file=None):
         """
         Sets self._AIschema and errors if imagepath not yet set.
         Args: None
         Raises: SystemExit if unable to find a valid AI schema
         Returns: None
         """
-        if os.path.exists(os.path.join(self.image_path,
-                                       IMG_AI_MANIFEST_DTD)):
-            self._AIschema = os.path.join(self.image_path,
-                                          IMG_AI_MANIFEST_DTD)
+
+        # If manifest is provided, it must have a DOCTYPE string that
+        # references a DTD.
+        if not os.path.exists(manifest_file):
+            raise SystemExit(_("Error: Cannot access Manifest \"%s\"." %
+                manifest_file))
+
+        # Try first to get schema basename from DOCINFO in XML
+        schema_basename = None
+        try:
+            manifest_doc = lxml.etree.parse(manifest_file)
+            system_url = manifest_doc.docinfo.system_url
+            if system_url is not None:
+                schema_basename = os.path.basename(system_url)
+            else:
+                raise SystemExit(_("Error: manifest must have a DOCTYPE string"
+                                   " with DTD reference."))
+        except lxml.etree.XMLSyntaxError, syntax_error:
+            raise SystemExit(_("Error: There was a syntax error parsing the "
+                               "manifest %(mf)s:\n  %(error)s") %
+                               {'mf': manifest_file,
+                                'error': str(syntax_error)})
+
+        # if ai.dtd is specified, give a warning about not using the versioned
+        # ai.dtd.<version> but proceed.
+        dtd_to_use = os.path.join(self.image_path, IMG_AI_MANIFEST_PATH,
+                                  schema_basename)
+        if os.path.exists(dtd_to_use):
+            versioned_DTD = os.path.join(self.image_path, IMG_AI_MANIFEST_DTD)
+            if (schema_basename == "ai.dtd" and os.path.exists(versioned_DTD)):
+                print (_("Warning: manifest \"%s\" DOCTYPE specifies "
+                    "\"ai.dtd\"\n"
+                    "while versioned DTD \"%s\" exists in the image.  "
+                    "Attempting to proceed...") % (manifest_file,
+                    os.path.basename(IMG_AI_MANIFEST_DTD)))
+            self._AIschema = dtd_to_use
+
+        # RNG schema
         elif os.path.exists(os.path.join(self.image_path,
                                          IMG_AI_MANIFEST_SCHEMA)):
             self._AIschema = os.path.join(self.image_path,
                                          IMG_AI_MANIFEST_SCHEMA)
         else:
-            if os.path.exists(SYS_AI_MANIFEST_DTD):
-                self._AIschema = SYS_AI_MANIFEST_DTD
-                print (_("Warning: Using AI manifest dtd <%s>\n") %
-                        self._AIschema)
-            else:
-                raise SystemExit(_("Error:\tUnable to find an AI dtd!"))
+            raise SystemExit(_("Error: The DTD \"%(dtd)s\" version specifed "
+                               "in the manifest \n\"%(mf)s\" could not be "
+                               "found in the image path of the install "
+                               "service.") %
+                               {'dtd': schema_basename,
+                                'mf': manifest_file})
 
     def get_image_path(self):
         """
--- a/usr/src/cmd/auto-install/checkpoints/dmm.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/auto-install/checkpoints/dmm.py	Fri Aug 19 08:56:26 2011 -0700
@@ -47,7 +47,8 @@
 
 from lxml import etree
 
-from solaris_install import Popen, CalledProcessError, system_temp_path
+from solaris_install import Popen, CalledProcessError, system_temp_path, \
+    SYS_AI_MANIFEST_DTD
 from solaris_install.auto_install.ai_get_manifest import AICriteriaNetwork
 from solaris_install.data_object import DataObject
 from solaris_install.engine import InstallEngine
@@ -66,7 +67,6 @@
 
 # Other configurables
 DEFAULT_AIM_MANIFEST = system_temp_path("manifest.xml")
-DEFAULT_AI_SCHEMA = "/usr/share/install/ai.dtd"
 SYSTEM_CONF = "/etc/netboot/system.conf"
 
 # Commands
@@ -479,7 +479,7 @@
             dtd = tree.docinfo.system_url
             self.logger.info(MSG_HEADER + "Using DTD from header of manifest.")
         else:
-            dtd = DEFAULT_AI_SCHEMA
+            dtd = SYS_AI_MANIFEST_DTD
             self.logger.info(MSG_HEADER + "Manifest header refers to no DTD.")
         self.logger.info(MSG_HEADER + "Validating against DTD: %s" % dtd)
 
--- a/usr/src/cmd/auto-install/manifest/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/auto-install/manifest/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -23,19 +23,30 @@
 #
 include $(SRC)/cmd/Makefile.cmd
 
-MANIFEST_FILES =	ai_manifest.xml \
+MANIFEST_FILES_SRC =	ai_manifest.xml.src \
+			default.xml.src \
+			zone_default.xml.src
+
+MANIFEST_FILES_GEN =	ai_manifest.xml \
 			default.xml \
 			zone_default.xml
 
+MANIFEST_FILES =	$(MANIFEST_FILES_GEN)
+
 ROOTMANIFESTS= $(MANIFEST_FILES:%=$(ROOTAUTOINSTMANIFEST)/%)
 
-all:
+CLEANFILES = $(MANIFEST_FILES_GEN)
+CLOBERFILES = $(CLEANFILES)
+
+all: $(MANIFEST_FILES_GEN)
 
 install: all .WAIT \
 	$(ROOTMANIFESTS)
 
-clean:
+$(MANIFEST_FILES_GEN):
 
-clobber: clean
+clean:
+	$(RM) $(CLEANFILES)
+
 
 include $(SRC)/cmd/Makefile.targ
--- a/usr/src/cmd/auto-install/manifest/ai_manifest.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-<?xml version="1.0"?>
-<!--
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License (the "License").
-You may not use this file except in compliance with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-
-Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<!--
-===============================================================================
-DTD sample manifest for Automatic Installer input manifest specification.
-===============================================================================
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-<auto_install>
-  <!--
-        "auto_reboot" set to "true" may be an issue for x86 machines.
-        The boot order is not guaranteed and may cause unexpected
-        behavior. If auto_reboot is not desired, set auto_reboot="false".
-
-        The name of the manifest is obtained from (in this order):
-        1) the name from the installadm create-manifest
-           command line "-m" option.
-        2) a name attribute in the manifest, e.g.: 
-           <ai_instance name="my_ai_manifest" auto_reboot="true">
-        3) manifest filename 
-    -->
-  <ai_instance auto_reboot="true">
-    <!--
-      =======================================================================
-      <target> - selections for AI target Device specification
-
-      Disk criteria are divided into three mutually exclusive groups:
-
-      G1 - deterministic disk criteria
-      ................................
-        * disk/iscsi parameters
-        * disk/disk_name, with name_type attribute:
-          one of ctd, volid, devpath, devid, or receptacle
-
-      G2 - non-deterministic disk criteria
-      ..........................
-        * disk/disk_prop: Any of dev_type, dev_vendor, dev_chassis, or
-          dev_size
-
-      G3 - keyword disk criteria
-      ...........................
-        * disk/disk_keyword: "boot_disk"
-
-      Schema ai.dtd enforces following policy:
-
-      * criteria in group G1 are mutually exclusive - only
-        one can be specified at a time
-
-      * groups G1, G2 and G3 are mutually exclusive - i.e.
-        if criteria from G1 is specified, no criteria
-        from G2 or G3 are allowed and vice versa
-
-      * multiple criteria from G2 can be specified
-      =======================================================================
-    -->
-    <target>
-      <disk>
-        <!-- G1 -->
-        <!--
-          c#t#d# device name like c0t0d0 or 
-          MPXIO name like c0t2000002037CD9F72d0
-        -->
-        <disk_name name="c1t0d0" name_type="ctd"/>
-        <!-- volume name set for instance by means
-          of format(1M) command
-        -->
-        <!--
-        <disk_name name="ai-disk" name_type="volid"/>
-        -->
-        <!-- device id - e.g. can be obtained by means of
-          iostat(1M) -iEn
-        -->
-        <!--
-        <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
-        -->
-        <!-- device path under /devices directory, e.g.
-          /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-        -->
-        <!--
-        <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
-        -->
-        <!--
-          ISCSI target device
-
-          DHCP Rootpath
-        <iscsi source="dhcp"/>
-
-          with static-discovery
-        <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
-
-          with sendtargets
-        <iscsi target_lun="0" target_ip="192.168.1.34"/>
-        -->
-        <!-- receptacle name - e.g. can be obtained by means of 
-          croinfo(1M) -o cR
-        -->
-        <!--
-        <disk_name name="SYS/HD2" name_type="receptacle"/>
-        -->
-
-        <!-- G2 -->
-        <!--
-        <disk_prop dev_vendor="hitachi" dev_size="20480mb"/>
-
-        or 
-
-        <disk_prop dev_vendor="hitachi"/>
-
-        or
-
-        <disk_prop dev_size="20480mb"/>
-        -->
-
-        <!-- receptacle name - e.g. can be obtained by means of 
-          croinfo(1M) -o cA
-        -->
-        <!--
-        <disk_prop dev_chassis="SYS"/>
-        -->
-
-        <!-- G3 -->
-        <!--
-        <disk_keyword key="boot_disk"/>
-        -->
-        <!--
-          On X86 machines, Slices exist within partitions only
-        -->
-        <!--
-          Uncomment this to force AI to find an existing Solaris
-          partition.
-        -->
-        <!--
-        <partition action="use_existing_solaris2">
-          <slice name="0">
-            <size val="20480mb"/>
-          </slice>
-          <slice name="4">
-            <size val="20480mb"/>
-          </slice>
-        </partition>
-
-        or, use the following to create a Solaris partition
-        -->
-        <partition name="1" part_type="191">
-          <size start_sector="200" val="40960mb"/>
-          <slice name="0">
-            <size val="20480mb"/>
-          </slice>
-          <slice name="4">
-            <size val="20480mb"/>
-          </slice>
-        </partition>
-        <!-- Define some other partitions to create too -->
-        <partition name="2" part_type="99">
-          <size start_sector="200" val="20480mb"/>
-        </partition>
-        <partition name="4" part_type="99">
-          <size start_sector="2000" val="20480mb"/>
-        </partition>
-        <!--
-        On SPARC systems, only specify the Slice layout.
-        -->
-        <!--
-            <slice name="0">
-              <size val="20480mb"/>
-            </slice>
-            <slice name="4">
-              <size val="20480mb"/>
-            </slice>
-        -->
-      </disk>
-      <logical>
-        <zpool name="rpool" is_root="true">
-          <filesystem name="export" mountpoint="/export"/>
-          <filesystem name="export/home"/>
-          <be name="solaris"/>
-        </zpool>
-      </logical>
-    </target>
-    <software name="ips" type="IPS">
-      <!--
-
-      If you wish to specify different language packs to install, this done by
-      specifying facets, which match against the IPS packages.
-
-      To specify this in an AI manifest you can do it by uncommenting the
-      following section:
-
-      <destination>
-        <image>
-          <facet set="false">facet.locale.*</facet>
-          <facet set="true">facet.locale.de</facet>
-          <facet set="true">facet.locale.de_DE</facet>
-          <facet set="true">facet.locale.en</facet>
-          <facet set="true">facet.locale.en_US</facet>
-          <facet set="true">facet.locale.es</facet>
-          <facet set="true">facet.locale.es_ES</facet>
-          <facet set="true">facet.locale.fr</facet>
-          <facet set="true">facet.locale.fr_FR</facet>
-          <facet set="true">facet.locale.it</facet>
-          <facet set="true">facet.locale.it_IT</facet>
-          <facet set="true">facet.locale.ja</facet>
-          <facet set="true">facet.locale.ja_*</facet>
-          <facet set="true">facet.locale.ko</facet>
-          <facet set="true">facet.locale.ko_*</facet>
-          <facet set="true">facet.locale.pt</facet>
-          <facet set="true">facet.locale.pt_BR</facet>
-          <facet set="true">facet.locale.zh</facet>
-          <facet set="true">facet.locale.zh_CN</facet>
-          <facet set="true">facet.locale.zh_TW</facet>
-        </image>
-      </destination>
-      -->
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-        </publisher>
-      </source>
-      <!--
-        By default the latest build available, in the
-        specified IPS repository, is installed.
-        if another build is required, the build number has
-        to be appended to the 'entire' package in following
-        form:
-      <name="[email protected]#"/>
-      -->
-      <software_data>
-        <name>pkg:/entire</name>
-        <name>pkg:/group/system/solaris-large-server</name>
-      </software_data>
-    </software>
-    <add_drivers>
-      <!--
-            Driver Updates: This section is for adding driver packages to the
-            boot environment before the installation takes place.  The
-            installer can then access all devices on the system.  The
-            packages installed in the boot environment will also be installed
-            on the target.
-
-            A <search_all> entry performs a search for devices which are
-            missing their drivers.  A repository publisher and location
-            may be specified, and that repository and its database will
-            be used.  If no publisher and location is specified, the
-            configured repositories will be used.
-            (See pkg publisher command.)  If <addall> is specified as
-            "true", then drivers the database says are third-party drivers
-            will be added like all others; otherwise third-party drivers
-            will not be added.
-
-                <search_all addall="true">
-                    <source>
-                        <publisher name="solaris">
-                            <origin name="http://pkg.oracle.com/solaris/release"/>
-                        </publisher>
-                    </source>
-                </search_all>
-
-            <software> entries are user-provided specifications of packages
-            needed in order to perform the install.  types are P5I, SVR4, DU.
-            A <software_data> action of "noinstall" inhibits adding to target.
-
-            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
-            Path may be to a local file or an http or ftp specification.
-                <software>
-                    <source>
-                        <publisher>
-                            <origin
-                                name=
-        "http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
-                        </publisher>
-                    </source>
-                    <software_data type="P5I"/>
-                </software>
-
-            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
-            to the directory containing the packages.  The 
-            software/software_data/name refers tp the package's top level
-            directory or the package's datastream file.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/package_dir"/>
-                        </publisher>
-                    </source>
-                    <software_data type="SVR4">
-                        <name>my_disk_driver.d</name>
-                    </software_data>
-                </software>
-
-            DU: An ITU (Install Time Update) or Driver Update image.
-            The source/publisher/origin refers to the path just above the 
-            image's DU directory (if expanded) or the name of the .iso image.  
-            All packages in the image will be added.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/duimages/mydriver.iso"/>
-                        </publisher>
-                    </source>
-                    <software_data type="DU"/>
-                </software>     
-      -->
-      <search_all/>
-    </add_drivers>
-  </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/manifest/ai_manifest.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,329 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+<!--
+===============================================================================
+DTD sample manifest for Automatic Installer input manifest specification.
+===============================================================================
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+  <!--
+        "auto_reboot" set to "true" may be an issue for x86 machines.
+        The boot order is not guaranteed and may cause unexpected
+        behavior. If auto_reboot is not desired, set auto_reboot="false".
+
+        The name of the manifest is obtained from (in this order):
+        1) the name from the installadm create-manifest
+           command line "-m" option.
+        2) a name attribute in the manifest, e.g.: 
+           <ai_instance name="my_ai_manifest" auto_reboot="true">
+        3) manifest filename 
+    -->
+  <ai_instance auto_reboot="true">
+    <!--
+      =======================================================================
+      <target> - selections for AI target Device specification
+
+      Disk criteria are divided into three mutually exclusive groups:
+
+      G1 - deterministic disk criteria
+      ................................
+        * disk/iscsi parameters
+        * disk/disk_name, with name_type attribute:
+          one of ctd, volid, devpath, devid, or receptacle
+
+      G2 - non-deterministic disk criteria
+      ..........................
+        * disk/disk_prop: Any of dev_type, dev_vendor, dev_chassis, or
+          dev_size
+
+      G3 - keyword disk criteria
+      ...........................
+        * disk/disk_keyword: "boot_disk"
+
+      Schema ai.dtd enforces following policy:
+
+      * criteria in group G1 are mutually exclusive - only
+        one can be specified at a time
+
+      * groups G1, G2 and G3 are mutually exclusive - i.e.
+        if criteria from G1 is specified, no criteria
+        from G2 or G3 are allowed and vice versa
+
+      * multiple criteria from G2 can be specified
+      =======================================================================
+    -->
+    <target>
+      <disk>
+        <!-- G1 -->
+        <!--
+          c#t#d# device name like c0t0d0 or 
+          MPXIO name like c0t2000002037CD9F72d0
+        -->
+        <disk_name name="c1t0d0" name_type="ctd"/>
+        <!-- volume name set for instance by means
+          of format(1M) command
+        -->
+        <!--
+        <disk_name name="ai-disk" name_type="volid"/>
+        -->
+        <!-- device id - e.g. can be obtained by means of
+          iostat(1M) -iEn
+        -->
+        <!--
+        <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
+        -->
+        <!-- device path under /devices directory, e.g.
+          /pci@1e,600000/pci@0/pci@9/pci@0/scsi@1/sd@0,0
+        -->
+        <!--
+        <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
+        -->
+        <!--
+          ISCSI target device
+
+          DHCP Rootpath
+        <iscsi source="dhcp"/>
+
+          with static-discovery
+        <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
+
+          with sendtargets
+        <iscsi target_lun="0" target_ip="192.168.1.34"/>
+        -->
+        <!-- receptacle name - e.g. can be obtained by means of 
+          croinfo(1M) -o cR
+        -->
+        <!--
+        <disk_name name="SYS/HD2" name_type="receptacle"/>
+        -->
+
+        <!-- G2 -->
+        <!--
+        <disk_prop dev_vendor="hitachi" dev_size="20480mb"/>
+
+        or 
+
+        <disk_prop dev_vendor="hitachi"/>
+
+        or
+
+        <disk_prop dev_size="20480mb"/>
+        -->
+
+        <!-- receptacle name - e.g. can be obtained by means of 
+          croinfo(1M) -o cA
+        -->
+        <!--
+        <disk_prop dev_chassis="SYS"/>
+        -->
+
+        <!-- G3 -->
+        <!--
+        <disk_keyword key="boot_disk"/>
+        -->
+        <!--
+          On X86 machines, Slices exist within partitions only
+        -->
+        <!--
+          Uncomment this to force AI to find an existing Solaris
+          partition.
+        -->
+        <!--
+        <partition action="use_existing_solaris2">
+          <slice name="0">
+            <size val="20480mb"/>
+          </slice>
+          <slice name="4">
+            <size val="20480mb"/>
+          </slice>
+        </partition>
+
+        or, use the following to create a Solaris partition
+        -->
+        <partition name="1" part_type="191">
+          <size start_sector="200" val="40960mb"/>
+          <slice name="0">
+            <size val="20480mb"/>
+          </slice>
+          <slice name="4">
+            <size val="20480mb"/>
+          </slice>
+        </partition>
+        <!-- Define some other partitions to create too -->
+        <partition name="2" part_type="99">
+          <size start_sector="200" val="20480mb"/>
+        </partition>
+        <partition name="4" part_type="99">
+          <size start_sector="2000" val="20480mb"/>
+        </partition>
+        <!--
+        On SPARC systems, only specify the Slice layout.
+        -->
+        <!--
+            <slice name="0">
+              <size val="20480mb"/>
+            </slice>
+            <slice name="4">
+              <size val="20480mb"/>
+            </slice>
+        -->
+      </disk>
+      <logical>
+        <zpool name="rpool" is_root="true">
+          <filesystem name="export" mountpoint="/export"/>
+          <filesystem name="export/home"/>
+          <be name="solaris"/>
+        </zpool>
+      </logical>
+    </target>
+    <software name="ips" type="IPS">
+      <!--
+
+      If you wish to specify different language packs to install, this done by
+      specifying facets, which match against the IPS packages.
+
+      To specify this in an AI manifest you can do it by uncommenting the
+      following section:
+
+      <destination>
+        <image>
+          <facet set="false">facet.locale.*</facet>
+          <facet set="true">facet.locale.de</facet>
+          <facet set="true">facet.locale.de_DE</facet>
+          <facet set="true">facet.locale.en</facet>
+          <facet set="true">facet.locale.en_US</facet>
+          <facet set="true">facet.locale.es</facet>
+          <facet set="true">facet.locale.es_ES</facet>
+          <facet set="true">facet.locale.fr</facet>
+          <facet set="true">facet.locale.fr_FR</facet>
+          <facet set="true">facet.locale.it</facet>
+          <facet set="true">facet.locale.it_IT</facet>
+          <facet set="true">facet.locale.ja</facet>
+          <facet set="true">facet.locale.ja_*</facet>
+          <facet set="true">facet.locale.ko</facet>
+          <facet set="true">facet.locale.ko_*</facet>
+          <facet set="true">facet.locale.pt</facet>
+          <facet set="true">facet.locale.pt_BR</facet>
+          <facet set="true">facet.locale.zh</facet>
+          <facet set="true">facet.locale.zh_CN</facet>
+          <facet set="true">facet.locale.zh_TW</facet>
+        </image>
+      </destination>
+      -->
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the
+        specified IPS repository, is installed.
+        if another build is required, the build number has
+        to be appended to the 'entire' package in following
+        form:
+      <name="[email protected]#"/>
+      -->
+      <software_data>
+        <name>pkg:/entire</name>
+        <name>pkg:/group/system/solaris-large-server</name>
+      </software_data>
+    </software>
+    <add_drivers>
+      <!--
+            Driver Updates: This section is for adding driver packages to the
+            boot environment before the installation takes place.  The
+            installer can then access all devices on the system.  The
+            packages installed in the boot environment will also be installed
+            on the target.
+
+            A <search_all> entry performs a search for devices which are
+            missing their drivers.  A repository publisher and location
+            may be specified, and that repository and its database will
+            be used.  If no publisher and location is specified, the
+            configured repositories will be used.
+            (See pkg publisher command.)  If <addall> is specified as
+            "true", then drivers the database says are third-party drivers
+            will be added like all others; otherwise third-party drivers
+            will not be added.
+
+                <search_all addall="true">
+                    <source>
+                        <publisher name="solaris">
+                            <origin name="http://pkg.oracle.com/solaris/release"/>
+                        </publisher>
+                    </source>
+                </search_all>
+
+            <software> entries are user-provided specifications of packages
+            needed in order to perform the install.  types are P5I, SVR4, DU.
+            A <software_data> action of "noinstall" inhibits adding to target.
+
+            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
+            Path may be to a local file or an http or ftp specification.
+                <software>
+                    <source>
+                        <publisher>
+                            <origin
+                                name=
+        "http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
+                        </publisher>
+                    </source>
+                    <software_data type="P5I"/>
+                </software>
+
+            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
+            to the directory containing the packages.  The 
+            software/software_data/name refers tp the package's top level
+            directory or the package's datastream file.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/package_dir"/>
+                        </publisher>
+                    </source>
+                    <software_data type="SVR4">
+                        <name>my_disk_driver.d</name>
+                    </software_data>
+                </software>
+
+            DU: An ITU (Install Time Update) or Driver Update image.
+            The source/publisher/origin refers to the path just above the 
+            image's DU directory (if expanded) or the name of the .iso image.  
+            All packages in the image will be added.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/duimages/mydriver.iso"/>
+                        </publisher>
+                    </source>
+                    <software_data type="DU"/>
+                </software>     
+      -->
+      <search_all/>
+    </add_drivers>
+  </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/manifest/default.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
-
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-<auto_install>
-  <ai_instance name="default">
-    <target>
-      <logical>
-        <zpool name="rpool" is_root="true">
-          <filesystem name="export" mountpoint="/export"/>
-          <filesystem name="export/home"/>
-          <be name="solaris"/>
-        </zpool>
-      </logical>
-    </target>
-    <software type="IPS">
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-        </publisher>
-      </source>
-      <!--
-        By default the latest build available, in the specified IPS
-        repository, is installed.  If another build is required, the
-        build number has to be appended to the 'entire' package in the
-        following form:
-
-        <name>pkg:/[email protected]#</name>
-      -->
-      <software_data action="install">
-        <name>pkg:/entire</name>
-        <name>pkg:/group/system/solaris-large-server</name>
-      </software_data>
-    </software>
-  </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/manifest/default.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+ Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+  <ai_instance name="default">
+    <target>
+      <logical>
+        <zpool name="rpool" is_root="true">
+          <filesystem name="export" mountpoint="/export"/>
+          <filesystem name="export/home"/>
+          <be name="solaris"/>
+        </zpool>
+      </logical>
+    </target>
+    <software type="IPS">
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the specified IPS
+        repository, is installed.  If another build is required, the
+        build number has to be appended to the 'entire' package in the
+        following form:
+
+        <name>pkg:/[email protected]#</name>
+      -->
+      <software_data action="install">
+        <name>pkg:/entire</name>
+        <name>pkg:/group/system/solaris-large-server</name>
+      </software_data>
+    </software>
+  </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/manifest/zone_default.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-
-<auto_install>
-    <ai_instance name="zone_default">
-        <target>
-            <logical>
-                <zpool name="rpool">
-                    <filesystem name="export" mountpoint="/export"/>
-                    <filesystem name="export/home"/>
-                    <be name="solaris">
-                        <options>
-                            <option name="compression" value="on"/>
-                        </options>
-                    </be>
-                </zpool>
-            </logical>
-        </target>
-
-        <software type="IPS">
-            <destination>
-                <image>
-                    <property val="true">flush-content-cache-on-success</property>
-                </image>
-            </destination>
-            <software_data action="install">
-                <name>pkg:/group/system/solaris-small-server</name>
-            </software_data>
-        </software>
-    </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/manifest/zone_default.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+ Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+
+<auto_install>
+    <ai_instance name="zone_default">
+        <target>
+            <logical>
+                <zpool name="rpool">
+                    <filesystem name="export" mountpoint="/export"/>
+                    <filesystem name="export/home"/>
+                    <be name="solaris">
+                        <options>
+                            <option name="compression" value="on"/>
+                        </options>
+                    </be>
+                </zpool>
+            </logical>
+        </target>
+
+        <software type="IPS">
+            <destination>
+                <image>
+                    <property val="true">flush-content-cache-on-success</property>
+                </image>
+            </destination>
+            <software_data action="install">
+                <name>pkg:/group/system/solaris-small-server</name>
+            </software_data>
+        </software>
+    </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/svc/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/auto-install/svc/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -26,7 +26,9 @@
 
 APPMANIFESTSRC= auto-installer.xml manifest-locator.xml
 
-SVCMETHODSRC= auto-installer manifest-locator
+GENSVCMETHODS = auto-installer
+
+SVCMETHODSRC= $(GENSVCMETHODS) manifest-locator
 
 include $(SRC)/cmd/Makefile.cmd
 
@@ -37,12 +39,18 @@
 SVCMETHODS= $(SVCMETHODSRC:%=$(ROOTLIBSVCMETHOD)/%)
 $(SVCMETHODS) :=	FILEMODE= 0555
 
-all:
+CLOBBERFILES = $(GENSVCMETHODS)
+CLEANFILES = $(CLOBBERFILES)
+
+all: $(SVCMETHODSRC)
 
 install: all $(ROOTMANAPP) $(ROOTLIBSVCMETHOD) $(APPMANIFESTS) $(SVCMETHODS)
 
 install_h:
 
+$(GENSVCMETHODS):
+
 clobber clean:
+	$(RM) -f $(GENSVCMETHODS)
 
 include $(SRC)/cmd/Makefile.targ
--- a/usr/src/cmd/auto-install/svc/auto-installer	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-#!/sbin/sh
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-#
-# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-# Use tee(1) when posting messages to both console and log file
-TEE_LOGTOCONSOLE="/usr/bin/tee /dev/msglog"
-# Auto installer
-AI_ENGINE=/usr/bin/auto-install
-# AI Engine exit codes
-# failure
-AI_ENGINE_EXIT_FAILURE=1
-# invalid or incompatible manifest specified
-AI_ENGINE_EXIT_FAILURE_INVALID_MANIFEST=2
-# success - do not reboot
-AI_ENGINE_EXIT_SUCCESS=0
-# success - auto reboot
-AI_ENGINE_EXIT_REBOOT=64
-
-# Auto install manifest
-AI_MANIFEST=/system/volatile/ai.xml
-
-# Profile directory
-PROFILE_DIR=/system/volatile/profile
-
-# Profile used to enable SCI tool
-ENABLE_SCI_PROFILE=/usr/share/auto_install/sc_profiles/enable_sci.xml
-
-# Installation service list file
-AI_SERVICE_LIST=/var/run/service_list
-
-ISA_INFO=`/usr/bin/uname -p`
-PRTCONF=/usr/sbin/prtconf
-SVCPROP=/usr/bin/svcprop
-SED=/usr/bin/sed
-NAWK=/usr/bin/nawk
-BEADM=/usr/sbin/beadm
-REBOOT=/usr/sbin/reboot
-CP=/usr/bin/cp
-MKDIR=/usr/bin/mkdir
-
-. /lib/svc/share/smf_include.sh
-
-#
-# Exit with SMF_EXIT_ERR_CONFIG if not invoked from Automated Installer
-# environment
-#
-if [ ! -f /.autoinstall ] ; then
-	echo "Not running in Automated Installer environment. The service can" \
-	    "only be enabled in the Automated Installer environment" |
-	    $TEE_LOGTOCONSOLE
-
-	exit $SMF_EXIT_ERR_CONFIG
-fi
-
-#
-# Call AI engine to carry out real installation and inform the user
-# that installation was kicked off
-#
-
-if [ ! -x  $AI_ENGINE ] ; then
-	echo "Could not find Auto Installer engine" | $TEE_LOGTOCONSOLE
-	exit $SMF_EXIT_ERR_FATAL
-fi
-
-#
-# Set the auto shutdown upon a successful install flag
-# if specified on the grub line
-#
-if [ "$ISA_INFO" = "i386" ]; then
-	AI_AUTO_SHUTDOWN=`$PRTCONF -v | /usr/bin/sed -n \
-	    '/auto-shutdown/{;n;p;}'| cut -f 2 -d\'`
-	if [ "$AI_AUTO_SHUTDOWN" = "enable" ]; then
-		echo "Shutdown requested. The system will be shutdown" \
-		    "after install"
-	fi
-fi
-
-#
-# Make sure the required manifest is in place, exit with failure otherwise.
-#
-if [ ! -f $AI_MANIFEST ]; then
-	echo "" | $TEE_LOGTOCONSOLE
-	echo "Could not find manifest file at <$AI_MANIFEST>" |
-	    $TEE_LOGTOCONSOLE
-	exit $SMF_EXIT_ERR_FATAL
-fi
-
-#
-# Copy files required by XML validator to the same directory where AI manifest
-# is stored. This is just temporary solution, better approach should be to
-# point XML validator to where these file are.
-#
-for dtd_file in "ai.dtd" "configuration.dtd" "software.dtd" "target.dtd" ; do
-	if [ ! -f "/usr/share/install/$dtd_file" ] ; then
-		echo "Could not find /usr/share/install/$dtd_file"
-		exit $SMF_EXIT_ERR_FATAL
-	fi
-	$CP "/usr/share/install/$dtd_file" /system/volatile/
-done
-
-echo "" | $TEE_LOGTOCONSOLE
-echo "Automated Installation started" | $TEE_LOGTOCONSOLE
-echo "The progress of the Automated Installation will be output to the console" |
-    $TEE_LOGTOCONSOLE
-echo "Detailed logging is in the logfile at /system/volatile/install_log" | $TEE_LOGTOCONSOLE
-echo "Press RETURN to get a login prompt at any time." | $TEE_LOGTOCONSOLE
-echo "" | $TEE_LOGTOCONSOLE
-
-# If PROFILE_DIR does not exist, or does not contain any profiles,
-# copy into it the profile which will enable SCI tool.
-if [ ! -d $PROFILE_DIR ] ; then
-	$MKDIR $PROFILE_DIR
-	$CP $ENABLE_SCI_PROFILE $PROFILE_DIR
-elif [ -z "$(ls -A $PROFILE_DIR)" ] ; then
-	$CP $ENABLE_SCI_PROFILE $PROFILE_DIR
-fi
-
-OPTS=
-#
-# Enable the installer to be run in debug mode if requested.
-#
-AI_DEBUG_MODE=`$SVCPROP -c -p general/install_debug $SMF_FMRI 2>/dev/null`
-if [ $? -eq 0 -a "$AI_DEBUG_MODE" = "enable" ] ; then
-	echo "Installer will be run in debug mode" | $TEE_LOGTOCONSOLE
-
-	# set verbose mode for invoked beadm(1M) commands
-	export BE_PRINT_ERR=true
-fi
-
-#
-# Pass in installation service list if one exists.
-#
-if [ -f $AI_SERVICE_LIST ] ; then
-	OPTS="$OPTS -r $AI_SERVICE_LIST"
-fi
-
-$AI_ENGINE $OPTS -m $AI_MANIFEST -c $PROFILE_DIR	
-ret=$?
-
-# Process exit code returned from AI engine
-
-case $ret in
-	#
-	# Automated Installer finished successfully. Pass the control
-	# to the user
-	#
-	$AI_ENGINE_EXIT_SUCCESS)
-		echo "Automated Installation finished successfully" |
-		    $TEE_LOGTOCONSOLE
-		echo "The system can be rebooted now" | $TEE_LOGTOCONSOLE
-		echo "Please refer to the /system/volatile/install_log file" \
-		    "for details" | $TEE_LOGTOCONSOLE
-
-		echo "After reboot it will be located at" \
-		    "/var/sadm/system/logs/install_log" | $TEE_LOGTOCONSOLE
-
-		if [ "$AI_AUTO_SHUTDOWN" = "enable" ]; then
-		    echo "Shutdown requested. Shutting down the system" | \
-		        $TEE_LOGTOCONSOLE
-		    /usr/sbin/shutdown -y -g 1 -i 5 &
-		fi
-   
-		exit $SMF_EXIT_OK
-		;;
-
-	#
-	# Automated Installer finished successfully.
-	# Automated reboot was enabled in AI manifest, reboot now.
-	#
-	$AI_ENGINE_EXIT_REBOOT)
-		echo "Automated Installation finished successfully" |
-		    $TEE_LOGTOCONSOLE
-		echo "Auto reboot enabled. The system will be" \
-		    "rebooted now" | $TEE_LOGTOCONSOLE
-		echo "Log files will be available in /var/sadm/system/logs/" \
-		    "after reboot" | $TEE_LOGTOCONSOLE
-
-		# Obtain dataset from beadm: active BE on reboot has a R in
-		# the third column of 'beadm list' output, its dataset is
-		# column two.
-	        dset=`$BEADM list -Hd|$NAWK -F ';' '$3 ~ /R/ {print $2}'`
-
-		# SPARC requires -Z flag on boot command
-		if [ "$ISA_INFO" = "sparc" ]; then
-			dset="-Z $dset"
-		fi
-
-	        # Try a fast reboot
-		$REBOOT -f -- $dset
-
-		exit $SMF_EXIT_OK
-		;;
-
-	#
-	# Invalid or incompatible AI configuration manifest specified
-	#
-	$AI_ENGINE_EXIT_FAILURE_INVALID_MANIFEST)
-		echo "Invalid or incompatible manifest provided" |
-		    $TEE_LOGTOCONSOLE
-		echo "Please refer to the" \
-		    "/var/svc/log/application-auto-installer:default.log "\
-		    "file for details" | $TEE_LOGTOCONSOLE
-
-		exit $SMF_EXIT_ERR_FATAL
-		;;
-
-	#
-	# Automated installation failed.
-	#
-	$AI_ENGINE_EXIT_FAILURE)
-		echo "Automated Installation failed" | $TEE_LOGTOCONSOLE
-		echo "Please refer to the /system/volatile/install_log file for" \
-		    "details" | $TEE_LOGTOCONSOLE
-
-		exit $SMF_EXIT_ERR_FATAL
-		;;
-
-	#
-	# Automated installation failed with unknown exit code
-	#
-	*)
-		echo "Automated Installation failed" | $TEE_LOGTOCONSOLE
-		echo "Unknown exit code $ret returned" | $TEE_LOGTOCONSOLE
-
-		exit $SMF_EXIT_ERR_FATAL
-		;;
-esac
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/svc/auto-installer.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,251 @@
+#!/sbin/sh
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+# Use tee(1) when posting messages to both console and log file
+TEE_LOGTOCONSOLE="/usr/bin/tee /dev/msglog"
+# Auto installer
+AI_ENGINE=/usr/bin/auto-install
+# AI Engine exit codes
+# failure
+AI_ENGINE_EXIT_FAILURE=1
+# invalid or incompatible manifest specified
+AI_ENGINE_EXIT_FAILURE_INVALID_MANIFEST=2
+# success - do not reboot
+AI_ENGINE_EXIT_SUCCESS=0
+# success - auto reboot
+AI_ENGINE_EXIT_REBOOT=64
+
+# Auto install manifest
+AI_MANIFEST=/system/volatile/ai.xml
+
+# Profile directory
+PROFILE_DIR=/system/volatile/profile
+
+# Profile used to enable SCI tool
+ENABLE_SCI_PROFILE=/usr/share/auto_install/sc_profiles/enable_sci.xml
+
+# Installation service list file
+AI_SERVICE_LIST=/var/run/service_list
+
+ISA_INFO=`/usr/bin/uname -p`
+PRTCONF=/usr/sbin/prtconf
+SVCPROP=/usr/bin/svcprop
+SED=/usr/bin/sed
+NAWK=/usr/bin/nawk
+BEADM=/usr/sbin/beadm
+REBOOT=/usr/sbin/reboot
+CP=/usr/bin/cp
+MKDIR=/usr/bin/mkdir
+
+. /lib/svc/share/smf_include.sh
+
+#
+# Exit with SMF_EXIT_ERR_CONFIG if not invoked from Automated Installer
+# environment
+#
+if [ ! -f /.autoinstall ] ; then
+	echo "Not running in Automated Installer environment. The service can" \
+	    "only be enabled in the Automated Installer environment" |
+	    $TEE_LOGTOCONSOLE
+
+	exit $SMF_EXIT_ERR_CONFIG
+fi
+
+#
+# Call AI engine to carry out real installation and inform the user
+# that installation was kicked off
+#
+
+if [ ! -x  $AI_ENGINE ] ; then
+	echo "Could not find Auto Installer engine" | $TEE_LOGTOCONSOLE
+	exit $SMF_EXIT_ERR_FATAL
+fi
+
+#
+# Set the auto shutdown upon a successful install flag
+# if specified on the grub line
+#
+if [ "$ISA_INFO" = "i386" ]; then
+	AI_AUTO_SHUTDOWN=`$PRTCONF -v | /usr/bin/sed -n \
+	    '/auto-shutdown/{;n;p;}'| cut -f 2 -d\'`
+	if [ "$AI_AUTO_SHUTDOWN" = "enable" ]; then
+		echo "Shutdown requested. The system will be shutdown" \
+		    "after install"
+	fi
+fi
+
+#
+# Make sure the required manifest is in place, exit with failure otherwise.
+#
+if [ ! -f $AI_MANIFEST ]; then
+	echo "" | $TEE_LOGTOCONSOLE
+	echo "Could not find manifest file at <$AI_MANIFEST>" |
+	    $TEE_LOGTOCONSOLE
+	exit $SMF_EXIT_ERR_FATAL
+fi
+
+#
+# Copy files required by XML validator to the same directory where AI manifest
+# is stored. This is just temporary solution, better approach should be to
+# point XML validator to where these file are.
+#
+for dtd_file in "ai.dtd.@DTD_VERSION_AI@" \
+                "configuration.dtd.@DTD_VERSION_CONFIGURATION@" \
+                "software.dtd.@DTD_VERSION_SOFTWARE@" \
+                "target.dtd.@DTD_VERSION_TARGET@" ; do
+	if [ ! -f "/usr/share/install/$dtd_file" ] ; then
+		echo "Could not find /usr/share/install/$dtd_file"
+		exit $SMF_EXIT_ERR_FATAL
+	fi
+	$CP "/usr/share/install/$dtd_file" /system/volatile/
+done
+
+echo "" | $TEE_LOGTOCONSOLE
+echo "Automated Installation started" | $TEE_LOGTOCONSOLE
+echo "The progress of the Automated Installation will be output to the console" |
+    $TEE_LOGTOCONSOLE
+echo "Detailed logging is in the logfile at /system/volatile/install_log" | $TEE_LOGTOCONSOLE
+echo "Press RETURN to get a login prompt at any time." | $TEE_LOGTOCONSOLE
+echo "" | $TEE_LOGTOCONSOLE
+
+# If PROFILE_DIR does not exist, or does not contain any profiles,
+# copy into it the profile which will enable SCI tool.
+if [ ! -d $PROFILE_DIR ] ; then
+	$MKDIR $PROFILE_DIR
+	$CP $ENABLE_SCI_PROFILE $PROFILE_DIR
+elif [ -z "$(ls -A $PROFILE_DIR)" ] ; then
+	$CP $ENABLE_SCI_PROFILE $PROFILE_DIR
+fi
+
+OPTS=
+#
+# Enable the installer to be run in debug mode if requested.
+#
+AI_DEBUG_MODE=`$SVCPROP -c -p general/install_debug $SMF_FMRI 2>/dev/null`
+if [ $? -eq 0 -a "$AI_DEBUG_MODE" = "enable" ] ; then
+	echo "Installer will be run in debug mode" | $TEE_LOGTOCONSOLE
+
+	# set verbose mode for invoked beadm(1M) commands
+	export BE_PRINT_ERR=true
+fi
+
+#
+# Pass in installation service list if one exists.
+#
+if [ -f $AI_SERVICE_LIST ] ; then
+	OPTS="$OPTS -r $AI_SERVICE_LIST"
+fi
+
+$AI_ENGINE $OPTS -m $AI_MANIFEST -c $PROFILE_DIR	
+ret=$?
+
+# Process exit code returned from AI engine
+
+case $ret in
+	#
+	# Automated Installer finished successfully. Pass the control
+	# to the user
+	#
+	$AI_ENGINE_EXIT_SUCCESS)
+		echo "Automated Installation finished successfully" |
+		    $TEE_LOGTOCONSOLE
+		echo "The system can be rebooted now" | $TEE_LOGTOCONSOLE
+		echo "Please refer to the /system/volatile/install_log file" \
+		    "for details" | $TEE_LOGTOCONSOLE
+
+		echo "After reboot it will be located at" \
+		    "/var/sadm/system/logs/install_log" | $TEE_LOGTOCONSOLE
+
+		if [ "$AI_AUTO_SHUTDOWN" = "enable" ]; then
+		    echo "Shutdown requested. Shutting down the system" | \
+		        $TEE_LOGTOCONSOLE
+		    /usr/sbin/shutdown -y -g 1 -i 5 &
+		fi
+   
+		exit $SMF_EXIT_OK
+		;;
+
+	#
+	# Automated Installer finished successfully.
+	# Automated reboot was enabled in AI manifest, reboot now.
+	#
+	$AI_ENGINE_EXIT_REBOOT)
+		echo "Automated Installation finished successfully" |
+		    $TEE_LOGTOCONSOLE
+		echo "Auto reboot enabled. The system will be" \
+		    "rebooted now" | $TEE_LOGTOCONSOLE
+		echo "Log files will be available in /var/sadm/system/logs/" \
+		    "after reboot" | $TEE_LOGTOCONSOLE
+
+		# Obtain dataset from beadm: active BE on reboot has a R in
+		# the third column of 'beadm list' output, its dataset is
+		# column two.
+	        dset=`$BEADM list -Hd|$NAWK -F ';' '$3 ~ /R/ {print $2}'`
+
+		# SPARC requires -Z flag on boot command
+		if [ "$ISA_INFO" = "sparc" ]; then
+			dset="-Z $dset"
+		fi
+
+	        # Try a fast reboot
+		$REBOOT -f -- $dset
+
+		exit $SMF_EXIT_OK
+		;;
+
+	#
+	# Invalid or incompatible AI configuration manifest specified
+	#
+	$AI_ENGINE_EXIT_FAILURE_INVALID_MANIFEST)
+		echo "Invalid or incompatible manifest provided" |
+		    $TEE_LOGTOCONSOLE
+		echo "Please refer to the" \
+		    "/var/svc/log/application-auto-installer:default.log "\
+		    "file for details" | $TEE_LOGTOCONSOLE
+
+		exit $SMF_EXIT_ERR_FATAL
+		;;
+
+	#
+	# Automated installation failed.
+	#
+	$AI_ENGINE_EXIT_FAILURE)
+		echo "Automated Installation failed" | $TEE_LOGTOCONSOLE
+		echo "Please refer to the /system/volatile/install_log file for" \
+		    "details" | $TEE_LOGTOCONSOLE
+
+		exit $SMF_EXIT_ERR_FATAL
+		;;
+
+	#
+	# Automated installation failed with unknown exit code
+	#
+	*)
+		echo "Automated Installation failed" | $TEE_LOGTOCONSOLE
+		echo "Unknown exit code $ret returned" | $TEE_LOGTOCONSOLE
+
+		exit $SMF_EXIT_ERR_FATAL
+		;;
+esac
--- a/usr/src/cmd/auto-install/test/manifest_auto_reboot_false.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-<?xml version="1.0"?>
-<!--
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License (the "License").
-You may not use this file except in compliance with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-
-Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<!--
-===============================================================================
-DTD sample manifest for Automatic Installer input manifest specification.
-===============================================================================
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-<auto_install>
-  <!--
-	"auto_reboot" set to "true" may be an issue for x86 machines.
-	The boot order is not guaranteed and may cause unexpected
-	behavior. If auto_reboot is not desired, set auto_reboot="false".
-
-        The name of the manifest is obtained from (in this order):
-        1) the name from the installadm create-manifest
-           command line "-m" option.
-        2) a name attribute in the manifest, e.g.: 
-           <ai_instance name="my_ai_manifest" auto_reboot="true">
-        3) manifest filename 
-    -->
-  <ai_instance auto_reboot="false" http_proxy="192.168.1.1" name="rebootfalse">
-    <!--
-      =======================================================================
-      <target/target_device> - selections for AI target Device specification
-
-      Disk criteria are divided into three mutually exclusive groups:
-
-      G1 - deterministic disk criteria
-      ................................
-        * target_device/disk/iscsi parameters
-        * target_device/disk/disk_name, with name_type attribute:
-          one of ctd, volid, devpath or devid
-
-      G2 - non-deterministic disk criteria
-      ..........................
-        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
-          dev_size
-
-      G3 - keyword disk criteria
-      ...........................
-        * target_device/disk/disk_keyword: "boot_disk"
-
-      Schema ai.dtd enforces following policy:
-
-      * criteria in group G1 are mutually exclusive - only
-        one can be specified at a time
-
-      * groups G1, G2 and G3 are mutually exclusive - i.e.
-        if criteria from G1 is specified, no criteria
-        from G2 or G3 are allowed and vice versa
-
-      * multiple criteria from G2 can be specified
-      =======================================================================
-    -->
-    <target>
-        <disk>
-          <!-- G1 -->
-          <!--
-            c#t#d# device name like c0t0d0 or 
-            MPXIO name like c0t2002037CD9F72d0
-          -->
-          <disk_name name="c7d0" name_type="ctd"/>
-          <!-- volume name set for instance by means
-            of format(1M) command
-          -->
-          <!--
-          <disk_name name="ai-disk" name_type="volid"/>
-          -->
-          <!-- device id - e.g. can be obtained by means of
-            iostat(1M) -iEn
-          -->
-          <!--
-          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
-          -->
-          <!-- device path under /devices directory, e.g.
-            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-          -->
-          <!--
-          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
-          -->
-          <!--
-            ISCSI target device
-
-            DHCP Rootpath
-          <iscsi source="dhcp"/>
-
-            with static-discovery
-          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
-
-            with sendtargets
-          <iscsi target_lun="0" target_ip="192.168.1.34"/>
-          -->
-          <!-- G2 -->
-          <!--
-          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
-          -->
-          <!-- G3 -->
-          <!--
-          <disk_keyword key="boot_disk"/>
-          -->
-          <!--
-            Uncomment this to force AI to find an existing Solaris
-            partition instead of creating a new one.
-          -->
-          <!--
-          <partition action="use_existing"/>
-          -->
-	  <!--
-          <partition name="1" part_type="191">
-            <size start_sector="200" val="204801000"/>
-          </partition>
-          -->
-        </disk>
-    </target>
-    <software name="ips" type="IPS">
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-        </publisher>
-      </source>
-      <!--
-        By default the latest build available, in the
-        specified IPS repository, is installed.
-        if another build is required, the build nu1000er has
-        to be appended to the 'entire' package in following
-        form:
-      <name="[email protected]#"/>
-      -->
-      <software_data>
-        <name>pkg:/entire</name>
-        <name>pkg:/babel_install</name>
-      </software_data>
-      <!--
-          babel_install and slim_install are group packages used to
-          define the default installation.  They are removed here so
-          that they do not inhibit removal of other packages on the installed
-          system
-      -->
-      <software_data action="uninstall">
-        <name>pkg:/babel_install</name>
-        <name>pkg:/slim_install</name>
-      </software_data>
-    </software>
-    <add_drivers>
-      <!--
-	    Driver Updates: This section is for adding driver packages to the
-            boot environment before the installation takes place.  The
-            installer can then access all devices on the system.  The
-            packages installed in the boot environment will also be installed
-            on the target.
-
-            A <search_all> entry performs a search for devices which are
-            missing their drivers.  A repository publisher and location
-            may be specified, and that repository and its database will
-            be used.  If no publisher and location is specified, the
-            configured repositories will be used.
-            (See pkg publisher command.)  If <addall> is specified as
-            "true", then drivers the database says are third-party drivers
-            will be added like all others; otherwise third-party drivers
-            will not be added.
-
-                <search_all addall="true">
-                    <source>
-                        <publisher name="solaris">
-                            <origin name="http://pkg.oracle.com/solaris/release"/>
-                        </publisher>
-                    </source>
-                </search_all>
-
-            <software> entries are user-provided specifications of packages
-            needed in order to perform the install.  types are P5I, SVR4, DU.
-            A <software_data> action of "noinstall" inhibits adding to target.
-
-            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
-            Path may be to a local file or an http or ftp specification.
-                <software>
-                    <source>
-                        <publisher>
-                            <origin
-				name=
-	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
-                        </publisher>
-                    </source>
-		    <software_data type="P5I"/>
-                </software>
-
-            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
-            to the directory containing the packages.  The 
-	    software/software_data/name refers tp the package's top level
-	    directory or the package's datastream file.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/package_dir"/>
-                        </publisher>
-                    </source>
-                    <software_data type="SVR4">
-                        <name>my_disk_driver.d</name>
-                    </software_data>
-                </software>
-
-            DU: An ITU (Install Time Update) or Driver Update image.
-            The source/publisher/origin refers to the path just above the 
-	    image's DU directory (if expanded) or the name of the .iso image.  
-	    All packages in the image will be added.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/duimages/mydriver.iso"/>
-                        </publisher>
-                    </source>
-                    <software_data type="DU"/>
-                </software>	
-      -->
-      <search_all/>
-    </add_drivers>
-  </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/test/manifest_auto_reboot_false.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,242 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+<!--
+===============================================================================
+DTD sample manifest for Automatic Installer input manifest specification.
+===============================================================================
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+  <!--
+	"auto_reboot" set to "true" may be an issue for x86 machines.
+	The boot order is not guaranteed and may cause unexpected
+	behavior. If auto_reboot is not desired, set auto_reboot="false".
+
+        The name of the manifest is obtained from (in this order):
+        1) the name from the installadm create-manifest
+           command line "-m" option.
+        2) a name attribute in the manifest, e.g.: 
+           <ai_instance name="my_ai_manifest" auto_reboot="true">
+        3) manifest filename 
+    -->
+  <ai_instance auto_reboot="false" http_proxy="192.168.1.1" name="rebootfalse">
+    <!--
+      =======================================================================
+      <target/target_device> - selections for AI target Device specification
+
+      Disk criteria are divided into three mutually exclusive groups:
+
+      G1 - deterministic disk criteria
+      ................................
+        * target_device/disk/iscsi parameters
+        * target_device/disk/disk_name, with name_type attribute:
+          one of ctd, volid, devpath or devid
+
+      G2 - non-deterministic disk criteria
+      ..........................
+        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
+          dev_size
+
+      G3 - keyword disk criteria
+      ...........................
+        * target_device/disk/disk_keyword: "boot_disk"
+
+      Schema ai.dtd enforces following policy:
+
+      * criteria in group G1 are mutually exclusive - only
+        one can be specified at a time
+
+      * groups G1, G2 and G3 are mutually exclusive - i.e.
+        if criteria from G1 is specified, no criteria
+        from G2 or G3 are allowed and vice versa
+
+      * multiple criteria from G2 can be specified
+      =======================================================================
+    -->
+    <target>
+        <disk>
+          <!-- G1 -->
+          <!--
+            c#t#d# device name like c0t0d0 or 
+            MPXIO name like c0t2002037CD9F72d0
+          -->
+          <disk_name name="c7d0" name_type="ctd"/>
+          <!-- volume name set for instance by means
+            of format(1M) command
+          -->
+          <!--
+          <disk_name name="ai-disk" name_type="volid"/>
+          -->
+          <!-- device id - e.g. can be obtained by means of
+            iostat(1M) -iEn
+          -->
+          <!--
+          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
+          -->
+          <!-- device path under /devices directory, e.g.
+            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
+          -->
+          <!--
+          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
+          -->
+          <!--
+            ISCSI target device
+
+            DHCP Rootpath
+          <iscsi source="dhcp"/>
+
+            with static-discovery
+          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
+
+            with sendtargets
+          <iscsi target_lun="0" target_ip="192.168.1.34"/>
+          -->
+          <!-- G2 -->
+          <!--
+          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
+          -->
+          <!-- G3 -->
+          <!--
+          <disk_keyword key="boot_disk"/>
+          -->
+          <!--
+            Uncomment this to force AI to find an existing Solaris
+            partition instead of creating a new one.
+          -->
+          <!--
+          <partition action="use_existing"/>
+          -->
+	  <!--
+          <partition name="1" part_type="191">
+            <size start_sector="200" val="204801000"/>
+          </partition>
+          -->
+        </disk>
+    </target>
+    <software name="ips" type="IPS">
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the
+        specified IPS repository, is installed.
+        if another build is required, the build nu1000er has
+        to be appended to the 'entire' package in following
+        form:
+      <name="[email protected]#"/>
+      -->
+      <software_data>
+        <name>pkg:/entire</name>
+        <name>pkg:/babel_install</name>
+      </software_data>
+      <!--
+          babel_install and slim_install are group packages used to
+          define the default installation.  They are removed here so
+          that they do not inhibit removal of other packages on the installed
+          system
+      -->
+      <software_data action="uninstall">
+        <name>pkg:/babel_install</name>
+        <name>pkg:/slim_install</name>
+      </software_data>
+    </software>
+    <add_drivers>
+      <!--
+	    Driver Updates: This section is for adding driver packages to the
+            boot environment before the installation takes place.  The
+            installer can then access all devices on the system.  The
+            packages installed in the boot environment will also be installed
+            on the target.
+
+            A <search_all> entry performs a search for devices which are
+            missing their drivers.  A repository publisher and location
+            may be specified, and that repository and its database will
+            be used.  If no publisher and location is specified, the
+            configured repositories will be used.
+            (See pkg publisher command.)  If <addall> is specified as
+            "true", then drivers the database says are third-party drivers
+            will be added like all others; otherwise third-party drivers
+            will not be added.
+
+                <search_all addall="true">
+                    <source>
+                        <publisher name="solaris">
+                            <origin name="http://pkg.oracle.com/solaris/release"/>
+                        </publisher>
+                    </source>
+                </search_all>
+
+            <software> entries are user-provided specifications of packages
+            needed in order to perform the install.  types are P5I, SVR4, DU.
+            A <software_data> action of "noinstall" inhibits adding to target.
+
+            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
+            Path may be to a local file or an http or ftp specification.
+                <software>
+                    <source>
+                        <publisher>
+                            <origin
+				name=
+	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
+                        </publisher>
+                    </source>
+		    <software_data type="P5I"/>
+                </software>
+
+            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
+            to the directory containing the packages.  The 
+	    software/software_data/name refers tp the package's top level
+	    directory or the package's datastream file.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/package_dir"/>
+                        </publisher>
+                    </source>
+                    <software_data type="SVR4">
+                        <name>my_disk_driver.d</name>
+                    </software_data>
+                </software>
+
+            DU: An ITU (Install Time Update) or Driver Update image.
+            The source/publisher/origin refers to the path just above the 
+	    image's DU directory (if expanded) or the name of the .iso image.  
+	    All packages in the image will be added.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/duimages/mydriver.iso"/>
+                        </publisher>
+                    </source>
+                    <software_data type="DU"/>
+                </software>	
+      -->
+      <search_all/>
+    </add_drivers>
+  </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/test/manifest_auto_reboot_invalid.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-<?xml version="1.0"?>
-<!--
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License (the "License").
-You may not use this file except in compliance with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-
-Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<!--
-===============================================================================
-DTD sample manifest for Automatic Installer input manifest specification.
-===============================================================================
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-<auto_install>
-  <!--
-	"auto_reboot" set to "true" may be an issue for x86 machines.
-	The boot order is not guaranteed and may cause unexpected
-	behavior. If auto_reboot is not desired, set auto_reboot="false".
-
-        The name of the manifest is obtained from (in this order):
-        1) the name from the installadm create-manifest
-           command line "-m" option.
-        2) a name attribute in the manifest, e.g.: 
-           <ai_instance name="my_ai_manifest" auto_reboot="true">
-        3) manifest filename 
-    -->
-  <ai_instance auto_reboot="invalid" http_proxy="192.168.1.1" name="rebootinvalid">
-    <!--
-      =======================================================================
-      <target/target_device> - selections for AI target Device specification
-
-      Disk criteria are divided into three mutually exclusive groups:
-
-      G1 - deterministic disk criteria
-      ................................
-        * target_device/disk/iscsi parameters
-        * target_device/disk/disk_name, with name_type attribute:
-          one of ctd, volid, devpath or devid
-
-      G2 - non-deterministic disk criteria
-      ..........................
-        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
-          dev_size
-
-      G3 - keyword disk criteria
-      ...........................
-        * target_device/disk/disk_keyword: "boot_disk"
-
-      Schema ai.dtd enforces following policy:
-
-      * criteria in group G1 are mutually exclusive - only
-        one can be specified at a time
-
-      * groups G1, G2 and G3 are mutually exclusive - i.e.
-        if criteria from G1 is specified, no criteria
-        from G2 or G3 are allowed and vice versa
-
-      * multiple criteria from G2 can be specified
-      =======================================================================
-    -->
-    <target>
-        <disk>
-          <!-- G1 -->
-          <!--
-            c#t#d# device name like c0t0d0 or 
-            MPXIO name like c0t2002037CD9F72d0
-          -->
-          <disk_name name="c7d0" name_type="ctd"/>
-          <!-- volume name set for instance by means
-            of format(1M) command
-          -->
-          <!--
-          <disk_name name="ai-disk" name_type="volid"/>
-          -->
-          <!-- device id - e.g. can be obtained by means of
-            iostat(1M) -iEn
-          -->
-          <!--
-          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
-          -->
-          <!-- device path under /devices directory, e.g.
-            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-          -->
-          <!--
-          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
-          -->
-          <!--
-            ISCSI target device
-
-            DHCP Rootpath
-          <iscsi source="dhcp"/>
-
-            with static-discovery
-          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
-
-            with sendtargets
-          <iscsi target_lun="0" target_ip="192.168.1.34"/>
-          -->
-          <!-- G2 -->
-          <!--
-          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
-          -->
-          <!-- G3 -->
-          <!--
-          <disk_keyword key="boot_disk"/>
-          -->
-          <!--
-            Uncomment this to force AI to find an existing Solaris
-            partition instead of creating a new one.
-          -->
-          <!--
-          <partition action="use_existing"/>
-          -->
-	  <!--
-          <partition name="1" part_type="191">
-            <size start_sector="200" val="204801000"/>
-          </partition>
-          -->
-        </disk>
-    </target>
-    <software name="ips" type="IPS">
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-        </publisher>
-      </source>
-      <!--
-        By default the latest build available, in the
-        specified IPS repository, is installed.
-        if another build is required, the build nu1000er has
-        to be appended to the 'entire' package in following
-        form:
-      <name="[email protected]#"/>
-      -->
-      <software_data>
-        <name>pkg:/entire</name>
-        <name>pkg:/babel_install</name>
-      </software_data>
-      <!--
-          babel_install and slim_install are group packages used to
-          define the default installation.  They are removed here so
-          that they do not inhibit removal of other packages on the installed
-          system
-      -->
-      <software_data action="uninstall">
-        <name>pkg:/babel_install</name>
-        <name>pkg:/slim_install</name>
-      </software_data>
-    </software>
-    <add_drivers>
-      <!--
-	    Driver Updates: This section is for adding driver packages to the
-            boot environment before the installation takes place.  The
-            installer can then access all devices on the system.  The
-            packages installed in the boot environment will also be installed
-            on the target.
-
-            A <search_all> entry performs a search for devices which are
-            missing their drivers.  A repository publisher and location
-            may be specified, and that repository and its database will
-            be used.  If no publisher and location is specified, the
-            configured repositories will be used.
-            (See pkg publisher command.)  If <addall> is specified as
-            "true", then drivers the database says are third-party drivers
-            will be added like all others; otherwise third-party drivers
-            will not be added.
-
-                <search_all addall="true">
-                    <source>
-                        <publisher name="solaris">
-                            <origin name="http://pkg.oracle.com/solaris/release"/>
-                        </publisher>
-                    </source>
-                </search_all>
-
-            <software> entries are user-provided specifications of packages
-            needed in order to perform the install.  types are P5I, SVR4, DU.
-            A <software_data> action of "noinstall" inhibits adding to target.
-
-            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
-            Path may be to a local file or an http or ftp specification.
-                <software>
-                    <source>
-                        <publisher>
-                            <origin
-				name=
-	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
-                        </publisher>
-                    </source>
-		    <software_data type="P5I"/>
-                </software>
-
-            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
-            to the directory containing the packages.  The 
-	    software/software_data/name refers tp the package's top level
-	    directory or the package's datastream file.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/package_dir"/>
-                        </publisher>
-                    </source>
-                    <software_data type="SVR4">
-                        <name>my_disk_driver.d</name>
-                    </software_data>
-                </software>
-
-            DU: An ITU (Install Time Update) or Driver Update image.
-            The source/publisher/origin refers to the path just above the 
-	    image's DU directory (if expanded) or the name of the .iso image.  
-	    All packages in the image will be added.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/duimages/mydriver.iso"/>
-                        </publisher>
-                    </source>
-                    <software_data type="DU"/>
-                </software>	
-      -->
-      <search_all/>
-    </add_drivers>
-  </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/test/manifest_auto_reboot_invalid.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,242 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+<!--
+===============================================================================
+DTD sample manifest for Automatic Installer input manifest specification.
+===============================================================================
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+  <!--
+	"auto_reboot" set to "true" may be an issue for x86 machines.
+	The boot order is not guaranteed and may cause unexpected
+	behavior. If auto_reboot is not desired, set auto_reboot="false".
+
+        The name of the manifest is obtained from (in this order):
+        1) the name from the installadm create-manifest
+           command line "-m" option.
+        2) a name attribute in the manifest, e.g.: 
+           <ai_instance name="my_ai_manifest" auto_reboot="true">
+        3) manifest filename 
+    -->
+  <ai_instance auto_reboot="invalid" http_proxy="192.168.1.1" name="rebootinvalid">
+    <!--
+      =======================================================================
+      <target/target_device> - selections for AI target Device specification
+
+      Disk criteria are divided into three mutually exclusive groups:
+
+      G1 - deterministic disk criteria
+      ................................
+        * target_device/disk/iscsi parameters
+        * target_device/disk/disk_name, with name_type attribute:
+          one of ctd, volid, devpath or devid
+
+      G2 - non-deterministic disk criteria
+      ..........................
+        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
+          dev_size
+
+      G3 - keyword disk criteria
+      ...........................
+        * target_device/disk/disk_keyword: "boot_disk"
+
+      Schema ai.dtd enforces following policy:
+
+      * criteria in group G1 are mutually exclusive - only
+        one can be specified at a time
+
+      * groups G1, G2 and G3 are mutually exclusive - i.e.
+        if criteria from G1 is specified, no criteria
+        from G2 or G3 are allowed and vice versa
+
+      * multiple criteria from G2 can be specified
+      =======================================================================
+    -->
+    <target>
+        <disk>
+          <!-- G1 -->
+          <!--
+            c#t#d# device name like c0t0d0 or 
+            MPXIO name like c0t2002037CD9F72d0
+          -->
+          <disk_name name="c7d0" name_type="ctd"/>
+          <!-- volume name set for instance by means
+            of format(1M) command
+          -->
+          <!--
+          <disk_name name="ai-disk" name_type="volid"/>
+          -->
+          <!-- device id - e.g. can be obtained by means of
+            iostat(1M) -iEn
+          -->
+          <!--
+          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
+          -->
+          <!-- device path under /devices directory, e.g.
+            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
+          -->
+          <!--
+          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
+          -->
+          <!--
+            ISCSI target device
+
+            DHCP Rootpath
+          <iscsi source="dhcp"/>
+
+            with static-discovery
+          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
+
+            with sendtargets
+          <iscsi target_lun="0" target_ip="192.168.1.34"/>
+          -->
+          <!-- G2 -->
+          <!--
+          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
+          -->
+          <!-- G3 -->
+          <!--
+          <disk_keyword key="boot_disk"/>
+          -->
+          <!--
+            Uncomment this to force AI to find an existing Solaris
+            partition instead of creating a new one.
+          -->
+          <!--
+          <partition action="use_existing"/>
+          -->
+	  <!--
+          <partition name="1" part_type="191">
+            <size start_sector="200" val="204801000"/>
+          </partition>
+          -->
+        </disk>
+    </target>
+    <software name="ips" type="IPS">
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the
+        specified IPS repository, is installed.
+        if another build is required, the build nu1000er has
+        to be appended to the 'entire' package in following
+        form:
+      <name="[email protected]#"/>
+      -->
+      <software_data>
+        <name>pkg:/entire</name>
+        <name>pkg:/babel_install</name>
+      </software_data>
+      <!--
+          babel_install and slim_install are group packages used to
+          define the default installation.  They are removed here so
+          that they do not inhibit removal of other packages on the installed
+          system
+      -->
+      <software_data action="uninstall">
+        <name>pkg:/babel_install</name>
+        <name>pkg:/slim_install</name>
+      </software_data>
+    </software>
+    <add_drivers>
+      <!--
+	    Driver Updates: This section is for adding driver packages to the
+            boot environment before the installation takes place.  The
+            installer can then access all devices on the system.  The
+            packages installed in the boot environment will also be installed
+            on the target.
+
+            A <search_all> entry performs a search for devices which are
+            missing their drivers.  A repository publisher and location
+            may be specified, and that repository and its database will
+            be used.  If no publisher and location is specified, the
+            configured repositories will be used.
+            (See pkg publisher command.)  If <addall> is specified as
+            "true", then drivers the database says are third-party drivers
+            will be added like all others; otherwise third-party drivers
+            will not be added.
+
+                <search_all addall="true">
+                    <source>
+                        <publisher name="solaris">
+                            <origin name="http://pkg.oracle.com/solaris/release"/>
+                        </publisher>
+                    </source>
+                </search_all>
+
+            <software> entries are user-provided specifications of packages
+            needed in order to perform the install.  types are P5I, SVR4, DU.
+            A <software_data> action of "noinstall" inhibits adding to target.
+
+            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
+            Path may be to a local file or an http or ftp specification.
+                <software>
+                    <source>
+                        <publisher>
+                            <origin
+				name=
+	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
+                        </publisher>
+                    </source>
+		    <software_data type="P5I"/>
+                </software>
+
+            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
+            to the directory containing the packages.  The 
+	    software/software_data/name refers tp the package's top level
+	    directory or the package's datastream file.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/package_dir"/>
+                        </publisher>
+                    </source>
+                    <software_data type="SVR4">
+                        <name>my_disk_driver.d</name>
+                    </software_data>
+                </software>
+
+            DU: An ITU (Install Time Update) or Driver Update image.
+            The source/publisher/origin refers to the path just above the 
+	    image's DU directory (if expanded) or the name of the .iso image.  
+	    All packages in the image will be added.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/duimages/mydriver.iso"/>
+                        </publisher>
+                    </source>
+                    <software_data type="DU"/>
+                </software>	
+      -->
+      <search_all/>
+    </add_drivers>
+  </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/test/manifest_auto_reboot_not_set.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-<?xml version="1.0"?>
-<!--
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License (the "License").
-You may not use this file except in compliance with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-
-Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<!--
-===============================================================================
-DTD sample manifest for Automatic Installer input manifest specification.
-===============================================================================
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-<auto_install>
-  <!--
-	"auto_reboot" set to "true" may be an issue for x86 machines.
-	The boot order is not guaranteed and may cause unexpected
-	behavior. If auto_reboot is not desired, set auto_reboot="false".
-
-        The name of the manifest is obtained from (in this order):
-        1) the name from the installadm create-manifest
-           command line "-m" option.
-        2) a name attribute in the manifest, e.g.: 
-           <ai_instance name="my_ai_manifest" auto_reboot="true">
-        3) manifest filename 
-    -->
-  <ai_instance http_proxy="192.168.1.1" name="rebootnotset">
-    <!--
-      =======================================================================
-      <target/target_device> - selections for AI target Device specification
-
-      Disk criteria are divided into three mutually exclusive groups:
-
-      G1 - deterministic disk criteria
-      ................................
-        * target_device/disk/iscsi parameters
-        * target_device/disk/disk_name, with name_type attribute:
-          one of ctd, volid, devpath or devid
-
-      G2 - non-deterministic disk criteria
-      ..........................
-        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
-          dev_size
-
-      G3 - keyword disk criteria
-      ...........................
-        * target_device/disk/disk_keyword: "boot_disk"
-
-      Schema ai.dtd enforces following policy:
-
-      * criteria in group G1 are mutually exclusive - only
-        one can be specified at a time
-
-      * groups G1, G2 and G3 are mutually exclusive - i.e.
-        if criteria from G1 is specified, no criteria
-        from G2 or G3 are allowed and vice versa
-
-      * multiple criteria from G2 can be specified
-      =======================================================================
-    -->
-    <target>
-        <disk>
-          <!-- G1 -->
-          <!--
-            c#t#d# device name like c0t0d0 or 
-            MPXIO name like c0t2002037CD9F72d0
-          -->
-          <disk_name name="c7d0" name_type="ctd"/>
-          <!-- volume name set for instance by means
-            of format(1M) command
-          -->
-          <!--
-          <disk_name name="ai-disk" name_type="volid"/>
-          -->
-          <!-- device id - e.g. can be obtained by means of
-            iostat(1M) -iEn
-          -->
-          <!--
-          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
-          -->
-          <!-- device path under /devices directory, e.g.
-            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-          -->
-          <!--
-          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
-          -->
-          <!--
-            ISCSI target device
-
-            DHCP Rootpath
-          <iscsi source="dhcp"/>
-
-            with static-discovery
-          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
-
-            with sendtargets
-          <iscsi target_lun="0" target_ip="192.168.1.34"/>
-          -->
-          <!-- G2 -->
-          <!--
-          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
-          -->
-          <!-- G3 -->
-          <!--
-          <disk_keyword key="boot_disk"/>
-          -->
-          <!--
-            Uncomment this to force AI to find an existing Solaris
-            partition instead of creating a new one.
-          -->
-          <!--
-          <partition action="use_existing"/>
-          -->
-	  <!--
-          <partition name="1" part_type="191">
-            <size start_sector="200" val="204801000"/>
-          </partition>
-          -->
-        </disk>
-    </target>
-    <software name="ips" type="IPS">
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-        </publisher>
-      </source>
-      <!--
-        By default the latest build available, in the
-        specified IPS repository, is installed.
-        if another build is required, the build nu1000er has
-        to be appended to the 'entire' package in following
-        form:
-      <name="[email protected]#"/>
-      -->
-      <software_data>
-        <name>pkg:/entire</name>
-        <name>pkg:/babel_install</name>
-      </software_data>
-      <!--
-          babel_install and slim_install are group packages used to
-          define the default installation.  They are removed here so
-          that they do not inhibit removal of other packages on the installed
-          system
-      -->
-      <software_data action="uninstall">
-        <name>pkg:/babel_install</name>
-        <name>pkg:/slim_install</name>
-      </software_data>
-    </software>
-    <add_drivers>
-      <!--
-	    Driver Updates: This section is for adding driver packages to the
-            boot environment before the installation takes place.  The
-            installer can then access all devices on the system.  The
-            packages installed in the boot environment will also be installed
-            on the target.
-
-            A <search_all> entry performs a search for devices which are
-            missing their drivers.  A repository publisher and location
-            may be specified, and that repository and its database will
-            be used.  If no publisher and location is specified, the
-            configured repositories will be used.
-            (See pkg publisher command.)  If <addall> is specified as
-            "true", then drivers the database says are third-party drivers
-            will be added like all others; otherwise third-party drivers
-            will not be added.
-
-                <search_all addall="true">
-                    <source>
-                        <publisher name="solaris">
-                            <origin name="http://pkg.oracle.com/solaris/release"/>
-                        </publisher>
-                    </source>
-                </search_all>
-
-            <software> entries are user-provided specifications of packages
-            needed in order to perform the install.  types are P5I, SVR4, DU.
-            A <software_data> action of "noinstall" inhibits adding to target.
-
-            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
-            Path may be to a local file or an http or ftp specification.
-                <software>
-                    <source>
-                        <publisher>
-                            <origin
-				name=
-	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
-                        </publisher>
-                    </source>
-		    <software_data type="P5I"/>
-                </software>
-
-            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
-            to the directory containing the packages.  The 
-	    software/software_data/name refers tp the package's top level
-	    directory or the package's datastream file.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/package_dir"/>
-                        </publisher>
-                    </source>
-                    <software_data type="SVR4">
-                        <name>my_disk_driver.d</name>
-                    </software_data>
-                </software>
-
-            DU: An ITU (Install Time Update) or Driver Update image.
-            The source/publisher/origin refers to the path just above the 
-	    image's DU directory (if expanded) or the name of the .iso image.  
-	    All packages in the image will be added.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/duimages/mydriver.iso"/>
-                        </publisher>
-                    </source>
-                    <software_data type="DU"/>
-                </software>	
-      -->
-      <search_all/>
-    </add_drivers>
-  </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/test/manifest_auto_reboot_not_set.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,242 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+<!--
+===============================================================================
+DTD sample manifest for Automatic Installer input manifest specification.
+===============================================================================
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+  <!--
+	"auto_reboot" set to "true" may be an issue for x86 machines.
+	The boot order is not guaranteed and may cause unexpected
+	behavior. If auto_reboot is not desired, set auto_reboot="false".
+
+        The name of the manifest is obtained from (in this order):
+        1) the name from the installadm create-manifest
+           command line "-m" option.
+        2) a name attribute in the manifest, e.g.: 
+           <ai_instance name="my_ai_manifest" auto_reboot="true">
+        3) manifest filename 
+    -->
+  <ai_instance http_proxy="192.168.1.1" name="rebootnotset">
+    <!--
+      =======================================================================
+      <target/target_device> - selections for AI target Device specification
+
+      Disk criteria are divided into three mutually exclusive groups:
+
+      G1 - deterministic disk criteria
+      ................................
+        * target_device/disk/iscsi parameters
+        * target_device/disk/disk_name, with name_type attribute:
+          one of ctd, volid, devpath or devid
+
+      G2 - non-deterministic disk criteria
+      ..........................
+        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
+          dev_size
+
+      G3 - keyword disk criteria
+      ...........................
+        * target_device/disk/disk_keyword: "boot_disk"
+
+      Schema ai.dtd enforces following policy:
+
+      * criteria in group G1 are mutually exclusive - only
+        one can be specified at a time
+
+      * groups G1, G2 and G3 are mutually exclusive - i.e.
+        if criteria from G1 is specified, no criteria
+        from G2 or G3 are allowed and vice versa
+
+      * multiple criteria from G2 can be specified
+      =======================================================================
+    -->
+    <target>
+        <disk>
+          <!-- G1 -->
+          <!--
+            c#t#d# device name like c0t0d0 or 
+            MPXIO name like c0t2002037CD9F72d0
+          -->
+          <disk_name name="c7d0" name_type="ctd"/>
+          <!-- volume name set for instance by means
+            of format(1M) command
+          -->
+          <!--
+          <disk_name name="ai-disk" name_type="volid"/>
+          -->
+          <!-- device id - e.g. can be obtained by means of
+            iostat(1M) -iEn
+          -->
+          <!--
+          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
+          -->
+          <!-- device path under /devices directory, e.g.
+            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
+          -->
+          <!--
+          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
+          -->
+          <!--
+            ISCSI target device
+
+            DHCP Rootpath
+          <iscsi source="dhcp"/>
+
+            with static-discovery
+          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
+
+            with sendtargets
+          <iscsi target_lun="0" target_ip="192.168.1.34"/>
+          -->
+          <!-- G2 -->
+          <!--
+          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
+          -->
+          <!-- G3 -->
+          <!--
+          <disk_keyword key="boot_disk"/>
+          -->
+          <!--
+            Uncomment this to force AI to find an existing Solaris
+            partition instead of creating a new one.
+          -->
+          <!--
+          <partition action="use_existing"/>
+          -->
+	  <!--
+          <partition name="1" part_type="191">
+            <size start_sector="200" val="204801000"/>
+          </partition>
+          -->
+        </disk>
+    </target>
+    <software name="ips" type="IPS">
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the
+        specified IPS repository, is installed.
+        if another build is required, the build nu1000er has
+        to be appended to the 'entire' package in following
+        form:
+      <name="[email protected]#"/>
+      -->
+      <software_data>
+        <name>pkg:/entire</name>
+        <name>pkg:/babel_install</name>
+      </software_data>
+      <!--
+          babel_install and slim_install are group packages used to
+          define the default installation.  They are removed here so
+          that they do not inhibit removal of other packages on the installed
+          system
+      -->
+      <software_data action="uninstall">
+        <name>pkg:/babel_install</name>
+        <name>pkg:/slim_install</name>
+      </software_data>
+    </software>
+    <add_drivers>
+      <!--
+	    Driver Updates: This section is for adding driver packages to the
+            boot environment before the installation takes place.  The
+            installer can then access all devices on the system.  The
+            packages installed in the boot environment will also be installed
+            on the target.
+
+            A <search_all> entry performs a search for devices which are
+            missing their drivers.  A repository publisher and location
+            may be specified, and that repository and its database will
+            be used.  If no publisher and location is specified, the
+            configured repositories will be used.
+            (See pkg publisher command.)  If <addall> is specified as
+            "true", then drivers the database says are third-party drivers
+            will be added like all others; otherwise third-party drivers
+            will not be added.
+
+                <search_all addall="true">
+                    <source>
+                        <publisher name="solaris">
+                            <origin name="http://pkg.oracle.com/solaris/release"/>
+                        </publisher>
+                    </source>
+                </search_all>
+
+            <software> entries are user-provided specifications of packages
+            needed in order to perform the install.  types are P5I, SVR4, DU.
+            A <software_data> action of "noinstall" inhibits adding to target.
+
+            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
+            Path may be to a local file or an http or ftp specification.
+                <software>
+                    <source>
+                        <publisher>
+                            <origin
+				name=
+	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
+                        </publisher>
+                    </source>
+		    <software_data type="P5I"/>
+                </software>
+
+            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
+            to the directory containing the packages.  The 
+	    software/software_data/name refers tp the package's top level
+	    directory or the package's datastream file.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/package_dir"/>
+                        </publisher>
+                    </source>
+                    <software_data type="SVR4">
+                        <name>my_disk_driver.d</name>
+                    </software_data>
+                </software>
+
+            DU: An ITU (Install Time Update) or Driver Update image.
+            The source/publisher/origin refers to the path just above the 
+	    image's DU directory (if expanded) or the name of the .iso image.  
+	    All packages in the image will be added.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/duimages/mydriver.iso"/>
+                        </publisher>
+                    </source>
+                    <software_data type="DU"/>
+                </software>	
+      -->
+      <search_all/>
+    </add_drivers>
+  </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/test/manifest_auto_reboot_true.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-<?xml version="1.0"?>
-<!--
-CDDL HEADER START
-
-The contents of this file are subject to the terms of the
-Common Development and Distribution License (the "License").
-You may not use this file except in compliance with the License.
-
-You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-or http://www.opensolaris.org/os/licensing.
-See the License for the specific language governing permissions
-and limitations under the License.
-
-When distributing Covered Code, include this CDDL HEADER in each
-file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-If applicable, add the following below this CDDL HEADER, with the
-fields enclosed by brackets "[]" replaced with your own identifying
-information: Portions Copyright [yyyy] [name of copyright owner]
-
-CDDL HEADER END
-
-Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
--->
-<!--
-===============================================================================
-DTD sample manifest for Automatic Installer input manifest specification.
-===============================================================================
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd">
-<auto_install>
-  <!--
-	"auto_reboot" set to "true" may be an issue for x86 machines.
-	The boot order is not guaranteed and may cause unexpected
-	behavior. If auto_reboot is not desired, set auto_reboot="false".
-
-        The name of the manifest is obtained from (in this order):
-        1) the name from the installadm create-manifest
-           command line "-m" option.
-        2) a name attribute in the manifest, e.g.: 
-           <ai_instance name="my_ai_manifest" auto_reboot="true">
-        3) manifest filename 
-    -->
-  <ai_instance auto_reboot="true" http_proxy="192.168.1.1" name="reboottrue">
-    <!--
-      =======================================================================
-      <target/target_device> - selections for AI target Device specification
-
-      Disk criteria are divided into three mutually exclusive groups:
-
-      G1 - deterministic disk criteria
-      ................................
-        * target_device/disk/iscsi parameters
-        * target_device/disk/disk_name, with name_type attribute:
-          one of ctd, volid, devpath or devid
-
-      G2 - non-deterministic disk criteria
-      ..........................
-        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
-          dev_size
-
-      G3 - keyword disk criteria
-      ...........................
-        * target_device/disk/disk_keyword: "boot_disk"
-
-      Schema ai.dtd enforces following policy:
-
-      * criteria in group G1 are mutually exclusive - only
-        one can be specified at a time
-
-      * groups G1, G2 and G3 are mutually exclusive - i.e.
-        if criteria from G1 is specified, no criteria
-        from G2 or G3 are allowed and vice versa
-
-      * multiple criteria from G2 can be specified
-      =======================================================================
-    -->
-    <target>
-        <disk>
-          <!-- G1 -->
-          <!--
-            c#t#d# device name like c0t0d0 or 
-            MPXIO name like c0t2002037CD9F72d0
-          -->
-          <disk_name name="c7d0" name_type="ctd"/>
-          <!-- volume name set for instance by means
-            of format(1M) command
-          -->
-          <!--
-          <disk_name name="ai-disk" name_type="volid"/>
-          -->
-          <!-- device id - e.g. can be obtained by means of
-            iostat(1M) -iEn
-          -->
-          <!--
-          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
-          -->
-          <!-- device path under /devices directory, e.g.
-            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
-          -->
-          <!--
-          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
-          -->
-          <!--
-            ISCSI target device
-
-            DHCP Rootpath
-          <iscsi source="dhcp"/>
-
-            with static-discovery
-          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
-
-            with sendtargets
-          <iscsi target_lun="0" target_ip="192.168.1.34"/>
-          -->
-          <!-- G2 -->
-          <!--
-          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
-          -->
-          <!-- G3 -->
-          <!--
-          <disk_keyword key="boot_disk"/>
-          -->
-          <!--
-            Uncomment this to force AI to find an existing Solaris
-            partition instead of creating a new one.
-          -->
-          <!--
-          <partition action="use_existing"/>
-          -->
-	  <!--
-          <partition name="1" part_type="191">
-            <size start_sector="200" val="204801000"/>
-          </partition>
-          -->
-        </disk>
-    </target>
-    <software name="ips" type="IPS">
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-        </publisher>
-      </source>
-      <!--
-        By default the latest build available, in the
-        specified IPS repository, is installed.
-        if another build is required, the build nu1000er has
-        to be appended to the 'entire' package in following
-        form:
-      <name="[email protected]#"/>
-      -->
-      <software_data>
-        <name>pkg:/entire</name>
-        <name>pkg:/babel_install</name>
-      </software_data>
-      <!--
-          babel_install and slim_install are group packages used to
-          define the default installation.  They are removed here so
-          that they do not inhibit removal of other packages on the installed
-          system
-      -->
-      <software_data action="uninstall">
-        <name>pkg:/babel_install</name>
-        <name>pkg:/slim_install</name>
-      </software_data>
-    </software>
-    <add_drivers>
-      <!--
-	    Driver Updates: This section is for adding driver packages to the
-            boot environment before the installation takes place.  The
-            installer can then access all devices on the system.  The
-            packages installed in the boot environment will also be installed
-            on the target.
-
-            A <search_all> entry performs a search for devices which are
-            missing their drivers.  A repository publisher and location
-            may be specified, and that repository and its database will
-            be used.  If no publisher and location is specified, the
-            configured repositories will be used.
-            (See pkg publisher command.)  If <addall> is specified as
-            "true", then drivers the database says are third-party drivers
-            will be added like all others; otherwise third-party drivers
-            will not be added.
-
-                <search_all addall="true">
-                    <source>
-                        <publisher name="solaris">
-                            <origin name="http://pkg.oracle.com/solaris/release"/>
-                        </publisher>
-                    </source>
-                </search_all>
-
-            <software> entries are user-provided specifications of packages
-            needed in order to perform the install.  types are P5I, SVR4, DU.
-            A <software_data> action of "noinstall" inhibits adding to target.
-
-            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
-            Path may be to a local file or an http or ftp specification.
-                <software>
-                    <source>
-                        <publisher>
-                            <origin
-				name=
-	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
-                        </publisher>
-                    </source>
-		    <software_data type="P5I"/>
-                </software>
-
-            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
-            to the directory containing the packages.  The 
-	    software/software_data/name refers tp the package's top level
-	    directory or the package's datastream file.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/package_dir"/>
-                        </publisher>
-                    </source>
-                    <software_data type="SVR4">
-                        <name>my_disk_driver.d</name>
-                    </software_data>
-                </software>
-
-            DU: An ITU (Install Time Update) or Driver Update image.
-            The source/publisher/origin refers to the path just above the 
-	    image's DU directory (if expanded) or the name of the .iso image.  
-	    All packages in the image will be added.
-
-                <software>
-                    <source>
-                        <publisher>
-                            <origin name="/export/duimages/mydriver.iso"/>
-                        </publisher>
-                    </source>
-                    <software_data type="DU"/>
-                </software>	
-      -->
-      <search_all/>
-    </add_drivers>
-  </ai_instance>
-</auto_install>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/auto-install/test/manifest_auto_reboot_true.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,242 @@
+<?xml version="1.0"?>
+<!--
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License (the "License").
+You may not use this file except in compliance with the License.
+
+You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+When distributing Covered Code, include this CDDL HEADER in each
+file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+If applicable, add the following below this CDDL HEADER, with the
+fields enclosed by brackets "[]" replaced with your own identifying
+information: Portions Copyright [yyyy] [name of copyright owner]
+
+CDDL HEADER END
+
+Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+<!--
+===============================================================================
+DTD sample manifest for Automatic Installer input manifest specification.
+===============================================================================
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+  <!--
+	"auto_reboot" set to "true" may be an issue for x86 machines.
+	The boot order is not guaranteed and may cause unexpected
+	behavior. If auto_reboot is not desired, set auto_reboot="false".
+
+        The name of the manifest is obtained from (in this order):
+        1) the name from the installadm create-manifest
+           command line "-m" option.
+        2) a name attribute in the manifest, e.g.: 
+           <ai_instance name="my_ai_manifest" auto_reboot="true">
+        3) manifest filename 
+    -->
+  <ai_instance auto_reboot="true" http_proxy="192.168.1.1" name="reboottrue">
+    <!--
+      =======================================================================
+      <target/target_device> - selections for AI target Device specification
+
+      Disk criteria are divided into three mutually exclusive groups:
+
+      G1 - deterministic disk criteria
+      ................................
+        * target_device/disk/iscsi parameters
+        * target_device/disk/disk_name, with name_type attribute:
+          one of ctd, volid, devpath or devid
+
+      G2 - non-deterministic disk criteria
+      ..........................
+        * target_device/disk/disk_prop: Any of dev_type, dev_vendor or
+          dev_size
+
+      G3 - keyword disk criteria
+      ...........................
+        * target_device/disk/disk_keyword: "boot_disk"
+
+      Schema ai.dtd enforces following policy:
+
+      * criteria in group G1 are mutually exclusive - only
+        one can be specified at a time
+
+      * groups G1, G2 and G3 are mutually exclusive - i.e.
+        if criteria from G1 is specified, no criteria
+        from G2 or G3 are allowed and vice versa
+
+      * multiple criteria from G2 can be specified
+      =======================================================================
+    -->
+    <target>
+        <disk>
+          <!-- G1 -->
+          <!--
+            c#t#d# device name like c0t0d0 or 
+            MPXIO name like c0t2002037CD9F72d0
+          -->
+          <disk_name name="c7d0" name_type="ctd"/>
+          <!-- volume name set for instance by means
+            of format(1M) command
+          -->
+          <!--
+          <disk_name name="ai-disk" name_type="volid"/>
+          -->
+          <!-- device id - e.g. can be obtained by means of
+            iostat(1M) -iEn
+          -->
+          <!--
+          <disk_name name="id1,cmdk@AST31000340NS=____________9QJ2LNYY" name_type="devid"/>
+          -->
+          <!-- device path under /devices directory, e.g.
+            /pci@1e,600/pci@0/pci@9/pci@0/scsi@1/sd@0,0
+          -->
+          <!--
+          <disk_name name="/pci@0/pci@9/pci@0/scsi@1/sd@0,0" name_type="devpath"/>
+          -->
+          <!--
+            ISCSI target device
+
+            DHCP Rootpath
+          <iscsi source="dhcp"/>
+
+            with static-discovery
+          <iscsi target_name="<iqn string>" target_lun="0" target_ip="192.168.1.34"/>
+
+            with sendtargets
+          <iscsi target_lun="0" target_ip="192.168.1.34"/>
+          -->
+          <!-- G2 -->
+          <!--
+          <disk_prop dev_vendor="hitachi" dev_size="204801000"/>
+          -->
+          <!-- G3 -->
+          <!--
+          <disk_keyword key="boot_disk"/>
+          -->
+          <!--
+            Uncomment this to force AI to find an existing Solaris
+            partition instead of creating a new one.
+          -->
+          <!--
+          <partition action="use_existing"/>
+          -->
+	  <!--
+          <partition name="1" part_type="191">
+            <size start_sector="200" val="204801000"/>
+          </partition>
+          -->
+        </disk>
+    </target>
+    <software name="ips" type="IPS">
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+        </publisher>
+      </source>
+      <!--
+        By default the latest build available, in the
+        specified IPS repository, is installed.
+        if another build is required, the build nu1000er has
+        to be appended to the 'entire' package in following
+        form:
+      <name="[email protected]#"/>
+      -->
+      <software_data>
+        <name>pkg:/entire</name>
+        <name>pkg:/babel_install</name>
+      </software_data>
+      <!--
+          babel_install and slim_install are group packages used to
+          define the default installation.  They are removed here so
+          that they do not inhibit removal of other packages on the installed
+          system
+      -->
+      <software_data action="uninstall">
+        <name>pkg:/babel_install</name>
+        <name>pkg:/slim_install</name>
+      </software_data>
+    </software>
+    <add_drivers>
+      <!--
+	    Driver Updates: This section is for adding driver packages to the
+            boot environment before the installation takes place.  The
+            installer can then access all devices on the system.  The
+            packages installed in the boot environment will also be installed
+            on the target.
+
+            A <search_all> entry performs a search for devices which are
+            missing their drivers.  A repository publisher and location
+            may be specified, and that repository and its database will
+            be used.  If no publisher and location is specified, the
+            configured repositories will be used.
+            (See pkg publisher command.)  If <addall> is specified as
+            "true", then drivers the database says are third-party drivers
+            will be added like all others; otherwise third-party drivers
+            will not be added.
+
+                <search_all addall="true">
+                    <source>
+                        <publisher name="solaris">
+                            <origin name="http://pkg.oracle.com/solaris/release"/>
+                        </publisher>
+                    </source>
+                </search_all>
+
+            <software> entries are user-provided specifications of packages
+            needed in order to perform the install.  types are P5I, SVR4, DU.
+            A <software_data> action of "noinstall" inhibits adding to target.
+
+            P5I: A pkg(5) P5I file, full path is in the source/publisher/origin.
+            Path may be to a local file or an http or ftp specification.
+                <software>
+                    <source>
+                        <publisher>
+                            <origin
+				name=
+	"http://pkg.oracle.com/solaris/release/p5i/0/driver/firewire.p5i"/>
+                        </publisher>
+                    </source>
+		    <software_data type="P5I"/>
+                </software>
+
+            SVR4: An SVR4 package spec. The source/publisher/origin corresponds
+            to the directory containing the packages.  The 
+	    software/software_data/name refers tp the package's top level
+	    directory or the package's datastream file.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/package_dir"/>
+                        </publisher>
+                    </source>
+                    <software_data type="SVR4">
+                        <name>my_disk_driver.d</name>
+                    </software_data>
+                </software>
+
+            DU: An ITU (Install Time Update) or Driver Update image.
+            The source/publisher/origin refers to the path just above the 
+	    image's DU directory (if expanded) or the name of the .iso image.  
+	    All packages in the image will be added.
+
+                <software>
+                    <source>
+                        <publisher>
+                            <origin name="/export/duimages/mydriver.iso"/>
+                        </publisher>
+                    </source>
+                    <software_data type="DU"/>
+                </software>	
+      -->
+      <search_all/>
+    </add_drivers>
+  </ai_instance>
+</auto_install>
--- a/usr/src/cmd/auto-install/xslt/new-to-newer.xslt	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/auto-install/xslt/new-to-newer.xslt	Fri Aug 19 08:56:26 2011 -0700
@@ -26,7 +26,7 @@
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     <xsl:output method="xml" indent="yes" encoding="UTF-8" 
-     doctype-system="file:///usr/share/install/ai.dtd"/>
+     doctype-system="file:///usr/share/install/ai.dtd.1"/>
     
 
     <xsl:template match="/">
--- a/usr/src/cmd/auto-install/xslt/old-to-new.xslt	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/auto-install/xslt/old-to-new.xslt	Fri Aug 19 08:56:26 2011 -0700
@@ -24,7 +24,7 @@
 -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-    <xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-system="file:///usr/share/auto_install/ai.dtd"/>
+    <xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-system="file:///usr/share/auto_install/ai.dtd.1"/>
 
     <xsl:template match="/">
         <!-- We need to process both criteria manifests (with embedded AI -->
--- a/usr/src/cmd/distro_const/checkpoints/pre_pkg_img_mod.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/distro_const/checkpoints/pre_pkg_img_mod.py	Fri Aug 19 08:56:26 2011 -0700
@@ -38,7 +38,7 @@
 from osol_install.install_utils import dir_size, encrypt_password
 from pkg.cfgfiles import PasswordFile
 from solaris_install import CalledProcessError, DC_LABEL, DC_PERS_LABEL, run, \
-    Popen
+    Popen, path_matches_dtd
 from solaris_install.configuration.configuration import Configuration
 from solaris_install.engine import InstallEngine
 from solaris_install.engine.checkpoint import AbstractCheckpoint as Checkpoint
@@ -418,8 +418,12 @@
         # Copy files from /usr/share/install too
         old_wd = os.getcwd()
         os.chdir(os.path.join(self.pkg_img_path, "usr/share/install"))
-        for dtd_file in [f for f in os.listdir(".") if f.endswith(".dtd")]:
+        ai_dtd_found = False
+        for dtd_file in [f for f in os.listdir(".") if path_matches_dtd(f)]:
             shutil.copy(dtd_file, pkg_ai_path)
+            if not ai_dtd_found and dtd_file.startswith("ai.dtd"):
+                ai_dtd_found = True
+                os.symlink(dtd_file, os.path.join(pkg_ai_path, "ai.dtd"))
         os.chdir(old_wd)  # Restore Working Directory
 
         # move in service_bundle(4) for AI server profile validation
--- a/usr/src/cmd/distro_const/checkpoints/xslt/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/distro_const/checkpoints/xslt/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -24,30 +24,31 @@
 #
 
 
-include ../../../Makefile.cmd
+include $(SRC)/cmd/Makefile.cmd
 
 all:=		TARGET=	all
 clean:=		TARGET=	clean
 clobber:=	TARGET=	clobber
 install:=	TARGET=	install
 
-XSLT_FILES=	doc2_media_transfer.xslt
+XSLT_FILES_SRC =	doc2_media_transfer.xslt.src
+
+XSLT_FILES_GEN =	doc2_media_transfer.xslt
+
+XSLT_FILES =		$(XSLT_FILES_GEN)
 
-ROOTXSLT_DIR = $(ROOTPYTHONVENDORINSTALLDCCHKPT)/xslt
-ROOTXSLT_FILES= $(XSLT_FILES:%=$(ROOTXSLT_DIR)/%)
+ROOTXSLT_FILES= $(XSLT_FILES:%=$(ROOTPYTHONVENDORINSTALLDCCHKPTXSLT)/%)
 
-all:		
+CLEANFILES =		$(XSLT_FILES_GEN)
+CLOBBERFILES =		$(CLEANFILES)
+
+all:	$(XSLT_FILES_GEN)
+
+install: all .WAIT $(ROOTXSLT_FILES)
 
 clean:	
+	$(RM) $(CLEANFILES)
 
 clobber: clean
 
-$(ROOTXSLT_DIR):
-	$(INS.dir)
-
-$(ROOTXSLT_DIR)/%: %
-	$(INS.file)
-
-install: $(ROOTXSLT_DIR) .WAIT $(ROOTXSLT_FILES)
-
-include ../../../Makefile.targ
+include $(SRC)/cmd/Makefile.targ
--- a/usr/src/cmd/distro_const/checkpoints/xslt/doc2_media_transfer.xslt	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
--->
-
-<!-- Extract the Software nodes we constructed from the varies -->
-<!-- checkpoints into a XML file to be stored in the image. -->
-<!-- The software node names we specified here must match the ones -->
-<!-- used during the image construction process -->
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-    <xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-system="file:///usr/share/install/media-transfer.dtd"/>
-
-    <xsl:template match="/">
-        <media_transfer>
-            <xsl:copy-of select="//software[@name='transfer-root']"/>
-            <xsl:copy-of select="//software[@name='transfer-misc']"/>
-            <xsl:copy-of select="//software[@name='transfer-media']"/>
-        </media_transfer>
-    </xsl:template>
-</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/checkpoints/xslt/doc2_media_transfer.xslt.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+ Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+-->
+
+<!-- Extract the Software nodes we constructed from the varies -->
+<!-- checkpoints into a XML file to be stored in the image. -->
+<!-- The software node names we specified here must match the ones -->
+<!-- used during the image construction process -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+    <xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-system="file:///usr/share/install/media-transfer.dtd.@DTD_VERSION_MEDIA_TRANSFER@"/>
+
+    <xsl:template match="/">
+        <media_transfer>
+            <xsl:copy-of select="//software[@name='transfer-root']"/>
+            <xsl:copy-of select="//software[@name='transfer-misc']"/>
+            <xsl:copy-of select="//software[@name='transfer-media']"/>
+        </media_transfer>
+    </xsl:template>
+</xsl:stylesheet>
--- a/usr/src/cmd/distro_const/manifest/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/distro_const/manifest/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -30,24 +30,36 @@
 clobber:=      TARGET= clobber
 install:=      TARGET= install
 
-MANIFEST_FILES=	dc_livecd.xml \
+MANIFEST_FILES_SRC=	dc_ai_sparc.xml.src \
+	dc_ai_x86.xml.src \
+	dc_livecd.xml.src \
+	dc_text_sparc.xml.src \
+	dc_text_x86.xml.src
+
+MANIFEST_FILES_GEN=	dc_ai_sparc.xml \
 	dc_ai_x86.xml \
-	dc_ai_sparc.xml \
-	dc_text_x86.xml \
+	dc_livecd.xml \
 	dc_text_sparc.xml \
+	dc_text_x86.xml
+
+MANIFEST_FILES=	$(MANIFEST_FILES_GEN) \
 	boot_archive_contents_x86.xml \
 	boot_archive_contents_sparc.xml \
 	lang_facets.xml
 
 ROOT_MANIFEST_FILES=	$(MANIFEST_FILES:%=$(ROOTDC)/%)
 
-all:
+CLEANFILES= $(MANIFEST_FILES_GEN)
+CLOBBERFILES= $(CLEANFILES)
 
-install: .WAIT $(ROOTDC) \
+all: $(MANIFEST_FILES_GEN)
+
+install: all .WAIT $(ROOTDC) \
 	$(ROOT_MANIFEST_FILES)
 
-clean:
+$(MANIFEST_FILES_GEN):
 
-clobber:
+clean:
+	$(RM) $(CLEANFILES)
 
 include ../../Makefile.targ
--- a/usr/src/cmd/distro_const/manifest/dc_ai_sparc.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd">
-<!--
-  CDDL HEADER START
- 
-  The contents of this file are subject to the terms of the
-  Common Development and Distribution License (the "License").
-  You may not use this file except in compliance with the License.
- 
-  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-  or http://www.opensolaris.org/os/licensing.
-  See the License for the specific language governing permissions
-  and limitations under the License.
- 
-  When distributing Covered Code, include this CDDL HEADER in each
-  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-  If applicable, add the following below this CDDL HEADER, with the
-  fields enclosed by brackets "[]" replaced with your own identifying
-  information: Portions Copyright [yyyy] [name of copyright owner]
- 
-  CDDL HEADER END
- 
-  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
-  XML specification for building an Oracle Solaris installer iso image
--->
-<dc>
-  <!--
-    add_timestamp controls if the iso/usb should
-    have a timestamp appended to it. Useful if the intent
-    is to do serial builds and to keep all the incremental
-    images around
-  -->
-  <distro name="Oracle_Solaris_AI_SPARC" add_timestamp="false">
-  <!-- Uncomment if http_proxy needs to be set
-  <distro name="Oracle_Solaris_AI_SPARC" add_timestamp="false"
-      http_proxy="http://example.com">
-  -->
-
-    <!--
-      Target Section: defines zfs build dataset to be used for the build.
-      Filesystem name should not include the name of the zpool.
-    -->
-    <target name="desired">
-      <logical>
-        <zpool name="rpool" action="use_existing">
-          <filesystem name="dc/ai" action="preserve"/>
-        </zpool>
-      </logical>
-    </target>
-
-    <!--
-    Software section: defines the payload for the transfer checkpoints.
-    -->
-    <!--
-      Sofware node names should match a corresponding Execution node
-      checkpoint name.
-
-      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
-      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
-      <ZFS Dataset>/build_data/boot_archive, respectively.
-    -->
-    <software name="transfer-ips-install" type="IPS">
-      <destination>
-        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-            href="/usr/share/distro_const/lang_facets.xml"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-          <!--
-          If mirrors for this publisher need to be set, specify them here.
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-        <!--
-          If additional publishers need to be set, they can be set here
-        -->
-        <!-- Uncomment before using
-        <publisher name="solaris">
-          <origin name="http://example.com"></origin>
-          <mirror name="mirror1.example.com"></mirror>
-          <mirror name="mirror2.example.com"></mirror>
-        </publisher>
-        -->
-      </source>
-      <!--
-        List of packages used to form the installed image
-         
-        By default the latest build available in the specified
-        IPS repository is installed. If another build is required,
-        the build number has to be appended to the 'entire' package
-        in the following form:
-
-        <name>pkg:/[email protected]#</name>
-      -->
-      <software_data action="install">
-        <name>pkg:/entire</name>
-        <name>pkg:/system/install/media/internal</name>
-        <name>pkg:/system/install/text-install</name>
-        <name>pkg:/group/system/solaris-auto-install</name>
-      </software_data>
-    </software>
-    <!--
-      The default publisher to be set on the system after it has been installed.
-    -->
-    <software name="set-ips-attributes" type="IPS">
-      <destination>
-        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release/"/>
-          <!-- 
-            If mirrors for this publisher are desired, they can be set here
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-      </source>
-    </software>
-
-    <!--
-      Items below this line are rarely configured
-    -->
-    <!--
-      This section defines the contents of the boot_archive
-    -->
-    <software name="ba-init" type="CPIO">
-      <destination>
-        <dir path="{BOOT_ARCHIVE}"/>
-      </destination>
-      <source>
-        <dir path="{PKG_IMAGE_PATH}"/>
-      </source>
-      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-          href="/usr/share/distro_const/boot_archive_contents_sparc.xml"/>
-      <software_data action="install">
-        <name>kernel</name>
-        <name>boot</name>
-        <name>platform</name>
-        <name>system</name>
-        <name>lib</name>
-        <name>dev</name>
-        <name>devices</name>
-        <name>root</name>
-        <name>jack</name>
-        <name>etc</name>
-        <name>usr/sbin/ibd_delete_link</name>
-        <name>usr/sbin/ibd_upgrade</name>
-        <name>var/svc/manifest</name>
-        <name>var/svc/profile</name>
-        <name>var/sadm</name>
-      </software_data>
-    </software>
-
-    <!--
-      Execution section: This section lists the checkpoints that are run to
-      create an image. The checkpoints listed below are run in order.
-    -->
-    <execution stop_on_error="true">
-      <checkpoint name="transfer-ips-install"
-          desc="Transfer pkg contents from IPS"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="set-ips-attributes"
-          desc="Set post-install IPS attributes"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="pre-pkg-img-mod"
-          desc="Pre package image modification"
-          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
-          checkpoint_class="AIPrePkgImgMod">
-          <!--
-            root user/role password in the image.
-            service_name - solarisdev-%{arch}-%{build}
-          -->
-          <!--
-            The default hostname for images is 'solaris'.  Setting
-            the hostname here will override the default.
-          -->
-          <kwargs>
-            <arg name="root_password">solaris</arg>
-            <arg name="is_plaintext">true</arg>
-            <!-- uncomment before using
-            <arg name="hostname">hostname</arg>
-            <arg name="service_name">solarisdev-%{arch}-%{build}</arg>
-            -->
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="ba-init"
-          desc="Boot Archive Initialization"
-          mod_path="solaris_install/transfer/cpio"
-          checkpoint_class="TransferCPIO"/>
-      <checkpoint name="ba-config"
-          desc="Boot Archive Configuration"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
-          checkpoint_class="AIBootArchiveConfigure">
-      </checkpoint>
-      <checkpoint name="ba-arch"
-          desc="Boot Archive Archival"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
-          checkpoint_class="BootArchiveArchive">
-          <!--
-            size_pad increases the amount of free space in the boot_archive
-            at the expense of available memory on the booted system.
-
-            bytes_per_inode is used to control the 'nbpi' used in sizing up
-            the boot_archive
-          -->
-          <kwargs>
-            <arg name="size_pad">0</arg>
-            <arg name="bytes_per_inode">0</arg>
-            <arglist name="uncompressed_files">
-              <argitem>etc/svc/repository.db</argitem>
-              <argitem>etc/name_to_major</argitem>
-              <argitem>etc/minor_perm</argitem>
-              <argitem>etc/driver_aliases</argitem>
-              <argitem>etc/driver_classes</argitem>
-              <argitem>etc/path_to_inst</argitem>
-              <argitem>etc/default/init</argitem>
-              <argitem>etc/nsswitch.conf</argitem>
-              <argitem>etc/passwd</argitem>
-              <argitem>etc/shadow</argitem>
-              <argitem>etc/inet/hosts</argitem>
-            </arglist>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="pkg-img-mod"
-          desc="Pkg image area modification"
-          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
-          checkpoint_class="AIPkgImgMod">
-          <!--
-            compression_type controls the compression algorithm to be used in
-            compressing solaris.zlib and solarismisc.zlib. Valid values are
-            gzip and lzma
-          -->
-          <kwargs>
-            <arg name="compression_type">lzma</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="create-iso"
-          desc="ISO media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_iso"
-          checkpoint_class="CreateISO">
-      </checkpoint>
-      <checkpoint name="ai-publish-package"
-          desc="Publish pkg(5) repository"
-          mod_path="solaris_install/distro_const/checkpoints/ai_publish_pkg"
-          checkpoint_class="AIPublishPackages">
-          <!--
-            The following arguments are optional
-
-            If not specified the arguments default to:
-            pkg_name - install-image/solaris-auto-install@<AI pkg version>
-            pkg_repo - file://<MEDIA_DIR>/ai_image_repo
-            prefix - ai-image
-                Note:  See pkg(5) and pkg.depotd(1M) for a
-                description of these optional arguments
-          <kwargs>
-            <arg name="pkg_name">name</arg>
-            <arg name="pkg_repo">repo</arg>
-            <arg name="prefix">prefix</arg>
-          </kwargs>
-          -->
-      </checkpoint>
-    </execution>
-
-    <!--
-      SMF service profiles to be applied to the boot_archive.
-    
-      These profiles are applied in the order they are specified.
-    -->
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/generic_limited_net.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/generic.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/ai.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/ns_files.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-  </distro>
-</dc>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/manifest/dc_ai_sparc.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd.@DTD_VERSION_DC@">
+<!--
+  CDDL HEADER START
+ 
+  The contents of this file are subject to the terms of the
+  Common Development and Distribution License (the "License").
+  You may not use this file except in compliance with the License.
+ 
+  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+  or http://www.opensolaris.org/os/licensing.
+  See the License for the specific language governing permissions
+  and limitations under the License.
+ 
+  When distributing Covered Code, include this CDDL HEADER in each
+  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+  If applicable, add the following below this CDDL HEADER, with the
+  fields enclosed by brackets "[]" replaced with your own identifying
+  information: Portions Copyright [yyyy] [name of copyright owner]
+ 
+  CDDL HEADER END
+ 
+  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+  XML specification for building an Oracle Solaris installer iso image
+-->
+<dc>
+  <!--
+    add_timestamp controls if the iso/usb should
+    have a timestamp appended to it. Useful if the intent
+    is to do serial builds and to keep all the incremental
+    images around
+  -->
+  <distro name="Oracle_Solaris_AI_SPARC" add_timestamp="false">
+  <!-- Uncomment if http_proxy needs to be set
+  <distro name="Oracle_Solaris_AI_SPARC" add_timestamp="false"
+      http_proxy="http://example.com">
+  -->
+
+    <!--
+      Target Section: defines zfs build dataset to be used for the build.
+      Filesystem name should not include the name of the zpool.
+    -->
+    <target name="desired">
+      <logical>
+        <zpool name="rpool" action="use_existing">
+          <filesystem name="dc/ai" action="preserve"/>
+        </zpool>
+      </logical>
+    </target>
+
+    <!--
+    Software section: defines the payload for the transfer checkpoints.
+    -->
+    <!--
+      Sofware node names should match a corresponding Execution node
+      checkpoint name.
+
+      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
+      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
+      <ZFS Dataset>/build_data/boot_archive, respectively.
+    -->
+    <software name="transfer-ips-install" type="IPS">
+      <destination>
+        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+            href="/usr/share/distro_const/lang_facets.xml"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+          <!--
+          If mirrors for this publisher need to be set, specify them here.
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+        <!--
+          If additional publishers need to be set, they can be set here
+        -->
+        <!-- Uncomment before using
+        <publisher name="solaris">
+          <origin name="http://example.com"></origin>
+          <mirror name="mirror1.example.com"></mirror>
+          <mirror name="mirror2.example.com"></mirror>
+        </publisher>
+        -->
+      </source>
+      <!--
+        List of packages used to form the installed image
+         
+        By default the latest build available in the specified
+        IPS repository is installed. If another build is required,
+        the build number has to be appended to the 'entire' package
+        in the following form:
+
+        <name>pkg:/[email protected]#</name>
+      -->
+      <software_data action="install">
+        <name>pkg:/entire</name>
+        <name>pkg:/system/install/media/internal</name>
+        <name>pkg:/system/install/text-install</name>
+        <name>pkg:/group/system/solaris-auto-install</name>
+      </software_data>
+    </software>
+    <!--
+      The default publisher to be set on the system after it has been installed.
+    -->
+    <software name="set-ips-attributes" type="IPS">
+      <destination>
+        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release/"/>
+          <!-- 
+            If mirrors for this publisher are desired, they can be set here
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+      </source>
+    </software>
+
+    <!--
+      Items below this line are rarely configured
+    -->
+    <!--
+      This section defines the contents of the boot_archive
+    -->
+    <software name="ba-init" type="CPIO">
+      <destination>
+        <dir path="{BOOT_ARCHIVE}"/>
+      </destination>
+      <source>
+        <dir path="{PKG_IMAGE_PATH}"/>
+      </source>
+      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+          href="/usr/share/distro_const/boot_archive_contents_sparc.xml"/>
+      <software_data action="install">
+        <name>kernel</name>
+        <name>boot</name>
+        <name>platform</name>
+        <name>system</name>
+        <name>lib</name>
+        <name>dev</name>
+        <name>devices</name>
+        <name>root</name>
+        <name>jack</name>
+        <name>etc</name>
+        <name>usr/sbin/ibd_delete_link</name>
+        <name>usr/sbin/ibd_upgrade</name>
+        <name>var/svc/manifest</name>
+        <name>var/svc/profile</name>
+        <name>var/sadm</name>
+      </software_data>
+    </software>
+
+    <!--
+      Execution section: This section lists the checkpoints that are run to
+      create an image. The checkpoints listed below are run in order.
+    -->
+    <execution stop_on_error="true">
+      <checkpoint name="transfer-ips-install"
+          desc="Transfer pkg contents from IPS"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="set-ips-attributes"
+          desc="Set post-install IPS attributes"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="pre-pkg-img-mod"
+          desc="Pre package image modification"
+          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
+          checkpoint_class="AIPrePkgImgMod">
+          <!--
+            root user/role password in the image.
+            service_name - solarisdev-%{arch}-%{build}
+          -->
+          <!--
+            The default hostname for images is 'solaris'.  Setting
+            the hostname here will override the default.
+          -->
+          <kwargs>
+            <arg name="root_password">solaris</arg>
+            <arg name="is_plaintext">true</arg>
+            <!-- uncomment before using
+            <arg name="hostname">hostname</arg>
+            <arg name="service_name">solarisdev-%{arch}-%{build}</arg>
+            -->
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="ba-init"
+          desc="Boot Archive Initialization"
+          mod_path="solaris_install/transfer/cpio"
+          checkpoint_class="TransferCPIO"/>
+      <checkpoint name="ba-config"
+          desc="Boot Archive Configuration"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
+          checkpoint_class="AIBootArchiveConfigure">
+      </checkpoint>
+      <checkpoint name="ba-arch"
+          desc="Boot Archive Archival"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
+          checkpoint_class="BootArchiveArchive">
+          <!--
+            size_pad increases the amount of free space in the boot_archive
+            at the expense of available memory on the booted system.
+
+            bytes_per_inode is used to control the 'nbpi' used in sizing up
+            the boot_archive
+          -->
+          <kwargs>
+            <arg name="size_pad">0</arg>
+            <arg name="bytes_per_inode">0</arg>
+            <arglist name="uncompressed_files">
+              <argitem>etc/svc/repository.db</argitem>
+              <argitem>etc/name_to_major</argitem>
+              <argitem>etc/minor_perm</argitem>
+              <argitem>etc/driver_aliases</argitem>
+              <argitem>etc/driver_classes</argitem>
+              <argitem>etc/path_to_inst</argitem>
+              <argitem>etc/default/init</argitem>
+              <argitem>etc/nsswitch.conf</argitem>
+              <argitem>etc/passwd</argitem>
+              <argitem>etc/shadow</argitem>
+              <argitem>etc/inet/hosts</argitem>
+            </arglist>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="pkg-img-mod"
+          desc="Pkg image area modification"
+          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
+          checkpoint_class="AIPkgImgMod">
+          <!--
+            compression_type controls the compression algorithm to be used in
+            compressing solaris.zlib and solarismisc.zlib. Valid values are
+            gzip and lzma
+          -->
+          <kwargs>
+            <arg name="compression_type">lzma</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="create-iso"
+          desc="ISO media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_iso"
+          checkpoint_class="CreateISO">
+      </checkpoint>
+      <checkpoint name="ai-publish-package"
+          desc="Publish pkg(5) repository"
+          mod_path="solaris_install/distro_const/checkpoints/ai_publish_pkg"
+          checkpoint_class="AIPublishPackages">
+          <!--
+            The following arguments are optional
+
+            If not specified the arguments default to:
+            pkg_name - install-image/solaris-auto-install@<AI pkg version>
+            pkg_repo - file://<MEDIA_DIR>/ai_image_repo
+            prefix - ai-image
+                Note:  See pkg(5) and pkg.depotd(1M) for a
+                description of these optional arguments
+          <kwargs>
+            <arg name="pkg_name">name</arg>
+            <arg name="pkg_repo">repo</arg>
+            <arg name="prefix">prefix</arg>
+          </kwargs>
+          -->
+      </checkpoint>
+    </execution>
+
+    <!--
+      SMF service profiles to be applied to the boot_archive.
+    
+      These profiles are applied in the order they are specified.
+    -->
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/generic_limited_net.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/generic.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/ai.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/ns_files.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+  </distro>
+</dc>
--- a/usr/src/cmd/distro_const/manifest/dc_ai_x86.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,358 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd">
-<!--
-  CDDL HEADER START
- 
-  The contents of this file are subject to the terms of the
-  Common Development and Distribution License (the "License").
-  You may not use this file except in compliance with the License.
- 
-  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-  or http://www.opensolaris.org/os/licensing.
-  See the License for the specific language governing permissions
-  and limitations under the License.
- 
-  When distributing Covered Code, include this CDDL HEADER in each
-  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-  If applicable, add the following below this CDDL HEADER, with the
-  fields enclosed by brackets "[]" replaced with your own identifying
-  information: Portions Copyright [yyyy] [name of copyright owner]
- 
-  CDDL HEADER END
- 
-  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
-  XML specification for building an Oracle Solaris installer iso image
--->
-<dc>
-  <!--
-    add_timestamp controls if the iso/usb should have a timestamp
-    appended to it. Useful if the intent is to do serial builds and to keep
-    all the incremental images around
-  -->
-  <distro name="Oracle_Solaris_AI_X86" add_timestamp="false">
-  <!-- Uncomment if http_proxy needs to be set
-  <distro name="Oracle_Solaris_AI_X86" add_timestamp="false"
-      http_proxy="http://example.com">
-  -->
-    <distro_spec>
-      <img_params>
-        <media_im>
-          <!--
-            Boot menu modifications to be applied to the image.
-
-            Optional attributes that can be specified here are:
-            title   - title for the specialized boot entry
-                      Default is to use the first line of /etc/release
-            timeout - boot loader timeout value before the default boot entry
-                      is automatically activated.
-          -->
-          <!-- Uncomment before using
-          <boot_mods title="myentry" timeout="5">
-          -->
-            <!--
-              Boot entries to add to the default boot menu in the image. Each
-              entry is either prepended or appended sequentially to the boot
-              menu in order of listing based on each boot entry element's
-              "insert_at" attribute value ("start" or "end").
-
-              Optional attributes:
-              default_entry - If the boot_entry has this attribute set to
-                              "true" then it will be the default boot entry
-                              activated by the boot loader.
-                              Note that if more than one boot entry has this
-                              attribute set to "true", the last entry defined
-                              as such will override preceeding default
-                              boot_entry elements set to "true".
-
-              insert_at     - Optional attribute indicating the desired
-                              insertion point relative to the existing list of
-                              boot entries.
-                              Valid values are "start" or "end" only. If
-                              omitted the default action is to append the entry
-                              to the end of the list.
-
-              Required sub-elements:
-              title_suffix  - Text string appended to this specific entry's
-                              title.
-
-              Optional sub-elements:
-              kernel_args   - Optional kernel arguments passed to the kernel by
-                              the boot loader.
-            -->
-            <!-- Uncomment before using
-            <boot_entry default_entry="false" insert_at="end">
-              <title_suffix>My Title</title_suffix>
-              <kernel_args></kernel_args>
-            </boot_entry>
-            -->
-          <!-- Uncomment before using
-          </boot_mods>
-          -->
-        </media_im>
-      </img_params>
-    </distro_spec>
-    <!--
-      Target Section: defines zfs build dataset to be used for the build.
-      Filesystem name should not include the name of the zpool.
-    -->
-    <target name="desired">
-      <logical>
-        <zpool name="rpool" action="use_existing">
-          <filesystem name="dc/ai" action="preserve"/>
-        </zpool>
-      </logical>
-    </target>
-
-    <!--
-    Software section: defines the payload for the transfer checkpoints.
-    -->
-    <!--
-      Sofware node names should match a corresponding Execution node
-      checkpoint name.
-
-      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
-      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
-      <ZFS Dataset>/build_data/boot_archive, respectively.
-    -->
-    <software name="transfer-ips-install" type="IPS">
-      <destination>
-        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-            href="/usr/share/distro_const/lang_facets.xml"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-          <!--
-            If mirrors for this publisher need to be set, specify them here.
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-        <!--
-          If additional publishers need to be set, they can be set here
-        -->
-        <!-- Uncomment before using
-        <publisher name="solaris">
-          <origin name="http://example.com"></origin>
-          <mirror name="mirror1.example.com"></mirror>
-          <mirror name="mirror2.example.com"></mirror>
-        </publisher>
-        -->
-      </source>
-      <!--
-        List of packages used to form the installed image
-         
-        By default the latest build available in the specified IPS repository
-        is installed. If another build is required, the build number has to be
-        appended to the 'entire' package in the following form:
-
-        <name>pkg:/[email protected]#</name>
-      -->
-      <software_data action="install">
-        <name>pkg:/entire</name>
-        <name>pkg:/system/install/media/internal</name>
-        <name>pkg:/system/install/text-install</name>
-        <name>pkg:/group/system/solaris-auto-install</name>
-      </software_data>
-    </software>
-    <!--
-      The default publisher to be set on the system after it has been installed.
-    -->
-    <software name="set-ips-attributes" type="IPS">
-      <destination>
-        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release/"/>
-          <!-- 
-            If mirrors for this publisher are desired, they can be set here
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-      </source>
-    </software>
-
-    <!--
-     Items below this line are rarely configured
-    -->
-    <!--
-     This section defines the contents of the boot_archive
-    -->
-    <software name="ba-init" type="CPIO">
-      <destination>
-        <dir path="{BOOT_ARCHIVE}"/>
-      </destination>
-      <source>
-        <dir path="{PKG_IMAGE_PATH}"/>
-      </source>
-      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-          href="/usr/share/distro_const/boot_archive_contents_x86.xml"/>
-      <software_data action="install">
-        <name>kernel</name>
-        <name>boot</name>
-        <name>platform</name>
-        <name>system</name>
-        <name>lib</name>
-        <name>dev</name>
-        <name>devices</name>
-        <name>root</name>
-        <name>jack</name>
-        <name>etc</name>
-        <name>usr/sbin/ibd_delete_link</name>
-        <name>usr/sbin/ibd_upgrade</name>
-        <name>var/svc/manifest</name>
-        <name>var/svc/profile</name>
-        <name>var/sadm</name>
-      </software_data>
-      <software_data action="uninstall">
-        <name>var/sadm/pkg</name>
-      </software_data>
-    </software>
-
-    <!--
-      Execution section: This section lists the checkpoints that are run in
-      order to create an image. The checkpoints listed below are run in order.
-    -->
-    <execution stop_on_error="true">
-      <checkpoint name="transfer-ips-install"
-          desc="Transfer pkg contents from IPS"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="set-ips-attributes"
-          desc="Set post-install IPS attributes"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="pre-pkg-img-mod"
-          desc="Pre package image modification"
-          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
-          checkpoint_class="AIPrePkgImgMod">
-          <!--
-            root user/role password in the image.
-            service_name - solarisdev-%{arch}-%{build}
-          -->
-          <!--
-            The default hostname for images is 'solaris'.  Setting
-            the hostname here will override the default.
-          -->
-          <kwargs>
-            <arg name="root_password">solaris</arg>
-            <arg name="is_plaintext">true</arg>
-            <!-- uncomment before using
-            <arg name="hostname">hostname</arg>
-            <arg name="service_name">solarisdev-%{arch}-%{build}</arg>
-            -->
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="ba-init"
-          desc="Boot Archive Initialization"
-          mod_path="solaris_install/transfer/cpio"
-          checkpoint_class="TransferCPIO"/>
-      <checkpoint name="ba-config"
-          desc="Boot Archive Configuration"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
-          checkpoint_class="AIBootArchiveConfigure">
-      </checkpoint>
-      <checkpoint name="ba-arch"
-          desc="Boot Archive Archival"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
-          checkpoint_class="BootArchiveArchive">
-          <!--
-            compression_type/compression_level to be used in compressing the
-            boot_archive. Valid types are gzip and none.
-
-            size_pad increases the amount of free space in the boot_archive
-            at the expense of available memory on the booted system.
-
-            bytes_per_inode is used to control the 'nbpi' used in sizing up
-            the boot_archive
-          -->
-          <kwargs>
-            <arg name="compression_type">gzip</arg>
-            <arg name="compression_level">9</arg>
-            <arg name="size_pad">0</arg>
-            <arg name="bytes_per_inode">0</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="boot-setup"
-          desc="Setup boot menu"
-          mod_path="solaris_install/boot/boot"
-          checkpoint_class="AIISOImageBootMenu">
-          <kwargs>
-            <!-- The installadm_entry defines the title for the default
-            boot entry used by installadm when unpacking the image for use -->
-            <arg name="installadm_entry">Text Installer and command line</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="pkg-img-mod"
-          desc="Pkg image area modification"
-          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
-          checkpoint_class="AIPkgImgMod">
-          <!--
-            compression_type controls the compression algorithm to be used in
-            compressing solaris.zlib and solarismisc.zlib. Valid values are
-            gzip and lzma
-          -->
-          <kwargs>
-            <arg name="compression_type">lzma</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="create-iso"
-          desc="ISO media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_iso"
-          checkpoint_class="CreateISO">
-      </checkpoint>
-      <checkpoint name="create-usb"
-          desc="USB media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_usb"
-          checkpoint_class="CreateUSB">
-      </checkpoint>
-      <checkpoint name="ai-publish-package"
-          desc="Publish pkg(5) repository"
-          mod_path="solaris_install/distro_const/checkpoints/ai_publish_pkg"
-          checkpoint_class="AIPublishPackages">
-          <!--
-            The following arguments are optional
-
-            If not specified the arguments default to:
-            pkg_name - install-image/solaris-auto-install@<AI pkg version>
-            pkg_repo - file://<MEDIA_DIR>/ai_image_repo
-            prefix - ai-image
-                Note:  See pkg(5) and pkg.depotd(1M) for a
-                description of these optional arguments
-          <kwargs>
-            <arg name="pkg_name">name</arg>
-            <arg name="pkg_repo">repo</arg>
-            <arg name="prefix">prefix</arg>
-          </kwargs>
-        -->
-      </checkpoint>
-    </execution>
-
-    <!--
-      SMF service profiles to be applied to the boot_archive.
-    
-      These profiles are applied in the order they are specified.
-    -->
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/generic_limited_net.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/generic.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/ai.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/ns_files.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-  </distro>
-</dc>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/manifest/dc_ai_x86.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd.@DTD_VERSION_DC@">
+<!--
+  CDDL HEADER START
+ 
+  The contents of this file are subject to the terms of the
+  Common Development and Distribution License (the "License").
+  You may not use this file except in compliance with the License.
+ 
+  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+  or http://www.opensolaris.org/os/licensing.
+  See the License for the specific language governing permissions
+  and limitations under the License.
+ 
+  When distributing Covered Code, include this CDDL HEADER in each
+  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+  If applicable, add the following below this CDDL HEADER, with the
+  fields enclosed by brackets "[]" replaced with your own identifying
+  information: Portions Copyright [yyyy] [name of copyright owner]
+ 
+  CDDL HEADER END
+ 
+  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+  XML specification for building an Oracle Solaris installer iso image
+-->
+<dc>
+  <!--
+    add_timestamp controls if the iso/usb should have a timestamp
+    appended to it. Useful if the intent is to do serial builds and to keep
+    all the incremental images around
+  -->
+  <distro name="Oracle_Solaris_AI_X86" add_timestamp="false">
+  <!-- Uncomment if http_proxy needs to be set
+  <distro name="Oracle_Solaris_AI_X86" add_timestamp="false"
+      http_proxy="http://example.com">
+  -->
+    <distro_spec>
+      <img_params>
+        <media_im>
+          <!--
+            Boot menu modifications to be applied to the image.
+
+            Optional attributes that can be specified here are:
+            title   - title for the specialized boot entry
+                      Default is to use the first line of /etc/release
+            timeout - boot loader timeout value before the default boot entry
+                      is automatically activated.
+          -->
+          <!-- Uncomment before using
+          <boot_mods title="myentry" timeout="5">
+          -->
+            <!--
+              Boot entries to add to the default boot menu in the image. Each
+              entry is either prepended or appended sequentially to the boot
+              menu in order of listing based on each boot entry element's
+              "insert_at" attribute value ("start" or "end").
+
+              Optional attributes:
+              default_entry - If the boot_entry has this attribute set to
+                              "true" then it will be the default boot entry
+                              activated by the boot loader.
+                              Note that if more than one boot entry has this
+                              attribute set to "true", the last entry defined
+                              as such will override preceeding default
+                              boot_entry elements set to "true".
+
+              insert_at     - Optional attribute indicating the desired
+                              insertion point relative to the existing list of
+                              boot entries.
+                              Valid values are "start" or "end" only. If
+                              omitted the default action is to append the entry
+                              to the end of the list.
+
+              Required sub-elements:
+              title_suffix  - Text string appended to this specific entry's
+                              title.
+
+              Optional sub-elements:
+              kernel_args   - Optional kernel arguments passed to the kernel by
+                              the boot loader.
+            -->
+            <!-- Uncomment before using
+            <boot_entry default_entry="false" insert_at="end">
+              <title_suffix>My Title</title_suffix>
+              <kernel_args></kernel_args>
+            </boot_entry>
+            -->
+          <!-- Uncomment before using
+          </boot_mods>
+          -->
+        </media_im>
+      </img_params>
+    </distro_spec>
+    <!--
+      Target Section: defines zfs build dataset to be used for the build.
+      Filesystem name should not include the name of the zpool.
+    -->
+    <target name="desired">
+      <logical>
+        <zpool name="rpool" action="use_existing">
+          <filesystem name="dc/ai" action="preserve"/>
+        </zpool>
+      </logical>
+    </target>
+
+    <!--
+    Software section: defines the payload for the transfer checkpoints.
+    -->
+    <!--
+      Sofware node names should match a corresponding Execution node
+      checkpoint name.
+
+      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
+      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
+      <ZFS Dataset>/build_data/boot_archive, respectively.
+    -->
+    <software name="transfer-ips-install" type="IPS">
+      <destination>
+        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+            href="/usr/share/distro_const/lang_facets.xml"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+          <!--
+            If mirrors for this publisher need to be set, specify them here.
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+        <!--
+          If additional publishers need to be set, they can be set here
+        -->
+        <!-- Uncomment before using
+        <publisher name="solaris">
+          <origin name="http://example.com"></origin>
+          <mirror name="mirror1.example.com"></mirror>
+          <mirror name="mirror2.example.com"></mirror>
+        </publisher>
+        -->
+      </source>
+      <!--
+        List of packages used to form the installed image
+         
+        By default the latest build available in the specified IPS repository
+        is installed. If another build is required, the build number has to be
+        appended to the 'entire' package in the following form:
+
+        <name>pkg:/[email protected]#</name>
+      -->
+      <software_data action="install">
+        <name>pkg:/entire</name>
+        <name>pkg:/system/install/media/internal</name>
+        <name>pkg:/system/install/text-install</name>
+        <name>pkg:/group/system/solaris-auto-install</name>
+      </software_data>
+    </software>
+    <!--
+      The default publisher to be set on the system after it has been installed.
+    -->
+    <software name="set-ips-attributes" type="IPS">
+      <destination>
+        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release/"/>
+          <!-- 
+            If mirrors for this publisher are desired, they can be set here
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+      </source>
+    </software>
+
+    <!--
+     Items below this line are rarely configured
+    -->
+    <!--
+     This section defines the contents of the boot_archive
+    -->
+    <software name="ba-init" type="CPIO">
+      <destination>
+        <dir path="{BOOT_ARCHIVE}"/>
+      </destination>
+      <source>
+        <dir path="{PKG_IMAGE_PATH}"/>
+      </source>
+      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+          href="/usr/share/distro_const/boot_archive_contents_x86.xml"/>
+      <software_data action="install">
+        <name>kernel</name>
+        <name>boot</name>
+        <name>platform</name>
+        <name>system</name>
+        <name>lib</name>
+        <name>dev</name>
+        <name>devices</name>
+        <name>root</name>
+        <name>jack</name>
+        <name>etc</name>
+        <name>usr/sbin/ibd_delete_link</name>
+        <name>usr/sbin/ibd_upgrade</name>
+        <name>var/svc/manifest</name>
+        <name>var/svc/profile</name>
+        <name>var/sadm</name>
+      </software_data>
+      <software_data action="uninstall">
+        <name>var/sadm/pkg</name>
+      </software_data>
+    </software>
+
+    <!--
+      Execution section: This section lists the checkpoints that are run in
+      order to create an image. The checkpoints listed below are run in order.
+    -->
+    <execution stop_on_error="true">
+      <checkpoint name="transfer-ips-install"
+          desc="Transfer pkg contents from IPS"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="set-ips-attributes"
+          desc="Set post-install IPS attributes"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="pre-pkg-img-mod"
+          desc="Pre package image modification"
+          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
+          checkpoint_class="AIPrePkgImgMod">
+          <!--
+            root user/role password in the image.
+            service_name - solarisdev-%{arch}-%{build}
+          -->
+          <!--
+            The default hostname for images is 'solaris'.  Setting
+            the hostname here will override the default.
+          -->
+          <kwargs>
+            <arg name="root_password">solaris</arg>
+            <arg name="is_plaintext">true</arg>
+            <!-- uncomment before using
+            <arg name="hostname">hostname</arg>
+            <arg name="service_name">solarisdev-%{arch}-%{build}</arg>
+            -->
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="ba-init"
+          desc="Boot Archive Initialization"
+          mod_path="solaris_install/transfer/cpio"
+          checkpoint_class="TransferCPIO"/>
+      <checkpoint name="ba-config"
+          desc="Boot Archive Configuration"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
+          checkpoint_class="AIBootArchiveConfigure">
+      </checkpoint>
+      <checkpoint name="ba-arch"
+          desc="Boot Archive Archival"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
+          checkpoint_class="BootArchiveArchive">
+          <!--
+            compression_type/compression_level to be used in compressing the
+            boot_archive. Valid types are gzip and none.
+
+            size_pad increases the amount of free space in the boot_archive
+            at the expense of available memory on the booted system.
+
+            bytes_per_inode is used to control the 'nbpi' used in sizing up
+            the boot_archive
+          -->
+          <kwargs>
+            <arg name="compression_type">gzip</arg>
+            <arg name="compression_level">9</arg>
+            <arg name="size_pad">0</arg>
+            <arg name="bytes_per_inode">0</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="boot-setup"
+          desc="Setup boot menu"
+          mod_path="solaris_install/boot/boot"
+          checkpoint_class="AIISOImageBootMenu">
+          <kwargs>
+            <!-- The installadm_entry defines the title for the default
+            boot entry used by installadm when unpacking the image for use -->
+            <arg name="installadm_entry">Text Installer and command line</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="pkg-img-mod"
+          desc="Pkg image area modification"
+          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
+          checkpoint_class="AIPkgImgMod">
+          <!--
+            compression_type controls the compression algorithm to be used in
+            compressing solaris.zlib and solarismisc.zlib. Valid values are
+            gzip and lzma
+          -->
+          <kwargs>
+            <arg name="compression_type">lzma</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="create-iso"
+          desc="ISO media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_iso"
+          checkpoint_class="CreateISO">
+      </checkpoint>
+      <checkpoint name="create-usb"
+          desc="USB media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_usb"
+          checkpoint_class="CreateUSB">
+      </checkpoint>
+      <checkpoint name="ai-publish-package"
+          desc="Publish pkg(5) repository"
+          mod_path="solaris_install/distro_const/checkpoints/ai_publish_pkg"
+          checkpoint_class="AIPublishPackages">
+          <!--
+            The following arguments are optional
+
+            If not specified the arguments default to:
+            pkg_name - install-image/solaris-auto-install@<AI pkg version>
+            pkg_repo - file://<MEDIA_DIR>/ai_image_repo
+            prefix - ai-image
+                Note:  See pkg(5) and pkg.depotd(1M) for a
+                description of these optional arguments
+          <kwargs>
+            <arg name="pkg_name">name</arg>
+            <arg name="pkg_repo">repo</arg>
+            <arg name="prefix">prefix</arg>
+          </kwargs>
+        -->
+      </checkpoint>
+    </execution>
+
+    <!--
+      SMF service profiles to be applied to the boot_archive.
+    
+      These profiles are applied in the order they are specified.
+    -->
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/generic_limited_net.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/generic.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/ai.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/ns_files.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+  </distro>
+</dc>
--- a/usr/src/cmd/distro_const/manifest/dc_livecd.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,345 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd">
-<!--
-  CDDL HEADER START
- 
-  The contents of this file are subject to the terms of the
-  Common Development and Distribution License (the "License").
-  You may not use this file except in compliance with the License.
- 
-  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-  or http://www.opensolaris.org/os/licensing.
-  See the License for the specific language governing permissions
-  and limitations under the License.
- 
-  When distributing Covered Code, include this CDDL HEADER in each
-  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-  If applicable, add the following below this CDDL HEADER, with the
-  fields enclosed by brackets "[]" replaced with your own identifying
-  information: Portions Copyright [yyyy] [name of copyright owner]
- 
-  CDDL HEADER END
- 
-  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
-  XML specification for building an Oracle Solaris installer iso image
--->
-<dc>
-  <!--
-    add_timestamp controls if the iso/usb should have a timestamp
-    appended to it. Useful if the intent is to do serial builds and to keep
-    all the incremental images around
-  -->
-  <distro name="Oracle_Solaris_Live_X86" add_timestamp="false">
-  <!-- Uncomment if http_proxy needs to be set
-  <distro name="Oracle_Solaris_Live_X86" add_timestamp="false"
-      http_proxy="http://example.com">
-  -->
-    <distro_spec>
-      <img_params>
-        <media_im>
-          <!--
-            Boot menu modifications to be applied to the image.
-
-            Optional attributes that can be specified here are:
-            title   - title for the specialized boot entry
-                      Default is to use the first line of /etc/release
-
-            timeout - boot loader timeout value before the default boot entry
-                      is automatically activated.
-          -->
-          <!-- Sample boot_mods with title and timeout attributes.
-               Uncomment and replace un-attributed boot_mods entry below
-               before using.
-          <boot_mods title="myentry" timeout="5">
-          -->
-          <boot_mods>
-            <!--
-              Boot entries to add to the default boot menu in the image. Each
-              entry is either prepended or appended sequentially to the boot
-              menu in order of listing based on each boot entry element's
-              "insert_at" attribute value ("start" or "end").
-
-              Optional attributes:
-              default_entry - If the boot_entry has this attribute set to
-                              "true" then it will be the default boot entry
-                              activated by the boot loader.
-                              Note that if more than one boot entry has this
-                              attribute set to "true", the last entry defined
-                              as such will override preceeding default
-                              boot_entry elements set to "true".
-
-              insert_at     - Optional attribute indicating the desired
-                              insertion point relative to the existing list of
-                              boot entries.
-                              Valid values are "start" or "end" only. If
-                              omitted the default action is to append the entry
-                              to the end of the list.
-
-              Required sub-elements:
-              title_suffix  - Text string appended to this specific entry's
-                              title.
-
-              Optional sub-elements:
-              kernel_args   - Optional kernel arguments passed to the kernel by
-                              the boot loader.
-
-              NOTE: It is strongly suggested that any entries to be added
-                    must be specified *before* the "with magnifier" entry
-                    below.
-            -->
-            <boot_entry>
-              <title_suffix>with magnifier</title_suffix>
-              <kernel_args>-B assistive_tech=magnifier</kernel_args>
-            </boot_entry>
-            <boot_entry>
-              <title_suffix>with screen reader</title_suffix>
-              <kernel_args>-B assistive_tech=reader</kernel_args>
-            </boot_entry>
-          </boot_mods>
-        </media_im>
-      </img_params>
-    </distro_spec>
-
-    <!--
-      Target Section: defines zfs build dataset to be used for the build.
-      Filesystem name should not include the name of the zpool.
-    -->
-    <target name="desired">
-      <logical>
-        <zpool name="rpool" action="use_existing">
-          <filesystem name="dc/livecd" action="preserve"/>
-        </zpool>
-      </logical>
-    </target>
-
-    <!--
-    Software section: defines the payload for the transfer checkpoints.
-    -->
-    <!--
-      Sofware node names should match a corresponding Execution node
-      checkpoint name.
-
-      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
-      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
-      <ZFS Dataset>/build_data/boot_archive, respectively.
-    -->
-    <software name="transfer-ips-install" type="IPS">
-      <destination>
-        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-            href="/usr/share/distro_const/lang_facets.xml"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-          <!--
-            If mirrors for this publisher need to be set, specify them here.
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-        <!--
-          If additional publishers need to be set, they can be set here
-        -->
-        <!-- Uncomment before using
-        <publisher name="solaris">
-          <origin name="http://example.com"></origin>
-          <mirror name="mirror1.example.com"></mirror>
-          <mirror name="mirror2.example.com"></mirror>
-        </publisher>
-        -->
-      </source>
-      <!--
-        List of packages used to form the installed image
-         
-        By default the latest build available in the specified
-        IPS repository is installed. If another build is required,
-        the build number has to be appended to the 'entire' package
-        in the following form:
-
-        <name>pkg:/[email protected]#</name>
-      -->
-      <software_data action="install">
-        <name>pkg:/entire</name>
-        <name>pkg:/group/system/solaris-desktop</name>
-        <name>pkg:/system/install/gui-install</name>
-        <name>pkg:/system/install/media/internal</name>
-      </software_data>
-    </software>
-    <!--
-      The default publisher to be set on the system after it has been installed.
-    -->
-    <software name="set-ips-attributes" type="IPS">
-      <destination>
-        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-          <!-- 
-            If mirrors for this publisher are desired, they can be set here
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-      </source>
-    </software>
-    <!--
-      Items below this line are rarely configured
-    -->
-
-    <!--
-      This section defines the contents of the boot_archive
-    -->
-    <software name="ba-init" type="CPIO">
-      <destination>
-        <dir path="{BOOT_ARCHIVE}"/>
-      </destination>
-      <source>
-        <dir path="{PKG_IMAGE_PATH}"/>
-      </source>
-      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-          href="/usr/share/distro_const/boot_archive_contents_x86.xml"/>
-      <software_data action="install">
-        <name>kernel</name>
-        <name>boot</name>
-        <name>platform</name>
-        <name>system</name>
-        <name>lib</name>
-        <name>dev</name>
-        <name>devices</name>
-        <name>usr/lib/devfsadm/linkmod</name>
-        <name>root</name>
-        <name>jack</name>
-        <name>var/svc/manifest</name>
-        <name>var/svc/profile</name>
-        <name>var/sadm</name>
-        <name>etc</name>
-      </software_data>
-      <software_data action="uninstall">
-        <name>etc/gconf</name>
-        <name>etc/brltty</name>
-        <name>etc/gtk-2.0</name>
-        <name>etc/notices</name>
-        <name>var/sadm/pkg</name>
-      </software_data>
-    </software>
-
-    <!--
-      Execution section: This section lists the checkpoints that are run to
-      create an image. The checkpoints listed below are run in order.
-    -->
-    <execution stop_on_error="true">
-      <checkpoint name="transfer-ips-install"
-          desc="Transfer pkg contents from IPS"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="set-ips-attributes"
-          desc="Set post-install IPS attributes"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="pre-pkg-img-mod"
-          desc="Pre package image modification"
-          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
-          checkpoint_class="LiveCDPrePkgImgMod">
-          <!--
-            root user/role password in the image.
-          -->
-          <!--
-            The default hostname for images is 'solaris'.  Setting
-            the hostname here will override the default.
-          -->
-          <kwargs>
-            <arg name="root_password">solaris</arg>
-            <arg name="is_plaintext">true</arg>
-            <!-- uncomment before using
-            <arg name="hostname">hostname</arg>
-            -->
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="ba-init"
-          desc="Boot Archive Initialization"
-          mod_path="solaris_install/transfer/cpio"
-          checkpoint_class="TransferCPIO"/>
-      <checkpoint name="ba-config"
-          desc="Boot Archive Configuration"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
-          checkpoint_class="LiveCDBootArchiveConfigure">
-      </checkpoint>
-      <checkpoint name="ba-arch"
-          desc="Boot Archive Archival"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
-          checkpoint_class="BootArchiveArchive">
-          <!--
-            compression_type/compression_level to be used in compressing the
-            boot_archive. Valid types are gzip and none.
-
-            size_pad increases the amount of free space in the boot_archive
-            at the expense of available memory on the booted system.
-
-            bytes_per_inode is used to control the 'nbpi' used in sizing up
-            the boot_archive
-          -->
-          <kwargs>
-            <arg name="compression_type">gzip</arg>
-            <arg name="compression_level">9</arg>
-            <arg name="size_pad">0</arg>
-            <arg name="bytes_per_inode">0</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="boot-setup"
-          desc="Setup LiveCD boot menu"
-          mod_path="solaris_install/boot/boot"
-          checkpoint_class="LiveCDISOImageBootMenu"/>
-      <checkpoint name="pkg-img-mod"
-          desc="Pkg image area modification"
-          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
-          checkpoint_class="LiveCDPkgImgMod">
-          <!--
-            compression_type controls the compression algorithm to be used in
-            compressing solaris.zlib and solarismisc.zlib. Valid values are
-            gzip and lzma
-          -->
-          <kwargs>
-            <arg name="dist_iso_sort">
-                /usr/share/distro_const/sort/livecd.sort</arg>
-            <arg name="compression_type">lzma</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="create-iso"
-          desc="ISO media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_iso"
-          checkpoint_class="CreateISO">
-      </checkpoint>
-      <checkpoint name="create-usb"
-          desc="USB media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_usb"
-          checkpoint_class="CreateUSB">
-      </checkpoint>
-    </execution>
-
-    <!--
-      SMF service profiles to be applied to the boot_archive.
-      
-      These profiles are applied in the order they are specified.
-    -->
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/generic_limited_net.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/generic.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/livecd.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/ns_files.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-  </distro>
-</dc>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/manifest/dc_livecd.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,345 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd.@DTD_VERSION_DC@">
+<!--
+  CDDL HEADER START
+ 
+  The contents of this file are subject to the terms of the
+  Common Development and Distribution License (the "License").
+  You may not use this file except in compliance with the License.
+ 
+  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+  or http://www.opensolaris.org/os/licensing.
+  See the License for the specific language governing permissions
+  and limitations under the License.
+ 
+  When distributing Covered Code, include this CDDL HEADER in each
+  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+  If applicable, add the following below this CDDL HEADER, with the
+  fields enclosed by brackets "[]" replaced with your own identifying
+  information: Portions Copyright [yyyy] [name of copyright owner]
+ 
+  CDDL HEADER END
+ 
+  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+  XML specification for building an Oracle Solaris installer iso image
+-->
+<dc>
+  <!--
+    add_timestamp controls if the iso/usb should have a timestamp
+    appended to it. Useful if the intent is to do serial builds and to keep
+    all the incremental images around
+  -->
+  <distro name="Oracle_Solaris_Live_X86" add_timestamp="false">
+  <!-- Uncomment if http_proxy needs to be set
+  <distro name="Oracle_Solaris_Live_X86" add_timestamp="false"
+      http_proxy="http://example.com">
+  -->
+    <distro_spec>
+      <img_params>
+        <media_im>
+          <!--
+            Boot menu modifications to be applied to the image.
+
+            Optional attributes that can be specified here are:
+            title   - title for the specialized boot entry
+                      Default is to use the first line of /etc/release
+
+            timeout - boot loader timeout value before the default boot entry
+                      is automatically activated.
+          -->
+          <!-- Sample boot_mods with title and timeout attributes.
+               Uncomment and replace un-attributed boot_mods entry below
+               before using.
+          <boot_mods title="myentry" timeout="5">
+          -->
+          <boot_mods>
+            <!--
+              Boot entries to add to the default boot menu in the image. Each
+              entry is either prepended or appended sequentially to the boot
+              menu in order of listing based on each boot entry element's
+              "insert_at" attribute value ("start" or "end").
+
+              Optional attributes:
+              default_entry - If the boot_entry has this attribute set to
+                              "true" then it will be the default boot entry
+                              activated by the boot loader.
+                              Note that if more than one boot entry has this
+                              attribute set to "true", the last entry defined
+                              as such will override preceeding default
+                              boot_entry elements set to "true".
+
+              insert_at     - Optional attribute indicating the desired
+                              insertion point relative to the existing list of
+                              boot entries.
+                              Valid values are "start" or "end" only. If
+                              omitted the default action is to append the entry
+                              to the end of the list.
+
+              Required sub-elements:
+              title_suffix  - Text string appended to this specific entry's
+                              title.
+
+              Optional sub-elements:
+              kernel_args   - Optional kernel arguments passed to the kernel by
+                              the boot loader.
+
+              NOTE: It is strongly suggested that any entries to be added
+                    must be specified *before* the "with magnifier" entry
+                    below.
+            -->
+            <boot_entry>
+              <title_suffix>with magnifier</title_suffix>
+              <kernel_args>-B assistive_tech=magnifier</kernel_args>
+            </boot_entry>
+            <boot_entry>
+              <title_suffix>with screen reader</title_suffix>
+              <kernel_args>-B assistive_tech=reader</kernel_args>
+            </boot_entry>
+          </boot_mods>
+        </media_im>
+      </img_params>
+    </distro_spec>
+
+    <!--
+      Target Section: defines zfs build dataset to be used for the build.
+      Filesystem name should not include the name of the zpool.
+    -->
+    <target name="desired">
+      <logical>
+        <zpool name="rpool" action="use_existing">
+          <filesystem name="dc/livecd" action="preserve"/>
+        </zpool>
+      </logical>
+    </target>
+
+    <!--
+    Software section: defines the payload for the transfer checkpoints.
+    -->
+    <!--
+      Sofware node names should match a corresponding Execution node
+      checkpoint name.
+
+      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
+      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
+      <ZFS Dataset>/build_data/boot_archive, respectively.
+    -->
+    <software name="transfer-ips-install" type="IPS">
+      <destination>
+        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+            href="/usr/share/distro_const/lang_facets.xml"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+          <!--
+            If mirrors for this publisher need to be set, specify them here.
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+        <!--
+          If additional publishers need to be set, they can be set here
+        -->
+        <!-- Uncomment before using
+        <publisher name="solaris">
+          <origin name="http://example.com"></origin>
+          <mirror name="mirror1.example.com"></mirror>
+          <mirror name="mirror2.example.com"></mirror>
+        </publisher>
+        -->
+      </source>
+      <!--
+        List of packages used to form the installed image
+         
+        By default the latest build available in the specified
+        IPS repository is installed. If another build is required,
+        the build number has to be appended to the 'entire' package
+        in the following form:
+
+        <name>pkg:/[email protected]#</name>
+      -->
+      <software_data action="install">
+        <name>pkg:/entire</name>
+        <name>pkg:/group/system/solaris-desktop</name>
+        <name>pkg:/system/install/gui-install</name>
+        <name>pkg:/system/install/media/internal</name>
+      </software_data>
+    </software>
+    <!--
+      The default publisher to be set on the system after it has been installed.
+    -->
+    <software name="set-ips-attributes" type="IPS">
+      <destination>
+        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+          <!-- 
+            If mirrors for this publisher are desired, they can be set here
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+      </source>
+    </software>
+    <!--
+      Items below this line are rarely configured
+    -->
+
+    <!--
+      This section defines the contents of the boot_archive
+    -->
+    <software name="ba-init" type="CPIO">
+      <destination>
+        <dir path="{BOOT_ARCHIVE}"/>
+      </destination>
+      <source>
+        <dir path="{PKG_IMAGE_PATH}"/>
+      </source>
+      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+          href="/usr/share/distro_const/boot_archive_contents_x86.xml"/>
+      <software_data action="install">
+        <name>kernel</name>
+        <name>boot</name>
+        <name>platform</name>
+        <name>system</name>
+        <name>lib</name>
+        <name>dev</name>
+        <name>devices</name>
+        <name>usr/lib/devfsadm/linkmod</name>
+        <name>root</name>
+        <name>jack</name>
+        <name>var/svc/manifest</name>
+        <name>var/svc/profile</name>
+        <name>var/sadm</name>
+        <name>etc</name>
+      </software_data>
+      <software_data action="uninstall">
+        <name>etc/gconf</name>
+        <name>etc/brltty</name>
+        <name>etc/gtk-2.0</name>
+        <name>etc/notices</name>
+        <name>var/sadm/pkg</name>
+      </software_data>
+    </software>
+
+    <!--
+      Execution section: This section lists the checkpoints that are run to
+      create an image. The checkpoints listed below are run in order.
+    -->
+    <execution stop_on_error="true">
+      <checkpoint name="transfer-ips-install"
+          desc="Transfer pkg contents from IPS"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="set-ips-attributes"
+          desc="Set post-install IPS attributes"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="pre-pkg-img-mod"
+          desc="Pre package image modification"
+          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
+          checkpoint_class="LiveCDPrePkgImgMod">
+          <!--
+            root user/role password in the image.
+          -->
+          <!--
+            The default hostname for images is 'solaris'.  Setting
+            the hostname here will override the default.
+          -->
+          <kwargs>
+            <arg name="root_password">solaris</arg>
+            <arg name="is_plaintext">true</arg>
+            <!-- uncomment before using
+            <arg name="hostname">hostname</arg>
+            -->
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="ba-init"
+          desc="Boot Archive Initialization"
+          mod_path="solaris_install/transfer/cpio"
+          checkpoint_class="TransferCPIO"/>
+      <checkpoint name="ba-config"
+          desc="Boot Archive Configuration"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
+          checkpoint_class="LiveCDBootArchiveConfigure">
+      </checkpoint>
+      <checkpoint name="ba-arch"
+          desc="Boot Archive Archival"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
+          checkpoint_class="BootArchiveArchive">
+          <!--
+            compression_type/compression_level to be used in compressing the
+            boot_archive. Valid types are gzip and none.
+
+            size_pad increases the amount of free space in the boot_archive
+            at the expense of available memory on the booted system.
+
+            bytes_per_inode is used to control the 'nbpi' used in sizing up
+            the boot_archive
+          -->
+          <kwargs>
+            <arg name="compression_type">gzip</arg>
+            <arg name="compression_level">9</arg>
+            <arg name="size_pad">0</arg>
+            <arg name="bytes_per_inode">0</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="boot-setup"
+          desc="Setup LiveCD boot menu"
+          mod_path="solaris_install/boot/boot"
+          checkpoint_class="LiveCDISOImageBootMenu"/>
+      <checkpoint name="pkg-img-mod"
+          desc="Pkg image area modification"
+          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
+          checkpoint_class="LiveCDPkgImgMod">
+          <!--
+            compression_type controls the compression algorithm to be used in
+            compressing solaris.zlib and solarismisc.zlib. Valid values are
+            gzip and lzma
+          -->
+          <kwargs>
+            <arg name="dist_iso_sort">
+                /usr/share/distro_const/sort/livecd.sort</arg>
+            <arg name="compression_type">lzma</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="create-iso"
+          desc="ISO media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_iso"
+          checkpoint_class="CreateISO">
+      </checkpoint>
+      <checkpoint name="create-usb"
+          desc="USB media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_usb"
+          checkpoint_class="CreateUSB">
+      </checkpoint>
+    </execution>
+
+    <!--
+      SMF service profiles to be applied to the boot_archive.
+      
+      These profiles are applied in the order they are specified.
+    -->
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/generic_limited_net.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/generic.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/livecd.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/ns_files.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+  </distro>
+</dc>
--- a/usr/src/cmd/distro_const/manifest/dc_text_sparc.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd">
-<!--
-  CDDL HEADER START
- 
-  The contents of this file are subject to the terms of the
-  Common Development and Distribution License (the "License").
-  You may not use this file except in compliance with the License.
- 
-  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-  or http://www.opensolaris.org/os/licensing.
-  See the License for the specific language governing permissions
-  and limitations under the License.
- 
-  When distributing Covered Code, include this CDDL HEADER in each
-  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-  If applicable, add the following below this CDDL HEADER, with the
-  fields enclosed by brackets "[]" replaced with your own identifying
-  information: Portions Copyright [yyyy] [name of copyright owner]
- 
-  CDDL HEADER END
- 
-  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
-  XML specification for building an Oracle Solaris installer iso image
--->
-<dc>
-  <!--
-    add_timestamp controls if the iso/usb should have a timestamp
-    appended to it. Useful if the intent is to do serial builds and to keep all
-    the incremental images around
-  -->
-  <distro name="Oracle_Solaris_Text_SPARC" add_timestamp="false">
-  <!-- Uncomment if http_proxy needs to be set
-  <distro name="Oracle_Solaris_Text_SPARC" add_timestamp="false"
-      http_proxy="http://example.com">
-  -->
-
-    <!--
-      Target Section: defines zfs build dataset to be used for the build.
-      Filesystem name should not include the name of the zpool.
-    -->
-    <target name="desired">
-      <logical>
-        <zpool name="rpool" action="use_existing">
-          <filesystem name="dc/text" action="preserve"/>
-        </zpool>
-      </logical>
-    </target>
-
-    <!--
-    Software section: defines the payload for the transfer checkpoints.
-    -->
-    <!--
-      Sofware node names should match a corresponding Execution node
-      checkpoint name.
-
-      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
-      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
-      <ZFS Dataset>/build_data/boot_archive, respectively.
-    -->
-    <software name="transfer-ips-install" type="IPS">
-      <destination>
-        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-            href="/usr/share/distro_const/lang_facets.xml"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-          <!--
-            If mirrors for this publisher need to be set, specify them here.
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-        <!--
-          If additional publishers need to be set, they can be set here
-        -->
-        <!-- Uncomment before using
-        <publisher name="solaris">
-          <origin name="http://example.com"></origin>
-          <mirror name="mirror1.example.com"></mirror>
-          <mirror name="mirror2.example.com"></mirror>
-        </publisher>
-        -->
-      </source>
-      <!--
-        List of packages used to form the installed image
-         
-        By default the latest build available in the specified
-        IPS repository is installed. If another build is required,
-        the build number has to be appended to the 'entire' package
-        in the following form:
-
-        <name>pkg:/[email protected]#</name>
-      -->
-      <software_data action="install">
-        <name>pkg:/entire</name>
-        <name>pkg:/group/system/solaris-large-server</name>
-        <name>pkg:/system/install/text-install</name>
-        <name>pkg:/system/install/media/internal</name>
-      </software_data>
-    </software>
-    <!--
-      The default publisher to be set on the system after it has been installed.
-    -->
-    <software name="set-ips-attributes" type="IPS">
-      <destination>
-        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release/"/>
-          <!-- 
-            If mirrors for this publisher are desired, they can be set here
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-      </source>
-    </software>
-    <!--
-      Items below this line are rarely configured
-    -->
-    <!--
-     This section defines the contents of the boot_archive
-    -->
-    <software name="ba-init" type="CPIO">
-      <destination>
-        <dir path="{BOOT_ARCHIVE}"/>
-      </destination>
-      <source>
-        <dir path="{PKG_IMAGE_PATH}"/>
-      </source>
-      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-          href="/usr/share/distro_const/boot_archive_contents_sparc.xml"/>
-      <software_data action="install">
-        <name>kernel</name>
-        <name>boot</name>
-        <name>platform</name>
-        <name>system</name>
-        <name>lib</name>
-        <name>dev</name>
-        <name>devices</name>
-        <name>root</name>
-        <name>jack</name>
-        <name>etc</name>
-        <name>usr/sbin/ibd_delete_link</name>
-        <name>usr/sbin/ibd_upgrade</name>
-        <name>var/svc/manifest</name>
-        <name>var/svc/profile</name>
-        <name>var/sadm</name>
-      </software_data>
-    </software>
-    <!--
-      Execution section: This section lists the checkpoints
-      that are run to create an image. The checkpoints
-      listed below are run in order.
-    -->
-    <execution stop_on_error="true">
-      <checkpoint name="transfer-ips-install"
-          desc="Transfer pkg contents from IPS"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="set-ips-attributes"
-          desc="Set post-install IPS attributes"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="pre-pkg-img-mod"
-          desc="Pre package image modification"
-          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
-          checkpoint_class="TextPrePkgImgMod">
-          <!--
-            root user/role password in the image.
-          -->
-          <kwargs>
-          <!--
-            The default hostname for images is 'solaris'.  Setting
-            the hostname here will override the default.
-          -->
-            <arg name="root_password">solaris</arg>
-            <arg name="is_plaintext">true</arg>
-             <!-- uncomment before using
-             <arg name="hostname">hostname</arg>
-             -->
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="ba-init"
-          desc="Boot Archive Initialization"
-          mod_path="solaris_install/transfer/cpio"
-          checkpoint_class="TransferCPIO"/>
-      <checkpoint name="ba-config"
-          desc="Boot Archive Configuration"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
-          checkpoint_class="TextBootArchiveConfigure">
-      </checkpoint>
-      <checkpoint name="ba-arch"
-          desc="Boot Archive Archival"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
-          checkpoint_class="BootArchiveArchive">
-          <!--
-            size_pad increases the amount of free space in the boot_archive
-            at the expense of available memory on the booted system.
-
-            bytes_per_inode is used to control the 'nbpi' used in sizing up
-            the boot_archive
-          -->
-          <kwargs>
-            <arg name="size_pad">0</arg>
-            <arg name="bytes_per_inode">0</arg>
-            <arglist name="uncompressed_files">
-              <argitem>etc/svc/repository.db</argitem>
-              <argitem>etc/name_to_major</argitem>
-              <argitem>etc/minor_perm</argitem>
-              <argitem>etc/driver_aliases</argitem>
-              <argitem>etc/driver_classes</argitem>
-              <argitem>etc/path_to_inst</argitem>
-              <argitem>etc/default/init</argitem>
-              <argitem>etc/nsswitch.conf</argitem>
-            </arglist>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="pkg-img-mod"
-          desc="Pkg image area modification"
-          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
-          checkpoint_class="TextPkgImgMod">
-          <!--
-            compression_type controls the compression algorithm to be used in
-            compressing solaris.zlib and solarismisc.zlib. Valid values are
-            gzip and lzma
-          -->
-          <kwargs>
-            <arg name="compression_type">lzma</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="create-iso"
-          desc="ISO media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_iso"
-          checkpoint_class="CreateISO"/>
-    </execution>
-
-    <!--
-      SMF service profiles to be applied to the boot_archive.
-
-      These profiles are applied in the order specified here.
-    -->
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/generic_limited_net.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/generic.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/text.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/ns_files.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-  </distro>
-</dc>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/manifest/dc_text_sparc.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd.@DTD_VERSION_DC@">
+<!--
+  CDDL HEADER START
+ 
+  The contents of this file are subject to the terms of the
+  Common Development and Distribution License (the "License").
+  You may not use this file except in compliance with the License.
+ 
+  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+  or http://www.opensolaris.org/os/licensing.
+  See the License for the specific language governing permissions
+  and limitations under the License.
+ 
+  When distributing Covered Code, include this CDDL HEADER in each
+  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+  If applicable, add the following below this CDDL HEADER, with the
+  fields enclosed by brackets "[]" replaced with your own identifying
+  information: Portions Copyright [yyyy] [name of copyright owner]
+ 
+  CDDL HEADER END
+ 
+  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+  XML specification for building an Oracle Solaris installer iso image
+-->
+<dc>
+  <!--
+    add_timestamp controls if the iso/usb should have a timestamp
+    appended to it. Useful if the intent is to do serial builds and to keep all
+    the incremental images around
+  -->
+  <distro name="Oracle_Solaris_Text_SPARC" add_timestamp="false">
+  <!-- Uncomment if http_proxy needs to be set
+  <distro name="Oracle_Solaris_Text_SPARC" add_timestamp="false"
+      http_proxy="http://example.com">
+  -->
+
+    <!--
+      Target Section: defines zfs build dataset to be used for the build.
+      Filesystem name should not include the name of the zpool.
+    -->
+    <target name="desired">
+      <logical>
+        <zpool name="rpool" action="use_existing">
+          <filesystem name="dc/text" action="preserve"/>
+        </zpool>
+      </logical>
+    </target>
+
+    <!--
+    Software section: defines the payload for the transfer checkpoints.
+    -->
+    <!--
+      Sofware node names should match a corresponding Execution node
+      checkpoint name.
+
+      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
+      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
+      <ZFS Dataset>/build_data/boot_archive, respectively.
+    -->
+    <software name="transfer-ips-install" type="IPS">
+      <destination>
+        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+            href="/usr/share/distro_const/lang_facets.xml"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+          <!--
+            If mirrors for this publisher need to be set, specify them here.
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+        <!--
+          If additional publishers need to be set, they can be set here
+        -->
+        <!-- Uncomment before using
+        <publisher name="solaris">
+          <origin name="http://example.com"></origin>
+          <mirror name="mirror1.example.com"></mirror>
+          <mirror name="mirror2.example.com"></mirror>
+        </publisher>
+        -->
+      </source>
+      <!--
+        List of packages used to form the installed image
+         
+        By default the latest build available in the specified
+        IPS repository is installed. If another build is required,
+        the build number has to be appended to the 'entire' package
+        in the following form:
+
+        <name>pkg:/[email protected]#</name>
+      -->
+      <software_data action="install">
+        <name>pkg:/entire</name>
+        <name>pkg:/group/system/solaris-large-server</name>
+        <name>pkg:/system/install/text-install</name>
+        <name>pkg:/system/install/media/internal</name>
+      </software_data>
+    </software>
+    <!--
+      The default publisher to be set on the system after it has been installed.
+    -->
+    <software name="set-ips-attributes" type="IPS">
+      <destination>
+        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release/"/>
+          <!-- 
+            If mirrors for this publisher are desired, they can be set here
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+      </source>
+    </software>
+    <!--
+      Items below this line are rarely configured
+    -->
+    <!--
+     This section defines the contents of the boot_archive
+    -->
+    <software name="ba-init" type="CPIO">
+      <destination>
+        <dir path="{BOOT_ARCHIVE}"/>
+      </destination>
+      <source>
+        <dir path="{PKG_IMAGE_PATH}"/>
+      </source>
+      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+          href="/usr/share/distro_const/boot_archive_contents_sparc.xml"/>
+      <software_data action="install">
+        <name>kernel</name>
+        <name>boot</name>
+        <name>platform</name>
+        <name>system</name>
+        <name>lib</name>
+        <name>dev</name>
+        <name>devices</name>
+        <name>root</name>
+        <name>jack</name>
+        <name>etc</name>
+        <name>usr/sbin/ibd_delete_link</name>
+        <name>usr/sbin/ibd_upgrade</name>
+        <name>var/svc/manifest</name>
+        <name>var/svc/profile</name>
+        <name>var/sadm</name>
+      </software_data>
+    </software>
+    <!--
+      Execution section: This section lists the checkpoints
+      that are run to create an image. The checkpoints
+      listed below are run in order.
+    -->
+    <execution stop_on_error="true">
+      <checkpoint name="transfer-ips-install"
+          desc="Transfer pkg contents from IPS"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="set-ips-attributes"
+          desc="Set post-install IPS attributes"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="pre-pkg-img-mod"
+          desc="Pre package image modification"
+          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
+          checkpoint_class="TextPrePkgImgMod">
+          <!--
+            root user/role password in the image.
+          -->
+          <kwargs>
+          <!--
+            The default hostname for images is 'solaris'.  Setting
+            the hostname here will override the default.
+          -->
+            <arg name="root_password">solaris</arg>
+            <arg name="is_plaintext">true</arg>
+             <!-- uncomment before using
+             <arg name="hostname">hostname</arg>
+             -->
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="ba-init"
+          desc="Boot Archive Initialization"
+          mod_path="solaris_install/transfer/cpio"
+          checkpoint_class="TransferCPIO"/>
+      <checkpoint name="ba-config"
+          desc="Boot Archive Configuration"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
+          checkpoint_class="TextBootArchiveConfigure">
+      </checkpoint>
+      <checkpoint name="ba-arch"
+          desc="Boot Archive Archival"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
+          checkpoint_class="BootArchiveArchive">
+          <!--
+            size_pad increases the amount of free space in the boot_archive
+            at the expense of available memory on the booted system.
+
+            bytes_per_inode is used to control the 'nbpi' used in sizing up
+            the boot_archive
+          -->
+          <kwargs>
+            <arg name="size_pad">0</arg>
+            <arg name="bytes_per_inode">0</arg>
+            <arglist name="uncompressed_files">
+              <argitem>etc/svc/repository.db</argitem>
+              <argitem>etc/name_to_major</argitem>
+              <argitem>etc/minor_perm</argitem>
+              <argitem>etc/driver_aliases</argitem>
+              <argitem>etc/driver_classes</argitem>
+              <argitem>etc/path_to_inst</argitem>
+              <argitem>etc/default/init</argitem>
+              <argitem>etc/nsswitch.conf</argitem>
+            </arglist>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="pkg-img-mod"
+          desc="Pkg image area modification"
+          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
+          checkpoint_class="TextPkgImgMod">
+          <!--
+            compression_type controls the compression algorithm to be used in
+            compressing solaris.zlib and solarismisc.zlib. Valid values are
+            gzip and lzma
+          -->
+          <kwargs>
+            <arg name="compression_type">lzma</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="create-iso"
+          desc="ISO media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_iso"
+          checkpoint_class="CreateISO"/>
+    </execution>
+
+    <!--
+      SMF service profiles to be applied to the boot_archive.
+
+      These profiles are applied in the order specified here.
+    -->
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/generic_limited_net.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/generic.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/text.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/ns_files.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+  </distro>
+</dc>
--- a/usr/src/cmd/distro_const/manifest/dc_text_x86.xml	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,338 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd">
-<!--
-  CDDL HEADER START
-
-  The contents of this file are subject to the terms of the
-  Common Development and Distribution License (the "License").
-  You may not use this file except in compliance with the License.
-
-  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-  or http://www.opensolaris.org/os/licensing.
-  See the License for the specific language governing permissions
-  and limitations under the License.
-
-  When distributing Covered Code, include this CDDL HEADER in each
-  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-  If applicable, add the following below this CDDL HEADER, with the
-  fields enclosed by brackets "[]" replaced with your own identifying
-  information: Portions Copyright [yyyy] [name of copyright owner]
-
-  CDDL HEADER END
-
-  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
-  XML specification for building an Oracle Solaris installer iso image
--->
-<dc>
-  <!--
-    add_timestamp controls if the iso/usb should
-    have a timestamp appended to it. Useful if the intent
-    is to do serial builds and to keep all the incremental
-    images around
-  -->
-  <distro name="Oracle_Solaris_Text_X86" add_timestamp="false">
-  <!-- Uncomment if http_proxy needs to be set
-  <distro name="Oracle_Solaris_Text_X86" add_timestamp="false"
-      http_proxy="http://example.com">
-  -->
-    <distro_spec>
-      <img_params>
-        <media_im>
-          <!--
-            Boot menu modifications to be applied to the image.
-
-            Optional attributes that can be specified here are:
-            title   - title for the specialized boot entry
-                      Default is to use the first line of /etc/release
-
-            timeout - boot loader timeout value before the default boot entry
-                      is automatically activated.
-          -->
-          <!-- Uncomment before using
-          <boot_mods title="myentry" timeout="5">
-          -->
-            <!--
-              Boot entries to add to the default boot menu in the image. Each
-              entry is either prepended or appended sequentially to the boot
-              menu in order of listing based on each boot entry element's
-              "insert_at" attribute value ("start" or "end").
-
-              Optional attributes:
-              default_entry - If the boot_entry has this attribute set to
-                              "true" then it will be the default boot entry
-                              activated by the boot loader.
-                              Note that if more than one boot entry has this
-                              attribute set to "true", the last entry defined
-                              as such will override preceeding default
-                              boot_entry elements set to "true".
-
-              insert_at     - Optional attribute indicating the desired
-                              insertion point relative to the existing list of
-                              boot entries.
-                              Valid values are "start" or "end" only. If
-                              omitted the default action is to append the entry
-                              to the end of the list.
-
-              Required sub-elements:
-              title_suffix  - Text string appended to this specific entry's
-                              title.
-
-              Optional sub-elements:
-              kernel_args   - Optional kernel arguments passed to the kernel by
-                              the boot loader.
-            -->
-            <!-- Uncomment before using
-            <boot_entry default_entry="false" insert_at="end">
-              <title_suffix>My Title</title_suffix>
-              <kernel_args></kernel_args>
-            </boot_entry>
-            -->
-          <!-- Uncomment before using
-          </boot_mods>
-          -->
-        </media_im>
-      </img_params>
-    </distro_spec>
-    <!--
-      Target Section: defines zfs build dataset to be used for the build.
-      Filesystem name should not include the name of the zpool.
-    -->
-    <target name="desired">
-      <logical>
-        <zpool name="rpool" action="use_existing">
-          <filesystem name="dc/text" action="preserve"/>
-        </zpool>
-      </logical>
-    </target>
-
-    <!--
-      Software section: defines the payload for the transfer checkpoints.
-    -->
-    <!--
-      Sofware node names should match a corresponding Execution node
-      checkpoint name.
-
-      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
-      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
-      <ZFS Dataset>/build_data/boot_archive, respectively.
-    -->
-    <software name="transfer-ips-install" type="IPS">
-      <destination>
-        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-            href="/usr/share/distro_const/lang_facets.xml"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release"/>
-          <!--
-            If mirrors for this publisher need to be set, specify them here.
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-        <!--
-          If additional publishers need to be set, they can be set here
-        -->
-        <!-- Uncomment before using
-        <publisher name="solaris">
-          <origin name="http://example.com"></origin>
-          <mirror name="mirror1.example.com"></mirror>
-          <mirror name="mirror2.example.com"></mirror>
-        </publisher>
-        -->
-      </source>
-      <!--
-        List of packages used to form the installed image
-         
-        By default the latest build available in the specified
-        IPS repository is installed. If another build is required,
-        the build number has to be appended to the 'entire' package
-        in the following form:
-
-        <name>pkg:/[email protected]#</name>
-      -->
-      <software_data action="install">
-        <name>pkg:/entire</name>
-        <name>pkg:/group/system/solaris-large-server</name>
-        <name>pkg:/system/install/text-install</name>
-        <name>pkg:/system/install/media/internal</name>
-      </software_data>
-    </software>
-    <!--
-      The default publisher to be set on the system after it has been installed.
-    -->
-    <software name="set-ips-attributes" type="IPS">
-      <destination>
-        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
-      </destination>
-      <source>
-        <publisher name="solaris">
-          <origin name="http://pkg.oracle.com/solaris/release/"/>
-          <!-- 
-            If mirrors for this publisher are desired, they can be set here
-          -->
-          <!-- Uncomment before using
-          <mirror name="mirror.example.com"></mirror>
-          -->
-        </publisher>
-      </source>
-    </software>
-    <!--
-      Items below this line are rarely configured
-    -->
-    <!--
-      This section defines the contents of the boot_archive
-    -->
-    <software name="ba-init" type="CPIO">
-      <destination>
-        <dir path="{BOOT_ARCHIVE}"/>
-      </destination>
-      <source>
-        <dir path="{PKG_IMAGE_PATH}"/>
-      </source>
-      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
-          href="/usr/share/distro_const/boot_archive_contents_x86.xml"/>
-      <software_data action="install">
-        <name>kernel</name>
-        <name>boot</name>
-        <name>platform</name>
-        <name>system</name>
-        <name>lib</name>
-        <name>dev</name>
-        <name>devices</name>
-        <name>usr/lib/devfsadm/linkmod</name>
-        <name>root</name>
-        <name>jack</name>
-        <name>usr/sbin/ibd_delete_link</name>
-        <name>usr/sbin/ibd_upgrade</name>
-        <name>var/svc/manifest</name>
-        <name>var/svc/profile</name>
-        <name>var/sadm</name>
-        <name>etc</name>
-      </software_data>
-      <software_data action="uninstall">
-        <name>etc/gconf</name>
-        <name>etc/brltty</name>
-        <name>etc/gtk-2.0</name>
-        <name>etc/notices</name>
-        <name>var/sadm/pkg</name>
-      </software_data>
-    </software>
-    <!--
-      Execution section: This section lists the checkpoints that are run to
-      create an image. The checkpoints listed below are run in order.
-    -->
-    <execution stop_on_error="true">
-      <checkpoint name="transfer-ips-install"
-          desc="Transfer pkg contents from IPS"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="set-ips-attributes"
-          desc="Set post-install IPS attributes"
-          mod_path="solaris_install/transfer/ips"
-          checkpoint_class="TransferIPS"/>
-      <checkpoint name="pre-pkg-img-mod"
-          desc="Pre package image modification"
-          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
-          checkpoint_class="TextPrePkgImgMod">
-          <!--
-            root user/role password in the image.
-          -->
-          <!--
-            The default hostname for images is 'solaris'.  Setting
-            the hostname here will override the default.
-          -->
-          <kwargs>
-            <arg name="root_password">solaris</arg>
-            <arg name="is_plaintext">true</arg>
-            <!-- uncomment before using
-            <arg name="hostname">hostname</arg>
-            -->
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="ba-init"
-          desc="Boot Archive Initialization"
-          mod_path="solaris_install/transfer/cpio"
-          checkpoint_class="TransferCPIO"/>
-      <checkpoint name="ba-config"
-          desc="Boot Archive Configuration"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
-          checkpoint_class="TextBootArchiveConfigure">
-      </checkpoint>
-      <checkpoint name="ba-arch"
-          desc="Boot Archive Archival"
-          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
-          checkpoint_class="BootArchiveArchive">
-          <!--
-            compression_type/compression_level to be used in compressing the
-            boot_archive. Valid types are gzip and none.
-
-            size_pad increases the amount of free space in the boot_archive
-            at the expense of available memory on the booted system.
-
-            bytes_per_inode is used to control the 'nbpi' used in sizing up the
-            boot_archive
-          -->
-          <kwargs>
-            <arg name="compression_type">gzip</arg>
-            <arg name="compression_level">9</arg>
-            <arg name="size_pad">0</arg>
-            <arg name="bytes_per_inode">0</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="boot-setup"
-          desc="Setup boot menu"
-          mod_path="solaris_install/boot/boot"
-          checkpoint_class="TextISOImageBootMenu"/>
-      <checkpoint name="pkg-img-mod"
-          desc="Pkg image area modification"
-          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
-          checkpoint_class="TextPkgImgMod">
-          <!--
-            compression_type controls the compression algorithm to be used in
-            compressing solaris.zlib and solarismisc.zlib. Valid values are gzip
-            and lzma
-          -->
-          <kwargs>
-            <arg name="dist_iso_sort">
-                /usr/share/distro_const/sort/text_x86.sort</arg>
-            <arg name="compression_type">lzma</arg>
-          </kwargs>
-      </checkpoint>
-      <checkpoint name="create-iso"
-          desc="ISO media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_iso"
-          checkpoint_class="CreateISO">
-      </checkpoint>
-      <checkpoint name="create-usb"
-          desc="USB media creation"
-          mod_path="solaris_install/distro_const/checkpoints/create_usb"
-          checkpoint_class="CreateUSB">
-      </checkpoint>
-    </execution>
-
-    <!--
-      SMF service profiles to be applied to the boot_archive.
-    
-      These profiles are applied in the order they are specified.
-    -->
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-         source="/etc/svc/profile/generic_limited_net.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/generic.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/usr/share/distro_const/profile/text.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-    <configuration name="pre-pkg-img-mod" type="sysconf"
-        source="/etc/svc/profile/ns_files.xml">
-      <validation path="/usr/sbin/svccfg" args="apply -n"/>
-    </configuration>
-  </distro>
-</dc>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/manifest/dc_text_x86.xml.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dc SYSTEM "/usr/share/install/dc.dtd.@DTD_VERSION_DC@">
+<!--
+  CDDL HEADER START
+
+  The contents of this file are subject to the terms of the
+  Common Development and Distribution License (the "License").
+  You may not use this file except in compliance with the License.
+
+  You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+  or http://www.opensolaris.org/os/licensing.
+  See the License for the specific language governing permissions
+  and limitations under the License.
+
+  When distributing Covered Code, include this CDDL HEADER in each
+  file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+  If applicable, add the following below this CDDL HEADER, with the
+  fields enclosed by brackets "[]" replaced with your own identifying
+  information: Portions Copyright [yyyy] [name of copyright owner]
+
+  CDDL HEADER END
+
+  Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+  XML specification for building an Oracle Solaris installer iso image
+-->
+<dc>
+  <!--
+    add_timestamp controls if the iso/usb should
+    have a timestamp appended to it. Useful if the intent
+    is to do serial builds and to keep all the incremental
+    images around
+  -->
+  <distro name="Oracle_Solaris_Text_X86" add_timestamp="false">
+  <!-- Uncomment if http_proxy needs to be set
+  <distro name="Oracle_Solaris_Text_X86" add_timestamp="false"
+      http_proxy="http://example.com">
+  -->
+    <distro_spec>
+      <img_params>
+        <media_im>
+          <!--
+            Boot menu modifications to be applied to the image.
+
+            Optional attributes that can be specified here are:
+            title   - title for the specialized boot entry
+                      Default is to use the first line of /etc/release
+
+            timeout - boot loader timeout value before the default boot entry
+                      is automatically activated.
+          -->
+          <!-- Uncomment before using
+          <boot_mods title="myentry" timeout="5">
+          -->
+            <!--
+              Boot entries to add to the default boot menu in the image. Each
+              entry is either prepended or appended sequentially to the boot
+              menu in order of listing based on each boot entry element's
+              "insert_at" attribute value ("start" or "end").
+
+              Optional attributes:
+              default_entry - If the boot_entry has this attribute set to
+                              "true" then it will be the default boot entry
+                              activated by the boot loader.
+                              Note that if more than one boot entry has this
+                              attribute set to "true", the last entry defined
+                              as such will override preceeding default
+                              boot_entry elements set to "true".
+
+              insert_at     - Optional attribute indicating the desired
+                              insertion point relative to the existing list of
+                              boot entries.
+                              Valid values are "start" or "end" only. If
+                              omitted the default action is to append the entry
+                              to the end of the list.
+
+              Required sub-elements:
+              title_suffix  - Text string appended to this specific entry's
+                              title.
+
+              Optional sub-elements:
+              kernel_args   - Optional kernel arguments passed to the kernel by
+                              the boot loader.
+            -->
+            <!-- Uncomment before using
+            <boot_entry default_entry="false" insert_at="end">
+              <title_suffix>My Title</title_suffix>
+              <kernel_args></kernel_args>
+            </boot_entry>
+            -->
+          <!-- Uncomment before using
+          </boot_mods>
+          -->
+        </media_im>
+      </img_params>
+    </distro_spec>
+    <!--
+      Target Section: defines zfs build dataset to be used for the build.
+      Filesystem name should not include the name of the zpool.
+    -->
+    <target name="desired">
+      <logical>
+        <zpool name="rpool" action="use_existing">
+          <filesystem name="dc/text" action="preserve"/>
+        </zpool>
+      </logical>
+    </target>
+
+    <!--
+      Software section: defines the payload for the transfer checkpoints.
+    -->
+    <!--
+      Sofware node names should match a corresponding Execution node
+      checkpoint name.
+
+      The values of '{PKG_IMAGE_PATH}' and '{BOOT_ARCHIVE}' are replaced by
+      distro_const during execution with <ZFS Dataset>/build_data/pkg_image and
+      <ZFS Dataset>/build_data/boot_archive, respectively.
+    -->
+    <software name="transfer-ips-install" type="IPS">
+      <destination>
+        <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+            href="/usr/share/distro_const/lang_facets.xml"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release"/>
+          <!--
+            If mirrors for this publisher need to be set, specify them here.
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+        <!--
+          If additional publishers need to be set, they can be set here
+        -->
+        <!-- Uncomment before using
+        <publisher name="solaris">
+          <origin name="http://example.com"></origin>
+          <mirror name="mirror1.example.com"></mirror>
+          <mirror name="mirror2.example.com"></mirror>
+        </publisher>
+        -->
+      </source>
+      <!--
+        List of packages used to form the installed image
+         
+        By default the latest build available in the specified
+        IPS repository is installed. If another build is required,
+        the build number has to be appended to the 'entire' package
+        in the following form:
+
+        <name>pkg:/[email protected]#</name>
+      -->
+      <software_data action="install">
+        <name>pkg:/entire</name>
+        <name>pkg:/group/system/solaris-large-server</name>
+        <name>pkg:/system/install/text-install</name>
+        <name>pkg:/system/install/media/internal</name>
+      </software_data>
+    </software>
+    <!--
+      The default publisher to be set on the system after it has been installed.
+    -->
+    <software name="set-ips-attributes" type="IPS">
+      <destination>
+        <image img_root="{PKG_IMAGE_PATH}" action="use_existing"/>
+      </destination>
+      <source>
+        <publisher name="solaris">
+          <origin name="http://pkg.oracle.com/solaris/release/"/>
+          <!-- 
+            If mirrors for this publisher are desired, they can be set here
+          -->
+          <!-- Uncomment before using
+          <mirror name="mirror.example.com"></mirror>
+          -->
+        </publisher>
+      </source>
+    </software>
+    <!--
+      Items below this line are rarely configured
+    -->
+    <!--
+      This section defines the contents of the boot_archive
+    -->
+    <software name="ba-init" type="CPIO">
+      <destination>
+        <dir path="{BOOT_ARCHIVE}"/>
+      </destination>
+      <source>
+        <dir path="{PKG_IMAGE_PATH}"/>
+      </source>
+      <xi:include xmlns:xi="http://www.w3.org/2003/XInclude"
+          href="/usr/share/distro_const/boot_archive_contents_x86.xml"/>
+      <software_data action="install">
+        <name>kernel</name>
+        <name>boot</name>
+        <name>platform</name>
+        <name>system</name>
+        <name>lib</name>
+        <name>dev</name>
+        <name>devices</name>
+        <name>usr/lib/devfsadm/linkmod</name>
+        <name>root</name>
+        <name>jack</name>
+        <name>usr/sbin/ibd_delete_link</name>
+        <name>usr/sbin/ibd_upgrade</name>
+        <name>var/svc/manifest</name>
+        <name>var/svc/profile</name>
+        <name>var/sadm</name>
+        <name>etc</name>
+      </software_data>
+      <software_data action="uninstall">
+        <name>etc/gconf</name>
+        <name>etc/brltty</name>
+        <name>etc/gtk-2.0</name>
+        <name>etc/notices</name>
+        <name>var/sadm/pkg</name>
+      </software_data>
+    </software>
+    <!--
+      Execution section: This section lists the checkpoints that are run to
+      create an image. The checkpoints listed below are run in order.
+    -->
+    <execution stop_on_error="true">
+      <checkpoint name="transfer-ips-install"
+          desc="Transfer pkg contents from IPS"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="set-ips-attributes"
+          desc="Set post-install IPS attributes"
+          mod_path="solaris_install/transfer/ips"
+          checkpoint_class="TransferIPS"/>
+      <checkpoint name="pre-pkg-img-mod"
+          desc="Pre package image modification"
+          mod_path="solaris_install/distro_const/checkpoints/pre_pkg_img_mod"
+          checkpoint_class="TextPrePkgImgMod">
+          <!--
+            root user/role password in the image.
+          -->
+          <!--
+            The default hostname for images is 'solaris'.  Setting
+            the hostname here will override the default.
+          -->
+          <kwargs>
+            <arg name="root_password">solaris</arg>
+            <arg name="is_plaintext">true</arg>
+            <!-- uncomment before using
+            <arg name="hostname">hostname</arg>
+            -->
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="ba-init"
+          desc="Boot Archive Initialization"
+          mod_path="solaris_install/transfer/cpio"
+          checkpoint_class="TransferCPIO"/>
+      <checkpoint name="ba-config"
+          desc="Boot Archive Configuration"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_configure"
+          checkpoint_class="TextBootArchiveConfigure">
+      </checkpoint>
+      <checkpoint name="ba-arch"
+          desc="Boot Archive Archival"
+          mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive"
+          checkpoint_class="BootArchiveArchive">
+          <!--
+            compression_type/compression_level to be used in compressing the
+            boot_archive. Valid types are gzip and none.
+
+            size_pad increases the amount of free space in the boot_archive
+            at the expense of available memory on the booted system.
+
+            bytes_per_inode is used to control the 'nbpi' used in sizing up the
+            boot_archive
+          -->
+          <kwargs>
+            <arg name="compression_type">gzip</arg>
+            <arg name="compression_level">9</arg>
+            <arg name="size_pad">0</arg>
+            <arg name="bytes_per_inode">0</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="boot-setup"
+          desc="Setup boot menu"
+          mod_path="solaris_install/boot/boot"
+          checkpoint_class="TextISOImageBootMenu"/>
+      <checkpoint name="pkg-img-mod"
+          desc="Pkg image area modification"
+          mod_path="solaris_install/distro_const/checkpoints/pkg_img_mod"
+          checkpoint_class="TextPkgImgMod">
+          <!--
+            compression_type controls the compression algorithm to be used in
+            compressing solaris.zlib and solarismisc.zlib. Valid values are gzip
+            and lzma
+          -->
+          <kwargs>
+            <arg name="dist_iso_sort">
+                /usr/share/distro_const/sort/text_x86.sort</arg>
+            <arg name="compression_type">lzma</arg>
+          </kwargs>
+      </checkpoint>
+      <checkpoint name="create-iso"
+          desc="ISO media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_iso"
+          checkpoint_class="CreateISO">
+      </checkpoint>
+      <checkpoint name="create-usb"
+          desc="USB media creation"
+          mod_path="solaris_install/distro_const/checkpoints/create_usb"
+          checkpoint_class="CreateUSB">
+      </checkpoint>
+    </execution>
+
+    <!--
+      SMF service profiles to be applied to the boot_archive.
+    
+      These profiles are applied in the order they are specified.
+    -->
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+         source="/etc/svc/profile/generic_limited_net.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/generic.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/usr/share/distro_const/profile/text.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+    <configuration name="pre-pkg-img-mod" type="sysconf"
+        source="/etc/svc/profile/ns_files.xml">
+      <validation path="/usr/sbin/svccfg" args="apply -n"/>
+    </configuration>
+  </distro>
+</dc>
--- a/usr/src/cmd/js2ai/modules/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/js2ai/modules/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -30,12 +30,17 @@
 
 MSG_DOMAIN =	../js2ai
 
+SRCPYFILES =	default_xml.py.src
+
+GENERATEDPYFILES =	default_xml.py
+
 PYMODULES=	__init__.py \
 		common.py \
 		conv.py \
 		conv_sysidcfg.py \
 		default_xml.py \
-		ip_address.py
+		ip_address.py \
+		$(GENERATEDPYMODULES)
 
 PYCMODULES=	$(PYMODULES:%.py=%.pyc)
 
@@ -47,10 +52,10 @@
 
 MSGFILES =  $(PYMODULES)
 
-all:		python
+all:		$(GENERATEDPYFILES) python
 
 clean:
-	rm -f $(PYCMODULES)
+	rm -f $(PYCMODULES) $(GENERATEDPYFILES)
 
 clobber: clean
 
@@ -61,6 +66,8 @@
 	$(ROOTPYCMODULES) \
 	.WAIT msgs
 
+$(GENERATEDPYFILES):
+
 python:
 	$(PYTHON) -m compileall -l $(@D)
 
--- a/usr/src/cmd/js2ai/modules/common.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/cmd/js2ai/modules/common.py	Fri Aug 19 08:56:26 2011 -0700
@@ -35,6 +35,7 @@
 import sys
 
 from lxml import etree
+from solaris_install import SYS_AI_MANIFEST_DTD
 from solaris_install.manifest import ManifestError
 from solaris_install.manifest.parser import ManifestParser
 from xml.dom import minidom
@@ -108,7 +109,7 @@
 
 # The ai manifest to merge our changes into
 DEFAULT_AI_FILENAME = "/usr/share/auto_install/manifest/default.xml"
-DEFAULT_AI_DTD_FILENAME = "/usr/share/install/ai.dtd"
+DEFAULT_AI_DTD_FILENAME = SYS_AI_MANIFEST_DTD
 DEFAULT_SC_PROFILE_DTD_FILENAME = "/usr/share/lib/xml/dtd/service_bundle.dtd.1"
 RULES_FILENAME = "rules"
 SYSIDCFG_FILENAME = "sysidcfg"
--- a/usr/src/cmd/js2ai/modules/default_xml.py	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-#!/usr/bin/python2.6
-#
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-#
-"""
-Class to handle activies associated with reading and modifying default xml
-used by the installer
-
-"""
-
-import sys
-
-from common import _
-from common import fetch_xpath_node
-from lxml import etree
-from StringIO import StringIO
-
-DEFAULT_XML_EMPTY = \
-"""<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
-
--->
-<!DOCTYPE auto_install SYSTEM "file:///usr/share/auto_install/ai.dtd">
-<auto_install>
-    <ai_instance>
-        <target/>
-        <software type="IPS"/>
-    </ai_instance>
-</auto_install>
-"""
-
-
-class XMLDefaultData(object):
-    """The default xml data object that all work on the profiles is performed
-    against
-
-    """
-    _tree = None
-    _name = None
-
-    def __init__(self, default_xml_filename):
-        parser = etree.XMLParser()
-        if default_xml_filename is None:
-            self._tree = etree.parse(StringIO(DEFAULT_XML_EMPTY))
-            self._name = "DEFAULT_XML_EMPTY"
-        else:
-            self._tree = etree.parse(default_xml_filename)
-            self._name = default_xml_filename
-
-        if len(parser.error_log) != 0:
-            # We got parsing errors
-            for err in parser.error_log:
-                sys.stderr.write(err)
-
-        xpath = "/auto_install/ai_instance"
-        self._ai_instance = fetch_xpath_node(self._tree, xpath)
-        if self._ai_instance is None:
-            tree = etree.parse(StringIO(DEFAULT_XML_EMPTY))
-            sys.stderr.write(etree.tostring(self._tree, pretty_print=True))
-            expected_layout = etree.tostring(tree, pretty_print=True)
-            raise ValueError(_("<ai_instance> not found: "
-                               "%(filename)s does not conform to the expected "
-                               "layout of:\n\n%(layout)s") %
-                               {"filename": default_xml_filename, \
-                                "layout": expected_layout})
-
-    @property
-    def name(self):
-        """The name for this object.  If the xml tree is derived from a
-        filename, the name will equal that filename.
-
-        """
-        return self._name
-
-    @property
-    def tree(self):
-        """The xml tree that represents this object"""
-        return self._tree
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/js2ai/modules/default_xml.py.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,99 @@
+#!/usr/bin/python2.6
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+#
+"""
+Class to handle activies associated with reading and modifying default xml
+used by the installer
+
+"""
+
+import sys
+
+from common import _
+from common import fetch_xpath_node
+from lxml import etree
+from StringIO import StringIO
+
+DEFAULT_XML_EMPTY = \
+"""<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+
+-->
+<!DOCTYPE auto_install SYSTEM "file:///usr/share/auto_install/ai.dtd.@DTD_VERSION_AI@">
+<auto_install>
+    <ai_instance>
+        <target/>
+        <software type="IPS"/>
+    </ai_instance>
+</auto_install>
+"""
+
+
+class XMLDefaultData(object):
+    """The default xml data object that all work on the profiles is performed
+    against
+
+    """
+    _tree = None
+    _name = None
+
+    def __init__(self, default_xml_filename):
+        parser = etree.XMLParser()
+        if default_xml_filename is None:
+            self._tree = etree.parse(StringIO(DEFAULT_XML_EMPTY))
+            self._name = "DEFAULT_XML_EMPTY"
+        else:
+            self._tree = etree.parse(default_xml_filename)
+            self._name = default_xml_filename
+
+        if len(parser.error_log) != 0:
+            # We got parsing errors
+            for err in parser.error_log:
+                sys.stderr.write(err)
+
+        xpath = "/auto_install/ai_instance"
+        self._ai_instance = fetch_xpath_node(self._tree, xpath)
+        if self._ai_instance is None:
+            tree = etree.parse(StringIO(DEFAULT_XML_EMPTY))
+            sys.stderr.write(etree.tostring(self._tree, pretty_print=True))
+            expected_layout = etree.tostring(tree, pretty_print=True)
+            raise ValueError(_("<ai_instance> not found: "
+                               "%(filename)s does not conform to the expected "
+                               "layout of:\n\n%(layout)s") %
+                               {"filename": default_xml_filename, \
+                                "layout": expected_layout})
+
+    @property
+    def name(self):
+        """The name for this object.  If the xml tree is derived from a
+        filename, the name will equal that filename.
+
+        """
+        return self._name
+
+    @property
+    def tree(self):
+        """The xml tree that represents this object"""
+        return self._tree
--- a/usr/src/lib/install_common/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_common/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -30,14 +30,18 @@
 clobber:=	TARGET=	clobber
 install:=	TARGET=	install
 
-PYMODS =	__init__.py getconsole.py
+SRCPYFILES = __init__.py.src
+
+GENERATEDPYFILES = __init__.py
+
+PYMODS =	$(GENERATEDPYFILES) getconsole.py
 
 PYCMODS=	$(PYMODS:%.py=%.pyc)
 
-CLOBBERFILES = $(PYCMODS)
+CLOBBERFILES = $(GENERATEDPYFILES) $(PYCMODS)
 CLEANFILES = $(CLOBBERFILES)
 
-all:		python
+all:		$(GENERATEDPYFILES) python
 
 install: all .WAIT \
 	$(ROOTPYTHONVENDOR) \
@@ -47,6 +51,9 @@
 
 install_h:
 
+$(GENERATEDPYFILES):
+
+
 python:
 	$(PYTHON) -m compileall -l $(@D)
 
--- a/usr/src/lib/install_common/__init__.py	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,452 +0,0 @@
-#!/usr/bin/python
-# CDDL HEADER START
-#
-# The contents of this file are subject to the terms of the
-# Common Development and Distribution License (the "License").
-# You may not use this file except in compliance with the License.
-#
-# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
-# or http://www.opensolaris.org/os/licensing.
-# See the License for the specific language governing permissions
-# and limitations under the License.
-#
-# When distributing Covered Code, include this CDDL HEADER in each
-# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
-# If applicable, add the following below this CDDL HEADER, with the
-# fields enclosed by brackets "[]" replaced with your own identifying
-# information: Portions Copyright [yyyy] [name of copyright owner]
-#
-# CDDL HEADER END
-#
-
-#
-# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-#
-
-'''Module body for solaris_install package
-
-Classes, functions and variables that are globally useful to install
-technologies should go here.
-
-'''
-
-import errno
-import functools
-import gettext
-import logging
-import os
-import shutil
-import sys
-import subprocess
-
-from collections import namedtuple
-from select import select
-
-from data_object import DataObject
-
-from solaris_install.logger import INSTALL_LOGGER_NAME
-
-
-_ = gettext.translation('AI', '/usr/share/locale', fallback=True).gettext
-
-# Useful common directories and path pieces
-
-# System Temporary Directory - for secure processes
-SYSTEM_TEMP_DIR = '/system/volatile'
-
-# Post-Install Logs Location
-POST_INSTALL_LOGS_DIR = '/var/sadm/system/logs'
-
-# DOC label for entries pertaining to the distribution constructor
-# All 'volatile' entries are stored in DC_LABEL and all 'persistent'
-# entries are stored in DC_PERS_LABEL
-DC_LABEL = "DC specific"
-DC_PERS_LABEL = "DC specific persistent"
-
-# global version number for all of the consumers of the pkg5 API in the source
-# tree
-PKG5_API_VERSION = 66
-
-
-class CalledProcessError(subprocess.CalledProcessError):
-    '''Expansion of subprocess.CalledProcessError that may optionally
-    store a reference to the Popen object that caused the error.
-
-    '''
-    def __init__(self, returncode, cmd, popen=None):
-        super(CalledProcessError, self).__init__(returncode, cmd)
-        self.popen = popen
-
-    def __str__(self):
-        return ("Command '%s' returned unexpected exit status %s" %
-                (self.cmd, self.returncode))
-
-
-class StderrCalledProcessError(CalledProcessError):
-    '''A subprocess generated output to stderr'''
-    def __str__(self):
-        return "Command '%s' generated error output" % self.cmd
-
-
-class _LogBuffer(object):
-    '''Class that reads from a filehandle (given by fileno), buffers
-    the output and dumps to a logger on newlines
-
-    '''
-    def __init__(self, fileno, logger, loglevel, bufsize):
-        '''fileno - File number of the file handle to read from
-        logger - The logger to log to
-        loglevel - The level at which to log
-        bufsize - How much to try and read at any given time
-
-        '''
-        self.fileno = fileno
-        self.logger = logger
-        self.loglevel = loglevel
-        self.bufsize = bufsize
-
-        self._buffer = []
-        self._all = []
-
-    def read_filehandle(self, flush=False):
-        '''Read pending output from the filehandle, and store it in
-        the internal buffer. If the output contains a newline, or
-        flush=True, then flush the internal buffer to the logger
-
-        '''
-        output = os.read(self.fileno, self.bufsize)
-        if "\n" in output or flush:
-            # "Flush" the _LogBuffer's buffer to the logger,
-            # and add the output to the list of all output
-            # captured so far. Trailing newline is stripped,
-            # as it is expected that the logger will *add* one
-            if flush:
-                end_buf, newline, begin_buf = output, '', ''
-            else:
-                end_buf, newline, begin_buf = output.rpartition("\n")
-            self._buffer.append(end_buf)
-            flush_out = "".join(self._buffer)
-
-            log_out = flush_out.strip()
-            if log_out:
-                # Avoid sending blank lines to the logger
-                self.logger.log(self.loglevel, log_out)
-
-            # Keep a record of all output retrieved so far in the
-            # self._all variable, so that the full output
-            # may be retrieved later. (Note that blank lines here are
-            # preserved, in contrast with what is logged)
-            self._all.extend((flush_out, newline))
-            self._buffer = [begin_buf]
-        else:
-            self._buffer.append(output)
-
-    def all_output(self):
-        '''Return all the output retrieved'''
-        self.read_filehandle(flush=True)
-        return "".join(self._all)
-
-
-class Popen(subprocess.Popen):
-    '''Enhanced version of subprocess.Popen with functionality commonly
-    used by install technologies. Functionality that requires blocking until
-    the subprocess completes is contained within the check_call classmethod,
-    which is similar to subprocess.check_call.
-
-    === Usage examples ===
-    The below examples all assume the command to be run is stored
-    in a list named 'cmd', e.g., cmd = ['/usr/bin/ls', '-l', '/tmp']
-
-    * Run a command, raising an exception for non-zero return
-    >>> Popen.check_call(cmd)
-
-    * Run a command, saving all stdout and stderr output
-    >>> ls = Popen.check_call(cmd, stdout=Popen.STORE, stderr=Popen.STORE)
-    >>> print ls.stdout
-    srwxrwxrwx 1 root     root     0 2011-02-14 09:14 dbus-zObU7eocIA
-
-    * Run a command, logging stderr and ignoring stdout
-    >>> mylogger = logging.getLogger('MyLogger')
-    >>> ls = Popen.check_call(cmd, stdout=Popen.DEVNULL, stderr=Popen.STORE,
-                              logger=mylogger)
-
-    * Run a command, logging stderr at the logging.INFO level
-    >>> ls = Popen.check_call(cmd, stdout=Popen.STORE, stderr=Popen.STORE,
-                              logger="MyLogger", stderr_loglevel=logging.INFO)
-
-    * Run a command, triggering an exception if the returncode is
-      anything EXCEPT '4' or '-1'
-    >>> Popen.check_call(cmd, check_result=(-1, 4))
-
-    * Run a command, and trigger an exception if it printed anything
-      to stderr
-    >>> Popen.check_call(cmd, stderr=Popen.PIPE,
-                         check_result=(Popen.STDERR_EMPTY,))
-
-    * Run a command, storing stdout, and ignoring the returncode
-    >>> ls = Popen.check_call(cmd, stdout=Popen.STORE, check_result=Popen.ANY)
-
-    '''
-
-    PIPE = subprocess.PIPE
-    STDOUT = subprocess.STDOUT
-    STORE = object()
-    DEVNULL = object()
-
-    ANY = object()
-    STDERR_EMPTY = object()
-    SUCCESS = (0,)
-
-    LOG_BUFSIZE = 8192
-
-    def __init__(self, args, bufsize=0, executable=None,
-                   stdin=None, stdout=None, stderr=None,
-                   preexec_fn=None, close_fds=False, shell=False,
-                   cwd=None, env=None, universal_newlines=False,
-                   startupinfo=None, creationflags=0):
-        if stdout is Popen.DEVNULL:
-            stdout = open(os.devnull, "w+")
-
-        if stderr is Popen.DEVNULL:
-            stderr = open(os.devnull, "w+")
-
-        if stdin is Popen.DEVNULL:
-            stdin = open(os.devnull, "r+")
-
-        super(Popen, self).__init__(args, bufsize=bufsize,
-                                    executable=executable, stdin=stdin,
-                                    stdout=stdout, stderr=stderr,
-                                    preexec_fn=preexec_fn, close_fds=close_fds,
-                                    shell=shell, cwd=cwd, env=env,
-                                    universal_newlines=universal_newlines,
-                                    startupinfo=startupinfo,
-                                    creationflags=creationflags)
-
-    @classmethod
-    def check_call(cls, args, bufsize=0, executable=None,
-                   stdin=None, stdout=None, stderr=None,
-                   preexec_fn=None, close_fds=False, shell=False,
-                   cwd=None, env=None, universal_newlines=False,
-                   startupinfo=None, creationflags=0, check_result=None,
-                   logger=None, stdout_loglevel=logging.DEBUG,
-                   stderr_loglevel=logging.ERROR):
-        '''solaris_install.Popen.check_call is interface compatible with
-        subprocess.check_call, accepting all the same positional/keyword
-        arguments.
-
-        solaris_install.Popen.check_call will store the output from stdout and
-        stderr if they are set to Popen.STORE. Note that
-        Popen.stdout and Popen.stderr are replaced with a string -
-        references to filehandles won't be preserved in the manner that a
-        standard use of the Popen class allows.
-
-        logger: If given, the stdout and stderr output from the subprocess
-        will be logged to this logger. (This parameter also accepts a string,
-        which will be passed to logging.getLogger() to retrieve an appropriate
-        logger). One or both of stdout/stderr must be set to Popen.PIPE or
-        Popen.STORE for this functionality to work (a ValueError is raised
-        if that is not the case). See also stdout_loglevel and stderr_loglevel
-
-        stdout_loglevel and stderr_loglevel: If the stdout/stderr output
-        from the subprocess are logged as a result of logger being set,
-        the output will be logged at the specified log level. Defaults are:
-            stdout_loglevel: logging.DEBUG
-            stderr_loglevel: logging.ERROR
-
-        check_result: If specified, should be an iterable of all "acceptable"
-        values for the return code of the process. If the subprocess' return
-        code is not one of the given values, then a CalledProcessError
-        will be raised upon command completion. In addition to integer values,
-        the special value solaris_install.Popen.STDERR_EMPTY may be
-        included; if it is, then the subprocess will be considered to have
-        exited unsuccessfully (and a CalledProcessError raised) if there
-        was any output to stderr. Note that stderr must be set to
-        Popen.STORE for this to be successful. By default, any non-zero
-        returncodes are considered errors.
-
-        Setting check_result=Popen.ANY causes this function to mimic
-        subprocess.call (that is, the returncode will be ignored and the
-        caller is expected to ensure that appropriate behavior occurred)
-
-        '''
-        if check_result is None:
-            check_result = Popen.SUCCESS
-
-        # While Popen.STORE is essentially identical to Popen.PIPE currently,
-        # the separate Popen.STORE parameter is preserved in case the
-        # functionality diverges in the future. Consumers should use
-        # Popen.STORE to ensure forwards-compatibility.
-        if stdout is Popen.STORE:
-            stdout = Popen.PIPE
-
-        if stderr is Popen.STORE:
-            stderr = Popen.PIPE
-
-        if logger is not None:
-            if stderr is not Popen.PIPE and stdout is not Popen.PIPE:
-                raise ValueError("'logger' argument requires one or both "
-                                 "of stdout/stderr to be set to PIPE or "
-                                 "STORE")
-            if isinstance(logger, basestring):
-                logger = logging.getLogger(logger)
-            if logger.isEnabledFor(stdout_loglevel):
-                logger.log(stdout_loglevel, "Executing: %s", args)
-
-        popen = cls(args, bufsize=bufsize,
-                    executable=executable, stdin=stdin,
-                    stdout=stdout, stderr=stderr,
-                    preexec_fn=preexec_fn, close_fds=close_fds,
-                    shell=shell, cwd=cwd, env=env,
-                    universal_newlines=universal_newlines,
-                    startupinfo=startupinfo,
-                    creationflags=creationflags)
-
-        if logger is None:
-            # Simple case - capture all output, and replace the
-            # Popen.stdout/stderr filehandles with the actual output
-            output = popen.communicate()
-            popen.stdout, popen.stderr = output
-        else:
-            if bufsize > 1:
-                log_bufsize = bufsize
-            else:
-                log_bufsize = Popen.LOG_BUFSIZE
-            popen.stdout, popen.stderr = popen._log(logger, log_bufsize,
-                                                    stdout_loglevel,
-                                                    stderr_loglevel)
-        if check_result is Popen.ANY:
-            return popen
-        if popen.returncode not in check_result:
-            raise CalledProcessError(popen.returncode, args, popen)
-        if popen.stderr and popen.STDERR_EMPTY in check_result:
-            raise StderrCalledProcessError(popen.returncode, args, popen)
-
-        return popen
-
-    def _log(self, logger, bufsize, stdout_loglevel, stderr_loglevel):
-        '''Poll the stdout/stderr pipes for output, occasionally
-        dumping that output to the log.
-
-        While the subprocess is running, the filehandles are checked (using
-        select) for any pending output. The output is stored in memory,
-        until a newline is found, at which point it's passed to the
-        logger. (see _LogBuffer class, above)
-
-        Additionally, all output is stored. This function returns a tuple
-        of (stdout, stderr), like Popen.communicate()
-
-        '''
-        select_from = []
-        if self.stdout:
-            stdout_logbuffer = _LogBuffer(self.stdout.fileno(), logger,
-                                          stdout_loglevel, bufsize)
-            select_from.append(self.stdout.fileno())
-        else:
-            stdout_logbuffer = None
-        if self.stderr:
-            stderr_logbuffer = _LogBuffer(self.stderr.fileno(), logger,
-                                          stderr_loglevel, bufsize)
-            select_from.append(self.stderr.fileno())
-        else:
-            stderr_logbuffer = None
-
-        while self.poll() is None:
-            ready = select(select_from, [], [], 0.25)[0]
-            if stdout_logbuffer and stdout_logbuffer.fileno in ready:
-                stdout_logbuffer.read_filehandle()
-            if stderr_logbuffer and stderr_logbuffer.fileno in ready:
-                stderr_logbuffer.read_filehandle()
-
-        if stdout_logbuffer:
-            stdout = stdout_logbuffer.all_output()
-        else:
-            stdout = None
-        if stderr_logbuffer:
-            stderr = stderr_logbuffer.all_output()
-        else:
-            stderr = None
-        return stdout, stderr
-
-
-# create a functools.partial object to represent common invocations of Popen.
-#
-# usage:
-# from solaris_install import run, run_slient
-# cmd = [my command]
-# p = run(cmd)   # p.stdout and p.stderr are available as normal
-# runsilent(cmd)  # p.stdout and p.stderr are set to /dev/null
-
-run = functools.partial(Popen.check_call, stdout=Popen.STORE,
-                        stderr=Popen.STORE, stderr_loglevel=logging.DEBUG,
-                        logger=INSTALL_LOGGER_NAME)
-run_silent = functools.partial(Popen.check_call, stdout=Popen.DEVNULL,
-                               stderr=Popen.DEVNULL)
-
-
-class ApplicationData(DataObject):
-    """Application Data class
-
-    Provides a location for CUD applications to store application specific data
-    that checkpoints, etc. may require access to.
-
-    Currently stores:
-    - Application Name
-    - Work Directory, defaulting to /system/volatile
-    """
-
-    def __init__(self, application_name, work_dir="/system/volatile/"):
-        super(ApplicationData, self).__init__(application_name)
-
-        self._application_name = application_name
-        self._work_dir = work_dir
-        self.data_dict = dict()
-
-    @property
-    def application_name(self):
-        """Read-only Application Name - set at initialisation"""
-        return self._application_name
-
-    @property
-    def work_dir(self):
-        """Read-only Work Directory - set at initialisation"""
-        return self._work_dir
-
-    # Implement no-op XML methods
-    def to_xml(self):
-        return None
-
-    @classmethod
-    def can_handle(cls, element):
-        return False
-
-    @classmethod
-    def from_xml(cls, element):
-        return None
-
-
-# Utility methods to generate paths given files
-def system_temp_path(file=None):
-    ''' Return System Temporary Directory, with file string appended'''
-    if file is not None:
-        return os.path.sep.join([SYSTEM_TEMP_DIR, file])
-    else:
-        return SYSTEM_TEMP_DIR
-
-
-def post_install_logs_path(file=None):
-    ''' Return Post-Install Logs Directory, with file string appended'''
-    if file is not None:
-        return os.path.sep.join([POST_INSTALL_LOGS_DIR, file])
-    else:
-        return POST_INSTALL_LOGS_DIR
-
-
-def force_delete(path):
-    try:
-        if os.path.isdir(path) and not os.path.islink(path):
-            shutil.rmtree(path)
-        else:
-            os.remove(path)
-    except (IOError, OSError) as err:
-        if getattr(err, "errno", None) != errno.ENOENT:
-            raise
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/install_common/__init__.py.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,472 @@
+#!/usr/bin/python
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+#
+
+'''Module body for solaris_install package
+
+Classes, functions and variables that are globally useful to install
+technologies should go here.
+
+'''
+
+import errno
+import functools
+import gettext
+import logging
+import os
+import re
+import shutil
+import sys
+import subprocess
+
+from collections import namedtuple
+from select import select
+
+from data_object import DataObject
+
+from solaris_install.logger import INSTALL_LOGGER_NAME
+
+
+_ = gettext.translation('AI', '/usr/share/locale', fallback=True).gettext
+
+# Useful common directories and path pieces
+
+# System Temporary Directory - for secure processes
+SYSTEM_TEMP_DIR = '/system/volatile'
+
+# Post-Install Logs Location
+POST_INSTALL_LOGS_DIR = '/var/sadm/system/logs'
+
+# DOC label for entries pertaining to the distribution constructor
+# All 'volatile' entries are stored in DC_LABEL and all 'persistent'
+# entries are stored in DC_PERS_LABEL
+DC_LABEL = "DC specific"
+DC_PERS_LABEL = "DC specific persistent"
+
+# Path to AI_DTD
+IMG_AI_MANIFEST_PATH = "auto_install"
+IMG_AI_MANIFEST_DTD = os.path.join(IMG_AI_MANIFEST_PATH ,
+                                   "ai.dtd.@DTD_VERSION_AI@")
+SYS_AI_MANIFEST_DTD = "/usr/share/install/ai.dtd.@DTD_VERSION_AI@"
+
+# global version number for all of the consumers of the pkg5 API in the source
+# tree
+PKG5_API_VERSION = 66
+
+# Reg-exp to match that a given string would be a valid DTD path for Install
+DTD_PATH_RE = ".*\.dtd\.\d+$"
+__dtd_path_regexp = re.compile(DTD_PATH_RE)
+
+
+class CalledProcessError(subprocess.CalledProcessError):
+    '''Expansion of subprocess.CalledProcessError that may optionally
+    store a reference to the Popen object that caused the error.
+
+    '''
+    def __init__(self, returncode, cmd, popen=None):
+        super(CalledProcessError, self).__init__(returncode, cmd)
+        self.popen = popen
+
+    def __str__(self):
+        return ("Command '%s' returned unexpected exit status %s" %
+                (self.cmd, self.returncode))
+
+
+class StderrCalledProcessError(CalledProcessError):
+    '''A subprocess generated output to stderr'''
+    def __str__(self):
+        return "Command '%s' generated error output" % self.cmd
+
+
+class _LogBuffer(object):
+    '''Class that reads from a filehandle (given by fileno), buffers
+    the output and dumps to a logger on newlines
+
+    '''
+    def __init__(self, fileno, logger, loglevel, bufsize):
+        '''fileno - File number of the file handle to read from
+        logger - The logger to log to
+        loglevel - The level at which to log
+        bufsize - How much to try and read at any given time
+
+        '''
+        self.fileno = fileno
+        self.logger = logger
+        self.loglevel = loglevel
+        self.bufsize = bufsize
+
+        self._buffer = []
+        self._all = []
+
+    def read_filehandle(self, flush=False):
+        '''Read pending output from the filehandle, and store it in
+        the internal buffer. If the output contains a newline, or
+        flush=True, then flush the internal buffer to the logger
+
+        '''
+        output = os.read(self.fileno, self.bufsize)
+        if "\n" in output or flush:
+            # "Flush" the _LogBuffer's buffer to the logger,
+            # and add the output to the list of all output
+            # captured so far. Trailing newline is stripped,
+            # as it is expected that the logger will *add* one
+            if flush:
+                end_buf, newline, begin_buf = output, '', ''
+            else:
+                end_buf, newline, begin_buf = output.rpartition("\n")
+            self._buffer.append(end_buf)
+            flush_out = "".join(self._buffer)
+
+            log_out = flush_out.strip()
+            if log_out:
+                # Avoid sending blank lines to the logger
+                self.logger.log(self.loglevel, log_out)
+
+            # Keep a record of all output retrieved so far in the
+            # self._all variable, so that the full output
+            # may be retrieved later. (Note that blank lines here are
+            # preserved, in contrast with what is logged)
+            self._all.extend((flush_out, newline))
+            self._buffer = [begin_buf]
+        else:
+            self._buffer.append(output)
+
+    def all_output(self):
+        '''Return all the output retrieved'''
+        self.read_filehandle(flush=True)
+        return "".join(self._all)
+
+
+class Popen(subprocess.Popen):
+    '''Enhanced version of subprocess.Popen with functionality commonly
+    used by install technologies. Functionality that requires blocking until
+    the subprocess completes is contained within the check_call classmethod,
+    which is similar to subprocess.check_call.
+
+    === Usage examples ===
+    The below examples all assume the command to be run is stored
+    in a list named 'cmd', e.g., cmd = ['/usr/bin/ls', '-l', '/tmp']
+
+    * Run a command, raising an exception for non-zero return
+    >>> Popen.check_call(cmd)
+
+    * Run a command, saving all stdout and stderr output
+    >>> ls = Popen.check_call(cmd, stdout=Popen.STORE, stderr=Popen.STORE)
+    >>> print ls.stdout
+    srwxrwxrwx 1 root     root     0 2011-02-14 09:14 dbus-zObU7eocIA
+
+    * Run a command, logging stderr and ignoring stdout
+    >>> mylogger = logging.getLogger('MyLogger')
+    >>> ls = Popen.check_call(cmd, stdout=Popen.DEVNULL, stderr=Popen.STORE,
+                              logger=mylogger)
+
+    * Run a command, logging stderr at the logging.INFO level
+    >>> ls = Popen.check_call(cmd, stdout=Popen.STORE, stderr=Popen.STORE,
+                              logger="MyLogger", stderr_loglevel=logging.INFO)
+
+    * Run a command, triggering an exception if the returncode is
+      anything EXCEPT '4' or '-1'
+    >>> Popen.check_call(cmd, check_result=(-1, 4))
+
+    * Run a command, and trigger an exception if it printed anything
+      to stderr
+    >>> Popen.check_call(cmd, stderr=Popen.PIPE,
+                         check_result=(Popen.STDERR_EMPTY,))
+
+    * Run a command, storing stdout, and ignoring the returncode
+    >>> ls = Popen.check_call(cmd, stdout=Popen.STORE, check_result=Popen.ANY)
+
+    '''
+
+    PIPE = subprocess.PIPE
+    STDOUT = subprocess.STDOUT
+    STORE = object()
+    DEVNULL = object()
+
+    ANY = object()
+    STDERR_EMPTY = object()
+    SUCCESS = (0,)
+
+    LOG_BUFSIZE = 8192
+
+    def __init__(self, args, bufsize=0, executable=None,
+                   stdin=None, stdout=None, stderr=None,
+                   preexec_fn=None, close_fds=False, shell=False,
+                   cwd=None, env=None, universal_newlines=False,
+                   startupinfo=None, creationflags=0):
+        if stdout is Popen.DEVNULL:
+            stdout = open(os.devnull, "w+")
+
+        if stderr is Popen.DEVNULL:
+            stderr = open(os.devnull, "w+")
+
+        if stdin is Popen.DEVNULL:
+            stdin = open(os.devnull, "r+")
+
+        super(Popen, self).__init__(args, bufsize=bufsize,
+                                    executable=executable, stdin=stdin,
+                                    stdout=stdout, stderr=stderr,
+                                    preexec_fn=preexec_fn, close_fds=close_fds,
+                                    shell=shell, cwd=cwd, env=env,
+                                    universal_newlines=universal_newlines,
+                                    startupinfo=startupinfo,
+                                    creationflags=creationflags)
+
+    @classmethod
+    def check_call(cls, args, bufsize=0, executable=None,
+                   stdin=None, stdout=None, stderr=None,
+                   preexec_fn=None, close_fds=False, shell=False,
+                   cwd=None, env=None, universal_newlines=False,
+                   startupinfo=None, creationflags=0, check_result=None,
+                   logger=None, stdout_loglevel=logging.DEBUG,
+                   stderr_loglevel=logging.ERROR):
+        '''solaris_install.Popen.check_call is interface compatible with
+        subprocess.check_call, accepting all the same positional/keyword
+        arguments.
+
+        solaris_install.Popen.check_call will store the output from stdout and
+        stderr if they are set to Popen.STORE. Note that
+        Popen.stdout and Popen.stderr are replaced with a string -
+        references to filehandles won't be preserved in the manner that a
+        standard use of the Popen class allows.
+
+        logger: If given, the stdout and stderr output from the subprocess
+        will be logged to this logger. (This parameter also accepts a string,
+        which will be passed to logging.getLogger() to retrieve an appropriate
+        logger). One or both of stdout/stderr must be set to Popen.PIPE or
+        Popen.STORE for this functionality to work (a ValueError is raised
+        if that is not the case). See also stdout_loglevel and stderr_loglevel
+
+        stdout_loglevel and stderr_loglevel: If the stdout/stderr output
+        from the subprocess are logged as a result of logger being set,
+        the output will be logged at the specified log level. Defaults are:
+            stdout_loglevel: logging.DEBUG
+            stderr_loglevel: logging.ERROR
+
+        check_result: If specified, should be an iterable of all "acceptable"
+        values for the return code of the process. If the subprocess' return
+        code is not one of the given values, then a CalledProcessError
+        will be raised upon command completion. In addition to integer values,
+        the special value solaris_install.Popen.STDERR_EMPTY may be
+        included; if it is, then the subprocess will be considered to have
+        exited unsuccessfully (and a CalledProcessError raised) if there
+        was any output to stderr. Note that stderr must be set to
+        Popen.STORE for this to be successful. By default, any non-zero
+        returncodes are considered errors.
+
+        Setting check_result=Popen.ANY causes this function to mimic
+        subprocess.call (that is, the returncode will be ignored and the
+        caller is expected to ensure that appropriate behavior occurred)
+
+        '''
+        if check_result is None:
+            check_result = Popen.SUCCESS
+
+        # While Popen.STORE is essentially identical to Popen.PIPE currently,
+        # the separate Popen.STORE parameter is preserved in case the
+        # functionality diverges in the future. Consumers should use
+        # Popen.STORE to ensure forwards-compatibility.
+        if stdout is Popen.STORE:
+            stdout = Popen.PIPE
+
+        if stderr is Popen.STORE:
+            stderr = Popen.PIPE
+
+        if logger is not None:
+            if stderr is not Popen.PIPE and stdout is not Popen.PIPE:
+                raise ValueError("'logger' argument requires one or both "
+                                 "of stdout/stderr to be set to PIPE or "
+                                 "STORE")
+            if isinstance(logger, basestring):
+                logger = logging.getLogger(logger)
+            if logger.isEnabledFor(stdout_loglevel):
+                logger.log(stdout_loglevel, "Executing: %s", args)
+
+        popen = cls(args, bufsize=bufsize,
+                    executable=executable, stdin=stdin,
+                    stdout=stdout, stderr=stderr,
+                    preexec_fn=preexec_fn, close_fds=close_fds,
+                    shell=shell, cwd=cwd, env=env,
+                    universal_newlines=universal_newlines,
+                    startupinfo=startupinfo,
+                    creationflags=creationflags)
+
+        if logger is None:
+            # Simple case - capture all output, and replace the
+            # Popen.stdout/stderr filehandles with the actual output
+            output = popen.communicate()
+            popen.stdout, popen.stderr = output
+        else:
+            if bufsize > 1:
+                log_bufsize = bufsize
+            else:
+                log_bufsize = Popen.LOG_BUFSIZE
+            popen.stdout, popen.stderr = popen._log(logger, log_bufsize,
+                                                    stdout_loglevel,
+                                                    stderr_loglevel)
+        if check_result is Popen.ANY:
+            return popen
+        if popen.returncode not in check_result:
+            raise CalledProcessError(popen.returncode, args, popen)
+        if popen.stderr and popen.STDERR_EMPTY in check_result:
+            raise StderrCalledProcessError(popen.returncode, args, popen)
+
+        return popen
+
+    def _log(self, logger, bufsize, stdout_loglevel, stderr_loglevel):
+        '''Poll the stdout/stderr pipes for output, occasionally
+        dumping that output to the log.
+
+        While the subprocess is running, the filehandles are checked (using
+        select) for any pending output. The output is stored in memory,
+        until a newline is found, at which point it's passed to the
+        logger. (see _LogBuffer class, above)
+
+        Additionally, all output is stored. This function returns a tuple
+        of (stdout, stderr), like Popen.communicate()
+
+        '''
+        select_from = []
+        if self.stdout:
+            stdout_logbuffer = _LogBuffer(self.stdout.fileno(), logger,
+                                          stdout_loglevel, bufsize)
+            select_from.append(self.stdout.fileno())
+        else:
+            stdout_logbuffer = None
+        if self.stderr:
+            stderr_logbuffer = _LogBuffer(self.stderr.fileno(), logger,
+                                          stderr_loglevel, bufsize)
+            select_from.append(self.stderr.fileno())
+        else:
+            stderr_logbuffer = None
+
+        while self.poll() is None:
+            ready = select(select_from, [], [], 0.25)[0]
+            if stdout_logbuffer and stdout_logbuffer.fileno in ready:
+                stdout_logbuffer.read_filehandle()
+            if stderr_logbuffer and stderr_logbuffer.fileno in ready:
+                stderr_logbuffer.read_filehandle()
+
+        if stdout_logbuffer:
+            stdout = stdout_logbuffer.all_output()
+        else:
+            stdout = None
+        if stderr_logbuffer:
+            stderr = stderr_logbuffer.all_output()
+        else:
+            stderr = None
+        return stdout, stderr
+
+
+# create a functools.partial object to represent common invocations of Popen.
+#
+# usage:
+# from solaris_install import run, run_slient
+# cmd = [my command]
+# p = run(cmd)   # p.stdout and p.stderr are available as normal
+# runsilent(cmd)  # p.stdout and p.stderr are set to /dev/null
+
+run = functools.partial(Popen.check_call, stdout=Popen.STORE,
+                        stderr=Popen.STORE, stderr_loglevel=logging.DEBUG,
+                        logger=INSTALL_LOGGER_NAME)
+run_silent = functools.partial(Popen.check_call, stdout=Popen.DEVNULL,
+                               stderr=Popen.DEVNULL)
+
+
+class ApplicationData(DataObject):
+    """Application Data class
+
+    Provides a location for CUD applications to store application specific data
+    that checkpoints, etc. may require access to.
+
+    Currently stores:
+    - Application Name
+    - Work Directory, defaulting to /system/volatile
+    """
+
+    def __init__(self, application_name, work_dir="/system/volatile/"):
+        super(ApplicationData, self).__init__(application_name)
+
+        self._application_name = application_name
+        self._work_dir = work_dir
+        self.data_dict = dict()
+
+    @property
+    def application_name(self):
+        """Read-only Application Name - set at initialisation"""
+        return self._application_name
+
+    @property
+    def work_dir(self):
+        """Read-only Work Directory - set at initialisation"""
+        return self._work_dir
+
+    # Implement no-op XML methods
+    def to_xml(self):
+        return None
+
+    @classmethod
+    def can_handle(cls, element):
+        return False
+
+    @classmethod
+    def from_xml(cls, element):
+        return None
+
+
+# Utility methods to generate paths given files
+def system_temp_path(file=None):
+    ''' Return System Temporary Directory, with file string appended'''
+    if file is not None:
+        return os.path.sep.join([SYSTEM_TEMP_DIR, file])
+    else:
+        return SYSTEM_TEMP_DIR
+
+
+def post_install_logs_path(file=None):
+    ''' Return Post-Install Logs Directory, with file string appended'''
+    if file is not None:
+        return os.path.sep.join([POST_INSTALL_LOGS_DIR, file])
+    else:
+        return POST_INSTALL_LOGS_DIR
+
+
+# Other utility methods
+def force_delete(path):
+    '''Delete either a file, a link, or directory and it's sub-tree'''
+    try:
+        if os.path.isdir(path) and not os.path.islink(path):
+            shutil.rmtree(path)
+        else:
+            os.remove(path)
+    except (IOError, OSError) as err:
+        if getattr(err, "errno", None) != errno.ENOENT:
+            raise
+
+
+def path_matches_dtd(path):
+    '''Check if a given path matches the RE for a DTD'''
+    global __dtd_path_regexp
+
+    return __dtd_path_regexp.match(path) is not None
--- a/usr/src/lib/install_common/test/test_install_common.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_common/test/test_install_common.py	Fri Aug 19 08:56:26 2011 -0700
@@ -32,7 +32,8 @@
 import time
 import unittest
 
-from solaris_install import Popen, CalledProcessError, force_delete
+from solaris_install import Popen, CalledProcessError, force_delete, \
+    path_matches_dtd
 
 
 class MockLogger(object):
@@ -312,3 +313,28 @@
             force_delete(path)
         except (OSError, IOError) as err:
             self.fail(err)
+
+
+class TestPathMatches(unittest.TestCase):
+
+    def test_path_matches_dtd(self):
+        '''Check expected behaviour for dtd path regexp'''
+        possible_paths = (
+            ("/usr/share/install/ai.dtd", False),
+            ("/usr/share/install/ai.xxx.1", False),
+            ("/.usr/share/install/ai.xxx.1", False),
+            ("/usr/.share/install/ai.dtd.1", True),
+            ("/usr/share/install/ai.dtd.1", True),
+            ("/usr/share/install/ai.dtd.2", True),
+            ("/usr/share/install/ai.dtd.100", True),
+            ("/usr/share/install/ai.dtd.XX0", False),
+            ("/usr/share/install/ai.dtd.0XX", False))
+
+        for (path, expected) in possible_paths:
+            matched = path_matches_dtd(path)
+            self.assertEqual(matched, expected,
+                "Path match for %s returned %s when expecting %s" %
+                (path, matched, expected))
+
+if __name__ == '__main__':
+    unittest.main()
--- a/usr/src/lib/install_manifest/dtd/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_manifest/dtd/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -31,18 +31,37 @@
 clobber:=      TARGET= clobber
 install:=      TARGET= install
 
-DTD_FILES=	ai.dtd \
+
+DTD_FILES_SRC =	ai.dtd.src \
+	dc.dtd.src 	\
+	media-transfer.dtd.src
+
+DTD_FILES_GEN =	ai.dtd \
+	dc.dtd 	\
+	media-transfer.dtd
+
+DTD_FILES =	$(DTD_FILES_GEN) \
 	boot_mods.dtd \
-	dc.dtd \
 	configuration.dtd \
 	execution.dtd \
 	software.dtd \
-	target.dtd \
-        media-transfer.dtd
+	target.dtd
 
-ROOT_DTD_FILES=	$(DTD_FILES:%=$(ROOTUSRSHAREINSTALL)/%)
+DTD_FILES_VER =	ai.dtd.$(DTD_VERSION_AI) \
+	boot_mods.dtd.$(DTD_VERSION_BOOT_MODS) \
+	dc.dtd.$(DTD_VERSION_DC) \
+	configuration.dtd.$(DTD_VERSION_CONFIGURATION) \
+	execution.dtd.$(DTD_VERSION_EXECUTION) \
+	software.dtd.$(DTD_VERSION_SOFTWARE) \
+	target.dtd.$(DTD_VERSION_TARGET) \
+	media-transfer.dtd.$(DTD_VERSION_MEDIA_TRANSFER)
 
-all:
+CLOBBERFILES = $(DTD_FILES_GEN) $(DTD_FILES_VER)
+CLEANFILES = $(CLOBBERFILES)
+
+ROOT_DTD_FILES=	$(DTD_FILES_VER:%=$(ROOTUSRSHAREINSTALL)/%)
+
+all: $(DTD_FILES_VER)
 
 install_h:
 
@@ -50,8 +69,28 @@
     $(ROOTUSRSHAREINSTALL) \
 	$(ROOT_DTD_FILES)
 
-clean:
+ai.dtd.$(DTD_VERSION_AI): ai.dtd
+	$(RM) -f $@; $(CP) -p $? $@
+
+boot_mods.dtd.$(DTD_VERSION_BOOT_MODS):  boot_mods.dtd
+	$(RM) -f $@; $(CP) -p $? $@
+
+dc.dtd.$(DTD_VERSION_DC):  dc.dtd
+	$(RM) -f $@; $(CP) -p $? $@
+
+configuration.dtd.$(DTD_VERSION_CONFIGURATION): configuration.dtd
+	$(RM) -f $@; $(CP) -p $? $@
 
-clobber:
+execution.dtd.$(DTD_VERSION_EXECUTION):  execution.dtd
+	$(RM) -f $@; $(CP) -p $? $@
+
+software.dtd.$(DTD_VERSION_SOFTWARE):  software.dtd
+	$(RM) -f $@; $(CP) -p $? $@
+
+target.dtd.$(DTD_VERSION_TARGET):  target.dtd
+	$(RM) -f $@; $(CP) -p $? $@
+
+media-transfer.dtd.$(DTD_VERSION_MEDIA_TRANSFER): media-transfer.dtd
+	$(RM) -f $@; $(CP) -p $? $@
 
 include ../../Makefile.targ
--- a/usr/src/lib/install_manifest/dtd/ai.dtd	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
--->
-
-<!ELEMENT auto_install (ai_instance)>
-
-<!ENTITY % target SYSTEM "target.dtd">
-%target;
-
-<!ENTITY % boot_mods SYSTEM "boot_mods.dtd">
-%boot_mods;
-
-<!ENTITY % configuration SYSTEM "configuration.dtd">
-%configuration;
-
-<!ENTITY % software SYSTEM "software.dtd">
-%software;
-
-<!--
-	The source element, if specified, is for post installation changes
-	to the publisher for IPS. The first source element specified
-	will be considered the primary source, all additional sources
-	will be added as secondary sources.
--->
-
-<!ELEMENT ai_instance (boot_mods?, target?, software+, add_drivers?, (configuration*), source*)>
-<!ATTLIST ai_instance name CDATA #IMPLIED>
-<!ATTLIST ai_instance http_proxy CDATA #IMPLIED>
-<!ATTLIST ai_instance auto_reboot (true|false) "false">
-
-<!ELEMENT add_drivers (software*, search_all?)>
-
-<!ELEMENT search_all (source?)>
-<!ATTLIST search_all addall (true|false) "false">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/install_manifest/dtd/ai.dtd.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,54 @@
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+ Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+-->
+
+<!ELEMENT auto_install (ai_instance)>
+
+<!ENTITY % target SYSTEM "target.dtd.@DTD_VERSION_TARGET@">
+%target;
+
+<!ENTITY % boot_mods SYSTEM "boot_mods.dtd.@DTD_VERSION_BOOT_MODS@">
+%boot_mods;
+
+<!ENTITY % configuration SYSTEM "configuration.dtd.@DTD_VERSION_CONFIGURATION@">
+%configuration;
+
+<!ENTITY % software SYSTEM "software.dtd.@DTD_VERSION_SOFTWARE@">
+%software;
+
+<!--
+	The source element, if specified, is for post installation changes
+	to the publisher for IPS. The first source element specified
+	will be considered the primary source, all additional sources
+	will be added as secondary sources.
+-->
+
+<!ELEMENT ai_instance (boot_mods?, target?, software+, add_drivers?, (configuration*), source*)>
+<!ATTLIST ai_instance name CDATA #IMPLIED>
+<!ATTLIST ai_instance http_proxy CDATA #IMPLIED>
+<!ATTLIST ai_instance auto_reboot (true|false) "false">
+
+<!ELEMENT add_drivers (software*, search_all?)>
+
+<!ELEMENT search_all (source?)>
+<!ATTLIST search_all addall (true|false) "false">
--- a/usr/src/lib/install_manifest/dtd/dc.dtd	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-
--->
-
-<!ELEMENT dc (distro)>
-
-<!ENTITY % boot_mods SYSTEM "boot_mods.dtd">
-%boot_mods;
-
-<!ENTITY % target SYSTEM "target.dtd">
-%target;
-
-<!ENTITY % execution SYSTEM "execution.dtd">
-%execution;
-
-<!ENTITY % configuration SYSTEM "configuration.dtd">
-%configuration;
-
-<!ENTITY % software SYSTEM "software.dtd">
-%software;
-
-<!--
-	If no special distro args, then we don't have to have a
-	distro_spec element. We do require target, execution. Software
-	and configuration are optional, although without software
-	we cannot create a media image. The optional software elements
-	are due to the VM image not requiring a software specification.
-	Compression settings are specified as an argument to the 
-	associated execution checkpoint element.
--->
-
-<!ELEMENT distro (distro_spec?, target+, software*, execution, configuration*)>
-<!ATTLIST distro name CDATA #REQUIRED>
-<!ATTLIST distro add_timestamp (true|false) "false">
-<!ATTLIST distro http_proxy CDATA #IMPLIED>
-
-<!ELEMENT distro_spec (img_params*)>
-
-<!ELEMENT img_params (media_im|vm_im)>
-
-<!ELEMENT media_im (boot_mods?, max_size?)>
-
-
-<!--
-	max_size refers to the maximum size an image area can get,
-	if the user wants to define this.
--->
-
-<!ELEMENT max_size (size)>
-
-<!ELEMENT vm_im EMPTY>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/install_manifest/dtd/dc.dtd.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,71 @@
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+ Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+
+-->
+
+<!ELEMENT dc (distro)>
+
+<!ENTITY % boot_mods SYSTEM "boot_mods.dtd.@DTD_VERSION_BOOT_MODS@">
+%boot_mods;
+
+<!ENTITY % target SYSTEM "target.dtd.@DTD_VERSION_TARGET@">
+%target;
+
+<!ENTITY % execution SYSTEM "execution.dtd.@DTD_VERSION_EXECUTION@">
+%execution;
+
+<!ENTITY % configuration SYSTEM "configuration.dtd.@DTD_VERSION_CONFIGURATION@">
+%configuration;
+
+<!ENTITY % software SYSTEM "software.dtd.@DTD_VERSION_SOFTWARE@">
+%software;
+
+<!--
+	If no special distro args, then we don't have to have a
+	distro_spec element. We do require target, execution. Software
+	and configuration are optional, although without software
+	we cannot create a media image. The optional software elements
+	are due to the VM image not requiring a software specification.
+	Compression settings are specified as an argument to the 
+	associated execution checkpoint element.
+-->
+
+<!ELEMENT distro (distro_spec?, target+, software*, execution, configuration*)>
+<!ATTLIST distro name CDATA #REQUIRED>
+<!ATTLIST distro add_timestamp (true|false) "false">
+<!ATTLIST distro http_proxy CDATA #IMPLIED>
+
+<!ELEMENT distro_spec (img_params*)>
+
+<!ELEMENT img_params (media_im|vm_im)>
+
+<!ELEMENT media_im (boot_mods?, max_size?)>
+
+
+<!--
+	max_size refers to the maximum size an image area can get,
+	if the user wants to define this.
+-->
+
+<!ELEMENT max_size (size)>
+
+<!ELEMENT vm_im EMPTY>
--- a/usr/src/lib/install_manifest/dtd/media-transfer.dtd	Fri Aug 19 08:27:41 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-<!--
- CDDL HEADER START
-
- The contents of this file are subject to the terms of the
- Common Development and Distribution License (the "License").
- You may not use this file except in compliance with the License.
-
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
-
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
-
- CDDL HEADER END
-
- Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-
--->
-
-<!--
-DTD used for specifying software information for media transfer
--->
-
-<!ELEMENT media_transfer (media_trans)>
-
-<!ENTITY % software SYSTEM "software.dtd">
-%software;
-
-<!ELEMENT media_trans (software+)>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/lib/install_manifest/dtd/media-transfer.dtd.src	Fri Aug 19 08:56:26 2011 -0700
@@ -0,0 +1,34 @@
+<!--
+ CDDL HEADER START
+
+ The contents of this file are subject to the terms of the
+ Common Development and Distribution License (the "License").
+ You may not use this file except in compliance with the License.
+
+ You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+ or http://www.opensolaris.org/os/licensing.
+ See the License for the specific language governing permissions
+ and limitations under the License.
+
+ When distributing Covered Code, include this CDDL HEADER in each
+ file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+ If applicable, add the following below this CDDL HEADER, with the
+ fields enclosed by brackets "[]" replaced with your own identifying
+ information: Portions Copyright [yyyy] [name of copyright owner]
+
+ CDDL HEADER END
+
+ Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+
+-->
+
+<!--
+DTD used for specifying software information for media transfer
+-->
+
+<!ELEMENT media_transfer (media_trans)>
+
+<!ENTITY % software SYSTEM "software.dtd.@DTD_VERSION_SOFTWARE@">
+%software;
+
+<!ELEMENT media_trans (software+)>
--- a/usr/src/lib/install_manifest_input/test/test_manifest_input_overlay.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_manifest_input/test/test_manifest_input_overlay.py	Fri Aug 19 08:56:26 2011 -0700
@@ -34,7 +34,7 @@
 import solaris_install.manifest_input as milib
 
 from lxml import etree
-from solaris_install import Popen
+from solaris_install import Popen, SYS_AI_MANIFEST_DTD
 from solaris_install.manifest_input.mim import ManifestInput
 
 # Note: Some python strings split across lines have a "+" at the end of their
@@ -50,7 +50,7 @@
     # Provided files.
     ROOT = os.environ["ROOT"]
     BASE_MANIFEST = ROOT + "/usr/share/auto_install/manifest/ai_manifest.xml"
-    SCHEMA = ROOT + "/usr/share/install/ai.dtd"
+    SCHEMA = ROOT + SYS_AI_MANIFEST_DTD
 
     # Created files.
     AIM_MANIFEST_FILE = "/tmp/mim_test.xml"
@@ -281,7 +281,7 @@
         '''
         TestOverlayBCommon.tearDown(self)
         self.destroy_starting_file()
-        
+
     def test_overlay_3(self):
         '''
         Change an attribute of an existing non-leaf element.
--- a/usr/src/lib/install_manifest_input/test/test_manifest_input_pathing.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_manifest_input/test/test_manifest_input_pathing.py	Fri Aug 19 08:56:26 2011 -0700
@@ -30,6 +30,7 @@
 import os
 import unittest
 
+from solaris_install import SYS_AI_MANIFEST_DTD
 import solaris_install.manifest_input.mim as mim
 import solaris_install.manifest_input as milib
 
@@ -83,7 +84,7 @@
         # suite of tests.  Indeed, the above xml file does not match it at all.
         root = os.environ["ROOT"]
         self.mim_obj = mim.ManifestInput("dummy", root +
-                                         "/usr/share/install/ai.dtd")
+                                         SYS_AI_MANIFEST_DTD)
         self.mim_obj.load(self.MIM_TEST_XML_FILENAME)
 
     def tearDown(self):
--- a/usr/src/lib/install_manifest_input/test/test_manifest_input_set_get_add.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_manifest_input/test/test_manifest_input_set_get_add.py	Fri Aug 19 08:56:26 2011 -0700
@@ -32,6 +32,7 @@
 
 import unittest
 import os
+from solaris_install import SYS_AI_MANIFEST_DTD
 import solaris_install.manifest_input.mim as mim
 import solaris_install.manifest_input as milib
 
@@ -51,7 +52,7 @@
 
     MIM_TEST_XML_FILENAME = "/tmp/mim_test.xml"
     AIMANIFEST = ROOT + "/usr/bin/aimanifest"
-    SCHEMA = ROOT + "/usr/share/install/ai.dtd"
+    SCHEMA = ROOT + SYS_AI_MANIFEST_DTD
 
     UNIQUE = True
     INCREMENTAL = True
--- a/usr/src/lib/install_manifest_input/test/test_manifest_input_validate_commit.py	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/lib/install_manifest_input/test/test_manifest_input_validate_commit.py	Fri Aug 19 08:56:26 2011 -0700
@@ -32,6 +32,7 @@
 
 import solaris_install.manifest_input as milib
 
+from solaris_install import SYS_AI_MANIFEST_DTD
 from solaris_install.manifest_input.mim import ManifestInput
 
 # Eventually bring names into convention.
@@ -45,7 +46,7 @@
 
     ROOT = os.environ["ROOT"]
     BASE_MANIFEST = ROOT + "/usr/share/auto_install/manifest/ai_manifest.xml"
-    SCHEMA = ROOT + "/usr/share/install/ai.dtd"
+    SCHEMA = ROOT + SYS_AI_MANIFEST_DTD
     AIM_MANIFEST_FILE = "/tmp/mim_test.xml"
     IN_XML_FILE = "/tmp/test_main.xml"
 
--- a/usr/src/pkg/Makefile	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/pkg/Makefile	Fri Aug 19 08:56:26 2011 -0700
@@ -231,7 +231,15 @@
 	CLOSED_BUILD=$(CLOSED_BUILD) \
 	OPEN_BUILD=$(OPEN_ONLY_BUILD) \
 	USE_INTERNAL_CRYPTO=$(USE_INTERNAL_CRYPTO) \
-	USE_SIGNED_CRYPTO=$(USE_SIGNED_CRYPTO)
+	USE_SIGNED_CRYPTO=$(USE_SIGNED_CRYPTO) \
+	DTD_VERSION_AI=$(DTD_VERSION_AI) \
+	DTD_VERSION_DC=$(DTD_VERSION_DC) \
+	DTD_VERSION_BOOT_MODS=$(DTD_VERSION_BOOT_MODS) \
+	DTD_VERSION_CONFIGURATION=$(DTD_VERSION_CONFIGURATION) \
+	DTD_VERSION_EXECUTION=$(DTD_VERSION_EXECUTION) \
+	DTD_VERSION_MEDIA_TRANSFER=$(DTD_VERSION_MEDIA_TRANSFER) \
+	DTD_VERSION_SOFTWARE=$(DTD_VERSION_SOFTWARE) \
+	DTD_VERSION_TARGET=$(DTD_VERSION_TARGET)
 
 PKGDEP_TOKENS_i386= \
 	'PLATFORM=i86hvm' \
--- a/usr/src/pkg/manifests/system-library-install.mf	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/pkg/manifests/system-library-install.mf	Fri Aug 19 08:56:26 2011 -0700
@@ -23,73 +23,42 @@
 #
 
 set name=pkg.fmri value=pkg:/system/library/install@$(PKGVERS)
+set name=pkg.summary value="System install libraries"
 set name=pkg.description \
     value="Core software libraries used for system installation"
-set name=pkg.summary value="System install libraries"
 set name=info.classification \
     value=org.opensolaris.category.2008:System/Libraries
 set name=variant.arch value=$(ARCH)
 set name=variant.opensolaris.zone value=global value=nonglobal
-dir path=usr group=sys
-dir path=usr/lib
-dir path=usr/lib/python2.6
-dir path=usr/lib/python2.6/vendor-packages
-dir path=usr/lib/python2.6/vendor-packages/bootmgmt
-dir path=usr/lib/python2.6/vendor-packages/osol_install
-dir path=usr/lib/python2.6/vendor-packages/solaris_install
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/boot
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/configuration
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/data_object
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/engine
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/ict
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/manifest
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow
-dir path=usr/lib/python2.6/vendor-packages/solaris_install/transfer
-dir path=usr/share group=sys
-dir path=usr/share/install group=sys
-dir path=usr/snadm
-dir path=usr/snadm/lib
+dir  path=usr group=sys
+dir  path=usr/lib
+link path=usr/lib/libaiscf.so target=libaiscf.so.1
 file path=usr/lib/libaiscf.so.1
+link path=usr/lib/liberrsvc.so target=liberrsvc.so.1
 file path=usr/lib/liberrsvc.so.1
+link path=usr/lib/liblogger.so target=liblogger.so.1
 file path=usr/lib/liblogger.so.1
+dir  path=usr/lib/python2.6
+dir  path=usr/lib/python2.6/vendor-packages
+dir  path=usr/lib/python2.6/vendor-packages/bootmgmt
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/__init__.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/__init__.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/solaris.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/solaris.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/solaris.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/solaris.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/solaris.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/solaris.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/__init__.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/solaris.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/autogen/solaris.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/__init__.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/__init__.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/solaris.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/sparc/solaris.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/__init__.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/solaris.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/bootvars/x86/solaris.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/fw/__init__.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/fw/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/fw/bios.py
@@ -98,19 +67,14 @@
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/fw/obp.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/fw/uefi64.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/fw/uefi64.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/__init__.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/grub2.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/grub2.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/legacygrub.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/legacygrub.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/legacygrub.py
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/legacygrub.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/menulst.py
-file \
-    path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/menulst.pyc
+file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/menulst.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/sbb.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/backend/loader/sbb.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/bootarchive.py
@@ -125,282 +89,198 @@
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/bootutil.pyc
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/pysol.py
 file path=usr/lib/python2.6/vendor-packages/bootmgmt/pysol.pyc
+dir  path=usr/lib/python2.6/vendor-packages/osol_install
 file path=usr/lib/python2.6/vendor-packages/osol_install/_liberrsvc.so
 file path=usr/lib/python2.6/vendor-packages/osol_install/errsvc.py
 file path=usr/lib/python2.6/vendor-packages/osol_install/errsvc.pyc
 file path=usr/lib/python2.6/vendor-packages/osol_install/liberrsvc.py
 file path=usr/lib/python2.6/vendor-packages/osol_install/liberrsvc.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install
 file path=usr/lib/python2.6/vendor-packages/solaris_install/__init__.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/_logger.so
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/boot
 file path=usr/lib/python2.6/vendor-packages/solaris_install/boot/__init__.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/boot/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/boot/boot.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/boot/boot.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/boot/boot_spec.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/boot/boot_spec.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/configuration.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/configuration.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/cache.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/cache.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/data_dict.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/data_dict.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/simple.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/simple.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/configuration
+file path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/configuration.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/configuration/configuration.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/data_object
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/cache.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/cache.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/data_dict.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/data_dict.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/simple.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/data_object/simple.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/engine
 file path=usr/lib/python2.6/vendor-packages/solaris_install/engine/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/engine/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint_data.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint_data.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/engine/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint_data.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/engine/checkpoint_data.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/getconsole.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/getconsole.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/ict
 file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/__init__.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/apply_sysconfig.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/apply_sysconfig.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/boot_archive.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/boot_archive.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/cleanup_cpio_install.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/cleanup_cpio_install.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/create_snapshot.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/create_snapshot.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/device_config.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/device_config.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/initialize_smf.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/initialize_smf.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/apply_sysconfig.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/apply_sysconfig.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/boot_archive.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/boot_archive.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/cleanup_cpio_install.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/cleanup_cpio_install.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/create_snapshot.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/create_snapshot.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/device_config.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/device_config.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/initialize_smf.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/initialize_smf.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/setup_swap.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/setup_swap.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/transfer_files.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/transfer_files.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/update_dumpadm.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/ict/update_dumpadm.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/transfer_files.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/transfer_files.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/update_dumpadm.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/ict/update_dumpadm.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/logger.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/logger.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/__init__.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/manifest
+file path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/parser.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/parser.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/parser.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/writer.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/writer.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/manifest/writer.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/cgc.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/cgc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/controller.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/controller.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/discovery.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/discovery.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation_zone.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation_zone.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cfunc.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cfunc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/const.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/const.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cstruct.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cstruct.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/extvtoc.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/extvtoc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/controller.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/controller.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/discovery.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/discovery.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation_zone.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/instantiation_zone.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cfunc.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cfunc.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/const.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/const.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cstruct.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/cstruct.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/extvtoc.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libadm/extvtoc.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/be.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/be.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cfunc.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cfunc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/const.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/const.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cstruct.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cstruct.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cfunc.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cfunc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cstruct.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cstruct.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/devinfo.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/devinfo.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/attributes.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/attributes.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cfunc.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cfunc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/const.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/const.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cstruct.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cstruct.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/diskmgt.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/diskmgt.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cfunc.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cfunc.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/const.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/const.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cstruct.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cstruct.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/nvl.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/nvl.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/be.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cfunc.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cfunc.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/const.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/const.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cstruct.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libbe/cstruct.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cfunc.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cfunc.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cstruct.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/cstruct.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/devinfo.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdevinfo/devinfo.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/attributes.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/attributes.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cfunc.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cfunc.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/const.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/const.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cstruct.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/cstruct.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/diskmgt.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libdiskmgt/diskmgt.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cfunc.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cfunc.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/const.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/const.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cstruct.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/cstruct.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/nvl.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/libnvpair/nvl.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/logical.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/logical.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/physical.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/physical.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/__init__.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/logical.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/logical.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/physical.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/physical.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/zpool.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/zpool.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/physical.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/__init__.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/logical.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/logical.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/physical.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/physical.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/zpool.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/target/shadow/zpool.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/size.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/size.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/vdevs.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/target/vdevs.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/__init__.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/__init__.pyc
+dir  path=usr/lib/python2.6/vendor-packages/solaris_install/transfer
+file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/__init__.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/__init__.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/cpio.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/cpio.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/info.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/info.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/ips.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/ips.pyc
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/media_transfer.py
-file \
-    path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/media_transfer.pyc
+file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/media_transfer.py
+file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/media_transfer.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/p5i.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/p5i.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/prog.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/prog.pyc
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/svr4.py
 file path=usr/lib/python2.6/vendor-packages/solaris_install/transfer/svr4.pyc
-file path=usr/share/install/ai.dtd group=sys mode=0444
-file path=usr/share/install/boot_mods.dtd group=sys mode=0444
-file path=usr/share/install/configuration.dtd group=sys mode=0444
-file path=usr/share/install/dc.dtd group=sys mode=0444
-file path=usr/share/install/execution.dtd group=sys mode=0444
-file path=usr/share/install/media-transfer.dtd group=sys mode=0444
-file path=usr/share/install/software.dtd group=sys mode=0444
-file path=usr/share/install/target.dtd group=sys mode=0444
+dir  path=usr/share group=sys
+dir  path=usr/share/install group=sys
+link path=usr/share/install/ai.dtd target=ai.dtd.$(DTD_VERSION_AI)
+file path=usr/share/install/ai.dtd.$(DTD_VERSION_AI) group=sys mode=0444
+file path=usr/share/install/boot_mods.dtd.$(DTD_VERSION_BOOT_MODS) group=sys \
+    mode=0444
+file path=usr/share/install/configuration.dtd.$(DTD_VERSION_CONFIGURATION) \
+    group=sys mode=0444
+link path=usr/share/install/dc.dtd target=dc.dtd.$(DTD_VERSION_DC)
+file path=usr/share/install/dc.dtd.$(DTD_VERSION_DC) group=sys mode=0444
+file path=usr/share/install/execution.dtd.$(DTD_VERSION_EXECUTION) group=sys \
+    mode=0444
+file path=usr/share/install/media-transfer.dtd.$(DTD_VERSION_MEDIA_TRANSFER) \
+    group=sys mode=0444
+file path=usr/share/install/software.dtd.$(DTD_VERSION_SOFTWARE) group=sys \
+    mode=0444
+file path=usr/share/install/target.dtd.$(DTD_VERSION_TARGET) group=sys mode=0444
+dir  path=usr/snadm
+dir  path=usr/snadm/lib
+link path=usr/snadm/lib/libspmicommon.so target=libspmicommon.so.1
 file path=usr/snadm/lib/libspmicommon.so.1
 license cr_Sun license=cr_Sun
-link path=usr/lib/libaiscf.so target=libaiscf.so.1
-link path=usr/lib/liberrsvc.so target=liberrsvc.so.1
-link path=usr/lib/liblogger.so target=liblogger.so.1
-link path=usr/snadm/lib/libspmicommon.so target=libspmicommon.so.1
 
--- a/usr/src/tools/tests/slim_test	Fri Aug 19 08:27:41 2011 -0700
+++ b/usr/src/tools/tests/slim_test	Fri Aug 19 08:56:26 2011 -0700
@@ -30,6 +30,7 @@
 fi
 
 export PYTHONPATH=${ROOT}/usr/snadm/lib:${ROOT}/usr/lib/python2.6/vendor-packages/:\
-${ROOT}/usr/lib/installadm:${ROOT}/var/ai/image-server/cgi-bin
+${ROOT}/usr/lib/installadm:${ROOT}/var/ai/image-server/cgi-bin:\
+/usr/lib/python2.6/vendor-packages
 
 nosetests -c ${SRC}/tools/tests/config.nose -w $SRC "$@"