src/brand/pkgcreatezone
author Shawn Walker <shawn.walker@oracle.com>
Wed, 17 Nov 2010 17:08:42 -0800
changeset 2148 5625d3707d5b
parent 2123 33e0355a44f1
child 2150 1f1a0297186a
permissions -rwxr-xr-x
17424 zone cache usage needs adjustment for new image format
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     1
#!/bin/ksh -p
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     2
#
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     3
# CDDL HEADER START
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     4
#
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     8
#
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    12
# and limitations under the License.
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    13
#
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    19
#
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    20
# CDDL HEADER END
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    21
#
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
    22
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    23
#
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
    24
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    25
#
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    26
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    27
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    28
# Resetting GZ_IMAGE to something besides slash allows for simplified
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    29
# debugging of various global zone image configurations-- simply make
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    30
# an image somewhere with the appropriate interesting parameters.
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    31
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    32
GZ_IMAGE=${GZ_IMAGE:-/}
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    33
PKG_IMAGE=$GZ_IMAGE
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    34
export PKG_IMAGE
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    35
547
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
    36
. /usr/lib/brand/ipkg/common.ksh
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    37
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    38
f_a_obs=$(gettext "-a publisher=uri option is obsolete, use -P instead.")
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    39
f_pkg5_missing=$(gettext "pkg(5) does not seem to be present on this system.\n")
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    40
f_no_pref_publisher=$(gettext "Unable to get global zone preferred publisher information, and none was supplied.\nYou must specify one using the -P option.")
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    41
f_key_file=$(gettext "Key file not allowed without -P")
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    42
f_cert_file=$(gettext "Cert file not allowed without -P")
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    43
f_img=$(gettext "failed to create image\n")
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    44
f_pkg=$(gettext "failed to install package\n")
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    45
f_interrupted=$(gettext "Installation cancelled due to interrupt.\n")
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    46
f_bad_publisher=$(gettext "Syntax error in publisher information.")
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    47
f_no_entire_in_pref=$(gettext "Unable to locate the incorporation '%s' in the preferred publisher '%s'.\nUse -P to supply a publisher which contains this package.\n")
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    48
f_key_prop=$(gettext "Unable to propagate key %s to %s")
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    49
f_cert_prop=$(gettext "Unable to propagate cert %s to %s")
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    50
f_get_secinfo=$(gettext "Failed to get key/cert information for publisher %s")
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    51
f_nosuch_key=$(gettext "Failed to find key %s")
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    52
f_nosuch_cert=$(gettext "Failed to find cert %s")
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    53
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    54
m_publisher=$(gettext   "   Publisher: Using %s (%s).")
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    55
m_cache=$(gettext       "       Cache: Using %s.")
1091
fc73bc2d78ce 7490 ipkg brand attach needs similar logic to pkgcreatezone for 'entire' incorporation
Dan Price <dp@eng.sun.com>
parents: 954
diff changeset
    56
m_image=$(gettext       "       Image: Preparing at %s.")
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    57
m_incorp=$(gettext      "Sanity Check: Looking for 'entire' incorporation.\n")
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    58
m_key_prop=$(gettext    " Credentials: Propagating %s\n")
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    59
m_cert_prop=$(gettext   " Credentials: Propagating %s\n")
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
    60
m_core=$(gettext	"  Installing: Core System (output follows)\n")
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
    61
m_more=$(gettext	"  Installing: Additional Packages (output follows)\n")
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
    62
m_smf=$(gettext		" Postinstall: Copying SMF seed repository ...")
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    63
m_more_brokenness=$(gettext " Postinstall: Applying workarounds.")
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    64
m_mannote=$(gettext     "        Note: Man pages can be obtained by installing SUNWman")
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    65
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    66
m_usage=$(gettext "\n        install [-h]\n        install [-c certificate_file] [-k key_file] [-P publisher=uri]\n                [-e extrapkg [...]]\n        install {-a archive|-d path} {-p|-u} [-s|-v]")
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    67
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    68
m_done=$(gettext      " done.")
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    69
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    70
trap_cleanup() {
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    71
	print "$f_interrupted"
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    72
	exit $int_code
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    73
}
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    74
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    75
int_code=$ZONE_SUBPROC_NOTCOMPLETE
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    76
trap trap_cleanup INT
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
    77
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    78
extra_packages=""
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    79
ZONENAME=""
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    80
ZONEPATH=""
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
    81
pub_and_origins=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
    82
