summaryrefslogtreecommitdiffstats
path: root/tools/builder_common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/builder_common.sh')
-rw-r--r--tools/builder_common.sh64
1 files changed, 42 insertions, 22 deletions
diff --git a/tools/builder_common.sh b/tools/builder_common.sh
index 7e51a83..f8d7b5d 100644
--- a/tools/builder_common.sh
+++ b/tools/builder_common.sh
@@ -381,8 +381,8 @@ print_flags() {
printf " Git Branch or Tag: %s\n" $GIT_REPO_BRANCH_OR_TAG
printf " MODULES_OVERRIDE: %s\n" $MODULES_OVERRIDE
printf " VMDK_DISK_CAPACITY_IN_GB: %s\n" $VMDK_DISK_CAPACITY_IN_GB
- printf " OVA_FIRST_PART_SIZE: %s\n" $OVA_FIRST_PART_SIZE
- printf " OVA_SWAP_PART_SIZE: %s\n" $OVA_SWAP_PART_SIZE
+ printf " OVA_FIRST_PART_SIZE_IN_GB: %s\n" $OVA_FIRST_PART_SIZE_IN_GB
+ printf " OVA_SWAP_PART_SIZE_IN_GB: %s\n" $OVA_SWAP_PART_SIZE_IN_GB
printf " OVFTEMPLATE: %s\n" $OVFTEMPLATE
printf " OVFVMDK: %s\n" $OVFVMDK
printf " SRC_CONF: %s\n" $SRC_CONF
@@ -549,8 +549,8 @@ create_nanobsd_diskimage () {
echo ">>> building NanoBSD(${1}) disk image with size ${_NANO_MEDIASIZE} for platform (${TARGET})..." | tee -a ${LOGFILE}
echo "" > $BUILDER_LOGS/nanobsd_cmds.sh
- IMG="${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-${_NANO_MEDIASIZE}-${TARGET}-${1}-${DATESTRING}.img"
- IMGUPDATE="${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-${_NANO_MEDIASIZE}-${TARGET}-${1}-upgrade-${DATESTRING}.img"
+ IMG="${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-${_NANO_MEDIASIZE}-${TARGET}-${1}${TIMESTAMP_SUFFIX}.img"
+ IMGUPDATE="${IMAGES_FINAL_DIR}/${PRODUCT_NAME}-${PRODUCT_VERSION}-${_NANO_MEDIASIZE}-${TARGET}-${1}-upgrade${TIMESTAMP_SUFFIX}.img"
nanobsd_set_flash_details ${_NANO_MEDIASIZE}
@@ -794,14 +794,15 @@ create_ova_image() {
# Fill fstab
echo ">>> Installing platform specific items..." | tee -a ${LOGFILE}
- echo "/dev/label/${PRODUCT_NAME} / ufs rw 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab
- echo "/dev/label/swap0 none swap sw 0 0" >> ${FINAL_CHROOT_DIR}/etc/fstab
+ echo "/dev/gpt/${PRODUCT_NAME} / ufs rw 0 0" > ${FINAL_CHROOT_DIR}/etc/fstab
+ echo "/dev/gpt/swap0 none swap sw 0 0" >> ${FINAL_CHROOT_DIR}/etc/fstab
# Create / partition
+ echo -n ">>> Creating / partition... " | tee -a ${LOGFILE}
makefs \
-B little \
-o label=${PRODUCT_NAME} \
- -s ${OVA_FIRST_PART_SIZE} \
+ -s ${OVA_FIRST_PART_SIZE_IN_GB}g \
${OVA_TMP}/${OVFUFS} \
${FINAL_CHROOT_DIR} 2>&1 >> ${LOGFILE}
@@ -809,55 +810,64 @@ create_ova_image() {
if [ -f ${OVA_TMP}/${OVFUFS} ]; then
rm -f ${OVA_TMP}/${OVFUFS}
fi
+ echo "Failed!" | tee -a ${LOGFILE}
echo ">>> ERROR: Error creating vmdk / partition. STOPPING!" | tee -a ${LOGFILE}
print_error_pfS
fi
+ echo "Done!" | tee -a ${LOGFILE}
- # Create vmdk file
+ # Create raw disk
+ echo -n ">>> Creating raw disk... " | tee -a ${LOGFILE}
mkimg \
-s gpt \
- -f vmdk \
+ -f raw \
-b /boot/pmbr \
-p freebsd-boot:=/boot/gptboot \
-p freebsd-ufs/${PRODUCT_NAME}:=${OVA_TMP}/${OVFUFS} \
-p freebsd-swap/swap0::${OVA_SWAP_PART_SIZE} \
- -o ${OVA_TMP}/${OVFVMDK}.tmp 2>&1 >> ${LOGFILE}
+ -o ${OVA_TMP}/${OVFRAW} 2>&1 >> ${LOGFILE}
- if [ $? -ne 0 -o ! -f ${OVA_TMP}/${OVFVMDK}.tmp ]; then
+ if [ $? -ne 0 -o ! -f ${OVA_TMP}/${OVFRAW} ]; then
if [ -f ${OVA_TMP}/${OVFUFS} ]; then
rm -f ${OVA_TMP}/${OVFUFS}
fi
- if [ -f ${OVA_TMP}/${OVFVMDK}.tmp ]; then
- rm -f ${OVA_TMP}/${OVFVMDK}.tmp
+ if [ -f ${OVA_TMP}/${OVFRAW} ]; then
+ rm -f ${OVA_TMP}/${OVFRAW}
fi
+ echo "Failed!" | tee -a ${LOGFILE}
echo ">>> ERROR: Error creating temporary vmdk image. STOPPING!" | tee -a ${LOGFILE}
print_error_pfS
fi
+ echo "Done!" | tee -a ${LOGFILE}
# We don't need it anymore
rm -f ${OVA_TMP}/${OVFUFS} >/dev/null 2>&1
- # Convert vmdk disk to modern version
- vmdktool -v ${OVA_TMP}/${OVFVMDK} ${OVA_TMP}/i${OVFVMDK}.tmp
+ # Convert raw to vmdk
+ echo -n ">>> Creating vmdk disk... " | tee -a ${LOGFILE}
+ vmdktool -z9 -v ${OVA_TMP}/${OVFVMDK} ${OVA_TMP}/${OVFRAW}
- if [ $? -ne 0 -o ! -f ${OVA_TMP}/${OVFVMDK}.tmp ]; then
- if [ -f ${OVA_TMP}/${OVFVMDK}.tmp ]; then
- rm -f ${OVA_TMP}/${OVFVMDK}.tmp
+ if [ $? -ne 0 -o ! -f ${OVA_TMP}/${OVFVMDK} ]; then
+ if [ -f ${OVA_TMP}/${OVFRAW} ]; then
+ rm -f ${OVA_TMP}/${OVFRAW}
fi
if [ -f ${OVA_TMP}/${OVFVMDK} ]; then
rm -f ${OVA_TMP}/${OVFVMDK}
fi
+ echo "Failed!" | tee -a ${LOGFILE}
echo ">>> ERROR: Error creating vmdk image. STOPPING!" | tee -a ${LOGFILE}
print_error_pfS
fi
+ echo "Done!" | tee -a ${LOGFILE}
- rm -f ${OVA_TMP}/i${OVFVMDK}.tmp
+ rm -f ${OVA_TMP}/i${OVFRAW}
ova_setup_ovf_template
- # We repack the file with a more universal xml file that
- # works in both virtual box and esx server
+ echo -n ">>> Writing final ova image... " | tee -a ${LOGFILE}
+ # Create OVA file for vmware
gtar -C ${OVA_TMP} -cpf ${OVAPATH} ${PRODUCT_NAME}.ovf ${OVFVMDK}
+ echo "Done!" | tee -a ${LOGFILE}
rm -f ${OVA_TMP}/${OVFVMDK} >/dev/null 2>&1
echo ">>> OVA created: $(LC_ALL=C date)" | tee -a ${LOGFILE}
@@ -900,7 +910,7 @@ ova_setup_ovf_template() {
-e "s,%%PRODUCT_NAME%%,${PRODUCT_NAME},g" \
-e "s,%%PRODUCT_VERSION%%,${PRODUCT_VERSION},g" \
-e "s,%%PRODUCT_URL%%,${PRODUCT_URL},g" \
- -e "/^%%PRODUCT_LICENSE%%/r ${BUILDER_TOOR}/license.txt" \
+ -e "/^%%PRODUCT_LICENSE%%/r ${BUILDER_ROOT}/license.txt" \
-e "/^%%PRODUCT_LICENSE%%/d" \
${OVFTEMPLATE} > ${OVA_TMP}/${PRODUCT_NAME}.ovf
}
@@ -1027,6 +1037,14 @@ clone_to_staging_area() {
core_pkg_create default-config "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
local DEFAULTCONF=${STAGE_CHROOT_DIR}/conf.default/config.xml
+
+ # Change default interface names to match vmware driver
+ sed -i '' -e 's,em0,vmx0,' -e 's,em1,vmx1,' ${DEFAULTCONF}
+ core_pkg_create default-config-vmware "" ${CORE_PKG_VERSION} ${STAGE_CHROOT_DIR}
+
+ # Restore default values to be used by serial package
+ sed -i '' -e 's,vmx0,em0,' -e 's,vmx1,em1,' ${DEFAULTCONF}
+
# Activate serial console in config.xml
# If it was there before, clear the setting to be sure we don't add it twice.
sed -i "" -e "/ <enableserial\/>/d" ${DEFAULTCONF}
@@ -1088,6 +1106,8 @@ customize_stagearea_for_image() {
"${1}" = "memstickserial" -o \
"${1}" = "memstickadi" ]; then
pkg_chroot_add ${FINAL_CHROOT_DIR} default-config-serial
+ elif [ "${1}" = "ova" ]; then
+ pkg_chroot_add ${FINAL_CHROOT_DIR} default-config-vmware
else
pkg_chroot_add ${FINAL_CHROOT_DIR} default-config
fi
OpenPOWER on IntegriCloud