4230 Bootroot assembly changes for SPARC ai images
authorJean McCormack <Jean.McCormack@Sun.COM>
Fri, 12 Dec 2008 12:11:41 -0700
changeset 380 38aa26a7abb0
parent 379 142e03bb2794
child 381 046e8cbea997
4230 Bootroot assembly changes for SPARC ai images
usr/src/cmd/distro_const/DC_defs.py
usr/src/cmd/distro_const/auto_install/ai_sparc_image.xml
usr/src/cmd/distro_const/utils/bootroot_archive.py
usr/src/cmd/distro_const/utils/bootroot_initialize.py
usr/src/cmd/distro_const/utils/create_iso
usr/src/cmd/slim-install/svc/live-fs-root
--- a/usr/src/cmd/distro_const/DC_defs.py	Fri Dec 12 12:34:17 2008 +0800
+++ b/usr/src/cmd/distro_const/DC_defs.py	Fri Dec 12 12:11:41 2008 -0700
@@ -126,7 +126,8 @@
 LOGS = "/logs"
 
 # boot root definitions
-BR_FILENAME = "/boot/x86.microroot"
+BR_SPARC_FILENAME = "/boot/sparc.microroot"
+BR_X86_FILENAME = "/boot/x86.microroot"
 DC_LOGGER_NAME="dc_logger"
 
 # error codes
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/distro_const/auto_install/ai_sparc_image.xml	Fri Dec 12 12:11:41 2008 -0700
@@ -0,0 +1,575 @@
+<!--
+    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 2008 Sun Microsystems, Inc.  All rights reserved.
+    Use is subject to license terms.
+
+    XML specification for building an OpenSolaris installer iso image
+-->
+
+<distribution name="automated_installer_image_sparc">
+	<distro_constr_params>
+		<distro_constr_flags>
+			<!-- Controls whether the DC should stop
+			     if there is an error when the DC is running 
+			     -->
+			<stop_on_error>true</stop_on_error>
+			<!-- You can specify the step to resume the
+			     build from here with the resume_from
+			     attribute field of checkpoint_enable.
+			     This value will be overridden by
+			     the command line if the -r flag is used.
+			     Valid values are step
+			     numbers or name -->
+			<checkpoint_enable>
+				<!-- true implies checkpointing is enabled -->
+				true
+			</checkpoint_enable>
+		</distro_constr_flags>
+		<!-- The preferred authority to install packages into the
+		     pkg_image area from.
+		     The default url is: http://pkg.opensolaris.org/release
+		     The default authname is: opensolaris.org -->
+		<pkg_repo_default_authority>
+			<main
+				url="http://ipkg.sfbay:29048/"
+				authname="opensolaris.org"/>
+			<!-- If you want to use one or more  mirrors that are
+			     setup for the authority, specify the urls here. -->
+			<!-- Uncomment before using.
+			<mirror url=""/>
+				-->
+		</pkg_repo_default_authority>
+		<!-- Any additional non-preferred authorities to pull packages
+		     from should be specified here. Multiple additional
+		     authorities may be specified.
+		     If you want to use one or more  mirrors that are
+		     setup for the authority, specify the urls here. -->
+		<!-- Uncomment before using.
+		<pkg_repo_addl_authority>
+			<main
+				url=""
+				authname=""/>
+			<mirror url="" />
+		</pkg_repo_addl_authority>
+		-->
+		<!-- The default preferred authority to be used by the system
+		     after it has been installed.
+		     The default url is: http://pkg.opensolaris.org/release
+		     The default authname is opensolaris.org
+		     If you want to use one or more  mirrors that are
+		     setup for the authority, specify the urls here. -->
+		<post_install_repo_default_authority>
+			<main
+				url="http://ipkg.sfbay:29048/"
+				authname="opensolaris.org"/>
+			<!-- Uncomment before using.
+			<mirror url="" />
+			-->
+		</post_install_repo_default_authority>
+		<!-- Any additional non-preferred authorities to use after the
+		     system has been installed. Multiple additional authorities
+		     may be specified.
+		     If you want to use one or more  mirrors that are
+		     setup for the authority, specify the urls here. -->
+		<!-- Uncomment before using.
+		<post_install_repo_addl_authority>
+			<main
+				url=""
+				authname=""/>
+			<mirror url="" />
+		</post_install_repo_addl_authority>
+		-->
+	</distro_constr_params>
+	<img_params>
+		<!-- list of packages used to form the installed image -->
+		<packages>
+			<!-- Due to dependency issues,
+			     list SUNWcsd and SUNWcs first. -->
+			<pkg name="SUNWcsd"/>
+			<pkg name="SUNWcs"/>
+			<pkg name="SUNW1394"/>
+			<pkg name="SUNWPython"/>
+			<pkg name="SUNWPython-extra"/>
+			<pkg name="SUNWaac"/>
+			<pkg name="SUNWacc"/>
+			<pkg name="SUNWadmap"/>
+			<pkg name="SUNWadmlib-sysid"/>
+			<pkg name="SUNWadmr"/>
+			<pkg name="SUNWafe"/>
+			<pkg name="SUNWatfs"/>
+			<pkg name="SUNWauda"/>
+			<pkg name="SUNWaudd"/>
+			<pkg name="SUNWaudf"/>
+			<pkg name="SUNWauto-install"/>
+			<pkg name="SUNWav1394"/>
+			<pkg name="SUNWbash"/>
+			<pkg name="SUNWbge"/>
+			<pkg name="SUNWbind"/>
+			<pkg name="SUNWbip"/>
+			<pkg name="SUNWbtool"/>
+			<pkg name="SUNWbzip"/>
+			<pkg name="SUNWcakr"/>
+			<pkg name="SUNWcar"/>
+			<pkg name="SUNWced"/>
+			<pkg name="SUNWcfcl"/>
+			<pkg name="SUNWcfpl"/>
+			<pkg name="SUNWchxge"/>
+			<pkg name="SUNWckr"/>
+			<pkg name="SUNWcnetr"/>
+			<pkg name="SUNWcpc"/>
+			<pkg name="SUNWcpcu"/>
+			<pkg name="SUNWcpp"/>
+			<pkg name="SUNWcpr"/>
+			<pkg name="SUNWcsl"/>
+			<pkg name="SUNWdbus"/>
+			<pkg name="SUNWdbus-bindings"/>
+			<pkg name="SUNWdmfe"/>
+			<pkg name="SUNWdsd"/>
+			<pkg name="SUNWdtrc"/>
+			<pkg name="SUNWdtrp"/>
+			<pkg name="SUNWesu"/>
+			<pkg name="SUNWfchba"/>
+			<pkg name="SUNWfcip"/>
+			<pkg name="SUNWfcmdb"/>
+			<pkg name="SUNWfcp"/>
+			<pkg name="SUNWfcprt"/>
+			<pkg name="SUNWfcsm"/>
+			<pkg name="SUNWfctl"/>
+			<pkg name="SUNWfmd"/>
+			<pkg name="SUNWfss"/>
+			<pkg name="SUNWftp"/>
+			<pkg name="SUNWfwdc"/>
+			<pkg name="SUNWfwdcu"/>
+			<pkg name="SUNWfwflash"/>
+			<pkg name="SUNWgamin"/>
+			<pkg name="SUNWgccruntime"/>
+			<pkg name="SUNWgcmn"/>
+			<pkg name="SUNWggrp"/>
+			<pkg name="SUNWgksu"/>
+			<pkg name="SUNWgnu-coreutils"/>
+			<pkg name="SUNWgnu-diffutils"/>
+			<pkg name="SUNWgnu-which"/>
+			<pkg name="SUNWgnutls"/>
+			<pkg name="SUNWgpch"/>
+			<pkg name="SUNWgss"/>
+			<pkg name="SUNWgssc"/>
+			<pkg name="SUNWgssdh"/>
+			<pkg name="SUNWgssk"/>
+			<pkg name="SUNWgtar"/>
+			<pkg name="SUNWgui-install"/>
+			<pkg name="SUNWgzip"/>
+			<pkg name="SUNWhwdata"/>
+			<pkg name="SUNWib"/>
+			<pkg name="SUNWibsdp"/>
+			<pkg name="SUNWibsdpib"/>
+			<pkg name="SUNWibsdpu"/>
+			<pkg name="SUNWigb"/>
+			<pkg name="SUNWinstall-libs"/>
+			<pkg name="SUNWintgige"/>
+			<pkg name="SUNWipf"/>
+			<pkg name="SUNWipkg"/>
+			<pkg name="SUNWipmi"/>
+			<pkg name="SUNWipoib"/>
+			<pkg name="SUNWiscsi"/>
+			<pkg name="SUNWiscsitgt"/>
+			<pkg name="SUNWislcc"/>
+			<pkg name="SUNWiso-codes"/>
+			<pkg name="SUNWixgb"/>
+			<pkg name="SUNWkey"/>
+			<pkg name="SUNWkrb"/>
+			<pkg name="SUNWkvm"/>
+			<pkg name="SUNWlexpt"/>
+			<pkg name="SUNWlibC"/>
+			<pkg name="SUNWlibanthy"/>
+			<pkg name="SUNWlibchewing"/>
+			<pkg name="SUNWlibdaemon"/>
+			<pkg name="SUNWlibexif"/>
+			<pkg name="SUNWlibgcrypt"/>
+			<pkg name="SUNWlibgpg-error"/>
+			<pkg name="SUNWlibhangul"/>
+			<pkg name="SUNWlibm"/>
+			<pkg name="SUNWlibms"/>
+			<pkg name="SUNWlibpopt"/>
+			<pkg name="SUNWlibrsvg"/>
+			<pkg name="SUNWlibsasl"/>
+			<pkg name="SUNWlibsdl"/>
+			<pkg name="SUNWlibusb"/>
+			<pkg name="SUNWlibusbugen"/>
+			<pkg name="SUNWloc"/>
+			<pkg name="SUNWltdl"/>
+			<pkg name="SUNWluxop"/>
+			<pkg name="SUNWlxml"/>
+			<pkg name="SUNWlxsl"/>
+			<pkg name="SUNWmd"/>
+			<pkg name="SUNWmdb"/>
+			<pkg name="SUNWmkcd"/>
+			<pkg name="SUNWmpathadm"/>
+			<pkg name="SUNWmpsvplr"/>
+			<pkg name="SUNWmxfe"/>
+			<pkg name="SUNWncft"/>
+			<pkg name="SUNWnfsc"/>
+			<pkg name="SUNWnfsckr"/>
+			<pkg name="SUNWnis"/>
+			<pkg name="SUNWntp"/>
+			<pkg name="SUNWnxge"/>
+			<pkg name="SUNWopenssl"/>
+			<pkg name="SUNWp7zip"/>
+			<pkg name="SUNWpcan"/>
+			<pkg name="SUNWpcelx"/>
+			<pkg name="SUNWpcmci"/>
+			<pkg name="SUNWpcmcu"/>
+			<pkg name="SUNWpcmem"/>
+			<pkg name="SUNWpcre"/>
+			<pkg name="SUNWpcser"/>
+			<pkg name="SUNWpcwl"/>
+			<pkg name="SUNWpd"/>
+			<pkg name="SUNWpicl"/>
+			<pkg name="SUNWpkgcmds"/>
+			<pkg name="SUNWpm"/>
+			<pkg name="SUNWpng"/>
+			<pkg name="SUNWpolkit"/>
+			<pkg name="SUNWpool"/>
+			<pkg name="SUNWpoold"/>
+			<pkg name="SUNWpostrun"/>
+			<pkg name="SUNWpppd"/>
+			<pkg name="SUNWpppdt"/>
+			<pkg name="SUNWpppg"/>
+			<pkg name="SUNWpr"/>
+			<pkg name="SUNWpsdpr"/>
+			<pkg name="SUNWpython-cherrypy"/>
+			<pkg name="SUNWqlc"/>
+			<pkg name="SUNWqlcu"/>
+			<pkg name="SUNWrcmdc"/>
+			<pkg name="SUNWrcmds"/>
+			<pkg name="SUNWrge"/>
+			<pkg name="SUNWrmodu"/>
+			<pkg name="SUNWrmvolmgr"/>
+			<pkg name="SUNWroute"/>
+			<pkg name="SUNWrpcib"/>
+			<pkg name="SUNWrpm"/>
+			<pkg name="SUNWrsg"/>
+			<pkg name="SUNWrsgk"/>
+			<pkg name="SUNWrsync"/>
+			<pkg name="SUNWsbp2"/>
+			<pkg name="SUNWscsa1394"/>
+			<pkg name="SUNWservicetag"/>
+			<pkg name="SUNWses"/>
+			<pkg name="SUNWsfe"/>
+			<pkg name="SUNWsfinf"/>
+			<pkg name="SUNWslim-utils"/>
+			<pkg name="SUNWsmagt"/>
+			<pkg name="SUNWsmapi"/>
+			<pkg name="SUNWsmbfs"/>
+			<pkg name="SUNWsmbfskr"/>
+			<pkg name="SUNWsmedia"/>
+			<pkg name="SUNWsmpd"/>
+			<pkg name="SUNWsndm"/>
+			<pkg name="SUNWsolnm"/>
+			<pkg name="SUNWssh"/>
+			<pkg name="SUNWsshcu"/>
+			<pkg name="SUNWsshd"/>
+			<pkg name="SUNWstosreg"/>
+			<pkg name="SUNWswmt"/>
+			<pkg name="SUNWtavor"/>
+			<pkg name="SUNWtcpd"/>
+			<pkg name="SUNWtcsh"/>
+			<pkg name="SUNWtecla"/>
+			<pkg name="SUNWter"/>
+			<pkg name="SUNWtexi"/>
+			<pkg name="SUNWtftp"/>
+			<pkg name="SUNWtls"/>
+			<pkg name="SUNWtnetc"/>
+			<pkg name="SUNWtnetd"/>
+			<pkg name="SUNWtoo"/>
+			<pkg name="SUNWuacm"/>
+			<pkg name="SUNWudapl"/>
+			<pkg name="SUNWudaplt"/>
+			<pkg name="SUNWudf"/>
+			<pkg name="SUNWuedg"/>
+			<pkg name="SUNWugen"/>
+			<pkg name="SUNWuksp"/>
+			<pkg name="SUNWukspfw"/>
+			<pkg name="SUNWunzip"/>
+			<pkg name="SUNWuprl"/>
+			<pkg name="SUNWusb"/>
+			<pkg name="SUNWusbs"/>
+			<pkg name="SUNWusbvc"/>
+			<pkg name="SUNWwbsup"/>
+			<pkg name="SUNWwget"/>
+			<pkg name="SUNWwlan"/>
+			<pkg name="SUNWwpa"/>
+			<pkg name="SUNWwsr2"/>
+			<pkg name="SUNWxcu4"/>
+			<pkg name="SUNWxge"/>
+			<pkg name="SUNWzfs"/>
+			<pkg name="SUNWzfskr"/>
+			<pkg name="SUNWzip"/>
+			<pkg name="SUNWzlib"/>
+			<pkg name="SUNWzone"/>
+		</packages>
+                <!-- Indicate whether the IPS index should be generated for
+		     pkg install and uninstall.  The default is to not
+		     generate the IPS search index -->
+		<generate_ips_search_index>
+			false
+		</generate_ips_search_index>
+		<!-- Files and dirs to be included in the bootroot of all media
+		     delivered by this distribution. Bootroot contains the
+		     minimal list of contents in order to be able to
+		     boot and setup a running system. These files and dirs
+		     must exist in the pkg_image area. -->
+		<bootroot_contents>
+			<base_include type="file">usr/sbin/pmadm</base_include>
+			<base_include type="file">usr/sbin/prtconf</base_include>
+			<base_include type="file">usr/sbin/sparcv9/prtconf</base_include>
+			<base_include type="file">usr/sbin/lofiadm</base_include>
+			<base_include type="file">usr/sbin/devfsadm</base_include>
+			<base_include type="file">usr/sbin/modload</base_include>
+			<base_include type="file">usr/sbin/sparcv9/modload</base_include>
+			<base_include type="file">usr/sbin/mount</base_include>
+			<base_include type="file">usr/sbin/hostconfig</base_include>
+			<base_include type="file">usr/sbin/chroot</base_include>
+			<base_include type="file">usr/sbin/syslogd</base_include>
+			<base_include type="file">usr/sbin/svcadm</base_include>
+			<base_include type="file">usr/sbin/svccfg</base_include>
+			<base_include type="file">usr/sbin/df</base_include>
+			<base_include type="file">usr/bin/coreadm</base_include>
+			<base_include type="file">usr/bin/bash</base_include>
+			<base_include type="file">usr/bin/cut</base_include>
+			<base_include type="file">usr/bin/sed</base_include>
+			<base_include type="file">usr/bin/more</base_include>
+			<base_include type="file">usr/bin/cat</base_include>
+			<base_include type="file">usr/bin/echo</base_include>
+			<base_include type="file">usr/bin/false</base_include>
+			<base_include type="file">usr/bin/grep</base_include>
+			<base_include type="file">usr/bin/ls</base_include>
+			<base_include type="file">usr/bin/rm</base_include>
+			<base_include type="file">usr/bin/svcprop</base_include>
+			<base_include type="file">usr/bin/true</base_include>
+			<base_include type="file">usr/bin/cd</base_include>
+			<base_include type="file">usr/bin/test</base_include>
+			<base_include type="file">usr/bin/sleep</base_include>
+			<base_include type="file">usr/bin/expr</base_include>
+			<base_include type="file">usr/bin/isaexec</base_include>
+			<base_include type="file">usr/bin/vi</base_include>
+			<base_include type="file">usr/bin/wget</base_include>
+			<base_include type="file">usr/has/bin/vi</base_include>
+			<base_include type="file">usr/lib/fs/hsfs/fstyp</base_include>
+			<base_include type="file">usr/lib/fs/hsfs/fstyp.so.1</base_include>
+			<base_include type="file">usr/lib/fs/hsfs/mount</base_include>
+			<base_include type="file">usr/lib/fs/tmpfs/mount</base_include>
+			<base_include type="file">usr/lib/fs/ufs/fstyp</base_include>
+			<base_include type="file">usr/lib/fs/ufs/fstyp.so.1</base_include>
+			<base_include type="file">usr/lib/fs/ufs/mount</base_include>
+			<base_include type="file">usr/lib/libpython2.4.so</base_include>
+			<base_include type="file">usr/lib/libpython2.4.so.1.0</base_include>
+			<base_include type="file">usr/lib/python2.4/urllib.py</base_include>
+			<base_include type="file">usr/lib/python2.4/tempfile.py</base_include>
+			<base_include type="file">usr/lib/python2.4/httplib.py</base_include>
+			<base_include type="file">usr/lib/python2.4/gopherlib.py</base_include>
+			<base_include type="file">usr/lib/python2.4/base64.py</base_include>
+			<base_include type="file">usr/lib/python2.4/mimetypes.py</base_include>
+			<base_include type="file">usr/lib/python2.4/mimetools.py</base_include>
+			<base_include type="file">usr/lib/python2.4/email/Utils.py</base_include>
+			<base_include type="file">usr/lib/python2.4/StringIO.py</base_include>
+			<base_include type="file">usr/lib/python2.4/ftplib.py</base_include>
+			<base_include type="file">usr/lib/python2.4/re.py</base_include>
+			<base_include type="file">usr/lib/python2.4/sre.py</base_include>
+			<base_include type="file">usr/lib/python2.4/sre_parse.py</base_include>
+			<base_include type="file">usr/lib/python2.4/sre_compile.py</base_include>
+			<base_include type="file">usr/lib/python2.4/sre_constants.py</base_include>
+			<base_include type="file">usr/lib/python2.4/getpass.py</base_include>
+			<base_include type="file">usr/lib/python2.4/getopt.py</base_include>
+			<base_include type="file">usr/lib/python2.4/string.py</base_include>
+			<base_include type="file">usr/lib/python2.4/socket.py</base_include>
+			<base_include type="file">usr/lib/python2.4/os.py</base_include>
+			<base_include type="file">usr/lib/python2.4/stat.py</base_include>
+			<base_include type="file">usr/lib/python2.4/types.py</base_include>
+			<base_include type="file">usr/lib/python2.4/posixpath.py</base_include>
+			<base_include type="file">usr/lib/python2.4/posixfile.py</base_include>
+			<base_include type="file">usr/lib/python2.4/rfc822.py</base_include>
+			<base_include type="file">usr/lib/python2.4/dummy_thread.py</base_include>
+			<base_include type="file">usr/lib/python2.4/traceback.py</base_include>
+			<base_include type="file">usr/lib/python2.4/linecache.py</base_include>
+			<base_include type="file">usr/lib/python2.4/quopri.py</base_include>
+			<base_include type="file">usr/lib/python2.4/uu.py</base_include>
+			<base_include type="file">usr/lib/python2.4/random.py</base_include>
+			<base_include type="file">usr/lib/python2.4/popen2.py</base_include>
+			<base_include type="file">usr/lib/python2.4/UserDict.py</base_include>
+			<base_include type="file">usr/lib/python2.4/copy.py</base_include>
+			<base_include type="file">usr/lib/python2.4/copy_reg.py</base_include>
+			<base_include type="file">usr/lib/python2.4/warnings.py</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/time.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/array.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/struct.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/binascii.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/math.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/_random.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/_socket.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/fcntl.so</base_include>
+			<base_include type="file">usr/lib/python2.4/lib-dynload/cStringIO.so</base_include>
+			<base_include type="file">usr/lib/python2.4/urlparse.py</base_include>
+			<base_include type="file">usr/lib/python2.4/vendor-packages/downloader.py</base_include>
+			<base_include type="file">usr/lib/python2.4/vendor-packages/slimnet.py</base_include>
+			<base_include type="file">usr/lib/libfstyp.so.1</base_include>
+			<base_include type="file">usr/lib/platexec</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_audio_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_cfg_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_disk_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_fssnap_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_ieee1394_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_lofi_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_md_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_misc_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_port_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_ramdisk_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_sgen_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_tape_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_usb_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/linkmod/SUNW_zfs_link.so</base_include>
+			<base_include type="file">usr/lib/devfsadm/devfsadmd</base_include>
+			<base_include type="file">usr/lib/libm.so.2</base_include>
+			<base_include type="file">usr/lib/libm.so</base_include>
+			<base_include type="file">usr/lib/libfstyp.so</base_include>
+			<base_include type="file">usr/lib/libz.so</base_include>
+			<base_include type="file">usr/lib/libz.so.1</base_include>
+			<base_include type="file">usr/bin/sparcv9/ksh93</base_include>
+			<base_include type="file">usr/bin/sparcv7/ksh93</base_include>
+			<base_include type="file">usr/lib/isaexec</base_include>
+			<base_include type="file">usr/lib/libast.so.1</base_include>
+			<base_include type="file">usr/lib/libcmd.so.1</base_include>
+			<base_include type="file">usr/lib/libdll.so.1</base_include>
+			<base_include type="file">usr/lib/libshell.so.1</base_include>
+			<base_include type="file">usr/lib/libcrypt.so.1</base_include>
+			<base_include type="file">usr/lib/libmapmalloc.so.1</base_include>
+			<base_include type="file">usr/sfw/lib/libcrypto.so.0.9.8</base_include>
+			<base_include type="file">usr/sfw/lib/libssl.so.0.9.8</base_include>
+			<base_include type="file">usr/share/lib/xml/dtd/service_bundle.dtd.1</base_include>
+			<base_include type="file">var/sadm/install/admin/default</base_include>
+			<base_include type="file">var/sadm/system/admin/default_java</base_include>
+			<base_include type="file">var/adm/utmpx</base_include>
+			<base_include type="file">var/adm/wtmpx</base_include>
+			<base_include type="file">var/adm/aculog</base_include>
+			<base_include type="file">var/lib/postrun/postrun-runq</base_include>
+			<base_include type="file">var/lib/postrun/postrun</base_include>
+			<base_include type="file">var/log/postrun.log</base_include>
+			<base_include type="file">var/log/authlog</base_include>
+			<base_include type="file">var/log/syslog</base_include>
+			<base_include type="file">var/saf/zsmon/log</base_include>
+			<base_include type="file">var/spool/cron/crontabs/adm</base_include>
+			<base_include type="file">var/spool/cron/crontabs/root</base_include>
+			<base_include type="file">var/nis/NIS+LDAPmapping.template</base_include>
+			<base_include type="file">var/yp/aliases</base_include>
+			<base_include type="file">var/yp/nicknames</base_include>
+			<base_include type="dir">kernel</base_include>
+			<base_include type="dir">boot</base_include>
+			<base_include type="dir">platform</base_include>
+			<base_include type="dir">system</base_include>
+			<base_include type="dir">lib</base_include>
+			<base_include type="dir">sbin</base_include>
+			<base_include type="dir">dev</base_include>
+			<base_include type="dir">devices</base_include>
+			<base_include type="dir">root</base_include>
+			<base_include type="dir">jack</base_include>
+			<base_include type="dir">var/svc/manifest</base_include>
+			<base_include type="dir">var/svc/profile</base_include>
+			<base_include type="dir">var/pkg/catalog</base_include>
+			<base_include type="file">var/pkg/cfg_cache</base_include>
+			<base_include type="dir">etc</base_include>
+			<base_exclude type="dir">etc/gconf</base_exclude>
+			<base_exclude type="dir">etc/brltty</base_exclude>
+			<base_exclude type="dir">etc/gtk-2.0</base_exclude>
+			<base_exclude type="dir">etc/notices</base_exclude>
+		</bootroot_contents>
+		<!-- If/how to compress the live image.
+		     type = compression algorith to use for pkg.zlib and misc.zlib.
+		     Valid types are lzma, gzip, and none. -->
+		<live_img_compression type="lzma"/>
+		<!-- Where to build. This can be a zfs dataset or a mountpoint.
+		     The area will be created if it doesn't exist.  If the build_area
+		     is not a zfs dataset or mountpoint, checkpointing will not
+		     be enabled. -->        
+		<build_area>rpool/dc</build_area>
+		<output_image>
+			<!-- List of finalizer scripts to be run. They are used
+			     to customize the image and will be run in the
+			     order listed. The name of the checkpoint to
+			     be created when this script is run is required.
+			     The checkpoint message is displayed when the
+			     step is run and is optional.
+			     There are 5 standard arguments that are passed to
+			     every finalizer script (manifest socket, pkg_image path,
+			     tmp dir, bootroot build area, media dir). You may also
+			     specify additional arguments (arg6+) in the argslist.
+			     This argslist is a whitespace-separated list of double
+			     quoted strings. -->
+			<finalizer>
+				<script name="/usr/share/distro_const/pre_bootroot_pkg_image_mod">
+					<checkpoint
+						name="im-mod"
+						message="Image area modifications"/>
+				</script>
+				<script name="/usr/share/distro_const/bootroot_initialize.py">
+					<checkpoint
+						name="br-init"
+						message="Boot root initialization"/>
+				</script>
+				<script name="/usr/share/distro_const/bootroot_configure">
+					<checkpoint
+						name="br-config"
+						message="Boot root configuration"/>
+					<argslist>
+						"/usr/share/distro_const/auto_install/ai_generic_live.xml"
+						".autoinstall"
+					</argslist>
+				</script>
+				<script name="/usr/share/distro_const/auto_install/ai_bootroot_configure">
+					<checkpoint
+						name="ai-br-config"
+						message="Auto Install boot root configuration"/>
+				</script>
+				<script name="/usr/share/distro_const/bootroot_archive.py">
+					<checkpoint
+						name="br-arch"
+						message="Boot root archiving"/>
+				</script>
+				<script name="/usr/share/distro_const/post_bootroot_pkg_image_mod">
+					<checkpoint
+						name="post-mod"
+						message="Post bootroot image area modification"/>
+                                        <argslist>
+                                                "usr_zlib_compression=gzip"
+                                        </argslist>
+				</script>
+				<script name="/usr/share/distro_const/create_iso">
+					<checkpoint
+						name="iso"
+						message="ISO image creation"/>
+				</script>
+			</finalizer>
+			<bootroot>
+				<!-- If/how to compress the bootroot. Valid
+				     types are gzip and none  -->
+				<compression type="gzip" level="9"/>
+			</bootroot>
+		</output_image>
+	</img_params>
+</distribution>
--- a/usr/src/cmd/distro_const/utils/bootroot_archive.py	Fri Dec 12 12:34:17 2008 +0800
+++ b/usr/src/cmd/distro_const/utils/bootroot_archive.py	Fri Dec 12 12:11:41 2008 -0700
@@ -31,7 +31,9 @@
 
 import os
 import sys
