--- 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
#