pub_and_mirrors=""
329
f549eab0d7b7 735 install -n uninformative
Dan Price <dp@eng.sun.com>
parents: 280
diff changeset
    83
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    84
# Setup i18n output
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    85
TEXTDOMAIN="SUNW_OST_OSCMD"
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    86
export TEXTDOMAIN
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    87
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    88
KEYDIR=/var/pkg/ssl
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    89
PKG=/usr/bin/pkg
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    90
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    91
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    92
# Just in case.  This should probably be removed later.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    93
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
    94
[[ ! -x $PKG ]] && fail_incomplete "$f_pkg5_missing"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
    95
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    96
certfile="None"
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
    97
keyfile="None"
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    98
unset install_archive
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
    99
unset source_dir
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   100
unset msg
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   101
unset silent_mode
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   102
unset verbose_mode
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   103
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   104
while getopts "a:c:d:e:hk:P:pR:suvz:" opt; do
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   105
	case $opt in
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   106
		a)	# We're expecting a path to an archive
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   107
			if [[ ! -f $OPTARG ]]; then
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   108
				# If old style 'pub=uri' parameter then error.
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   109
				echo $OPTARG | egrep -s =
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   110
				if (( $? == 0 )); then
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   111
					fail_usage "$f_a_obs"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   112
				fi
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   113
			fi
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   114
			install_archive="-a $OPTARG";;
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   115
		c)	certfile="$OPTARG" ;;
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   116
		d)	source_dir="-d $OPTARG";;
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   117
		e)	extra_packages="$extra_packages $OPTARG" ;;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   118
		h)	fail_usage "";;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   119
		k)	keyfile="$OPTARG" ;;
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   120
		P)	pub_and_origins="$OPTARG" ;;
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   121
		p)	preserve_zone="-p";;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   122
		R)	ZONEPATH="$OPTARG" ;;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   123
		s)	silent_mode=1;;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   124
		u)	unconfig_zone="-u";;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   125
		v)	verbose_mode="-v";;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   126
		z)	ZONENAME="$OPTARG" ;;
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   127
		*)	fail_usage "";;
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   128
	esac
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   129
done
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   130
shift $((OPTIND-1))
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   131
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   132
if [[ -z $ZONEPATH || -z $ZONENAME ]]; then
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   133
	print -u2 "Brand error: No zone path or name"
97
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   134
	exit $ZONE_SUBPROC_USAGE
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   135
fi
9a488b15900f Introduce a branded zone as a testing aid
Danek Duvall <danek.duvall@sun.com>
parents:
diff changeset
   136
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   137
# XXX shared/common script currently uses lower case zonename & zonepath
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   138
zonename="$ZONENAME"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   139
zonepath="$ZONEPATH"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   140
1275
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   141
is_brand_labeled
1493
625950c12e71 3979 zone fs only available from Global zone, when zone is booted
<gerald.jelinek@sun.com>
parents: 1483
diff changeset
   142
brand_labeled=$?
1108
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   143
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   144
ZONEROOT=$ZONEPATH/root
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   145
secinfo=""
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   146
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   147
# An image install can't use both -a AND -d...
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   148
[[ -n "$install_archive" && -n "$source_dir" ]] &&
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   149
    fail_usage "$f_incompat_options" "-a" "-d"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   150
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   151
# The install can't be both verbose AND silent...
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   152
[[ -n $silent_mode && -n $verbose_mode ]] && \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   153
    fail_usage "$f_incompat_options" "-s" "-v"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   154
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   155
# The install can't both preserve and unconfigure
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   156
[[ -n $unconfig_zone && -n $preserve_zone ]] && \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   157
    fail_usage "$f_incompat_options" "-u" "-p"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   158
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   159
# IPS options aren't allowed when installing from a system image.
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   160
if [[ -n "$install_archive" || -n "$source_dir" ]]; then
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   161
	[[ -n $pub_and_origins ]] && fail_usage "$f_incompat_options" \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   162
	    "-a|-d" "-P"
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   163
	[[ -n "$extra_packages" ]] && \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   164
	    fail_usage "$f_incompat_options" "-a|-d" "-e"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   165
	[[ "$certfile" != "None" ]] && \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   166
	    fail_usage "$f_incompat_options" "-a|-d" "-c"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   167
	[[ "$keyfile" != "None" ]] && \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   168
	    fail_usage "$f_incompat_options" "-a|-d" "-k"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   169
fi
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   170
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   171
# p2v options aren't allowed when installing from a repo.
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   172
if [[ -z $install_archive && -z $source_dir ]]; then
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   173
	[[ -n $preserve_zone || -n $unconfig_zone ]] && \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   174
		fail_usage "$f_incompat_options" "default" "-p|-u"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   175
fi
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   176
547
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
   177
