1 # 2 # CDDL HEADER START 3 # 4 # The contents of this file are subject to the terms of the 5 # Common Development and Distribution License (the "License"). 6 # You may not use this file except in compliance with the License. 7 # 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 # or http://www.opensolaris.org/os/licensing. 10 # See the License for the specific language governing permissions 11 # and limitations under the License. 12 # 13 # When distributing Covered Code, include this CDDL HEADER in each 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 # If applicable, add the following below this CDDL HEADER, with the 16 # fields enclosed by brackets "[]" replaced with your own identifying 17 # information: Portions Copyright [yyyy] [name of copyright owner] 18 # 19 # CDDL HEADER END 20 # 21 # Copyright 2009 Sun Microsystems, Inc. All rights reserved. 22 # Use is subject to license terms. 23 # 24 25 include ../../Makefile.cmd 26 27 ETCSVC = $(ROOTETC)/svc 28 LIBSVCSEED = $(ROOT)/lib/svc/seed 29 INSTALLSEED = $(ROOT)/usr/sadm/install 30 31 # 32 # Because seed repository construction requires a functioning repository, a 33 # working svccfg(1) binary, and XML support, the following libraries must exist 34 # on the build system or in the proto area: libscf, libuutil, and libxml2. 35 # 36 37 # 38 # We build and deliver 3 seed repositories: 39 # global.db -- for a standalone Solaris (global zone) 40 # nonglobal.db -- for a Solaris Zone 41 # miniroot.db -- for the install miniroot 42 # COMMON_DESCRIPTIONS contains manifests needed by all 3 repositories. 43 # GLOBAL_ZONE_DESCRIPTIONS/NONGLOBAL_ZONE_DESCRIPTIONS/MINIROOT_DESCRIPTIONS 44 # contain additional manifests needed. 45 # 46 47 # 48 # Manifests needed by all seed repositories. If you change this, you 49 # must test Solaris standalone, Solaris zone, and Install miniroot. 50 # 51 COMMON_DESCRIPTIONS = \ 52 ../milestone/boot-archive.xml \ 53 ../milestone/devices-local.xml \ 54 ../milestone/global.xml \ 55 ../milestone/identity.xml \ 56 ../milestone/local-fs.xml \ 57 ../milestone/manifest-import.xml \ 58 ../milestone/minimal-fs.xml \ 59 ../milestone/multi-user.xml \ 60 ../milestone/name-services.xml \ 61 ../milestone/network-initial.xml \ 62 ../milestone/network-loopback.xml \ 63 ../milestone/network-physical.xml \ 64 ../milestone/restarter.xml \ 65 ../milestone/root-fs.xml \ 66 ../milestone/single-user.xml \ 67 ../milestone/usr-fs.xml \ 68 ../../dlmgmtd/dlmgmt.xml \ 69 ../../rpcbind/bind.xml \ 70 71 # 72 # Additional manifests for standalone Solaris 73 # 74 GLOBAL_ZONE_DESCRIPTIONS = \ 75 ../milestone/console-login.xml \ 76 ../milestone/multi-user-server.xml \ 77 ../../cmd-inet/usr.lib/inetd/inetd-upgrade.xml \ 78 ../../utmpd/utmp.xml \ 79 ../../lvm/util/metainit.xml 80 81 # 82 # Additional manifests for a Solaris zone 83 # 84 NONGLOBAL_ZONE_DESCRIPTIONS = \ 85 ../milestone/console-login.xml \ 86 ../milestone/multi-user-server.xml \ 87 ../../utmpd/utmp.xml 88 89 # 90 # Additional manifests for the install miniroot. 91 # 92 MINIROOT_DESCRIPTIONS= \ 93 ../milestone/sysconfig.xml \ 94 ../../cmd-inet/usr.lib/inetd/inetd.xml \ 95 ../../cmd-inet/usr.sbin/login.xml \ 96 ../milestone/network-service.xml \ 97 ../../cmd-inet/usr.sbin/telnet.xml \ 98 ../../../lib/libresolv2/client.xml \ 99 ../../ldapcachemgr/client.xml \ 100 ../../ypcmd/client.xml \ 101 ../../ypcmd/server.xml \ 102 ../../keyserv/keyserv.xml \ 103 ../../rpcsvc/nisplus.xml \ 104 ../../cmd-crypto/scripts/cryptosvc.xml \ 105 ../../nscd/name-service-cache.xml \ 106 ../../syslogd/system-log.xml 107 108 FILEMODE = 0600 109 SEEDFILEMODE = 0444 # seeds are not intended for editing, but may 110 # be copied 111 112 CONFIGD = ../configd/svc.configd-native 113 SVCCFG = ../svccfg/svccfg-native 114 115 .KEEP_STATE: 116 117 all: global.db nonglobal.db miniroot.db 118 119 $(CONFIGD): FRC 120 @cd ../configd; pwd; $(MAKE) $(MFLAGS) native 121 122 $(SVCCFG): FRC 123 @cd ../svccfg; pwd; $(MAKE) $(MFLAGS) native 124 125 ../milestone/console-login.xml: 126 @cd ../milestone; pwd; $(MAKE) $(MFLAGS) console-login.xml 127 128 common.db: $(COMMON_DESCRIPTIONS) $(CONFIGD) $(SVCCFG) 129 $(RM) -f common.db common.db-journal 130 for m in $(COMMON_DESCRIPTIONS); do \ 131 echo $$m; \ 132 SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 133 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/common.db \ 134 SVCCFG_CONFIGD_PATH=$(CONFIGD) \ 135 $(SVCCFG) import $$m; \ 136 done 137 138 global.db: common.db $(GLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG) 139 $(RM) -f global.db global.db-journal 140 $(CP) common.db global.db 141 for m in $(GLOBAL_ZONE_DESCRIPTIONS); do \ 142 echo $$m; \ 143 SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 144 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \ 145 SVCCFG_CONFIGD_PATH=$(CONFIGD) \ 146 $(SVCCFG) import $$m; \ 147 done 148 149 nonglobal.db: common.db $(NONGLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG) 150 $(RM) -f nonglobal.db nonglobal.db-journal 151 $(CP) common.db nonglobal.db 152 for m in $(NONGLOBAL_ZONE_DESCRIPTIONS); do \ 153 echo $$m; \ 154 SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 155 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/nonglobal.db \ 156 SVCCFG_CONFIGD_PATH=$(CONFIGD) \ 157 $(SVCCFG) import $$m; \ 158 done 159 160 miniroot.db: common.db $(MINIROOT_DESCRIPTIONS) $(CONFIGD) $(SVCCFG) 161 $(RM) -f miniroot.db miniroot.db-journal 162 $(CP) common.db miniroot.db 163 for m in $(MINIROOT_DESCRIPTIONS); do \ 164 echo $$m; \ 165 SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 166 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \ 167 SVCCFG_CONFIGD_PATH=$(CONFIGD) \ 168 $(SVCCFG) import $$m; \ 169 done 170 # 171 # Make sure the miniroot's syslogd and rpcbind do not respond 172 # to packets from outside the machine. Since we cannot set property 173 # values by applying a profile yet, we need to set them explicitly 174 # with svccfg commands. 175 # 176 SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 177 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \ 178 SVCCFG_CONFIGD_PATH=$(CONFIGD) \ 179 $(SVCCFG) -s svc:/system/system-log \ 180 setprop config/log_from_remote = false 181 # 182 SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 183 SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \ 184 SVCCFG_CONFIGD_PATH=$(CONFIGD) \ 185 $(SVCCFG) -s svc:/network/rpc/bind setprop config/local_only = true 186 187 install: install_global install_nonglobal install_miniroot 188 189 install_global: global.db 190 $(RM) $(LIBSVCSEED)/global.db 191 $(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s global.db 192 193 install_nonglobal: nonglobal.db 194 $(RM) $(LIBSVCSEED)/nonglobal.db 195 $(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s nonglobal.db 196 197 install_miniroot: $(INSTALLSEED) miniroot.db 198 $(RM) $(INSTALLSEED)/miniroot.db 199 $(INS) -f $(INSTALLSEED) -m $(SEEDFILEMODE) -s miniroot.db 200 201 $(INSTALLSEED): 202 $(INS.dir) 203 204 clean lint: 205 $(RM) common.db 206 207 clobber: 208 $(RM) common.db global.db nonglobal.db miniroot.db 209 210 FRC: 211