794 |
794 |
ova_remove_old_tmp_files
|
795 |
795 |
ova_setup_ovf_file
|
796 |
796 |
ova_create_raw_backed_file
|
797 |
|
/bin/echo -n ">>> Creating mdconfig image ${OVFPATH}/${OVFVMDK}.raw... " | tee -a ${LOGFILE}
|
798 |
|
MD=$(mdconfig -a -t vnode -f ${OVFPATH}/${OVFVMDK}.raw)
|
|
797 |
/bin/echo -n ">>> Creating mdconfig image ${IMAGES_FINAL_DIR}/${OVFVMDK}.raw... " | tee -a ${LOGFILE}
|
|
798 |
MD=$(mdconfig -a -t vnode -f ${IMAGES_FINAL_DIR}/${OVFVMDK}.raw)
|
799 |
799 |
# Just in case
|
800 |
800 |
trap "mdconfig -d -u ${MD}" 1 2 15 EXIT
|
801 |
801 |
|
... | ... | |
820 |
820 |
BUILDPLATFORM=$(uname -p)
|
821 |
821 |
POPULATEDSIZE=$(du -d0 -m $FINAL_CHROOT_DIR | awk '{ print \$1 }')
|
822 |
822 |
POPULATEDSIZEBYTES=$(echo "${POPULATEDSIZE}*1024^2" | bc)
|
823 |
|
REFERENCESSIZE=$(stat -f "%z" ${OVFPATH}/${OVFVMDK})
|
|
823 |
REFERENCESSIZE=$(stat -f "%z" ${IMAGES_FINAL_DIR}/${OVFVMDK})
|
824 |
824 |
echo ">>> Setting REFERENCESSIZE to ${REFERENCESSIZE}..." | tee -a ${LOGFILE}
|
825 |
|
file_search_replace REFERENCESSIZE ${REFERENCESSIZE} ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
825 |
file_search_replace REFERENCESSIZE ${REFERENCESSIZE} ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
826 |
826 |
echo ">>> Setting POPULATEDSIZEBYTES to ${POPULATEDSIZEBYTES}..." | tee -a ${LOGFILE}
|
827 |
827 |
# OperatingSystemSection (${PRODUCT_NAME}.ovf)
|
828 |
828 |
# 42 FreeBSD 32-Bit
|
829 |
829 |
# 78 FreeBSD 64-Bit
|
830 |
830 |
if [ "$BUILDPLATFORM" = "i386" ]; then
|
831 |
|
file_search_replace '"101"' '"42"' ${OVFPATH}/${PRODUCT_NAME}.ovf
|
832 |
|
file_search_replace 'FreeBSD XX-Bit' 'FreeBSD' ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
831 |
file_search_replace '"101"' '"42"' ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
|
832 |
file_search_replace 'FreeBSD XX-Bit' 'FreeBSD' ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
833 |
833 |
fi
|
834 |
834 |
if [ "$BUILDPLATFORM" = "amd64" ]; then
|
835 |
|
file_search_replace '"101"' '"78"' ${OVFPATH}/${PRODUCT_NAME}.ovf
|
836 |
|
file_search_replace 'FreeBSD XX-Bit' 'FreeBSD 64-Bit' ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
835 |
file_search_replace '"101"' '"78"' ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
|
836 |
file_search_replace 'FreeBSD XX-Bit' 'FreeBSD 64-Bit' ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
837 |
837 |
fi
|
838 |
|
file_search_replace DISKSECTIONPOPULATEDSIZE $POPULATEDSIZEBYTES ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
838 |
file_search_replace DISKSECTIONPOPULATEDSIZE $POPULATEDSIZEBYTES ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
839 |
839 |
# 10737254400 = 10240MB = virtual box vmdk file size XXX grab this value from vbox creation
|
840 |
840 |
# 10737418240 = 10GB
|
841 |
841 |
echo ">>> Setting DISKSECTIONALLOCATIONUNITS to 10737254400..." | tee -a ${LOGFILE}
|
842 |
|
file_search_replace DISKSECTIONALLOCATIONUNITS $OVA_DISKSECTIONALLOCATIONUNITS ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
842 |
file_search_replace DISKSECTIONALLOCATIONUNITS $OVA_DISKSECTIONALLOCATIONUNITS ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
843 |
843 |
echo ">>> Setting DISKSECTIONCAPACITY to 10737418240..." | tee -a ${LOGFILE}
|
844 |
|
file_search_replace DISKSECTIONCAPACITY $OVADISKSIZE ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
844 |
file_search_replace DISKSECTIONCAPACITY $OVADISKSIZE ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
845 |
845 |
echo ">>> Repacking OVA with universal OVF file..." | tee -a ${LOGFILE}
|
846 |
|
mv ${OVFPATH}/${OVFVMDK} ${OVFPATH}/${PRODUCT_NAME}-disk1.vmdk
|
847 |
|
gtar -C ${OVFPATH} -cpf ${PRODUCT_NAME}.ova ${PRODUCT_NAME}.ovf ${PRODUCT_NAME}-disk1.vmdk
|
848 |
|
rm $OVFPATH/${PRODUCT_NAME}-disk1.vmdk
|
849 |
|
ls -lah ${OVFPATH}/${PRODUCT_NAME}*ov*
|
|
846 |
mv ${IMAGES_FINAL_DIR}/${OVFVMDK} ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-disk1.vmdk
|
|
847 |
gtar -C ${IMAGES_FINAL_DIR} -cpf ${PRODUCT_NAME}.ova ${PRODUCT_NAME}.ovf ${PRODUCT_NAME}-disk1.vmdk
|
|
848 |
rm $IMAGES_FINAL_DIR/${PRODUCT_NAME}-disk1.vmdk
|
|
849 |
ls -lah ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}*ov*
|
850 |
850 |
}
|
851 |
851 |
|
852 |
852 |
# called from create_ova_image
|
... | ... | |
876 |
876 |
# called from create_ova_image
|
877 |
877 |
ova_setup_ovf_file() {
|
878 |
878 |
if [ -f ${OVFFILE} ]; then
|
879 |
|
cp ${OVFFILE} ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
879 |
cp ${OVFFILE} ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
880 |
880 |
fi
|
881 |
881 |
|
882 |
|
if [ ! -f ${OVFPATH}/${PRODUCT_NAME}.ovf ]; then
|
883 |
|
cp ${BUILDER_TOOLS}/conf/ovf/${PRODUCT_NAME}.ovf ${OVFPATH}/${PRODUCT_NAME}.ovf
|
884 |
|
file_search_replace PRODUCT_VERSION $PRODUCT_VERSION ${OVFPATH}/${PRODUCT_NAME}.ovf
|
885 |
|
file_search_replace PRODUCT_URL $PRODUCT_URL ${OVFPATH}/${PRODUCT_NAME}.ovf
|
|
882 |
if [ ! -f ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf ]; then
|
|
883 |
cp ${BUILDER_TOOLS}/conf/ovf/${PRODUCT_NAME}.ovf ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
|
884 |
file_search_replace PRODUCT_VERSION $PRODUCT_VERSION ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
|
885 |
file_search_replace PRODUCT_URL $PRODUCT_URL ${IMAGES_FINAL_DIR}/${PRODUCT_NAME}.ovf
|
886 |
886 |
fi
|
887 |
887 |
}
|
888 |
888 |
|
... | ... | |
908 |
908 |
DISKSIZE=$OVADISKSIZE
|
909 |
909 |
BLOCKSIZE=$OVABLOCKSIZE
|
910 |
910 |
COUNT=$((${DISKSIZE}/${BLOCKSIZE}))
|
911 |
|
DISKFILE=${OVFPATH}/${OVFVMDK}.raw
|
|
911 |
DISKFILE=${IMAGES_FINAL_DIR}/${OVFVMDK}.raw
|
912 |
912 |
echo ">>> Creating raw backing file ${DISKFILE} (Disk Size: ${DISKSIZE}, Block Size: ${BLOCKSIZE}, Count: ${COUNT})..." | tee -a ${LOGFILE}
|
913 |
913 |
dd if=/dev/zero of=$DISKFILE bs=$BLOCKSIZE count=0 seek=$COUNT
|
914 |
914 |
}
|
915 |
915 |
|
916 |
916 |
# called from create_ova_image
|
917 |
917 |
ova_remove_old_tmp_files() {
|
918 |
|
rm ${OVFPATH}/*.ovf.final 2>/dev/null
|
919 |
|
rm ${OVFPATH}/*.ova 2>/dev/null
|
|
918 |
rm ${IMAGES_FINAL_DIR}/*.ovf.final 2>/dev/null
|
|
919 |
rm ${IMAGES_FINAL_DIR}/*.ova 2>/dev/null
|
920 |
920 |
}
|
921 |
921 |
|
922 |
922 |
# called from create_ova_image
|
923 |
923 |
ova_create_vbox_image() {
|
924 |
924 |
# VirtualBox
|
925 |
925 |
echo ">>> Creating image using vmdktool..." | tee -a ${LOGFILE}
|
926 |
|
rm ${OVFPATH}/${OVFVMDK} 2>/dev/null
|
927 |
|
vmdktool -v ${OVFPATH}/${OVFVMDK} ${OVFPATH}/${OVFVMDK}.raw
|
928 |
|
rm -rf ${OVFPATH}/${OVFVMDK}.raw
|
929 |
|
echo ">>> ${OVFPATH}/${OVFVMDK} created." | tee -a ${LOGFILE}
|
|
926 |
rm ${IMAGES_FINAL_DIR}/${OVFVMDK} 2>/dev/null
|
|
927 |
vmdktool -v ${IMAGES_FINAL_DIR}/${OVFVMDK} ${IMAGES_FINAL_DIR}/${OVFVMDK}.raw
|
|
928 |
rm -rf ${IMAGES_FINAL_DIR}/${OVFVMDK}.raw
|
|
929 |
echo ">>> ${IMAGES_FINAL_DIR}/${OVFVMDK} created." | tee -a ${LOGFILE}
|
930 |
930 |
}
|
931 |
931 |
|
932 |
932 |
# called from create_ova_image
|
We do not need a separate path variable for ovf, use IMAGES_FINAL_DIR instead