+import stat
 import signal
+import platform
 from subprocess import Popen, PIPE
 from osol_install.ManifestRead import ManifestRead
 from osol_install.distro_const.DC_ti import ti_create_target
@@ -40,7 +42,8 @@
 from osol_install.distro_const.DC_defs import BOOT_ROOT_COMPRESSION_LEVEL
 from osol_install.distro_const.DC_defs import BOOT_ROOT_COMPRESSION_TYPE
 from osol_install.distro_const.DC_defs import BOOT_ROOT_SIZE_PAD
-from osol_install.distro_const.DC_defs import BR_FILENAME
+from osol_install.distro_const.DC_defs import BR_X86_FILENAME
+from osol_install.distro_const.DC_defs import BR_SPARC_FILENAME
 
 execfile('/usr/lib/python2.4/vendor-packages/osol_install/ti_defs.py')
 
@@ -53,6 +56,92 @@
 FIND = "/usr/bin/find"
 MV = "/usr/bin/mv"
 TUNEFS = "/usr/sbin/tunefs"
+FIOCOMPRESS = "/usr/sbin/fiocompress"
+
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+def compress(src,dst):
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+	""" fiocompress files in the dst. The files listed in 
+	boot/solaris/filelist.ramdisk and files in usr/kernel are recopied
+	because we can't have them compressed. 
+
+	Args:
+	  src : directory files are copied to dst from.   
+	  dst : directory to fiocompress files in.
+
+	Returns: N/A
+
+	Raises: Exception 
+	"""
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+	os.chdir(src)
+	cmd = FIND + " . > " + TMP_DIR + "/compress_flist"
+	status = os.system(cmd)
+	if (status != 0):
+		raise Exception, (sys.argv[0] + ":Error executing find in " + \
+		    src + " find command returns %d" % status)
+	filelist = open(TMP_DIR + "/compress_flist", 'r')
+	for file in filelist:
+		# strip off the leading ./ and the trailing \n
+		cpio_file = file.lstrip("./").strip()
+
+		if os.access(cpio_file, os.F_OK):
+			# copy all files over to preserve hard links
+			cmd = "echo " + cpio_file + " | " + CPIO + " -pdum " + dst + \
+			    " 2> /dev/null"
+			status = os.system(cmd)
+			if (status != 0): 
+				break
+
+			# If the file is a regular file, has size > 0 and isn't a link,
+			# fiocompress it.
+			stat_out = os.stat(cpio_file)
+			mode = stat_out.st_mode
+			if stat.S_ISREG(mode) and not stat_out.st_size == 0 and \
+			    not os.path.islink(cpio_file):
+				cmd = FIOCOMPRESS + " -mc " + cpio_file + " " + dst + \
+				    "/" + cpio_file
+				status = os.system(cmd)
+				if (status != 0):
+					break
+
+
+	filelist.close()
+	try:
+		os.remove(TMP_DIR + "/compress_flist")
+	except:
+		pass
+
+	if (status != 0):
+		raise Exception, (sys.argv[0] + ": Error executing cpio " + \
+		    " cpio command returns %d" % status)
+
+	# re-copy a couple of files we don't want compressed.
+	cmd = FIND + \
+	    " `cat boot/solaris/filelist.ramdisk` -type file -print 2> /dev/null > " + \
+	    TMP_DIR + "/uncompress_flist"
+	    
+	status = os.system(cmd)
+
+	cmd = FIND + " usr/kernel -type file -print 2> /dev/null >> " + \
+	    TMP_DIR + "/uncompress_flist"
+	status = os.system(cmd)
+
+	flist = open(TMP_DIR + "/uncompress_flist")
+	for file in flist:
+		cpio_file = file.strip()
+		cmd = "echo " + cpio_file + " | cpio -pdum " + dst + " 2> /dev/null"
+		status = os.system(cmd)
+		if (status != 0):
+			flist.close()
+			os.remove(TMP_DIR + "/uncompress_flist")
+			raise Exception, (sys.argv[0] + ": Error executing cpio " + \
+			    " cpio command returns %d" % status)
+
+	flist.close()
+	os.remove(TMP_DIR + "/uncompress_flist")
+			
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 def create_target_intr_handler(signum, frame):
@@ -107,7 +196,13 @@
 BR_BUILD = sys.argv[4]		# Bootroot build area
 
 # Destination and name of bootroot file.
