summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlbonn <lbonn@users.noreply.github.com>2020-06-03 16:02:49 +0200
committerGitHub <noreply@github.com>2020-06-03 16:02:49 +0200
commitc960133497d72ceb875a0259b8a1bb2c2762127a (patch)
treef5bb5008eacb69dbcce55b4945a8f12cb0045a4b
parentb64c291f564a539d9ffb4852d8e1405a573c5db9 (diff)
parent7da4f5619dca76c49358c9885993ec46b69a6bb0 (diff)
downloadmeta-updater-c960133497d72ceb875a0259b8a1bb2c2762127a.tar.gz
Merge pull request #733 from advancedtelematic/feat/warrior/2020.7
-rw-r--r--classes/image_types_ostree.bbclass58
-rw-r--r--classes/image_types_ota.bbclass25
-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
9 files changed, 106 insertions, 51 deletions
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass
index 533d338..3b86b35 100644
--- a/classes/image_types_ostree.bbclass
+++ b/classes/image_types_ostree.bbclass
@@ -19,14 +19,24 @@ CONVERSIONTYPES_append = " tar"
19 19
20REQUIRED_DISTRO_FEATURES = "usrmerge" 20REQUIRED_DISTRO_FEATURES = "usrmerge"
21TAR_IMAGE_ROOTFS_task-image-ostree = "${OSTREE_ROOTFS}" 21TAR_IMAGE_ROOTFS_task-image-ostree = "${OSTREE_ROOTFS}"
22
23python prepare_ostree_rootfs() {
24 import oe.path
25 import shutil
26
27 ostree_rootfs = d.getVar("OSTREE_ROOTFS")
28 if os.path.lexists(ostree_rootfs):
29 bb.utils.remove(ostree_rootfs, True)
30
31 # Copy required as we change permissions on some files.
32 image_rootfs = d.getVar("IMAGE_ROOTFS")
33 oe.path.copyhardlinktree(image_rootfs, ostree_rootfs)
34}
35
22do_image_ostree[dirs] = "${OSTREE_ROOTFS}" 36do_image_ostree[dirs] = "${OSTREE_ROOTFS}"
23do_image_ostree[cleandirs] = "${OSTREE_ROOTFS}" 37do_image_ostree[prefuncs] += "prepare_ostree_rootfs"
24do_image_ostree[depends] = "coreutils-native:do_populate_sysroot virtual/kernel:do_deploy ${INITRAMFS_IMAGE}:do_image_complete" 38do_image_ostree[depends] = "coreutils-native:do_populate_sysroot virtual/kernel:do_deploy ${INITRAMFS_IMAGE}:do_image_complete"
25IMAGE_CMD_ostree () { 39IMAGE_CMD_ostree () {
26 cp -a ${IMAGE_ROOTFS}/* ${OSTREE_ROOTFS}
27 chmod a+rx ${OSTREE_ROOTFS}
28 sync
29
30 for d in var/*; do 40 for d in var/*; do
31 if [ "${d}" != "var/local" ]; then 41 if [ "${d}" != "var/local" ]; then
32 rm -rf ${d} 42 rm -rf ${d}
@@ -37,9 +47,6 @@ IMAGE_CMD_ostree () {
37 mkdir sysroot 47 mkdir sysroot
38 ln -sf sysroot/ostree ostree 48 ln -sf sysroot/ostree ostree
39 49
40 rm -rf tmp/*
41 ln -sf sysroot/tmp tmp
42
43 mkdir -p usr/rootdirs 50 mkdir -p usr/rootdirs
44 51
45 mv etc usr/ 52 mv etc usr/
@@ -63,13 +70,11 @@ IMAGE_CMD_ostree () {
63 mkdir -p usr/share/sota/ 70 mkdir -p usr/share/sota/
64 echo -n "${OSTREE_BRANCHNAME}" > usr/share/sota/branchname 71 echo -n "${OSTREE_BRANCHNAME}" > usr/share/sota/branchname
65 72
66 # Preserve data in /home to be later copied to /sysroot/home by sysroot 73 # home directories get copied from the OE root later to the final sysroot
67 # generating procedure 74 # Create a symlink to var/rootdirs/home to make sure the OSTree deployment
68 mkdir -p usr/homedirs 75 # redirects /home to /var/rootdirs/home.
69 if [ -d "home" ] && [ ! -L "home" ]; then 76 rm -rf home/
70 mv home usr/homedirs/home 77 ln -sf var/rootdirs/home home
71 ln -sf var/rootdirs/home home
72 fi
73 78
74 # Move persistent directories to /var 79 # Move persistent directories to /var
75 dirs="opt mnt media srv" 80 dirs="opt mnt media srv"
@@ -137,7 +142,7 @@ IMAGE_CMD_ostree () {
137 checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ") 142 checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ")
138 touch boot/initramfs-${checksum} 143 touch boot/initramfs-${checksum}
139 else 144 else
140 if [ "${OSTREE_DEPLOY_DEVICETREE}" = "1" ] && [ -n "${KERNEL_DEVICETREE}" ]; then 145 if [ ${@ oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}')} = True ] && [ -n "${KERNEL_DEVICETREE}" ]; then
141 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} ${KERNEL_DEVICETREE} | sha256sum | cut -f 1 -d " ")
142 for DTS_FILE in ${KERNEL_DEVICETREE}; do 147 for DTS_FILE in ${KERNEL_DEVICETREE}; do
143 DTS_FILE_BASENAME=$(basename ${DTS_FILE}) 148 DTS_FILE_BASENAME=$(basename ${DTS_FILE})
@@ -164,25 +169,20 @@ IMAGE_CMD_ostreecommit () {
164 fi 169 fi
165 170
166 # Commit the result 171 # Commit the result
167 ostree --repo=${OSTREE_REPO} commit \ 172 ostree_target_hash=$(ostree --repo=${OSTREE_REPO} commit \
168 --tree=dir=${OSTREE_ROOTFS} \ 173 --tree=dir=${OSTREE_ROOTFS} \
169 --skip-if-unchanged \ 174 --skip-if-unchanged \
170 --branch=${OSTREE_BRANCHNAME} \ 175 --branch=${OSTREE_BRANCHNAME} \
171 --subject="${OSTREE_COMMIT_SUBJECT}" \ 176 --subject="${OSTREE_COMMIT_SUBJECT}" \
172 --body="${OSTREE_COMMIT_BODY}" \ 177 --body="${OSTREE_COMMIT_BODY}" \
173 --add-metadata-string=version="${OSTREE_COMMIT_VERSION}" \ 178 --add-metadata-string=version="${OSTREE_COMMIT_VERSION}" \
174 --bind-ref="${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}" 179 ${EXTRA_OSTREE_COMMIT})
175 180
176 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
177 ostree --repo=${OSTREE_REPO} summary -u 184 ostree --repo=${OSTREE_REPO} summary -u
178 fi 185 fi
179
180 # To enable simultaneous bitbaking of two images with the same branch name,
181 # create a new ref in the repo using the basename of the image. (This first
182 # requires deleting it if it already exists.) Fixes OTA-2211.
183 ostree --repo=${OSTREE_REPO} refs --delete ${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}
184 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME})
185 ostree --repo=${OSTREE_REPO} refs --create=${OSTREE_BRANCHNAME}-${IMAGE_BASENAME} ${ostree_target_hash}
186} 186}
187 187
188IMAGE_TYPEDEP_ostreepush = "ostreecommit" 188IMAGE_TYPEDEP_ostreepush = "ostreecommit"
@@ -197,7 +197,7 @@ IMAGE_CMD_ostreepush () {
197 197
198 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then 198 if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then
199 if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then 199 if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then
200 garage-push -vv --repo=${OSTREE_REPO} \ 200 garage-push --loglevel 0 --repo=${OSTREE_REPO} \
201 --ref=${OSTREE_BRANCHNAME} \ 201 --ref=${OSTREE_BRANCHNAME} \
202 --credentials=${SOTA_PACKED_CREDENTIALS} \ 202 --credentials=${SOTA_PACKED_CREDENTIALS} \
203 --cacert=${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt \ 203 --cacert=${STAGING_ETCDIR_NATIVE}/ssl/certs/ca-certificates.crt \
@@ -232,7 +232,7 @@ IMAGE_CMD_garagesign () {
232 --home-dir ${GARAGE_SIGN_REPO} \ 232 --home-dir ${GARAGE_SIGN_REPO} \
233 --credentials ${SOTA_PACKED_CREDENTIALS} 233 --credentials ${SOTA_PACKED_CREDENTIALS}
234 234
235 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}) 235 ostree_target_hash=$(cat ${WORKDIR}/ostree_manifest)
236 236
237 # 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
238 target_version=${ostree_target_hash} 238 target_version=${ostree_target_hash}
@@ -308,7 +308,7 @@ IMAGE_CMD_garagecheck () {
308 # 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
309 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
310 310
311 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}) 311 ostree_target_hash=$(cat ${WORKDIR}/ostree_manifest)
312 312
313 garage-check --ref=${ostree_target_hash} \ 313 garage-check --ref=${ostree_target_hash} \
314 --credentials=${SOTA_PACKED_CREDENTIALS} \ 314 --credentials=${SOTA_PACKED_CREDENTIALS} \
diff --git a/classes/image_types_ota.bbclass b/classes/image_types_ota.bbclass
index 2cc8913..ad067da 100644
--- a/classes/image_types_ota.bbclass
+++ b/classes/image_types_ota.bbclass
@@ -45,14 +45,17 @@ do_image_ota[cleandirs] = "${OTA_SYSROOT}"
45do_image_ota[depends] = "${@'grub:do_populate_sysroot' if d.getVar('OSTREE_BOOTLOADER') == 'grub' else ''} \ 45do_image_ota[depends] = "${@'grub:do_populate_sysroot' if d.getVar('OSTREE_BOOTLOADER') == 'grub' else ''} \
46 ${@'virtual/bootloader:do_deploy' if d.getVar('OSTREE_BOOTLOADER') == 'u-boot' else ''}" 46 ${@'virtual/bootloader:do_deploy' if d.getVar('OSTREE_BOOTLOADER') == 'u-boot' else ''}"
47IMAGE_CMD_ota () { 47IMAGE_CMD_ota () {
48 export OSTREE_BOOT_PARTITION=${OSTREE_BOOT_PARTITION}
49
50 ostree admin --sysroot=${OTA_SYSROOT} init-fs ${OTA_SYSROOT} 48 ostree admin --sysroot=${OTA_SYSROOT} init-fs ${OTA_SYSROOT}
51 ostree admin --sysroot=${OTA_SYSROOT} os-init ${OSTREE_OSNAME} 49 ostree admin --sysroot=${OTA_SYSROOT} os-init ${OSTREE_OSNAME}
50
51 # Preparation required to steer ostree bootloader detection
52 mkdir -p ${OTA_SYSROOT}/boot/loader.0 52 mkdir -p ${OTA_SYSROOT}/boot/loader.0
53 ln -s loader.0 ${OTA_SYSROOT}/boot/loader 53 ln -s loader.0 ${OTA_SYSROOT}/boot/loader
54 54
55 if [ "${OSTREE_BOOTLOADER}" = "grub" ]; then 55 if [ "${OSTREE_BOOTLOADER}" = "grub" ]; then
56 # Used by ostree-grub-generator called by the ostree binary
57 export OSTREE_BOOT_PARTITION=${OSTREE_BOOT_PARTITION}
58
56 mkdir -p ${OTA_SYSROOT}/boot/grub2 59 mkdir -p ${OTA_SYSROOT}/boot/grub2
57 ln -s ../loader/grub.cfg ${OTA_SYSROOT}/boot/grub2/grub.cfg 60 ln -s ../loader/grub.cfg ${OTA_SYSROOT}/boot/grub2/grub.cfg
58 elif [ "${OSTREE_BOOTLOADER}" = "u-boot" ]; then 61 elif [ "${OSTREE_BOOTLOADER}" = "u-boot" ]; then
@@ -61,15 +64,25 @@ IMAGE_CMD_ota () {
61 bbfatal "Invalid bootloader: ${OSTREE_BOOTLOADER}" 64 bbfatal "Invalid bootloader: ${OSTREE_BOOTLOADER}"
62 fi 65 fi
63 66
64 ostree_target_hash=$(cat ${OSTREE_REPO}/refs/heads/${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}) 67 ostree_target_hash=$(cat ${WORKDIR}/ostree_manifest)
65 68
69 # Use OSTree hash to avoid any potential race conditions between
70 # multiple builds accessing the same ${OSTREE_REPO}.
66 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}
67 kargs_list="" 72 kargs_list=""
68 for arg in ${OSTREE_KERNEL_ARGS}; do 73 for arg in ${OSTREE_KERNEL_ARGS}; do
69 kargs_list="${kargs_list} --karg-append=$arg" 74 kargs_list="${kargs_list} --karg-append=$arg"
70 done 75 done
71 76
72 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}
73 86
74 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
75 # Create /var/sota if it doesn't exist yet 88 # Create /var/sota if it doesn't exist yet
@@ -77,8 +90,8 @@ IMAGE_CMD_ota () {
77 # Ensure the permissions are correctly set 90 # Ensure the permissions are correctly set
78 chmod 700 ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/sota 91 chmod 700 ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/sota
79 92
80 cp -a ${OSTREE_ROOTFS}/var/local ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/ || true 93 cp -a ${IMAGE_ROOTFS}/var/local ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/ || true
81 cp -a ${OSTREE_ROOTFS}/usr/homedirs/home ${OTA_SYSROOT}/ || true 94 cp -a ${IMAGE_ROOTFS}/home ${OTA_SYSROOT}/ || true
82 # Ensure that /var/local exists (AGL symlinks /usr/local to /var/local) 95 # Ensure that /var/local exists (AGL symlinks /usr/local to /var/local)
83 install -d ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/local 96 install -d ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/local
84 # Set package version for the first deployment 97 # Set package version for the first deployment
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 a46eab0..56a6389 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>