@@ -3,11 +3,7 @@ DESCRIPTION = "The Greengrass nucleus component provides functionality for devic
33HOMEPAGE = "https://github.com/aws-greengrass/aws-greengrass-nucleus"
44LICENSE = "Apache-2.0"
55
6- GG_BASENAME = "greengrass/v2"
7- GG_ROOT = "${D} /${GG_BASENAME} "
8- # GGV2_FLEETPROVISIONING_VERSION ?= "latest"
9- GGV2_FLEETPROVISIONING_VERSION ?= "1.2.2"
10- GGV2_FLEET_PROVISIONING_TEMPLATE_NAME ?= "GreengrassFleetProvisioningTemplate"
6+ require classes /greengrass -common . inc
117
128LIC_FILES_CHKSUM = "file://${UNPACKDIR} /greengrass-bin/LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
139
@@ -16,35 +12,29 @@ DEPENDS += "gettext-native"
1612# enable fleetprovisioning for testing by default to get test coverage
1713PACKAGECONFIG ??= "${@ bb . utils . contains ('PTEST_ENABLED' , '1' , 'fleetprovisioning' , '' , d )}"
1814
19- # this is to make the PACKAGECONFIG QA check happy
20- PACKAGECONFIG [fleetprovisioning ] = ""
15+ PACKAGECONFIG [fleetprovisioning ] = ",,greengrass-plugin-fleetprovisioning,greengrass-plugin-fleetprovisioning"
2116
2217SRC_URI = "\
2318 https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-${PV} .zip;subdir=greengrass-bin \
2419 file://greengrassv2-init.yaml \
2520 file://run-ptest \
21+ file://config.yaml.template \
2622 "
2723
2824SRC_URI :append = " ${@ bb . utils . contains ('PACKAGECONFIG' , 'fleetprovisioning' , '\
29- https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-${GGV2_FLEETPROVISIONING_VERSION} .jar;name=fleetprovisioning;unpack=0 \
30- file://config.yaml.template \
31- file://replace_board_id.sh \
32- file://claim.pkey.pem \
33- file://claim.cert.pem \
34- file://claim.root.pem \
3525 file://loader.patch \
3626 file://greengrass.service.patch \
3727 ' , '' , d )}"
3828
3929SRC_URI [sha256sum ] = "a7cbc3cee5d245bfac9c49a036a482884898edbeb2f1e6fb27d17e9321007ce8"
40- SRC_URI [fleetprovisioning . sha256sum ] = "1e7fdc625d4e1e7795d63f0e97981feecad526277bf211154505de145009e8c1"
4130UPSTREAM_CHECK_REGEX ?= "releases/tag/v?(?P<pver>\d+(\.\d+)+)"
4231
4332UPSTREAM_CHECK_URI = "https://github.com/aws-greengrass/aws-greengrass-nucleus/tags"
4433
4534GG_USESYSTEMD = "${@ bb . utils . contains ('DISTRO_FEATURES' , 'systemd' , 'yes' , 'no' , d )}"
4635
4736inherit systemd useradd ptest pkgconfig
37+ DEPENDS :append = " yq-native"
4838
4939S = "${UNPACKDIR} /greengrass-bin"
5040
@@ -76,7 +66,7 @@ do_install() {
7666 ln -s /${GG_BASENAME} /packages /artifacts -unarchived /aws . greengrass . Nucleus /${PV} /aws . greengrass . nucleus ${GG_ROOT} /alts /init /distro
7767
7868 install -m 0440 ${S} /LICENSE ${GG_ROOT}
79- install -m 0640 ${S} /.. /greengrassv2 -init . yaml ${GG_ROOT} /config /config . yaml . clean
69+ install -m 0640 ${S} /.. /greengrassv2 -init . yaml ${GG_ROOT} /config /config . yaml . clean
8070 install -m 0640 ${S} /bin /greengrass . service . template ${GG_ROOT} /packages /artifacts -unarchived /aws . greengrass . Nucleus /${PV} /aws . greengrass . nucleus /bin /greengrass . service . template
8171 install -m 0750 ${S} /bin /loader ${GG_ROOT} /packages /artifacts -unarchived /aws . greengrass . Nucleus /${PV} /aws . greengrass . nucleus /bin /loader
8272 install -m 0640 ${S} /conf /recipe . yaml ${GG_ROOT} /packages /artifacts -unarchived /aws . greengrass . Nucleus /${PV} /aws . greengrass . nucleus /conf /recipe . yaml
@@ -90,37 +80,23 @@ do_install() {
9080 sed -i -e "s,REPLACE_WITH_GG_LOADER_FILE,/${GG_BASENAME} /alts/current/distro/bin/loader,g" ${D}${systemd_unitdir} /system /greengrass . service
9181 sed -i -e "s,REPLACE_WITH_GG_LOADER_PID_FILE,/var/run/greengrass.pid,g" ${D}${systemd_unitdir} /system /greengrass . service
9282
93- if ${@ bb . utils . contains ('PACKAGECONFIG' , 'fleetprovisioning' , 'true' , 'false' , d )}; then
94-
95- install -d ${GG_ROOT} /claim -certs
96- install -d ${GG_ROOT} /plugins
97- install -d ${GG_ROOT} /plugins /trusted
98- install -m 0440 ${UNPACKDIR} /claim . pkey . pem ${GG_ROOT} /claim -certs
99- install -m 0440 ${UNPACKDIR} /claim . cert . pem ${GG_ROOT} /claim -certs
100- install -m 0440 ${UNPACKDIR} /claim . root . pem ${GG_ROOT} /claim -certs
101-
102- install -m 0740 ${UNPACKDIR} /fleetprovisioningbyclaim -${GGV2_FLEETPROVISIONING_VERSION} . jar ${GG_ROOT} /plugins /trusted /aws . greengrass . FleetProvisioningByClaim . jar
103-
104- install -m 0755 ${UNPACKDIR} /replace_board_id . sh ${GG_ROOT} /config /
105-
106- install -m 0640 ${UNPACKDIR} /config . yaml . template ${GG_ROOT} /config /config . yaml
107-
108- AWS_DEFAULT_REGION = ${GGV2_REGION} \
109- PROXY_USER = ggc_user :ggc_group \
110- IOT_DATA_ENDPOINT = ${GGV2_DATA_EP} \
111- IOT_CRED_ENDPOINT = ${GGV2_CRED_EP} \
112- TE_ROLE_ALIAS = ${GGV2_TES_RALIAS} \
113- FLEET_PROVISIONING_TEMPLATE_NAME = ${GGV2_FLEET_PROVISIONING_TEMPLATE_NAME} \
114- CLAIM_CERT_PATH = /${GG_BASENAME} /claim -certs /claim . cert . pem \
115- CLAIM_KEY_PATH = /${GG_BASENAME} /claim -certs /claim . pkey . pem \
116- ROOT_CA_PATH = /${GG_BASENAME} /claim -certs /claim . root . pem \
117- THING_NAME = ${GGV2_THING_NAME} \
118- THING_GROUP_NAME = ${GGV2_THING_GROUP} \
119- envsubst < ${UNPACKDIR} /config . yaml . template > ${GG_ROOT} /config /config . yaml
120- fi
83+ # Install base config.yml
84+ AWS_DEFAULT_REGION = ${GGV2_REGION} \
85+ PROXY_USER = ggc_user :ggc_group \
86+ envsubst < ${UNPACKDIR} /config . yaml . template > ${GG_ROOT} /config /config . yaml
12187}
12288
123- CONFFILES :${PN} += "/${GG_BASENAME} /config/config.yaml.clean"
89+ do_merge_config () {
90+ # Merge config fragments
91+ yq eval -all '. as $item ireduce ({}; . * $item)' \
92+ "${GG_ROOT} /config/config.yaml" \
93+ "${DEPLOY_DIR_IMAGE} /greengrass-plugin-fragments/" *. yaml \
94+ > "${GG_ROOT} /config/config.yaml.tmp"
95+
96+ mv "${GG_ROOT} /config/config.yaml.tmp" "${GG_ROOT} /config/config.yaml"
97+
98+ }
99+ addtask merge_config after do_install before do_package
124100
125101SYSTEMD_AUTO_ENABLE = "enable"
126102SYSTEMD_SERVICE :${PN} = "greengrass.service"
0 commit comments