-BR_ARCHFILE = PKG_IMG_MNT_PT + BR_FILENAME
+is_sparc = (platform.platform().find('sparc') >= 0)
+
+if is_sparc:
+	BR_ARCHFILE = PKG_IMG_MNT_PT + BR_SPARC_FILENAME
+else:
+	BR_ARCHFILE = PKG_IMG_MNT_PT + BR_X86_FILENAME
+
 
 # Location of the lofi file mountpoint, known only to this file.
 BR_LOFI_MNT_PT = TMP_DIR + "/br_lofimnt"
@@ -184,10 +279,28 @@
 	print >>sys.stderr, (
 	    "Warning: Could not tunefs the bootroot to use all space")
 
+if is_sparc:
+	etc_system = open(BR_BUILD + "/etc/system", "a+")
+	etc_system.write("set root_is_ramdisk=1\n")
+	etc_system.write("set ramdisk_size=" + str(bootroot_size) + "\n")
+	etc_system.close()
+
 # Copy files to the archive.
 cmd = CD + " " + BR_BUILD + "; "
 cmd += FIND + " . | " + CPIO + " -pdum " + BR_LOFI_MNT_PT
 copy_status = os.system(cmd)
+if (copy_status != 0):
+	status = ti_release_target({
+	    TI_ATTR_TARGET_TYPE:TI_TARGET_TYPE_DC_RAMDISK,
+	    TI_ATTR_DC_RAMDISK_DEST: BR_LOFI_MNT_PT,
+	    TI_ATTR_DC_RAMDISK_FS_TYPE: TI_DC_RAMDISK_FS_TYPE_UFS,
+	    TI_ATTR_DC_RAMDISK_BOOTARCH_NAME: BR_ARCHFILE })
+	raise Exception, (sys.argv[0] + ": Error copying files to bootroot " +
+	    "container; find/cpio command returns %d" % status)
+
+if is_sparc:
+	print "Doing compression..."
+	compress(BR_BUILD, BR_LOFI_MNT_PT)
 
 # Unmount the bootroot file and delete the lofi device
 status = ti_release_target({
@@ -195,41 +308,39 @@
     TI_ATTR_DC_RAMDISK_DEST: BR_LOFI_MNT_PT,
     TI_ATTR_DC_RAMDISK_FS_TYPE: TI_DC_RAMDISK_FS_TYPE_UFS,
     TI_ATTR_DC_RAMDISK_BOOTARCH_NAME: BR_ARCHFILE })
