summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--classes/image_types_ostree.bbclass28
-rw-r--r--classes/image_types_ota.bbclass14
-rw-r--r--classes/sota_sanity.bbclass23
-rw-r--r--recipes-core/images/initramfs-ostree-image.bb2
-rw-r--r--recipes-extended/collectd/collectd_%.bbappend5
-rw-r--r--recipes-sota/aktualizr/aktualizr-collectd.bb21
-rw-r--r--recipes-sota/aktualizr/aktualizr-shared-prov.bb2
-rw-r--r--recipes-sota/aktualizr/aktualizr_git.bb12
-rw-r--r--recipes-sota/aktualizr/files/aktualizr-collectd.conf9
-rw-r--r--recipes-sota/aktualizr/files/aktualizr.service3
-rw-r--r--recipes-sota/config/aktualizr-binary-pacman.bb21
-rw-r--r--recipes-sota/config/files/10-pacman.toml2
-rw-r--r--recipes-support/boost/boost_1.72.0.bbappend4
-rw-r--r--recipes-support/boost/files/0001-add-typedef-executor_type.patch56
14 files changed, 107 insertions, 95 deletions
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass
index a8a6c39..051dcf9 100644
--- a/classes/image_types_ostree.bbclass
+++ b/classes/image_types_ostree.bbclass
@@ -10,6 +10,7 @@ OSTREE_COMMIT_BODY ??= ""
10OSTREE_COMMIT_VERSION ??= "${DISTRO_VERSION}" 10OSTREE_COMMIT_VERSION ??= "${DISTRO_VERSION}"
11OSTREE_UPDATE_SUMMARY ??= "0" 11OSTREE_UPDATE_SUMMARY ??= "0"
12OSTREE_DEPLOY_DEVICETREE ??= "0" 12OSTREE_DEPLOY_DEVICETREE ??= "0"
13OSTREE_DEVICETREE ??= "${KERNEL_DEVICETREE}"
13 14
14BUILD_OSTREE_TARBALL ??= "1" 15BUILD_OSTREE_TARBALL ??= "1"
15 16
@@ -141,9 +142,9 @@ IMAGE_CMD_ostree () {
141 checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ") 142 checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ")
142 touch boot/initramfs-${checksum} 143 touch boot/initramfs-${checksum}
143 else 144 else
144 if [ "${OSTREE_DEPLOY_DEVICETREE}" = "1" ] && [ -n "${KERNEL_DEVICETREE}" ]; then 145 if [ ${@ oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}')} = True ] && [ -n "${OSTREE_DEVICETREE}" ]; then
145 checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} ${KERNEL_DEVICETREE} | sha256sum | cut -f 1 -d " ") 146 checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} ${OSTREE_DEVICETREE} | sha256sum | cut -f 1 -d " ")
146 for DTS_FILE in ${KERNEL_DEVICETREE}; do 147 for DTS_FILE in ${OSTREE_DEVICETREE}; do
147 DTS_FILE_BASENAME=$(basename ${DTS_FILE}) 148 DTS_FILE_BASENAME=$(basename ${DTS_FILE})
148 cp ${DEPLOY_DIR_IMAGE}/${DTS_FILE_BASENAME} boot/devicetree-${DTS_FILE_BASENAME}-${checksum} 149 cp ${DEPLOY_DIR_IMAGE}/${DTS_FILE_BASENAME} boot/devicetree-${DTS_FILE_BASENAME}-${checksum}
149 done 150 done
@@ -168,25 +169,20 @@ IMAGE_CMD_ostreecommit () {
168 fi 169 fi
169 170
170 # Commit the result 171 # Commit the result
171 ostree --repo=${OSTREE_REPO} commit \ 172 ostree_target_hash=$(ostree --repo=${OSTREE_REPO} commit \
172 --tree=dir=${OSTREE_ROOTFS} \ 173 --tree=dir=${OSTREE_ROOTFS} \
173 --skip-if-unchanged \ 174 --skip-if-unchanged \
174 --branch=${OSTREE_BRANCHNAME} \ 175 --branch=${OSTREE_BRANCHNAME} \
175 --subject="${OSTREE_COMMIT_SUBJECT}" \ 176 --subject="${OSTREE_COMMIT_SUBJECT}" \
176 --body="${OSTREE_COMMIT_BODY}" \ 177 --body="${OSTREE_COMMIT_BODY}" \
177 --add-metadata-string=version="${OSTREE_COMMIT_VERSION}" \ 178 --add-metadata-string=version="${OSTREE_COMMIT_VERSION}" \
178 --bind-ref="${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}" 179 ${EXTRA_OSTREE_COMMIT})
179 180
180 if [ "${OSTREE_UPDATE_SUMMARY}" = "1" ]; then 181 echo $ostree_target_hash > ${WORKDIR}/ostree_manifest
182
183 if [ ${@ oe.types.boolean('${OSTREE_UPDATE_SUMMARY}')} = True ]; then
181 ostree --repo=${OSTREE_REPO} summary -u 184 ostree --repo=${OSTREE_REPO} summary -u
182 fi 185 fi
183
184 # To enable simultaneous bitbaking of two images with the same branch name,
185 # create a new ref in the repo using the basename of the image. (This first
186 # requires deleting it if it already exists.) Fixes OTA-2211.
187 ostree --repo=${OSTREE_REPO} refs --delete ${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}
188 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME})
189 ostree --repo=${OSTREE_REPO} refs --create=${OSTREE_BRANCHNAME}-${IMAGE_BASENAME} ${ostree_target_hash}
190} 186}
191 187
192IMAGE_TYPEDEP_ostreepush = "ostreecommit" 188IMAGE_TYPEDEP_ostreepush = "ostreecommit"
@@ -201,7 +197,7 @@ IMAGE_CMD_ostreepush () {
201 197
202 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 198 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
203 if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then 199 if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then
204 garage-push -vv --repo=${OSTREE_REPO} \ 200 garage-push --loglevel 0 --repo=${OSTREE_REPO} \
205 --ref=${OSTREE_BRANCHNAME} \ 201 --ref=${OSTREE_BRANCHNAME} \
206 --credentials=${SOTA_PACKED_CREDENTIALS} \ 202 --credentials=${SOTA_PACKED_CREDENTIALS} \
207 --cacert=${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt \ 203 --cacert=${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt \
@@ -236,7 +232,7 @@ IMAGE_CMD_garagesign () {
236 --home-dir ${GARAGE_SIGN_REPO} \ 232 --home-dir ${GARAGE_SIGN_REPO} \
237 --credentials ${SOTA_PACKED_CREDENTIALS} 233 --credentials ${SOTA_PACKED_CREDENTIALS}
238 234
239 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}) 235 ostree_target_hash=$(cat ${WORKDIR}/ostree_manifest)
240 236
241 # Use OSTree target hash as version if none was provided by the user 237 # Use OSTree target hash as version if none was provided by the user
242 target_version=${ostree_target_hash} 238 target_version=${ostree_target_hash}
@@ -312,7 +308,7 @@ IMAGE_CMD_garagecheck () {
312 # if credentials are issued by a server that doesn't support offline signing, exit silently 308 # if credentials are issued by a server that doesn't support offline signing, exit silently
313 unzip -p ${SOTA_PACKED_CREDENTIALS} root.json targets.pub targets.sec tufrepo.url 2>&1 >/dev/null || exit 0 309 unzip -p ${SOTA_PACKED_CREDENTIALS} root.json targets.pub targets.sec tufrepo.url 2>&1 >/dev/null || exit 0
314 310
315 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}) 311 ostree_target_hash=$(cat ${WORKDIR}/ostree_manifest)
316 312
317 garage-check --ref=${ostree_target_hash} \ 313 garage-check --ref=${ostree_target_hash} \
318 --credentials=${SOTA_PACKED_CREDENTIALS} \ 314 --credentials=${SOTA_PACKED_CREDENTIALS} \
diff --git a/classes/image_types_ota.bbclass b/classes/image_types_ota.bbclass
index 374ddc2..a8a19b5 100644
--- a/classes/image_types_ota.bbclass
+++ b/classes/image_types_ota.bbclass
@@ -64,15 +64,25 @@ IMAGE_CMD_ota () {
64 bbfatal "Invalid bootloader: ${OSTREE_BOOTLOADER}" 64 bbfatal "Invalid bootloader: ${OSTREE_BOOTLOADER}"
65 fi 65 fi
66 66
67 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}) 67 ostree_target_hash=$(cat ${WORKDIR}/ostree_manifest)
68 68
69 # Use OSTree hash to avoid any potential race conditions between
70 # multiple builds accessing the same ${OSTREE_REPO}.
69 ostree --repo=${OTA_SYSROOT}/ostree/repo pull-local --remote=${OSTREE_OSNAME} ${OSTREE_REPO} ${ostree_target_hash} 71 ostree --repo=${OTA_SYSROOT}/ostree/repo pull-local --remote=${OSTREE_OSNAME} ${OSTREE_REPO} ${ostree_target_hash}
70 kargs_list="" 72 kargs_list=""
71 for arg in ${OSTREE_KERNEL_ARGS}; do 73 for arg in ${OSTREE_KERNEL_ARGS}; do
72 kargs_list="${kargs_list} --karg-append=$arg" 74 kargs_list="${kargs_list} --karg-append=$arg"
73 done 75 done
74 76
75 ostree admin --sysroot=${OTA_SYSROOT} deploy ${kargs_list} --os=${OSTREE_OSNAME} ${ostree_target_hash} 77 # Create the same reference on the device we use in the archive OSTree
78 # repo in ${OSTREE_REPO}. This reference will show up when showing the
79 # deployment on the device:
80 # ostree admin status
81 # If a remote with the name ${OSTREE_OSNAME} is configured, this also
82 # will allow to use:
83 # ostree admin upgrade
84 ostree --repo=${OTA_SYSROOT}/ostree/repo refs --create=${OSTREE_OSNAME}:${OSTREE_BRANCHNAME} ${ostree_target_hash}
85 ostree admin --sysroot=${OTA_SYSROOT} deploy ${kargs_list} --os=${OSTREE_OSNAME} ${OSTREE_OSNAME}:${OSTREE_BRANCHNAME}
76 86
77 cp -a ${IMAGE_ROOTFS}/var/sota ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/ || true 87 cp -a ${IMAGE_ROOTFS}/var/sota ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/ || true
78 # Create /var/sota if it doesn't exist yet 88 # Create /var/sota if it doesn't exist yet
diff --git a/classes/sota_sanity.bbclass b/classes/sota_sanity.bbclass
index 74973eb..02ca2e7 100644
--- a/classes/sota_sanity.bbclass
+++ b/classes/sota_sanity.bbclass
@@ -1,5 +1,12 @@
1# Sanity check the sota setup for common misconfigurations 1# Sanity check the sota setup for common misconfigurations
2 2
3def sota_check_boolean_variable(var, d):
4 try:
5 oe.types.boolean(d.getVar(var))
6 except:
7 return False
8 return True
9
3def sota_check_overrides(status, d): 10def sota_check_overrides(status, d):
4 for var in (d.getVar('SOTA_OVERRIDES_BLACKLIST') or "").split(): 11 for var in (d.getVar('SOTA_OVERRIDES_BLACKLIST') or "").split():
5 if var in d.getVar('OVERRIDES').split(':'): 12 if var in d.getVar('OVERRIDES').split(':'):
@@ -47,14 +54,14 @@ def sota_check_variables_validity(status, d):
47 path = os.path.abspath(credentials) 54 path = os.path.abspath(credentials)
48 if not os.path.exists(path): 55 if not os.path.exists(path):
49 status.addresult("SOTA_PACKED_CREDENTIALS is not set correctly. The zipped credentials file does not exist.\n") 56 status.addresult("SOTA_PACKED_CREDENTIALS is not set correctly. The zipped credentials file does not exist.\n")
50 if d.getVar("OSTREE_UPDATE_SUMMARY") and d.getVar("OSTREE_UPDATE_SUMMARY") not in ("0", "1", ""): 57 if not sota_check_boolean_variable("OSTREE_UPDATE_SUMMARY", d):
51 status.addresult("OSTREE_UPDATE_SUMMARY should be set to 0 or 1.\n") 58 status.addresult("OSTREE_UPDATE_SUMMARY (=%s) should be set to yes/y/true/t/1 or no/n/false/f/0.\n" % d.getVar("OSTREE_UPDATE_SUMMARY"))
52 if d.getVar("OSTREE_DEPLOY_DEVICETREE") and d.getVar("OSTREE_DEPLOY_DEVICETREE") not in ("0", "1", ""): 59 if not sota_check_boolean_variable("OSTREE_DEPLOY_DEVICETREE", d):
53 status.addresult("OSTREE_DEPLOY_DEVICETREE should be set to 0 or 1.\n") 60 status.addresult("OSTREE_DEPLOY_DEVICETREE (=%s) should be set to yes/y/true/t/1 or no/n/false/f/0.\n" % d.getVar("OSTREE_DEPLOY_DEVICETREE"))
54 if d.getVar("GARAGE_SIGN_AUTOVERSION") and d.getVar("GARAGE_SIGN_AUTOVERSION") not in ("0", "1", ""): 61 if not sota_check_boolean_variable("GARAGE_SIGN_AUTOVERSION", d):
55 status.addresult("GARAGE_SIGN_AUTOVERSION should be set to 0 or 1.\n") 62 status.addresult("GARAGE_SIGN_AUTOVERSION (=%s) should be set to yes/y/true/t/1 or no/n/false/f/0.\n" % d.getVar("GARAGE_SIGN_AUTOVERSION"))
56 if d.getVar("SOTA_DEPLOY_CREDENTIALS") and d.getVar("SOTA_DEPLOY_CREDENTIALS") not in ("0", "1", ""): 63 if not sota_check_boolean_variable("SOTA_DEPLOY_CREDENTIALS", d):
57 status.addresult("SOTA_DEPLOY_CREDENTIALS should be set to 0 or 1.\n") 64 status.addresult("SOTA_DEPLOY_CREDENTIALS (=%s) should be set to yes/y/true/t/1 or no/n/false/f/0.\n" % d.getVar("SOTA_DEPLOY_CREDENTIALS"))
58 65
59def sota_raise_sanity_error(msg, d): 66def sota_raise_sanity_error(msg, d):
60 if d.getVar("SANITY_USE_EVENTS") == "1": 67 if d.getVar("SANITY_USE_EVENTS") == "1":
diff --git a/recipes-core/images/initramfs-ostree-image.bb b/recipes-core/images/initramfs-ostree-image.bb
index 936c59a..bc21ed3 100644
--- a/recipes-core/images/initramfs-ostree-image.bb
+++ b/recipes-core/images/initramfs-ostree-image.bb
@@ -13,7 +13,7 @@ IMAGE_LINGUAS = ""
13 13
14LICENSE = "MIT" 14LICENSE = "MIT"
15 15
16IMAGE_CLASSES_remove = "image_repo_manifest" 16IMAGE_CLASSES_remove = "image_repo_manifest qemuboot"
17 17
18IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" 18IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
19 19
diff --git a/recipes-extended/collectd/collectd_%.bbappend b/recipes-extended/collectd/collectd_%.bbappend
new file mode 100644
index 0000000..fb3e6c4
--- /dev/null
+++ b/recipes-extended/collectd/collectd_%.bbappend
@@ -0,0 +1,5 @@
1do_install_append() {
2 printf "<Include \"${sysconfdir}/collectd.conf.d\">\nFilter \"*.conf\"\n</Include>\n" >> ${D}/${sysconfdir}/collectd.conf
3
4 install -d ${D}/${sysconfdir}/collectd.conf.d
5}
diff --git a/recipes-sota/aktualizr/aktualizr-collectd.bb b/recipes-sota/aktualizr/aktualizr-collectd.bb
new file mode 100644
index 0000000..c1fc717
--- /dev/null
+++ b/recipes-sota/aktualizr/aktualizr-collectd.bb
@@ -0,0 +1,21 @@
1SUMMARY = "Aktualizr metric collection"
2HOMEPAGE = "https://github.com/advancedtelematic/aktualizr"
3SECTION = "base"
4LICENSE = "MPL-2.0"
5LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
6
7RDEPENDS_${PN} = "collectd"
8
9SRC_URI = " file://aktualizr-collectd.conf"
10
11S = "${WORKDIR}"
12
13do_install() {
14 install -d ${D}${sysconfdir}/collectd.conf.d
15 install -m 0644 ${WORKDIR}/aktualizr-collectd.conf ${D}${sysconfdir}/collectd.conf.d/aktualizr.conf
16}
17
18FILES_${PN} = " \
19 ${sysconfdir}/collectd.conf.d \
20 ${sysconfdir}/collectd.conf.d/aktualizr.conf \
21 "
diff --git a/recipes-sota/aktualizr/aktualizr-shared-prov.bb b/recipes-sota/aktualizr/aktualizr-shared-prov.bb
index 2ee47a1..0f712df 100644
--- a/recipes-sota/aktualizr/aktualizr-shared-prov.bb
+++ b/recipes-sota/aktualizr/aktualizr-shared-prov.bb
@@ -10,7 +10,7 @@ inherit allarch
10# We need to get the config files from the aktualizr-host-tools package built by 10# We need to get the config files from the aktualizr-host-tools package built by
11# the aktualizr (target) recipe. 11# the aktualizr (target) recipe.
12DEPENDS = "aktualizr" 12DEPENDS = "aktualizr"
13RDEPENDS_${PN}_append = "${@' aktualizr-shared-prov-creds' if d.getVar('SOTA_DEPLOY_CREDENTIALS') == '1' else ''}" 13RDEPENDS_${PN}_append = "${@' aktualizr-shared-prov-creds' if oe.types.boolean(d.getVar('SOTA_DEPLOY_CREDENTIALS')) else ''}"
14 14
15# If the config file from aktualizr used here is changed, you will need to bump 15# If the config file from aktualizr used here is changed, you will need to bump
16# the version here because of SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS! 16# the version here because of SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS!
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb
index b1bee82..4f32887 100644
--- a/recipes-sota/aktualizr/aktualizr_git.bb
+++ b/recipes-sota/aktualizr/aktualizr_git.bb
@@ -17,7 +17,7 @@ PRIVATE_LIBS_${PN}-ptest = "libaktualizr.so libaktualizr_secondary.so"
17PV = "1.0+git${SRCPV}" 17PV = "1.0+git${SRCPV}"
18PR = "7" 18PR = "7"
19 19
20GARAGE_SIGN_PV = "0.7.1" 20GARAGE_SIGN_PV = "0.7.1-4-gf10c1da"
21 21
22SRC_URI = " \ 22SRC_URI = " \
23 gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH};name=aktualizr \ 23 gitsm://github.com/advancedtelematic/aktualizr;branch=${BRANCH};name=aktualizr \
@@ -26,13 +26,13 @@ SRC_URI = " \
26 file://aktualizr-secondary.service \ 26 file://aktualizr-secondary.service \
27 file://aktualizr-serialcan.service \ 27 file://aktualizr-serialcan.service \
28 file://10-resource-control.conf \ 28 file://10-resource-control.conf \
29 ${@ d.expand("https://tuf-cli-releases.ota.here.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0;name=garagesign") if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''} \ 29 ${@ d.expand("https://tuf-cli-releases.ota.here.com/cli-${GARAGE_SIGN_PV}.tgz;unpack=0;name=garagesign") if not oe.types.boolean(d.getVar('GARAGE_SIGN_AUTOVERSION')) else ''} \
30 " 30 "
31 31
32SRC_URI[garagesign.md5sum] = "febc186527b324b23c5be3affcf90e54" 32SRC_URI[garagesign.md5sum] = "5f8eea81d1559d6fcb28d49c4298727c"
33SRC_URI[garagesign.sha256sum] = "a87c3f39d61492d6f813754159ed7ef1e59966c15726edef4cd188a63cde60d6" 33SRC_URI[garagesign.sha256sum] = "8b2f5bb164f19b41972069d3377e39c2eb9edffd471777161691039e12a71738"
34 34
35SRCREV = "a6392dec3fb9dda3cb8ab8aa10a81b2c0494cb3c" 35SRCREV = "cf44da79555d1897115eb350cbc43db1e213db03"
36BRANCH ?= "master" 36BRANCH ?= "master"
37 37
38S = "${WORKDIR}/git" 38S = "${WORKDIR}/git"
@@ -49,7 +49,7 @@ SYSTEMD_SERVICE_${PN}-secondary = "aktualizr-secondary.service"
49 49
50EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release ${@bb.utils.contains('PTEST_ENABLED', '1', '-DTESTSUITE_VALGRIND=on', '', d)}" 50EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release ${@bb.utils.contains('PTEST_ENABLED', '1', '-DTESTSUITE_VALGRIND=on', '', d)}"
51 51
52GARAGE_SIGN_OPS = "${@ d.expand('-DGARAGE_SIGN_ARCHIVE=${WORKDIR}/cli-${GARAGE_SIGN_PV}.tgz') if d.getVar('GARAGE_SIGN_AUTOVERSION') != '1' else ''}" 52GARAGE_SIGN_OPS = "${@ d.expand('-DGARAGE_SIGN_ARCHIVE=${WORKDIR}/cli-${GARAGE_SIGN_PV}.tgz') if not oe.types.boolean(d.getVar('GARAGE_SIGN_AUTOVERSION')) else ''}"
53PKCS11_ENGINE_PATH = "${libdir}/engines-1.1/pkcs11.so" 53PKCS11_ENGINE_PATH = "${libdir}/engines-1.1/pkcs11.so"
54 54
55PACKAGECONFIG ?= "ostree ${@bb.utils.filter('SOTA_CLIENT_FEATURES', 'hsm serialcan ubootenv', d)}" 55PACKAGECONFIG ?= "ostree ${@bb.utils.filter('SOTA_CLIENT_FEATURES', 'hsm serialcan ubootenv', d)}"
diff --git a/recipes-sota/aktualizr/files/aktualizr-collectd.conf b/recipes-sota/aktualizr/files/aktualizr-collectd.conf
new file mode 100644
index 0000000..35a1f61
--- /dev/null
+++ b/recipes-sota/aktualizr/files/aktualizr-collectd.conf
@@ -0,0 +1,9 @@
1<LoadPlugin processes>
2 Interval 1
3</LoadPlugin>
4<Plugin processes>
5 CollectFileDescriptor true
6 CollectContextSwitch true
7 CollectMemoryMaps true
8 Process "aktualizr"
9</Plugin>
diff --git a/recipes-sota/aktualizr/files/aktualizr.service b/recipes-sota/aktualizr/files/aktualizr.service
index 3d807a1..ae5d23a 100644
--- a/recipes-sota/aktualizr/files/aktualizr.service
+++ b/recipes-sota/aktualizr/files/aktualizr.service
@@ -1,6 +1,7 @@
1[Unit] 1[Unit]
2Description=Aktualizr SOTA Client 2Description=Aktualizr SOTA Client
3After=network-online.target nss-lookup.target 3After=network-online.target nss-lookup.target boot-complete.target
4Requires=boot-complete.target
4Wants=network-online.target 5Wants=network-online.target
5 6
6[Service] 7[Service]
diff --git a/recipes-sota/config/aktualizr-binary-pacman.bb b/recipes-sota/config/aktualizr-binary-pacman.bb
new file mode 100644
index 0000000..36bafb3
--- /dev/null
+++ b/recipes-sota/config/aktualizr-binary-pacman.bb
@@ -0,0 +1,21 @@
1DESCRIPTION = "Configure aktualizr with a binary package manager"
2LICENSE = "MPL-2.0"
3LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MPL-2.0;md5=815ca599c9df247a0c7f619bab123dad"
4
5inherit allarch
6
7SRC_URI = "\
8 file://10-pacman.toml \
9 "
10
11FILES_${PN} = " \
12 ${libdir}/sota/conf.d \
13 ${libdir}/sota/conf.d/10-pacman.toml \
14 "
15
16PR = "1"
17
18do_install() {
19 install -m 0700 -d ${D}${libdir}/sota/conf.d
20 install -m 0644 ${WORKDIR}/10-pacman.toml ${D}${libdir}/sota/conf.d/10-pacman.toml
21}
diff --git a/recipes-sota/config/files/10-pacman.toml b/recipes-sota/config/files/10-pacman.toml
new file mode 100644
index 0000000..a24fd39
--- /dev/null
+++ b/recipes-sota/config/files/10-pacman.toml
@@ -0,0 +1,2 @@
1[pacman]
2type = "none"
diff --git a/recipes-support/boost/boost_1.72.0.bbappend b/recipes-support/boost/boost_1.72.0.bbappend
deleted file mode 100644
index 73ee73d..0000000
--- a/recipes-support/boost/boost_1.72.0.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
1FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3SRC_URI += "file://0001-add-typedef-executor_type.patch \
4 "
diff --git a/recipes-support/boost/files/0001-add-typedef-executor_type.patch b/recipes-support/boost/files/0001-add-typedef-executor_type.patch
deleted file mode 100644
index 1b326a4..0000000
--- a/recipes-support/boost/files/0001-add-typedef-executor_type.patch
+++ /dev/null
@@ -1,56 +0,0 @@
1From 99ad3ebac0b7466d57c98fb9583fbe8789729691 Mon Sep 17 00:00:00 2001
2From: Patrick Vacek <patrickvacek@gmail.com>
3Date: Wed, 4 Mar 2020 12:41:02 +0000
4Subject: [PATCH] add typedef executor_type
5
6Backported from here:
7https://github.com/boostorg/process/commit/6a4d2ff72114ef47c7afaf92e1042aca3dfa41b0
8
9Suggested-by: Kostiantyn Bushko <kbushko@intellias.com>
10Signed-off-by: Patrick Vacek <patrickvacek@gmail.com>
11---
12 boost/process/async_pipe.hpp | 2 ++
13 boost/process/detail/posix/async_pipe.hpp | 1 +
14 boost/process/detail/windows/async_pipe.hpp | 1 +
15 3 files changed, 4 insertions(+)
16
17diff --git a/boost/process/async_pipe.hpp b/boost/process/async_pipe.hpp
18index 101fe1d..a562432 100644
19--- a/boost/process/async_pipe.hpp
20+++ b/boost/process/async_pipe.hpp
21@@ -47,6 +47,8 @@ public:
22 */
23 typedef platform_specific handle_type;
24
25+ typedef typename handle_type::executor_type executor_type;
26+
27 /** Construct a new async_pipe, does automatically open the pipe.
28 * Initializes source and sink with the same io_context.
29 * @note Windows creates a named pipe here, where the name is automatically generated.
30diff --git a/boost/process/detail/posix/async_pipe.hpp b/boost/process/detail/posix/async_pipe.hpp
31index 725a078..a82c057 100644
32--- a/boost/process/detail/posix/async_pipe.hpp
33+++ b/boost/process/detail/posix/async_pipe.hpp
34@@ -23,6 +23,7 @@ class async_pipe
35 public:
36 typedef int native_handle_type;
37 typedef ::boost::asio::posix::stream_descriptor handle_type;
38+ typedef typename handle_type::executor_type executor_type;
39
40 inline async_pipe(boost::asio::io_context & ios) : async_pipe(ios, ios) {}
41
42diff --git a/boost/process/detail/windows/async_pipe.hpp b/boost/process/detail/windows/async_pipe.hpp
43index 06d5f2d..0b447f9 100644
44--- a/boost/process/detail/windows/async_pipe.hpp
45+++ b/boost/process/detail/windows/async_pipe.hpp
46@@ -48,6 +48,7 @@ class async_pipe
47 public:
48 typedef ::boost::winapi::HANDLE_ native_handle_type;
49 typedef ::boost::asio::windows::stream_handle handle_type;
50+ typedef typename handle_type::executor_type executor_type;
51
52 async_pipe(boost::asio::io_context & ios) : async_pipe(ios, ios, make_pipe_name(), true) {}
53 async_pipe(boost::asio::io_context & ios_source, boost::asio::io_context & ios_sink)
54--
552.11.0
56