From e109b8cde37bd1d0bbefc37d39c169b57b7957d4 Mon Sep 17 00:00:00 2001 From: Patrick Vacek Date: Fri, 6 Apr 2018 15:26:17 +0200 Subject: If GARAGE_SIGN_VERSION is not provided, ask the server for a version. Get the server URL out of the credentials and ask what version the server is using. --- recipes-sota/aktualizr/aktualizr_git.bb | 4 +++- recipes-sota/aktualizr/garage-sign-version.inc | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 recipes-sota/aktualizr/garage-sign-version.inc (limited to 'recipes-sota') diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 4305b2c..abe8f5b 100644 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb @@ -22,7 +22,7 @@ SRC_URI = " \ file://aktualizr-secondary.socket \ file://aktualizr-serialcan.service \ " -SRCREV = "930d8eef6eb584686654601c056d7c9c6fca3048" +SRCREV = "7ccfc5b4286b9a04915e74a7474a8d3451145e1c" BRANCH ?= "master" S = "${WORKDIR}/git" @@ -37,6 +37,8 @@ SYSTEMD_SERVICE_${PN}-secondary = "aktualizr-secondary.socket" BBCLASSEXTEND =+ "native" +require garage-sign-version.inc + EXTRA_OECMAKE = "-DWARNING_AS_ERROR=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DAKTUALIZR_VERSION=${PV} " diff --git a/recipes-sota/aktualizr/garage-sign-version.inc b/recipes-sota/aktualizr/garage-sign-version.inc new file mode 100644 index 0000000..2d08cdf --- /dev/null +++ b/recipes-sota/aktualizr/garage-sign-version.inc @@ -0,0 +1,23 @@ + +python () { + if d.getVar("GARAGE_SIGN_VERSION", True) or not d.getVar("SOTA_PACKED_CREDENTIALS", True): + return + import json + import urllib.request + import zipfile + with zipfile.ZipFile(d.getVar("SOTA_PACKED_CREDENTIALS", True), 'r') as zip_ref: + try: + with zip_ref.open('tufrepo.url', mode='r') as url_file: + url = url_file.read().decode() + '/health/version' + except (KeyError, ValueError, RuntimeError): + return + r = urllib.request.urlopen(url) + if r.code != 200: + return + resp = r.read() + j = json.loads(resp) + version = 'cli-' + j['version'] + '.tgz' + d.setVar("GARAGE_SIGN_VERSION", version) +} + +# vim:set ts=4 sw=4 sts=4 expandtab: -- cgit v1.2.3-54-g00ecf