17c478bd9Sstevel@tonic-gate# 27c478bd9Sstevel@tonic-gate# CDDL HEADER START 37c478bd9Sstevel@tonic-gate# 47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the 50ea5e3a5Sjjj# Common Development and Distribution License (the "License"). 60ea5e3a5Sjjj# You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate# 87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate# and limitations under the License. 127c478bd9Sstevel@tonic-gate# 137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate# 197c478bd9Sstevel@tonic-gate# CDDL HEADER END 205f10ef69SYuri Pankov# 215f10ef69SYuri Pankov 227c478bd9Sstevel@tonic-gate# 236ba597c5SAnurag S. Maskey# Copyright 2010 Sun Microsystems, Inc. All rights reserved. 247c478bd9Sstevel@tonic-gate# Use is subject to license terms. 255f10ef69SYuri Pankov# Copyright 2016 Nexenta Systems, Inc. 26*f81209f5SAndy Fiddaman# Copyright 2021 OmniOS Community Edition (OmniOSce) Association. 277c478bd9Sstevel@tonic-gate# 287c478bd9Sstevel@tonic-gate 297c478bd9Sstevel@tonic-gateinclude ../../Makefile.cmd 307c478bd9Sstevel@tonic-gate 317c478bd9Sstevel@tonic-gateETCSVC = $(ROOTETC)/svc 327c478bd9Sstevel@tonic-gateLIBSVCSEED = $(ROOT)/lib/svc/seed 332269adc8SszhouINSTALLSEED = $(ROOT)/usr/sadm/install 347c478bd9Sstevel@tonic-gate 357c478bd9Sstevel@tonic-gate# 367c478bd9Sstevel@tonic-gate# Because seed repository construction requires a functioning repository, a 377c478bd9Sstevel@tonic-gate# working svccfg(1) binary, and XML support, the following libraries must exist 387c478bd9Sstevel@tonic-gate# on the build system or in the proto area: libscf, libuutil, and libxml2. 397c478bd9Sstevel@tonic-gate# 407c478bd9Sstevel@tonic-gate 41*f81209f5SAndy FiddamanMFST_ROOT=lib/svc/manifest 42*f81209f5SAndy FiddamanMFST_TYPE= \ 43*f81209f5SAndy Fiddaman system \ 44*f81209f5SAndy Fiddaman system/device \ 45*f81209f5SAndy Fiddaman system/filesystem \ 46*f81209f5SAndy Fiddaman system/svc \ 47*f81209f5SAndy Fiddaman milestone \ 48*f81209f5SAndy Fiddaman network \ 49*f81209f5SAndy Fiddaman network/dns \ 50*f81209f5SAndy Fiddaman network/ldap \ 51*f81209f5SAndy Fiddaman network/nis \ 52*f81209f5SAndy Fiddaman network/rpc 53*f81209f5SAndy Fiddaman 54*f81209f5SAndy FiddamanMFST_DIRS = $(MFST_TYPE:%=$(MFST_ROOT)/%) 55*f81209f5SAndy Fiddaman 567c478bd9Sstevel@tonic-gate# 572269adc8Sszhou# We build and deliver 3 seed repositories: 58*f81209f5SAndy Fiddaman# global.db -- for a standalone system (global zone) 59*f81209f5SAndy Fiddaman# nonglobal.db -- for a non-global zone 602269adc8Sszhou# miniroot.db -- for the install miniroot 61*f81209f5SAndy Fiddaman# 62*f81209f5SAndy Fiddaman# COMMON_MANIFESTS contains manifests needed by all 3 repositories. 63*f81209f5SAndy Fiddaman# {GLOBAL_ZONE,NONGLOBAL_ZONE,MINIROOT}_MANIFESTS 64*f81209f5SAndy Fiddaman# contain additional manifests needed. 657c478bd9Sstevel@tonic-gate# 662269adc8Sszhou 672269adc8Sszhou# 68*f81209f5SAndy Fiddaman# Manifests needed by all seed repositories. 692269adc8Sszhou# 70*f81209f5SAndy FiddamanCOMMON_MANIFESTS = \ 71*f81209f5SAndy Fiddaman milestone/multi-user.xml \ 72*f81209f5SAndy Fiddaman milestone/name-services.xml \ 73*f81209f5SAndy Fiddaman milestone/single-user.xml \ 74*f81209f5SAndy Fiddaman network/dlmgmt.xml \ 75*f81209f5SAndy Fiddaman network/network-initial.xml \ 76*f81209f5SAndy Fiddaman network/network-ipmgmt.xml \ 77*f81209f5SAndy Fiddaman network/network-loopback.xml \ 78*f81209f5SAndy Fiddaman network/network-netcfg.xml \ 79*f81209f5SAndy Fiddaman network/network-physical.xml \ 80*f81209f5SAndy Fiddaman network/rpc/bind.xml \ 81*f81209f5SAndy Fiddaman system/boot-archive.xml \ 82*f81209f5SAndy Fiddaman system/device/devices-local.xml \ 83*f81209f5SAndy Fiddaman system/filesystem/local-fs.xml \ 84*f81209f5SAndy Fiddaman system/filesystem/minimal-fs.xml \ 85*f81209f5SAndy Fiddaman system/filesystem/root-fs.xml \ 86*f81209f5SAndy Fiddaman system/filesystem/usr-fs.xml \ 87*f81209f5SAndy Fiddaman system/identity.xml \ 88*f81209f5SAndy Fiddaman system/manifest-import.xml \ 89*f81209f5SAndy Fiddaman system/svc/global.xml \ 90*f81209f5SAndy Fiddaman system/svc/restarter.xml 912269adc8Sszhou 922269adc8Sszhou# 93*f81209f5SAndy Fiddaman# Additional manifests for a standalone system (global zone) 942269adc8Sszhou# 95*f81209f5SAndy FiddamanGLOBAL_ZONE_MANIFESTS = \ 96*f81209f5SAndy Fiddaman milestone/multi-user-server.xml \ 97*f81209f5SAndy Fiddaman network/inetd-upgrade.xml \ 98*f81209f5SAndy Fiddaman system/console-login.xml \ 99*f81209f5SAndy Fiddaman system/utmp.xml 1007c478bd9Sstevel@tonic-gate 1012269adc8Sszhou# 102*f81209f5SAndy Fiddaman# Additional manifests for a non-global zone 1032269adc8Sszhou# 104*f81209f5SAndy FiddamanNONGLOBAL_ZONE_MANIFESTS = \ 105*f81209f5SAndy Fiddaman milestone/multi-user-server.xml \ 106*f81209f5SAndy Fiddaman system/console-login.xml \ 107*f81209f5SAndy Fiddaman system/utmp.xml 1087c478bd9Sstevel@tonic-gate 1092269adc8Sszhou# 1102269adc8Sszhou# Additional manifests for the install miniroot. 1112269adc8Sszhou# 112*f81209f5SAndy FiddamanMINIROOT_MANIFESTS= \ 113*f81209f5SAndy Fiddaman milestone/sysconfig.xml \ 114*f81209f5SAndy Fiddaman network/dns/client.xml \ 115*f81209f5SAndy Fiddaman network/inetd.xml \ 116*f81209f5SAndy Fiddaman network/ldap/client.xml \ 117*f81209f5SAndy Fiddaman network/login.xml \ 118*f81209f5SAndy Fiddaman network/network-service.xml \ 119*f81209f5SAndy Fiddaman network/nis/client.xml \ 120*f81209f5SAndy Fiddaman network/nis/server.xml \ 121*f81209f5SAndy Fiddaman network/rpc/keyserv.xml \ 122*f81209f5SAndy Fiddaman network/telnet.xml \ 123*f81209f5SAndy Fiddaman system/cryptosvc.xml \ 124*f81209f5SAndy Fiddaman system/name-service-cache.xml \ 125*f81209f5SAndy Fiddaman system/system-log.xml 126*f81209f5SAndy Fiddaman 127*f81209f5SAndy Fiddaman 128*f81209f5SAndy FiddamanCOMMON_DESCRIPTIONS=$(COMMON_MANIFESTS:%=$(MFST_ROOT)/%) 129*f81209f5SAndy FiddamanGLOBAL_ZONE_DESCRIPTIONS=$(GLOBAL_ZONE_MANIFESTS:%=$(MFST_ROOT)/%) 130*f81209f5SAndy FiddamanNONGLOBAL_ZONE_DESCRIPTIONS=$(NONGLOBAL_ZONE_MANIFESTS:%=$(MFST_ROOT)/%) 131*f81209f5SAndy FiddamanMINIROOT_DESCRIPTIONS=$(MINIROOT_MANIFESTS:%=$(MFST_ROOT)/%) 1322269adc8Sszhou 1337c478bd9Sstevel@tonic-gateFILEMODE = 0600 134*f81209f5SAndy Fiddaman# seeds are not intended for editing, but may be copied 135*f81209f5SAndy FiddamanSEEDFILEMODE = 0444 1367c478bd9Sstevel@tonic-gate 1377c478bd9Sstevel@tonic-gateCONFIGD = ../configd/svc.configd-native 1387c478bd9Sstevel@tonic-gateSVCCFG = ../svccfg/svccfg-native 1397c478bd9Sstevel@tonic-gate 1407c478bd9Sstevel@tonic-gate.KEEP_STATE: 1417c478bd9Sstevel@tonic-gate 1422269adc8Sszhouall: global.db nonglobal.db miniroot.db 1437c478bd9Sstevel@tonic-gate 1447c478bd9Sstevel@tonic-gate$(CONFIGD): FRC 145f96a0cefSRichard Lowe @cd ../configd; pwd; $(MAKE) native 1467c478bd9Sstevel@tonic-gate 1477c478bd9Sstevel@tonic-gate$(SVCCFG): FRC 148f96a0cefSRichard Lowe @cd ../svccfg; pwd; $(MAKE) native 1497c478bd9Sstevel@tonic-gate 1507c478bd9Sstevel@tonic-gate../milestone/console-login.xml: 151f96a0cefSRichard Lowe @cd ../milestone; pwd; $(MAKE) console-login.xml 1527c478bd9Sstevel@tonic-gate 153*f81209f5SAndy FiddamanCONFIGD_ENV = \ 154*f81209f5SAndy Fiddaman SVCCFG_DTD=../dtd/service_bundle.dtd.1 \ 155*f81209f5SAndy Fiddaman PKG_INSTALL_ROOT=$(SRC)/cmd/svc/seed \ 156*f81209f5SAndy Fiddaman SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/$@ \ 157*f81209f5SAndy Fiddaman SVCCFG_CONFIGD_PATH=$(CONFIGD) 158*f81209f5SAndy Fiddaman 159*f81209f5SAndy FiddamanIMPORT.mfst = $(CONFIGD_ENV) $(SVCCFG) import 160*f81209f5SAndy Fiddaman 161*f81209f5SAndy Fiddamancommon.db: $(MFST_DIRS) $(COMMON_DESCRIPTIONS) $(CONFIGD) $(SVCCFG) 162*f81209f5SAndy Fiddaman $(RM) -f $@ $@-journal 163*f81209f5SAndy Fiddaman $(IMPORT.mfst) $(COMMON_DESCRIPTIONS) 164*f81209f5SAndy Fiddaman 165*f81209f5SAndy Fiddamanglobal.db: common.db $(GLOBAL_ZONE_DESCRIPTIONS) 166*f81209f5SAndy Fiddaman $(RM) -f $@ $@-journal 167*f81209f5SAndy Fiddaman $(CP) common.db $@ 168*f81209f5SAndy Fiddaman $(IMPORT.mfst) $(GLOBAL_ZONE_DESCRIPTIONS) 169*f81209f5SAndy Fiddaman 170*f81209f5SAndy Fiddamannonglobal.db: common.db $(NONGLOBAL_ZONE_DESCRIPTIONS) 171*f81209f5SAndy Fiddaman $(RM) -f $@ $@-journal 172*f81209f5SAndy Fiddaman $(CP) common.db $@ 173*f81209f5SAndy Fiddaman $(IMPORT.mfst) $(NONGLOBAL_ZONE_DESCRIPTIONS) 174*f81209f5SAndy Fiddaman 175*f81209f5SAndy Fiddamanminiroot.db: common.db $(MINIROOT_DESCRIPTIONS) 176*f81209f5SAndy Fiddaman $(RM) -f $@ $@-journal 177*f81209f5SAndy Fiddaman $(CP) common.db $@ 178*f81209f5SAndy Fiddaman $(IMPORT.mfst) $(MINIROOT_DESCRIPTIONS) 1790ea5e3a5Sjjj # 1800ea5e3a5Sjjj # Make sure the miniroot's syslogd and rpcbind do not respond 1810ea5e3a5Sjjj # to packets from outside the machine. Since we cannot set property 1820ea5e3a5Sjjj # values by applying a profile yet, we need to set them explicitly 1830ea5e3a5Sjjj # with svccfg commands. 1840ea5e3a5Sjjj # 185*f81209f5SAndy Fiddaman $(CONFIGD_ENV) $(SVCCFG) -s svc:/system/system-log \ 1860ea5e3a5Sjjj setprop config/log_from_remote = false 187*f81209f5SAndy Fiddaman $(CONFIGD_ENV) $(SVCCFG) -s svc:/network/rpc/bind \ 188*f81209f5SAndy Fiddaman setprop config/local_only = true 189*f81209f5SAndy Fiddaman 190*f81209f5SAndy Fiddaman.PARALLEL: global.db nonglobal.db miniroot.db 1912269adc8Sszhou 1922269adc8Sszhouinstall: install_global install_nonglobal install_miniroot 1937c478bd9Sstevel@tonic-gate 1947c478bd9Sstevel@tonic-gateinstall_global: global.db 1957c478bd9Sstevel@tonic-gate $(RM) $(LIBSVCSEED)/global.db 1967c478bd9Sstevel@tonic-gate $(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s global.db 1977c478bd9Sstevel@tonic-gate 1987c478bd9Sstevel@tonic-gateinstall_nonglobal: nonglobal.db 1997c478bd9Sstevel@tonic-gate $(RM) $(LIBSVCSEED)/nonglobal.db 2007c478bd9Sstevel@tonic-gate $(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s nonglobal.db 2017c478bd9Sstevel@tonic-gate 2022269adc8Sszhouinstall_miniroot: $(INSTALLSEED) miniroot.db 2032269adc8Sszhou $(RM) $(INSTALLSEED)/miniroot.db 2042269adc8Sszhou $(INS) -f $(INSTALLSEED) -m $(SEEDFILEMODE) -s miniroot.db 2052269adc8Sszhou 2062269adc8Sszhou$(INSTALLSEED): 2072269adc8Sszhou $(INS.dir) 2082269adc8Sszhou 209*f81209f5SAndy Fiddamanclean: 2102269adc8Sszhou $(RM) common.db 211*f81209f5SAndy Fiddaman $(RM) $(COMMON_DESCRIPTIONS) $(GLOBAL_ZONE_DESCRIPTIONS) 212*f81209f5SAndy Fiddaman $(RM) $(NON_GLOBAL_ZONE_DESCRIPTIONS) $(MINIROOT_DESCRIPTIONS) 2137c478bd9Sstevel@tonic-gate 2147c478bd9Sstevel@tonic-gateclobber: 2152269adc8Sszhou $(RM) common.db global.db nonglobal.db miniroot.db 216*f81209f5SAndy Fiddaman $(RM) -r lib/ 217*f81209f5SAndy Fiddaman 218*f81209f5SAndy Fiddaman$(MFST_DIRS): FRC 219*f81209f5SAndy Fiddaman $(INS.dir) 220*f81209f5SAndy Fiddaman 221*f81209f5SAndy Fiddaman$(MFST_ROOT)/milestone/%: ../milestone/% 222*f81209f5SAndy Fiddaman $(INS.file) 223*f81209f5SAndy Fiddaman 224*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/%: ../../cmd-inet/lib/ipmgmtd/% 225*f81209f5SAndy Fiddaman $(INS.file) 226*f81209f5SAndy Fiddaman 227*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/%: ../../cmd-inet/usr.lib/inetd/% 228*f81209f5SAndy Fiddaman $(INS.file) 229*f81209f5SAndy Fiddaman 230*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/%: ../../cmd-inet/usr.sbin/% 231*f81209f5SAndy Fiddaman $(INS.file) 232*f81209f5SAndy Fiddaman 233*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/%: ../../dlmgmtd/% 234*f81209f5SAndy Fiddaman $(INS.file) 235*f81209f5SAndy Fiddaman 236*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/%: ../milestone/% 237*f81209f5SAndy Fiddaman $(INS.file) 238*f81209f5SAndy Fiddaman 239*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/dns/%: ../../../lib/libresolv2/% 240*f81209f5SAndy Fiddaman $(INS.file) 241*f81209f5SAndy Fiddaman 242*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/ldap/%: ../../ldapcachemgr/% 243*f81209f5SAndy Fiddaman $(INS.file) 244*f81209f5SAndy Fiddaman 245*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/nis/%: ../../ypcmd/% 246*f81209f5SAndy Fiddaman $(INS.file) 247*f81209f5SAndy Fiddaman 248*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/rpc/%: ../../keyserv/% 249*f81209f5SAndy Fiddaman $(INS.file) 250*f81209f5SAndy Fiddaman 251*f81209f5SAndy Fiddaman$(MFST_ROOT)/network/rpc/%: ../../rpcbind/% 252*f81209f5SAndy Fiddaman $(INS.file) 253*f81209f5SAndy Fiddaman 254*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/%: ../../cmd-crypto/scripts/% 255*f81209f5SAndy Fiddaman $(INS.file) 256*f81209f5SAndy Fiddaman 257*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/%: ../../nscd/% 258*f81209f5SAndy Fiddaman $(INS.file) 259*f81209f5SAndy Fiddaman 260*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/%: ../../syslogd/% 261*f81209f5SAndy Fiddaman $(INS.file) 262*f81209f5SAndy Fiddaman 263*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/%: ../../utmpd/% 264*f81209f5SAndy Fiddaman $(INS.file) 265*f81209f5SAndy Fiddaman 266*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/%: ../milestone/% 267*f81209f5SAndy Fiddaman $(INS.file) 268*f81209f5SAndy Fiddaman 269*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/device/%: ../milestone/% 270*f81209f5SAndy Fiddaman $(INS.file) 271*f81209f5SAndy Fiddaman 272*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/filesystem/%: ../milestone/% 273*f81209f5SAndy Fiddaman $(INS.file) 274*f81209f5SAndy Fiddaman 275*f81209f5SAndy Fiddaman$(MFST_ROOT)/system/svc/%: ../milestone/% 276*f81209f5SAndy Fiddaman $(INS.file) 2777c478bd9Sstevel@tonic-gate 2787c478bd9Sstevel@tonic-gateFRC: 279