summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2011-04-05 14:08:30 +0200
committerDaniel Baumann <daniel@debian.org>2011-04-05 15:51:09 +0200
commit3de9626c2723b40527f78ca08fa285ed2bab890b (patch)
treef7c6f3e770ee7600d3fea6c0aa0ce36b46eeb995
parent87f788b31df0b6f143c8ac729a3518d1b7f5d19c (diff)
downloadvyos-live-build-tmp-vbox.tar.gz
vyos-live-build-tmp-vbox.zip
Adding support for virtualbox binary images (incomplete).tmp-vbox
-rwxr-xr-xfunctions/defaults.sh46
-rwxr-xr-xscripts/build/lb_binary1
-rwxr-xr-xscripts/build/lb_binary_virtualbox125
3 files changed, 169 insertions, 3 deletions
diff --git a/functions/defaults.sh b/functions/defaults.sh
index 4a49b4838..ee150a371 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -556,9 +556,6 @@ Set_defaults ()
# Setting chroot filesystem
LB_CHROOT_FILESYSTEM="${LB_CHROOT_FILESYSTEM:-squashfs}"
- # Setting virtual root size
- LB_VIRTUAL_ROOT_SIZE="${LB_VIRTUAL_ROOT_SIZE:-10000}"
-
# Setting whether to expose root filesystem as read only
LB_EXPOSED_ROOT="${LB_EXPOSED_ROOT:-false}"
@@ -1013,6 +1010,49 @@ Set_defaults ()
;;
esac
+ LB_VIRTUALBOX_NAME="${LB_VIRTUALBOX_NAME:-${LB_ISO_APPLICATION}}"
+
+ case "${LB_MODE}" in
+ debian|emdebian|progress)
+ case "${LB_ARCHITECTURE}" in
+ amd64)
+ LB_VIRTUALBOX_OSTYPE="${LB_VIRTUALBOX_OSTYPE:-Debian_64}"
+ ;;
+
+ *)
+ LB_VIRTUALBOX_OSTYPE="${LB_VIRTUALBOX_OSTYPE:-Debian}"
+ ;;
+ esac
+ ;;
+
+ ubuntu)
+ case "${LB_ARCHITECTURE}" in
+ amd64)
+ LB_VIRTUALBOX_OSTYPE="${LB_VIRTUALBOX_OSTYPE:-Ubuntu_64}"
+ ;;
+
+ *)
+ LB_VIRTUALBOX_OSTYPE="${LB_VIRTUALBOX_OSTYPE:-Ubuntu}"
+ ;;
+ esac
+ ;;
+
+ *)
+ case "${LB_ARCHITECTURE}" in
+ amd64)
+ LB_VIRTUALBOX_OSTYPE="${LB_VIRTUALBOX_OSTYPE:-Linux26_64}"
+ ;;
+
+ *)
+ LB_VIRTUALBOX_OSTYPE="${LB_VIRTUALBOX_OSTYPE:-Linux26}"
+ ;;
+ esac
+ ;;
+ esac
+
+ # Setting virtual root size
+ LB_VIRTUAL_ROOT_SIZE="${LB_VIRTUAL_ROOT_SIZE:-10000}"
+
# Setting memtest option
LB_MEMTEST="${LB_MEMTEST:-memtest86+}"
diff --git a/scripts/build/lb_binary b/scripts/build/lb_binary
index 0b4894195..76b2ba944 100755
--- a/scripts/build/lb_binary
+++ b/scripts/build/lb_binary
@@ -87,6 +87,7 @@ lb binary_iso ${*}
lb binary_net ${*}
lb binary_tar ${*}
lb binary_usb ${*}
+lb binary_virtualbox ${*}
lb binary_virtual-hdd ${*}
if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]
diff --git a/scripts/build/lb_binary_virtualbox b/scripts/build/lb_binary_virtualbox
new file mode 100755
index 000000000..1fc3c8dd8
--- /dev/null
+++ b/scripts/build/lb_binary_virtualbox
@@ -0,0 +1,125 @@
+#!/bin/sh
+
+## live-build(7) - System Build Scripts
+## Copyright (C) 2006-2011 Daniel Baumann <daniel@debian.org>
+##
+## live-build comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
+## This is free software, and you are welcome to redistribute it
+## under certain conditions; see COPYING for details.
+
+
+## FIXME:
+## - make it work with chrooted builds
+## - tune the different .vbox settings
+
+set -e
+
+# Including common functions
+. "${LB_BASE:-/usr/share/live/build}"/scripts/build.sh
+
+# Setting static variables
+DESCRIPTION="$(Echo 'build binary image')"
+HELP=""
+USAGE="${PROGRAM} [--force]"
+
+Arguments "${@}"
+
+# Reading configuration files
+Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Set_defaults
+
+if ! In_list virtualbox "${LB_BINARY_IMAGES}"
+then
+ exit 0
+fi
+
+Echo_message "Begin building binary virtualbox image..."
+
+# Requiring stage file
+Require_stagefile .stage/config .stage/bootstrap .stage/chroot_proc
+
+# Checking stage file
+Check_stagefile .stage/binary_virtualbox
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+# Checking depends
+Check_package chroot/usr/bin/VBoxManage virtualbox-ose
+
+case "${LB_BOOTLOADER}" in
+ grub)
+ Check_package chroot/usr/sbin/grub grub
+ ;;
+
+ syslinux)
+ Check_package chroot/usr/bin/syslinux syslinux
+ ;;
+esac
+
+# Restoring cache
+Restore_cache cache/packages_binary
+
+# Installing depends
+Install_package
+
+# Remove old binary
+rm -f binary-vbox.tar.bz2 binary-vbox.tar.gz binary-vbox.tar.lz binary-vbox.tar binary-vbox
+
+# Create initial virtual machine
+VBoxManage createvm --name "${LB_VIRTUALBOX_NAME}" --ostype "${LB_VIRTUALBOX_OSTYPE}" --basefolder "${PWD}/binary-vbox"
+
+# Add storage
+VBoxManage storageattach "${LB_VIRTUALBOX_NAME}" --storagectl "$(echo ${LB_VIRTUALBOX_NAME} | sed -e 's| |-|g' | tr [A-Z] [a-z])"
+
+# Set some sane defaults
+VBoxManage modifyvm "${LB_VIRTUALBOX_NAME}" \
+ --bioslogofadeout off \
+ --bioslogofadein off \
+ --bioslogodisplaytime 0 \
+ --boot1 disk \
+ --rtcuseutc on
+
+
+
+DU_DIM="$(du -ms binary | cut -f1)"
+REAL_DIM="$(Calculate_partition_size ${DU_DIM} ${LB_BINARY_FILESYSTEM})"
+
+
+
+
+cd binary-vbox
+tar cfz ../binary-vbox.tar *
+cd "${OLDPWD}"
+
+case "${LB_COMPRESSION}" in
+ bzip2)
+ bzip2 ${BZIP2_OPTIONS} binary-vbox.tar
+ rm -rf binary-vbox
+ ;;
+
+ gzip)
+ gzip ${GZIP_OPTIONS} binary-vbox.tar
+ rm -rf binary-vbox
+ ;;
+
+ lzip)
+ lzip ${LZIP_OPTIONS} binary-vbox.tar
+ rm -rf binary-vbox
+ ;;
+
+ none)
+ ;;
+esac
+
+# Saving cache
+Save_cache cache/packages_binary
+
+# Removing depends
+Remove_package
+
+# Creating stage file
+Create_stagefile .stage/binary_virtualbox