summaryrefslogtreecommitdiffstats
path: root/recipes-sota
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-sota')
-rw-r--r--recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb24
-rw-r--r--recipes-sota/aktualizr/aktualizr-auto-prov.bb19
-rw-r--r--recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb51
-rw-r--r--recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb41
-rw-r--r--recipes-sota/aktualizr/aktualizr-hsm-prov.bb6
-rw-r--r--recipes-sota/aktualizr/aktualizr-implicit-prov.bb34
-rwxr-xr-xrecipes-sota/aktualizr/aktualizr_git.bb5
7 files changed, 83 insertions, 97 deletions
diff --git a/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb b/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb
new file mode 100644
index 0000000..34460af
--- /dev/null
+++ b/recipes-sota/aktualizr/aktualizr-auto-prov-creds.bb
@@ -0,0 +1,24 @@
1SUMMARY = "Credentials for autoprovisioning scenario"
2SECTION = "base"
3LICENSE = "MPL-2.0"
4LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
5
6DEPENDS = "aktualizr-native zip-native"
7ALLOW_EMPTY_${PN} = "1"
8
9require credentials.inc
10
11do_install() {
12 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
13 install -m 0700 -d ${D}${localstatedir}/sota
14 cp ${SOTA_PACKED_CREDENTIALS} ${D}${localstatedir}/sota/sota_provisioning_credentials.zip
15 # Device should not be able to push data to treehub
16 zip -d ${D}${localstatedir}/sota/sota_provisioning_credentials.zip treehub.json
17 fi
18}
19
20FILES_${PN} = " \
21 ${localstatedir}/sota/sota_provisioning_credentials.zip \
22 "
23
24# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-sota/aktualizr/aktualizr-auto-prov.bb b/recipes-sota/aktualizr/aktualizr-auto-prov.bb
index 9fa95ed..01f21fa 100644
--- a/recipes-sota/aktualizr/aktualizr-auto-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-auto-prov.bb
@@ -6,7 +6,7 @@ LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" 6LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
7 7
8DEPENDS = "aktualizr-native zip-native" 8DEPENDS = "aktualizr-native zip-native"
9RDEPENDS_${PN} = "aktualizr" 9RDEPENDS_${PN}_append = "${@' aktualizr-auto-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS', True) == '1' else ''}"
10PV = "1.0" 10PV = "1.0"
11PR = "6" 11PR = "6"
12 12
@@ -31,19 +31,10 @@ do_install() {
31 31
32 install -m 0700 -d ${D}${libdir}/sota/conf.d 32 install -m 0700 -d ${D}${libdir}/sota/conf.d
33 install -m 0700 -d ${D}${localstatedir}/sota 33 install -m 0700 -d ${D}${localstatedir}/sota
34 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 34 aktualizr_toml=${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'secondary-network', 'sota_autoprov_primary.toml', 'sota_autoprov.toml', d)}
35 aktualizr_toml=${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'secondary-network', 'sota_autoprov_primary.toml', 'sota_autoprov.toml', d)} 35
36 36 install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/${aktualizr_toml} \
37 install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/${aktualizr_toml} \ 37 ${D}${libdir}/sota/conf.d/20-${aktualizr_toml}
38 ${D}${libdir}/sota/conf.d/20-${aktualizr_toml}
39
40 # deploy SOTA credentials
41 if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then
42 cp ${SOTA_PACKED_CREDENTIALS} ${D}${localstatedir}/sota/sota_provisioning_credentials.zip
43 # Device should not be able to push data to treehub
44 zip -d ${D}${localstatedir}/sota/sota_provisioning_credentials.zip treehub.json
45 fi
46 fi
47} 38}
48 39
49FILES_${PN} = " \ 40FILES_${PN} = " \
diff --git a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb
new file mode 100644
index 0000000..a729e6b
--- /dev/null
+++ b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov-creds.bb
@@ -0,0 +1,51 @@
1SUMMARY = "Credentials for implicit provisioning with CA certificate"
2SECTION = "base"
3LICENSE = "MPL-2.0"
4LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
5
6DEPENDS = "aktualizr aktualizr-native"
7ALLOW_EMPTY_${PN} = "1"
8
9SRC_URI = " \
10 file://ca.cnf \
11 "
12
13require credentials.inc
14
15export SOTA_CACERT_PATH
16export SOTA_CAKEY_PATH
17
18do_install() {
19 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
20 if [ -z ${SOTA_CACERT_PATH} ]; then
21 SOTA_CACERT_PATH=${DEPLOY_DIR_IMAGE}/CA/cacert.pem
22 SOTA_CAKEY_PATH=${DEPLOY_DIR_IMAGE}/CA/ca.private.pem
23 mkdir -p ${DEPLOY_DIR_IMAGE}/CA
24 bbwarn "SOTA_CACERT_PATH is not specified, use default one at $SOTA_CACERT_PATH"
25
26 if [ ! -f ${SOTA_CACERT_PATH} ]; then
27 bbwarn "${SOTA_CACERT_PATH} does not exist, generate a new CA"
28 SOTA_CACERT_DIR_PATH="$(dirname "$SOTA_CACERT_PATH")"
29 openssl genrsa -out ${SOTA_CACERT_DIR_PATH}/ca.private.pem 4096
30 openssl req -key ${SOTA_CACERT_DIR_PATH}/ca.private.pem -new -x509 -days 7300 -out ${SOTA_CACERT_PATH} -subj "/C=DE/ST=Berlin/O=Reis und Kichererbsen e.V/commonName=meta-updater" -batch -config ${WORKDIR}/ca.cnf -extensions cacert
31 bbwarn "${SOTA_CACERT_PATH} has been created, you'll need to upload it to the server"
32 fi
33 fi
34
35 if [ -z ${SOTA_CAKEY_PATH} ]; then
36 bberror "SOTA_CAKEY_PATH should be set when using implicit provisioning"
37 fi
38
39 install -m 0700 -d ${D}${localstatedir}/sota
40 aktualizr_cert_provider --credentials ${SOTA_PACKED_CREDENTIALS} \
41 --device-ca ${SOTA_CACERT_PATH} \
42 --device-ca-key ${SOTA_CAKEY_PATH} \
43 --root-ca \
44 --server-url \
45 --local ${D} \
46 --config ${STAGING_DIR_HOST}${libdir}/sota/sota_implicit_prov_ca.toml
47 fi
48}
49
50FILES_${PN} = " \
51 ${localstatedir}/sota/*"
diff --git a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb
index 83504f1..2763185 100644
--- a/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-ca-implicit-prov.bb
@@ -10,62 +10,23 @@ LICENSE = "MPL-2.0"
10LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" 10LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
11 11
12DEPENDS = "aktualizr aktualizr-native openssl-native" 12DEPENDS = "aktualizr aktualizr-native openssl-native"
13RDEPENDS_${PN}_append = "${@' aktualizr-ca-implicit-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS', True) == '1' else ''}"
13 14
14SRC_URI = " \
15 file://ca.cnf \
16 "
17PV = "1.0" 15PV = "1.0"
18PR = "1" 16PR = "1"
19 17
20require environment.inc 18require environment.inc
21require credentials.inc 19require credentials.inc
22 20
23export SOTA_CACERT_PATH
24export SOTA_CAKEY_PATH
25
26do_install() { 21do_install() {
27 install -m 0700 -d ${D}${libdir}/sota/conf.d 22 install -m 0700 -d ${D}${libdir}/sota/conf.d
28 23
29 if [ -z "${SOTA_PACKED_CREDENTIALS}" ]; then
30 bberror "SOTA_PACKED_CREDENTIALS are required for implicit provisioning"
31 fi
32
33 if [ -z ${SOTA_CACERT_PATH} ]; then
34 SOTA_CACERT_PATH=${DEPLOY_DIR_IMAGE}/CA/cacert.pem
35 SOTA_CAKEY_PATH=${DEPLOY_DIR_IMAGE}/CA/ca.private.pem
36 mkdir -p ${DEPLOY_DIR_IMAGE}/CA
37 bbwarn "SOTA_CACERT_PATH is not specified, use default one at $SOTA_CACERT_PATH"
38
39 if [ ! -f ${SOTA_CACERT_PATH} ]; then
40 bbwarn "${SOTA_CACERT_PATH} does not exist, generate a new CA"
41 SOTA_CACERT_DIR_PATH="$(dirname "$SOTA_CACERT_PATH")"
42 openssl genrsa -out ${SOTA_CACERT_DIR_PATH}/ca.private.pem 4096
43 openssl req -key ${SOTA_CACERT_DIR_PATH}/ca.private.pem -new -x509 -days 7300 -out ${SOTA_CACERT_PATH} -subj "/C=DE/ST=Berlin/O=Reis und Kichererbsen e.V/commonName=meta-updater" -batch -config ${WORKDIR}/ca.cnf -extensions cacert
44 bbwarn "${SOTA_CACERT_PATH} has been created, you'll need to upload it to the server"
45 fi
46 fi
47
48 if [ -z ${SOTA_CAKEY_PATH} ]; then
49 bberror "SOTA_CAKEY_PATH should be set when using implicit provisioning"
50 fi
51
52 install -m 0700 -d ${D}${localstatedir}/sota
53 install -m 0644 ${STAGING_DIR_HOST}${libdir}/sota/sota_implicit_prov_ca.toml \ 24 install -m 0644 ${STAGING_DIR_HOST}${libdir}/sota/sota_implicit_prov_ca.toml \
54 ${D}${libdir}/sota/conf.d/20-sota_implicit_prov_ca.toml 25 ${D}${libdir}/sota/conf.d/20-sota_implicit_prov_ca.toml
55 aktualizr_cert_provider --credentials ${SOTA_PACKED_CREDENTIALS} \
56 --device-ca ${SOTA_CACERT_PATH} \
57 --device-ca-key ${SOTA_CAKEY_PATH} \
58 --root-ca \
59 --server-url \
60 --local ${D}${localstatedir}/sota \
61 --config ${STAGING_DIR_HOST}${libdir}/sota/sota_implicit_prov_ca.toml
62} 26}
63 27
64FILES_${PN} = " \ 28FILES_${PN} = " \
65 ${libdir}/sota/conf.d \
66 ${libdir}/sota/conf.d/20-sota_implicit_prov_ca.toml \ 29 ${libdir}/sota/conf.d/20-sota_implicit_prov_ca.toml \
67 ${libdir}/sota/root.crt \
68 ${localstatedir}/sota/* \
69 " 30 "
70 31
71# vim:set ts=4 sw=4 sts=4 expandtab: 32# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-sota/aktualizr/aktualizr-hsm-prov.bb b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
index 0450138..e915046 100644
--- a/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-hsm-prov.bb
@@ -6,6 +6,7 @@ LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad" 6LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
7 7
8DEPENDS = "aktualizr aktualizr-native" 8DEPENDS = "aktualizr aktualizr-native"
9RDEPENDS_${PN}_append = "${@' aktualizr-ca-implicit-prov-creds softhsm-testtoken' if d.getVar('SOTA_DEPLOY_CREDENTIALS', True) == '1' else ''}"
9 10
10SRC_URI = "" 11SRC_URI = ""
11PV = "1.0" 12PV = "1.0"
@@ -18,16 +19,11 @@ do_install() {
18 install -m 0700 -d ${D}${libdir}/sota/conf.d 19 install -m 0700 -d ${D}${libdir}/sota/conf.d
19 install -m 0644 ${STAGING_DIR_HOST}${libdir}/sota/sota_hsm_prov.toml \ 20 install -m 0644 ${STAGING_DIR_HOST}${libdir}/sota/sota_hsm_prov.toml \
20 ${D}${libdir}/sota/conf.d/20-sota_hsm_prov.toml 21 ${D}${libdir}/sota/conf.d/20-sota_hsm_prov.toml
21 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
22 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} --no-root-ca \
23 -o ${D}${libdir}/sota/conf.d/30-implicit_server.toml -p ${D}
24 fi
25} 22}
26 23
27FILES_${PN} = " \ 24FILES_${PN} = " \
28 ${libdir}/sota/conf.d \ 25 ${libdir}/sota/conf.d \
29 ${libdir}/sota/conf.d/20-sota_hsm_prov.toml \ 26 ${libdir}/sota/conf.d/20-sota_hsm_prov.toml \
30 ${libdir}/sota/conf.d/30-implicit_server.toml \
31 " 27 "
32 28
33# vim:set ts=4 sw=4 sts=4 expandtab: 29# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
deleted file mode 100644
index 5c54e8a..0000000
--- a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb
+++ /dev/null
@@ -1,34 +0,0 @@
1SUMMARY = "Aktualizr configuration for implicit provisioning"
2DESCRIPTION = "Configuration for implicitly provisioning Aktualizr, the SOTA Client application written in C++"
3HOMEPAGE = "https://github.com/advancedtelematic/aktualizr"
4SECTION = "base"
5LICENSE = "MPL-2.0"
6LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
7
8DEPENDS = "aktualizr aktualizr-native"
9
10SRC_URI = ""
11PV = "1.0"
12PR = "1"
13
14require environment.inc
15require credentials.inc
16
17do_install() {
18 install -m 0700 -d ${D}${libdir}/sota/conf.d
19 install -m 0644 ${STAGING_DIR_HOST}${libdir}/sota/sota_implicit_prov.toml \
20 ${D}${libdir}/sota/conf.d/20-sota_implicit_prov.toml
21 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
22 aktualizr_implicit_writer -c ${SOTA_PACKED_CREDENTIALS} \
23 -o ${D}${libdir}/sota/conf.d/30-implicit_server.toml -p ${D}
24 fi
25}
26
27FILES_${PN} = " \
28 ${libdir}/sota/conf.d \
29 ${libdir}/sota/conf.d/20-implicit_prov.toml \
30 ${libdir}/sota/conf.d/30-implicit_server.toml \
31 ${libdir}/sota/root.crt \
32 "
33
34# vim:set ts=4 sw=4 sts=4 expandtab:
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb
index 7a0641d..ccaf475 100755
--- a/recipes-sota/aktualizr/aktualizr_git.bb
+++ b/recipes-sota/aktualizr/aktualizr_git.bb
@@ -11,7 +11,6 @@ DEPENDS_append_class-native = "glib-2.0-native "
11 11
12RDEPENDS_${PN}_class-target = "lshw " 12RDEPENDS_${PN}_class-target = "lshw "
13RDEPENDS_${PN}_append_class-target = "${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'serialcan', ' slcand-start', '', d)} " 13RDEPENDS_${PN}_append_class-target = "${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'serialcan', ' slcand-start', '', d)} "
14RDEPENDS_${PN}_append_class-target = "${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'hsm', ' softhsm softhsm-testtoken', '', d)}"
15RDEPENDS_${PN}_append_class-target = " ${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'ubootenv', ' u-boot-fw-utils aktualizr-uboot-env-rollback', '', d)} " 14RDEPENDS_${PN}_append_class-target = " ${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'ubootenv', ' u-boot-fw-utils aktualizr-uboot-env-rollback', '', d)} "
16 15
17RDEPENDS_${PN}_append_class-target = " ${PN}-tools " 16RDEPENDS_${PN}_append_class-target = " ${PN}-tools "
@@ -27,7 +26,7 @@ SRC_URI = " \
27 file://aktualizr-secondary.socket \ 26 file://aktualizr-secondary.socket \
28 file://aktualizr-serialcan.service \ 27 file://aktualizr-serialcan.service \
29 " 28 "
30SRCREV = "090c463c6f1ec7a7ceae963cd7b4ba99aa74e1f5" 29SRCREV = "803fa9f75ed96993775dc0aa5e65e71920125157"
31BRANCH ?= "master" 30BRANCH ?= "master"
32 31
33S = "${WORKDIR}/git" 32S = "${WORKDIR}/git"
@@ -64,7 +63,6 @@ do_install_append () {
64 install -m 0644 ${S}/config/sota_autoprov.toml ${D}/${libdir}/sota/sota_autoprov.toml 63 install -m 0644 ${S}/config/sota_autoprov.toml ${D}/${libdir}/sota/sota_autoprov.toml
65 install -m 0644 ${S}/config/sota_autoprov_primary.toml ${D}/${libdir}/sota/sota_autoprov_primary.toml 64 install -m 0644 ${S}/config/sota_autoprov_primary.toml ${D}/${libdir}/sota/sota_autoprov_primary.toml
66 install -m 0644 ${S}/config/sota_hsm_prov.toml ${D}/${libdir}/sota/sota_hsm_prov.toml 65 install -m 0644 ${S}/config/sota_hsm_prov.toml ${D}/${libdir}/sota/sota_hsm_prov.toml
67 install -m 0644 ${S}/config/sota_implicit_prov.toml ${D}/${libdir}/sota/sota_implicit_prov.toml
68 install -m 0644 ${S}/config/sota_implicit_prov_ca.toml ${D}/${libdir}/sota/sota_implicit_prov_ca.toml 66 install -m 0644 ${S}/config/sota_implicit_prov_ca.toml ${D}/${libdir}/sota/sota_implicit_prov_ca.toml
69 install -m 0644 ${S}/config/sota_secondary.toml ${D}/${libdir}/sota/sota_secondary.toml 67 install -m 0644 ${S}/config/sota_secondary.toml ${D}/${libdir}/sota/sota_secondary.toml
70 install -m 0644 ${S}/config/sota_uboot_env.toml ${D}/${libdir}/sota/sota_uboot_env.toml 68 install -m 0644 ${S}/config/sota_uboot_env.toml ${D}/${libdir}/sota/sota_uboot_env.toml
@@ -113,7 +111,6 @@ FILES_${PN}-host-tools = " \
113 ${libdir}/sota/sota_autoprov.toml \ 111 ${libdir}/sota/sota_autoprov.toml \
114 ${libdir}/sota/sota_autoprov_primary.toml \ 112 ${libdir}/sota/sota_autoprov_primary.toml \
115 ${libdir}/sota/sota_hsm_prov.toml \ 113 ${libdir}/sota/sota_hsm_prov.toml \
116 ${libdir}/sota/sota_implicit_prov.toml \
117 ${libdir}/sota/sota_implicit_prov_ca.toml \ 114 ${libdir}/sota/sota_implicit_prov_ca.toml \
118 ${libdir}/sota/sota_uboot_env.toml \ 115 ${libdir}/sota/sota_uboot_env.toml \
119 " 116 "