#
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   178
# If the user didn't give us a publisher, and there's a preferred publisher set
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   179
# for the system, set that as the default.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   180
#
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   181
propagate_secinfo=
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   182
propagate_extra=
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   183
if [[ -z $pub_and_origins ]]; then
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   184
	if [[ $keyfile != "None" ]]; then
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   185
		fail_usage "$f_key_file"
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   186
	fi
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   187
	if [[ $certfile != "None" ]]; then
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   188
		fail_usage "$f_cert_file"
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   189
	fi
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   190
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   191
	# Look for a preferred online origin.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   192
	tpub_and_origins=$(get_publisher_urls preferred origin)
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   193
	[[ $? -eq 0 && -n $tpub_and_origins ]] && \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   194
	    pub_and_origins="$tpub_and_origins"
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   195
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   196
	# Get preferred mirror information as well if the above succeeded.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   197
	if [[ -n "$tpub_and_origins" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   198
		tpub_and_mirrors=$(get_publisher_urls preferred mirror)
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   199
		[[ $? -eq 0 && -n $tpub_and_mirrors ]] && \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   200
		    pub_and_mirrors="$tpub_and_mirrors"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   201
	fi
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   202
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   203
	# Note that later we need to propagate key & cert.
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   204
	propagate_secinfo=1
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   205
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   206
	#
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   207
	# since the user didn't specify a publisher, propagate all the
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   208
	# publishers that don't have a key.
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   209
	#
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   210
	propagate_extra=1
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   211
fi
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   212
[[ -z $pub_and_origins ]] && fail_usage "$f_no_pref_publisher"
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   213
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   214
# find the remaining publishers in the global zone
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   215
publishers_extra_origins=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   216
publishers_extra_mirrors=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   217
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   218
if [[ -n $propagate_extra ]]; then
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   219
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   220
	# If cert and key information are ever allowed at the origin or
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   221
	# mirror level, then this will have to be changed.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   222
	get_publisher_urls non-preferred origin | \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   223
	    while IFS="=" read pub pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   224
		# skip extra publishers that need a key/cert
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   225
		[[ "`get_pub_secinfo $pub`" != "None None" ]] && \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   226
		    continue
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   227
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   228
		if [[ -z "$publishers_extra_origins" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   229
			publishers_extra_origins="$pub=$pub_urls"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   230
		else
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   231
			publishers_extra_origins=`printf "%s\n%s" \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   232
			    "$pub=$pub_urls" \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   233
			    "$publishers_extra_origins"`
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   234
		fi
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   235
	done
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   236
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   237
	get_publisher_urls non-preferred mirror | \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   238
	    while IFS="=" read pub pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   239
		# skip extra publishers that need a key/cert
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   240
		[[ "`get_pub_secinfo $pub`" != "None None" ]] && \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   241
		    continue
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   242
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   243
		if [[ -z "$publishers_extra_mirrors" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   244
			publishers_extra_mirrors="$pub=$pub_urls"
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   245
		else
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   246
			publishers_extra_mirrors=`printf "%s\n%s" \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   247
			    "$pub=$pub_urls" \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   248
			    "$publishers_extra_mirrors"`
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   249
		fi
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   250
	done
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   251
fi
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   252
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   253
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   254
# Crack pub=url into two pieces.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   255
#
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   256
echo $pub_and_origins | IFS="=" read publisher pub_origins
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   257
if [[ -z $publisher || -z $pub_origins ]]; then
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   258
	fail_usage "$f_bad_publisher"
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   259
fi
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   260
echo $pub_and_mirrors | IFS="=" read ignored pub_mirrors
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   261
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   262
if [[ -n $propagate_secinfo ]]; then
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   263
	#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   264
	# Get the global zone's cert and key (if any) so that we can propagate
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   265
	# them into the new image.
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   266
	#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   267
	get_pub_secinfo $publisher | read keyfile certfile
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   268
	if [[ $? -ne 0 ]]; then
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   269
		fail_usage "$f_get_secinfo" $publisher
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   270
	fi
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   271
fi
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   272
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   273
# Do some sanity checks on key and cert.
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   274
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   275
[[ $keyfile != "None" && ! -f $keyfile ]] && \
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   276
    fail_usage "$f_nosuch_key" $keyfile
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   277
[[ $certfile != "None" && ! -f $certfile ]] && \
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   278
    fail_usage "$f_nosuch_cert" $certfile
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   279
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   280
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   281
# Look for the 'entire' incorporation's FMRI in the current image; due to users
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   282
# doing weird machinations with their publishers, we strip off the publisher
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   283
# from the FMRI if it is present.
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   284
# It's ok to not find entire in the current image, since this means the user
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   285
# can install pre-release development bits for testing purposes.
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   286
#
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   287
entire_fmri=$(get_entire_incorp)
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   288
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   289
#
547
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
   290
# Before installing the zone, set up ZFS dataset hierarchy for the zone root
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
   291
# dataset.
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
   292
#
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   293
create_active_ds
547
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
   294
579
d6ab4f57f07d 3657 SNAP related ipkg brand issues
<gerald.jelinek@sun.com>
parents: 554
diff changeset
   295
#
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   296
# If we're installing from an image, branch off to that installer.
579
d6ab4f57f07d 3657 SNAP related ipkg brand issues
<gerald.jelinek@sun.com>
parents: 554
diff changeset
   297
#
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   298
if [[ -n $install_archive || -n $source_dir ]]; then
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   299
	/usr/lib/brand/ipkg/image_install $ZONENAME $ZONEPATH \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   300
	    $install_archive $source_dir $verbose_mode $silent_mode \
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   301
	    $unconfig_zone $preserve_zone
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   302
	ii_result=$?
579
d6ab4f57f07d 3657 SNAP related ipkg brand issues
<gerald.jelinek@sun.com>
parents: 554
diff changeset
   303
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   304
	if (( $ii_result != 0 )); then
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   305
		exit $ZONE_SUBPROC_NOTCOMPLETE
943
e04a1ccbeac8 7304 dataset already exists warnings from zone install
<gerald.jelinek@sun.com>
parents: 579
diff changeset
   306
	fi
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   307
	exit $ZONE_SUBPROC_OK
943
e04a1ccbeac8 7304 dataset already exists warnings from zone install
<gerald.jelinek@sun.com>
parents: 579
diff changeset
   308
fi
547
9a267e76a197 3454 initial ipkg brand enhancements for SNAP support
<gerald.jelinek@sun.com>
parents: 528
diff changeset
   309
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   310
# Display preferred publisher origin and mirror information.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   311
printf "$m_publisher\n" $publisher "$pub_origins $pub_mirrors"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   312
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   313
# Display extra publisher origin and mirror information.  This does mean that
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   314
# the extras have to be displayed twice to show mirror information.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   315
if [[ -n "$publishers_extra_origins" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   316
	echo "$publishers_extra_origins" | while IFS="=" read pub pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   317
		printf "$m_publisher\n" $pub "$pub_urls"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   318
	done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   319
	if [[ -n "$publishers_extra_mirrors" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   320
		echo "$publishers_extra_mirrors" | while IFS="=" read pub pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   321
			printf "$m_publisher\n" $pub "$pub_urls"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   322
		done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   323
	fi
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   324
fi
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   325
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   326
printf "$m_image\n" $ZONEROOT
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   327
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   328
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   329
# We copy the credentials from the global zone into the new image
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   330
# we're about to create.
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   331
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   332
if [[ $keyfile != "None" ]]; then
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   333
	newkeylocation="$KEYDIR/$(basename $keyfile)"
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   334
	secinfo="$secinfo -k $newkeylocation"
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   335
	printf "$m_key_prop\n" $(basename $keyfile)
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   336
	mkdir -p -m 755 $ZONEROOT/$KEYDIR || fail_fatal "$f_key_prop"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   337
	cp $keyfile $ZONEROOT/$newkeylocation || fail_fatal "$f_key_prop"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   338
	chmod 644 $ZONEROOT/$newkeylocation
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   339
	chown -h root:root $ZONEROOT/$newkeylocation
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   340
fi
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   341
if [[ $certfile != "None" ]]; then
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   342
	newcertlocation="$KEYDIR/$(basename $certfile)"
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   343
	secinfo="$secinfo -c $newcertlocation"
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   344
	printf "$m_cert_prop\n" $(basename $certfile)
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   345
	mkdir -p -m 755 $ZONEROOT/$KEYDIR || fail_fatal "$f_cert_prop"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   346
	cp $certfile $ZONEROOT/$newcertlocation || fail_fatal "$f_cert_prop"
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   347
	chmod 644 $ZONEROOT/$newkeylocation
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   348
	chown -h root:root $ZONEROOT/$newkeylocation
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   349
fi
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   350
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   351
#
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   352
# Regrettably, since we already copied the key information into place,
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   353
# we must pass the -f (force) option to image-create, since it thinks that
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   354
# something must be wrong, as the image exists.
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   355
#
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   356
pub_first_origin=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   357
pub_add_origins=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   358
for origin in $pub_origins; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   359
	if [[ -z "$pub_first_origin" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   360
		# The first origin is semi-special in that the publisher
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   361
		# argument to image-create requires it to be specified
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   362
		# by itself and then any additional origins after that.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   363
		# Technically, image-create doesn't care if you specify
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   364
		# the first one again using -g, but there's no point in
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   365
		# doing so.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   366
		pub_first_origin=$origin
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   367
		continue
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   368
	fi
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   369
	pub_add_origins="${pub_add_origins}-g $origin "
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   370
done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   371
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   372
pub_add_mirrors=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   373
for mirror in $pub_mirrors; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   374
	pub_add_mirrors="${pub_add_mirrors}-m $mirror "
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   375
done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   376
1111
26c3e2407c53 8570 zone installer needs support for ssl certs & keys
Dan Price <dp@eng.sun.com>
parents: 1108
diff changeset
   377
#
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   378
# The image is created with --no-refresh so that all of the publisher
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   379
# configuration can be put into place first before attempting to retrieve
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   380
# and build catalog information.  This substantially reduces the amount of
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   381
# time needed to create a zone.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   382
#
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   383
LC_ALL=C $PKG image-create -f --no-refresh --zone --full \
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   384
    -p $publisher=$pub_first_origin $pub_add_origins $pub_add_mirrors $secinfo \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   385
    $ZONEROOT || fail_incomplete "$f_img"
438
69202d962ff6 2736 IPS branded zones should install the entire encorporation
Danek Duvall <danek.duvall@sun.com>
parents: 371
diff changeset
   386
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   387
# Retrieve publisher attributes and update our new publisher
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   388
attrs=$(get_publisher_attr_args $publisher "origin")
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   389
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   390
# Change the value of PKG_IMAGE so that future PKG operation will work
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   391
# on the newly created zone rather than the global zone
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   392
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   393
PKG_IMAGE="$ZONEROOT"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   394
export PKG_IMAGE
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   395
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   396
# --no-refresh is used here so that update operations can be
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   397
# coalesced.
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   398
# Update our new publisher
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   399
LC_ALL=C $PKG set-publisher --no-refresh $attrs $publisher \
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   400
    || fail_incomplete "$f_img"
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   401
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   402
# add extra publishers
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   403
# If cert and key information are ever allowed at the origin or
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   404
# mirror level, then this will have to be changed.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   405
if [[ -n "$publishers_extra_origins" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   406
	echo "$publishers_extra_origins" | while IFS="=" read pub pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   407
		pub_prefix=$pub
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   408
		pub_add_origins=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   409
		for origin in $pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   410
			pub_add_origins="${pub_add_origins}-g $origin "
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   411
		done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   412
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   413
		# Retrieve publisher attributes. Since we are retrieving
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   414
		# these attributes from the GLOBAL zone, we must reset
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   415
		# PKG_IMAGE temporarily
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   416
		SAVE_PKG_IMAGE=$PKG_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   417
		PKG_IMAGE=$GZ_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   418
		export PKG_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   419
		attrs=$(get_publisher_attr_args $pub_prefix "origin")
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   420
		# Now restore the save PKG_IMAGE value
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   421
		PKG_IMAGE=$SAVE_PKG_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   422
		export PKG_IMAGE
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   423
		# --no-refresh is used here so that update operations can be
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   424
		# coalesced.
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   425
		LC_ALL=C $PKG set-publisher --no-refresh $attrs \
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   426
                    ${pub_add_origins}${pub_prefix} || fail_incomplete "$f_img"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   427
	done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   428
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   429
	if [[ -n "$publishers_extra_mirrors" ]]; then
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   430
		echo "$publishers_extra_mirrors" | \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   431
		    while IFS="=" read pub pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   432
			pub_prefix=$pub
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   433
			pub_add_mirrors=""
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   434
			for mirror in $pub_urls; do
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   435
				pub_add_mirrors="${pub_add_mirrors}-m $mirror "
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   436
			done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   437
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   438
			# Retrieve publisher attributes. Since we are retrieving
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   439
			# these attributes from the GLOBAL zone, we must reset
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   440
			# PKG_IMAGE temporarily
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   441
			SAVE_PKG_IMAGE=$PKG_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   442
			PKG_IMAGE=$GZ_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   443
			export PKG_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   444
			attrs=$(get_publisher_attr_args $pub_prefix "mirror")
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   445
			PKG_IMAGE=$SAVE_PKG_IMAGE
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   446
			export PKG_IMAGE
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   447
			# --no-refresh is used here so that update operations
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   448
			# can be coalesced.
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   449
			LC_ALL=C $PKG set-publisher --no-refresh $attrs \
1504
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   450
			    ${pub_add_mirrors}${pub_prefix} || \
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   451
			    fail_incomplete "$f_img"
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   452
		done
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   453
	fi
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   454
fi
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   455
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   456
# Now that all of the publisher configurations are in place, attempt a refresh.
265a1d6b86bd 9969 client support for multiple origins desired
Shawn Walker <srw@sun.com>
parents: 1493
diff changeset
   457
# If this fails, assume the image is incomplete.
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   458
LC_ALL=C $PKG refresh || fail_incomplete "$f_img"
1466
bfdf13d64d47 11392 'zoneadm .. install' only uses preferred publisher
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1362
diff changeset
   459
2148
5625d3707d5b 17424 zone cache usage needs adjustment for new image format
Shawn Walker <shawn.walker@oracle.com>
parents: 2123
diff changeset
   460
if [[ -f /var/pkg/pkg5.image && -d /var/pkg/publisher ]]; then
5625d3707d5b 17424 zone cache usage needs adjustment for new image format
Shawn Walker <shawn.walker@oracle.com>
parents: 2123
diff changeset
   461
	PKG_CACHEROOT=/var/pkg/publisher
5625d3707d5b 17424 zone cache usage needs adjustment for new image format
Shawn Walker <shawn.walker@oracle.com>
parents: 2123
diff changeset
   462
	export PKG_CACHEROOT
5625d3707d5b 17424 zone cache usage needs adjustment for new image format
Shawn Walker <shawn.walker@oracle.com>
parents: 2123
diff changeset
   463
	printf "$m_cache\n" $PKG_CACHEROOT
554
fe196874250d 3508 zone install should utilize/populate global zone d/l cache
Dan Price <dp@eng.sun.com>
parents: 547
diff changeset
   464
fi
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   465
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   466
#
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   467
# If we found an "entire" incorporation in the current image, then
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   468
# check to see if the user's choice of preferred publisher contains the
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   469
# version of the 'entire' incorporation needed.  This helps us to prevent
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   470
# mishaps in the event the user selected some weirdo publisher as their
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   471
# preferred one, or passed a preferred pub on the command line which doesn't
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   472
# have a suitable 'entire' in it.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   473
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   474
# n.b. it would be nice to do this before we provision the zfs dataset, etc.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   475
# but since the publisher specified by the user might not be known to
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   476
# the system, we can't do this test without first configuring the image.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   477
#
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   478
if [[ -n $entire_fmri ]]; then
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   479
	printf "$m_incorp\n"
1879
7dc50f542f19 14684 zone attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1709
diff changeset
   480
	LC_ALL=C $PKG list -af pkg://$publisher/$entire_fmri > /dev/null 2>&1
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   481
	if [[ $? -ne 0 ]]; then
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   482
		fail_fatal "$f_no_entire_in_pref" $entire_fmri $publisher
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   483
	fi
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   484
fi
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   485
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   486
printf "$m_core\n"
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   487
#
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   488
# We have to take baby steps here: first, by installing entire (if
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   489
# it's present in the current image), to constrain everything.  Then,
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   490
# SUNWcsd, to lay down device files which are subsequently needed by
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   491
# driver actions.  Then SUNWcs to lay down /etc/passwd, /etc/group,
2123
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   492
# etc so that subsequent user and group actions work.  This can all
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   493
# hopefully go away once "primordial" actions arrive.
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   494
#
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   495
if [[ -n $entire_fmri ]]; then
2123
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   496
	LC_ALL=C $PKG install -q --accept --no-refresh --no-index \
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   497
	    $entire_fmri || pkg_err_check "$f_pkg"
1709
28592bd37c9d 12738 zone install/attach incorporation logic needs enhancement
Gary Pennington <gary.pennington@sun.com>
parents: 1615
diff changeset
   498
fi
2123
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   499
LC_ALL=C $PKG install --accept --no-refresh --no-index SUNWcsd || \
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   500
    pkg_err_check "$f_pkg"
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   501
LC_ALL=C $PKG install --accept --no-refresh --no-index SUNWcs || \
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   502
    pkg_err_check "$f_pkg"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   503
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   504
printf "$m_more\n"
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   505
pkglist=""
344
4c887185d780 528 pkg list -u gives confusing output
Dan Price <dp@eng.sun.com>
parents: 329
diff changeset
   506
pkglist="$pkglist SUNWcnetr SUNWesu SUNWadmr SUNWadmap SUNWbzip SUNWgzip"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   507
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   508
#
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   509
# Workaround: For now, SUNWipkg has no dependency on python, so we supply it.
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   510
#
1516
8c950a3b4171 10485 move pkg(5) to Python 2.6
Rich Burridge <rich.burridge@sun.com>
parents: 1504
diff changeset
   511
pkglist="$pkglist SUNWPython26 SUNWipkg"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   512
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   513
#
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   514
# Get some diagnostic tools, truss, dtrace, etc.
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   515
#
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   516
pkglist="$pkglist SUNWtoo SUNWdtrc SUNWrcmdc SUNWbip"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   517
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   518
#
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   519
# Get at least one sensible shell, and vi
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   520
#
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   521
pkglist="$pkglist SUNWbash SUNWvim"
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   522
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   523
#
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   524
# Get ssh and sshd.
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   525
#
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   526
pkglist="$pkglist SUNWsshcu SUNWssh SUNWsshd"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   527
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   528
#
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   529
# Get some name services.
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   530
#
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   531
pkglist="$pkglist SUNWnis SUNWlldap"
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   532
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   533
#
329
f549eab0d7b7 735 install -n uninformative
Dan Price <dp@eng.sun.com>
parents: 280
diff changeset
   534
# Get nfs client and autofs; it's a pain not to have them.
f549eab0d7b7 735 install -n uninformative
Dan Price <dp@eng.sun.com>
parents: 280
diff changeset
   535
#
344
4c887185d780 528 pkg list -u gives confusing output
Dan Price <dp@eng.sun.com>
parents: 329
diff changeset
   536
pkglist="$pkglist SUNWnfsc SUNWatfs"
329
f549eab0d7b7 735 install -n uninformative
Dan Price <dp@eng.sun.com>
parents: 280
diff changeset
   537
1108
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   538
#
1362
4485bac2b3d8 10410 exclusive stack zones can't find a default router
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1323
diff changeset
   539
# Get routing daemons.  They're required for useful exclusive stack zones.
4485bac2b3d8 10410 exclusive stack zones can't find a default router
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1323
diff changeset
   540
#
4485bac2b3d8 10410 exclusive stack zones can't find a default router
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1323
diff changeset
   541
pkglist="$pkglist SUNWroute"
4485bac2b3d8 10410 exclusive stack zones can't find a default router
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1323
diff changeset
   542
4485bac2b3d8 10410 exclusive stack zones can't find a default router
Edward Pilatowicz <Edward.Pilatowicz@Sun.COM>
parents: 1323
diff changeset
   543
#
1108
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   544
# Get packages for TX zones if appropriate.
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   545
#
1493
625950c12e71 3979 zone fs only available from Global zone, when zone is booted
<gerald.jelinek@sun.com>
parents: 1483
diff changeset
   546
(( $brand_labeled == 1 )) && pkglist="$pkglist system/trusted/trusted-nonglobal"
329
f549eab0d7b7 735 install -n uninformative
Dan Price <dp@eng.sun.com>
parents: 280
diff changeset
   547
f549eab0d7b7 735 install -n uninformative
Dan Price <dp@eng.sun.com>
parents: 280
diff changeset
   548
#
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   549
# Get man(1) but not the man pages
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   550
#
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   551
pkglist="$pkglist SUNWdoc"
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   552
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   553
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   554
# Add in any extra packages requested by the user.
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   555
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   556
pkglist="$pkglist $extra_packages"
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   557
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   558
#
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   559
# Do the install; we just refreshed on image-create, so skip that.  We
1091
fc73bc2d78ce 7490 ipkg brand attach needs similar logic to pkgcreatezone for 'entire' incorporation
Dan Price <dp@eng.sun.com>
parents: 954
diff changeset
   560
# also skip indexing here, as that is also what the LiveCD does.
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   561
#
2123
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   562
LC_ALL=C $PKG install --accept --no-index --no-refresh $pkglist || \
33e0355a44f1 17316 zones create and attach fail with must-accept license
Mark J. Nelson <Mark.J.Nelson@Oracle.COM>
parents: 1879
diff changeset
   563
    pkg_err_check "$f_pkg"
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   564
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   565
printf "\n$m_mannote\n"
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   566
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   567
printf "$m_smf"
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   568
ln -s ns_files.xml $ZONEROOT/var/svc/profile/name_service.xml
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   569
ln -s generic_limited_net.xml $ZONEROOT/var/svc/profile/generic.xml
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   570
ln -s inetd_generic.xml $ZONEROOT/var/svc/profile/inetd_services.xml
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   571
ln -s platform_none.xml $ZONEROOT/var/svc/profile/platform.xml
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   572
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   573
# This was formerly done in i.manifest
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   574
repfile=$ZONEROOT/etc/svc/repository.db
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   575
cp $ZONEROOT/lib/svc/seed/nonglobal.db $repfile
371
e4db4be79d2e 1756 IPS Zone creation includes shadow entry for jack
Dan Price <dp@eng.sun.com>
parents: 344
diff changeset
   576
chmod 0600 $repfile
e4db4be79d2e 1756 IPS Zone creation includes shadow entry for jack
Dan Price <dp@eng.sun.com>
parents: 344
diff changeset
   577
chown root:sys $repfile
e4db4be79d2e 1756 IPS Zone creation includes shadow entry for jack
Dan Price <dp@eng.sun.com>
parents: 344
diff changeset
   578
168
bbeeeaf343c0 16 Improve ipkg brand installer
Dan Price <dp@eng.sun.com>
parents: 111
diff changeset
   579
printf "$m_done\n"
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   580
528
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   581
# Clean up root as a role and jack if needed
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   582
if grep "^root::::type=role;" $ZONEROOT/etc/user_attr >/dev/null 2>&1; then
528
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   583
	printf "$m_brokenness\n"
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   584
	#
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   585
	# Remove "jack" user.
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   586
	#
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   587
	print "/^jack:/d\nw" | ed -s $ZONEROOT/etc/passwd
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   588
	chmod u+w $ZONEROOT/etc/shadow
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   589
	print "/^jack:/d\nw" | ed -s $ZONEROOT/etc/shadow
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   590
	chmod u-w $ZONEROOT/etc/shadow
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   591
528
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   592
	#
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   593
	# Set root from a role back to... not a role.  Grr.
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   594
	#
954
8614b0c63fb3 4771 zone operations fail with package inventory errors when authority changes
Dan Price <dp@eng.sun.com>
parents: 943
diff changeset
   595
	print "s/^root::::type=role;/root::::/\nw" |
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   596
	    ed -s $ZONEROOT/etc/user_attr
528
697d894dca64 681 root as a role and "jack" user scheme doesn't work with IPS zones
Dave Miner <dminer@opensolaris.org>
parents: 438
diff changeset
   597
fi
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   598
1275
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   599
#
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   600
# Make sure sysidtools run; we manually poke in the SSH action
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   601
# so that we get an SSH key.  Yes, this is seriously borken.
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   602
# See http://defect.opensolaris.org/bz/show_bug.cgi?id=741
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   603
#
7bdf8c791f04 9191 labeled zones should no longer rely on sparse-root functionality
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1111
diff changeset
   604
printf "$m_more_brokenness\n"
1483
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   605
/usr/sbin/sysidconfig -b $ZONEROOT -a /lib/svc/method/sshd
2276b6786711 6793 p2v support for ipkg-branded zones
<gerald.jelinek@sun.com>
parents: 1466
diff changeset
   606
touch $ZONEROOT/etc/.UNCONFIGURED
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   607
1526
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   608
#
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   609
# Labeled zones need to be able to modify /etc/gconf files, when gnome
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   610
# packages are installed in the zone.  Set up links in the zone to the
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   611
# global zone files -- this will provide default versions from the global
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   612
# zone, which can be modified by the zone, breaking the link.
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   613
if (( $brand_labeled == 1 )); then
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   614
	cd /etc/gconf
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   615
	for i in $(find .); do
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   616
		if [ ! -e $ZONEROOT/etc/gconf/$i ]; then
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   617
			if [ -d $i ]; then
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   618
				mkdir $ZONEROOT/etc/gconf/$i
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   619
			else
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   620
				ln -s /etc/gconf-global/$i \
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   621
				    $ZONEROOT/etc/gconf/$i
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   622
			fi
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   623
		fi
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   624
	done
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   625
fi
97adcb21266f 12742 unable to install gnome packages in labeled zones
Ric Aleshire <Ric.Aleshire@Sun.COM>
parents: 1516
diff changeset
   626
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   627
printf "$m_complete\n\n" ${SECONDS}
1493
625950c12e71 3979 zone fs only available from Global zone, when zone is booted
<gerald.jelinek@sun.com>
parents: 1483
diff changeset
   628
if (( $brand_labeled == 0 )); then
1108
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   629
	printf "$m_postnote\n"
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   630
	printf "$m_postnote2\n"
1493
625950c12e71 3979 zone fs only available from Global zone, when zone is booted
<gerald.jelinek@sun.com>
parents: 1483
diff changeset
   631
else
625950c12e71 3979 zone fs only available from Global zone, when zone is booted
<gerald.jelinek@sun.com>
parents: 1483
diff changeset
   632
	# Umount the dataset on the root.
625950c12e71 3979 zone fs only available from Global zone, when zone is booted
<gerald.jelinek@sun.com>
parents: 1483
diff changeset
   633
	umount $ZONEROOT || printf "$f_zfs_unmount" "$ZONEPATH/root"
1108
14533641d138 8031 IPS changes to address trusted zone installation breakage
David.Comay@Sun.COM
parents: 1091
diff changeset
   634
fi
280
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   635
84c03819796f 742 Zones are broken due to 681 and 741; supply workarounds
Dan Price <dp@eng.sun.com>
parents: 210
diff changeset
   636
exit $ZONE_SUBPROC_OK