-if (copy_status != 0):
-	raise Exception, (sys.argv[0] + ": Error copying files to bootroot " +
-	    "container;  find/cpio command returns %d" % status)
-
-elif (status != 0):
+if (status != 0):
 	raise Exception, (sys.argv[0] +
 	    ": Unable to release boot archive: ti_release_target returned %d" %
 	    status)
 
-if (BR_COMPR_TYPE == "none"):
-	print "Skipping compression..."
-else:
-	print "Doing compression..."
-
-	# archive file using 7zip command and gzip compression
-	cmd = CMD7ZA + " a "
-	if (BR_COMPR_TYPE == "gzip"):
-		cmd += "-tgzip -mx=" + BR_COMPR_LEVEL + " "
+# We did the sparc compression above, now do it for x86
+if not is_sparc:
+	if (BR_COMPR_TYPE == "none"):
+		print "Skipping compression..."
 	else:
-		raise Exception, (sys.argv[0] + ": Unrecognized bootroot " +
-		    "compression type: " + BR_COMPR_TYPE)
-	cmd += BR_ARCHFILE + ".gz " + BR_ARCHFILE
-	status = os.system(cmd)
-	if (status != 0):
-		raise Exception, (sys.argv[0] +
-		    ": Error compressing bootroot: " +
-		    "7za command returns %d" % status)
+		print "Doing compression..."
 
