mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
Merge pull request #1898 from zalaare/pr_libreelec-8.2_ova-syslinux-default-and-ova-name
build system: drop .img extension for the open virtual appliance [backport]
This commit is contained in:
commit
c30b314d63
@ -89,6 +89,7 @@ trap cleanup SIGINT
|
|||||||
parted -s "$DISK" set 1 boot on
|
parted -s "$DISK" set 1 boot on
|
||||||
fi
|
fi
|
||||||
sync
|
sync
|
||||||
|
|
||||||
# create part2
|
# create part2
|
||||||
echo "image: creating part2..."
|
echo "image: creating part2..."
|
||||||
STORAGE_PART_START=$(( $SYSTEM_PART_END + 1 ))
|
STORAGE_PART_START=$(( $SYSTEM_PART_END + 1 ))
|
||||||
@ -282,7 +283,6 @@ fi # bootloader
|
|||||||
echo "image: merging part2 back to image..."
|
echo "image: merging part2 back to image..."
|
||||||
dd if="$LE_TMP/part2.ext4" of="$DISK" bs=512 seek="$STORAGE_PART_START" conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error
|
dd if="$LE_TMP/part2.ext4" of="$DISK" bs=512 seek="$STORAGE_PART_START" conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error
|
||||||
|
|
||||||
|
|
||||||
# extract part1 from image to run fsck
|
# extract part1 from image to run fsck
|
||||||
echo "image: extracting part1 from image..."
|
echo "image: extracting part1 from image..."
|
||||||
SYSTEM_PART_COUNT=$(( $SYSTEM_PART_END - $SYSTEM_PART_START + 1 ))
|
SYSTEM_PART_COUNT=$(( $SYSTEM_PART_END - $SYSTEM_PART_START + 1 ))
|
||||||
@ -291,15 +291,34 @@ fi # bootloader
|
|||||||
echo "image: checking filesystem on part1..."
|
echo "image: checking filesystem on part1..."
|
||||||
fsck -n $LE_TMP/part1.fat >"$SAVE_ERROR" 2>&1 || show_error
|
fsck -n $LE_TMP/part1.fat >"$SAVE_ERROR" 2>&1 || show_error
|
||||||
|
|
||||||
# create virtual images
|
# create virtual image
|
||||||
if [ "$PROJECT" = "Generic" ]; then
|
if [ "$PROJECT" = "Generic" ]; then
|
||||||
echo "image: creating open virtual appliance..."
|
echo "image: creating open virtual appliance..."
|
||||||
qemu-img convert -O vmdk -o subformat=streamOptimized "$DISK" "$DISK.vmdk"
|
# duplicate $DISK so anything we do to it directly doesn't effect original
|
||||||
sed -e "s,@DISTRO@,$DISTRO,g" -e "s,@DISK@,$(basename $DISK),g" -e "s,@DISK_SIZE@,$(($DISK_SIZE*1024*1024)),g" $PROJECT_DIR/$PROJECT/config/ovf.template > $DISK.ovf
|
dd if="$DISK" of="${DISK/img/tmp}" bs=1M >"$SAVE_ERROR" 2>&1 || show_error
|
||||||
tar -C $TARGET_IMG -cf $DISK.ova $(basename $DISK).ovf $(basename $DISK).vmdk
|
# 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
|
||||||
|
# FIXME: an unalias should work here, but it does not; call mcopy directly
|
||||||
|
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/syslinux.cfg ::/EFI/BOOT
|
||||||
|
$TOOLCHAIN/bin/mcopy -i $LE_TMP/part1.fat -o "$LE_TMP"/syslinux.cfg ::
|
||||||
|
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
|
||||||
|
# create vmdk from tmp $DISK
|
||||||
|
qemu-img convert -O vmdk -o subformat=streamOptimized "${DISK/img/tmp}" "${DISK/img/vmdk}"
|
||||||
|
# generate ovf from template
|
||||||
|
sed -e "s,@DISTRO@,$DISTRO,g" -e "s,@DISK@,$(basename ${DISK/.img}),g" \
|
||||||
|
-e "s,@DISK_SIZE@,$(($DISK_SIZE*1024*1024)),g" \
|
||||||
|
$PROJECT_DIR/$PROJECT/config/ovf.template > ${DISK/img/ovf}
|
||||||
|
# combine ovf and vmdk into official ova
|
||||||
|
tar -C $TARGET_IMG -cf ${DISK/img/ova} $(basename ${DISK/img/ovf}) $(basename ${DISK/img/vmdk})
|
||||||
echo "image: cleaning up..."
|
echo "image: cleaning up..."
|
||||||
rm $DISK.vmdk $DISK.ovf
|
# remove tmp $DISK, vmdk and ovf
|
||||||
[ -n "$SUDO_USER" ] && chown $SUDO_USER: $DISK.ova
|
rm ${DISK/img/tmp} ${DISK/img/vmdk} ${DISK/img/ovf}
|
||||||
|
# set owner
|
||||||
|
[ -n "$SUDO_USER" ] && chown $SUDO_USER: ${DISK/img/ova}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# gzip
|
# gzip
|
||||||
|
Loading…
x
Reference in New Issue
Block a user