diff options
author | Laurent Bonnans <laurent.bonnans@here.com> | 2019-03-01 12:49:38 +0100 |
---|---|---|
committer | Laurent Bonnans <laurent.bonnans@here.com> | 2019-03-04 11:06:09 +0100 |
commit | 36dc9817f58d74b98194539dcb0cf1de1af8e340 (patch) | |
tree | 7ad44b8c6ac58be461edfbe828a232c1bf32f550 /recipes-sota/aktualizr | |
parent | 7ca1d9483e761f56dd50630c49b8365cca363e98 (diff) | |
download | meta-updater-36dc9817f58d74b98194539dcb0cf1de1af8e340.tar.gz |
Simplify garage-sign fetching for aktualizrfix/garage-sign-caching
Two modes:
- `GARAGE_SIGN_AUTOVERSION=0`: use archive and version from aktualizr's recipe
- `GARAGE_SIGN_AUTOVERSION=1`: let aktualizr fetching it automatically
Signed-off-by: Laurent Bonnans <laurent.bonnans@here.com>
Diffstat (limited to 'recipes-sota/aktualizr')
-rwxr-xr-x | recipes-sota/aktualizr/aktualizr_git.bb | 12 | ||||
-rw-r--r-- | recipes-sota/aktualizr/garage-sign-version.inc | 36 |
2 files changed, 7 insertions, 41 deletions
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 8fbe2f9..0354fa0 100755 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
@@ -5,8 +5,6 @@ SECTION = "base" | |||
5 | LICENSE = "MPL-2.0" | 5 | LICENSE = "MPL-2.0" |
6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" | 6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" |
7 | 7 | ||
8 | require garage-sign-version.inc | ||
9 | |||
10 | DEPENDS = "boost curl openssl libarchive libsodium sqlite3 asn1c-native" | 8 | DEPENDS = "boost curl openssl libarchive libsodium sqlite3 asn1c-native" |
11 | RDEPENDS_${PN}_class-target = "aktualizr-check-discovery aktualizr-configs lshw" | 9 | RDEPENDS_${PN}_class-target = "aktualizr-check-discovery aktualizr-configs lshw" |
12 | RDEPENDS_${PN}-secondary = "aktualizr-check-discovery" | 10 | RDEPENDS_${PN}-secondary = "aktualizr-check-discovery" |
@@ -15,14 +13,20 @@ RDEPENDS_${PN}-host-tools = "aktualizr aktualizr-repo aktualizr-cert-provider ${ | |||
15 | PV = "1.0+git${SRCPV}" | 13 | PV = "1.0+git${SRCPV}" |
16 | PR = "7" | 14 | PR = "7" |
17 | 15 | ||
16 | GARAGE_SIGN_PV = "0.6.0-3-gc38b9f3" | ||
17 | |||
18 | SRC_URI = " \ | 18 | SRC_URI = " \ |
19 | gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH} \ | 19 | gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH} \ |
20 | file://aktualizr.service \ | 20 | file://aktualizr.service \ |
21 | file://aktualizr-secondary.service \ | 21 | file://aktualizr-secondary.service \ |
22 | file://aktualizr-secondary.socket \ | 22 | file://aktualizr-secondary.socket \ |
23 | file://aktualizr-serialcan.service \ | 23 | file://aktualizr-serialcan.service \ |
24 | ${@ d.expand("https://ats-tuf-cli-releases.s3-eu-central-1.amazonaws.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0") if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''} \ | ||
24 | " | 25 | " |
25 | 26 | ||
27 | # for garage-sign archive | ||
28 | SRC_URI[md5sum] = "30d7f0931e2236954679e75d1bae174f" | ||
29 | SRC_URI[sha256sum] = "46d8c6448ce14cbb9af6a93eba7e29d38579e566dcd6518d22f723a8da16cad5" | ||
26 | 30 | ||
27 | SRCREV = "ea03a5cf57def6b8d368f783cb12b91255365a80" | 31 | SRCREV = "ea03a5cf57def6b8d368f783cb12b91255365a80" |
28 | BRANCH ?= "master" | 32 | BRANCH ?= "master" |
@@ -37,9 +41,7 @@ SYSTEMD_SERVICE_${PN}-secondary = "aktualizr-secondary.socket" | |||
37 | 41 | ||
38 | EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DAKTUALIZR_VERSION=${PV}" | 42 | EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DAKTUALIZR_VERSION=${PV}" |
39 | 43 | ||
40 | GARAGE_SIGN_OPS = "${@ '-DGARAGE_SIGN_VERSION=%s' % d.getVar('GARAGE_SIGN_VERSION') if d.getVar('GARAGE_SIGN_VERSION') is not None else ''} \ | 44 | GARAGE_SIGN_OPS = "${@ d.expand('-DGARAGE_SIGN_ARCHIVE=${WORKDIR}/cli-${GARAGE_SIGN_PV}.tgz') if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''}" |
41 | ${@ '-DGARAGE_SIGN_SHA256=%s' % d.getVar('GARAGE_SIGN_SHA256') if d.getVar('GARAGE_SIGN_SHA256') is not None else ''} \ | ||
42 | " | ||
43 | 45 | ||
44 | PACKAGECONFIG ?= "ostree ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} ${@bb.utils.filter('SOTA_CLIENT_FEATURES', 'hsm serialcan ubootenv', d)}" | 46 | PACKAGECONFIG ?= "ostree ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} ${@bb.utils.filter('SOTA_CLIENT_FEATURES', 'hsm serialcan ubootenv', d)}" |
45 | PACKAGECONFIG_class-native = "sota-tools" | 47 | PACKAGECONFIG_class-native = "sota-tools" |
diff --git a/recipes-sota/aktualizr/garage-sign-version.inc b/recipes-sota/aktualizr/garage-sign-version.inc deleted file mode 100644 index 2cea6c9..0000000 --- a/recipes-sota/aktualizr/garage-sign-version.inc +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | |||
2 | python () { | ||
3 | if d.getVar("GARAGE_SIGN_VERSION") or not d.getVar("SOTA_PACKED_CREDENTIALS"): | ||
4 | return | ||
5 | import json | ||
6 | import urllib.request | ||
7 | import zipfile | ||
8 | with zipfile.ZipFile(d.getVar("SOTA_PACKED_CREDENTIALS"), 'r') as zip_ref: | ||
9 | try: | ||
10 | with zip_ref.open('tufrepo.url', mode='r') as url_file: | ||
11 | url = url_file.read().decode().strip(' \t\n') + '/health/version' | ||
12 | except (KeyError, ValueError, RuntimeError): | ||
13 | return | ||
14 | connected = False | ||
15 | tries = 3 | ||
16 | for i in range(tries): | ||
17 | try: | ||
18 | r = urllib.request.urlopen(url) | ||
19 | if r.code == 200: | ||
20 | connected = True | ||
21 | break | ||
22 | else: | ||
23 | print('Bad return code from server ' + url + ': ' + str(r.code) + | ||
24 | ' (attempt ' + str(i + 1) + ' of ' + str(tries) + ')') | ||
25 | except urllib.error.URLError as e: | ||
26 | print('Error connecting to server ' + url + ': ' + str(e) + | ||
27 | ' (attempt ' + str(i + 1) + ' of ' + str(tries) + ')') | ||
28 | if not connected: | ||
29 | return | ||
30 | resp = r.read().decode('utf-8') | ||
31 | j = json.loads(resp) | ||
32 | version = 'cli-' + j['version'] + '.tgz' | ||
33 | d.setVar("GARAGE_SIGN_VERSION", version) | ||
34 | } | ||
35 | |||
36 | # vim:set ts=4 sw=4 sts=4 expandtab: | ||