-	# move compressed file to proper location in pkg image area
-	mvcmd = MV + " " + BR_ARCHFILE + ".gz " + BR_ARCHFILE
-	status = os.system(mvcmd)
-	if (status != 0):
-		raise Exception, (sys.argv[0] + ": Error moving " +
-		    "bootroot from %s to %s: mv returns %d" %
-		    (BR_ARCHFILE + '.gz', BR_ARCHFILE, status))
+		# archive file using 7zip command and gzip compression
+		cmd = CMD7ZA + " a "
+		if (BR_COMPR_TYPE == "gzip"):
+			cmd += "-tgzip -mx=" + BR_COMPR_LEVEL + " "
+		else:
+			raise Exception, (sys.argv[0] + ": Unrecognized bootroot " +
+			    "compression type: " + BR_COMPR_TYPE)
+		cmd += BR_ARCHFILE + ".gz " + BR_ARCHFILE
+		status = os.system(cmd)
+		if (status != 0):
+			raise Exception, (sys.argv[0] +
+			    ": Error compressing bootroot: " +
+			    "7za command returns %d" % status)
+
+		# move compressed file to proper location in pkg image area
+		mvcmd = MV + " " + BR_ARCHFILE + ".gz " + BR_ARCHFILE
+		status = os.system(mvcmd)
+		if (status != 0):
+			raise Exception, (sys.argv[0] + ": Error moving " +
+			    "bootroot from %s to %s: mv returns %d" %
+			    (BR_ARCHFILE + '.gz', BR_ARCHFILE, status))
 
 os.chmod(BR_ARCHFILE, 0644)
 
