diff options
-rwxr-xr-x | functions/defaults.sh | 46 | ||||
-rwxr-xr-x | scripts/build/lb_binary | 1 | ||||
-rwxr-xr-x | scripts/build/lb_binary_virtualbox | 125 |
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 |