usr/src/tools/scripts/bfu.sh
author masputra
Sat, 22 Oct 2005 22:50:14 -0700
changeset 741 40027a3621ac
parent 693 1c08294a694e
child 744 a5be23ccdb68
permissions -rw-r--r--
PSARC 2005/082 Yosemite: UDP Performance Enhancement 4796051 Solaris needs a more complete HW checksumming support 4905227 duplicate macros in ipclassifier.h and ip.h 4915681 need hardware checksum offload for the case of IP/UDP reassembly 6201076 outbound flow-control dysfunctional, ip to ce using mdt 6223331 ipv6 flow control may corrupt UDP packets 6223809 16-bit aligned IP header should be allowed for all x86 platforms 6275398 Galaxy hangs when running lmbench 6281836 Yosemite project integration into Solaris 6281885 xge needs to support IPv6 checksum offload 6282776 IPv6 NCE fast path is not created for incoming solicitation 6304890 IP transmit-side checksum logic needs to be tightened 6304902 IP6_IN_NOCKSUM is obsolete and should be torched 6304904 UDP should reject TI_GETPEERNAME for non-connected endpoint 6306768 IP and UDP device and module definitions need to be centralized
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
#!/bin/ksh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
# CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     6
# Common Development and Distribution License, Version 1.0 only
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
# (the "License").  You may not use this file except in compliance
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
# with the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
# or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
# See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
# and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
# When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
# If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
# fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
# information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
# CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
#
132
e3f7eaf7dde4 PSARC/2005/362 Removal of <rpc/trace.h>
robinson
parents: 78
diff changeset
    23
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
# Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
# ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
# Upgrade a machine from a cpio archive area in about 5 minutes.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
# By Roger Faulkner and Jeff Bonwick, April 1993.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
# (bfu == Bonwick/Faulkner Upgrade, a.k.a. Blindingly Fast Upgrade)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
# Usage: bfu    [-f] <archive_dir> [root-dir]	# for normal machines
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
#        bfu -c [-f] <archive_dir> <exec-dir>	# for diskless clients
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
# The -f flag is to override the built-in safety check which requires
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
# that the starting-point OS be a least a certain revision.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
# You have to be super-user.  It's safest to run this from the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
# system console, although I've run it under OW and even via
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
# remote login with no problems.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
# You will have to reboot the system when the upgrade is complete.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
# You should add any administrative files you care about to this list.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
# Warning: there had better be no leading '/' on any of these filenames.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
# The CDPATH variable causes ksh's `cd' builtin to emit messages to stdout
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
# under certain circumstances, which can really screw things up; unset it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
unset CDPATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
export LC_ALL="C"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
if [ -z "$GATEPATH" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
	GATEPATH=/ws/onnv-gate
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	test -d $GATEPATH || GATEPATH=/net/onnv.eng/export/gate
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
if [ -z "$ARCHIVEPATH" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
	ARCHIVEPATH=/ws/onnv-gate
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
	test -d $ARCHIVEPATH || ARCHIVEPATH=/net/onnv.eng/export
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
export GATE=${GATEPATH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
export ARCHIVE=${ARCHIVEPATH}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
# NOTE:	Entries in *_files must expand to either the exact files required,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
#	or to directories that will be scoured for files.  Any directories
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
#	(and subdirectories) resulting from a wildcard expansion will be
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
#	fully recursed by BFU's searching for files.  (E.g. /etc/inet/* will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
#	include all files in any of its directories, as well as any files in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
#	/etc/inet/ itself.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
# First list: files to be saved in global and non-global zones.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
all_zones_files="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
	etc/.login
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
	etc/acct/holidays
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
	etc/acctadm.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
	etc/aggregation.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
	etc/auto_*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
	etc/cron.d/at.deny
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
	etc/cron.d/cron.deny
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
	etc/crypto/pkcs11.conf
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
    87
	etc/datalink.conf
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	etc/default/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	etc/dfs/dfstab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
	etc/dumpdates
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	etc/ftpd/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	etc/ftpusers
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
	etc/group
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
	etc/gss/gsscred.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
	etc/gss/mech
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	etc/gss/qop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	etc/inet/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	etc/init.d/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	etc/inittab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
	etc/krb5/kadm5.acl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
	etc/krb5/kdc.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	etc/krb5/kpropd.acl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	etc/krb5/krb5.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	etc/krb5/warn.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	etc/logadm.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
	etc/logindevperm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	etc/lp/Systems
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
	etc/mail/*.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
	etc/mail/*.hf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
	etc/mail/*.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	etc/mail/aliases
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	etc/mail/helpfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
	etc/mail/local-host-names
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
	etc/mail/trusted-users
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
	etc/net/*/services
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	etc/netconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	etc/nfs/nfslog.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	etc/nfssec.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	etc/nscd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	etc/nsswitch.*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	etc/pam.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	etc/passwd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
	etc/policy.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
	etc/printers.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
	etc/profile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	etc/project
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	etc/publickey
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	etc/remote
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
	etc/named.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
	etc/resolv.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
	etc/rmmount.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
	etc/rpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
	etc/rpld.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
	etc/saf/_sactab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
	etc/saf/_sysconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
	etc/saf/zsmon/_pmtab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
	etc/security/*_attr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
	etc/security/audit_*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
	etc/security/crypt.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
	etc/security/policy.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
	etc/sfw/openssl/openssl.cnf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
	etc/shadow
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
	etc/skel/.profile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
	etc/skel/local.*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
	etc/smartcard/.keys
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
	etc/smartcard/desktop.properties
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
	etc/smartcard/ocf.classpath
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
	etc/smartcard/opencard.properties
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
	etc/ssh/ssh_config
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
	etc/ssh/sshd_config
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
	etc/syslog.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
	etc/ttydefs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
	etc/ttysrch
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
	etc/user_attr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
	etc/uucp/[A-Z]*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	etc/vfstab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
	etc/vold.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	var/spool/cron/crontabs/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
	var/yp/Makefile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	var/yp/aliases
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
	var/yp/nicknames
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
# Second list: files to be saved in the global zone only.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
global_zone_only_files="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
	boot/grub/menu.lst
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
	boot/solaris/bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
	boot/solaris/devicedb/master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
	boot/solaris/filelist.ramdisk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
	etc/bootrc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
	etc/crypto/kcf.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
	etc/devlink.tab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
	etc/driver_aliases
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
	etc/driver_classes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
	etc/ipf/ipf.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
	etc/ipf/pfil.ap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	etc/iu.ap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	etc/lvm/devpath
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
	etc/lvm/lock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
	etc/lvm/md.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
	etc/lvm/md.ctlrmap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
	etc/lvm/md.tab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
	etc/lvm/mddb.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
	etc/lvm/runtime.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
	etc/mach
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
	etc/minor_perm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
	etc/name_to_major
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
	etc/name_to_sysnum
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
	etc/nca/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
	etc/openwin/server/etc/OWconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
	etc/path_to_inst
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
	etc/power.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
	etc/ppp/chap-secrets
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
	etc/ppp/options
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
	etc/ppp/pap-secrets
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
	etc/security/device_policy
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
	etc/security/extra_privs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
	etc/system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
	etc/zones/index
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
	kernel/drv/elxl.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
	kernel/drv/md.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
	kernel/drv/options.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
	kernel/drv/ra.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
	kernel/drv/scsa2usb.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	kernel/drv/scsi_vhci.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	kernel/drv/sd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	platform/*/kernel/drv/*ppm.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
	platform/i86pc/kernel/drv/aha.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
	platform/i86pc/kernel/drv/asy.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
	platform/sun4u/boot.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
# Third list: files extracted from generic.root but which belong in the global
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
# zone only: they are superfluous (and some even harmful) in local zones.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
# (note: as /etc/init.d scripts are converted to smf(5) "Greenline" services,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
# they (and their /etc/rc?.d hardlinks) should be removed from this list when
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
# they are added to smf_obsolete_rc_files, below)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
superfluous_local_zone_files="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
	dev/dsk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
	dev/fd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	dev/pts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
	dev/rdsk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
	dev/rmt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
	dev/sad
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
	dev/stderr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
	dev/stdin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
	dev/stdout
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
	dev/swap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
	dev/term
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
	devices
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
	etc/dacf.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	etc/dat
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	etc/default/dhcpagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
	etc/default/inetinit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
	etc/default/ipsec
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
	etc/default/metassist.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
	etc/default/mpathd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
	etc/default/power
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
	etc/flash/postdeployment/svm.cleanup
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
	etc/flash/predeployment/svm.save
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
	etc/fm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
	etc/inet/datemsk.ndpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
	etc/inet/ike
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
	etc/inet/ipqosconf.1.sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
	etc/inet/ipqosconf.2.sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
	etc/inet/ipqosconf.3.sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
	etc/inet/ipsecalgs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
	etc/inet/ipsecinit.sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
	etc/inet/mipagent.conf-sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
	etc/inet/mipagent.conf.fa-sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
	etc/inet/mipagent.conf.ha-sample
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
	etc/inet/secret
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
	etc/inet/sock2path
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
	etc/init.d/audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
	etc/init.d/devlinks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
	etc/init.d/dodatadm.udaplt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
	etc/init.d/drvconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
	etc/init.d/flashprom
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
	etc/init.d/llc2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   265
	etc/init.d/mipagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
	etc/init.d/ncakmod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
	etc/init.d/ncalogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
	etc/init.d/pcmcia
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
	etc/init.d/pppd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
	etc/init.d/sckm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
	etc/init.d/wrsmcfg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
	etc/ipf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
	etc/llc2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
	etc/lvm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
	etc/nca
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
	etc/openwin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
	etc/ppp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
	etc/rc0.d/K06mipagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
	etc/rc0.d/K33audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
	etc/rc0.d/K34ncalogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   281
	etc/rc0.d/K42sckm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   282
	etc/rc0.d/K50pppd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
	etc/rc0.d/K52llc2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
	etc/rc1.d/K06mipagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
	etc/rc1.d/K33audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
	etc/rc1.d/K34ncalogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
	etc/rc1.d/K40sf880dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
	etc/rc1.d/K42sckm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
	etc/rc1.d/K50pppd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
	etc/rc1.d/K52llc2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
	etc/rc2.d/K06mipagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
	etc/rc2.d/S40llc2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
	etc/rc2.d/S42ncakmod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
	etc/rc2.d/S47pppd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
	etc/rc2.d/S70sckm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
	etc/rc2.d/S75flashprom
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
	etc/rc2.d/S81dodatadm.udaplt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   298
	etc/rc2.d/S94ncalogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   299
	etc/rc2.d/S98efcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   300
	etc/rc2.d/S99audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   301
	etc/rc3.d/S80mipagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   302
	etc/rcS.d/K06mipagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   303
	etc/rcS.d/K34ncalogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   304
	etc/rcS.d/K42sckm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   305
	etc/rcS.d/K44wrsmcfg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
	etc/rcS.d/K50pppd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
	etc/rcS.d/K52llc2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
	etc/rcS.d/S29wrsmcfg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
	etc/rcm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
	etc/snmp/conf/mipagent.acl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
	etc/snmp/conf/mipagent.reg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
	etc/sock2path
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
	etc/usb
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
	etc/wrsm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
	etc/zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
	kernel
172
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
   317
	lib/svc/method/svc-intrd
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   318
	var/adm/pool
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
	var/fm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
	var/log/pool
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   321
	var/svc/manifest/network/aggregation.xml
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   322
	var/svc/manifest/network/datalink-init.xml
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   323
	var/svc/manifest/network/datalink.xml
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
	var/svc/manifest/network/ipfilter.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
	var/svc/manifest/network/pfil.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
	var/svc/manifest/platform
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
	var/svc/manifest/system/cvc.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   328
	var/svc/manifest/system/dumpadm.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   329
	var/svc/manifest/system/fmd.xml
172
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
   330
	var/svc/manifest/system/intrd.xml
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   331
	var/svc/manifest/system/mdmonitor.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   332
	var/svc/manifest/system/metainit.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   333
	var/svc/manifest/system/picl.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   334
	var/svc/manifest/system/power.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   335
	var/svc/manifest/system/sysevent.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   336
	var/svc/manifest/system/zones.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   337
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   338
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   339
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   340
# files to be preserved, ie unconditionally restored to "child" versions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   341
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   342
preserve_files="
222
dd716cb7b870 6228039 bfu clobbers amd64 sysinit module
comay
parents: 196
diff changeset
   343
	kernel/misc/amd64/sysinit
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   344
	kernel/misc/sysinit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   345
	var/adm/aculog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   346
	var/adm/spellhist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   347
	var/adm/utmpx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   348
	var/adm/wtmpx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   349
	var/log/authlog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   350
	var/log/syslog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   351
	var/saf/zsmon/log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   352
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   353
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   354
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   355
realmode_files="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   356
	boot/solaris/bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   357
	boot/solaris/devicedb/master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   358
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   359
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   360
local_zone_info_file=/tmp/local_zone_info.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   361
rm -f $local_zone_info_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   362
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   363
fail() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   364
	print "$*" >& 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   365
	print "bfu aborting" >& 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   366
	rm -f $local_zone_info_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   367
	prun 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   368
	exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   369
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   370
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   371
filelist() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   372
	files="$all_zones_files $preserve_files"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   373
	if [ $1 = "global" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   374
		files="$global_zone_only_files $files"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   375
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   376
	find $files -depth -type f ! -name core -print 2>/dev/null | sort -u || {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   377
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   378
		# Force cpio to return non-zero by printing an error message
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   379
		# to stdout that it won't be able to lstat().
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   380
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   381
		echo 'filelist: sort failed'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   382
		fail "sort failed"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   383
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   384
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   385
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   386
realmode_filelist() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   387
	find $realmode_files -depth -type f ! -name core -print 2>/dev/null | sort
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   388
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   389
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   390
smf_inetd_conversions="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   391
	100134
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   392
	100150
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   393
	100155
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   394
	100229
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   395
	100230
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   396
	100234
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   397
	100242
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   398
	100422
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   399
	chargen
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   400
	comsat
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   401
	daytime
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   402
	discard
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   403
	echo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   404
	eklogin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   405
	exec
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   406
	finger
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   407
	ftp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   408
	gssd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   409
	klogin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   410
	krb5_prop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   411
	kshell
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   412
	ktkt_warnd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   413
	login
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   414
	metad
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   415
	metamedd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   416
	metamhd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   417
	name
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   418
	ocfserv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   419
	printer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   420
	rexd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   421
	rquotad
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   422
	rstatd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   423
	rusersd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   424
	shell
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   425
	smserverd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   426
	sprayd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   427
	sun-dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   428
	talk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   429
	telnet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   430
	time
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   431
	uucp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   432
	walld
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   433
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   434
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   435
enable_next_boot () {
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   436
	if [ -x /tmp/bfubin/svccfg ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   437
	    svcadm disable -t $1
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   438
	    [ $? = 0 ] || echo "warning: unable to temporarily disable $1"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   439
	    svccfg -s $1 setprop general/enabled = true
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   440
	    [ $? = 0 ] || echo "warning: unable to enable $1 for next boot"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   441
	fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   442
}
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
   443
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   444
smf_inetd_disable() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   445
	inetconf=$rootprefix/etc/inet/inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   446
	inettmp=/tmp/inetd.tmp.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   447
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   448
	sed "$(for i in $smf_inetd_conversions; do 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   449
		echo "s:^[ 	]*$i[ 	/]:#SMFbfu# &:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   450
	done)" $inetconf > $inettmp && ! cmp -s $inettmp $inetconf &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   451
	    cp $inettmp $inetconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   452
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   453
	rm -f -- $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   454
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   455
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   456
smf_inetd_reenable() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   457
	inetconf=$rootprefix/etc/inet/inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   458
	inettmp=/tmp/inetd.tmp.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   459
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   460
	sed 's/^#SMFbfu# //' $inetconf > $inettmp && cp $inettmp $inetconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   461
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   462
	rm -f -- $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   463
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   464
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   465
smf_tftp_reinstall() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   466
	inetconf=$rootprefix/etc/inet/inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   467
	inettmp=/tmp/inetd.tmp.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   468
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   469
	if grep '^#SMFbfu# tftp' $inetconf >/dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   470
		# BFU previously commented out, put it back in place
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   471
	    	sed 's/^#SMFbfu# tftp/tftp/' $inetconf > $inettmp &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   472
		    cp $inettmp $inetconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   473
	elif ! grep '^[#	 ]*tftp' $inetconf >/dev/null; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   474
		# No entry, append to end
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   475
		cat >>$inetconf <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   476
# TFTPD - tftp server (primarily used for booting)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   477
#tftp	dgram	udp6	wait	root	/usr/sbin/in.tftpd	in.tftpd -s /tftpboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   478
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   479
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   480
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   481
	rm -f -- $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   482
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   483
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   484
inetd_conf_svm_hack() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   485
	# Since inetd.conf is updated by SUNWmdr's postinstall script,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   486
	# we will update the actual inetd.conf here to reflect the postinstall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   487
	# changes.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   488
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   489
	inetconf=$rootprefix/etc/inet/inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   490
	inettmp=/tmp/inetd.tmp.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   491
	inetnew=/tmp/inetd.new.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   492
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   493
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   494
	# only change inetd.conf if the rpc.metad entry is out of date
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   495
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   496
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   497
	if ! grep "^[# 	]*100229/1-2" $inetconf > /dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   498
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   499
		# Grab existing rpc entries for rpc.metad
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   500
		# and convert spaces to tabs within the rpc entry, as well as
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   501
		# the transport method; 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   502
		# or add a new entry in case there was none.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   503
		if grep "^[# 	]*100229/1" $inetconf > /dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   504
			grep "^# METAD - SLVM metadb" $inetconf > $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   505
			grep "^[# 	]*100229/1" $inetconf | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   506
			    sed -e 's/[ 	][ 	]*/	/g' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   507
				-e 's?100229/1?100229/1-2?' >> $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   508
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   509
			echo '# METAD - SVM metadb Daemon' > $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   510
			echo "100229/1-2\ttli\trpc/tcp\twait\troot\t/usr/sbin/rpc.metad\trpc.metad" >> $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   511
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   512
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   513
		grep -v '^# METAD - SLVM metadb' $inetconf | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   514
		    grep -v '^[# 	]*100229/1' > $inetnew
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   515
		cat $inettmp >> $inetnew
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   516
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   517
		if ! diff $inetnew $inetconf > /dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   518
			print "Updating inet.conf metad entry ... \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   519
			if cp $inetnew $inetconf ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   520
				print "done."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   521
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   522
				print "failed."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   523
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   524
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   525
		rm -f $inettmp $inetnew
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   526
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   527
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   528
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   529
	# only change inetd.conf if the rpc.mdcommd entry is out of date
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   530
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   531
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   532
	if ! grep "^[# 	]*100422/1" $inetconf > /dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   533
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   534
		# Grab existing rpc entries for rpc.mdcommd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   535
		# and convert spaces to tabs within the rpc entry,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   536
		# or add a new entry in case there was none.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   537
		if grep "^[#    ]*100422/1" $inetconf > /dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   538
			grep "^# MDMN_COMMD - SVM Multi node" $inetconf > $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   539
			grep "^[#       ]*100422/1" $inetconf | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   540
				sed -e 's/[         ][      ]*/     /g' >> $inettmp 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   541
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   542
			echo '# MDMN_COMMD - SVM Multi node communication daemon' >$inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   543
			echo '100422/1\ttli\trpc/tcp\twait\troot\t/usr/sbin/rpc.mdcommd\trpc.mdcommd' >> $inettmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   544
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   545
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   546
		grep -v '^# MDMN_COMMD - SVM Multi node' $inetconf | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   547
		grep -v '^[#        ]*100422/1' > $inetnew
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   548
		cat $inettmp >> $inetnew
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   549
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   550
		if ! diff $inetnew $inetconf > /dev/null ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   551
			print "Updating inetd.conf rpc.mdcommd entry ... \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   552
			if cp $inetnew $inetconf; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   553
				print "done."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   554
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   555
				print "failed."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   556
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   557
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   558
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   559
		rm -f $inettmp $inetnew
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   560
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   561
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   562
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   563
update_policy_conf() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   564
	# update /etc/security/policy.conf with the default
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   565
	# Solaris crypt(3c) policy.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   566
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   567
	dest=$rootprefix/etc/security/policy.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   568
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   569
	grep 'CRYPT_' $dest > /dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   570
	if [ $? = 1 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   571
		print "Updating entries for crypt(3c), see policy.conf(4)"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   572
	cat >> $dest <<EOM
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   573
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   574
# crypt(3c) Algorithms Configuration
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   575
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   576
# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   577
# be used for new passwords.  This is enforced only in crypt_gensalt(3c).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   578
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   579
CRYPT_ALGORITHMS_ALLOW=1,2a,md5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   580
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   581
# To deprecate use of the traditional unix algorithm, uncomment below
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   582
# and change CRYPT_DEFAULT= to another algorithm.  For example,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   583
# CRYPT_DEFAULT=1 for BSD/Linux MD5.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   584
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   585
#CRYPT_ALGORITHMS_DEPRECATE=__unix__
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   586
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   587
# The Solaris default is the traditional UNIX algorithm.  This is not
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   588
# listed in crypt.conf(4) since it is internal to libc.  The reserved
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   589
# name __unix__ is used to refer to it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   590
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   591
CRYPT_DEFAULT=__unix__
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   592
EOM
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   593
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   594
	grep PRIV_ $dest >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   595
	if [ $? = 1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   596
		echo "Updating entries for privileges(5)," \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   597
		     "see policy.conf(4) for details."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   598
cat >> $dest <<EOM
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   599
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   600
# These settings determine the default privileges users have.  If not set,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   601
# the default privileges are taken from the inherited set.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   602
# There are two different settings; PRIV_DEFAULT determines the default
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   603
# set on login; PRIV_LIMIT defines the Limit set on login.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   604
# Individual users can have privileges assigned or taken away through
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   605
# user_attr.  Privileges can also be assigned to profiles in which case
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   606
# the users with those profiles can use those privileges through pfexec(1m).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   607
# For maximum future compatibility, the specifications should
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   608
# always include "basic" or "all"; privileges should then be removed using
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   609
# the negation.  E.g., PRIV_LIMIT=all,!sys_linkdir takes away only the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   610
# sys_linkdir privilege, regardless of future additional privileges.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   611
# Similarly, PRIV_DEFAULT=basic,!file_link_any takes away only the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   612
# file_link_any privilege from the basic privilege set; only that notation
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   613
# is immune from a future addition of currently unprivileged operations to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   614
# the basic privilege set.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   615
# NOTE: removing privileges from the the Limit set requires EXTREME care
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   616
# as any set-uid root program may suddenly fail because it lacks certain
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   617
# privilege(s).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   618
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   619
#PRIV_DEFAULT=basic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   620
#PRIV_LIMIT=all
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   621
EOM
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   622
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   623
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   624
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   625
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   626
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   627
# Cleanup nfsmapid configuration before extracting
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   628
# root bits.  Remove if they exist:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   629
#	nfsmapid entry in inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   630
#	nfsmapid entry in /etc/net/ti*/services
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   631
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   632
# Going forward neither should exist, but no harm if services entry exists
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   633
# Going way backwards (pre-04/28/2004), inetd.conf must exist but will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   634
# be a conflict that should be merged in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   635
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   636
nfsmapid_cfg() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   637
	inetdconf=$rootprefix/etc/inet/inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   638
	tmpinetcf=/tmp/inetd.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   639
	cp -pf ${inetdconf} ${tmpinetcf}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   640
	cat /dev/null > ${inetdconf} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   641
       	sed -e "/^#[#	 ]*NFSv4/d"		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   642
	    -e "/^[#	 ]*100166\/1/d"		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   643
	    ${tmpinetcf} > ${inetdconf} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   644
	rm -f ${tmpinetcf}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   645
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   646
	tmpservices=/tmp/services.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   647
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   648
	services=$rootprefix/etc/net/ticotsord/services
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   649
	cp -pf ${services} ${tmpservices}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   650
	cat /dev/null > ${services} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   651
       	sed -e "/^[#	 ]*nfsmapid/d"		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   652
	    ${tmpservices} > ${services} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   653
	rm -f ${tmpservices}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   654
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   655
	services=$rootprefix/etc/net/ticots/services
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   656
	cp -pf ${services} ${tmpservices}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   657
	cat /dev/null > ${services} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   658
       	sed -e "/^[#	 ]*nfsmapid/d"		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   659
	    ${tmpservices} > ${services} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   660
	rm -f ${tmpservices}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   661
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   662
	services=$rootprefix/etc/net/ticlts/services
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   663
	cp -pf ${services} ${tmpservices}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   664
	cat /dev/null > ${services} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   665
       	sed -e "/^[#	 ]*nfsmapid/d"		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   666
	    ${tmpservices} > ${services} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   667
	rm -f ${tmpservices}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   668
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   669
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   670
# Define global variables
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   671
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   672
CALL_DEVID_DESTROY=""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   673
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   674
# List of SDS commands that must be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   675
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   676
SDSCMDLIST="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   677
growfs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   678
metaclear
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   679
metadb
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   680
metadetach
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   681
metahs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   682
metainit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   683
metaoffline
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   684
metaonline
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   685
metaparam
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   686
metarename
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   687
metareplace
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   688
metaroot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   689
metaset
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   690
metastat
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   691
metasync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   692
metattach
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   693
rpc.metad
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   694
rpc.metamhd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   695
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   696
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   697
# List of SDS configuration files that must be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   698
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   699
SDSCONFIGLIST="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   700
lock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   701
md.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   702
mddb.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   703
md.tab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   704
devpath
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   705
md.ctlrmap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   706
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   707
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   708
# List of rc scripts that must be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   709
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   710
RCLIST="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   711
etc/init.d/SUNWmd.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   712
etc/init.d/SUNWmd.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   713
etc/init.d/lvm.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   714
etc/init.d/lvm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   715
etc/rcS.d/S35SUNWmd.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   716
etc/rcS.d/S35lvm.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   717
etc/rc2.d/S95SUNWmd.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   718
etc/rc2.d/S95lvm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   719
etc/rcS.d/S35slvm.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   720
etc/rc2.d/S95slvm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   721
etc/init.d/slvm.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   722
etc/init.d/slvm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   723
etc/init.d/init.mdlogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   724
etc/rc3.d/S25mdlogd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   725
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   726
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   727
# List of flashprom-related files that must be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   728
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   729
FLASHPROMLIST="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   730
etc/rc2.d/S75flashprom
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   731
etc/init.d/flashprom
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   732
usr/platform/SUNW,Ultra-2/lib/flash-update.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   733
usr/platform/SUNW,Ultra-4/lib/flash-update.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   734
usr/platform/SUNW,Ultra-Enterprise/lib/flash-update.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   735
usr/platform/sun4u/doc/flashupdate.txt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   736
usr/platform/sun4u/lib/flash-update.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   737
usr/platform/sun4u/lib/prom/SUNW,Ultra-2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   738
usr/platform/sun4u/lib/prom/SUNW,Ultra-4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   739
usr/platform/sun4u/lib/prom/SUNW,Ultra-Enterprise
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   740
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   741
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   742
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   743
# delete the entries associated with bootlist from /etc/system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   744
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   745
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   746
delete_system_bootlist() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   747
	sed -e /"Begin MDD database info"/,/"End MDD database info"/d \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   748
	    < ${SYSTEM_FILE} > /tmp/system.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   749
	cp /tmp/system.$$ ${SYSTEM_FILE} || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   750
	    echo "copy error: /tmp/system.$$ to ${SYSTEM_FILE}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   751
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   752
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   753
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   754
# Add entries in md.conf for bootlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   755
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   756
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   757
fix_mdconf() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   758
	cp ${mdconf} /tmp/md.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   759
	echo >> /tmp/md.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   760
	echo "# Begin MDD database info (do not edit)" >> /tmp/md.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   761
	sed -e 's/^set md://' -e 's/$/;/' ${SYSTEM_FILE} | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   762
	    grep mddb_bootlist >> /tmp/md.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   763
	echo "# End MDD database info (do not edit)" >> /tmp/md.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   764
	cp /tmp/md.conf.$$ ${mdconf} || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   765
	    echo "copy error: /tmp/md.conf.$$ to ${mdconf}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   766
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   767
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   768
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   769
# add_devid_destroy(filename)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   770
# returns contents in filename
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   771
# md_devid_destroy property is required when upgrading
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   772
# from pre SVM to SVM releases or when the device ID returned from
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   773
# the driver changes.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   774
# It is specifically placed between
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   775
# # Begin MDD database info and # End MDD database info because
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   776
# on the subsequent reboot, this line will be removed automatically when
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   777
# metadevadm is run in rc2.d.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   778
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   779
add_devid_destroy() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   780
	cat $1 | awk '{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   781
		if ( $2 == "End" && $4 == "database") {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   782
			print "md_devid_destroy=1;"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   783
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   784
		print $0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   785
	}' >> /tmp/t$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   786
	mv /tmp/t$$ $1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   787
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   788
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   789
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   790
# smf(5) "Greenline" doesn't install the init.d or rc*.d scripts for
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   791
# converted services.  Clean up previous scripts for such services.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   792
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   793
smf_obsolete_rc_files="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   794
	etc/init.d/ANNOUNCE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   795
	etc/init.d/MOUNTFSYS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   796
	etc/init.d/RMTMPFILES
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   797
	etc/init.d/audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   798
	etc/init.d/autofs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   799
	etc/init.d/coreadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   800
	etc/init.d/cron
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   801
	etc/init.d/cryptosvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   802
	etc/init.d/cvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   803
	etc/init.d/devfsadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   804
	etc/init.d/dhcp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   805
	etc/init.d/dhcpagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   806
	etc/init.d/domainname
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   807
	etc/init.d/efcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   808
	etc/init.d/inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   809
	etc/init.d/inetinit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   810
	etc/init.d/inetsvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   811
	etc/init.d/initboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   812
	etc/init.d/ipfboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   813
	etc/init.d/kdc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   814
	etc/init.d/kdc.master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   815
	etc/init.d/keymap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   816
	etc/init.d/ldap.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   817
	etc/init.d/libc.mount
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   818
	etc/init.d/network
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   819
	etc/init.d/nfs.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   820
	etc/init.d/nodename
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   821
	etc/init.d/nscd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   822
	etc/init.d/perf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   823
	etc/init.d/pfil
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   824
	etc/init.d/picld
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   825
	etc/init.d/power
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   826
	etc/init.d/rcapd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   827
	etc/init.d/rootusr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   828
	etc/init.d/rpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   829
	etc/init.d/savecore
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   830
	etc/init.d/sf880dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   831
	etc/init.d/slpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   832
	etc/init.d/sshd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   833
	etc/init.d/standardmounts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   834
	etc/init.d/svm.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   835
	etc/init.d/svm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   836
	etc/init.d/sysid.net
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   837
	etc/init.d/sysid.sys
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   838
	etc/init.d/syslog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   839
	etc/init.d/utmpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   840
	etc/init.d/xntpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   841
	etc/init.d/zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   842
	etc/rc0.d/K00ANNOUNCE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   843
	etc/rc0.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   844
	etc/rc0.d/K03sshd
196
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
   845
	etc/rc0.d/K05volmgt
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   846
	etc/rc0.d/K10rcapd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   847
	etc/rc0.d/K21dhcp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   848
	etc/rc0.d/K28kdc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   849
	etc/rc0.d/K28kdc.master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   850
	etc/rc0.d/K28nfs.server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   851
	etc/rc0.d/K32cryptosvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   852
	etc/rc0.d/K33audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   853
	etc/rc0.d/K33efcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   854
	etc/rc0.d/K34svm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   855
	etc/rc0.d/K36sendmail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   856
	etc/rc0.d/K36utmpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   857
	etc/rc0.d/K37power
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   858
	etc/rc0.d/K40cron
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   859
	etc/rc0.d/K40inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   860
	etc/rc0.d/K40nscd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   861
	etc/rc0.d/K40sf880dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   862
	etc/rc0.d/K40slpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   863
	etc/rc0.d/K40syslog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   864
	etc/rc0.d/K40xntpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   865
	etc/rc0.d/K41autofs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   866
	etc/rc0.d/K41ldap.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   867
	etc/rc0.d/K41nfs.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   868
	etc/rc0.d/K41rpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   869
	etc/rc0.d/K43inet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   870
	etc/rc0.d/K68picld
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   871
	etc/rc0.d/K83devfsadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   872
	etc/rc0.d/K90dhcpagent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   873
	etc/rc1.d/K00ANNOUNCE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   874
	etc/rc1.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   875
	etc/rc1.d/K03sshd
196
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
   876
	etc/rc1.d/K05volmgt
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   877
	etc/rc1.d/K10rcapd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   878
	etc/rc1.d/K21dhcp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   879
	etc/rc1.d/K28kdc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   880
	etc/rc1.d/K28kdc.master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   881
	etc/rc1.d/K28nfs.server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   882
	etc/rc1.d/K33audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   883
	etc/rc1.d/K33efcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   884
	etc/rc1.d/K34svm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   885
	etc/rc1.d/K36sendmail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   886
	etc/rc1.d/K36utmpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   887
	etc/rc1.d/K37power
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   888
	etc/rc1.d/K40cron
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   889
	etc/rc1.d/K40inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   890
	etc/rc1.d/K40nscd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   891
	etc/rc1.d/K40sf880dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   892
	etc/rc1.d/K40slpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   893
	etc/rc1.d/K40syslog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   894
	etc/rc1.d/K40xntpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   895
	etc/rc1.d/K41autofs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   896
	etc/rc1.d/K41ldap.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   897
	etc/rc1.d/K41rpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   898
	etc/rc1.d/K43inet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   899
	etc/rc1.d/K99libc.mount
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   900
	etc/rc1.d/S01MOUNTFSYS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   901
	etc/rc2.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   902
	etc/rc2.d/K03sshd
196
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
   903
	etc/rc2.d/K05volmgt
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   904
	etc/rc2.d/K21dhcp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   905
	etc/rc2.d/K28kdc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   906
	etc/rc2.d/K28kdc.master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   907
	etc/rc2.d/K28nfs.server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   908
	etc/rc2.d/S01MOUNTFSYS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   909
	etc/rc2.d/S05RMTMPFILES
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   910
	etc/rc2.d/S21perf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   911
	etc/rc2.d/S30sysid.net
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   912
	etc/rc2.d/S65ipfboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   913
	etc/rc2.d/S69domainname
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   914
	etc/rc2.d/S69inet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   915
	etc/rc2.d/S71ldap.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   916
	etc/rc2.d/S71rpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   917
	etc/rc2.d/S71sysid.sys
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   918
	etc/rc2.d/S72inetsvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   919
	etc/rc2.d/S72slpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   920
	etc/rc2.d/S73nfs.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   921
	etc/rc2.d/S74autofs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   922
	etc/rc2.d/S74syslog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   923
	etc/rc2.d/S74xntpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   924
	etc/rc2.d/S75cron
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   925
	etc/rc2.d/S75savecore
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   926
	etc/rc2.d/S76nscd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   927
	etc/rc2.d/S77inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   928
	etc/rc2.d/S77sf880dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   929
	etc/rc2.d/S85power
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   930
	etc/rc2.d/S88sendmail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   931
	etc/rc2.d/S88utmpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   932
	etc/rc2.d/S95svm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   933
	etc/rc2.d/S98efcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   934
	etc/rc2.d/S98libc.mount
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   935
	etc/rc2.d/S99audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   936
	etc/rc2.d/S99rcapd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   937
	etc/rc3.d/S13kdc.master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   938
	etc/rc3.d/S14kdc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   939
	etc/rc3.d/S15nfs.server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   940
	etc/rc3.d/S34dhcp
196
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
   941
	etc/rc3.d/S81volmgt
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   942
	etc/rc3.d/S89sshd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   943
	etc/rc3.d/S99zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   944
	etc/rcS.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   945
	etc/rcS.d/K03sshd
196
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
   946
	etc/rcS.d/K05volmgt
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   947
	etc/rcS.d/K10rcapd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   948
	etc/rcS.d/K21dhcp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   949
	etc/rcS.d/K28kdc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   950
	etc/rcS.d/K28kdc.master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   951
	etc/rcS.d/K28nfs.server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   952
	etc/rcS.d/K33audit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   953
	etc/rcS.d/K33efcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   954
	etc/rcS.d/K34svm.sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   955
	etc/rcS.d/K36sendmail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   956
	etc/rcS.d/K36utmpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   957
	etc/rcS.d/K37power
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   958
	etc/rcS.d/K40cron
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   959
	etc/rcS.d/K40inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   960
	etc/rcS.d/K40nscd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   961
	etc/rcS.d/K40sf880dr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   962
	etc/rcS.d/K40slpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   963
	etc/rcS.d/K40syslog
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   964
	etc/rcS.d/K40xntpd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   965
	etc/rcS.d/K41autofs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   966
	etc/rcS.d/K41ldap.client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   967
	etc/rcS.d/K41rpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   968
	etc/rcS.d/K43inet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   969
	etc/rcS.d/K99libc.mount
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   970
	etc/rcS.d/S10cvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   971
	etc/rcS.d/S10pfil
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   972
	etc/rcS.d/S28network.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   973
	etc/rcS.d/S29nodename.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   974
	etc/rcS.d/S30rootusr.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   975
	etc/rcS.d/S33keymap.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   976
	etc/rcS.d/S35svm.init
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   977
	etc/rcS.d/S40standardmounts.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   978
	etc/rcS.d/S42coreadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   979
	etc/rcS.d/S45initboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   980
	etc/rcS.d/S50devfsadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   981
	etc/rcS.d/S72cryptosvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   982
	etc/rcS.d/S95picld
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   983
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   984
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   985
# Obsolete smf manifests
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   986
smf_obsolete_manifests="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   987
	var/svc/manifest/network/tftp.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   988
	var/svc/manifest/network/lp.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   989
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   990
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   991
# smf services whose manifests have been renamed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   992
smf_renamed_manifests="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   993
	var/svc/manifest/milestone/name-service.xml
25
83a8af2dd475 PSARC 2005/373 Contract for the Miniroot Repository
szhou
parents: 12
diff changeset
   994
	var/svc/manifest/system/filesystem/boot-archive.xml
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   995
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   996
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   997
# Obsolete smf methods
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   998
smf_obsolete_methods="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   999
	lib/svc/method/print-server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1000
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1002
smf_cleanup () {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1003
	(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1004
		cd $root;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1005
		print "Removing obsolete rc.d scripts ... \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1006
		rm -f $smf_obsolete_rc_files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1007
		print "done."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1008
	)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1009
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1010
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1011
smf_new_profiles () {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1012
	[[ "$bfu_isa" = "sparc" ]] || return 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1013
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1014
	[[ -x /tmp/bfubin/svccfg ]] || return 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1015
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1016
	print "Clearing platform profile hash ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1017
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1018
	# platform_SUNW,Sun-Fire.xml (and other new and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1019
	# corrected platforms) were delivered in Build 68.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1020
	if [ ! -f \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1021
		$rootprefix/var/svc/profile/platform_SUNW,Sun-Fire.xml \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1022
		]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1023
		for pfx in " " "v"; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1024
			for plname in \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1025
			    none \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1026
			    SUNW_Sun_Fire_880 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1027
			    SUNW_Sun_Fire_V890 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1028
			    SUNW_Sun_Fire_15000 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1029
			    SUNW_UltraEnterprise_10000; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1030
				svccfg -f - <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1031
select smf/manifest
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1032
delpg ${pfx}ar_svc_profile_platform_${plname}_xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1033
exit
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1034
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1035
			done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1036
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1037
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1038
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1039
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1040
smf_handle_new_services () {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1041
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1042
	# Detect, prior to extraction the arrival of new,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1043
	# default-enabled-in-profile services.  If so, add a command
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1044
	# such that they are enabled.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1045
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1046
	if [ ! -f $rootprefix/var/svc/profile/system/sac.xml ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1047
		echo /usr/sbin/svcadm enable system/sac >> \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1048
		    $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1049
	fi
172
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
  1050
	if [[ $zone = global &&
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
  1051
            ! -f $rootprefix/var/svc/manifest/system/intrd.xml ]]; then
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
  1052
		echo /usr/sbin/svcadm enable system/intrd >> \
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
  1053
		    $rootprefix/var/svc/profile/upgrade
3f157d3c7622 PSARC/2004/199 intrd: Dynamic Interrupt Distribution
esolom
parents: 132
diff changeset
  1054
	fi
196
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
  1055
	if [[ $zone = global &&
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
  1056
	    ! -f $rootprefix/var/svc/profile/system/filesystem/volfs.xml ]]; then
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
  1057
		echo /usr/sbin/svcadm enable system/filesystem/volfs >> \
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
  1058
		    $rootprefix/var/svc/profile/upgrade
2c158140ef85 PSARC/2005/402 volfs(7FS) service
frits
parents: 172
diff changeset
  1059
	fi
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1060
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1061
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1062
smf_copy_manifest() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1063
	mfstbase=`basename $1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1064
	mymfs=$rootprefix/var/svc/manifest/$2/$mfstbase
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1065
	if [[ ! -f $mymfs ]] || ! cmp -s $manifest_src/$1 $mymfs ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1066
		cp $manifest_src/$1 $mymfs ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1067
		    echo "bfu: could not copy $manifest_src/$1"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1068
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1069
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1070
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1071
smf_copy_method() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1072
	cp $manifest_src/$1 $rootprefix/lib/svc/method ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1073
	    echo "bfu: could not copy $manifest_src/$1"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1074
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1075
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1076
smf_cleanup_initd() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1077
	rm -f $rootprefix/etc/rc?.d/[SK]??$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1078
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1079
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1080
smf_delete_manifest() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1081
	(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1082
		mfst=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1083
		cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1084
		[ -f $mfst ] || return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1085
		if [ -r /etc/svc/volatile/repository_door ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1086
			ENTITIES=`/tmp/bfubin/svccfg inventory $mfst`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1087
			for fmri in $ENTITIES; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1088
				/tmp/bfubin/svccfg delete -f $fmri
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1089
			done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1090
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1091
		rm $mfst
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1092
	)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1093
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1094
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1095
smf_delete_methods() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1096
	(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1097
		cd $root;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1098
		rm -f $smf_obsolete_methods
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1099
	)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1100
}	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1101
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1102
smf_delete_renamed_manifests() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1103
	(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1104
		cd $root;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1105
		rm -f $smf_renamed_manifests
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1106
	)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1107
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1108
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1109
smf_gldv3_manifests="
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1110
	var/svc/manifest/network/aggregation.xml
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1111
	var/svc/manifest/network/datalink.xml
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1112
	var/svc/manifest/network/datalink-init.xml
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1113
"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1114
smf_gldv3_methods="
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1115
	lib/svc/method/aggregation
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1116
	lib/svc/method/datalink
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1117
	lib/svc/method/datalink-init
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1118
"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1119
smf_cleanup_gldv3() {
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1120
	(
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1121
		for f in $smf_gldv3_manifests; do
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1122
			smf_delete_manifest $f
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1123
		done
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1124
		cd $root;
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1125
		rm -f $smf_gldv3_methods
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1126
	)
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1127
}
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1128
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1129
old_mfst_dir="var/svc/manifest.orig"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1130
new_mfst_dir="var/svc/manifest"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1131
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1132
smf_enable() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1133
	echo "svcadm enable $*" >> $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1134
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1135
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1136
smf_check_repository() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1137
	repository=etc/svc/repository.db
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1138
	[[ -f $rootprefix/$repository ]] || return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1139
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1140
	print -n "$rootprefix/$repository: " >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1141
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1142
	sqlite="${SQLITEBIN-$GATE/public/bin/$bfu_isa/sqlite}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1143
	[[ -x $sqlite ]] || sqlite=/lib/svc/bin/sqlite
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1144
	if [[ ! -x $sqlite ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1145
		echo "no sqlite binary: skipped integrity check" >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1146
		return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1147
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1148
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1149
	rm -f /tmp/bfurepo.db;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1150
	cp $rootprefix/$repository /tmp/bfurepo.db
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1151
	bad_errors=`echo "PRAGMA integrity_check;" |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1152
	    $sqlite /tmp/bfurepo.db 2>&1 | grep -v '^ok$'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1153
	if [[ $? -eq 0 ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1154
		echo "integrity check failed:" >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1155
		echo "$bad_errors" >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1156
		echo >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1157
		if [[ $force_override = no ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1158
			cat >&2 <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1159
Reseed the repository (see http://greenline.eng/quickstart.shtml#newrep)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1160
before BFUing (or use the -f flag to force BFU to continue).  Re-seeding
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1161
will lose all smf(5) customizations.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1162
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1163
			echo >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1164
			exit 2;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1165
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1166
			echo "driving on anyway" >&2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1167
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1168
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1169
		echo "passed integrity check" >&2;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1170
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1171
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1172
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1173
smf_bkbfu_warning() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1174
	print ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1175
	print "*************************************************************"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1176
	print " WARNING: BFU'ing $1 backwards across 5090532."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1177
	print " Fixes have been made but the services cannot be refreshed"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1178
	print " on the $1's inactive repository. Next boot for the"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1179
	print " $1 will probably result in maintenance mode due to"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1180
	print " dependency cycles. If so, at the $1's console, run:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1181
	print ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1182
	print " /usr/sbin/svcadm refresh system/sysidtool:system"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1183
	print " /usr/sbin/svcadm refresh system/sysidtool:net"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1184
	print " /usr/sbin/svcadm clear milestone/single-user"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1185
	print " /usr/sbin/svcadm clear system/sysidtool:system"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1186
	print " /usr/sbin/svcadm clear system/sysidtool:net"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1187
	print ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1188
	print " to resolve."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1189
	print " To avoid these problems, reseed the zone's repository."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1190
	print " See http://greenline.eng/quickstart.shtml#newrep ."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1191
	print " Note: Re-seeding will lose all smf(5) customization."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1192
	print "*************************************************************"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1193
	print ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1194
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1195
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1196
smf_is_sysconfig() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1197
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1198
	# Return success if going to post-5090532, i.e. post-sysconfig bits
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1199
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1200
	# By now, we're going to post-smf bits - so multi-user.xml must
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1201
	# exist (since it was introduced by first SMF putback).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1202
	# 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1203
	# Function return status is return status of last command executed.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1204
	# So, no need to check return status from grep below.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1205
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1206
	grep sysconfig $rootprefix/var/svc/manifest/milestone/multi-user.xml \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1207
		>/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1208
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1209
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1210
smf_bkbfu_past_sysconfig() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1211
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1212
	# Check if bfu'ing back from post-5090532 to pre-5090532 bits.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1213
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1214
	if [[ -f $rootprefix/var/svc/manifest/milestone/sysconfig.xml ]] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1215
	    ! smf_is_sysconfig ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1216
		return 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1217
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1218
	return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1219
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1220
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1221
smf_bkbfu_repair_sysconfig() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1222
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1223
	# Perform the necessary corrections when bfu'ing backwards
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1224
	# from post-5090532 to pre-5090532 bits.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1225
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1226
	# Get the pre-5090532 non-ON manifests, and issue minimal fixes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1227
	# to the repository, to enable re-boot.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1228
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1229
	smf_copy_manifest pre-5090532/sysidtool.xml system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1230
	if [[ $zone = global && $karch = i86pc ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1231
		smf_copy_manifest pre-5090532/kdmconfig.xml platform/i86pc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1232
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1233
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1234
	# Now, remove sysidtool:{system, net}'s dependency on
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1235
	# single-user and filesystem-local.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1236
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1237
	# If $rootprefix is not empty, this could be the global zone,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1238
	# with an alternate root BFU, or a non-global zone. For either
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1239
	# case, the repository to be updated is not the live one: use
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1240
	# SVCCFG_REPOSITORY to point to the repository to be updated.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1241
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1242
	# Note that in the alternate-root case, doing this seems better
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1243
	# than forcing the user to re-seed, or to dis-allow it. The
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1244
	# issue of svccfg and the repository not matching seems remote,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1245
	# given that from initial SMF integration (on10_64) to on10_74,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1246
	# there was no mismatch. In the remote possibility that there is a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1247
	# mis-match (in the future) causing these calls to be suspect,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1248
	# the user is already being advised, via the warning message, to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1249
	# reseed the repository in case of trouble. If a mis-match is ever
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1250
	# introduced, code such as this would have to be fixed, so this
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1251
	# aspect of the warning is useful only during the interim period.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1252
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1253
	# NOTE that this is not an issue for non-global zones'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1254
	# repositories - they couldn't be out-of-sync with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1255
	# /tmp/bfubin/svccfg.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1256
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1257
	if [[ -n $rootprefix ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1258
		export SVCCFG_REPOSITORY=$rootprefix/etc/svc/repository.db
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1259
		if [[ $zone = global ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1260
			smf_bkbfu_warning "alternate root"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1261
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1262
			smf_bkbfu_warning "zone"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1263
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1264
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1265
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1266
	# Using the newer "-s" option to svccfg in the following is OK
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1267
	# since its introduction preceded 5090532 (and this routine wouldn't
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1268
	# be called unless the machine is running post-5090532 bits).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1269
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1270
	/tmp/bfubin/svccfg -s system/sysidtool:net delpg single-user
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1271
	/tmp/bfubin/svccfg -s system/sysidtool:system delpg single-user
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1272
	/tmp/bfubin/svccfg -s system/sysidtool:net delpg filesystem_local
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1273
	/tmp/bfubin/svccfg -s system/sysidtool:system delpg filesystem_local
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1274
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1275
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1276
	# On a live system, issue the refresh; For alternate root or non-global
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1277
	# zone, the user was asked to issue the refreshes and "clear"s in the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1278
	# message above after a post-bfu reboot.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1279
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1280
	if [[ -z $rootprefix ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1281
		/tmp/bfubin/svcadm refresh system/sysidtool:system \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1282
		    system/sysidtool:net
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1283
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1284
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1285
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1286
	# Now, reset SVCCFG_REPOSITORY, if it was set
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1287
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1288
	[[ -n $rootprefix ]] && unset SVCCFG_REPOSITORY
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1289
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1290
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1291
	# Remove the sysconfig.xml manifest when going back.  So backward
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1292
	# bfu check continues to work, and all manifests are correct.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1293
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1294
	cat >> $rootprefix/var/svc/profile/upgrade <<-EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1295
	rm -f /var/svc/manifest/milestone/sysconfig.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1296
	EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1297
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1298
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1299
smf_apply_conf () {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1300
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1301
	# Go thru the original manifests and move any that were unchanged
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1302
	# (or are not system-provided) back to their proper location.  This
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1303
	# will avoid superfluous re-import on reboot, as the inode and mtime
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1304
	# are both part of the hash.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1305
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1306
	if [ -d $rootprefix/$old_mfst_dir ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1307
		for f in `cd $rootprefix/$old_mfst_dir ; find . -type f`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1308
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1309
			old=$rootprefix/$old_mfst_dir/$f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1310
			new=$rootprefix/$new_mfst_dir/$f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1311
			if [ ! -f $new ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1312
				mkdir -m 0755 -p `dirname $new`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1313
				mv $old $new
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1314
				continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1315
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1316
			cmp -s $old $new && mv $old $new
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1317
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1318
		rm -rf $rootprefix/$old_mfst_dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1319
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1320
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1321
	if [ -f $rootprefix/etc/init.d/inetd ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1322
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1323
		# BFUing to non-SMF system -- undo our previous changes,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1324
		# run an old hack, and skip the remainder of this function.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1325
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1326
		smf_inetd_reenable
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1327
		smf_tftp_reinstall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1328
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1329
		# Update inetd.conf only if we find rpc.metad file.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1330
		[ -f $usr/sbin/rpc.metad ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1331
		    inetd_conf_svm_hack
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1332
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1333
		return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1334
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1335
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1336
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1337
	# At this point, the archive in question is a SMF version.  If
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1338
	# the smf(5) repository does not yet exist, create it by copying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1339
	# the appropriate seed repository.  Since updating of non-global
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1340
	# zones only occurs when the live system is bfu'ed, the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1341
	# appropriate seed is guaranteed to exist under the /lib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1342
	# directory.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1343
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1344
	repository=$rootprefix/etc/svc/repository.db
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1345
	if [ ! -f $repository ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1346
		print "Initializing service configuration repository ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1347
		if [ $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1348
			cp $rootprefix/lib/svc/seed/global.db $repository
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1349
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1350
			cp /lib/svc/seed/nonglobal.db $repository
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1351
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1352
		chmod 0600 $repository
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1353
		chown root:sys $repository
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1354
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1355
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1356
	print "Removing obsolete smf services ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1357
	for f in $smf_obsolete_manifests; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1358
		smf_delete_manifest $f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1359
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1360
	smf_delete_methods
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1361
	smf_delete_renamed_manifests
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1362
	if [ $need_datalink = no ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1363
		smf_cleanup_gldv3
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1364
	fi
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1365
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1366
	print "Disabling unneeded inetd.conf entries ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1367
	smf_inetd_disable
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1368
	smf_tftp_reinstall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1369
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1370
	print "Connecting platform and name service profiles ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1371
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1372
	rm -f $rootprefix/var/svc/profile/name_service.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1373
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1374
	grep ldap $rootprefix/etc/nsswitch.conf >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1375
	is_ldap=$?
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1376
	grep nisplus $rootprefix/etc/nsswitch.conf >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1377
	is_nisplus=$?
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1378
	grep nis $rootprefix/etc/nsswitch.conf >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1379
	is_nis=$?
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1380
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1381
	if [ $is_ldap  = 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1382
		ns_profile=ns_ldap.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1383
	elif [ $is_nisplus = 0  ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1384
		ns_profile=ns_nisplus.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1385
	elif [ $is_nis = 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1386
		ns_profile=ns_nis.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1387
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1388
		ns_profile=ns_files.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1389
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1390
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1391
	ln -s $ns_profile $rootprefix/var/svc/profile/name_service.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1392
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1393
	rm -f $rootprefix/var/svc/profile/inetd_services.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1394
	ln -s inetd_upgrade.xml $rootprefix/var/svc/profile/inetd_services.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1395
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1396
	print "Marking converted services as enabled ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1397
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1398
	[ -f $rootprefix/etc/resolv.conf ] && smf_enable network/dns/client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1399
	[ -f $rootprefix/etc/rcap.conf ] && smf_enable system/rcap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1400
	[ -f $rootprefix/etc/inet/dhcpsvc.conf ] && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1401
	    smf_enable network/dhcp-server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1402
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1403
	if [ $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1404
		if [ -f $rootprefix/etc/dfs/dfstab ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1405
		    grep '^[ 	]*[^# 	]' $rootprefix/etc/dfs/dfstab \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1406
		    > /dev/null; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1407
		    	smf_enable network/nfs/server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1408
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1409
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1410
		echo "/usr/sbin/svcadm disable network/nfs/server" >> \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1411
		    $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1412
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1413
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1414
	[ -f $rootprefix/etc/inet/ntp.conf ] && smf_enable network/ntp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1415
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1416
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1417
	domainname=`cat $rootprefix/etc/defaultdomain 2>/dev/null`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1418
        if [ ! -z "$domainname" -a -d $rootprefix/var/yp/$domainname ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1419
		smf_enable network/nis/server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1420
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1421
		# Determining whether we're a NIS master requires
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1422
		# looking through the maps.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1423
		cat >>$rootprefix/var/svc/profile/upgrade <<\_EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1424
# Determine whether we are a YP master.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1425
domain=`/usr/bin/domainname`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1426
hostname=`uname -n | cut -d. -f1 | tr '[A-Z]' '[a-z]'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1427
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1428
if [ -x /usr/sbin/makedbm ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1429
	if [ -f /var/yp/NISLDAPmapping ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1430
		master=`/usr/sbin/makedbm -u /var/yp/\$domain/LDAP_passwd.byname | grep YP_MASTER_NAME | nawk '{ print $2 }'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1431
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1432
		master=`/usr/sbin/makedbm -u /var/yp/\$domain/passwd.byname | grep YP_MASTER_NAME | nawk '{ print $2 }'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1433
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1434
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1435
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1436
# If we are the master server, enable appropriate services.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1437
if [ "$master" = "$hostname" -a "$YP_SERVER" = "TRUE" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1438
	/usr/sbin/svcadm enable network/nis/xfr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1439
	/usr/sbin/svcadm enable network/nis/passwd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1440
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1441
	if [ ! -f /var/yp/NISLDAPmapping ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1442
		[ -f /var/yp/updaters ] && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1443
		    /usr/svc/svcadm enable network/nis/update
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1444
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1445
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1446
_EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1447
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1448
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1449
	# Check if mddbs don't exist on the image.  If so, disable SVM services.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1450
	MDDB_STATUS=1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1451
	if [ -f $rootprefix/kernel/drv/md.conf ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1452
		sed -e 's/#.*$//' $rootprefix/kernel/drv/md.conf | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1453
		    egrep '^[        ]*mddb_bootlist' >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1454
		MDDB_STATUS=$?
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1455
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1456
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1457
	if [ $MDDB_STATUS -ne 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1458
		for svc in metainit mdmonitor; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1459
		    echo "/usr/sbin/svcadm disable system/$svc:default" >> \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1460
			$rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1461
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1462
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1463
		for svc in meta mdcomm metamed metamh; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1464
		    echo "/usr/sbin/svcadm disable network/rpc/$svc:default" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1465
			>> $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1466
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1467
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1468
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1469
	# Workaround inetd's handling of "tcp6/udp6" when no IPv6 interfaces
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1470
	# are configured.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1471
	for svc in meta mdcomm metamed metamh; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1472
	    echo "/usr/sbin/inetadm -m network/rpc/$svc:default proto=tcp" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1473
		">/dev/null 2>&1" >> $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1474
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1475
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1476
	manifest_src=${MANIFEST_SRC-$GATE/public/smf}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1477
	[[ -d $manifest_src ]] ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1478
	    manifest_src=/net/onnv.eng/export/gate/public/smf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1479
	[[ -d $manifest_src ]] || manifest_src=/net/greenline.eng/meta0/smf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1480
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1481
	if smf_bkbfu_past_sysconfig ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1482
		echo "BFU'ing backwards across 5090532! Now repairing..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1483
		smf_bkbfu_repair_sysconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1484
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1485
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1486
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1487
	# If bfu'ing milestone/sysconfig bits or onwards, update the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1488
	# corresponding non-ON manifests - sysidtool and kdmconfig.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1489
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1490
	sysidmfst=$rootprefix/var/svc/manifest/system/sysidtool.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1491
	kdmmfst=$rootprefix/var/svc/manifest/platform/i86pc/kdmconfig.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1492
	if smf_is_sysconfig ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1493
		if [[ ! -f $sysidmfst ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1494
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1495
			# if WOS build on machine is pre-greenline, and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1496
			# we're bfu'ing to the sysconfig bits.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1497
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1498
			smf_copy_manifest post-5090532/sysidtool.xml system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1499
			if [[ $zone = global ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1500
				smf_copy_method sysidtool-net
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1501
				smf_copy_method sysidtool-system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1502
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1503
			echo "Converted system/sysidtool (post-5090532)"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1504
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1505
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1506
			# If sysidtool.xml already exists, update it
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1507
			# if necessary. Future updates of sysidtool.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1508
			# must occur in the dir: $manifest_src/post-5090532
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1509
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1510
			smf_copy_manifest post-5090532/sysidtool.xml system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1511
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1512
		if [[ $zone = global && $karch = i86pc ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1513
			if [[ ! -f $kdmmfst ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1514
				#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1515
				# if WOS build on machine is pre-greenline, and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1516
				# we're bfu'ing to the sysconfig bits.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1517
				#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1518
				smf_copy_manifest post-5090532/kdmconfig.xml \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1519
				    platform/i86pc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1520
				smf_copy_method   svc-kdmconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1521
				smf_cleanup_initd kdmconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1522
				echo "Converted platform/i86pc/kdmconfig"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1523
				echo "(post-5090532)"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1524
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1525
				#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1526
				# If kdmconfig.xml already exists, update
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1527
				# it if necessary. Future updates of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1528
				# kdmconfig.xml must occur in the dir:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1529
				# $manifest_src/post-5090532
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1530
				#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1531
				smf_copy_manifest post-5090532/kdmconfig.xml \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1532
				    platform/i86pc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1533
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1534
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1535
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1536
		if [[ ! -f $sysidmfst ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1537
			smf_copy_manifest pre-5090532/sysidtool.xml system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1538
			if [[ $zone = global ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1539
				smf_copy_method sysidtool-net
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1540
				smf_copy_method sysidtool-system
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1541
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1542
			echo "Converted system/sysidtool"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1543
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1544
		if [[ $zone = global && $karch = i86pc && ! -f $kdmmfst ]];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1545
		then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1546
			smf_copy_manifest pre-5090532/kdmconfig.xml \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1547
			    platform/i86pc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1548
			smf_copy_method   svc-kdmconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1549
			smf_cleanup_initd kdmconfig
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1550
			echo "Converted platform/i86pc/kdmconfig"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1551
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1552
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1553
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1554
	# If we've still got the old dtlogin manifest delivered by earlier
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1555
	# versions of bfu, delete it, as it was broken and should have
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1556
	# never been delivered.  A new version delivered by the CDE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1557
	# consolidation should be left alone.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1558
	if [[ -f $rootprefix/var/svc/manifest/application/dtlogin.xml &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1559
	    `grep -c GLXXX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1560
	    $rootprefix/var/svc/manifest/application/dtlogin.xml` -gt 0 &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1561
	    -x /tmp/bfubin/svccfg ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1562
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1563
		# Delete the obsolete manifest.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1564
		rm -f $rootprefix/var/svc/manifest/application/dtlogin.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1565
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1566
		# Delete the service from repository, then use dtconfig -e to
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1567
		# revert to whatever the WOS bits are using if dtlogin was
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1568
		# enabled.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1569
		cat >> $rootprefix/var/svc/profile/upgrade <<-EOFA
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1570
if /usr/bin/svcprop -q application/cde-login; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1571
	if [ \`/usr/bin/svcprop -p general/enabled \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1572
		application/cde-login:default\` = "true" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1573
		do_dtconfig=1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1574
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1575
		do_dtconfig=0;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1576
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1577
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1578
	/usr/sbin/svccfg delete -f application/cde-login
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1579
	type instance_refresh 2>&1 > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1580
	if [ \$? = 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1581
		instance_refresh system/console-login
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1582
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1583
		/usr/sbin/svcadm refresh system/console-login
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1584
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1585
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1586
	if [ \$do_dtconfig -eq 1 -a -x /usr/dt/bin/dtconfig ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1587
		/usr/dt/bin/dtconfig -e
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1588
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1589
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1590
EOFA
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1591
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1592
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1593
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1594
	# Enable the inetd-upgrade service to convert any changes to inetd.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1595
	smf_enable network/inetd-upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1596
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1597
	# If global zone, and bfu'ing from smf, and the inetd-upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1598
	# service has an obsolete dependency, then add a clear of inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1599
	# and inetd-upgrade to the upgrade file as either may drop into
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1600
	# maintenance due to a dependency loop resulting from the new
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1601
	# inetd manifest
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1602
	if [[ $zone = global && -x /tmp/bfubin/svccfg ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1603
		/tmp/bfubin/svcprop -q -p network/entities network/inetd-upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1604
		if [[ $? = 0 ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1605
		    	echo "/usr/sbin/svcadm clear network/inetd" >> \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1606
			    $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1607
			echo "/usr/sbin/svcadm clear network/inetd-upgrade" >> \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1608
			    $rootprefix/var/svc/profile/upgrade
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1609
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1610
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1611
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1612
	# If we're in the global zone, and using an alternate root, see if
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1613
	# we are in an smf root.  If so, import pfil and name-service-cache.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1614
	# If we're not bfu'ing an alternate root, and we're post-smf,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1615
	# import pfil and name-service-cache.  This is to get pfil and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1616
	# name-service-cache(with correct dependencies) in the repository
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1617
	# before reboot.  If we're bfu'ing from pre-smf, this isn't an
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1618
	# issue, as pfil is in the seed repository, and name-service-cache
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1619
	# will be installed with correct dependencies.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1620
	if [[ $zone = global &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1621
	    -f $rootprefix/var/svc/manifest/network/pfil.xml ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1622
		if [[ -n $rootprefix ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1623
			if [ -x /usr/sbin/svccfg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1624
			SVCCFG_REPOSITORY=$rootprefix/etc/svc/repository.db
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1625
			/usr/sbin/svccfg import \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1626
			    $rootprefix/var/svc/manifest/network/pfil.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1627
			/usr/sbin/svccfg import \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1628
		    $rootprefix/var/svc/manifest/system/name-service-cache.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1629
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1630
			echo "Warning: This system does not have SMF, so I"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1631
			echo "cannot ensure the pre-import of pfil and"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1632
			echo "name-service-cache.  If ipfilter or name-service-"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1633
			echo "cache do not work, reboot your alternate root to"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1634
			echo "fix it."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1635
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1636
		elif [ -x /tmp/bfubin/svccfg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1637
			/tmp/bfubin/svccfg import \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1638
			    /var/svc/manifest/network/pfil.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1639
			/tmp/bfubin/svccfg import \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1640
			    /var/svc/manifest/system/name-service-cache.xml
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1641
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1642
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1643
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1644
	# Remove pfil from the non-global repository.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1645
	if [[ $zone != global ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1646
		cat >> $rootprefix/var/svc/profile/upgrade << EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1647
		svcprop -q -p start/exec network/pfil
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1648
		if [[ \$? = 0 ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1649
			/usr/sbin/svccfg delete -f network/pfil
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1650
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1651
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1652
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1653
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1654
	# If we're in the global zone, and using an alternate root, see if
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1655
	# we are in an smf root.  If so, import datalink and aggregation svcs.
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1656
	# If we're not bfu'ing an alternate root, and we're post-smf,
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1657
	# import datalink and aggregation.  This is to get them 
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1658
	# in the repository before reboot.  If we're bfu'ing from pre-smf,
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1659
	# this isn't an issue, as they are in the seed repository.
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1660
	if [[ $zone = global &&
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1661
	    -f $rootprefix/var/svc/manifest/network/datalink.xml ]]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1662
		if [[ -n $rootprefix ]]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1663
			if [ -x /usr/sbin/svccfg ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1664
			SVCCFG_REPOSITORY=$rootprefix/etc/svc/repository.db
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1665
			sed -e "s/enabled='true'/enabled='false'/" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1666
			 $rootprefix/var/svc/manifest/network/aggregation.xml \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1667
			    | svccfg import -
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1668
			sed -e "s/enabled='true'/enabled='false'/" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1669
			    $rootprefix/var/svc/manifest/network/datalink.xml \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1670
			    | svccfg import -
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1671
			sed -e "s/enabled='true'/enabled='false'/" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1672
		       $rootprefix/var/svc/manifest/network/datalink-init.xml \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1673
			    | svccfg import -
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1674
			else
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1675
			echo "Warning: This system does not have SMF, so I"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1676
			echo "cannot ensure the pre-import of datalink and"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1677
			echo "network aggregation.  If they do not work"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1678
			echo "reboot your alternate root to fix it."
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1679
			fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1680
		elif [ -x /tmp/bfubin/svccfg ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1681
			sed -e "s/enabled='true'/enabled='false'/" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1682
			    /var/svc/manifest/network/aggregation.xml | \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1683
			    svccfg import -
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1684
			sed -e "s/enabled='true'/enabled='false'/" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1685
			    /var/svc/manifest/network/datalink.xml | \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1686
			    svccfg import -
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1687
			sed -e "s/enabled='true'/enabled='false'/" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1688
			    /var/svc/manifest/network/datalink-init.xml | \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1689
			    svccfg import -
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1690
		fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1691
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1692
		#
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1693
		# Make sure the services are enabled after reboot.
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1694
		#
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1695
		enable_next_boot svc:/network/aggregation:default
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1696
		enable_next_boot svc:/network/datalink:default
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1697
		enable_next_boot svc:/network/datalink-init:default
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1698
	fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1699
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1700
	# Enable new NFS status and nlockmgr services if client is enabled
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1701
	cat >> $rootprefix/var/svc/profile/upgrade <<-EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1702
	    cl="svc:/network/nfs/client:default"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1703
	    if [ \`/usr/bin/svcprop -p general/enabled \$cl\` = "true" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1704
		/usr/sbin/svcadm enable svc:/network/nfs/status:default
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1705
		/usr/sbin/svcadm enable svc:/network/nfs/nlockmgr:default
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1706
	    fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1707
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1708
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1709
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1710
	kpmani="$rootprefix/var/svc/manifest/network/security/krb5_prop.xml"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1711
	if grep svc-kdc.slave $kpmani > /dev/null 2>&1; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1712
		cat >> $rootprefix/var/svc/profile/upgrade <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1713
		# We are deleting and reimporting kpropd's manifest, because we
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1714
		# need to change the restarter.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1715
		kpfmri="svc:/network/security/krb5_prop"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1716
		kkfmri="svc:/network/security/krb5kdc:default"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1717
		lkpmani="/var/svc/manifest/network/security/krb5_prop.xml"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1718
		restarter=\`svcprop -c -p general/restarter \$kpfmri 2>&1\`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1719
		case \$restarter in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1720
			*network/inetd:default)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1721
				kken=\`svcprop -c -p general/enabled \$kkfmri\`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1722
				svccfg delete -f \$kpfmri
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1723
				svccfg import \$lkpmani 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1724
				# Enable kpropd if krb5kdc is enabled, since
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1725
				# krb5kdc would have run kpropd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1726
				if [ \$kken = "true" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1727
					svcadm enable \$kpfmri
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1728
				fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1729
				;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1730
		esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1731
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1732
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1733
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1734
	# Enable print server if there are local queues
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1735
	queues=`echo $rootprefix/etc/lp/printers/*/configuration`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1736
	if [ "$queues" != "$rootprefix/etc/lp/printers/*/configuration" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1737
		smf_enable application/print/server
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1738
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1739
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1740
	# Enable rarpd and bootparamd if they would have been running pre-SMF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1741
	if [ -d $rootprefix/tftpboot ] || [ -d $rootprefix/rplboot ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1742
		smf_enable network/rarp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1743
		smf_enable network/rpc/bootparams
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1744
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1745
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1746
	# To handle the transition from pre-smf ipfilter to smf-aware ipfilter,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1747
	# check if ipfilter had been enabled with at least one rule, and if so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1748
	# enable the smf instance.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1749
	if grep '^[ \t]*[^# \t]' $rootprefix/etc/ipf/ipf.conf >/dev/null 2>&1 &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1750
	    [[ $zone = global ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1751
		smf_enable network/ipfilter
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1752
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1753
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1754
	touch $rootprefix/var/svc/profile/.upgrade_prophist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1755
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1756
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1757
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1758
EXTRACT_LOG=/tmp/bfu-extract-log.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1759
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1760
rm -f $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1761
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1762
extraction_error() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1763
	echo error $* >> $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1764
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1765
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1766
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1767
# Make a local copy of bfu in /tmp and execute that instead.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1768
# This makes us immune to loss of networking and/or changes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1769
# to the original copy that might occur during execution.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1770
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1771
cd .
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1772
abspath=`[[ $0 = /* ]] && print $0 || print $PWD/$0`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1773
if [[ $abspath != /tmp/* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1774
	localpath=/tmp/bfu.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1775
	print "Copying $abspath to $localpath"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1776
	cp $abspath $localpath
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1777
	chmod +x $localpath
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1778
	print "Executing $localpath $*\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1779
	exec $localpath $*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1780
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1781
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1782
export PATH=/usr/bin:/usr/sbin:/sbin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1783
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1784
usage() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1785
	echo "Usage:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1786
	echo "    bfu    [-fh] <archive_dir> [root-dir]"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1787
	echo "\tUpdate a single machine by loading archives on root-dir."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1788
	echo "\troot-dir defaults to / (a live bfu).\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1789
	echo "    bfu -c [-fh] <archive_dir> <exec-dir>"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1790
	echo "\tUpdate all diskless clients by loading archives on each client"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1791
	echo "\tthat mounts exec-dir as /usr.  <exec-dir> must start with"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1792
	echo "\t/export/exec and each client's root must be in /export/root.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1793
	echo "\t-f        force bfu to continue even if it doesn't seem safe"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1794
	fail "\t-h|-help  print this usage message and exit\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1795
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1796
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1797
diskless=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1798
force_override=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1799
while [ $# -gt 0 ]; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1800
	case $1 in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1801
		-c)		diskless=yes;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1802
		-f)		force_override=yes;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1803
		-h|-help)	usage;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1804
		*)      	break;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1805
	esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1806
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1807
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1808
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1809
boot_is_pcfs=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1810
have_realmode=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1811
multiboot_archives=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1812
dca_to_multi=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1813
is_pcfs_boot=no
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  1814
need_datalink=no
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1815
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1816
test $# -ge 1 || usage
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1817
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1818
if [ -x /usr/bin/ppriv ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1819
	# We prefer to use ppriv, as it is a more accurate test, and also
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1820
	# has the benefit of preventing use from within a local zone.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1821
	ppriv $$ | grep -w "E: all" > /dev/null 2>&1 || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1822
	    fail "bfu requires all privileges"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1823
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1824
	# Fall back to old id check if system does not yet have ppriv.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1825
	uid=`id | nawk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1826
	[ "$uid" = "uid=0(root)" ] || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1827
	    fail "You must be super-user to run this script."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1828
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1829
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1830
bfu_isa=`uname -p`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1831
target_isa=$bfu_isa
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1832
karch=`uname -m`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1833
plat=`uname -i`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1834
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1835
cpiodir=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1836
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1837
local_zone_info_file=/tmp/local_zone_info.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1838
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1839
if [ "$cpiodir" = again ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1840
	cpiodir=`nawk '/^bfu.ed from / { print $3; exit }' /etc/motd`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1841
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1842
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1843
[[ "$cpiodir" = */* ]] || cpiodir=$ARCHIVE/archives/$target_isa/$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1844
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1845
[[ "$cpiodir" = /* ]] || fail "archive-dir must be an absolute path"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1846
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1847
cd $cpiodir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1848
case `echo generic.root*` in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1849
	generic.root)		ZFIX="";	ZCAT="cat";;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1850
	generic.root.gz)	ZFIX=".gz";	ZCAT="gzip -d -c";;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1851
	generic.root.Z)		ZFIX=".Z";	ZCAT="zcat";;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1852
	*) fail "generic.root missing or in unknown compression format";;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1853
esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1854
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1855
if [ $diskless = no ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1856
	root=${2:-/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1857
	[[ "$root" = /* ]] || fail "root-dir must be an absolute path"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1858
	usrroot=$root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1859
	usr=${usrroot%/}/usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1860
	rootlist=$root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1861
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1862
	[[ -f $root/etc/system ]] || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1863
	    fail "$root/etc/system not found; local zone target not allowed"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1864
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1865
	# Make sure we extract the sun4u-us3 libc_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1866
	if [ -d $root/platform/sun4u -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1867
	   ! -d $root/platform/sun4u-us3 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1868
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1869
		mkdir $root/platform/sun4u-us3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1870
		chmod 755 $root/platform/sun4u-us3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1871
		chown root $root/platform/sun4u-us3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1872
		chgrp sys $root/platform/sun4u-us3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1873
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1874
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1875
	if [ $karch != $plat -a -f ${cpiodir}/${plat}.usr$ZFIX ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1876
		usrarchs="$karch $plat"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1877
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1878
		usrarchs="$karch"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1879
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1880
	if [ $karch != $plat -a -f ${cpiodir}/${plat}.root$ZFIX ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1881
		rootarchs="$karch $plat"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1882
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1883
		rootarchs="$karch"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1884
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1885
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1886
	if [ -h ${root}/platform/${plat} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1887
		rm -f ${root}/platform/${plat}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1888
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1889
	if [ -h ${usr}/platform/${plat} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1890
		rm -f ${usr}/platform/${plat}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1891
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1892
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1893
	if [ $plat != $karch -a -f ${cpiodir}/${plat}.root$ZFIX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1894
	    -a -f ${cpiodir}/${plat}.usr$ZFIX ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1895
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1896
		cd $cpiodir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1897
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1898
		#  Look through all the archives we build and match
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1899
		#  the names of built archives with the names of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1900
		#  directories installed on this machine.  We assume
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1901
		#  here that we can get the names of all architectures
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1902
		#  by pattern matching the names of .root archives - so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1903
		#  if we ever had a case where we had only a .usr archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1904
		#  we wouldn't find that archive.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1905
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1906
		for i in *.root*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1907
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1908
			platname=${i%.root*}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1909
			if [ -z "${platname}" -o ${platname} = $karch -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1910
			    $platname = generic -o ${platname} = $plat ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1911
				continue;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1912
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1913
			if [ -d ${root}/platform/${platname} -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1914
			    -h ${root}/platform/${platname} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1915
				rootarchs="${rootarchs} ${platname}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1916
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1917
			if [ -d ${usr}/platform/${platname} -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1918
			    -h ${usr}/platform/${platname} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1919
				usrarchs="${usrarchs} ${platname}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1920
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1921
			if [ -h ${root}/platform/${platname} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1922
				rm -f ${root}/platform/${platname}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1923
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1924
			if [ -h ${usr}/platform/${platname} ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1925
				rm -f ${usr}/platform/${platname}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1926
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1927
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1928
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1929
	rootslice=`df -k $root | nawk 'NR > 1 { print $1 }' | sed s/dsk/rdsk/`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1930
	print "Loading $cpiodir on $root"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1931
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1932
	usrroot=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1933
	usr=$2/usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1934
	[[ "$usr" = /export/exec/* ]] || fail "exec-dir $usrroot sounds bogus"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1935
	case $2 in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1936
	    *sparc*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1937
		target_isa=sparc ;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1938
	    *i386*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1939
		target_isa=i386 ;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1940
	esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1941
	cd $cpiodir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1942
	test -f generic.root$ZFIX || fail "$cpiodir/generic.root$ZFIX missing"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1943
	allarchs=$(echo $(ls *.root$ZFIX | grep -v generic.root$ZFIX | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1944
		sed -e 's/.root.*//'))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1945
	# XXX Pick karch as last available root arch
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1946
	karch=${allarchs##* }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1947
	# XXX Pick plat as first available root arch
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1948
	plat=${allarchs%% *}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1949
	rootlist=""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1950
	for root in /export/root/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1951
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1952
		test -f $root/etc/vfstab &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1953
			egrep -s $usrroot $root/etc/vfstab &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1954
			rootlist="$rootlist $root"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1955
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1956
	test -n "$rootlist" || fail "no clients to upgrade"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1957
	print "Loading $cpiodir usr archives on:\n\t$usr\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1958
	print "Loading $cpiodir root archives on:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1959
	for root in $rootlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1960
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1961
		print "\t$root"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1962
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1963
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1964
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1965
nss_lib="$usr/lib/mps/libnss3.so"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1966
nss_lib64="$usr/lib/mps/64/libnss3.so"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1967
valid_rpath="\$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1968
rpath_msg="(RPATH from file ${nss_lib})"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1969
if [ ! -x /usr/bin/ldd ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1970
	if [ "$force_override" = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1971
		echo "/usr/bin/ldd is missing but -f is set; continuing."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1972
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1973
		echo "/usr/bin/ldd is missing."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1974
		fail "Install the SUNWtoo package."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1975
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1976
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1977
nss_rpath=`ldd -s $nss_lib | grep "$rpath_msg" | head -1 | cut -d'=' -f2 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1978
		awk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1979
update_script="/ws/onnv-gate/public/bin/update_nsspkgs"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1980
if [ $valid_rpath != "$nss_rpath" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1981
	if [ "$force_override" = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1982
		echo "$nss_lib is not valid but -f is set; continuing."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1983
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1984
		echo "$nss_lib is not valid."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1985
		fail "Run $update_script to update the SUNWtls package."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1986
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1987
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1988
if [ $target_isa = i386 -a ! -f $nss_lib64 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1989
	echo "$nss_lib64 does not exist."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1990
	fail "Run $update_script to update the NSS packages."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1991
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1992
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1993
update_script="/ws/onnv-gate/public/bin/migrate_bind9"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1994
if [[ ! -f $usr/lib/dns/libdns.so ]] && ! $ZCAT $cpiodir/generic.usr$ZFIX | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1995
	    cpio -it 2>/dev/null |  egrep -s '^usr/sbin/ndc' ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1996
	if [ "$force_override" = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1997
		echo "BIND 9 has not been installed, but -f is set; continuing."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1998
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1999
		echo "BIND 8 has been removed from ON; BIND 9 is available from SFW."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2000
		fail "Run $update_script to migrate to BIND 9."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2001
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2002
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2003
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2004
update_script="/ws/onnv-gate/public/bin/update_ce"
741
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 693
diff changeset
  2005
if ifconfig -a | egrep '^ce' >/dev/null 2>/dev/null; then
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 693
diff changeset
  2006
	# CE version 1.148 or later is required
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2007
	cever=`modinfo | grep 'CE Ethernet' | sed 's/.*v1\.//' | tr -d ')' | \
741
40027a3621ac PSARC 2005/082 Yosemite: UDP Performance Enhancement
masputra
parents: 693
diff changeset
  2008
	    nawk '{ if ($1 < 148) print "BAD"; else print $1 }'`
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2009
	if [ "$cever" = "BAD" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2010
		fail "You must run $update_script to upgrade your ce driver."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2011
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2012
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2013
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2014
if [[ $target_isa = i386 && -f $cpiodir/i86pc.root$ZFIX ]] && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2015
    $ZCAT $cpiodir/i86pc.root$ZFIX | cpio -it 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2016
    grep multiboot >/dev/null 2>&1 ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2017
	multiboot_archives=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2018
	prtconf -v | grep biosdev >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2019
	if [ $? -ne 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2020
		echo "biosdev cannot be run on this machine."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2021
		echo "Transitioning from classic to multiboot requires a"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2022
		echo "bootconf which is compatible with biosdev."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2023
		echo "bfu to onnv_12 first, then to a build with multiboot."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2024
		fail ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2025
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2026
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2027
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2028
if $ZCAT $cpiodir/generic.root$ZFIX | cpio -it 2>/dev/null | \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2029
    grep datalink.conf > /dev/null 2>&1 ; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2030
	need_datalink=yes
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2031
fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2032
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2033
time_ref=/tmp/bfu.time_ref.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2034
rm -f $time_ref
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2035
touch $time_ref || fail "$time_ref: Unable to create time reference."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2036
time_ref_seconds=$SECONDS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2037
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2038
print "\nCreating bfu execution environment ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2039
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2040
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2041
# Save off a few critical libraries and commands, so that bfu will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2042
# continue to function properly even in the face of major
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2043
# kernel/library/command incompatibilities during a live upgrade.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2044
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2045
bfucmd="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2046
	/usr/sbin/add_drv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2047
	/usr/bin/awk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2048
	/usr/bin/cat
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2049
	/usr/bin/chgrp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2050
	/usr/bin/chmod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2051
	/usr/bin/chown
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2052
	/usr/bin/cmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2053
	/usr/bin/cp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2054
	/usr/bin/cpio
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2055
	/usr/bin/csh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2056
	/usr/bin/cut
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2057
	/usr/bin/date
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2058
	/usr/bin/dd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2059
	/usr/bin/df
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2060
	/usr/bin/diff
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2061
	/usr/bin/du
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2062
	/usr/bin/echo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2063
	/usr/bin/ed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2064
	/usr/bin/egrep
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2065
	/usr/bin/env
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2066
	/usr/bin/ex
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2067
	/usr/bin/expr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2068
	/usr/bin/false
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2069
	/usr/bin/fgrep
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2070
	/usr/bin/file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2071
	/usr/bin/find
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2072
	/usr/bin/gettext
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2073
	/usr/bin/grep
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2074
	/usr/bin/head
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2075
	/usr/bin/id
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2076
	/usr/bin/ksh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2077
	/usr/bin/line
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2078
	/usr/bin/ln
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2079
	/usr/sbin/lofiadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2080
	/usr/bin/ls
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2081
	/usr/bin/mkdir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2082
	/usr/sbin/mkfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2083
	/usr/sbin/mkfs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2084
	/usr/sbin/mknod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2085
	/usr/bin/mktemp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2086
	/usr/bin/more
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2087
	/usr/sbin/mount
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2088
	/usr/bin/mv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2089
	/usr/bin/nawk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2090
	/usr/bin/pgrep
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2091
	/usr/sbin/newfs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2092
	/usr/bin/pkginfo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2093
	/usr/bin/pkill
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2094
	/usr/bin/printf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2095
	/usr/sbin/prtconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2096
	/usr/bin/prun
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2097
	/usr/bin/ps
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2098
	/usr/bin/pstop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2099
	/usr/bin/ptree
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2100
	/usr/bin/rm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2101
	/usr/bin/rmdir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2102
	/usr/bin/sed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2103
	/usr/bin/sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2104
	/usr/bin/sleep
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2105
	/usr/bin/sort
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2106
	/usr/bin/strings
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2107
	/usr/bin/stty
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2108
	/usr/bin/su
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2109
	/usr/bin/sum
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2110
	/usr/bin/tail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2111
	/usr/bin/tee
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2112
	/usr/bin/touch
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2113
	/usr/bin/tr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2114
	/usr/bin/true
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2115
	/usr/bin/truss
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2116
	/usr/bin/tty
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2117
	/usr/sbin/uadmin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2118
	/usr/sbin/umount
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2119
	/usr/bin/uname
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2120
	/usr/bin/uniq
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2121
	/usr/bin/uptime
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2122
	/usr/bin/vi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2123
	/usr/bin/w
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2124
	/usr/bin/wc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2125
	/usr/bin/xargs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2126
	/usr/bin/zcat
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2127
	/usr/sbin/chroot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2128
	/usr/sbin/halt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2129
	/usr/sbin/lockfs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2130
	/usr/sbin/mknod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2131
	/usr/sbin/pkgrm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2132
	/usr/sbin/reboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2133
	/usr/sbin/sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2134
	/usr/sbin/tar
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2135
	/usr/sbin/uadmin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2136
	/usr/sbin/wall
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2137
	${FASTFS-$GATE/public/bin/$bfu_isa/fastfs}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2138
	${GZIPBIN-$GATE/public/bin/$bfu_isa/gzip}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2139
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2140
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2141
rm -rf /tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2142
mkdir /tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2143
set $bfucmd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2144
isalist=`isalist`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2145
while [ $# -gt 0 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2146
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2147
	dir=${1%/*}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2148
	cmd=${1##*/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2149
	cd $dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2150
	isacmd=`(find $isalist -name $cmd 2>/dev/null; echo $cmd) | head -1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2151
	cp $dir/$isacmd /tmp/bfubin || fail "cannot copy $dir/$isacmd"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2152
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2153
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2154
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2155
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2156
# Optional commands.  We warn, but do not abort, if we are crossing a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2157
# feature boundary (where a command is not present in the parent).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2158
# Clauses requiring these commands must explicitly test for their
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2159
# presence in /tmp/bfubin.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2160
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2161
bfuoptcmd="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2162
	/sbin/biosdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2163
	/sbin/bootadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2164
	/sbin/installgrub
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2165
	/usr/sbin/fdisk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2166
	/usr/sbin/metastat
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2167
	/usr/bin/mkisofs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2168
	/usr/sbin/svcadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2169
	/usr/sbin/svccfg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2170
	/usr/bin/svcprop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2171
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2172
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2173
set $bfuoptcmd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2174
isalist=`isalist`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2175
while [ $# -gt 0 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2176
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2177
	dir=${1%/*}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2178
	cmd=${1##*/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2179
	cd $dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2180
	isacmd=`(find $isalist -name $cmd 2>/dev/null; echo $cmd) | head -1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2181
	cp $dir/$isacmd /tmp/bfubin 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2182
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2183
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2184
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2185
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2186
# set up installgrub and friends if transitioning to multiboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2187
# do this now so ldd can determine library dependencies
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2188
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2189
MULTIBOOT_BIN_DIR=${MULTIBOOT_BIN_DIR:=${GATE}/public/multiboot}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2190
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2191
multiboot_cmds="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2192
	/sbin/biosdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2193
	/sbin/installgrub
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2194
	/sbin/bootadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2195
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2196
copying_mboot_cmds=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2197
if [ $multiboot_archives = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2198
	for cmd in $multiboot_cmds
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2199
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2200
		if [ -f $cmd ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2201
			cp $cmd /tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2202
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2203
			file=`basename $cmd`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2204
			if [ ! -d $MULTIBOOT_BIN_DIR ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2205
				echo "$MULTIBOOT_BIN_DIR: not found"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2206
			elif [ ! -f $MULTIBOOT_BIN_DIR/$file ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2207
				echo "$MULTIBOOT_BIN_DIR/$file: not found"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2208
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2209
			if [ $copying_mboot_cmds = no ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2210
				echo "installing files from $MULTIBOOT_BIN_DIR"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2211
				copying_mboot_cmds=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2212
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2213
			cp $MULTIBOOT_BIN_DIR/$file /tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2214
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2215
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2216
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2217
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2218
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2219
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2220
# If available, use ldd to determine which libraries bfu depends on.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2221
# Otherwise, just make an educated guess.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2222
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2223
if [ -x /usr/bin/ldd ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2224
	bfulib="`ldd /tmp/bfubin/* | nawk '$3 ~ /lib/ { print $3 }' | sort -u`"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2225
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2226
	bfulib="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2227
		/lib/libc.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2228
		/lib/libm.so.2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2229
		/lib/libdoor.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2230
		/lib/libm.so.2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2231
		/lib/libmd5.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2232
		/lib/libnvpair.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2233
		/lib/libscf.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2234
		/lib/libuutil.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2235
		/usr/lib/libbsm.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2236
		/usr/lib/libc2.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2237
		/usr/lib/libdl.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2238
		/usr/lib/libelf.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2239
		/usr/lib/libkstat.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2240
		/usr/lib/libmapmalloc.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2241
		/usr/lib/libmp.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2242
		/usr/lib/libnsl.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2243
		/usr/lib/libpam.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2244
		/usr/lib/libsec.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2245
		/usr/lib/libsocket.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2246
		/usr/lib/libtecla.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2247
	"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2248
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2249
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2250
# add dlopen()'ed stuff
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2251
bfulib="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2252
	$bfulib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2253
	/lib/ld.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2254
	/usr/lib/nss_*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2255
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2256
598
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2257
# add libc_psr.so.1, if available and not empty
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2258
if [ -s /platform/`uname -i`/lib/libc_psr.so.1 ]; then
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2259
	bfulib="
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2260
		$bfulib
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2261
		/platform/`uname -i`/lib/libc_psr.so.1
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2262
	"
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2263
fi
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  2264
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2265
rm -rf /tmp/bfulib /tmp/bl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2266
mkdir /tmp/bfulib /tmp/bl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2267
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2268
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2269
# Create 64 bit directory structure and determine 64 bit arch name.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2270
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2271
if [ -h /usr/lib/64 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2272
then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2273
	link=`ls -dl /usr/lib/64  | awk '{print $NF}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2274
	ln -s $link /tmp/bfulib/64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2275
	ln -s $link /tmp/bl/64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2276
	mkdir /tmp/bfulib/$link /tmp/bl/$link
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2277
	bfulib="$bfulib /usr/lib/64/nss_*"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2278
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2279
	# Copy libraries to proper directories
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2280
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2281
	for lib in $bfulib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2282
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2283
		case $lib in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2284
		*/64/* | */$link/*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2285
			cp $lib /tmp/bfulib/64;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2286
		*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2287
			cp $lib /tmp/bfulib;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2288
		esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2289
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2290
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2291
	# Private 64 bit runtime linker.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2292
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2293
	cp /lib/64/ld.so.1 /tmp/bfulib/64/bf.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2294
	cp /lib/64/ld.so.1 /tmp/bl/64/bf.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2295
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2296
	cp $bfulib /tmp/bfulib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2297
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2298
cp /lib/ld.so.1 /tmp/bfulib/bf.1	# bfu's private runtime linker
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2299
cp /lib/ld.so.1 /tmp/bl/bf.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2300
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2301
${BFULD-$GATE/public/bin/$bfu_isa/bfuld} /tmp/bfubin/* || fail "bfuld failed"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2302
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2303
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2304
# Scripts needed by BFU. These must be modified to use the interpreters in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2305
# /tmp/bfubin. The interpreters in /usr/bin may not be compatible with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2306
# libraries in the archives being extracted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2307
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2308
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2309
bfuscr="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2310
	/usr/bin/basename
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2311
	/usr/bin/dirname
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2312
	${ACR-${GATE}/public/bin/acr}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2313
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2314
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2315
for x in $bfuscr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2316
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2317
	sed -e 's/\/usr\/bin\//\/tmp\/bfubin\//g' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2318
	    -e 's/\/bin\//\/tmp\/bfubin\//g' < $x > /tmp/bfubin/`basename $x`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2319
	chmod +x /tmp/bfubin/`basename $x`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2320
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2321
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2322
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2323
# scripts used together with multiboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2324
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2325
multiboot_scr="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2326
	/boot/solaris/bin/create_ramdisk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2327
	/boot/solaris/bin/create_diskmap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2328
	/boot/solaris/bin/root_archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2329
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2330
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2331
if [ $multiboot_archives = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2332
	for cmd in $multiboot_scr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2333
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2334
		if [ -f $cmd ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2335
			cp $cmd /tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2336
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2337
			if [ ! -d $MULTIBOOT_BIN_DIR ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2338
				echo "$MULTIBOOT_BIN_DIR: not found"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2339
				fail ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2340
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2341
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2342
			file=`basename $cmd`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2343
			if [ ! -f $MULTIBOOT_BIN_DIR/$file ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2344
				echo "$MULTIBOOT_BIN_DIR/$file: not found"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2345
				fail ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2346
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2347
			echo "copying $file from $MULTIBOOT_BIN_DIR"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2348
			cp $MULTIBOOT_BIN_DIR/$file /tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2349
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2350
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2351
		file=`basename $cmd`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2352
		mv /tmp/bfubin/${file} /tmp/bfubin/${file}-
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2353
		sed 's/\/usr\/bin\//\/tmp\/bfubin\//g' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2354
		    < /tmp/bfubin/${file}- > /tmp/bfubin/${file}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2355
		chmod +x /tmp/bfubin/${file}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2356
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2357
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2358
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2359
create_datalink_conf()
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2360
{
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2361
	# /etc/datalink.conf needs to be populated.
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2362
	drivers="bge xge"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2363
	conf=$rootprefix/etc/datalink.conf
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2364
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2365
	if [ ! -f $conf ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2366
		# nothing to do if we bfu'ed from an archive that doesn't
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2367
		# provide /etc/datalink.conf
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2368
		return
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2369
	fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2370
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2371
	ls -1 $rootprefix/etc | egrep -e '^hostname.|^hostname6.|^dhcp.' | \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2372
	    cut -d . -f2 | sort -u > /tmp/ifnames.$$
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2373
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2374
	for driver in $drivers
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2375
	do
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2376
		grep $driver /tmp/ifnames.$$ | \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2377
		while read ifname
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2378
		do
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2379
			devnum=`echo $ifname | sed "s/$driver//g"`
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2380
			if [ "$driver$devnum" != $ifname -o \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2381
			    -n "`echo $devnum | tr -d '[0-9]'`" ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2382
				echo "skipping invalid interface $ifname"
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2383
				continue
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2384
			fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2385
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2386
			vid=`expr $devnum / 1000`
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2387
			inst=`expr $devnum % 1000`
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2388
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2389
			awk '{ print $1 }' $conf | grep $ifname > /dev/null
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2390
			if [ $? -ne 0 ]; then 
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2391
				# An entry for that interface does not exist
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2392
				printf \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2393
				    "$ifname\t$driver$inst\t0\t$vid\n" \
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2394
				    >> $conf
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2395
			fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2396
		done
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2397
	done
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2398
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2399
	rm -f /tmp/ifnames.$$
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2400
}
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  2401
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2402
remove_initd_links()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2403
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2404
	# If we're delivering a new version of an existing /etc/init.d script,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2405
	# remove all hard links to the existing file in /etc/rc?.d whose
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2406
	# names begin with [SK][0-9][0-9].  Additionally, in case an S or K
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2407
	# file was previously delivered as a symbolic link or the hard link
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2408
	# was broken, remove any file in /etc/rc?.d whose name is
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2409
	# [SK][0-9][0-9] followed by the basename of the file we're going
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2410
	# to update in /etc/init.d.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2411
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2412
	print "Removing init.d links ... \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2413
	scripts=`$ZCAT $cpiodir/generic.root$ZFIX |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2414
		cpio -it 2>/dev/null | grep '^etc/init\.d/'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2415
	if [ -n "$scripts" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2416
		inodes=`ls -li $scripts 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2417
			nawk '{ print "-inum " $1 " -o " }'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2418
		names=`ls -1 $scripts 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2419
			nawk -F/ '{ print "-name [SK][0-9][0-9]" $NF }'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2420
		find etc/rc?.d \( $inodes $names \) -print | xargs rm -f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2421
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2422
	print "done."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2423
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2424
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2425
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2426
# Remove the old 5.005_03 version of perl.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2427
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2428
remove_perl_500503()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2429
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2430
	# Packages to remove.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2431
	typeset -r perl_pkgs='SUNWopl5m SUNWopl5p SUNWopl5u'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2432
	typeset -r pkgroot=${rootprefix:+-R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2433
	typeset pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2434
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2435
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2436
	# First, attempt to remove the packages cleanly if possible.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2437
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2438
	printf 'Removing perl 5.005_03 packages'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2439
	for pkg in $perl_pkgs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2440
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2441
		if pkginfo $pkgroot -q $pkg; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2442
			printf ' %s' $pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2443
			pkgrm $pkgroot -n $pkg >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2444
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2445
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2446
	printf '\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2447
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2448
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2449
	# In case that didn't work, do it manually.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2450
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2451
	printf 'Removing perl 5.005_03 from %s/var/sadm/install/contents' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2452
	    $rootprefix
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2453
	for pkg in $PKGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2454
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2455
		printf ' %s' $pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2456
		if [ -d $rootprefix/var/sadm/pkg/$pkg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2457
			rm -rf $rootprefix/var/sadm/pkg/$pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2458
			grep -vw $pkg $rootprefix/var/sadm/install/contents > \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2459
			    /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2460
			cp /tmp/contents.$$ /var/sadm/install/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2461
			rm /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2462
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2463
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2464
	printf '\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2465
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2466
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2467
	# Remove any remaining 5.005_03 files,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2468
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2469
	printf 'Removing perl 5.005_03 from %s/perl5\n' $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2471
	# Directories.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2472
	rm -rf $usr/perl5/5.00503
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2473
	rm -rf $usr/perl5/site_perl/5.005
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2474
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2475
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2476
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2477
# Remove BIND 8 named server/tools packages
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2478
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2479
remove_eof_bind8()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2480
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2481
	# Packages to remove
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2482
	typeset -r bind8_pkg='SUNWinamd'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2483
	typeset -r pkgroot=${rootprefix:+-R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2484
	typeset pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2485
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2486
	printf 'Removing BIND 8 named server/tools... '
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2487
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2488
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2489
	# We cann't pkgrm SUNWinamd at this time as the BIND 9 binaries are
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2490
	# already in /usr/sbin.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2491
	# Remove BIND 8 packages from $rootprefix/var/sadm/install/contents
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2492
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2493
	for pkg in $bind8_pkgs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2494
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2495
		if [ -d $rootprefix/var/sadm/pkg/$pkg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2496
			rm -rf $rootprefix/var/sadm/pkg/$pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2497
			grep -vw $pkg $rootprefix/var/sadm/install/contents > \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2498
			    /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2499
			cp /tmp/contents.$$ /var/sadm/install/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2500
			rm /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2501
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2502
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2503
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2504
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2505
	# Cleanup any BIND 8 specific files, symlinks.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2506
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2507
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2508
	# files and symlinks.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2509
	rm -f $usr/sbin/named-xfer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2510
	rm -f $usr/lib/nslookup.help
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2511
	rm -f $usr/sbin/dnskeygen
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2512
	rm -f $usr/sbin/named-bootconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2513
	rm -f $usr/sbin/nstest
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2514
	rm -rf $rootprefix/var/run/ndc.d
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2515
	printf 'done.\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2516
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2517
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2518
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2519
# Remove the 5.8.3 version of perl.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2520
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2521
remove_perl_583()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2522
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2523
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2524
	# Copy perl 5.8.3 into the new 5.8.4 locations.  This will preserve
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2525
	# any add-on modules that might have been installed, and any 5.8.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2526
	# core files that get copied over will be replaced by the new 5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2527
	# versions when the cpio archives are subsequently extracted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2528
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2529
	printf 'Preserving user-installed perl modules...\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2530
	mkdir -p $usr/perl5/5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2531
	cp -rp $usr/perl5/5.8.3/* \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2532
	    $usr/perl5/5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2533
	mkdir -p $usr/perl5/site_perl/5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2534
	cp -rp $usr/perl5/site_perl/5.8.3/* \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2535
	    $usr/perl5/site_perl/5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2536
	mkdir -p $usr/perl5/vendor_perl/5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2537
	cp -rp $usr/perl5/vendor_perl/5.8.3/* \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2538
	    $usr/perl5/vendor_perl/5.8.4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2539
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2540
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2541
	# Update the #! lines in any scripts in /usr/perl5/5.8.4/bin to refer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2542
	# to 5.8.4 instead of 5.8.3.  Take care to edit only scripts.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2543
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2544
	typeset bindir="$usr/perl5/5.8.4/bin"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2545
	typeset script
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2546
	for script in $(ls $bindir); do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2547
		script="$bindir/$script"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2548
		if [[ $script = "$usr/perl5/5.8.4/bin/perl5.8.3" ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2549
			rm -f $script
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2550
		elif file $script | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2551
		    egrep -s 'executable .*perl .*script'; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2552
			sed -e \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2553
			    's!/usr/perl5/5.8.3/bin/perl!/usr/perl5/5.8.4/bin/perl!g' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2554
			    < $script > $script.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2555
			mv -f $script.tmp $script
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2556
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2557
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2558
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2559
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2560
	# Packages to remove.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2561
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2562
	typeset -r perl_pkgs='SUNWperl583man SUNWperl583usr SUNWperl583root'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2563
	typeset -r pkgroot=${rootprefix:+-R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2564
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2565
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2566
	# First, attempt to remove the packages cleanly if possible.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2567
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2568
	typeset pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2569
	printf 'Removing perl 5.8.3 packages'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2570
	for pkg in $perl_pkgs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2571
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2572
		if pkginfo $pkgroot -q $pkg; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2573
			printf ' %s' $pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2574
			pkgrm $pkgroot -n $pkg >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2575
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2576
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2577
	printf '\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2578
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2579
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2580
	# In case that didn't work, do it manually.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2581
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2582
	printf 'Removing perl 5.8.3 from %s/var/sadm/install/contents' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2583
	    $rootprefix
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2584
	for pkg in $PKGS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2585
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2586
		printf ' %s' $pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2587
		if [ -d $rootprefix/var/sadm/pkg/$pkg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2588
			rm -rf $rootprefix/var/sadm/pkg/$pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2589
			grep -vw $pkg $rootprefix/var/sadm/install/contents > \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2590
			    /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2591
			cp /tmp/contents.$$ /var/sadm/install/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2592
			rm /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2593
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2594
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2595
	printf '\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2596
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2597
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2598
	# Remove any remaining 5.8.3 files,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2599
	# and fix up the symlinks if necessary.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2600
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2601
	printf 'Removing perl 5.8.3 from %s/perl5\n' $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2602
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2603
	# Directories.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2604
	rm -rf $usr/perl5/5.8.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2605
	rm -rf $usr/perl5/site_perl/5.8.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2606
	rm -rf $usr/perl5/vendor_perl/5.8.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2607
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2608
	# bin symlink.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2609
	rm -f $usr/perl5/bin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2610
	ln -s ./5.8.4/bin $usr/perl5/bin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2611
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2612
	# pod symlink.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2613
	rm -f $usr/perl5/pod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2614
	ln -s ./5.8.4/lib/pod $usr/perl5/pod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2615
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2616
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2617
	# man symlink.  In earlier S10 builds the man symlink mistakenly points
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2618
	# to the 5.6.1 manpages, instead of 5.8.3.  Fix to point to 5.8.4.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2619
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2620
	rm -f $usr/perl5/man
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2621
	ln -s ./5.8.4/man $usr/perl5/man
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2622
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2623
	# Symlink /bin/perl to 5.8.4.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2624
	rm -f $usr/bin/perl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2625
	ln -s ../perl5/5.8.4/bin/perl $usr/bin/perl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2626
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2627
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2628
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2629
# Remove FNS/XFN packages
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2630
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2631
remove_eof_fns()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2632
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2633
	# Packages to remove
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2634
	typeset -r fns_pkgs='SUNWfnx5x SUNWfnsx5 SUNWfnsx SUNWfns'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2635
	typeset -r pkgroot=${rootprefix:+-R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2636
	typeset pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2637
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2638
	printf 'Removing FNS/XFN ... '
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2639
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2640
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2641
	# First, attempt to remove the packages cleanly if possible.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2642
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2643
	for pkg in $fns_pkgs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2644
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2645
		if pkginfo $pkgroot -q $pkg; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2646
			printf ' %s' $pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2647
			pkgrm $pkgroot -n $pkg >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2648
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2649
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2650
	printf '\n'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2651
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2652
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2653
	# In case that didn't work, do it manually.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2654
	# Remove FNS/XFN from $rootprefix/var/sadm/install/contents
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2655
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2656
	for pkg in $fns_pkgs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2657
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2658
		if [ -d $rootprefix/var/sadm/pkg/$pkg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2659
			rm -rf $rootprefix/var/sadm/pkg/$pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2660
			grep -vw $pkg $rootprefix/var/sadm/install/contents > \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2661
			    /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2662
			cp /tmp/contents.$$ $rootprefix/var/sadm/install/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2663
			rm /tmp/contents.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2664
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2665
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2666
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2667
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2668
	# Cleanup if any remaining FNS/XFN files, symlinks, and directories.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2669
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2670
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2671
	# directories.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2672
	rm -rf $rootprefix/etc/fn
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2673
	rm -rf $usr/include/xfn
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2674
	rm -rf $usr/lib/fn
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2675
	rm -rf $rootprefix/var/fn
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2676
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2677
	# files and symlinks.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2678
	rm -f $rootprefix/etc/fn.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2679
	rm -f $usr/bin/fnattr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2680
	rm -f $usr/bin/fnbind
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2681
	rm -f $usr/bin/fncreate_printer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2682
	rm -f $usr/bin/fnlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2683
	rm -f $usr/bin/fnlookup
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2684
	rm -f $usr/bin/fnrename
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2685
	rm -f $usr/bin/fnsearch
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2686
	rm -f $usr/bin/fnunbind
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2687
	rm -f $usr/sbin/fncheck
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2688
	rm -f $usr/sbin/fncopy
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2689
	rm -f $usr/sbin/fncreate
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2690
	rm -f $usr/sbin/fncreate_fs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2691
	rm -f $usr/sbin/fndestroy
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2692
	rm -f $usr/sbin/fnselect
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2693
	rm -f $usr/sbin/fnsypd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2694
	rm -f $usr/lib/libfn_p.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2695
	rm -f $usr/lib/libfn_p.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2696
	rm -f $usr/lib/libfn_spf.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2697
	rm -f $usr/lib/libfn_spf.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2698
	rm -f $usr/lib/libxfn.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2699
	rm -f $usr/lib/libxfn.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2700
	rm -f $usr/lib/libxfn.so.2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2701
	rm -f $usr/lib/sparcv9/libfn_p.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2702
	rm -f $usr/lib/sparcv9/libfn_p.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2703
	rm -f $usr/lib/sparcv9/libfn_spf.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2704
	rm -f $usr/lib/sparcv9/libfn_spf.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2705
	rm -f $usr/lib/sparcv9/libxfn.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2706
	rm -f $usr/lib/sparcv9/libxfn.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2707
	rm -f $usr/lib/sparcv9/libxfn.so.2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2708
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2709
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2710
remove_properties() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2711
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2712
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2713
	# Remove obsolete smartii setprop from bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2714
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2715
	srcbootenvrc=$root/boot/solaris/bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2716
	tmpbootenvrc=/tmp/tmp.bootenvrc.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2717
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2718
	# Don't touch bootenv.rc unless it contains obsolete property
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2719
	egrep -s 'target-driver-for-smartii' $srcbootenvrc 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2720
	res=$?
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2721
	if [ -f $srcbootenvrc -a $res -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2722
		egrep -v "target-driver-for-smartii"\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2723
			$srcbootenvrc > $tmpbootenvrc 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2724
		cp $tmpbootenvrc $srcbootenvrc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2725
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2726
	rm -f $tmpbootenvrc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2727
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2728
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2729
enable_crypto_unlimited()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2730
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2731
# This is a "copy" of the SUNWcry* postinstall scripts.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2732
# We enable the encryption kit aes256, arcfour2048, and blowfish448 modules.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2733
# This is needed to ensure bfu users continue to have the full strength of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2734
# cryptographic algorithms they use.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2735
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2736
	print "Simulating SUNWcry* installation...\c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2737
	kcfconf=$rootprefix/etc/crypto/kcf.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2738
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2739
	cp $kcfconf ${kcfconf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2740
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2741
	sed -e 's/^aes:/aes256:/' -e 's/^blowfish:/blowfish448:/' -e \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2742
	    's/^arcfour:/arcfour2048:/'\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2743
        	$kcfconf > ${kcfconf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2744
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2745
	mv -f ${kcfconf}.tmp $kcfconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2746
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2747
	# Since we do that for the kernel we do it for userland as well.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2748
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2749
	# "Clone" the policy for pkcs11_softtoken to the encryption kit version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2750
	# and "disable" pkcs11_softoken.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2751
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2752
	pkcs11conf=$rootprefix/etc/crypto/pkcs11.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2753
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2754
	cp $pkcs11conf ${pkcs11conf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2755
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2756
	sed 's/pkcs11_softtoken\.so/pkcs11_softtoken_extra.so/' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2757
        	$pkcs11conf > ${pkcs11conf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2758
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2759
	mv -f ${pkcs11conf}.tmp $pkcs11conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2760
	print "\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2761
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2762
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2763
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2764
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2765
# Add metaslot configuration to pkcs11.conf if it doesn't already exist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2766
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2767
enable_crypto_metaslot()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2768
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2769
	pkcs11conf=$rootprefix/etc/crypto/pkcs11.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2770
	egrep '^metaslot' ${pkcs11conf} > /dev/null 2>& 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2771
	if [ $? != 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2772
		print "Adding cryptographic framework's meta slot feature"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2773
		cp $pkcs11conf ${pkcs11conf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2774
		export metaslot_config=\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2775
"metaslot:metaslot_status=enabled;metaslot_auto_key_migrate=enabled;"\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2776
"metaslot_token=Sun Software PKCS#11 softtoken;"\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2777
"metaslot_slot=Sun Crypto Softtoken"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2778
		nawk '/^# End SUNWcsr/ \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2779
			{ print ENVIRON["metaslot_config"] } \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2780
			{ print } \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2781
		' ${pkcs11conf}	> ${pkcs11conf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2782
		mv -f ${pkcs11conf}.tmp $pkcs11conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2783
		print "\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2784
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2785
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2786
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2787
cleanup_kerberos_mechanisms()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2788
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2789
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2790
# This checks to see if the old 'gl' and 'do' directories
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2791
# for the Kerberos GSS-API mechanisms can be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2792
# If the mechanism exists in /usr/lib/gss, then the old
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2793
# subdirs may be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2794
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2795
	print "Cleaning up old Kerberos GSS-API mechanisms...\c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2796
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2797
	kerneldir=kernel/misc/kgss
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2798
	kerneldir_sparc=kernel/misc/kgss/sparcv9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2799
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2800
	newmech=no;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2801
	if [ -f $usr/lib/gss/mech_krb5.so.1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2802
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2803
		# There is a mech  in the "new" location, so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2804
		# the old stuff can be deleted.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2805
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2806
		if [ -d $usr/lib/gss/gl ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2807
			rm -rf $usr/lib/gss/gl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2808
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2809
		if [ -d $usr/lib/gss/do ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2810
			rm -rf $usr/lib/gss/do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2811
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2812
		newmech=yes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2813
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2814
	if [ -f $usr/lib/sparcv9/gss/mech_krb5.so.1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2815
		if [ -d $usr/lib/sparcv9/gss/gl ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2816
			rm -rf $usr/lib/sparcv9/gss/gl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2817
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2818
		if [ -d $usr/lib/sparcv9/gss/do ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2819
			rm -rf $usr/lib/sparcv9/gss/do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2820
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2821
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2822
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2823
	# Cleanup kernel mechanisms from default location
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2824
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2825
	if [ -f $rootprefix/$kerneldir/kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2826
		if [ -f $rootprefix/$kerneldir/gl_kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2827
			rm -f $rootprefix/$kerneldir/gl_kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2828
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2829
		if [ -f $rootprefix/$kerneldir/do_kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2830
			rm -f $rootprefix/$kerneldir/do_kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2831
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2832
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2833
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2834
	# For SPARC, cleanup from 2 locations.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2835
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2836
	# 1.  /kernel/misc/kgss/sparcv9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2837
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2838
	if [ -f $rootprefix/$kerneldir_sparc/kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2839
		if [ -f $rootprefix/$kerneldir_sparc/gl_kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2840
			rm -f $rootprefix/$kerneldir_sparc/gl_kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2841
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2842
		if [ -f $rootprefix/$kerneldir_sparc/do_kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2843
			rm -f $rootprefix/$kerneldir_sparc/do_kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2844
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2845
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2846
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2847
	# 2.  /platform/sun4u/kernel/misc/kgss/sparcv9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2848
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2849
	kerneldir_sparc=platform/$karch/$kerneldir_sparc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2850
	if [ -f $rootprefix/$kerneldir_sparc/kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2851
		if [ -f $rootprefix/$kerneldir_sparc/gl_kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2852
			rm -f $rootprefix/$kerneldir_sparc/gl_kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2853
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2854
		if [ -f $rootprefix/$kerneldir_sparc/do_kmech_krb5 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2855
			rm -f $rootprefix/$kerneldir_sparc/do_kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2856
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2857
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2858
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2859
	# Make sure the GSS mechanism configuration file is correct
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2860
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2861
	if [ "$newmech" = "yes" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2862
		gssmechconf=$rootprefix/etc/gss/mech
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2863
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2864
		sed -e 's/gl\/mech_krb5\.so/mech_krb5\.so/' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2865
		-e 's/do\/mech_krb5\.so/mech_krb5\.so/' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2866
		-e 's/gl_kmech_krb5/kmech_krb5/' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2867
		-e 's/do_kmech_krb5/kmech_krb5/'\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2868
		$gssmechconf > ${gssmechconf}.tmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2869
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2870
		if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2871
			mv -f ${gssmechconf}.tmp $gssmechconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2872
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2873
			echo  "WARNING: update of $gssmechconf failed."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2874
			return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2875
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2876
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2877
	print "\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2878
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2879
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2880
mpxiodisableno='^[ 	]*mpxio-disable[ 	]*=[ 	]*"no"[ 	]*;'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2881
mpxiodisableyes='^[ 	]*mpxio-disable[ 	]*=[ 	]*"yes"[ 	]*;'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2882
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2883
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2884
# disable mpxio on fp(7D) ports using fp.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2885
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2886
disable_mpxio_using_fpconf()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2887
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2888
	conffile=$rootprefix/kernel/drv/fp.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2889
	test -f $conffile || return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2890
	egrep -s "$mpxiodisableyes" $conffile && return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2891
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2892
	print "To preserve device names, disabled mpxio on fp(7D) ports by"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2893
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2894
	if egrep -s "$mpxiodisableno" $conffile; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2895
		tmpfile=/tmp/fp.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2896
		sed "s/$mpxiodisableno/mpxio-disable=\"yes\";/" $conffile \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2897
		    > $tmpfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2898
		cp $tmpfile $conffile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2899
		rm -f $tmpfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2900
		print "changing the value of mpxio-disable to \"yes\" in" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2901
		  "$conffile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2902
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2903
		echo 'mpxio-disable="yes";' >> $conffile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2904
		print "adding mpxio-disable=\"yes\" entry to $conffile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2905
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2906
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2907
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2908
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2909
# enable mpxio in scsi_vhci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2910
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2911
enable_mpxio_using_scsivhciconf()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2912
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2913
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2914
	# depending on whether the bfu restored the child's or parent's version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2915
	# of scsi_vhci.conf file, we may already have the file with the change
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2916
	# we need in place. So make the change only if necessary.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2917
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2918
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2919
	conffile=$rootprefix/kernel/drv/scsi_vhci.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2920
	egrep -s "$mpxiodisableno" $conffile && return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2921
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2922
	print "To preserve device names, restored your current mpxio" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2923
	    "configuration by"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2924
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2925
	if egrep -s "$mpxiodisableyes" $conffile; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2926
		tmpfile=/tmp/scsi_vhci.conf.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2927
		sed "s/$mpxiodisableyes/mpxio-disable=\"no\";/" $conffile \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2928
		    > $tmpfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2929
		cp $tmpfile $conffile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2930
		rm -f $tmpfile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2931
		print "changing the value of mpxio-disable to \"no\" in" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2932
		  "$conffile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2933
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2934
		echo 'mpxio-disable="no";' >> $conffile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2935
		print "adding mpxio-disable=\"no\" entry to $conffile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2936
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2937
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2938
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2939
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2940
# restore the pre-bfu MPxIO on/off setting to the post-bfued configuration
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2941
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2942
fixup_mpxio()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2943
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2944
	conffile=$rootprefix/kernel/drv/scsi_vhci.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2945
	parentconffile=$rootprefix/bfu.parent/kernel/drv/scsi_vhci.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2946
	childconffile=$rootprefix/bfu.child/kernel/drv/scsi_vhci.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2947
	ancestorconffile=$rootprefix/bfu.ancestor/kernel/drv/scsi_vhci.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2948
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2949
	# if scsi_vhci.conf doesn't exist return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2950
	test -f $conffile || return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2951
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2952
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2953
	# Determine the mpxio setting in the child. If the system was bfued
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2954
	# before and running with mpxio on by deafult bits, can't rely on the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2955
	# mpxio-disable entry in the child's scsi_vhci.conf file as it may
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2956
	# contain stale left over entries.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2957
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2958
	mpxio_child=1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2959
	if [ -f $ancestorconffile ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2960
		if egrep -s "$mpxiodisableyes" $ancestorconffile; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2961
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2962
			# prior to the bfu the system was running with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2963
			# mpxio off by default bits.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2964
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2965
			mpxio_child=0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2966
			egrep -s "$mpxiodisableno" $childconffile && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2967
			    mpxio_child=1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2968
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2969
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2970
		egrep -s "$mpxiodisableyes" $childconffile && mpxio_child=0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2971
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2972
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2973
	if egrep -s "$mpxiodisableyes" $parentconffile; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2974
		# these bits require explicit enabling of mpxio at in scsi_vhci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2975
		if [ $mpxio_child -eq 1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2976
			egrep -s "$mpxiodisableyes" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2977
			    $rootprefix/kernel/drv/fp.conf || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2978
			    enable_mpxio_using_scsivhciconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2979
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2980
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2981
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2982
		# these bits have mpxio enabled by default in scsi_vhci.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2983
		# if mpxio is disabled in the child, disable mpxio on all
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2984
		# fp(7D) ports using fp.conf.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2985
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2986
		[ $mpxio_child -eq 0 ] && disable_mpxio_using_fpconf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2987
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2988
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2989
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2990
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2991
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2992
# Check to see if root in $1 has a mounted boot, and that
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2993
# it's mounted at the right place for bfu to handle it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2994
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2995
# Returns 0 (true) if bfu can handle the upgrade; fails if not
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2996
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2997
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2998
boot_is_upgradeable()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2999
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3000
	ROOT=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3001
	if [ "$ROOT" = "/" ] ; then ROOT=""; fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3002
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3003
        BOOTPARTDEV="$(grep -s -v '^#' ${ROOT}/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3004
	    grep "[ 	]/boot[ 	]*pcfs[ 	]" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3005
	    awk '{print $1}')"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3006
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3007
	# find out if, and where, boot is mounted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3009
	if [ -n "$BOOTPARTDEV" ] ; then 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3010
		if [ -n "$ROOT" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3011
		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3012
			BOOTMNT=$(mount | grep "$BOOTPARTDEV" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3013
			    awk '{print $1}')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3014
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3015
			BOOTMNT="/boot"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3016
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3017
		if [ "$BOOTMNT" != ${ROOT}/boot ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3018
			cat << BOOTMOUNTERR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3019
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3020
${ROOT} refers to an x86 boot partition, but it's not mounted 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3021
at ${ROOT}/boot.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3022
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3023
BOOTMOUNTERR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3024
			fail "Mount ${ROOT}s bootpart at ${ROOT}/boot.\n\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3025
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3026
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3027
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3028
	return 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3029
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3030
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3031
# update the realmode boot programs at $1 (root) 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3032
# from classic boot psm/stand/bootblks/ufs/i386/installboot.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3033
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3034
install_boot_i386()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3035
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3036
	PBOOT=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3037
	BOOTBLK=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3038
	DEVICE=$3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3039
	if [ ! -f $PBOOT ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3040
		echo "$PBOOT: File not found"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3041
		return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3042
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3043
	if [ ! -f $BOOTBLK ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3044
		echo "$BOOTBLK: File not found"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3045
		return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3046
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3047
	if [ ! -c $DEVICE ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3048
		echo "$DEVICE: Not a character device"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3049
		return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3050
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3051
	if [ ! -w $DEVICE ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3052
		echo "$DEVICE: Not writeable"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3053
		return 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3054
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3055
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3056
	# pboot at block 0, label at blocks 1 and 2, bootblk from block 3 on
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3057
	dd if=$PBOOT of=$DEVICE bs=1b count=1 conv=sync >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3058
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3059
	dd if=$BOOTBLK of=$DEVICE bs=1b oseek=3 conv=sync >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3060
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3061
	return 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3062
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3063
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3064
update_realmode_booters()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3065
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3066
	ROOT=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3067
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3068
	TMPDIR=/tmp/rmupdate.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3069
	trap "rm -rf $TMPDIR" EXIT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3070
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3071
	# go get new versions of boot files into TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3072
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3073
	OLD_PWD=$(pwd)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3074
	mkdir $TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3075
	cd $TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3076
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3077
	# i86pc.boot archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3078
	REQFILES="boot/mdboot boot/strap.com"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3079
	$ZCAT $cpiodir/i86pc.boot$ZFIX |  cpio -id $REQFILES 2>/dev/null 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3080
	mv $REQFILES $TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3081
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3082
	# i86pc.usr archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3083
	REQFILES="usr/platform/i86pc/lib/fs/ufs/pboot"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3084
	REQFILES="$REQFILES usr/platform/i86pc/lib/fs/ufs/bootblk"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3085
	$ZCAT $cpiodir/i86pc.usr$ZFIX | cpio -id $REQFILES 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3086
	mv $REQFILES $TMPDIR
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3087
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3088
	cd $OLD_PWD
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3089
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3090
	grep -s -v '^#' ${ROOT}/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3091
	    grep "[ 	]/boot[ 	]*pcfs[ 	]" >/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3092
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3093
	if [ $? -eq 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3094
		echo 'Updating /boot on x86 boot partition.'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3095
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3096
		REQFILES="mdboot strap.com"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3097
		for f in ${REQFILES}; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3098
			if [ ! -f ${TMPDIR}/$f ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3099
				fail "Missing $f, aborting."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3100
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3101
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3102
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3103
		MDBOOT=${TMPDIR}/mdboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3104
		STRAP=${TMPDIR}/strap.com
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3105
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3106
		LUBIN=/usr/lib/lu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3107
		TMP_FDFILE1=${TMPDIR}/fdfile1.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3108
		LOGFILE=${TMPDIR}/mkfs.log.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3109
		DDCOPY=${TMPDIR}/.dd_x86_boot_copy
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3110
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3111
		DISKID="$(grep -s -v '^#' ${ROOT}/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3112
		    grep "[ 	]/boot[ 	]*pcfs[ 	]" |\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3113
		    awk '{print $1}' | sed -e 's:p0\:boot::g')"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3114
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3115
		DISKID="$(basename ${DISKID})"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3116
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3117
		# Obtain the disk table; it will look something like the following:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3118
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3119
# * Id    Act  Bhead  Bsect  Bcyl    Ehead  Esect  Ecyl    Rsect    Numsect
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3120
#   130   128  27     28     0       242    9      553     1728     8897472
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3121
		# 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3122
		# Delete all blank lines, and all lines that begin with *,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3123
		# leaving only actual fdisk entries that we can scan
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3124
		# looking for the X86BOOT partition
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3125
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3126
		fdisk -W - /dev/rdsk/${DISKID}p0 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3127
		    grep -v '^*' | grep -v '^$' > ${TMP_FDFILE1}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3128
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3129
		num=1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3130
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3131
		while read id act bhead bcyl ehead ecyl rsect numsect
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3132
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3133
			# Ignore entry if not X86 /boot partition
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3134
			# ID '190' is the X86BOOT partition (see man fdisk(1M))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3135
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3136
			if [ $id -ne "190" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3137
				num=$(expr $num + 1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3138
				continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3139
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3140
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3141
			# Found X86 boot partition - save contents to $DDCOPY
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3142
			BOOTPART=/dev/rdsk/${DISKID}p${num}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3143
			echo "Boot device is <${BOOTPART}>"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3144
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3145
			ERRMSG="$(dd if=${BOOTPART} of=${DDCOPY} 2>&1)"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3146
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3147
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3148
				fail "Unable to save copy of <${BOOTPART}>."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3149
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3150
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3151
			# mount copy of old /boot partition 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3152
			LOBOOTDEV=$(lofiadm -a ${DDCOPY} 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3153
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3154
				[ -n "${LOBOOTDEV}" ] && echo "${LOBOOTDEV}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3155
				fail "Unable to make lo-device <${DDCOPY}>"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3156
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3157
			SOURCE_BOOT_DEV="${TMPDIR}/tmpbootdev.$$"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3158
			mkdir ${SOURCE_BOOT_DEV}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3159
			ERRMSG=$(mount -F pcfs ${LOBOOTDEV} \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3160
			    ${SOURCE_BOOT_DEV})
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3161
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3162
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3163
				fail "Unable to mount lo-device <${LOBOOTDEV}>."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3164
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3165
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3166
			# recreate existing boot partition with updated 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3167
			# boot files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3168
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3169
			# umount ${ROOT}'s /boot if mounted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3170
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3171
			BOOTMOUNTPT=$(mount | grep ${DISKID}p0:boot 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3172
			    awk '{print $1;}')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3173
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3174
			if [ -n "${BOOTMOUNTPT}" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3175
				echo "unmounting /dev/dsk/${DISKID}p0:boot"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3176
				ERRMSG=$(umount \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3177
				    /dev/dsk/${DISKID}p0:boot 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3178
				if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3179
					[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3180
					fail "Unable to umount X86 boot device."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3181
				fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3182
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3183
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3184
			echo "Making new pcfs file system on ${DISKID}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3185
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3186
			echo y | /usr/lib/fs/pcfs/mkfs -F pcfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3187
			    -o S,s,B=$MDBOOT,b=BOOT,i=$STRAP \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3188
			    /dev/rdsk/${DISKID}p0:boot >> ${LOGFILE} 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3189
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3190
				echo "Unable to make pcfs:"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3191
				cat ${LOGFILE}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3192
				fail ""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3193
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3194
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3195
			echo "Copying x86 boot partition contents back\c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3196
			echo " to new /boot fs."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3197
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3198
			OLD_PWD=$(pwd)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3199
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3200
			echo "Remounting freshened /boot partition"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3201
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3202
			if [ -z "${BOOTMOUNTPT}" ] ; then 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3203
				# boot ptn wasn't mounted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3204
				BOOTMOUNT="/tmp/bootpart"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3205
				mkdir ${BOOTMOUNT}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3206
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3207
				BOOTMOUNT=${BOOTMOUNTPT}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3208
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3209
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3210
			ERRMSG=$(mount -F pcfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3211
			    /dev/dsk/${DISKID}p0:boot ${BOOTMOUNT} 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3212
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3213
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3214
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3215
				fail "Unable to mount X86 boot device."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3216
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3217
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3218
			# copy old /boot contents
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3219
			cd ${SOURCE_BOOT_DEV}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3220
			find . -mount \! -type s -print | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3221
			    cpio -pcdum ${BOOTMOUNT} 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3222
			    ${LUBIN}/lustripcpioerr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3223
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3224
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3225
				fail "Unable to copy boot partition contents."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3226
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3227
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3228
			cd ${OLD_PWD}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3229
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3230
			# unmount and rm our boot mount, if we created it
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3231
			if [ -z "${BOOTMOUNTPT}" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3232
				ERRMSG=$(umount ${BOOTMOUNT} 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3233
				if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3234
					[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3235
					fail "Unable to umount <$BOOTMOUNT>." 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3236
				fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3237
				rm -rf ${BOOTMOUNT}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3238
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3239
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3240
			# unmount, un-lofi, and rm SOURCE_BOOT_DEV
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3241
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3242
			ERRMSG=$(umount ${SOURCE_BOOT_DEV} 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3243
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3244
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3245
				fail "Cannot umount lo-device <${LOBOOTDEV}>." 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3246
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3247
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3248
			ERRMSG=$(lofiadm -d ${DDCOPY} 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3249
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3250
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3251
				fail "Cannot remove lo-device <${LOBOOTDEV}>." 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3252
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3253
		
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3254
			rm -rf ${SOURCE_BOOT_DEV}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3255
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3256
		done < ${TMP_FDFILE1}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3257
		rm ${TMP_FDFILE1} ${LOGFILE} ${DDCOPY}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3258
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3259
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3260
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3261
		# non boot-partition: use installboot to get pboot and bootblk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3262
		echo "Updating /boot on Solaris partition."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3263
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3264
		if [ -z "${ROOT}" ] ; then SEARCH="/"; else SEARCH="${ROOT}"; fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3265
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3266
		ROOTRAWDEV=$(mount | grep "^${SEARCH} on " | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3267
		    awk '{print $3}' | sed 's;/dsk;/rdsk;')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3268
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3269
		if [ -z "${ROOTRAWDEV}" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3270
			[ -n "${ROOTRAWDEV}" && echo "${ROOTRAWDEV}" ] 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3271
			fail "${SEARCH} must be a mounted filesystem"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3272
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3273
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3274
		echo "Updating Solaris partition ${ROOTRAWDEV} with installboot"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3275
		REQFILES="pboot bootblk"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3276
		for f in ${REQFILES}; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3277
			if [ ! -f ${TMPDIR}/$f ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3278
				fail "Missing $f, aborting."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3279
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3280
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3281
		PBOOT=${TMPDIR}/pboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3282
		BOOTBLK=${TMPDIR}/bootblk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3283
		install_boot_i386 $PBOOT $BOOTBLK ${ROOTRAWDEV}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3284
		if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3285
			fail "Unable to installboot to <${ROOTRAWDEV}>." 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3286
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3287
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3288
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3289
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3290
print "Verifying archives ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3291
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3292
for a in generic $allarchs $rootarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3293
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3294
	test -r $cpiodir/$a.root$ZFIX ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3295
		fail "bfu archive $cpiodir/$a.root$ZFIX missing"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3296
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3297
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3298
if [ ! -r $cpiodir/generic.lib$ZFIX -o ! -r $cpiodir/generic.kernel$ZFIX -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3299
    ! -r $cpiodir/generic.sbin$ZFIX ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3300
	old_style_archives="true"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3301
	$ZCAT $cpiodir/generic.root$ZFIX | cpio -it 2>/dev/null | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3302
	    egrep -s '^etc/zones' && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3303
		fail "bfu archive $cpiodir/generic.{kernel,lib,sbin}$ZFIX" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3304
		     "missing;\npossible mkbfu version mismatch: pre-zones" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3305
		     "style archives with zones files."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3306
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3307
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3308
for a in generic $allarchs $usrarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3309
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3310
	test -r $cpiodir/$a.usr$ZFIX ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3311
		fail "bfu archive $cpiodir/$a.usr$ZFIX missing"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3312
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3313
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3314
for root in $rootlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3315
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3316
	cd $root || fail "Cannot cd $root"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3317
	prologue=${root%/}/bfu.prologue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3318
	if [ -f $prologue ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3319
		print "Executing $prologue"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3320
		$prologue || fail "$prologue failed with code $?"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3321
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3322
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3323
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3324
print "Performing basic sanity checks ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3325
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3326
for dir in $usr $rootlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3327
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3328
	test -d $dir || fail "$dir does not exist"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3329
	test -w $dir || fail "$dir is not writable"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3330
	cd $dir || fail "Cannot cd $dir"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3331
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3332
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3333
RM_32BIT_KERNEL=0;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3334
if [ "$karch" = "sun4u" ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3335
   ($ZCAT $cpiodir/sun4u.root$ZFIX | cpio -itv 2>&1 |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3336
    grep "^l.*platform/sun4u/kernel/unix -> sparcv9/unix$" > /dev/null);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3337
    then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3338
	RM_32BIT_KERNEL=1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3339
	if [ "$force_override" = "no" ] && 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3340
	   (prtconf -F 2>&1 | egrep '(cgthree|bwtwo)' > /dev/null);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3341
	    then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3342
		print "\n\nERROR: You are upgrading to a 64-bit-only OS. " \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3343
		      "Your frame buffer does not have a 64-bit driver and " \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3344
		      "will not work after reboot.  To proceed you must run " \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3345
		      "bfu with the -f flag.";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3346
		exit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3347
	fi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3348
fi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3349
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3350
if [ $plat = "SUNW,Ultra-1" ] && [ ! -f $cpiodir/SUNW,Ultra-1.root$ZFIX ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3351
   [ "$force_override" = "no" ];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3352
   then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3353
	print "\nERROR: These archives do not have Ultra-1 platform support." \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3354
	      "\nProceeding with this BFU may render this machine unbootable." \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3355
	      "\nTo proceed anyway, you must run bfu with the -f flag.\n";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3356
	exit;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3357
fi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3358
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3359
for root in $rootlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3360
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3361
	rootprefix=${root%/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3362
	smf_check_repository
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3363
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3364
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3365
MINIMUM_OS_REV=9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3366
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3367
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3368
# Perform additional sanity checks if we are upgrading the live system.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3369
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3370
if [ "$rootlist" = "/" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3371
then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3372
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3373
	# Disallow from older releases
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3374
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3375
	os_rev=`uname -r | sed -e s/5.//`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3376
	if [ $os_rev -lt $MINIMUM_OS_REV -a "$force_override" = "no" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3377
		fail "Cannot bfu from pre-Solaris $MINIMUM_OS_REV"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3378
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3379
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3380
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3381
	# Filesystem space checks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3382
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3383
	set $root 4 $usr 6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3384
	while [ $# -gt 0 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3385
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3386
		test "`df -b $1 | tail -1 | nawk '{ print $2 }'`" -ge ${2}000 ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3387
			fail "Less than $2 MB free on $1 -- bfu not safe."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3388
		shift 2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3389
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3390
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3391
	# Disable kernel module unloading
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3392
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3393
	print "Disabling kernel module unloading ... \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3394
	test -x /usr/bin/adb || fail "/usr/bin/adb not found: bfu not safe."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3395
	echo "moddebug/W20000" | adb -kw /dev/ksyms /dev/mem | grep moddebug
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3396
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3397
	# Load modules and drivers here not to reload them when you access
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3398
	# /devices or its subdirectories later.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3399
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3400
	cut -d' ' -f1 /etc/name_to_major | while read driver
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3401
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3402
		modload -p drv/${driver} >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3403
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3404
	ls $cpiodir >>/dev/null		# loads elfexec and networking
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3405
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3406
	# exec/intpexec and sys/kaio are needed by lofi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3407
	modload -p exec/intpexec >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3408
	modload -p sys/kaio >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3409
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3410
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3411
	# Stop init(1M) so extraction/manipulation of inittab is safe.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3412
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3413
	print "Quiescing init ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3414
	pstop 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3415
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3416
	# umount /lib/libc.so.1 if necessary
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3417
	if [ -n "`mount | grep '^/lib/libc.so.1'`" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3418
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3419
		print "Unmounting /lib/libc.so.1 ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3420
		umount /lib/libc.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3421
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3422
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3423
	# umount /platform/sun4v/lib/libc_psr.so.1 if necessary
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3424
	if [ -n "`mount | grep '^/platform/sun4v/lib/libc_psr.so.1'`" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3425
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3426
		print "Unmounting /platform/sun4v/lib/libc_psr.so.1 ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3427
		umount /platform/sun4v/lib/libc_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3428
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3429
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3430
	# umount /platform/sun4v/lib/sparcv9/libc_psr.so.1 if necessary
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3431
	if [ -n "`mount | grep '^/platform/sun4v/lib/sparcv9/libc_psr.so.1'`" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3432
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3433
		print "Unmounting /platform/sun4v/lib/sparcv9/libc_psr.so.1 ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3434
		umount /platform/sun4v/lib/sparcv9/libc_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3435
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3436
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3437
	if [ -x /usr/sbin/zoneadm ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3438
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3439
		# Stop any running zones: the init script will print a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3440
		# message if needed.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3441
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3442
		if [ -x /etc/init.d/zones ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3443
			/etc/init.d/zones stop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3444
		elif [ -x /lib/svc/method/svc-zones ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3445
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3446
			# Calling the zone service method directly is
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3447
			# the most straightforward way to block until
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3448
			# all zones are halted.  Finding a way that
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3449
			# works once zones are made restartable is an
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3450
			# exercise left to the reader.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3451
			#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3452
			/lib/svc/method/svc-zones stop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3453
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3454
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3455
		[ -z `zoneadm list | grep -v global` ] || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3456
		    fail "zone(s) failed to halt"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3457
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3458
		# Determine the installed zones, which we will want to do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3459
		# after we're done with the global zone.  This is done now
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3460
		# rather than later in case bfu'ing the global zone causes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3461
		# the zone configuration to become unreadable (e.g., via a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3462
		# DTD flag day).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3463
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3464
		zoneadm list -pi | nawk -F: '{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3465
			if ($3 == "installed") {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3466
				printf "%s %s\n", $2, $4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3467
			}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3468
		}' > $local_zone_info_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3469
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3471
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3472
	# Stop sendmail so that mail doesn't bounce during the interval
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3473
	# where /etc/mail/aliases is (effectively) empty.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3474
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3475
	# (note that unlike other services here, /etc/init.d/sendmail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3476
	# remains post-smf(5) because it is a public interface.)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3477
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3478
	if [ -r /etc/svc/volatile/repository_door ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3479
		print "Disabling sendmail temporarily ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3480
		svcadm disable -t network/smtp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3481
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3482
		print "Killing sendmail ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3483
		/etc/init.d/sendmail stop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3484
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3485
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3486
	print "Disabling remote logins ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3487
	echo "bfu in progress -- remote logins disabled" >/etc/nologin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3488
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3489
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3490
	# Stop syslogd so it doesn't interfere with saving preserved files.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3491
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3492
	if [ -f /etc/init.d/syslog ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3493
		print "Killing syslogd ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3494
		/etc/init.d/syslog stop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3495
	elif [ -r /etc/svc/volatile/repository_door ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3496
		print "Disabling syslog temporarily ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3497
		svcadm disable -t system/system-log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3498
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3499
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3500
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3501
	# Stop apache so it doesn't get upset when the entire world changes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3502
	# out from underneath it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3503
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3504
	if [ -f /etc/init.d/apache ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3505
		print "Killing httpd ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3506
		/etc/init.d/apache stop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3507
	elif [ -r /etc/svc/volatile/repository_door ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3508
		print "Disabling httpd temporarily ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3509
		svcadm disable -t network/http
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3510
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3511
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3512
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3513
	# Kill off fmd so it doesn't get upset when the entire world changes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3514
	# out from underneath it.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3515
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3516
	if [ -f /etc/init.d/savecore ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3517
		print "Killing fmd ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3518
		pkill -x fmd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3519
	elif [ -r /etc/svc/volatile/repository_door ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3520
		print "Disabling fmd temporarily ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3521
		svcadm disable -t system/fmd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3522
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3523
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3524
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3525
	# Stop nscd so it doesn't interfere with stuff.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3526
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3527
	if [ -x /etc/init.d/nscd ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3528
		print "Killing nscd ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3529
		/etc/init.d/nscd stop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3530
	elif [ -r /etc/svc/volatile/repository_door ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3531
		print "Disabling nscd temporarily ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3532
		svcadm disable -t system/name-service-cache:default
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3533
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3534
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3535
	if grep -v "^#" $rootprefix/etc/vfstab | grep boot | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3536
		grep "[ 	]pcfs[ 	]" >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3537
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3538
		boot_is_pcfs=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3539
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3540
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3541
	smf_new_profiles
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3542
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3543
else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3544
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3545
	# Check ${root}/etc/motd for SunOS value to get `uname -r`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3546
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3547
	os_rev=`head -1 ${root}/etc/motd | sed -e 's/^.*SunOS //' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3548
		awk '{print $1}' | sed -e s/5.//`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3549
	if [ $os_rev -lt $MINIMUM_OS_REV -a "$force_override" = "no" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3550
		fail "Cannot bfu from pre-Solaris $MINIMUM_OS_REV"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3551
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3552
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3553
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3554
export PATH=/tmp/bfubin:$PATH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3555
export LD_LIBRARY_PATH=/tmp/bfulib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3556
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3557
if [ -h /tmp/bfulib/64 ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3558
then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3559
	ldlib64="LD_LIBRARY_PATH_64=/tmp/bfulib/64"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3560
	export LD_LIBRARY_PATH_64=/tmp/bfulib/64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3561
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3562
598
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3563
# turn off auxiliary filters, since they can cause objects to be loaded
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3564
# from outside of the protected environment.
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3565
export LD_NOAUXFLTR=1
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3566
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3567
#
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3568
# Since we've turned off auxiliary filters, libc_psr will normally not
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3569
# be loaded at all.  But libc_psr was overriding broken code in libc
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3570
# for over a week before the fix for 6324631, so we need to explicitly
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3571
# LD_PRELOAD it to allow users to bfu from the broken libc.  This can be
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3572
# removed once there are no sun4u machines bfued to Nevada bits between
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3573
# 9/7/2005 and 9/15/2005.
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3574
#
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3575
if [ -f /tmp/bfulib/libc_psr.so.1 ]; then
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3576
	export LD_PRELOAD_32=/tmp/bfulib/libc_psr.so.1
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3577
fi
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  3578
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3579
print "Turning on delayed i/o ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3580
fastfs -f $rootlist $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3581
fastfs $rootlist $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3582
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3583
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3584
# The "| tee -a $EXTRACT_LOG" following do_extraction() is not pulled into the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3585
# function itself because it interferes with the cpio exit status detection.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3586
# pcfs boot is an exception, since its cpio exit status is expected to be bad,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3587
# so a heuristic must be employed to infer whether or not any errors occurred.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3588
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3589
do_extraction() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3590
	compressed_archive=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3591
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3592
	$ZCAT $compressed_archive | cpio -idmucB $* 2>&1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3593
		|| extraction_error "extracting archive $1"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3594
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3595
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3596
do_pcfs_boot_extraction() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3597
	PCFS_BOOT_LOG=/tmp/bfu-pcfs-boot-log.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3598
	$ZCAT $1 | cpio -idmucB 2>&1 | grep -v "error.s" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3599
		grep -v "cpio: Cannot chown()" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3600
		grep -v "cpio: Error during chown()" | tee $PCFS_BOOT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3601
	cat $PCFS_BOOT_LOG >> $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3602
	egrep -s -v blocks $PCFS_BOOT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3603
	if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3604
		extraction_error "extracting archive $1 ... see $PCFS_BOOT_LOG"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3605
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3606
		rm -f $PCFS_BOOT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3607
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3608
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3609
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3610
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3611
# Usage: extract_archives (root|usr|lib|sbin|kernel) arch-list
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3612
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3613
extract_archives() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3614
	base=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3615
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3616
	test $base = usr && cd $usrroot || cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3617
	for archive in $*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3618
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3619
		print "Extracting $archive.$base$ZFIX ... \c" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3620
			| tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3621
		test -h platform/$archive && rm platform/$archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3622
		if [ $base = root ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3623
			exclude="-f dev/fd home proc etc/mnttab"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3624
			[ -d system/contract ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3625
				exclude="$exclude system/contract"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3626
			[ -d system/object ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3627
				exclude="$exclude system/object"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3628
			[ -f etc/svc/repository.db ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3629
				exclude="$exclude etc/svc/repository.db"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3630
			[ -e etc/repository_door ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3631
				exclude="$exclude etc/repository_door"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3632
			[ -f etc/svc/volatile ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3633
				exclude="$exclude etc/svc/volatile"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3634
			do_extraction $cpiodir/$archive.$base$ZFIX $exclude |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3635
				tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3636
		elif [ $base = usr ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3637
			do_extraction $cpiodir/$archive.$base$ZFIX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3638
				-f "usr/openwin" | tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3639
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3640
			do_extraction $cpiodir/$archive.$base$ZFIX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3641
				| tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3642
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3643
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3644
	cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3645
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3646
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3647
extract_boot_archives() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3648
	base=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3649
	shift
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3650
	cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3651
	for archive in $*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3652
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3653
		if [ ! -f $cpiodir/$archive.$base$ZFIX ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3654
			continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3655
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3656
		print "Extracting $archive.$base$ZFIX ... \c" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3657
			| tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3658
		if [ $boot_is_pcfs = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3659
			do_pcfs_boot_extraction $cpiodir/$archive.$base$ZFIX
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3660
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3661
			do_extraction $cpiodir/$archive.$base$ZFIX | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3662
				tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3663
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3664
		$ZCAT $cpiodir/$archive.$base$ZFIX | cpio -it 2>&1 | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3665
		    grep  "boot/solaris/devicedb/master" >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3666
		if [ "$?" = "0" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3667
			have_realmode=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3668
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3669
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3670
	cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3671
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3672
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3673
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3674
# Classic boot pboot and bootblk compatibility with old archives
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3675
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3676
setup_pboot()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3677
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3678
	NEWPBOOTDIR=$GATE/public/pboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3679
	NEWPBOOT=${NEWPBOOTDIR}/pboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3680
	NEWBOOTBLK=${NEWPBOOTDIR}/bootblk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3681
	PBOOTDIR=$usr/platform/$karch/lib/fs/ufs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3682
	PBOOT=${PBOOTDIR}/pboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3683
	BOOTBLK=${PBOOTDIR}/bootblk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3684
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3685
	# they should already be there, but...
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3686
	if [ -f $NEWPBOOT -a ! -f $PBOOT ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3687
		print "Installing pboot from $NEWPBOOTDIR"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3688
		cp $NEWPBOOT $PBOOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3689
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3690
	if [ -f $NEWBOOTBLK -a ! -f $BOOTBLK ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3691
		print "Installing bootblk from $NEWPBOOTDIR"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3692
		cp $NEWBOOTBLK $BOOTBLK
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3693
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3694
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3695
	if [ -f $NEWPBOOT -a -f $PBOOT ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3696
		LATEST=`ls -Lt $PBOOT $NEWPBOOT | head -1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3697
		if [ "$LATEST" = "$NEWPBOOT" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3698
			print "Updating pboot from $NEWPBOOT"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3699
			cp $NEWPBOOT $PBOOT
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3700
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3701
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3702
	if [ -f $NEWBOOTBLK -a -f $BOOTBLK ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3703
		LATEST=`ls -Lt $BOOTBLK $NEWBOOTBLK | head -1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3704
		if [ "$LATEST" = "$NEWBOOTBLK" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3705
			print "Updating bootblk from $NEWBOOTBLK"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3706
			cp $NEWBOOTBLK $BOOTBLK
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3707
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3708
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3709
	if [[ "$rootslice" = /dev/rdsk/* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3710
		print "Installing boot block."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3711
		( cd $PBOOTDIR ;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3712
		    install_boot_i386 ./pboot ./bootblk ${rootslice%??}s2 )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3713
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3714
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3715
	# Since /platform/i86pc/boot/solaris/boot.bin is moved
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3716
	# to /boot/solaris, remove the old one if it really
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3717
	# exists.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3718
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3719
	OLDBOOTDIR=${root}/platform/i86pc/boot/solaris
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3720
	OLDBOOTBIN=${OLDBOOTDIR}/boot.bin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3721
	if [ ! -h ${OLDBOOTDIR} -a -f ${OLDBOOTBIN} ] ;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3722
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3723
		print "Removing old boot.bin."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3724
		rm -rf ${OLDBOOTBIN}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3725
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3726
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3727
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3728
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3729
# Multiboot support
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3730
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3731
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3732
saved_boot_files="
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3733
	solaris/bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3734
	solaris/devicedb/master
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3735
"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3736
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3737
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3738
# transition from multiboot to dca
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3739
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3740
check_multi_to_dca_boot()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3741
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3742
	bootdev=`grep p0:boot $rootprefix/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3743
		grep pcfs | nawk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3744
	if [ "$bootdev" != "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3745
		is_pcfs_boot=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3746
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3747
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3748
	if [ $is_pcfs_boot = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3749
		df -h | grep stubboot >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3750
		if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3751
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3752
			# save configurable files from /boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3753
			# before remounting /stubboot.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3754
			# files are relative to /boot.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3755
			for file in $saved_boot_files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3756
			do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3757
				dir="`/usr/bin/dirname $rootprefix/stubboot/$file`"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3758
				mkdir -p $dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3759
				cp $rootprefix/boot/$file $dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3760
			done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3761
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3762
			echo "unmount $bootdev at $rootprefix/stubboot"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3763
			ERRMSG=$(umount $bootdev 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3764
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3765
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3766
				fail "Unable to umount $bootdev on $rootprefix/stubboot."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3767
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3768
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3769
			# adjust vfstab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3770
			sed -e "s/[ 	]\/stubboot[ 	]/	\/boot	/" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3771
			    <$rootprefix/etc/vfstab >$rootprefix/etc/vfstab+
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3772
			mv $rootprefix/etc/vfstab $rootprefix/etc/vfstab-
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3773
			mv $rootprefix/etc/vfstab+ $rootprefix/etc/vfstab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3774
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3775
			ERRMSG=$(mount -F pcfs $bootdev $rootprefix/boot 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3776
			if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3777
				[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3778
				fail "Unable to mount $bootdev on $rootprefix/boot."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3779
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3780
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3781
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3782
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3783
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3784
check_dca_to_multiboot()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3785
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3786
	# ensure bootpath is in $rootprefix/boot/solaris/bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3787
	# It's ok to put a meta device path in there
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3788
	bootenvrc=$rootprefix/boot/solaris/bootenv.rc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3789
	grep "^setprop[	 ]*bootpath[	 ]" $bootenvrc > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3790
	if [ $? != 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3791
		rootdev=`grep -v "^#" $rootprefix/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3792
		    grep "[	 ]/[	 ]" | nawk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3793
		bootpath=`ls -l $rootdev | nawk '{ print $NF }' |\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3794
		    sed "s#../../devices##"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3795
		echo "setprop bootpath '$bootpath'" >> $bootenvrc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3796
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3797
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3798
	bootdev=`grep p0:boot $rootprefix/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3799
	    grep pcfs | nawk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3800
	if [ "$bootdev" != "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3801
		is_pcfs_boot=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3802
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3803
	if [ ! -f $rootprefix/boot/mdboot ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3804
		return
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3805
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3806
	dca_to_multi=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3807
	rm -f $rootprefix/boot/mdboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3808
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3809
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3810
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3811
# Detect SVM root and return the list of raw devices under the mirror
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3812
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3813
get_rootdev_list()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3814
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3815
	metadev=`grep -v "^#" $rootprefix/etc/vfstab | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3816
		grep "[	 ]/[ 	]" | nawk '{print $2}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3817
	if [[ $metadev = /dev/rdsk/* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3818
        	rootdevlist=`echo "$metadev" | sed -e "s#/dev/rdsk/##"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3819
	elif [[ $metadev = /dev/md/rdsk/* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3820
        	metavol=`echo "$metadev" | sed -e "s#/dev/md/rdsk/##"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3821
		rootdevlist=`metastat -p $metavol |\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3822
		    grep -v "^$metavol[ 	]" | nawk '{print $4}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3823
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3824
	for rootdev in $rootdevlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3825
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3826
		echo /dev/rdsk/$rootdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3827
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3828
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3829
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3830
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3831
# Done once per transition from classic (dca) to multi boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3832
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3833
setup_stubboot()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3834
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3835
	bootdev=`grep -v "^#" $rootprefix/etc/vfstab | grep pcfs | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3836
		grep "[ 	]/boot[ 	]"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3837
	if [[ -n $bootdev ]] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3838
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3839
		bootdev=`echo "$bootdev" | nawk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3840
		rbootdev=`echo "$bootdev" | sed -e "s/dev\/dsk/dev\/rdsk/"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3841
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3842
		# Remount boot partition as /stubboot, set up new /boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3843
		mkdir -p $rootprefix/stubboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3844
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3845
		ERRMSG=$(umount $bootdev 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3846
		if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3847
			[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3848
			fail "Unable to umount $bootdev."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3849
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3850
		ERRMSG=$(mount -F pcfs $bootdev $rootprefix/stubboot 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3851
		if [ $? -ne 0 ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3852
			[ -n "${ERRMSG}" ] && echo "${ERRMSG}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3853
			fail "Unable to mount $bootdev on $rootprefix/stubboot."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3854
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3855
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3856
		mkdir -p $rootprefix/boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3857
		cp -r $rootprefix/stubboot/* $rootprefix/boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3858
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3859
		# adjust /etc/vfstab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3860
		sed <$rootprefix/etc/vfstab \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3861
		    -e "s/[ 	]\/boot[ 	]/	\/stubboot	/" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3862
			sed -n >$rootprefix/etc/vfstab+ '
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3863
			/p0:boot/ {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3864
				s/[ 	]no/	yes/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3865
				}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3866
				p
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3867
			'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3868
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3869
		mv $rootprefix/etc/vfstab $rootprefix/etc/vfstab-
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3870
		mv $rootprefix/etc/vfstab+ $rootprefix/etc/vfstab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3871
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3872
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3873
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3874
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3875
# multiboot: install grub on the boot slice
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3876
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3877
install_grub()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3878
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3879
	STAGE1=$root/boot/grub/stage1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3880
	STAGE2=$root/boot/grub/stage2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3881
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3882
	if [ $is_pcfs_boot = no ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3883
		get_rootdev_list | while read rootdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3884
		do 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3885
			print "Install grub on $rootdev"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3886
			PATH=/tmp/bfubin /tmp/bfubin/installgrub \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3887
				$STAGE1 $STAGE2 $rootdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3888
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3889
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3890
		# copy /boot grub & solaris to /stubboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3891
		cp -r $rootprefix/boot/grub $rootprefix/stubboot/grub
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3892
		cp -r $rootprefix/boot/solaris $rootprefix/stubboot/solaris
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3893
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3894
		# Adjust grub paths relative to pcfs filesystem
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3895
		rm -rf $rootprefix/stubboot/boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3896
		mkdir -p $rootprefix/stubboot/boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3897
		mv $rootprefix/stubboot/grub $rootprefix/stubboot/boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3898
		mv $rootprefix/stubboot/solaris $rootprefix/stubboot/boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3899
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3900
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3901
		# Run installgrub after copying stubboot to avoid overwriting
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3902
		# /stubboot/boot/grub/stage2, which must stay untouched.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3903
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3904
		bootdev=`grep -v "^#" $rootprefix/etc/vfstab | grep pcfs | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3905
			grep "[ 	]/stubboot[ 	]" | nawk '{print $1}'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3906
		rbootdev=`echo "$bootdev" | sed -e "s/dev\/dsk/dev\/rdsk/"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3907
		if [ "$rbootdev" != "" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3908
			print "Install grub on $rbootdev"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3909
			PATH=/tmp/bfubin /tmp/bfubin/installgrub $STAGE1 $STAGE2 $rbootdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3910
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3911
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3912
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3913
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3914
get_biosdisk()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3915
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3916
	rootdev=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3917
	rootphys=`ls -l $rootdev | nawk '{ print $NF }' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3918
	    sed -e "s/\.\.\/\.\.\/devices//" -e "s/:[abcdefgh],raw//"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3919
	rbootdev=`echo "$rootdev" | sed -e "s/s[0-7]/p0/"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3920
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3921
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3922
	# Use biosdev to get the bios disk number
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3923
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3924
	biosdisk=`biosdev | grep $rootphys | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3925
		nawk '{print $1}' | sed -e "s/0x8//"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3926
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3927
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3928
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3929
# multiboot: set up initial grub menu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3930
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3931
update_grub_menu()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3932
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3933
	BOOT_PROG=/platform/i86pc/multiboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3934
	BOOT_ARCHIVE=/platform/i86pc/boot_archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3935
	MENU=$rootprefix/boot/grub/menu.lst
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3936
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3937
	grubhd=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3938
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3939
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3940
	# Append some useful entries to the existing menu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3941
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3942
	echo "Update GRUB menu $MENU with entries for $grubhd"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3943
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3944
	grep ^default $MENU > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3945
	[ $? = 0 ] || echo "default=0" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3946
	grep ^timeout $MENU > /dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3947
	[ $? = 0 ] || echo "timeout=10" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3948
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3949
	echo "#serial --unit=0 --speed=9600" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3950
	echo "#terminal serial" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3951
	echo "#splashimage=$grubhd/boot/grub/splash.xpm.gz" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3952
	echo "title Solaris" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3953
	echo "	root $grubhd" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3954
	echo "	kernel ${BOOT_PROG}" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3955
	echo "	module ${BOOT_ARCHIVE}" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3956
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3957
	echo "GRUB menu entry 'Solaris' boots to eeprom(1m) settings"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3958
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3959
	if [ -f ${rootprefix}/boot/multiboot ] &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3960
	    [ -f ${rootprefix}/boot/x86.miniroot-safe ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3961
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3962
		TTY=`grep "^setprop input-device" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3963
		    ${rootprefix}/boot/solaris/bootenv.rc | cut -f 2 -d \'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3964
		if [ -z "${TTY}" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3965
			TTY=`grep "^setprop console" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3966
			    ${rootprefix}/boot/solaris/bootenv.rc | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3967
			    cut -f 2 -d \'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3968
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3969
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3970
		if [ "${TTY}" = "ttya" ] || [ "${TTY}" = "ttyb" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3971
			FS_CONSOLE="-B console=${TTY}"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3972
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3973
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3974
		echo "title Solaris failsafe" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3975
		echo "	root $grubhd" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3976
		echo "	kernel /boot/multiboot kernel/unix $FS_CONSOLE -s" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3977
		    >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3978
		echo "	module /boot/x86.miniroot-safe" >> $MENU
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3979
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3980
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3981
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3982
install_failsafe()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3983
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3984
	if [ ! -f /boot/multiboot -o ! -f /boot/x86.miniroot-safe ] && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3985
	    [ -x ${GATEPATH}/public/bin/update_failsafe ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3986
		echo Updating boot/multiboot and boot/x86.miniroot-safe
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3987
		${GATEPATH}/public/bin/update_failsafe
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3988
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3989
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3990
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3991
setup_grub_menu()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3992
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3993
	BOOT_PROG=/platform/i86pc/multiboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3994
	BOOT_ARCHIVE=/platform/i86pc/boot_archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3995
	MENU=$rootprefix/boot/grub/menu.lst
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3996
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3997
	get_rootdev_list | while read rootdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3998
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  3999
		rootphys=`ls -l $rootdev | nawk '{print $NF}' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4000
		    sed -e "s/\.\.\/\.\.\/devices//"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4001
		gslice=`echo "$rootphys" | cut -f 2 -d : | sed s/,raw//`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4002
		rootphys=`echo "$rootphys" | sed -e "s/:[abcdefgh],raw//"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4003
		rbootdev=`echo "$rootdev" | sed -e "s/s[0-7]/p0/"`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4004
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4005
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4006
		# Wallow through fdisk to get the active partition number
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4007
		# Partition numbering is zero-based
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4008
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4009
		part=0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4010
		fdisk -W - $rbootdev | grep -v '^*' | grep -v '^$' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4011
		while read id act bhead bcyl ehead ecyl rsect numsect
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4012
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4013
			# Find solaris partition, either older 130 or 191
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4014
			if [ $id -eq "191" -o $id -eq "130" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4015
				break
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4016
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4017
			part=`expr "$part" + 1`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4018
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4019
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4020
		get_biosdisk $rootdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4021
		grubhd="(hd${biosdisk},${part},${gslice})"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4022
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4023
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4024
		# update the grub menu if it doesn't exist or
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4025
		# doesn't have usable boot entries
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4026
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4027
		if [ -f $MENU ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4028
			grep -v "^#" $MENU | grep $grubhd >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4029
			if [ $? -eq 1 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4030
				update_grub_menu $grubhd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4031
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4032
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4033
			update_grub_menu $grubhd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4034
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4035
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4036
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4037
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4038
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4039
# Build the multiboot boot archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4040
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4041
build_boot_archive()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4042
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4043
	echo "Create ${rootprefix}/platform/i86pc/boot_archive"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4044
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4045
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4046
	# We should be able to run bootadm here but that's a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4047
	# little more complicated than one would think
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4048
	#bootadm_args=${rootprefix:+-R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4049
	#PATH=/tmp/bfubin /tmp/bfubin/bootadm update $bootadm_args
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4050
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4051
	cr_args=${rootprefix:+ -R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4052
	LD_LIBRARY_PATH=/tmp/bfulib PATH=/tmp/bfubin \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4053
	    /tmp/bfubin/ksh /tmp/bfubin/create_ramdisk $cr_args
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4054
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4055
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4056
	# Disable the boot-archive service on the first boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4057
	# to silence complaints about new files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4058
	# svccfg -s system/boot-archive setprop start/exec = true
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4059
12
606827e00c98 6281986 bfu on alt mount fails to set up boot-archive conflicts correctly
jg
parents: 0
diff changeset
  4060
	mkdir -p $rootprefix/bfu.conflicts/lib/svc/method
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4061
	cp $rootprefix/lib/svc/method/boot-archive \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4062
	    $rootprefix/bfu.conflicts/lib/svc/method/boot-archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4063
	cat >$rootprefix/lib/svc/method/boot-archive <<"EOF"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4064
#!/sbin/sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4065
exit 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4066
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4067
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4068
	cat >$rootprefix/etc/rc2.d/S99postbfu <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4069
#!/bin/sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4070
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4071
case "\$1" in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4072
'start')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4073
	cp /bfu.conflicts/lib/svc/method/boot-archive /lib/svc/method/boot-archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4074
	chmod +x /lib/svc/method/boot-archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4075
        rm -f /etc/rc2.d/S99postbfu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4076
        ;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4077
*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4078
        echo "usage: \$0 start"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4079
        exit 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4080
        ;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4081
esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4082
exit 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4083
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4084
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4085
	chmod +x $rootprefix/etc/rc2.d/S99postbfu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4086
	chmod +x $rootprefix/lib/svc/method/boot-archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4087
	chmod +x $rootprefix/bfu.conflicts/lib/svc/method/boot-archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4088
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4089
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4090
disable_boot_service()
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4091
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4092
	svccfg -s system/boot-archive setprop start/exec = true
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4093
	cat >$rootprefix/lib/svc/method/boot-archive <<EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4094
#!/sbin/sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4095
. /lib/svc/share/smf_include.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4096
. /lib/svc/share/fs_include.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4097
exit 0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4098
EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4099
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4100
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4101
mondo_loop() {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4102
	typeset pkgroot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4103
	typeset pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4104
	root=$1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4105
	zone=$2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4106
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4107
	# If the archives being installed contain i86pc.boot, 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4108
	# check to see if it contains strap.com, one of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4109
	# four possibly-required booters.  If i86pc.boot does,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4110
	# try to upgrade the realmode booters from the current 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4111
	# archive set.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4112
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4113
	# Don't bother doing the upgrade for diskless bfu, as the boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4114
	# will be done with floppy or PXE, which must match the build
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4115
	# anyway (floppy must match or add_install_client must be 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4116
	# rerun), and in any event we can't touch the boot bits
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4117
	# for diskless boot from here.  Also don't do this for
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4118
	# any zone but 'global'.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4119
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4120
	cd $root || fail "Cannot cd $root"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4121
	rootprefix=${root%/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4122
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4123
	if [ "$karch" = "i86pc" -a "$diskless" = "no" -a "$zone" = "global" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4124
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4125
		remove_properties
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4126
		if boot_is_upgradeable $root && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4127
		    [ -f $cpiodir/i86pc.boot$ZFIX ] && \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4128
		    $ZCAT $cpiodir/i86pc.boot$ZFIX | cpio -it | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4129
		    grep strap.com >/dev/null 2>&1 ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4130
			check_multi_to_dca_boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4131
			print "\nUpdating realmode boot loaders\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4132
			update_realmode_booters $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4133
			setup_pboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4134
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4135
		if [ $multiboot_archives = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4136
			check_dca_to_multiboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4137
			if [ $is_pcfs_boot = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4138
				setup_stubboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4139
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4140
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4141
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4142
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4143
	SECONDS=0		# time each iteration
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4144
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4145
	print "\nSaving configuration files in $rootprefix/bfu.child ... \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4146
	cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4147
	rm -rf bfu.default bfu.restore	# historical
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4148
	rm -rf bfu.child bfu.conflicts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4149
	mkdir bfu.child bfu.conflicts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4150
	filelist $zone | cpio -pdmu bfu.child || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4151
	    fail 'failed to save config files'
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4152
	test -f etc/motd && mv etc/motd etc/motd.old
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4153
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4154
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4155
	# If the var/sadm/system/admin/INST_RELEASE file still exists,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4156
	# this system has never been bfu'd before.  Therefore, the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4157
	# information in var/sadm/install/contents is still valid and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4158
	# can be used to determine whether files have been modified
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4159
	# since installation (the bfu.ancestors directory serves this
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4160
	# purpose for systems that have already been bfu'd.)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4161
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4162
	if [ -f var/sadm/system/admin/INST_RELEASE ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4163
		firstbfu=yes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4164
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4165
		firstbfu=no
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4166
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4167
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4168
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4169
	# bfu'ed systems are not upgradeable; prevent suninstall from
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4170
	# even *presenting* the upgrade option by removing INST_RELEASE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4171
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4172
	rm -f var/sadm/system/admin/INST_RELEASE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4173
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4174
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4175
	# Hacks to work around minor annoyances and make life more pleasant.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4176
	# Part 1 of 2: pre-archive-extraction stuff
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4177
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4178
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4179
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4180
	# Do not remove remove_initd_links, since this makes sure things
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4181
	# work properly when init scripts are shuffled around.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4182
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4183
	remove_initd_links
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4184
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4185
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4186
	# Remove rc.d scripts and things made superfluous by smf.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4187
	# Backwards BFUs will resurrect them from the archives.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4188
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4189
	smf_cleanup
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4190
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4191
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4192
	# New, enabled-by-default services need to be checked for, such
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4193
	# that their enabled status is not flipped by BFU after their
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4194
	# initial arrival.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4195
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4196
	smf_handle_new_services
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4197
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4198
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4199
	# Remove obsolete Sun-Fire-880 (daktari) FMA Fault Tree directory
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4200
	# and file.  Backwards BFUs will resurrect them from the archives.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4201
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4202
	if [ $target_isa = sparc ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4203
		rm -rf $usr/platform/SUNW,Sun-Fire-880/lib/fm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4204
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4205
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4206
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4207
	# Remove old FMA dictionary files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4208
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4209
	rm -f $usr/lib/fm/FMD.dict
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4210
	rm -f $usr/lib/fm/SUN4U.dict
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4211
	rm -f $usr/lib/fm/SUNOS.dict
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4212
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4213
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4214
	# Remove old FMA .eft files and directories
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4215
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4216
	rm -f $usr/platform/sun4u/lib/fm/eft/pci-sun4u.eft
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4217
	rm -rf $usr/platform/SUNW,Serverblade1/lib/fm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4218
	rm -rf $usr/platform/SUNW,Sun-Fire/lib/fm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4219
	rm -rf $usr/platform/SUNW,Sun-Fire-15000/lib/fm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4220
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4221
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4222
	# Remove obsolete buildmnttab script.  Backwards BFUs will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4223
	# resurrect it by extracting it from the archives.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4224
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4225
	rm -f $root/etc/init.d/buildmnttab
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4226
	rm -f $root/etc/rcS.d/S70buildmnttab.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4227
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4228
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4229
	# Break-up of inetsvc, inetinit & network -- remove both the old
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4230
	# and new init scripts.  The correct ones will be extracted from
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4231
	# the archives whether bfu'ing backwards or forwards.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4232
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4233
	# old: need to remove going forwards:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4234
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4235
	rm -f $root/etc/rc0.d/K42inetsvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4236
	rm -f $root/etc/rc1.d/K42inetsvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4237
	rm -f $root/etc/rcS.d/K42inetsvc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4238
	rm -f $root/etc/rcS.d/S29network.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4239
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4240
	# new: need to remove going backwards:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4241
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4242
	rm -f $root/etc/init.d/domainname
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4243
	rm -f $root/etc/init.d/inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4244
	rm -f $root/etc/init.d/named
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4245
	rm -f $root/etc/init.d/nodename
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4246
	rm -f $root/etc/rc0.d/K40inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4247
	rm -f $root/etc/rc0.d/K42named
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4248
	rm -f $root/etc/rc1.d/K40inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4249
	rm -f $root/etc/rc1.d/K42named
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4250
	rm -f $root/etc/rc2.d/S69domainname
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4251
	rm -f $root/etc/rc2.d/S72named
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4252
	rm -f $root/etc/rc2.d/S77inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4253
	rm -f $root/etc/rcS.d/K40inetd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4254
	rm -f $root/etc/rcS.d/K42named
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4255
	rm -f $root/etc/rcS.d/S28network.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4256
	rm -f $root/etc/rcS.d/S29nodename.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4257
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4258
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4259
	# Remove Zones init scripts: they will be extracted properly
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4260
	# going forwards; after going backwards, they will be gone,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4261
	# thus preventing scary warnings on subsequent bfu's.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4262
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4263
	rm -f $root/etc/init.d/zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4264
	rm -f $root/etc/rc0.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4265
	rm -f $root/etc/rc1.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4266
	rm -f $root/etc/rc2.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4267
	rm -f $root/etc/rc3.d/S99zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4268
	rm -f $root/etc/rcS.d/K01zones
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4269
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4270
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4271
	# Remove <inet>6 STREAMS modules; these no longer exist (and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4272
	# should never have existed in the first place).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4273
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4274
	rm -f $root/kernel/strmod/icmp6		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4275
	    $root/kernel/strmod/ip6		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4276
	    $root/kernel/strmod/tcp6		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4277
	    $root/kernel/strmod/udp6		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4278
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4279
	rm -f $root/kernel/strmod/sparcv9/icmp6 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4280
	    $root/kernel/strmod/sparcv9/ip6	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4281
	    $root/kernel/strmod/sparcv9/tcp6	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4282
	    $root/kernel/strmod/sparcv9/udp6	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4283
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4284
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4285
	# Remove /usr/lib/old_libthread since support for it has
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4286
	# been removed from the kernel in Solaris 10.  If this is
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4287
	# a backwards BFU, it will all be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4288
	rm -rf $usr/lib/old_libthread
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4289
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4290
	# Remove libconfig 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4291
	rm -f $usr/lib/drv/config_md.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4292
	rm -f $usr/include/config_md.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4293
	# remove libssd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4294
	rm -f $usr/lib/libssd.a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4295
	rm -f $usr/lib/libssd.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4296
	rm -f $usr/lib/libssd.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4297
	# remove libap
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4298
	rm -f $usr/lib/libap_dmd.a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4299
	rm -f $usr/lib/libap_dmd.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4300
	# remove libintpos
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4301
	rm -f $usr/lib/libintpos.a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4302
	rm -f $usr/lib/libintpos.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4303
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4304
	# Remove obsolete abi subdirectories
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4305
	if [ -d $usr/platform/*/lib/abi ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4306
		rm -rf $usr/platform/*/lib/abi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4307
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4308
	rm -rf $usr/lib/gss/abi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4309
	rm -rf $usr/lib/krb5/abi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4310
	rm -rf $usr/xpg4/lib/abi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4311
	rm -rf $usr/ucblib/abi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4312
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4313
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4314
	# Remove old stuff related to libthread now that libthread has
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4315
	# been folded into libc and libthread_db has been renamed libc_db.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4316
	# In addition, all the apptrace's tracing libraries (i.e., abi_*.so*)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4317
	# are no longer needed, should be removed.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4318
	rm -f	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4319
	    $usr/lib/mdb/proc/libthread.so			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4320
	    $usr/lib/mdb/proc/sparcv9/libthread.so		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4321
	    $usr/lib/abi/abi_*.so*		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4322
	    $usr/lib/abi/sparcv9/abi_*.so*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4323
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4324
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4325
	# Remove the old symlink /lib => usr/lib, if necessary.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4326
	# /lib is now a real directory in the root filesystem.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4327
	# Remove all of the old static libraries and commands now
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4328
	# that we no longer build them.  If this is a backwards
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4329
	# BFU, all this will all be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4330
	rm $root/lib 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4331
	rm -rf $usr/lib/pics
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4332
	rm -rf $usr/sbin/static
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4333
	rm -f	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4334
	    $usr/ccs/lib/libcurses.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4335
	    $usr/ccs/lib/libform.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4336
	    $usr/ccs/lib/libgen.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4337
	    $usr/ccs/lib/libl.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4338
	    $usr/ccs/lib/libmalloc.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4339
	    $usr/ccs/lib/libmenu.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4340
	    $usr/ccs/lib/libpanel.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4341
	    $usr/ccs/lib/libtermcap.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4342
	    $usr/ccs/lib/libtermlib.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4343
	    $usr/ccs/lib/liby.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4344
	    $usr/lib/lib300.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4345
	    $usr/lib/lib300s.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4346
	    $usr/lib/lib4014.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4347
	    $usr/lib/lib450.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4348
	    $usr/lib/libTL.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4349
	    $usr/lib/libadm.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4350
	    $usr/lib/libadt_jni.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4351
	    $usr/lib/libbsdmalloc.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4352
	    $usr/lib/libbsm.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4353
	    $usr/lib/libc.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4354
	    $usr/lib/libc2.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4355
	    $usr/lib/libc2stubs.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4356
	    $usr/lib/libcmd.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4357
	    $usr/lib/libcrypt.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4358
	    $usr/lib/libcrypt_d.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4359
	    $usr/lib/libcrypt_i.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4360
	    $usr/lib/libcurses.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4361
	    $usr/lib/libdevid.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4362
	    $usr/lib/libdevinfo.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4363
	    $usr/lib/libdhcpagent.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4364
	    $usr/lib/libdhcputil.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4365
	    $usr/lib/libdl_stubs.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4366
	    $usr/lib/libefi.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4367
	    $usr/lib/libelf.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4368
	    $usr/lib/libform.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4369
	    $usr/lib/libgen.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4370
	    $usr/lib/libgenIO.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4371
	    $usr/lib/libike.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4372
	    $usr/lib/libinetcfg.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4373
	    $usr/lib/libinetutil.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4374
	    $usr/lib/libintl.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4375
	    $usr/lib/libkstat.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4376
	    $usr/lib/libl.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4377
	    $usr/lib/libldfeature.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4378
	    $usr/lib/libmail.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4379
	    $usr/lib/libmalloc.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4380
	    $usr/lib/libmapmalloc.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4381
	    $usr/lib/libmenu.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4382
	    $usr/lib/libmeta.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4383
	    $usr/lib/libmp.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4384
	    $usr/lib/libnisdb.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4385
	    $usr/lib/libnls.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4386
	    $usr/lib/libnsl.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4387
	    $usr/lib/libnss_compat.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4388
	    $usr/lib/libnss_dns.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4389
	    $usr/lib/libnss_files.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4390
	    $usr/lib/libnss_nis.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4391
	    $usr/lib/libnss_nisplus.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4392
	    $usr/lib/libp/libc.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4393
	    $usr/lib/libpam.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4394
	    $usr/lib/libpanel.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4395
	    $usr/lib/libplot.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4396
	    $usr/lib/librac.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4397
	    $usr/lib/libresolv.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4398
	    $usr/lib/librpcsvc.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4399
	    $usr/lib/libsec.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4400
	    $usr/lib/libsendfile.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4401
	    $usr/lib/libsocket.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4402
	    $usr/lib/libstraddr.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4403
	    $usr/lib/libtermcap.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4404
	    $usr/lib/libtermlib.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4405
	    $usr/lib/libuuid.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4406
	    $usr/lib/libvolmgt.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4407
	    $usr/lib/libvt0.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4408
	    $usr/lib/libw.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4409
	    $usr/lib/liby.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4410
	    $usr/lib/null.a				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4411
	    $usr/lib/sparcv9/libadt_jni.a		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4412
	    $usr/lib/sparcv9/libinetutil.a		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4413
	    $usr/lib/sparcv9/libldfeature.a		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4414
	    $usr/lib/sparcv9/libsendfile.a		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4415
	    $usr/platform/sun4u/lib/libwrsmconf.a	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4416
	    $usr/ucblib/libcurses.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4417
	    $usr/ucblib/libdbm.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4418
	    $usr/ucblib/libtermcap.a			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4419
	    $usr/ucblib/libucb.a
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4420
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4421
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4422
	# Remove other obsolete files, too
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4423
	rm -f	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4424
	    $usr/include/table.h			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4425
	    $usr/include/libgenIO.h			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4426
	    $usr/lib/llib-lTL				\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4427
	    $usr/lib/llib-lTL.ln
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4428
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4429
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4430
	# libc_psr.so.1 and libmd5_psr.so.1 have been moved
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4431
	# from /usr/platform/*/lib to /platform/*/lib.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4432
	# Remove the old files and their containing directories
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4433
	rm -f $usr/platform/*/lib/libc_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4434
	rm -f $usr/platform/*/lib/sparcv9/libc_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4435
	rm -f $usr/platform/*/lib/libmd5_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4436
	rm -f $usr/platform/*/lib/sparcv9/libmd5_psr.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4437
	rmdir $usr/platform/*/lib/sparcv9 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4438
	rmdir $usr/platform/*/lib 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4439
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4440
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4441
	# Remove obsolete profile libc symlinks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4442
	rm -f $usr/lib/libp/libc.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4443
	rm -f $usr/lib/libp/sparcv9/libc.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4444
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4445
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4446
	# Remove Legacy DR files, now obsolete due to NGDR Phase II putback
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4447
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4448
	STARFIRE_PLAT=platform/SUNW,Ultra-Enterprise-10000 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4449
		rm -f \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4450
		$root/$STARFIRE_PLAT/kernel/drv/dr		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4451
		$root/$STARFIRE_PLAT/kernel/drv/dr.conf		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4452
		$root/$STARFIRE_PLAT/kernel/misc/drmach		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4453
		$root/$STARFIRE_PLAT/kernel/drv/sparcv9/dr	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4454
		$root/$STARFIRE_PLAT/kernel/misc/sparcv9/drmach	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4455
		$root/$STARFIRE_PLAT/lib/dr_daemon		\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4456
		$usr/platform/sun4u/include/sys/dr.h	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4457
		$usr/platform/sun4u/include/sys/sfdr.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4458
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4459
	# Solstice Enterprise Agent(SEA) : mib-II subagent mibiisa
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4460
	# needs to be disabled during startup. SMA(System Management Agent)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4461
	# has the capability to support mib-II requests.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4462
	# The correct ones will be extracted from
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4463
	# the archives whether bfu'ing backwards or forwards.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4464
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4465
	# old: need to remove going forwards:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4466
	rm -f $root/etc/snmp/conf/mibiisa.rsrc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4467
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4468
	# new: need to remove going backwards:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4469
	rm -f $root/etc/snmp/conf/mibiisa.rsrc-
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4471
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4472
	# Remove /dev/mc symlink and /platform/sun4u/kernel/drv/mc-us3.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4473
	# if any.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4474
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4475
	if [ -h $root/dev/mc ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4476
		rm -f $root/dev/mc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4477
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4478
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4479
	if [ -f $root/platform/sun4u/kernel/drv/mc-us3.conf ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4480
		rm -f $root/platform/sun4u/kernel/drv/mc-us3.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4481
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4482
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4483
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4484
	# Remove the snowbird sbin and include symlinks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4485
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4486
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4487
	if [[ -h $usr/platform/SUNW,Netra-CP2300/sbin ]] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4488
		rm -f $usr/platform/SUNW,Netra-CP2300/sbin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4489
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4490
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4491
	if [[ -h $usr/platform/SUNW,Netra-CP2300/include ]] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4492
		rm -f $usr/platform/SUNW,Netra-CP2300/include
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4493
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4494
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4495
	# If we still have the old lp(7D) driver, remove it and its symlinks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4496
	# and header file. (If driver already gone, don't trample new symlinks.)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4497
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4498
	if [ -f $root/platform/i86pc/kernel/drv/lp -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4499
	    -h $root/dev/lp[012] ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4500
		rm -f $root/dev/lp[012]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4501
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4502
	rm -f $root/platform/i86pc/kernel/drv/lp.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4503
	rm -f $root/platform/i86pc/kernel/drv/lp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4504
	rm -f $root/usr/include/sys/lp.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4505
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4506
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4507
	# Remove V880 CPU DR files, program cancelled
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4508
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4509
	DAKTARI_PLAT=platform/SUNW,Sun-Fire-880
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4510
		rm -f \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4511
		$root/$DAKTARI_PLAT/kernel/drv/gptwo.conf	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4512
		$root/$DAKTARI_PLAT/kernel/drv/sparcv9/bbc	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4513
		$root/$DAKTARI_PLAT/kernel/drv/sparcv9/gptwo	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4514
		$root/$DAKTARI_PLAT/kernel/misc/sparcv9/sbdp	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4515
		$usr/platform/sun4u/include/sys/sbdp.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4516
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4517
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4518
	# Remove crash(1M), now obsoleted by mdb(1).  If this is a backwards
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4519
	# BFU, it will be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4520
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4521
	rm -f $root/etc/crash $usr/sbin/crash $usr/sbin/i86/crash \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4522
	    $usr/sbin/sparcv7/crash $usr/sbin/sparcv9/crash
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4523
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4524
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4525
	# Remove kadb(1M), now obsoleted by kmdb(1M)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4526
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4527
	rm -f $root/platform/*/kadb
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4528
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4529
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4530
	# Remove old platform dmod symlinks
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4531
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4532
	for dir in $usr/platform/*/lib/mdb ; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4533
		[[ -h $dir ]] && rm -f $dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4534
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4535
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4536
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4537
	# Remove ADB macros
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4538
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4539
	rm -fr $usr/lib/adb
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4540
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4541
	for dir in $usr/platform/*/lib/adb ; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4542
		rm -fr $dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4543
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4544
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4545
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4546
	# Remove the SGENV driver from the Sun-Fire directory structure.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4547
	# If this is a backwards BFU, it will be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4548
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4549
	SERENGETI_PLAT=platform/SUNW,Sun-Fire
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4550
	rm -f $root/$SERENGETI_PLAT/kernel/drv/sgenv.conf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4551
	    $root/$SERENGETI_PLAT/kernel/drv/sparcv9/sgenv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4552
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4553
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4554
	# Remove sun4m
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4555
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4556
	rm -rf $root/platform/sun4m
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4557
	rm -rf $usr/platform/sun4m
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4558
	if [ $target_isa = sparc ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4559
		rm -f $root/kernel/genunix
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4560
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4561
	rm -f $root/kernel/drv/xbox
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4562
	rm -f $usr/include/sys/comvec.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4563
	rm -f $usr/include/sys/openprom.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4564
	rm -f $usr/include/sys/cg14io.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4565
	rm -f $usr/include/sys/cg14reg.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4566
	rm -f $usr/include/sys/cg8reg.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4567
	rm -f $usr/include/sys/cg8var.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4568
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4569
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4570
	# Remove perl 5.005_03.  If this is a backwards bfu,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4571
	# it will be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4572
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4573
	if [[ -d $usr/perl5/5.00503 ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4574
		remove_perl_500503
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4575
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4576
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4577
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4578
	# Remove perl 5.8.3, but only if the generic.usr archive contains 5.8.4.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4579
	# If this is a backwards bfu, 5.8.3 will be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4580
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4581
	if [[ -d $usr/perl5/5.8.3 ]] && $ZCAT $cpiodir/generic.usr$ZFIX | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4582
	    cpio -it 2>/dev/null |  egrep -s '^usr/perl5/5.8.4/'; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4583
		remove_perl_583
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4584
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4585
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4586
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4587
	# Clean up legacy versions of the FMA CPU/Mem DE which may be still
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4588
	# be laying around.  This check may be removed when a sufficient time
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4589
	# has lapsed between the FMA putback as to ensure that no test machines
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4590
	# still have development FMA bits.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4591
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4592
	for platdir in $usr/platform/SUNW,* ; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4593
		[[ -h $platdir ]] && continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4594
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4595
		rm -f $platdir/lib/fm/fmd/plugins/cpumem-diagnosis.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4596
		rm -f $platdir/lib/fm/fmd/plugins/cpumem-diagnosis.conf 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4597
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4598
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4599
	# Remove pam_unix
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4600
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4601
	rm -f $usr/lib/security/pam_unix.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4602
	rm -f $usr/lib/security/pam_unix.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4603
	rm -f $usr/lib/security/sparcv9/pam_unix.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4604
	rm -f $usr/lib/security/sparcv9/pam_unix.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4605
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4606
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4607
	# Remove libldap.so.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4608
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4609
	rm -f $usr/lib/libldap.so.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4610
	rm -f $usr/lib/sparcv9/libldap.so.3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4611
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4612
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4613
	# Remove nss XFN support no longer used by printing
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4614
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4615
	sed -e '/printers:/s/xfn[  ]*//' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4616
		$rootprefix/bfu.child/etc/nsswitch.conf > /tmp/nssw.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4617
	cp /tmp/nssw.$$ $rootprefix/bfu.child/etc/nsswitch.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4618
	rm -f /tmp/nssw.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4619
	rm -f $usr/lib/nss_xfn.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4620
	rm -f $usr/lib/sparcv9/nss_xfn.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4621
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4622
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4623
	# Remove FNS/XFN.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4624
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4625
	if [ -d $rootprefix/etc/fn -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4626
	     -d $usr/include/xfn -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4627
	     -d $usr/lib/fn -o \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4628
	     -d $rootprefix/var/fn ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4629
		remove_eof_fns
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4630
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4631
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4632
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4633
	# Remove BIND 8, but only if the generic.usr archive doesn't contains
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4634
	# BIND 8 named server/tools. If this is a backwards bfu, BIND 8 will
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4635
	# be extracted again by cpio.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4636
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4637
	if [[ -f $usr/sbin/dnskeygen ]] && ! $ZCAT $cpiodir/generic.usr$ZFIX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4638
	    | cpio -it 2>/dev/null |  egrep -s '^usr/sbin/ndc' ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4639
		remove_eof_bind8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4640
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4641
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4642
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4643
	# Remove any sendmailvars: line from /etc/nsswitch.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4644
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4645
	sed -e '/^sendmailvars:/d' $rootprefix/bfu.child/etc/nsswitch.conf > \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4646
		/tmp/nssw.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4647
	cp /tmp/nssw.$$ $rootprefix/bfu.child/etc/nsswitch.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4648
	rm -f /tmp/nssw.$$
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4649
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4650
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4651
	# Remove SUNWcoff package
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4652
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4653
	pkgroot=${rootprefix:+-R $rootprefix}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4654
	pkg=SUNWcoff
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4655
	if [ $target_isa = i386 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4656
		if pkginfo $pkgroot -q $pkg; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4657
			pkgrm $pkgroot -n $pkg >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4658
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4659
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4660
		# In case that did not work, do it manually.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4661
		if [ -d $rootprefix/var/sadm/pkg/$pkg ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4662
			rm -rf $rootprefix/var/sadm/pkg/$pkg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4663
			rm $rootprefix/kernel/exec/coffexec
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4664
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4665
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4666
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4667
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4668
	# Remove GMT* zoneinfo files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4669
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4670
	rm -f $usr/share/lib/zoneinfo/GMT-12
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4671
	rm -f $usr/share/lib/zoneinfo/GMT-11
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4672
	rm -f $usr/share/lib/zoneinfo/GMT-10
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4673
	rm -f $usr/share/lib/zoneinfo/GMT-9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4674
	rm -f $usr/share/lib/zoneinfo/GMT-8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4675
	rm -f $usr/share/lib/zoneinfo/GMT-7
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4676
	rm -f $usr/share/lib/zoneinfo/GMT-6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4677
	rm -f $usr/share/lib/zoneinfo/GMT-5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4678
	rm -f $usr/share/lib/zoneinfo/GMT-4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4679
	rm -f $usr/share/lib/zoneinfo/GMT-3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4680
	rm -f $usr/share/lib/zoneinfo/GMT-2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4681
	rm -f $usr/share/lib/zoneinfo/GMT-1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4682
	rm -f $usr/share/lib/zoneinfo/GMT+1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4683
	rm -f $usr/share/lib/zoneinfo/GMT+2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4684
	rm -f $usr/share/lib/zoneinfo/GMT+3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4685
	rm -f $usr/share/lib/zoneinfo/GMT+4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4686
	rm -f $usr/share/lib/zoneinfo/GMT+5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4687
	rm -f $usr/share/lib/zoneinfo/GMT+6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4688
	rm -f $usr/share/lib/zoneinfo/GMT+7
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4689
	rm -f $usr/share/lib/zoneinfo/GMT+8
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4690
	rm -f $usr/share/lib/zoneinfo/GMT+9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4691
	rm -f $usr/share/lib/zoneinfo/GMT+10
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4692
	rm -f $usr/share/lib/zoneinfo/GMT+11
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4693
	rm -f $usr/share/lib/zoneinfo/GMT+12
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4694
	rm -f $usr/share/lib/zoneinfo/GMT+13
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4695
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4696
	# Remove stc(7d)-related files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4697
	rm -f $usr/include/sys/stcio.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4698
	rm -f $usr/include/sys/stcvar.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4699
	rm -f $usr/include/sys/stcreg.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4700
	rm -f $usr/include/sys/stcconf.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4701
	SUN4U_DRV=platform/sun4u/kernel/drv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4702
	rm -f $rootprefix/$SUN4U_DRV/stc.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4703
	rm -f $rootprefix/$SUN4U_DRV/stc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4704
	rm -f $rootprefix/$SUN4U_DRV/sparcv9/stc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4705
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4706
	# Remove old CPC adb macros.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4707
	rm -f $usr/lib/adb/cpc_ctx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4708
	rm -f $usr/lib/adb/cpc_event
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4709
	if [ $target_isa = sparc ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4710
	    rm -f $usr/lib/adb/sparcv9/cpc_ctx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4711
	    rm -f $usr/lib/adb/sparcv9/cpc_event
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4712
	fi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4713
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4714
	# Remove obsolete DTrace demos
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4715
	rm -f $usr/demo/dtrace/cputick.d
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4716
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4717
	# Remove flashprom-related files.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4718
	if [ $target_isa = sparc ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4719
	    for x in $FLASHPROMLIST
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4720
	    do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4721
		rm -f $root/$x;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4722
	    done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4723
	fi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4724
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4725
	if [ $RM_32BIT_KERNEL -eq 1 -a $zone = global ];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4726
	then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4727
	    print "Removing 32-bit commands and kernel binaries ... \c";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4728
	    rm -rf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4729
		$usr/bin/sparcv7/amt \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4730
		$usr/bin/sparcv7/cputrack \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4731
		$usr/bin/sparcv7/newtask \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4732
		$usr/bin/sparcv7/nohup \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4733
		$usr/bin/sparcv7/pargs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4734
		$usr/bin/sparcv7/pcred \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4735
		$usr/bin/sparcv7/pfiles \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4736
		$usr/bin/sparcv7/pflags \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4737
		$usr/bin/sparcv7/pldd \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4738
		$usr/bin/sparcv7/plimit \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4739
		$usr/bin/sparcv7/pmap \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4740
		$usr/bin/sparcv7/ppgsz \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4741
		$usr/bin/sparcv7/ppriv \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4742
		$usr/bin/sparcv7/prctl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4743
		$usr/bin/sparcv7/preap \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4744
		$usr/bin/sparcv7/prex \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4745
		$usr/bin/sparcv7/prstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4746
		$usr/bin/sparcv7/prun \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4747
		$usr/bin/sparcv7/ps \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4748
		$usr/bin/sparcv7/psig \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4749
		$usr/bin/sparcv7/pstack \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4750
		$usr/bin/sparcv7/pstop \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4751
		$usr/bin/sparcv7/ptime \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4752
		$usr/bin/sparcv7/ptree \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4753
		$usr/bin/sparcv7/pwait \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4754
		$usr/bin/sparcv7/pwdx \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4755
		$usr/bin/sparcv7/setuname \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4756
		$usr/bin/sparcv7/sort \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4757
		$usr/bin/sparcv7/tnfxtract \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4758
		$usr/bin/sparcv7/uptime \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4759
		$usr/bin/sparcv7/w \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4760
		$usr/sbin/sparcv7/intrstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4761
		$usr/sbin/sparcv7/lockstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4762
		$usr/sbin/sparcv7/prtconf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4763
		$usr/sbin/sparcv7/swap \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4764
		$usr/sbin/sparcv7/sysdef \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4765
		$usr/sbin/sparcv7/whodo \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4766
		$root/kernel/dacf/consconfig_dacf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4767
		$root/kernel/drv/arp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4768
		$root/kernel/drv/audiocs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4769
		$root/kernel/drv/audioens \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4770
		$root/kernel/drv/bofi \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4771
		$root/kernel/drv/bpp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4772
		$root/kernel/drv/clone \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4773
		$root/kernel/drv/cn \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4774
		$root/kernel/drv/conskbd \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4775
		$root/kernel/drv/consms \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4776
		$root/kernel/drv/dad \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4777
		$root/kernel/drv/dbri \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4778
		$root/kernel/drv/devinfo \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4779
		$root/kernel/drv/ecpp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4780
		$root/kernel/drv/ehci \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4781
		$root/kernel/drv/esp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4782
		$root/kernel/drv/fas \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4783
		$root/kernel/drv/fcip \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4784
		$root/kernel/drv/fcp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4785
		$root/kernel/drv/fp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4786
		$root/kernel/drv/glm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4787
		$root/kernel/drv/hid \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4788
		$root/kernel/drv/hme \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4789
		$root/kernel/drv/hubd \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4790
		$root/kernel/drv/icmp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4791
		$root/kernel/drv/icmp6 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4792
		$root/kernel/drv/ifp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4793
		$root/kernel/drv/ip \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4794
		$root/kernel/drv/ip6 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4795
		$root/kernel/drv/ippctl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4796
		$root/kernel/drv/ipsecah \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4797
		$root/kernel/drv/ipsecesp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4798
		$root/kernel/drv/isp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4799
		$root/kernel/drv/iwscn \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4800
		$root/kernel/drv/keysock \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4801
		$root/kernel/drv/le \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4802
		$root/kernel/drv/lebuffer \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4803
		$root/kernel/drv/llc1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4804
		$root/kernel/drv/lofi \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4805
		$root/kernel/drv/log \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4806
		$root/kernel/drv/md \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4807
		$root/kernel/drv/mm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4808
		$root/kernel/drv/mpt \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4809
		$root/kernel/drv/nca \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4810
		$root/kernel/drv/ohci \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4811
		$root/kernel/drv/openeepr \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4812
		$root/kernel/drv/options \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4813
		$root/kernel/drv/pcata \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4814
		$root/kernel/drv/pcelx \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4815
		$root/kernel/drv/pcic \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4816
		$root/kernel/drv/pcmem \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4817
		$root/kernel/drv/pcram \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4818
		$root/kernel/drv/pcs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4819
		$root/kernel/drv/pcser \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4820
		$root/kernel/drv/pem \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4821
		$root/kernel/drv/pln \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4822
		$root/kernel/drv/poll \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4823
		$root/kernel/drv/pseudo \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4824
		$root/kernel/drv/ptc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4825
		$root/kernel/drv/ptsl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4826
		$root/kernel/drv/qlc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4827
		$root/kernel/drv/random \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4828
		$root/kernel/drv/rts \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4829
		$root/kernel/drv/sad \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4830
		$root/kernel/drv/scsa2usb \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4831
		$root/kernel/drv/scsi_vhci \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4832
		$root/kernel/drv/sd \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4833
		$root/kernel/drv/se \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4834
		$root/kernel/drv/ses \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4835
		$root/kernel/drv/sgen \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4836
		$root/kernel/drv/soc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4837
		$root/kernel/drv/socal \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4838
		$root/kernel/drv/spdsock \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4839
		$root/kernel/drv/ssd \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4840
		$root/kernel/drv/st \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4841
		$root/kernel/drv/stp4020 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4842
		$root/kernel/drv/sy \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4843
		$root/kernel/drv/sysmsg \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4844
		$root/kernel/drv/tcp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4845
		$root/kernel/drv/tcp6 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4846
		$root/kernel/drv/tl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4847
		$root/kernel/drv/uata \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4848
		$root/kernel/drv/udp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4849
		$root/kernel/drv/udp6 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4850
		$root/kernel/drv/ugen \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4851
		$root/kernel/drv/usb_ac \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4852
		$root/kernel/drv/usb_as \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4853
		$root/kernel/drv/usb_mid \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4854
		$root/kernel/drv/usbprn \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4855
		$root/kernel/drv/usbser_edge \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4856
		$root/kernel/drv/usoc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4857
		$root/kernel/drv/wc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4858
		$root/kernel/exec/aoutexec \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4859
		$root/kernel/exec/elfexec \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4860
		$root/kernel/exec/intpexec \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4861
		$root/kernel/fs/autofs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4862
		$root/kernel/fs/cachefs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4863
		$root/kernel/fs/devfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4864
		$root/kernel/fs/fifofs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4865
		$root/kernel/fs/hsfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4866
		$root/kernel/fs/lofs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4867
		$root/kernel/fs/mntfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4868
		$root/kernel/fs/nfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4869
		$root/kernel/fs/procfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4870
		$root/kernel/fs/sockfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4871
		$root/kernel/fs/specfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4872
		$root/kernel/fs/tmpfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4873
		$root/kernel/fs/udfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4874
		$root/kernel/fs/ufs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4875
		$root/kernel/ipp/dlcosmk \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4876
		$root/kernel/ipp/dscpmk \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4877
		$root/kernel/ipp/flowacct \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4878
		$root/kernel/ipp/ipgpc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4879
		$root/kernel/ipp/tokenmt \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4880
		$root/kernel/ipp/tswtclmt \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4881
		$root/kernel/misc/amsrc1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4882
		$root/kernel/misc/audiosup \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4883
		$root/kernel/misc/busra \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4884
		$root/kernel/misc/consconfig \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4885
		$root/kernel/misc/dada \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4886
		$root/kernel/misc/des \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4887
		$root/kernel/misc/diaudio \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4888
		$root/kernel/misc/fctl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4889
		$root/kernel/misc/fssnap_if \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4890
		$root/kernel/misc/gld \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4891
		$root/kernel/misc/hidparser \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4892
		$root/kernel/misc/hpcsvc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4893
		$root/kernel/misc/ipc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4894
		$root/kernel/misc/kbtrans \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4895
		$root/kernel/misc/kgss/do_kmech_krb5 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4896
		$root/kernel/misc/kgss/gl_kmech_krb5 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4897
		$root/kernel/misc/kgssapi \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4898
		$root/kernel/misc/klmmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4899
		$root/kernel/misc/klmops \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4900
		$root/kernel/misc/krtld \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4901
		$root/kernel/misc/md5 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4902
		$root/kernel/misc/md_hotspares \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4903
		$root/kernel/misc/md_mirror \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4904
		$root/kernel/misc/md_notify \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4905
		$root/kernel/misc/md_raid \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4906
		$root/kernel/misc/md_sp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4907
		$root/kernel/misc/md_stripe \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4908
		$root/kernel/misc/md_trans \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4909
		$root/kernel/misc/mixer \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4910
		$root/kernel/misc/mpxio \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4911
		$root/kernel/misc/nfs_dlboot \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4912
		$root/kernel/misc/nfssrv \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4913
		$root/kernel/misc/pcicfg \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4914
		$root/kernel/misc/pcihp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4915
		$root/kernel/misc/phx \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4916
		$root/kernel/misc/rpcsec \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4917
		$root/kernel/misc/rpcsec_gss \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4918
		$root/kernel/misc/rsmops \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4919
		$root/kernel/misc/scsi \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4920
		$root/kernel/misc/seg_drv \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4921
		$root/kernel/misc/seg_mapdev \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4922
		$root/kernel/misc/sha1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4923
		$root/kernel/misc/strplumb \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4924
		$root/kernel/misc/swapgeneric \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4925
		$root/kernel/misc/tlimod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4926
		$root/kernel/misc/ufs_log \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4927
		$root/kernel/misc/usba \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4928
		$root/kernel/misc/usbser \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4929
		$root/kernel/sched/TS \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4930
		$root/kernel/sched/TS_DPTBL \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4931
		$root/kernel/strmod/6to4tun \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4932
		$root/kernel/strmod/arp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4933
		$root/kernel/strmod/atun \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4934
		$root/kernel/strmod/authmd5h \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4935
		$root/kernel/strmod/authsha1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4936
		$root/kernel/strmod/bufmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4937
		$root/kernel/strmod/connld \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4938
		$root/kernel/strmod/dedump \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4939
		$root/kernel/strmod/drcompat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4940
		$root/kernel/strmod/encr3des \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4941
		$root/kernel/strmod/encraes \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4942
		$root/kernel/strmod/encrbfsh \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4943
		$root/kernel/strmod/encrdes \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4944
		$root/kernel/strmod/icmp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4945
		$root/kernel/strmod/ip \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4946
		$root/kernel/strmod/ipsecah \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4947
		$root/kernel/strmod/ipsecesp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4948
		$root/kernel/strmod/keysock \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4949
		$root/kernel/strmod/ldterm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4950
		$root/kernel/strmod/ms \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4951
		$root/kernel/strmod/nca \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4952
		$root/kernel/strmod/pckt \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4953
		$root/kernel/strmod/pfmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4954
		$root/kernel/strmod/pipemod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4955
		$root/kernel/strmod/ptem \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4956
		$root/kernel/strmod/redirmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4957
		$root/kernel/strmod/rpcmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4958
		$root/kernel/strmod/rts \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4959
		$root/kernel/strmod/tcp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4960
		$root/kernel/strmod/timod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4961
		$root/kernel/strmod/tirdwr \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4962
		$root/kernel/strmod/ttcompat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4963
		$root/kernel/strmod/tun \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4964
		$root/kernel/strmod/udp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4965
		$root/kernel/strmod/usb_ah \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4966
		$root/kernel/strmod/usbkbm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4967
		$root/kernel/strmod/usbms \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4968
		$root/kernel/sys/c2audit \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4969
		$root/kernel/sys/doorfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4970
		$root/kernel/sys/inst_sync \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4971
		$root/kernel/sys/kaio \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4972
		$root/kernel/sys/msgsys \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4973
		$root/kernel/sys/nfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4974
		$root/kernel/sys/pipe \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4975
		$root/kernel/sys/pset \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4976
		$root/kernel/sys/rpcmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4977
		$root/kernel/sys/semsys \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4978
		$root/kernel/sys/shmsys \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4979
		$root/platform/SUNW,Ultra-250/kernel/drv/envctrltwo \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4980
		$root/platform/SUNW,Ultra-250/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4981
		$root/platform/SUNW,Ultra-4/kernel/drv/envctrl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4982
		$root/platform/SUNW,Ultra-4/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4983
		$root/platform/SUNW,Ultra-5_10/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4984
		$root/platform/SUNW,Ultra-80/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4985
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/cpu/SUNW,UltraSPARC \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4986
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/cpu/SUNW,UltraSPARC-II \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4987
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/cvc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4988
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/cvcredir \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4989
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/idn \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4990
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/ngdr \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4991
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/pcipsy \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4992
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/rootnex \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4993
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/drv/sbus \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4994
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/misc/ngdrmach \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4995
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4996
		$root/platform/SUNW,Ultra-Enterprise-10000/kernel/unix \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4997
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/ac \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4998
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/central \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  4999
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/environ \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5000
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/fhc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5001
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/simmstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5002
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/sram \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5003
		$root/platform/SUNW,Ultra-Enterprise/kernel/drv/sysctrl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5004
		$root/platform/SUNW,Ultra-Enterprise/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5005
		$root/platform/sun4u/boot.conf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5006
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5007
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-II \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5008
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-III \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5009
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-III+ \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5010
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-IIIi \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5011
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-IIe \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5012
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-IIi \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5013
		$root/platform/sun4u/kernel/cpu/SUNW,UltraSPARC-IV \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5014
		$root/platform/sun4u/kernel/drv/bwtwo \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5015
		$root/platform/sun4u/kernel/drv/cgsix \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5016
		$root/platform/sun4u/kernel/drv/cgthree \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5017
		$root/platform/sun4u/kernel/drv/cpc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5018
		$root/platform/sun4u/kernel/drv/db21554 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5019
		$root/platform/sun4u/kernel/drv/dma \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5020
		$root/platform/sun4u/kernel/drv/ebus \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5021
		$root/platform/sun4u/kernel/drv/fd \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5022
		$root/platform/sun4u/kernel/drv/ledma \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5023
		$root/platform/sun4u/kernel/drv/memtest \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5024
		$root/platform/sun4u/kernel/drv/pci_pci \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5025
		$root/platform/sun4u/kernel/drv/pcipsy \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5026
		$root/platform/sun4u/kernel/drv/power \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5027
		$root/platform/sun4u/kernel/drv/rootnex \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5028
		$root/platform/sun4u/kernel/drv/sbbc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5029
		$root/platform/sun4u/kernel/drv/sbus \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5030
		$root/platform/sun4u/kernel/drv/sbusmem \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5031
		$root/platform/sun4u/kernel/drv/sf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5032
		$root/platform/sun4u/kernel/drv/simba \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5033
		$root/platform/sun4u/kernel/drv/su \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5034
		$root/platform/sun4u/kernel/drv/tod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5035
		$root/platform/sun4u/kernel/drv/trapstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5036
		$root/platform/sun4u/kernel/drv/zs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5037
		$root/platform/sun4u/kernel/drv/zsh \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5038
		$root/platform/sun4u/kernel/genunix \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5039
		$root/platform/sun4u/kernel/misc/bootdev \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5040
		$root/platform/sun4u/kernel/misc/cpr \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5041
		$root/platform/sun4u/kernel/misc/forthdebug \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5042
		$root/platform/sun4u/kernel/misc/kgss/do_kmech_krb5 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5043
		$root/platform/sun4u/kernel/misc/kgss/gl_kmech_krb5 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5044
		$root/platform/sun4u/kernel/misc/md5 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5045
		$root/platform/sun4u/kernel/misc/obpsym \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5046
		$root/platform/sun4u/kernel/misc/pcmcia \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5047
		$root/platform/sun4u/kernel/misc/platmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5048
		$root/platform/sun4u/kernel/misc/vis \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5049
		$root/platform/sun4u/kernel/strmod/kb \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5050
		$root/platform/sun4u/kernel/sys/cpc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5051
		$root/platform/sun4u/kernel/tod/todmostek \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5052
		$root/platform/sun4u/kernel/tod/todstarfire \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5053
		$usr/include/v7/sys/mon_clock.h \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5054
		$usr/kernel/drv/dump \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5055
		$usr/kernel/drv/fssnap \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5056
		$usr/kernel/drv/gen_drv \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5057
		$usr/kernel/drv/kstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5058
		$usr/kernel/drv/ksyms \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5059
		$usr/kernel/drv/llc2 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5060
		$usr/kernel/drv/lo \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5061
		$usr/kernel/drv/lockstat \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5062
		$usr/kernel/drv/logindmux \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5063
		$usr/kernel/drv/pm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5064
		$usr/kernel/drv/pshot \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5065
		$usr/kernel/drv/ptm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5066
		$usr/kernel/drv/pts \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5067
		$usr/kernel/drv/rsm \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5068
		$usr/kernel/drv/sppp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5069
		$usr/kernel/drv/sppptun \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5070
		$usr/kernel/drv/sysevent \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5071
		$usr/kernel/drv/tidg \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5072
		$usr/kernel/drv/tivc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5073
		$usr/kernel/drv/tmux \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5074
		$usr/kernel/drv/tnf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5075
		$usr/kernel/drv/vol \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5076
		$usr/kernel/drv/winlock \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5077
		$usr/kernel/exec/javaexec \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5078
		$usr/kernel/fs/fdfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5079
		$usr/kernel/fs/namefs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5080
		$usr/kernel/fs/pcfs \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5081
		$usr/kernel/sched/FSS \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5082
		$usr/kernel/sched/FX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5083
		$usr/kernel/sched/FX_DPTBL \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5084
		$usr/kernel/sched/IA \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5085
		$usr/kernel/sched/RT \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5086
		$usr/kernel/sched/RT_DPTBL \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5087
		$usr/kernel/strmod/cryptmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5088
		$usr/kernel/strmod/lmodb \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5089
		$usr/kernel/strmod/lmode \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5090
		$usr/kernel/strmod/lmodr \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5091
		$usr/kernel/strmod/lmodt \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5092
		$usr/kernel/strmod/rlmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5093
		$usr/kernel/strmod/spppasyn \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5094
		$usr/kernel/strmod/spppcomp \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5095
		$usr/kernel/strmod/sppptun \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5096
		$usr/kernel/strmod/telmod \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5097
		$usr/kernel/sys/acctctl \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5098
		$usr/kernel/sys/exacctsys \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5099
		$usr/kernel/sys/sysacct \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5100
		$usr/lib/gss/mech_spnego.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5101
		$usr/lib/gss/mech_spnego.so.1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5102
		$usr/lib/mdb/kvm/cpc.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5103
		$usr/lib/mdb/kvm/genunix.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5104
		$usr/lib/mdb/kvm/ip.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5105
		$usr/lib/mdb/kvm/ipc.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5106
		$usr/lib/mdb/kvm/ipp.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5107
		$usr/lib/mdb/kvm/isp.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5108
		$usr/lib/mdb/kvm/krtld.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5109
		$usr/lib/mdb/kvm/lofs.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5110
		$usr/lib/mdb/kvm/logindmux.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5111
		$usr/lib/mdb/kvm/mdb_ks.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5112
		$usr/lib/mdb/kvm/nca.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5113
		$usr/lib/mdb/kvm/nfs.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5114
		$usr/lib/mdb/kvm/ptm.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5115
		$usr/lib/mdb/kvm/random.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5116
		$usr/lib/mdb/kvm/sd.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5117
		$usr/lib/mdb/kvm/sppp.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5118
		$usr/lib/mdb/kvm/ssd.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5119
		$usr/lib/mdb/kvm/ufs_log.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5120
		$usr/lib/mdb/kvm/usba.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5121
		$usr/lib/sparcv9/gss/mech_spnego.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5122
		$usr/lib/sparcv9/gss/mech_spnego.so.1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5123
		$usr/platform/SUNW,Ultra-1 \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5124
		$usr/platform/SUNW,Ultra-250/doc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5125
		$usr/platform/SUNW,Ultra-250/lib/flash-update.sh \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5126
		$usr/platform/SUNW,Ultra-250/lib/prom \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5127
		$usr/platform/SUNW,Ultra-Enterprise-10000/doc \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5128
		$usr/platform/SUNW,Ultra-Enterprise-10000/lib/flash-update.sh \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5129
		$usr/platform/SUNW,Ultra-Enterprise-10000/lib/prom \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5130
		$usr/platform/sun4u/lib/mdb/kvm/unix.so \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5131
		$usr/platform/sun4u/lib/prom/SUNW,Ultra-1 > /dev/null 2>&1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5132
		print "done.";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5133
	fi;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5134
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5135
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5136
	# Remove kmdbmod from /kernel
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5137
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5138
	rm -f $root/kernel/misc/sparcv9/kmdbmod
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5139
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5140
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5141
	# Remove obsolete drivers/header files as a result of sun4v source
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5142
	# code reorg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5143
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5144
	rm -f $root/platform/sun4u/kernel/drv/sparcv9/pci_pci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5145
	rm -f $root/platform/sun4u/kernel/misc/sparcv9/pcmcia
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5146
	rm -f $usr/include/v9/sys/traptrace.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5147
	rm -f $usr/platform/sun4u/include/sys/spitasi.h
78
0e13b95244dd 6289703 Remove SUNWust1u.v package -- we do not need it
ae112802
parents: 25
diff changeset
  5148
	rm -f $usr/kernel/pcbe/sparcv9/pcbe.SUNW,UltraSPARC-T1
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5149
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5150
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5151
        # Remove the IPsec encryption and authentication modules.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5152
        # IPsec now uses the Kernel Crypto Framework for crypto.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5153
        #
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5154
        rm -f $rootprefix/kernel/strmod/encr3des
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5155
        rm -f $rootprefix/kernel/strmod/encrdes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5156
        rm -f $rootprefix/kernel/strmod/encrbfsh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5157
        rm -f $rootprefix/kernel/strmod/encraes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5158
        rm -f $rootprefix/kernel/strmod/authmd5h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5159
        rm -f $rootprefix/kernel/strmod/authsha1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5160
        rm -f $rootprefix/kernel/strmod/sparcv9/encr3des
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5161
        rm -f $rootprefix/kernel/strmod/sparcv9/encrdes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5162
        rm -f $rootprefix/kernel/strmod/sparcv9/encrbfsh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5163
        rm -f $rootprefix/kernel/strmod/sparcv9/encraes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5164
        rm -f $rootprefix/kernel/strmod/sparcv9/authmd5h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5165
        rm -f $rootprefix/kernel/strmod/sparcv9/authsha1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5166
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5167
        #
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5168
        # Remove obsolete SSA utility, firmware and fcode.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5169
        # usr/lib/firmware/ssa contains ssafirmware 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5170
        #
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5171
        rm -rf $usr/lib/firmware/ssa
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5172
        rm -f $usr/lib/firmware/fc_s/fc_s_fcode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5173
        rm -f $usr/sbin/ssaadm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5174
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5175
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5176
	# Remove seg_drv, seg_mapdev driver
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5177
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5178
	rm -f $root/kernel/misc/seg_drv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5179
	rm -f $root/kernel/misc/sparcv9/seg_drv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5180
	rm -f $usr/include/sys/seg_drv.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5181
	rm -f $root/kernel/misc/seg_mapdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5182
	rm -f $root/kernel/misc/sparcv9/seg_mapdev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5183
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5184
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5185
	# Remove mpxio module
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5186
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5187
	rm -f $root/kernel/misc/sparcv9/mpxio
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5188
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5189
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5190
	# Remove mpxio/vhci adb macros.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5191
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5192
	if [ $target_isa = sparc -a $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5193
		rm -f $usr/lib/adb/mdi_client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5194
		rm -f $usr/lib/adb/sparcv9/mdi_client
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5195
		rm -f $usr/lib/adb/mdi_pathinfo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5196
		rm -f $usr/lib/adb/sparcv9/mdi_pathinfo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5197
		rm -f $usr/lib/adb/mdi_phci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5198
		rm -f $usr/lib/adb/sparcv9/mdi_phci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5199
		rm -f $usr/lib/adb/mdi_vhci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5200
		rm -f $usr/lib/adb/sparcv9/mdi_vhci
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5201
		rm -f $usr/lib/adb/scsi_vhci_pkt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5202
		rm -f $usr/lib/adb/sparcv9/scsi_vhci_pkt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5203
		rm -f $usr/lib/adb/scsi_vhci_softstate
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5204
		rm -f $usr/lib/adb/sparcv9/scsi_vhci_softstate
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5205
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5206
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5207
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5208
	# new: need to remove going backwards:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5209
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5210
	# Diskless clients have already extracted /usr so don't delete this
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5211
	# Non-global zones never extracts /usr so don't delete these
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5212
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5213
	if [ $diskless = no -a $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5214
		rm -f $usr/sbin/stmsboot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5215
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5216
	rm -f $root/lib/mpxio/mpxio
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5217
	rm -f $root/lib/mpxio/stmsboot_util
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5218
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5219
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5220
	# Remove rpcib misc module (converted to driver)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5221
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5222
	rm -f $root/kernel/misc/sparcv9/rpcib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5223
	rm -f $root/kernel/drv/sparcv9/rpcib
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5224
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5225
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5226
	# Remove old smartcard header files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5227
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5228
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5229
	rm -f \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5230
		$usr/include/smartcard.h \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5231
		$usr/include/smartcard/ocf_authenticate.h \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5232
		$usr/include/smartcard/ocf_core.h \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5233
		$usr/include/smartcard/ocf_core_cardservices.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5234
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5235
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5236
	# Remove smartcard libraries that should not have been shipped.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5237
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5238
	rm -rf  $usr/lib/smartcard/sparcv9/ \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5239
		$usr/share/lib/smartcard/scmtester.jar
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5240
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5241
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5242
	# Remove external smartcard reader driver
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5243
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5244
	rm -f $usr/share/lib/smartcard/scmrsr3.jar
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5245
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5246
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5247
	# Remove old internal smartcard reader driver
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5248
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5249
	rm -f $usr/share/lib/smartcard/scmiscr.jar
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5250
	rm -f $usr/lib/smartcard/libSCMI2CNative.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5251
	rm -f $usr/lib/smartcard/libSCMI2CNative.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5252
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5253
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5254
	# Remove Smart OS
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5255
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5256
	rm -f $usr/share/lib/smartcard/smartos.jar
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5257
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5258
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5259
	# Remove drivers & header files for EOL of soc & pln drivers
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5260
	# as per PSARC/2003/233
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5261
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5262
	rm -f $root/kernel/drv/pln.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5263
	rm -f $root/kernel/drv/sparcv9/pln
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5264
	rm -f $root/kernel/drv/sparcv9/soc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5265
	rm -f $usr/include/sys/socvar.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5266
	rm -f $usr/include/sys/socmap.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5267
	rm -f $usr/include/sys/soc_cq_defs.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5268
	rm -f $usr/include/sys/socreg.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5269
	rm -f $usr/include/sys/scsi/adapters/plndef.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5270
	rm -f $usr/include/sys/scsi/adapters/plnvar.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5271
	rm -f $usr/include/sys/scsi/adapters/ssaisp.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5272
	rm -f $usr/include/sys/scsi/targets/pln_ctlr.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5273
	rm -f $usr/include/sys/scsi/targets/osesio.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5274
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5275
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5276
	# PSARC/2003/629 Common Solaris Target Disk Driver
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5277
	# remove adb macro "scsi_disk" for the x86 platform
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5278
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5279
	if [ $target_isa = i386 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5280
		rm -f $usr/lib/adb/scsi_disk
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5281
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5282
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5283
	# Remove CPCv1 API header per PSARC/2004/648
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5284
	rm -f $usr/include/sys/cpc_event.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5285
693
1c08294a694e PSARC/2005/561 Obsolete DDI Interrupt Interfaces
govinda
parents: 598
diff changeset
  5286
	# Remove headers per PSARC/2005/561
1c08294a694e PSARC/2005/561 Obsolete DDI Interrupt Interfaces
govinda
parents: 598
diff changeset
  5287
	rm -f $usr/include/sys/nexusintr.h
1c08294a694e PSARC/2005/561 Obsolete DDI Interrupt Interfaces
govinda
parents: 598
diff changeset
  5288
	rm -f $usr/platform/sun4u/include/sys/nexusintr_impl.h
1c08294a694e PSARC/2005/561 Obsolete DDI Interrupt Interfaces
govinda
parents: 598
diff changeset
  5289
	rm -f $usr/platform/sun4v/include/sys/nexusintr_impl.h
1c08294a694e PSARC/2005/561 Obsolete DDI Interrupt Interfaces
govinda
parents: 598
diff changeset
  5290
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5291
	# Remove usr/lib/mail which has moved to etc/mail/cf, but first,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5292
	# attempt to migrate any user-added files, which primarily live
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5293
	# under usr/lib/mail/cf .  Blow away the seven files which we
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5294
	# ship under that directory, then move any that remain to the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5295
	# new location, which we will `mkdir -p` just to be safe.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5296
	# If the zone in question is non-global, then skip all this.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5297
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5298
	if [ $zone = "global" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5299
		# -d follow sym-links: make sure it's not a link.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5300
		if [ -d $usr/lib/mail -a ! -h $usr/lib/mail ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5301
			# Only do this if usr/lib/mail is still a directory;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5302
			# bfu'ing backwards does not merit such migration.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5303
			rm -f $usr/lib/mail/cf/Makefile
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5304
			rm -f $usr/lib/mail/cf/main.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5305
			rm -f $usr/lib/mail/cf/main.mc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5306
			rm -f $usr/lib/mail/cf/submit.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5307
			rm -f $usr/lib/mail/cf/submit.mc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5308
			rm -f $usr/lib/mail/cf/subsidiary.cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5309
			rm -f $usr/lib/mail/cf/subsidiary.mc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5310
			mkdir -p -m 0755 $root/etc/mail/cf/cf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5311
			mv $usr/lib/mail/cf/* $root/etc/mail/cf/cf >/dev/null 2>&1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5312
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5313
		rm -rf $usr/lib/mail
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5314
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5315
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5316
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5317
	# Remove drivers and header files for EOF of Lance Ethernet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5318
	# driver(le) as per PSARC/2003/335.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5319
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5320
	rm -f $root/kernel/drv/le
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5321
	rm -f $root/kernel/drv/sparcv9/le
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5322
	rm -f $root/kernel/drv/lebuffer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5323
	rm -f $root/kernel/drv/sparcv9/lebuffer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5324
	rm -f $root/platform/sun4u/kernel/drv/ledma
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5325
	rm -f $root/platform/sun4u/kernel/drv/sparcv9/ledma
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5326
	rm -f $usr/include/sys/le.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5327
	rm -f $usr/include/sys/lance.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5328
	rm -f $usr/lib/adb/le
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5329
	rm -f $usr/lib/adb/lestr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5330
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5331
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5332
	# Remove drivers and header files for EOF of ieef driver as
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5333
	# per PSARC/2003/009
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5334
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5335
	rm -f $root/kernel/drv/ieef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5336
	rm -f $root/kernel/drv/ieef.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5337
	rm -f $usr/include/sys/ieef.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5338
	rm -f $root/boot/solaris/drivers/notisa.010/ieef.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5339
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5340
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5341
	# Remove drivers and header files for EOF of elx driver as
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5342
	# per PSARC/2003/770
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5343
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5344
	rm -f $root/platform/i86pc/kernel/drv/elx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5345
	rm -f $root/platform/i86pc/kernel/drv/elx.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5346
	rm -f $usr/include/sys/elx.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5347
	rm -f $root/boot/solaris/drivers/isa.175/elx.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5348
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5349
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5350
	# Remove drivers for EOF of pe driver as per PSARC/2004/051
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5351
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5352
	rm -f $root/kernel/drv/pe
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5353
	rm -f $root/kernel/drv/pe.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5354
	rm -f $root/boot/solaris/drivers/isa.125/pe3.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5355
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5356
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5357
	# Remove drivers for EOF of Compaq NCR, Compaq SMART2, AMI Mega
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5358
	# card and /usr/bin/smart2cfg as per PSARC/2003/701 and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5359
	# PSARC/2004/207
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5360
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5361
	rm -f $root/kernel/drv/cpqncr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5362
	rm -f $root/kernel/drv/cpqncr.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5363
	rm -f $root/boot/solaris/drivers/notisa.020/cpqncr.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5364
	rm -f $root/platform/i86pc/kernel/drv/smartii
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5365
	rm -f $root/platform/i86pc/kernel/drv/smartii.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5366
	rm -f $usr/bin/smart2cfg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5367
	rm -f $root/kernel/drv/mega
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5368
	rm -f $root/kernel/drv/mega.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5369
	rm -f $root/boot/solaris/drivers/notisa.010/mega.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5370
	rm -f $root/kernel/mach/compaq
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5371
	rm -f $root/kernel/mach/corollary
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5372
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5373
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5374
	# Remove eisa nexus driver and header files for EOF of EISA
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5375
	# support as per PSARC/2003/650
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5376
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5377
	rm -f $root/platform/i86pc/kernel/drv/eisa
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5378
	rm -f $usr/platform/i86pc/include/sys/eisarom.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5379
	rm -f $usr/platform/i86pc/include/sys/nvm.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5380
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5381
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5382
	# Remove xmem headers (they moved back to usr/include/sys/fs)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5383
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5384
	rm -f $usr/include/ia32/sys/fs/xmem.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5385
	rm -f $usr/include/ia32/sys/fs/seg_xmem.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5386
	rm -rf $usr/include/ia32/sys/fs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5387
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5388
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5389
	# Remove junk headers
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5390
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5391
	rm -f $usr/platform/i86pc/include/sys/mcdma.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5392
	rm -f $usr/platform/i86pc/include/sys/xque.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5393
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5394
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5395
	# Remove obsolete x86 hat layer and associated adb scripts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5396
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5397
	rm -f $root/platform/i86pc/kernel/mmu/mmu32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5398
	rm -f $root/platform/i86pc/kernel/mmu/mmu36
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5399
	rm -rf $root/platform/i86pc/kernel/mmu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5400
	rm -f $usr/lib/adb/hwpp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5401
	rm -f $usr/lib/adb/hatppp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5402
	rm -f $usr/lib/adb/hat.nxt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5403
	rm -f $usr/lib/adb/hwpp.nxt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5404
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5405
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5406
	# Remove drivers for EOF of pcscsi as per PSARC/2005/003
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5407
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5408
	rm -f $root/kernel/drv/pcscsi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5409
	rm -f $root/kernel/drv/pcscsi.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5410
	rm -f $root/boot/solaris/drivers/notisa.010/pcscsi.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5411
	
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5412
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5413
	# Remove drivers for EOF of dpt as per PSARC/2003/701
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5414
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5415
	rm -f $root/boot/solaris/drivers/isa.125/dpt.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5416
	rm -f $root/platform/i86pc/kernel/drv/dpt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5417
	rm -f $root/platform/i86pc/kernel/drv/dpt.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5418
	rm -rf $usr/include/sys/dktp/dpt
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5419
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5420
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5421
	# Remove drivers for EOF of mlx driver as per PSARC/2003/701
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5422
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5423
	rm -f $root/boot/solaris/drivers/notisa.010/mlx.bef
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5424
	rm -f $root/platform/i86pc/kernel/drv/mlx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5425
	rm -f $root/platform/i86pc/kernel/drv/mlx.conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5426
	rm -rf $usr/include/sys/dktp/mlx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5427
 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5428
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5429
	# Remove Floating Point Emulator for EOF as per PSARC/2003/651
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5430
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5431
	rm -f $root/platform/i86pc/kernel/misc/emul_80387
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5432
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5433
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5434
	# Remove 64-bit adp, cadp and cpqhpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5435
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5436
	rm -f $root/kernel/drv/amd64/adp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5437
	rm -f $root/kernel/drv/amd64/cadp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5438
	rm -f $root/kernel/drv/amd64/cpqhpc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5439
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5440
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5441
	# Remove 64-bit i2o_bs, i2o_msg, i2o_scsi, pci_to_i2o, mscsi, ncrs,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5442
	# msm, spwr, bscv, bscbus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5443
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5444
	rm -f $root/kernel/drv/amd64/i2o_bs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5445
	rm -f $root/kernel/misc/amd64/i2o_msg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5446
	rm -f $root/kernel/drv/amd64/i2o_scsi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5447
	rm -f $root/kernel/drv/amd64/pci_to_i2o
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5448
	rm -f $root/platform/i86pc/kernel/drv/amd64/mscsi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5449
	rm -f $root/kernel/drv/amd64/ncrs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5450
	rm -f $root/platform/i86pc/kernel/drv/amd64/msm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5451
	rm -f $root/kernel/drv/amd64/spwr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5452
	rm -f $root/platform/i86pc/kernel/drv/amd64/bscv
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5453
	rm -f $root/platform/i86pc/kernel/drv/amd64/bscbus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5454
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5455
	# Remove obsolete atomic_prim.h file.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5456
	rm -f $usr/include/v9/sys/atomic_prim.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5457
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5458
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5459
	# Remove sc_nct binary and the corresponding symlink to sc_nct from the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5460
	# Montecarlo platform specific directories (Reference: PSARC 2003/606). 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5461
	# To be specific, the following binary will be removed.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5462
	# /platform/SUNW,UltraSPARC-IIe-NetraCT-40/kernel/drv/sparcv9/sc_nct 
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5463
	# Also, the following symlink will be removed.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5464
	# /platform/SUNW,UltraSPARC-IIe-NetraCT-60/kernel/drv/sparcv9/sc_nct
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5465
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5466
	if [ -f $root/platform/SUNW,UltraSPARC-IIe-NetraCT-40/kernel/drv/sparcv9/sc_nct ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5467
		rm -f $root/platform/SUNW,UltraSPARC-IIe-NetraCT-40/kernel/drv/sparcv9/sc_nct
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5468
		rm -f $root/platform/SUNW,UltraSPARC-IIe-NetraCT-60/kernel/drv/sparcv9/sc_nct
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5469
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5471
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5472
	# In case of bfu to an older release, remove traces of "new"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5473
	# Kerberos mechanisms.  Kerberos libraries and paths are corrected
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5474
	# after extraction is complete.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5475
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5476
	rm -f $root/kernel/misc/kgss/kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5477
	rm -f $root/kernel/misc/kgss/sparcv9/kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5478
	rm -f $root/platform/$karch/kernel/misc/kgss/sparcv9/kmech_krb5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5479
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5480
	# Diskless clients have already extracted /usr so don't delete these
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5481
	# Non-global zones never extracts /usr so don't delete these
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5482
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5483
	if [ $diskless = no -a $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5484
		rm -f $usr/lib/gss/mech_krb5.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5485
		rm -f $usr/lib/gss/mech_krb5.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5486
		rm -f $usr/lib/sparcv9/gss/mech_krb5.so
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5487
		rm -f $usr/lib/sparcv9/gss/mech_krb5.so.1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5488
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5489
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5490
	# Remove old OpenSSL stuff from SUNWwbint
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5491
	rm -rf $usr/include/openssl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5492
	rm -rf $usr/lib/openssl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5493
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5494
	#Remove ufs logging module - now merged into ufs module
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5495
	rm -f $rootprefix/kernel/misc/ufs_log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5496
	rm -f $rootprefix/kernel/misc/sparcv9/ufs_log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5497
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5498
	#Remove diskmgtd. If backward BFU, will get re-installed from
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5499
	#archive.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5500
	rm -f $usr/lib/diskmgtd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5501
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5502
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5503
	# Remove old ia64 cruft
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5504
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5505
	if [ $target_isa = i386 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5506
		rm -f $usr/include/sys/ia64_archext.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5507
		rm -f $usr/include/sys/sysia64.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5508
		rm -rf $usr/include/ia64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5509
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5510
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5511
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5512
	# Remove machpage-related stuff
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5513
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5514
	rm -f $usr/platform/*/include/vm/mach_page.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5515
	rm -f $usr/lib/adb/machpp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5516
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5517
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5518
	# Remove old cacheos
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5519
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5520
	rm -f $root/etc/init.d/cacheos
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5521
	rm -f $root/etc/init.d/cacheos.finish
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5522
	rm -f $root/etc/init.d/cachefs.root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5523
	rm -f $root/etc/rcS.d/S35cacheos.sh
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5524
	rm -f $root/etc/rc2.d/S93cacheos.finish
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5525
	rm -f $root/etc/rcS.d/S41cachefs.root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5526
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5527
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5528
	# Remove unneeded nfsmapid entries
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5529
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5530
	nfsmapid_cfg
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5531
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5532
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5533
	# Move the original manifests aside; later we will restore
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5534
	# unchanged originals to avoid superfluous re-import on reboot.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5535
	# (First blow away the old dir path just to be safe.)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5536
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5537
	rm -rf $root/$old_mfst_dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5538
	[ -d $root/$new_mfst_dir ] && mv $root/$new_mfst_dir $root/$old_mfst_dir
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5539
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5540
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5541
	# Remove obsolete sum.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5542
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5543
	rm -f $usr/include/sum.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5544
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5545
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5546
	# Remove obsolete std.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5547
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5548
	rm -f $usr/include/std.h
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5549
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5550
	#
132
e3f7eaf7dde4 PSARC/2005/362 Removal of <rpc/trace.h>
robinson
parents: 78
diff changeset
  5551
	# Remove obsolete rpc/trace.h
e3f7eaf7dde4 PSARC/2005/362 Removal of <rpc/trace.h>
robinson
parents: 78
diff changeset
  5552
	#
e3f7eaf7dde4 PSARC/2005/362 Removal of <rpc/trace.h>
robinson
parents: 78
diff changeset
  5553
	rm -f $usr/include/rpc/trace.h
e3f7eaf7dde4 PSARC/2005/362 Removal of <rpc/trace.h>
robinson
parents: 78
diff changeset
  5554
e3f7eaf7dde4 PSARC/2005/362 Removal of <rpc/trace.h>
robinson
parents: 78
diff changeset
  5555
	#
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5556
	# Remove acpi_intp module
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5557
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5558
	if [ $target_isa = i386 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5559
		rm -f $root/kernel/misc/acpi_intp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5560
		rm -f $root/kernel/misc/amd64/acpi_intp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5561
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5562
461
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5563
	#
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5564
	# Remove obsolete librac
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5565
	#
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5566
	rm -f $usr/include/rpc/rac.h
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5567
	rm -f $usr/lib/llib-lrac
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5568
	rm -f $usr/lib/llib-lrac.ln
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5569
	rm -f $usr/lib/amd64/llib-lrac.ln
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5570
	rm -f $usr/lib/sparcv9/llib-lrac.ln
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5571
	rm -f $usr/lib/librac.so
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5572
	rm -f $usr/lib/librac.so.1
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5573
	rm -f $usr/lib/amd64/librac.so
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5574
	rm -f $usr/lib/amd64/librac.so.1
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5575
	rm -f $usr/lib/sparcv9/librac.so
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5576
	rm -f $usr/lib/sparcv9/librac.so.1
7f48ccb9d9a6 PSARC/2005/378 Obsolete and/or removal of disparaged librac
robinson
parents: 305
diff changeset
  5577
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5578
	# End of pre-archive extraction hacks.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5579
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5580
	if [ $diskless = no -a $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5581
		print "Extracting ufs modules for boot block ... \c" | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5582
			tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5583
		do_extraction $cpiodir/$karch.usr$ZFIX \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5584
			'usr/platform/'$karch'/lib/fs/ufs/*' | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5585
			tee -a $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5586
		case $target_isa in
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5587
		    sparc)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5588
			if [[ "$rootslice" = /dev/rdsk/* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5589
				print "Installing boot block on $rootslice."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5590
				cd $usr/platform/$karch/lib/fs/ufs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5591
				installboot ./bootblk $rootslice
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5592
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5593
			;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5594
		    i386)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5595
			;;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5596
		    *)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5597
			;;	# unknown ISA
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5598
		esac
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5599
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5600
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5601
	if [ $diskless = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5602
		node=${root##*/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5603
		archlist=""
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5604
		for arch in $allarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5605
		do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5606
			egrep -s '/export/exec/.*'$arch'/usr/kvm' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5607
				$root/etc/vfstab ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5608
				test -d $root/platform/$arch &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5609
				archlist="$archlist $arch"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5610
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5611
		if [ -z "$old_style_archives" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5612
			extract_archives lib generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5613
			extract_archives sbin generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5614
			extract_archives kernel generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5615
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5616
		extract_archives root generic $archlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5617
		if [ $target_isa = i386 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5618
			extract_boot_archives boot $archlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5619
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5620
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5621
		export PATH=/tmp/bfubin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5622
		node=`uname -n`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5623
		if [ $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5624
			extract_archives usr generic $usrarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5625
			if [ -z "$old_style_archives" ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5626
				extract_archives lib generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5627
				extract_archives sbin generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5628
				extract_archives kernel generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5629
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5630
			extract_archives root generic $rootarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5631
			if [ $target_isa = i386 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5632
		        	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5633
		        	#  The assumption here is that if boot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5634
				#  archives exist at all, they only exist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5635
				#  for architectures where we also have
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5636
				#  .root archives.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5637
				#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5638
				extract_boot_archives boot $rootarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5639
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5640
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5641
			extract_archives root generic
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5642
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5643
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5644
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5645
	touch reconfigure
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5646
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5647
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5648
	# UltraSparc III platforms have aes module in platform directory
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5649
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5650
	if [ ! -f $root/platform/$plat/kernel/crypto/sparcv9/aes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5651
		rm -f $root/platform/sun4u-us3/kernel/crypto/sparcv9/aes
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5652
		rm -f $root/platform/sun4u-us3/kernel/crypto/sparcv9/aes256
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5653
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5654
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5655
	if [ $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5656
		print "\nRemoving duplicate kernel binaries ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5657
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5658
		# First, find all regular files underneath the */kernel
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5659
		# directories we extracted, and mark them as older or newer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5660
		# than our reference file -- if newer, they were extracted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5661
		# during the bfu.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5662
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5663
		# We then split out the pre-/kernel part from the post-/kernel
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5664
		# part, sort by post-/kernel part and age (new first), and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5665
		# delete old files which have new counterparts.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5666
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5667
		dirs="$rootprefix/kernel $usr/kernel"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5668
		for plat in $archlist $rootarchs $usrarchs; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5669
			dir=$rootprefix/platform/$plat/kernel
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5670
			[[ -d $dir ]] && dirs="$dirs $dir"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5671
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5672
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5673
		age=new
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5674
		ls -ct $time_ref `find $dirs -type f 2>/dev/null` | uniq |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5675
		    while read f; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5676
			if [[ $f = $time_ref ]] then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5677
				age=old
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5678
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5679
				echo $age $f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5680
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5681
		done |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5682
		    sed 's@\(.*/kernel\)/@\1 @' | sort -k 3 -k 1 | nawk '
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5683
			/^new/ { lastname = $3 }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5684
			/^old/ { if (lastname == $3) { print $2 "/" $3 } }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5685
		    ' | while read x; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5686
			echo rm $x
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5687
			rm $x
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5688
		done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5689
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5690
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5691
	echo
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5692
	# Simulate installation of SUNWcry* - these are in the bfu archives.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5693
	if [ -f $rootprefix/etc/crypto/kcf.conf -a \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5694
	    -f $rootprefix/etc/crypto/pkcs11.conf ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5695
		enable_crypto_unlimited
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5696
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5697
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5698
	# Add uCF's metaslot feature
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5699
	if [ -f $rootprefix/etc/crypto/pkcs11.conf ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5700
		enable_crypto_metaslot
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5701
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5702
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5703
	# Cleanup old Kerberos mechanisms
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5704
	cleanup_kerberos_mechanisms
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5705
305
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  5706
	# Fix network datalink configuration
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  5707
	if [ $zone = global -a $need_datalink = yes ]; then
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  5708
		create_datalink_conf
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  5709
	fi
6a86e61ccb15 6304883 6253542 broke bfu
ericheng
parents: 269
diff changeset
  5710
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5711
	print "\nRestoring configuration files.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5712
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5713
	cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5714
	rm -rf bfu.ancestor
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5715
	test -d bfu.parent && mv bfu.parent bfu.ancestor
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5716
	mkdir bfu.parent
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5717
	print "Restoring configuration files ... \c" >> $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5718
	filelist $zone | cpio -pdmu bfu.parent 2>>$EXTRACT_LOG || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5719
	    extraction_error "restoring configuration files"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5720
	if [ $multiboot_archives = no ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5721
		if [ $have_realmode = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5722
			if [ -d bfu.realmode ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5723
				( cd bfu.realmode ; realmode_filelist | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5724
				    cpio -pdmu ../bfu.ancestor 2>/dev/null )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5725
				rm -rf bfu.realmode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5726
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5727
			mkdir bfu.realmode
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5728
			( cd bfu.parent ; realmode_filelist | \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5729
				cpio -pdmu ../bfu.realmode 2>/dev/null )
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5730
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5731
			for file in $realmode_files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5732
			do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5733
				rm -rf bfu.parent/$file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5734
			done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5735
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5736
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5737
	if [ $zone != global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5738
		rm -rf $global_zone_only_files $superfluous_local_zone_files
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5739
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5740
	cd bfu.child
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5741
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5742
	for file in `filelist $zone`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5743
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5744
		# parent: freshly-BFUed version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5745
		# child: pre-BFU version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5746
		# ancestor: installed from archives the last time you BFUed
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5747
		# actual: in the root filesystem at this moment (same as parent)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5748
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5749
		parent=$rootprefix/bfu.parent/$file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5750
		child=$rootprefix/bfu.child/$file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5751
		ancestor=$rootprefix/bfu.ancestor/$file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5752
		conflicts=$rootprefix/bfu.conflicts/$file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5753
		actual=$rootprefix/$file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5754
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5755
		# if a superfluous-to-local-zones file was blown away, skip it
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5756
		[ -f $actual ] || continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5757
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5758
		# if there's been no change by the BFU, skip it
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5759
		cmp -s $child $actual && continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5760
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5761
		# if the file was not installed by the BFU, skip it
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5762
		[  -f $parent ] || continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5763
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5764
		# if this is a file which should never be updated by BFU,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5765
		# preserve the original (child) version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5766
		if (echo $preserve_files | grep $file >/dev/null 2>&1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5767
		then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5768
			print "    preserve: $file"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5769
			cp -p $child $actual
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5770
			continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5771
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5772
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5773
		# if the file was accepted from the parent on the last BFU,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5774
		# then accept it again this time without argument.  Or, if
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5775
		# this is the first bfu after an standard Solaris install
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5776
		# or upgrade, compare the file to one installed from packages.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5777
		# If it hasn't been modified since installation, accept
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5778
		# the file from the parent.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5779
		if [ -f $ancestor ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5780
			if cmp -s $child $ancestor; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5781
				print "      update: $file"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5782
				continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5783
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5784
		elif [ "$firstbfu" = "yes" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5785
			installedsum=$(grep "^/$file " \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5786
			    $rootprefix/var/sadm/install/contents |
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5787
			    awk '{ print $8 }')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5788
			if [ -n "$installedsum" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5789
				actualsum=`sum $child | sed 's/ .*//'`
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5790
				if [ "$installedsum" -eq "$actualsum" ] ; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5791
					print "      update: $file"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5792
					continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5793
				fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5794
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5795
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5796
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5797
		# if the BFU'ed file is the same as the beginning of the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5798
		# pre-BFUed file, assume the user has added lines to the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5799
		# end, and restore the pre-BFUed version
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5800
		if (cmp $child $parent 2>&1) | egrep -s 'EOF on '$parent; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5801
			print "     restore: $file"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5802
			cp -p $child $actual
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5803
			continue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5804
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5805
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5806
		# if the new version is the same as it was the last time
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5807
		# BFU was run, but still different than the pre-BFU version,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5808
		# this is an "old" conflict; otherwise, it's a "NEW"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5809
		# conflict.  Old conflicts can usually be safely ignored.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5810
		if cmp -s $parent $ancestor; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5811
			print "old \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5812
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5813
			print "NEW \c"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5814
			print $file >>$rootprefix/bfu.conflicts/NEW
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5815
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5816
		print "conflict: $file"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5817
		(cd $root; print $file | cpio -pdmu bfu.conflicts 2>/dev/null)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5818
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5819
		# for all conflicts, restore the pre-BFU version and let
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5820
		# the user decide what to do.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5821
		cp -p $child $actual
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5822
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5823
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5824
	if [ $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5825
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5826
		# correct permissions using /etc/minor_perm from the parent and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5827
		# child, prefer parent.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5828
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5829
		mperm=$rootprefix/etc/minor_perm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5830
		pmperm=$rootprefix/bfu.parent/etc/minor_perm
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5831
		if [ -f $pmperm ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5832
		then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5833
			mperm="$pmperm $mperm"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5834
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5835
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5836
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5837
		# Devices with changed permissions should be added here much
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5838
		# like in i.minorperm.  The "ssm" devices are special in that
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5839
		# they have no /dev links associated with them.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5840
		#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5841
		while read minor dev
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5842
		do (
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5843
			set -- `fgrep -h "$minor" $mperm` "";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5844
			if [ ! -z "$2" ]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5845
			then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5846
				chmod $2 $rootprefix/dev/$dev 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5847
				chown $3:$4 $rootprefix/dev/$dev 2>/dev/null
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5848
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5849
		) done <<-EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5850
			ssm:*			../devices/ssm*:*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5851
			cpc:shared		../devices/pseudo/cpc*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5852
			icmp:icmp		icmp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5853
			icmp6:icmp6		icmp6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5854
			ip:ip			ip
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5855
			ip6:ip6			ip6
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5856
			rts:rts			rts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5857
			keysock:keysock		keysock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5858
			ipsecah:ipsecah		ipsecah
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5859
			ipsecesp:ipsecesp	ipsecesp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5860
			spdsock:spdsock		spdsock
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5861
			sad:admin		sad/admin
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5862
			fssnap:ctl		fssnapctl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5863
			fssnap:*		fssnap/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5864
			clone:ce		ce
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5865
			clone:eri		eri
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5866
			clone:ge		ge
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5867
			clone:hme		hme
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5868
			clone:le		le
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5869
			clone:qfe		qfe
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5870
			clone:bge		bge
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5871
			bge:*			bge*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5872
			clone:dmfe		dmfe
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5873
			dmfe:*			dmfe*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5874
			clone:pcelx		pcelx
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5875
			pcelx:*			pcelx*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5876
			clone:dnet		dnet
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5877
			dnet:*			dnet*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5878
			clone:elxl		elxl
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5879
			elxl:*			elxl*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5880
			clone:iprb		iprb
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5881
			iprb:*			iprb*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5882
			clone:spwr		spwr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5883
			spwr:*			spwr*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5884
		EOF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5885
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5886
		if [ $target_isa = i386 ] && [[ $rootslice = /dev/rdsk/* || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5887
		    $rootslice = /dev/md/rdsk/* ]]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5888
			if [ $multiboot_archives = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5889
				if [ $dca_to_multi = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5890
					install_failsafe
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5891
					setup_grub_menu
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5892
					install_grub
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5893
				fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5894
				build_boot_archive
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5895
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5896
				disable_boot_service
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5897
			fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5898
		fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5899
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5900
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5901
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5902
	print "\nFor each file in conflict, your version has been restored."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5903
	print "The new versions are under $rootprefix/bfu.conflicts."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5904
	print "\nMAKE SURE YOU RESOLVE ALL CONFLICTS BEFORE REBOOTING.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5905
	if [ $multiboot_archives = yes ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5906
		print "To install resolved changes required for reboot in the boot"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5907
		print "archive, invoke 'bootadm update-archive${cr_args}'\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5908
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5909
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5910
	if [ $zone != global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5911
		print "Resolve conflicts in the global zone first.  Many of"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5912
		print "the conflicts in non-global zones can be resolved by"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5913
		print "copying the corresponding file from the global zone.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5914
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5915
		fixup_mpxio
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5916
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5917
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5918
	cd $root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5919
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5920
	smf_apply_conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5921
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5922
	update_policy_conf
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5923
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5924
	print "bfu'ed from $cpiodir on `date +%Y-%m-%d`" >>etc/motd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5925
	tail +`nawk '/bfu.ed from/ { x=NR }; END { print x+1 }' \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5926
		etc/motd.old` etc/motd.old >> etc/motd
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5927
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5928
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5929
	# Hacks to work around minor annoyances and make life more pleasant.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5930
	# Part 2 of 2: post-archive-extraction stuff
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5931
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5932
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5933
	rm -f var/statmon/state		# to prevent lockd/statd hangs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5934
	for f in etc/auto_*		# to make autofs happy
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5935
	do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5936
		file $f | grep executable >/dev/null || chmod -x $f
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5937
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5938
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5939
	epilogue=$rootprefix/bfu.epilogue
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5940
	if [ -f $epilogue ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5941
		print "Executing $epilogue"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5942
		$epilogue || print "WARNING: $epilogue failed with code $?"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5943
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5944
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5945
	((seconds = SECONDS))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5946
	((min = seconds / 60))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5947
	((sec = seconds % 60))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5948
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5949
	if [ $zone = global ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5950
		target=$node
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5951
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5952
		target=$zone
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5953
	fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5954
	printf "Upgrade of $target took ${min}:%02d.\n" $sec
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5955
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5956
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5957
	# Do logging in the background so that if the automounter is gone,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5958
	# bfu doesn't wedge at this point.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5959
	#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5960
	log=$GATE/public/bfu.log
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5961
	(test -w $log && printf \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5962
		"`date +%Y'%'m%d` $node `uname -rv` $karch $cpiodir ${min}:%02d\n" \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5963
		$sec >>$log) &
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5964
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5965
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5966
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5967
# make sure the time reference is older than anything extracted
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5968
#
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5969
test $time_ref_seconds -eq $SECONDS && sleep 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5970
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5971
test $diskless = yes && extract_archives usr generic $allarchs
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5972
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5973
for root in $rootlist
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5974
do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5975
	mondo_loop $root global
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5976
	lastroot=$root
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5977
done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5978
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5979
if [ -s $local_zone_info_file ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5980
	cat $local_zone_info_file | while read zone zonepath; do
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5981
		print "\nNow for zone $zone..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5982
		mondo_loop $zonepath/root $zone
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5983
	done
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5984
	rm -f $local_zone_info_file
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5985
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5986
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5987
print "Turning off delayed i/o and syncing filesystems ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5988
sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5989
fastfs -s $rootlist $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5990
fastfs $rootlist $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5991
sync
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5992
lockfs -f $rootlist $usr
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5993
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5994
egrep -s "^error " $EXTRACT_LOG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5995
if [ $? -eq 0 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5996
	print "\nWARNING: archive extraction errors occurred.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5997
	print "See $EXTRACT_LOG for details.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5998
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  5999
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6000
lastrootprefix=${lastroot%/}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6001
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6002
if [ -t 0 -a -t 1 -a -t 2 ]; then
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6003
	print "\nEntering post-bfu protected environment (shell: ksh)."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6004
	print "Edit configuration files as necessary, then reboot.\n"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6005
	cd $lastrootprefix/bfu.conflicts
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6006
	PS1='bfu# ' ksh -ip
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6007
fi
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6008
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6009
print "Exiting post-bfu protected environment.  To reenter, type:"
598
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  6010
print LD_NOAUXFLTR=1 LD_LIBRARY_PATH=/tmp/bfulib $ldlib64 PATH=/tmp/bfubin \
62a3fdbde968 6327152 bfuing over the fix for 6324631 can cause BFU/acr failures
jwadams
parents: 461
diff changeset
  6011
    /tmp/bfubin/ksh
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6012
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6013
# Allow init(1M) to continue, if we're leaving.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6014
print "Reactivating init ..."
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6015
prun 1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6016
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  6017
exit 0