--- a/usr/src/cmd/distro_const/utils/bootroot_initialize.py	Fri Dec 12 12:34:17 2008 +0800
+++ b/usr/src/cmd/distro_const/utils/bootroot_initialize.py	Fri Dec 12 12:11:41 2008 -0700
@@ -35,10 +35,7 @@
 import sys
 import errno
 from osol_install.ManifestRead import ManifestRead
-from osol_install.distro_const.DC_ti import ti_create_target
-from osol_install.distro_const.DC_ti import ti_release_target
 from osol_install.distro_const.dc_utils import get_manifest_list
-from osol_install.distro_const.dc_utils import get_manifest_value
 from osol_install.transfer_mod import tm_perform_transfer
 from osol_install.distro_const.DC_defs import \
     BOOT_ROOT_CONTENTS_BASE_INCLUDE_TO_TYPE_DIR
@@ -54,7 +51,6 @@
 FIND = "/usr/bin/find"
 CPIO = "/usr/bin/cpio"
 GREP = "/usr/bin/grep"
-RM = "/usr/bin/rm"
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 # Main
--- a/usr/src/cmd/distro_const/utils/create_iso	Fri Dec 12 12:34:17 2008 +0800
+++ b/usr/src/cmd/distro_const/utils/create_iso	Fri Dec 12 12:11:41 2008 -0700
@@ -84,10 +84,14 @@
 
 $RM -f $DIST_ISO
 
