Makefile revision 6e91bba0d6c6bdabbba62cefae583715a4a58e2a
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
247efe202344328bffb8de7e47aee60039cd95e0vboxsync# CDDL HEADER START
2d928c5b0e0cc3fd970343e314cd85050c55660evboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# The contents of this file are subject to the terms of the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Common Development and Distribution License (the "License").
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# You may not use this file except in compliance with the License.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# or http://www.opensolaris.org/os/licensing.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# See the License for the specific language governing permissions
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# and limitations under the License.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# When distributing Covered Code, include this CDDL HEADER in each
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# If applicable, add the following below this CDDL HEADER, with the
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# fields enclosed by brackets "[]" replaced with your own identifying
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# information: Portions Copyright [yyyy] [name of copyright owner]
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# CDDL HEADER END
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Use is subject to license terms.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncinclude ../../Makefile.cmd
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
6095269a3237b1ef8bf4edefc11f2d888d8a41ebvboxsyncETCSVC = $(ROOTETC)/svc
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncLIBSVCSEED = $(ROOT)/lib/svc/seed
685409983863f02e8295369273d1844dca1f51c5vboxsyncINSTALLSEED = $(ROOT)/usr/sadm/install
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Because seed repository construction requires a functioning repository, a
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# working svccfg(1) binary, and XML support, the following libraries must exist
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# on the build system or in the proto area: libscf, libuutil, and libxml2.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# We build and deliver 3 seed repositories:
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# global.db -- for a standalone Solaris (global zone)
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync# nonglobal.db -- for a Solaris Zone
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# miniroot.db -- for the install miniroot
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# COMMON_DESCRIPTIONS contains manifests needed by all 3 repositories.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# GLOBAL_ZONE_DESCRIPTIONS/NONGLOBAL_ZONE_DESCRIPTIONS/MINIROOT_DESCRIPTIONS
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync# contain additional manifests needed.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# Manifests needed by all seed repositories. If you change this, you
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync# must test Solaris standalone, Solaris zone, and Install miniroot.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync#
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncCOMMON_DESCRIPTIONS = \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/boot-archive.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/devices-local.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/global.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/identity.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/local-fs.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/manifest-import.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/minimal-fs.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/multi-user.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/name-services.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/network-initial.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/network-loopback.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/network-netcfg.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/network-physical.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/restarter.xml \
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsync ../milestone/root-fs.xml \
52ae37fbf70a7b6b438df35f189cf87d239f2792vboxsync ../milestone/single-user.xml \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync ../milestone/usr-fs.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../dlmgmtd/dlmgmt.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../cmd-inet/lib/ipmgmtd/network-ipmgmt.xml \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync ../../rpcbind/bind.xml
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsync#
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsync# Additional manifests for standalone Solaris
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsync#
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncGLOBAL_ZONE_DESCRIPTIONS = \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../milestone/console-login.xml \
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsync ../milestone/multi-user-server.xml \
efe619f27bff8e4d2124d1f09a327c7a63abe1dcvboxsync ../../cmd-inet/usr.lib/inetd/inetd-upgrade.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../utmpd/utmp.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../lvm/util/metainit.xml
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsync
efe619f27bff8e4d2124d1f09a327c7a63abe1dcvboxsync#
ec9aa1180070b037866f064ce720254cd9f03721vboxsync# Additional manifests for a Solaris zone
ec9aa1180070b037866f064ce720254cd9f03721vboxsync#
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncNONGLOBAL_ZONE_DESCRIPTIONS = \
dba1919dac01f490c625e0470b528e469c30651dvboxsync ../milestone/console-login.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../milestone/multi-user-server.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../utmpd/utmp.xml
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
dba1919dac01f490c625e0470b528e469c30651dvboxsync#
ec9aa1180070b037866f064ce720254cd9f03721vboxsync# Additional manifests for the install miniroot.
ec9aa1180070b037866f064ce720254cd9f03721vboxsync#
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncMINIROOT_DESCRIPTIONS= \
dba1919dac01f490c625e0470b528e469c30651dvboxsync ../milestone/sysconfig.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../cmd-inet/usr.lib/inetd/inetd.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../cmd-inet/usr.sbin/login.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../milestone/network-service.xml \
dba1919dac01f490c625e0470b528e469c30651dvboxsync ../../cmd-inet/usr.sbin/telnet.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../../lib/libresolv2/client.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../ldapcachemgr/client.xml \
8d4665a316d78d6587fd1c9da948f7aa37d0bfddvboxsync ../../ypcmd/client.xml \
dba1919dac01f490c625e0470b528e469c30651dvboxsync ../../ypcmd/server.xml \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync ../../keyserv/keyserv.xml \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync ../../cmd-crypto/scripts/cryptosvc.xml \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync ../../nscd/name-service-cache.xml \
e77749d161a9912b95090202d25c428bc8314dadvboxsync ../../syslogd/system-log.xml
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsyncFILEMODE = 0600
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsyncSEEDFILEMODE = 0444 # seeds are not intended for editing, but may
3f49ecc2ec9cdf7caa008815d8706737aabad2ebvboxsync # be copied
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncCONFIGD = ../configd/svc.configd-native
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncSVCCFG = ../svccfg/svccfg-native
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsync.KEEP_STATE:
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
dba1919dac01f490c625e0470b528e469c30651dvboxsyncall: global.db nonglobal.db miniroot.db
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsync$(CONFIGD): FRC
ec9aa1180070b037866f064ce720254cd9f03721vboxsync @cd ../configd; pwd; $(MAKE) $(MFLAGS) native
dba1919dac01f490c625e0470b528e469c30651dvboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsync$(SVCCFG): FRC
ec9aa1180070b037866f064ce720254cd9f03721vboxsync @cd ../svccfg; pwd; $(MAKE) $(MFLAGS) native
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsync../milestone/console-login.xml:
ec9aa1180070b037866f064ce720254cd9f03721vboxsync @cd ../milestone; pwd; $(MAKE) $(MFLAGS) console-login.xml
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
efe619f27bff8e4d2124d1f09a327c7a63abe1dcvboxsynccommon.db: $(COMMON_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
ec9aa1180070b037866f064ce720254cd9f03721vboxsync $(RM) -f common.db common.db-journal
ec9aa1180070b037866f064ce720254cd9f03721vboxsync for m in $(COMMON_DESCRIPTIONS); do \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync echo $$m; \
efe619f27bff8e4d2124d1f09a327c7a63abe1dcvboxsync SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
ec9aa1180070b037866f064ce720254cd9f03721vboxsync SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/common.db \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_CONFIGD_PATH=$(CONFIGD) \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(SVCCFG) import $$m; \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync done
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncglobal.db: common.db $(GLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync $(RM) -f global.db global.db-journal
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(CP) common.db global.db
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync for m in $(GLOBAL_ZONE_DESCRIPTIONS); do \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync echo $$m; \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_CONFIGD_PATH=$(CONFIGD) \
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsync $(SVCCFG) import $$m; \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync done
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncnonglobal.db: common.db $(NONGLOBAL_ZONE_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
83bb1f16d193175abf8fc1c3dffea43611efbf67vboxsync $(RM) -f nonglobal.db nonglobal.db-journal
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(CP) common.db nonglobal.db
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync for m in $(NONGLOBAL_ZONE_DESCRIPTIONS); do \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync echo $$m; \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/nonglobal.db \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync SVCCFG_CONFIGD_PATH=$(CONFIGD) \
e77749d161a9912b95090202d25c428bc8314dadvboxsync $(SVCCFG) import $$m; \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync done
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncminiroot.db: common.db $(MINIROOT_DESCRIPTIONS) $(CONFIGD) $(SVCCFG)
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(RM) -f miniroot.db miniroot.db-journal
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(CP) common.db miniroot.db
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync for m in $(MINIROOT_DESCRIPTIONS); do \
969643a53adfd6346c00c1a5fbbe64d9cacff0a7vboxsync echo $$m; \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_CONFIGD_PATH=$(CONFIGD) \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(SVCCFG) import $$m; \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync done
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync #
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync # Make sure the miniroot's syslogd and rpcbind do not respond
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync # to packets from outside the machine. Since we cannot set property
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync # values by applying a profile yet, we need to set them explicitly
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync # with svccfg commands.
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync #
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_CONFIGD_PATH=$(CONFIGD) \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(SVCCFG) -s svc:/system/system-log \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync setprop config/log_from_remote = false
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync #
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_DTD=../dtd/service_bundle.dtd.1 \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/miniroot.db \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync SVCCFG_CONFIGD_PATH=$(CONFIGD) \
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(SVCCFG) -s svc:/network/rpc/bind setprop config/local_only = true
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
8afc9dbdcbb840ad831ecd58eb4ebc6345cc0a4cvboxsyncinstall: install_global install_nonglobal install_miniroot
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncinstall_global: global.db
ec9aa1180070b037866f064ce720254cd9f03721vboxsync $(RM) $(LIBSVCSEED)/global.db
dba1919dac01f490c625e0470b528e469c30651dvboxsync $(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s global.db
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
ec9aa1180070b037866f064ce720254cd9f03721vboxsyncinstall_nonglobal: nonglobal.db
ec9aa1180070b037866f064ce720254cd9f03721vboxsync $(RM) $(LIBSVCSEED)/nonglobal.db
dba1919dac01f490c625e0470b528e469c30651dvboxsync $(INS) -f $(LIBSVCSEED) -m $(SEEDFILEMODE) -s nonglobal.db
ec9aa1180070b037866f064ce720254cd9f03721vboxsync
68fb5645b4a81ece6ab55633a38be8b04d3a88d8vboxsyncinstall_miniroot: $(INSTALLSEED) miniroot.db
68fb5645b4a81ece6ab55633a38be8b04d3a88d8vboxsync $(RM) $(INSTALLSEED)/miniroot.db
f019cf48439421432be96667759de8db043dc588vboxsync $(INS) -f $(INSTALLSEED) -m $(SEEDFILEMODE) -s miniroot.db
68fb5645b4a81ece6ab55633a38be8b04d3a88d8vboxsync
68fb5645b4a81ece6ab55633a38be8b04d3a88d8vboxsync$(INSTALLSEED):
68fb5645b4a81ece6ab55633a38be8b04d3a88d8vboxsync $(INS.dir)
f019cf48439421432be96667759de8db043dc588vboxsync
68fb5645b4a81ece6ab55633a38be8b04d3a88d8vboxsyncclean lint:
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(RM) common.db
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncclobber:
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync $(RM) common.db global.db nonglobal.db miniroot.db
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsync
1a04ec99647f9be2f2ba19cf247c0f989aa2e80cvboxsyncFRC:
8afc9dbdcbb840ad831ecd58eb4ebc6345cc0a4cvboxsync