diff options
Diffstat (limited to 'recipes-sota/aktualizr/aktualizr_git.bb')
-rw-r--r-- | recipes-sota/aktualizr/aktualizr_git.bb | 163 |
1 files changed, 3 insertions, 160 deletions
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index e4c9be8..42548c8 100644 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
@@ -1,33 +1,10 @@ | |||
1 | SUMMARY = "Aktualizr SOTA Client" | 1 | require aktualizr.inc |
2 | DESCRIPTION = "SOTA Client application written in C++" | ||
3 | HOMEPAGE = "https://github.com/advancedtelematic/aktualizr" | ||
4 | SECTION = "base" | ||
5 | LICENSE = "MPL-2.0" | ||
6 | LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" | ||
7 | |||
8 | DEPENDS = "boost curl openssl libarchive libsodium sqlite3 asn1c-native" | ||
9 | DEPENDS_append = "${@bb.utils.contains('PTEST_ENABLED', '1', ' coreutils-native net-tools-native ostree-native aktualizr-native ', '', d)}" | ||
10 | RDEPENDS_${PN}_class-target = "aktualizr-configs lshw" | ||
11 | RDEPENDS_${PN}-host-tools = "aktualizr aktualizr-cert-provider ${@bb.utils.contains('PACKAGECONFIG', 'sota-tools', 'garage-deploy garage-push', '', d)}" | ||
12 | |||
13 | RDEPENDS_${PN}-ptest += "bash cmake curl net-tools python3-core python3-misc python3-modules openssl-bin sqlite3 valgrind" | ||
14 | 2 | ||
15 | PV = "1.0+git${SRCPV}" | 3 | PV = "1.0+git${SRCPV}" |
16 | PR = "7" | 4 | PR = "8" |
17 | |||
18 | GARAGE_SIGN_PV = "0.7.0-33-g214dfb1" | ||
19 | |||
20 | SRC_URI = " \ | ||
21 | gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH} \ | ||
22 | file://run-ptest \ | ||
23 | file://aktualizr.service \ | ||
24 | file://aktualizr-secondary.service \ | ||
25 | file://aktualizr-serialcan.service \ | ||
26 | file://10-resource-control.conf \ | ||
27 | ${@ 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 ''} \ | ||
28 | " | ||
29 | 5 | ||
30 | # for garage-sign archive | 6 | # for garage-sign archive |
7 | GARAGE_SIGN_PV = "0.7.0-33-g214dfb1" | ||
31 | SRC_URI[md5sum] = "66ffe8dcd61d4c15646e1c4b7dde7401" | 8 | SRC_URI[md5sum] = "66ffe8dcd61d4c15646e1c4b7dde7401" |
32 | SRC_URI[sha256sum] = "7a7193ddf7e1a33ea60fbb20f98318a8bd78c325dab391d8c4ebd644a738abdc" | 9 | SRC_URI[sha256sum] = "7a7193ddf7e1a33ea60fbb20f98318a8bd78c325dab391d8c4ebd644a738abdc" |
33 | 10 | ||
@@ -35,137 +12,3 @@ SRCREV = "d13ff1ceeca2694b982287740aca8f58edad514d" | |||
35 | BRANCH ?= "master" | 12 | BRANCH ?= "master" |
36 | 13 | ||
37 | S = "${WORKDIR}/git" | 14 | S = "${WORKDIR}/git" |
38 | |||
39 | inherit cmake pkgconfig ptest systemd | ||
40 | |||
41 | # disable ptest by default as it slows down builds quite a lot | ||
42 | # can be enabled manually by setting 'PTEST_ENABLED_pn-aktualizr' to '1' in local.conf | ||
43 | PTEST_ENABLED = "0" | ||
44 | |||
45 | SYSTEMD_PACKAGES = "${PN} ${PN}-secondary" | ||
46 | SYSTEMD_SERVICE_${PN} = "aktualizr.service" | ||
47 | SYSTEMD_SERVICE_${PN}-secondary = "aktualizr-secondary.service" | ||
48 | |||
49 | EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DAKTUALIZR_VERSION=${PV} ${@bb.utils.contains('PTEST_ENABLED', '1', '-DTESTSUITE_VALGRIND=on', '', d)}" | ||
50 | |||
51 | GARAGE_SIGN_OPS = "${@ d.expand('-DGARAGE_SIGN_ARCHIVE=${WORKDIR}/cli-${GARAGE_SIGN_PV}.tgz') if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''}" | ||
52 | |||
53 | PACKAGECONFIG ?= "ostree ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} ${@bb.utils.filter('SOTA_CLIENT_FEATURES', 'hsm serialcan ubootenv', d)}" | ||
54 | PACKAGECONFIG_class-native = "sota-tools" | ||
55 | PACKAGECONFIG[warning-as-error] = "-DWARNING_AS_ERROR=ON,-DWARNING_AS_ERROR=OFF," | ||
56 | PACKAGECONFIG[ostree] = "-DBUILD_OSTREE=ON,-DBUILD_OSTREE=OFF,ostree," | ||
57 | PACKAGECONFIG[hsm] = "-DBUILD_P11=ON,-DBUILD_P11=OFF,libp11," | ||
58 | PACKAGECONFIG[sota-tools] = "-DBUILD_SOTA_TOOLS=ON ${GARAGE_SIGN_OPS},-DBUILD_SOTA_TOOLS=OFF,glib-2.0," | ||
59 | PACKAGECONFIG[systemd] = "-DBUILD_SYSTEMD=ON,-DBUILD_SYSTEMD=OFF,systemd," | ||
60 | PACKAGECONFIG[load-tests] = "-DBUILD_LOAD_TESTS=ON,-DBUILD_LOAD_TESTS=OFF," | ||
61 | PACKAGECONFIG[serialcan] = ",,,slcand-start" | ||
62 | PACKAGECONFIG[ubootenv] = ",,,u-boot-fw-utils aktualizr-uboot-env-rollback" | ||
63 | |||
64 | # can be overriden in configuration with `RESOURCE_xxx_pn-aktualizr` | ||
65 | # see `man systemd.resource-control` for details | ||
66 | |||
67 | # can be used to lower aktualizr priority, default is 100 | ||
68 | RESOURCE_CPU_WEIGHT = "100" | ||
69 | # will be slowed down when it reaches 'high', killed when it reaches 'max' | ||
70 | RESOURCE_MEMORY_HIGH = "100M" | ||
71 | RESOURCE_MEMORY_MAX = "80%" | ||
72 | |||
73 | do_compile_ptest() { | ||
74 | cmake_runcmake_build --target build_tests "${PARALLEL_MAKE}" | ||
75 | } | ||
76 | |||
77 | do_install_ptest() { | ||
78 | # copy the complete source directory (contains build) | ||
79 | cp -r ${B}/ ${D}/${PTEST_PATH}/build | ||
80 | cp -r ${S}/ ${D}/${PTEST_PATH}/src | ||
81 | |||
82 | # remove huge external unused repository | ||
83 | rm -rf ${D}/${PTEST_PATH}/src/partial/extern/RIOT | ||
84 | |||
85 | # remove huge build artifacts | ||
86 | find ${D}/${PTEST_PATH}/build/src -name "*.a" -delete | ||
87 | |||
88 | # fix the absolute paths | ||
89 | find ${D}/${PTEST_PATH}/build -name "CMakeFiles" | xargs rm -rf | ||
90 | find ${D}/${PTEST_PATH}/build -name "*.cmake" -or -name "DartConfiguration.tcl" -or -name "run-valgrind" | xargs sed -e "s|${S}|${PTEST_PATH}/src|g" -e "s|${B}|${PTEST_PATH}/build|g" -e "s|\"--gtest_output[^\"]*\"||g" -i | ||
91 | } | ||
92 | |||
93 | do_install_append () { | ||
94 | install -d ${D}${libdir}/sota | ||
95 | install -m 0644 ${S}/config/sota-shared-cred.toml ${D}/${libdir}/sota/sota-shared-cred.toml | ||
96 | install -m 0644 ${S}/config/sota-device-cred-hsm.toml ${D}/${libdir}/sota/sota-device-cred-hsm.toml | ||
97 | install -m 0644 ${S}/config/sota-device-cred.toml ${D}/${libdir}/sota/sota-device-cred.toml | ||
98 | install -m 0644 ${S}/config/sota-secondary.toml ${D}/${libdir}/sota/sota-secondary.toml | ||
99 | install -m 0644 ${S}/config/sota-uboot-env.toml ${D}/${libdir}/sota/sota-uboot-env.toml | ||
100 | install -d ${D}${systemd_unitdir}/system | ||
101 | install -m 0644 ${WORKDIR}/aktualizr-secondary.service ${D}${systemd_unitdir}/system/aktualizr-secondary.service | ||
102 | install -m 0700 -d ${D}${libdir}/sota/conf.d | ||
103 | install -m 0700 -d ${D}${sysconfdir}/sota/conf.d | ||
104 | |||
105 | if [ -n "${SOTA_HARDWARE_ID}" ]; then | ||
106 | printf "[provision]\nprimary_ecu_hardware_id = ${SOTA_HARDWARE_ID}\n" > ${D}${libdir}/sota/conf.d/40-hardware-id.toml | ||
107 | fi | ||
108 | |||
109 | install -m 0755 -d ${D}${systemd_unitdir}/system | ||
110 | aktualizr_service=${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'serialcan', '${WORKDIR}/aktualizr-serialcan.service', '${WORKDIR}/aktualizr.service', d)} | ||
111 | install -m 0644 ${aktualizr_service} ${D}${systemd_unitdir}/system/aktualizr.service | ||
112 | |||
113 | if ${@bb.utils.contains('PACKAGECONFIG', 'sota-tools', 'true', 'false', d)}; then | ||
114 | install -m 0755 ${B}/src/sota_tools/garage-sign/bin/* ${D}${bindir} | ||
115 | install -m 0644 ${B}/src/sota_tools/garage-sign/lib/* ${D}${libdir} | ||
116 | fi | ||
117 | |||
118 | # resource control | ||
119 | install -d ${D}/${systemd_system_unitdir}/aktualizr.service.d | ||
120 | install -m 0644 ${WORKDIR}/10-resource-control.conf ${D}/${systemd_system_unitdir}/aktualizr.service.d | ||
121 | |||
122 | sed -i -e 's|@CPU_WEIGHT@|${RESOURCE_CPU_WEIGHT}|g' \ | ||
123 | -e 's|@MEMORY_HIGH@|${RESOURCE_MEMORY_HIGH}|g' \ | ||
124 | -e 's|@MEMORY_MAX@|${RESOURCE_MEMORY_MAX}|g' \ | ||
125 | ${D}${systemd_system_unitdir}/aktualizr.service.d/10-resource-control.conf | ||
126 | } | ||
127 | |||
128 | PACKAGESPLITFUNCS_prepend = "split_hosttools_packages " | ||
129 | |||
130 | python split_hosttools_packages () { | ||
131 | bindir = d.getVar('bindir') | ||
132 | |||
133 | # Split all binaries to their own packages except aktualizr-info, | ||
134 | # aktualizr-info should stay in main package aktualizr. | ||
135 | do_split_packages(d, bindir, r'^((?!(aktualizr-info)).*)$', '%s', 'Aktualizr tool - %s', extra_depends='aktualizr-configs', prepend=False) | ||
136 | } | ||
137 | |||
138 | PACKAGES_DYNAMIC = "^aktualizr-.* ^garage-.*" | ||
139 | |||
140 | PACKAGES =+ "${PN}-resource-control ${PN}-examples ${PN}-secondary ${PN}-configs ${PN}-host-tools" | ||
141 | |||
142 | ALLOW_EMPTY_${PN}-host-tools = "1" | ||
143 | |||
144 | FILES_${PN} = " \ | ||
145 | ${bindir}/aktualizr \ | ||
146 | ${bindir}/aktualizr-info \ | ||
147 | ${systemd_unitdir}/system/aktualizr.service \ | ||
148 | " | ||
149 | |||
150 | FILES_${PN}-resource-control = " \ | ||
151 | ${systemd_system_unitdir}/aktualizr.service.d/10-resource-control.conf \ | ||
152 | " | ||
153 | |||
154 | FILES_${PN}-configs = " \ | ||
155 | ${sysconfdir}/sota/* \ | ||
156 | ${libdir}/sota/* \ | ||
157 | " | ||
158 | |||
159 | FILES_${PN}-examples = " \ | ||
160 | ${bindir}/hmi-stub \ | ||
161 | " | ||
162 | |||
163 | FILES_${PN}-secondary = " \ | ||
164 | ${bindir}/aktualizr-secondary \ | ||
165 | ${libdir}/sota/sota-secondary.toml \ | ||
166 | ${systemd_unitdir}/system/aktualizr-secondary.service \ | ||
167 | " | ||
168 | |||
169 | BBCLASSEXTEND = "native" | ||
170 | |||
171 | # vim:set ts=4 sw=4 sts=4 expandtab: | ||