-$MKISOFS -o $DIST_ISO -b boot/grub/stage2_eltorito -c .catalog \
-    -no-emul-boot -boot-load-size 4 -boot-info-table -N -l -R -U \
-    -allow-multidot -no-iso-translate -cache-inodes -d -D -V \
-    "$DISTRO_NAME" "$PKG_IMG_PATH"
+if [ `uname -m` == "i86pc" ] ; then
+	$MKISOFS -o $DIST_ISO -b boot/grub/stage2_eltorito -c .catalog \
+	    -no-emul-boot -boot-load-size 4 -boot-info-table -N -l -R -U \
+	    -allow-multidot -no-iso-translate -cache-inodes -d -D -V \
+	    "$DISTRO_NAME" "$PKG_IMG_PATH"
+else
+	$MKISOFS -o $DIST_ISO -N -l -R -D -V "$DISTRO_NAME" "$PKG_IMG_PATH"
+fi
 
 if [ "$?" != "0" ] ; then
 	print -u2 "$0: mkisofs of $DIST_ISO failed"
--- a/usr/src/cmd/slim-install/svc/live-fs-root	Fri Dec 12 12:34:17 2008 +0800
+++ b/usr/src/cmd/slim-install/svc/live-fs-root	Fri Dec 12 12:11:41 2008 -0700
@@ -159,7 +159,15 @@
 	# Remount root RW
 	#
 	echo "\rRemounting root read/write" > /dev/msglog
-	/sbin/mount -o remount,rw /devices/ramdisk:a /
+	ISA_INFO=`/sbin/uname -p`
+	if [ $ISA_INFO = "sparc" ]
+	then
+		# ramdisk is differently labeled in sparc vs x86
+		/sbin/mount -o remount,rw /devices/ramdisk-root:a /
+	else
+		# x86 label
+		/sbin/mount -o remount,rw /devices/ramdisk:a /
+	fi
 
 
 	#