xref: /illumos-gate/usr/src/cmd/svc/seed/Makefile (revision f81209f5)
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