diff options
author | Patrick Vacek <patrickvacek@gmail.com> | 2019-02-14 09:47:22 +0100 |
---|---|---|
committer | Patrick Vacek <patrickvacek@gmail.com> | 2019-02-14 09:47:22 +0100 |
commit | 20095e84004992a6b779c60e0e4b5db89797004d (patch) | |
tree | eca591462a381165f1db9911ff78529fd365d17b /classes/image_types_ostree.bbclass | |
parent | 62e26ec467116d25a1d5a887b7b43ae1144a7446 (diff) | |
parent | 29c3476c8286649210ab8d731bfa063c76907f3b (diff) | |
download | meta-updater-20095e84004992a6b779c60e0e4b5db89797004d.tar.gz |
Merge branch 'master' of https://github.com/advancedtelematic/meta-updater into backport/thud/garage-sign-lock-etcbackport/thud/garage-sign-lock-etc
Diffstat (limited to 'classes/image_types_ostree.bbclass')
-rw-r--r-- | classes/image_types_ostree.bbclass | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass index 4095de0..29da78e 100644 --- a/classes/image_types_ostree.bbclass +++ b/classes/image_types_ostree.bbclass | |||
@@ -6,10 +6,11 @@ OSTREE_ROOTFS ??= "${WORKDIR}/ostree-rootfs" | |||
6 | OSTREE_COMMIT_SUBJECT ??= "Commit-id: ${IMAGE_NAME}" | 6 | OSTREE_COMMIT_SUBJECT ??= "Commit-id: ${IMAGE_NAME}" |
7 | OSTREE_COMMIT_BODY ??= "" | 7 | OSTREE_COMMIT_BODY ??= "" |
8 | OSTREE_UPDATE_SUMMARY ??= "0" | 8 | OSTREE_UPDATE_SUMMARY ??= "0" |
9 | OSTREE_DEPLOY_DEVICETREE ??= "0" | ||
9 | 10 | ||
10 | BUILD_OSTREE_TARBALL ??= "1" | 11 | BUILD_OSTREE_TARBALL ??= "1" |
11 | 12 | ||
12 | SYSTEMD_USED = "${@oe.utils.ifelse(d.getVar('VIRTUAL-RUNTIME_init_manager', True) == 'systemd', 'true', '')}" | 13 | SYSTEMD_USED = "${@oe.utils.ifelse(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'systemd', 'true', '')}" |
13 | 14 | ||
14 | IMAGE_CMD_TAR = "tar --xattrs --xattrs-include=*" | 15 | IMAGE_CMD_TAR = "tar --xattrs --xattrs-include=*" |
15 | CONVERSION_CMD_tar = "touch ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}; ${IMAGE_CMD_TAR} --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.tar -C ${OTA_IMAGE_ROOTFS} . || [ $? -eq 1 ]" | 16 | CONVERSION_CMD_tar = "touch ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}; ${IMAGE_CMD_TAR} --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.tar -C ${OTA_IMAGE_ROOTFS} . || [ $? -eq 1 ]" |
@@ -103,18 +104,27 @@ IMAGE_CMD_ostree () { | |||
103 | ln -sf var/roothome root | 104 | ln -sf var/roothome root |
104 | fi | 105 | fi |
105 | 106 | ||
106 | checksum=`sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " "` | ||
107 | |||
108 | cp ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} boot/vmlinuz-${checksum} | ||
109 | |||
110 | if [ "${KERNEL_IMAGETYPE}" = "fitImage" ]; then | 107 | if [ "${KERNEL_IMAGETYPE}" = "fitImage" ]; then |
111 | # this is a hack for ostree not to override init= in kernel cmdline - | 108 | # this is a hack for ostree not to override init= in kernel cmdline - |
112 | # make it think that the initramfs is present (while it is in FIT image) | 109 | # make it think that the initramfs is present (while it is in FIT image) |
110 | # since initramfs is fake file, it does not need to be included in checksum | ||
111 | checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ") | ||
113 | touch boot/initramfs-${checksum} | 112 | touch boot/initramfs-${checksum} |
114 | else | 113 | else |
114 | if [ "${OSTREE_DEPLOY_DEVICETREE}" = "1" ] && [ -n "${KERNEL_DEVICETREE}" ]; then | ||
115 | checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} ${KERNEL_DEVICETREE} | sha256sum | cut -f 1 -d " ") | ||
116 | for DTS_FILE in ${KERNEL_DEVICETREE}; do | ||
117 | DTS_FILE_BASENAME=$(basename ${DTS_FILE}) | ||
118 | cp ${DEPLOY_DIR_IMAGE}/${DTS_FILE_BASENAME} boot/devicetree-${DTS_FILE_BASENAME}-${checksum} | ||
119 | done | ||
120 | else | ||
121 | checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} | sha256sum | cut -f 1 -d " ") | ||
122 | fi | ||
115 | cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} boot/initramfs-${checksum} | 123 | cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} boot/initramfs-${checksum} |
116 | fi | 124 | fi |
117 | 125 | ||
126 | cp ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} boot/vmlinuz-${checksum} | ||
127 | |||
118 | # Copy image manifest | 128 | # Copy image manifest |
119 | cat ${IMAGE_MANIFEST} | cut -d " " -f1,3 > usr/package.manifest | 129 | cat ${IMAGE_MANIFEST} | cut -d " " -f1,3 > usr/package.manifest |
120 | } | 130 | } |
@@ -160,6 +170,9 @@ IMAGE_CMD_ostreepush () { | |||
160 | 170 | ||
161 | IMAGE_TYPEDEP_garagesign = "ostreepush" | 171 | IMAGE_TYPEDEP_garagesign = "ostreepush" |
162 | do_image_garagesign[depends] += "unzip-native:do_populate_sysroot" | 172 | do_image_garagesign[depends] += "unzip-native:do_populate_sysroot" |
173 | # This lock solves OTA-1866, which is that removing GARAGE_SIGN_REPO while using | ||
174 | # garage-sign simultaneously for two images often causes problems. | ||
175 | do_image_garagesign[lockfiles] += "${DEPLOY_DIR_IMAGE}/garagesign.lock" | ||
163 | IMAGE_CMD_garagesign () { | 176 | IMAGE_CMD_garagesign () { |
164 | if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then | 177 | if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then |
165 | # if credentials are issued by a server that doesn't support offline signing, exit silently | 178 | # if credentials are issued by a server that doesn't support offline signing, exit silently |