From 0f1de8fe3982ab24c3f9e10268584265f227be8d Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 24 Apr 2018 15:07:27 +0200 Subject: [PATCH 1/3] scripts/image: create .sha256 files of tar and zip files Signed-off-by: Matthias Reichl --- scripts/image | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/scripts/image b/scripts/image index d7644be694..e52bdaf24b 100755 --- a/scripts/image +++ b/scripts/image @@ -319,6 +319,11 @@ if [ "$1" = "release" -o "$1" = "mkimage" -o "$1" = "amlpkg" -o "$1" = "noobs" ] # create release tarball tar cf $TARGET_IMG/$IMAGE_NAME.tar -C target $IMAGE_NAME + # create sha256 checksum of tarball + ( cd $TARGET_IMG + sha256sum ${IMAGE_NAME}.tar > ${IMAGE_NAME}.tar.sha256 + ) + # create image files if requested if [[ ( "$1" = "amlpkg" || "$1" = "noobs" || "$1" = "mkimage" ) && -n "$BOOTLOADER" ]]; then # projects can set KERNEL_NAME (kernel.img) @@ -423,6 +428,11 @@ if [ "$1" = "release" -o "$1" = "mkimage" -o "$1" = "amlpkg" -o "$1" = "noobs" ] zip -q $TARGET_IMG/$IMAGE_NAME.zip * + # create sha256 checksum of zip + ( cd $TARGET_IMG + sha256sum ${IMAGE_NAME}.zip > ${IMAGE_NAME}.zip.sha256 + ) + popd > /dev/null popd > /dev/null @@ -531,6 +541,11 @@ if [ "$1" = "release" -o "$1" = "mkimage" -o "$1" = "amlpkg" -o "$1" = "noobs" ] # create release tarball tar cf $TARGET_IMG/${IMAGE_NAME}-$1.tar -C $TARGET ${IMAGE_NAME}-$1 + + # create sha256 checksum of tarball + ( cd $TARGET_IMG + sha256sum ${IMAGE_NAME}-$1.tar > ${IMAGE_NAME}-$1.tar.sha256 + ) fi if [ -d $RELEASE_DIR ]; then From 6d9031b9323f7ef3ec38f8096136989850dce188 Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 24 Apr 2018 20:43:30 +0200 Subject: [PATCH 2/3] scripts/mkimage: drop string substition to change DISK suffix Signed-off-by: Matthias Reichl --- scripts/mkimage | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/scripts/mkimage b/scripts/mkimage index 6c64b454c5..7868b19fc5 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -43,7 +43,8 @@ DISK_START_PADDING=$(( ($SYSTEM_PART_START + 2048 - 1) / 2048 )) DISK_GPT_PADDING=1 DISK_SIZE=$(( $DISK_START_PADDING + $SYSTEM_SIZE + $STORAGE_SIZE + $DISK_GPT_PADDING )) - DISK="$TARGET_IMG/$IMAGE_NAME.img" + DISK_BASENAME="$TARGET_IMG/$IMAGE_NAME" + DISK="${DISK_BASENAME}.img" # functions cleanup() { @@ -305,7 +306,7 @@ fi # bootloader if [ "$PROJECT" = "Generic" ]; then echo "image: creating open virtual appliance..." # duplicate $DISK so anything we do to it directly doesn't effect original - dd if="$DISK" of="${DISK/img/tmp}" bs=1M >"$SAVE_ERROR" 2>&1 || show_error + dd if="$DISK" of="${DISK_BASENAME}.tmp" bs=1M >"$SAVE_ERROR" 2>&1 || show_error # change syslinux default to 'run' echo "image: modifying fs on part1 for open virtual appliance..." sed -i "/DEFAULT/ s/installer/run/" "$LE_TMP"/syslinux.cfg @@ -318,20 +319,20 @@ fi # bootloader sync # merge modified part1 back to tmp disk image echo "image: merging part1 back to open virtual appliance..." - dd if="$LE_TMP/part1.fat" of="${DISK/img/tmp}" bs=512 seek="$SYSTEM_PART_START" conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error + dd if="$LE_TMP/part1.fat" of="${DISK_BASENAME}.tmp" bs=512 seek="$SYSTEM_PART_START" conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error # create vmdk from tmp $DISK - qemu-img convert -O vmdk -o subformat=streamOptimized "${DISK/img/tmp}" "${DISK/img/vmdk}" + qemu-img convert -O vmdk -o subformat=streamOptimized "${DISK_BASENAME}.tmp" "${DISK_BASENAME}.vmdk" # generate ovf from template - sed -e "s,@DISTRO@,$DISTRO,g" -e "s,@DISK@,$(basename ${DISK/.img}),g" \ + sed -e "s,@DISTRO@,$DISTRO,g" -e "s,@DISK@,${IMAGE_NAME},g" \ -e "s,@DISK_SIZE@,$(($DISK_SIZE*1024*1024)),g" \ - $PROJECT_DIR/$PROJECT/config/ovf.template > ${DISK/img/ovf} + $PROJECT_DIR/$PROJECT/config/ovf.template > ${DISK_BASENAME}.ovf # combine ovf and vmdk into official ova - tar -C $TARGET_IMG -cf ${DISK/img/ova} $(basename ${DISK/img/ovf}) $(basename ${DISK/img/vmdk}) + tar -C $TARGET_IMG -cf ${DISK_BASENAME}.ova ${IMAGE_NAME}.ovf ${IMAGE_NAME}.vmdk echo "image: cleaning up..." # remove tmp $DISK, vmdk and ovf - rm ${DISK/img/tmp} ${DISK/img/vmdk} ${DISK/img/ovf} + rm ${DISK_BASENAME}.tmp ${DISK_BASENAME}.vmdk ${DISK_BASENAME}.ovf # set owner - [ -n "$SUDO_USER" ] && chown $SUDO_USER: ${DISK/img/ova} + [ -n "$SUDO_USER" ] && chown $SUDO_USER: ${DISK_BASENAME}.ova fi # gzip From 71b9eacbc6673ebb82baabcf0b50d929f91e5c0a Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Tue, 24 Apr 2018 20:43:30 +0200 Subject: [PATCH 3/3] scripts/mkimage: create .sha256 files of images Signed-off-by: Matthias Reichl --- scripts/mkimage | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scripts/mkimage b/scripts/mkimage index 7868b19fc5..95344f4ce3 100755 --- a/scripts/mkimage +++ b/scripts/mkimage @@ -328,6 +328,10 @@ fi # bootloader $PROJECT_DIR/$PROJECT/config/ovf.template > ${DISK_BASENAME}.ovf # combine ovf and vmdk into official ova tar -C $TARGET_IMG -cf ${DISK_BASENAME}.ova ${IMAGE_NAME}.ovf ${IMAGE_NAME}.vmdk + # create sha256 checksum of ova image + ( cd $TARGET_IMG + sha256sum ${IMAGE_NAME}.ova > ${IMAGE_NAME}.ova.sha256 + ) echo "image: cleaning up..." # remove tmp $DISK, vmdk and ovf rm ${DISK_BASENAME}.tmp ${DISK_BASENAME}.vmdk ${DISK_BASENAME}.ovf @@ -343,6 +347,10 @@ fi # bootloader if [ -n "$SUDO_USER" ] ; then chown $SUDO_USER: $DISK.gz fi + # create sha256 checksum of image + ( cd $TARGET_IMG + sha256sum $(basename $DISK).gz > $(basename $DISK).gz.sha256 + ) # cleanup cleanup