--- 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 "$@"