From cdd7e90cba4d5b697a296a69df7e08341299f688 Mon Sep 17 00:00:00 2001 From: Anton Gerasimov Date: Wed, 7 Jun 2017 13:09:00 +0200 Subject: Add uptane-capable aktualizr --- recipes-sota/aktualizr/aktualizr_git.bb | 18 +++++++++++------- .../aktualizr/files/aktualizr-autoprovision.service | 14 ++++++++++++++ recipes-sota/aktualizr/files/sota_autoprov.toml | 18 ++++++++++++++++++ recipes-sota/rvi-sota-client/rvi-sota-client_git.bb | 2 -- 4 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 recipes-sota/aktualizr/files/aktualizr-autoprovision.service create mode 100644 recipes-sota/aktualizr/files/sota_autoprov.toml (limited to 'recipes-sota') diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index fa71af8..62ee9b0 100644 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb @@ -5,35 +5,39 @@ SECTION = "base" LICENSE = "MPL-2.0" LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" DEPENDS = "boost curl openssl jansson libsodium ostree" -SRCREV = "4e9344ae375a444f02b964dca52fe808010d17df" -PV = "1.0+git${SRCPV}" SRC_URI = " \ git://github.com/advancedtelematic/aktualizr \ file://aktualizr-manual-provision.service \ + file://aktualizr-autoprovision.service \ + file://sota_autoprov.toml \ " +SRCREV = "2e897310c611e2da46f8af888bb62c09b2a2906a" +PV = "1.0+git${SRCPV}" S = "${WORKDIR}/git" SYSTEMD_SERVICE_${PN} = "aktualizr.service" inherit cmake systemd -EXTRA_OECMAKE = "-DWARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_OSTREE=ON" +EXTRA_OECMAKE = "-DWARNING_AS_ERROR=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_OSTREE=ON -DAKTUALIZR_VERSION=${PV}" export SOTA_AUTOPROVISION_CREDENTIALS do_install_append() { - if [ -n "$SOTA_AUTOPROVISION_CREDENTIALS" ]; then - bbwarn "Aktualizr recipe currently lacks support for SOTA_AUTOPROVISION_CREDENTIALS. No systemd service will be created" + if [ -n "${SOTA_AUTOPROVISION_CREDENTIALS}" -o -n "${SOTA_PACKED_CREDENTIALS}" ]; then + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/aktualizr-autoprovision.service ${D}/${systemd_unitdir}/system/aktualizr.service + install -d ${D}/var/sota + install -m "0644" ${WORKDIR}/sota_autoprov.toml ${D}/var/sota/sota.toml else install -d ${D}/${systemd_unitdir}/system install -m 0644 ${WORKDIR}/aktualizr-manual-provision.service ${D}/${systemd_unitdir}/system/aktualizr.service fi } -RDEPENDS = "" - FILES_${PN} = " \ ${bindir}/aktualizr \ ${systemd_unitdir}/system/aktualizr.service \ + /var/sota/sota.toml \ " diff --git a/recipes-sota/aktualizr/files/aktualizr-autoprovision.service b/recipes-sota/aktualizr/files/aktualizr-autoprovision.service new file mode 100644 index 0000000..a5b92e3 --- /dev/null +++ b/recipes-sota/aktualizr/files/aktualizr-autoprovision.service @@ -0,0 +1,14 @@ +[Unit] +Description=Aktualizr SOTA Client +Wants=network-online.target +After=network.target network-online.target +Requires=network-online.target + +[Service] +RestartSec=10 +Restart=always +EnvironmentFile=/var/sota/sota_provisioning_url.env +ExecStart=/bin/sh -c "/usr/bin/aktualizr --disable-keyid-validation --tls-server ${SOTA_GATEWAY_URI} --primary-ecu-hardware-id `cat /etc/hostname` --config /var/sota/sota.toml" + +[Install] +WantedBy=multi-user.target diff --git a/recipes-sota/aktualizr/files/sota_autoprov.toml b/recipes-sota/aktualizr/files/sota_autoprov.toml new file mode 100644 index 0000000..8799553 --- /dev/null +++ b/recipes-sota/aktualizr/files/sota_autoprov.toml @@ -0,0 +1,18 @@ +[device] +packages_dir = "/tmp/packages_dir" +certificates_directory = "/var/sota" +system_info = "system_info.sh" + +[tls] +ca_file = "root.crt" +client_certificate = "client.pem" +pkey_file = "pkey.pem" + +[uptane] +metadata_path = "/var/sota/metadata" +private_key_path = "ecukey.der" +public_key_path = "ecukey.pub" + +[provision] +p12_path = "sota_provisioning_credentials.p12" + diff --git a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb index 52edd26..87fa752 100644 --- a/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb +++ b/recipes-sota/rvi-sota-client/rvi-sota-client_git.bb @@ -30,8 +30,6 @@ FILES_${PN} = " \ ${bindir}/sota_prov.sh \ ${sysconfdir}/sota_client.version \ ${sysconfdir}/sota_certificates \ - /var/sota/sota_provisioning_credentials.p12 \ - /var/sota/sota_provisioning_url.env \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client_autoprovision.service', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_unitdir}/system/sota_client.service', '', d)} \ " -- cgit v1.2.3-54-g00ecf