summaryrefslogtreecommitdiff
path: root/scripts/build
diff options
context:
space:
mode:
authorBen Howard <ben.howard@canonical.com>2011-09-30 16:24:08 -0600
committerDaniel Baumann <daniel@debian.org>2011-10-05 07:38:53 +0200
commitd90c311ef937a95ead004142c1d0740eca313a0a (patch)
treee2a020b20c2529d56068da01b7fa7981b21c34fc /scripts/build
parent9e5218ec75190dc497224d41f68939f460573754 (diff)
downloadvyos-live-build-d90c311ef937a95ead004142c1d0740eca313a0a.tar.gz
vyos-live-build-d90c311ef937a95ead004142c1d0740eca313a0a.zip
Adding foreign bootstrap via qemu for cross arch building.
Diffstat (limited to 'scripts/build')
-rwxr-xr-xscripts/build/lb_bootstrap_debootstrap19
-rwxr-xr-xscripts/build/lb_config36
2 files changed, 52 insertions, 3 deletions
diff --git a/scripts/build/lb_bootstrap_debootstrap b/scripts/build/lb_bootstrap_debootstrap
index 1b5f5fe05..16e478dab 100755
--- a/scripts/build/lb_bootstrap_debootstrap
+++ b/scripts/build/lb_bootstrap_debootstrap
@@ -137,7 +137,24 @@ then
fi
Echo_breakage "Running debootstrap... "
- ${LB_ROOT_COMMAND} debootstrap ${DEBOOTSTRAP_OPTIONS} "${LB_PARENT_DISTRIBUTION}" chroot "${LB_PARENT_MIRROR_BOOTSTRAP}"
+
+ # Run appropriate bootstrap, i.e. foreign or regular bootstrap
+ if [ "${LB_BOOTSTRAP_QEMU_ARCHITECTURES}" = "${LB_ARCHITECTURES}" ]; then
+
+ if [ -n "${LB_BOOTSTRAP_QEMU_EXCLUDE}" ]
+ then
+ DEBOOTSTRAP_OPTIONS="${DEBOOTSTRAP_OPTIONS} --exclude=$(echo ${LB_BOOTSTRAP_QEMU_EXCLUDE} | sed 's| *|,|g')"
+ fi
+
+ Echo_message "Bootstrap will be foreign"
+ ${LB_ROOT_COMMAND} debootstrap ${DEBOOTSTRAP_OPTIONS} --foreign "${LB_PARENT_DISTRIBUTION}" chroot "${LB_PARENT_MIRROR_BOOTSTRAP}"
+
+ Echo_message "Running debootstrap second stage under QEMU"
+ cp ${LB_BOOTSTRAP_QEMU_STATIC} chroot/usr/bin
+ Chroot chroot /debootstrap/debootstrap --second-stage
+ else
+ ${LB_ROOT_COMMAND} debootstrap ${DEBOOTSTRAP_OPTIONS} "${LB_PARENT_DISTRIBUTION}" chroot "${LB_PARENT_MIRROR_BOOTSTRAP}"
+ fi
if [ -n "${LB_ROOT_COMMAND}" ]
then
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index 3f7ab0fe8..aa4564ffb 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -147,7 +147,11 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\
\t [--exposed-root true|false]\n\
\t [--username NAME]\n\
\t [--verbose]\n\
-\t [--win32-loader true|false]"
+\t [--win32-loader true|false]\n\
+\t [--bootstrap-qemu-exclude PACKAGES]\n\
+\t [--bootstrap-qemu-static PATH]\n\
+\t [--bootstrap-qemu-arch ARCH]"
+
Local_arguments ()
{
@@ -170,7 +174,8 @@ Local_arguments ()
net-root-path:,net-root-server:,net-cow-filesystem:,net-cow-mountoptions:,net-cow-path:,
net-cow-server:,net-tarball:,swap-file-path:,swap-file-size:,syslinux-theme:,
username:,win32-loader:,source:,source-images:,breakpoints,conffile:,debug,force,
- help,ignore-system-defaults,quiet,usage,verbose,version"
+ help,ignore-system-defaults,quiet,usage,verbose,version,bootstrap-qemu-static:,bootstrap-qemu-arch:,
+ bootstrap-qemu-exclude:"
# Remove spaces added by indentation
LONG_OPTIONS="$(echo ${LONG_OPTIONS} | tr -d ' ')"
ARGUMENTS="$(getopt --longoptions ${LONG_OPTIONS} --name="${PROGRAM}" --options a:f:d:m:l:k:p:b:e:s:c:huv --shell sh -- "${@}")"
@@ -781,6 +786,21 @@ Local_arguments ()
shift 2
;;
+ --bootstrap-qemu-arch)
+ LB_BOOTSTRAP_QEMU_ARCHITECTURES="${2}"
+ shift 2
+ ;;
+
+ --bootstrap-qemu-exclude)
+ LB_BOOTSTRAP_QEMU_EXCLUDE="${2}"
+ shift 2
+ ;;
+
+ --bootstrap-qemu-static)
+ LB_BOOTSTRAP_QEMU_STATIC="${2}"
+ shift 2
+ ;;
+
# config/source
--source)
LB_SOURCE="${2}"
@@ -1171,6 +1191,18 @@ LB_ARCHIVE_AREAS="${LB_ARCHIVE_AREAS}"
# \$LB_PARENT_ARCHIVE_AREAS: select archive areas to use
# (Default: ${LB_PARENT_ARCHIVE_AREAS})
LB_PARENT_ARCHIVE_AREAS="${LB_PARENT_ARCHIVE_AREAS}"
+
+# \$LB_BOOTSTRAP_QEMU_ARCHITECTURES: architectures to use foreign bootstrap
+# (Default: ${LB_BOOTSTRAP_QEMU_ARCHITECTURES})
+LB_BOOTSTRAP_QEMU_ARCHITECTURES="${LB_BOOTSTRAP_QEMU_ARCHITECTURES}"
+
+# \$LB_BOOTSTRAP_QEMU_EXCLUDE: packages to exclude during foreign bootstrap
+# (Default: ${LB_BOOTSTRAP_QEMU_EXCLUDE})
+LB_BOOTSTRAP_QEMU_EXCLUDE="${LB_BOOTSTRAP_QEMU_EXCLUDE}"
+
+# \$LB_BOOTSTRAP_QEMU_STATIC: static qemu binary for foreign bootstrap
+# (Default: ${LB_BOOTSTRAP_QEMU_STATIC})
+LB_BOOTSTRAP_QEMU_STATIC="${LB_BOOTSTRAP_QEMU_STATIC}"
EOF
# Creating lb_chroot_* configuration