Bug#643585: Bug 643585
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Daniel,
After taking your feedback, here is a set of 5 patches that
significantly reduce the line count and provide the needed functionality
for building cloud images (562 lines in the diff versus the ~2.5K
previous patches). The primary need for cloud images is that ability to
produce a "warm" file system suitable for running on Amazon AWS or Open
Stack.
Git Repo: https://github.com/utlemming/ubuntu-live-build
0001-Added-Ubuntu-Cloud-package-lists.patch:
- Adds the Ubuntu Cloud package list definitions
- Package lists are the official packages for the Ubuntu Cloud
images compatible with Maverick and later
0002-Fixed-rootfs-chroot-and-added-fs-label-support.patch
- Fixed an issue where mkfs.ext? failed due to missing mtab while
formating file system in chroot
- Added file system label support to rootfs for ext? file systems
- Added /etc/fstab based on labels (allow rootfs to be used
independent of binary wrapper)
0003-Added-lb_binary_image-to-emit-standalone-rootfs-imag.patch:
- Adds lb_binary_image to emit the chroot rootfs a file system
image named <LABEL>.<FS TYPE>
- Provides the ability to build images suitable for running
- For uses where the raw file system is needed
0004-Enablement-for-foreign-bootstrap-via-qemu-static.patch:
Probably the most controversial of my patches
- Adds foreign bootstrapping ability via "qemu-<ARCH>-static"
0005-Set-default-armel-linux-flavour-for-Ubuntu.patch:
- Set default armel kernel flavour for Ubuntu to omap
As a side note, I've done a bit of work on the generation of VMDK and
QCOW2 images. If there is interest in supporting more complicated warm
file systems/images, I can do some work on porting those features. The
concern (and perhaps it is wrong) is that live-build is focused on
building bootable systems that use live-config, where cloud images
generally do not have nor need live-config.
~Ben
- --
Ben Howard
ben.howard@canonical.com
Canonical USA, Inc
GPG ID 0x5406A866
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAEBAgAGBQJOhOFQAAoJEETWil5UBqhmwYgP/3+/JY8hmxU65nJ0iBUeheiT
z/9Tt9TRaCw74VKn7Z3bLxWXOwFhDdyZqGdW6S8TTo/YBuSR8jDCMARQXWPgHacv
u6i5AcRvoSJXKEaWOGDg/3ce8B+02g0s57F3/CMS3yqosJA74WMDk5SEqu8eHvOR
l5CG0979njah9AUIPt3h/dnAwx3fDVWQcZa6n4/tgwcij6YiLzs2FMD4PJBSf9G4
SmdXc4DyiR4E96zDxBt/IawPIQVPLQK6rOXRd/v4w2BHGJIqyGpeYegYGbgtDo19
u6LQydgZcq9LuCWIz4QILesHvx0zfgvzp8EqxaI9r6z3XD68HyRVur+CpWqsPX7J
n/TMUm1Lxz0ewZbYExY5P1tNNpHVGMC8hdBSdfDTEiuTayy23KSRTvsLb8irr3he
g0dYsiLFEmAYXtSrs4MwqH6dnFXtmV2HExnJqHEfuidEJZp/Babplhbm1Ij8vHkF
XKLeRcki8Xnp1ukmprmnrkUxESH8wkP2C6XeRvP/6LuZ+lKxGx01XSaolLrnVyN1
ocMHkXbumYJjJinvHwVLlyMdzs69VRqy1MEL+KLL6Qi7f9WrFdYTA6uv+LHRNczL
Z2muNth0V0NsylAlXNWSPJIVHH9IOM7XsxFECuALVw10XNs2mhcAX2d1EF8grKal
N5y+BVzRi0EXxuDmAuqS
=1tKy
-----END PGP SIGNATURE-----
>From f05b901e50e764006b24a7226ec882dd363fdfb9 Mon Sep 17 00:00:00 2001
From: Ben Howard <ben.howard@canonical.com>
Date: Thu, 29 Sep 2011 15:49:08 +0000
Subject: [PATCH 1/5] Added Ubuntu Cloud package lists
---
package-lists/ubuntu-cloud | 11 +++++++++++
package-lists/ubuntu-cloud-desktop | 11 +++++++++++
2 files changed, 22 insertions(+), 0 deletions(-)
create mode 100644 package-lists/ubuntu-cloud
create mode 100644 package-lists/ubuntu-cloud-desktop
diff --git a/package-lists/ubuntu-cloud b/package-lists/ubuntu-cloud
new file mode 100644
index 0000000..aec9a44
--- /dev/null
+++ b/package-lists/ubuntu-cloud
@@ -0,0 +1,11 @@
+locales
+ubuntu-minimal
+eject
+file
+sudo
+gnupg
+landscape-client
+cloud-utils
+standard^
+server^
+cloud-image^
diff --git a/package-lists/ubuntu-cloud-desktop b/package-lists/ubuntu-cloud-desktop
new file mode 100644
index 0000000..967d914
--- /dev/null
+++ b/package-lists/ubuntu-cloud-desktop
@@ -0,0 +1,11 @@
+locales
+ubuntu-minimal
+eject
+file
+sudo
+gnupg
+landscape-client
+cloud-utils
+standard^
+ubuntu-destkop^
+cloud-image^
--
1.7.5.4
>From 553aa2355df161b91e380338659c3ad3824822c3 Mon Sep 17 00:00:00 2001
From: Ben Howard <ben.howard@canonical.com>
Date: Thu, 29 Sep 2011 15:50:19 +0000
Subject: [PATCH 2/5] Fixed rootfs chroot and added fs label support
---
functions/defaults.sh | 3 +++
scripts/build/lb_binary_rootfs | 28 ++++++++++++++++++++++++++--
scripts/build/lb_config | 14 ++++++++++++--
3 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/functions/defaults.sh b/functions/defaults.sh
index 53c7af9..685451b 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -1246,4 +1246,7 @@ Check_defaults ()
fi
fi
+ # Label default for rootfs
+ LB_ROOTFS_FILESYSTEM_LABEL="${LB_ROOTFS_FILESYSTEM_LABEL:-rootfs}"
+
}
diff --git a/scripts/build/lb_binary_rootfs b/scripts/build/lb_binary_rootfs
index 692a28d..c94d84c 100755
--- a/scripts/build/lb_binary_rootfs
+++ b/scripts/build/lb_binary_rootfs
@@ -62,6 +62,19 @@ case "${LB_INITRAMFS}" in
;;
esac
+write_fstab()
+{
+#Write a rudimentary fstab
+ Echo_message "Writing fstab to ${1}/etc/fstab"
+cat << EOF > "${1}/etc/fstab"
+# Generated by live-build
+# <file system> <mount point> <type> <options> <dump> <pass>
+proc /proc proc nodev,noexec,nosuid 0 0
+LABEL=${LB_ROOTFS_FILESYSTEM_LABEL} / ${LB_CHROOT_FILESYSTEM} defaults 0 0
+EOF
+}
+
+
# Creating directory
mkdir -p binary/${INITFS}
@@ -122,10 +135,19 @@ case "${LB_CHROOT_FILESYSTEM}" in
case "${LB_BUILD_WITH_CHROOT}" in
true)
dd if=/dev/zero of=chroot/filesystem.${LB_CHROOT_FILESYSTEM} bs=1024k count=0 seek=${REAL_DIM}
- Chroot chroot "mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 filesystem.${LB_CHROOT_FILESYSTEM}"
+
+ if ! Chroot chroot "test -s /etc/mtab"
+ then
+ Chroot chroot "rm -f /etc/mtab"
+ Chroot chroot "ln -s /proc/mounts /etc/mtab"
+ fi
+
+ Chroot chroot "mkfs.${LB_CHROOT_FILESYSTEM} -FF -b 1024 -N ${REAL_INODES} -m 0 filesystem.${LB_CHROOT_FILESYSTEM} -L ${LB_ROOTFS_FILESYSTEM_LABEL}"
+ rm chroot/etc/mtab
mkdir -p filesystem.tmp
${LB_ROOT_COMMAND} mount -o loop chroot/filesystem.${LB_CHROOT_FILESYSTEM} filesystem.tmp
+ write_fstab chroot/chroot
cp -a chroot/chroot/* filesystem.tmp
${LB_ROOT_COMMAND} umount filesystem.tmp
@@ -176,6 +198,7 @@ case "${LB_CHROOT_FILESYSTEM}" in
lb chroot_apt install ${*}
lb chroot_archives binary remove ${*}
+ write_fstab chroot
touch .lock
else
rm -rf chroot/chroot
@@ -187,11 +210,12 @@ case "${LB_CHROOT_FILESYSTEM}" in
false)
dd if=/dev/zero of=binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} bs=1024k count=0 seek=${REAL_DIM}
- mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}
+ mkfs.${LB_CHROOT_FILESYSTEM} -F -b 1024 -N ${REAL_INODES} -m 0 binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} -L ${LB_ROOTFS_FILESYSTEM_LABEL}
mkdir -p filesystem.tmp
${LB_ROOT_COMMAND} mount -o loop binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM} filesystem.tmp
cp -a chroot/* filesystem.tmp
+ write_fstab chroot
${LB_ROOT_COMMAND} umount filesystem.tmp
rmdir filesystem.tmp
diff --git a/scripts/build/lb_config b/scripts/build/lb_config
index f015fe8..aad474e 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -146,7 +146,8 @@ 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 [--rootfs-label LABEL]"
Local_arguments ()
{
@@ -169,7 +170,7 @@ 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,rootfs-label:"
# 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 -- "${@}")"
@@ -775,6 +776,11 @@ Local_arguments ()
shift 2
;;
+ --rootfs-label)
+ LB_ROOTFS_FILESYSTEM_LABEL="${2}"
+ shift 2
+ ;;
+
# config/source
--source)
LB_SOURCE="${2}"
@@ -1393,6 +1399,10 @@ LB_SYSLINUX_THEME="${LB_SYSLINUX_THEME}"
# \$LB_USERNAME: set username
# (Default: ${LB_USERNAME})
LB_USERNAME="${LB_USERNAME}"
+
+# \$LB_ROOTFS_FILESYSTEM_LABEL: set file system label
+# (Default: ${LB_ROOTFS_FILESYTEM_LABEL})
+LB_ROOTFS_FILESYSTEM_LABEL="${LB_ROOTFS_FILESYSTEM_LABEL}"
EOF
# Creating lb_source_* configuration
--
1.7.5.4
>From 015b418f4b2adc766d2f41ba2375a5e34b806dc7 Mon Sep 17 00:00:00 2001
From: Ben Howard <ben.howard@canonical.com>
Date: Thu, 29 Sep 2011 16:45:48 +0000
Subject: [PATCH 3/5] Added lb_binary_image to emit standalone rootfs images
---
scripts/build/lb_binary | 1 +
scripts/build/lb_binary_image | 72 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 0 deletions(-)
create mode 100755 scripts/build/lb_binary_image
diff --git a/scripts/build/lb_binary b/scripts/build/lb_binary
index 27a0223..d6c9cfa 100755
--- a/scripts/build/lb_binary
+++ b/scripts/build/lb_binary
@@ -88,6 +88,7 @@ lb binary_net ${*}
lb binary_tar ${*}
lb binary_hdd ${*}
lb binary_virtual-hdd ${*}
+lb binary_image ${*}
if [ "${LB_BUILD_WITH_CHROOT}" = "true" ]
then
diff --git a/scripts/build/lb_binary_image b/scripts/build/lb_binary_image
new file mode 100755
index 0000000..aa8a1c7
--- /dev/null
+++ b/scripts/build/lb_binary_image
@@ -0,0 +1,72 @@
+#!/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.
+
+
+set -e
+
+# Including common functions
+. "${LB_BASE:-/usr/share/live/build}"/scripts/build.sh
+
+# Setting static variables
+DESCRIPTION="$(Echo 'build rootfs 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 image "${LB_BINARY_IMAGES}"
+then
+ exit 0
+fi
+
+if [ "${LB_CHROOT_FILESYSTEM}" = "plain" ]
+then
+ exit 0
+fi
+
+Echo_message "Copying out binary rootfs image"
+
+# Requiring stage file
+Require_stagefile .stage/config .stage/bootstrap
+
+# Checking stage file
+Check_stagefile .stage/binary_image
+
+# Checking lock file
+Check_lockfile .lock
+
+# Creating lock file
+Create_lockfile .lock
+
+case "${LB_INITRAMFS}" in
+ casper)
+ INITFS="casper"
+ ;;
+
+ live-boot)
+ INITFS="live"
+ ;;
+
+ *)
+ INITFS="boot"
+ ;;
+esac
+
+cp -a "binary/${INITFS}/filesystem.${LB_CHROOT_FILESYSTEM}" "${LB_ROOTFS_FILESYSTEM_LABEL}.${LB_CHROOT_FILESYSTEM}"
+cp -a "binary.packages" "${LB_ROOTFS_FILESYSTEM_LABEL}.packages"
+rm -rf binary*
+
+Echo_message "rootfs image named ${LB_ROOTFS_FILESYSTEM_LABEL}.${LB_CHROOT_FILESYSTEM}"
+
+# Creating stage file
+Create_stagefile .stage/binary_image
--
1.7.5.4
>From 6d95297840fb51457d9aa4b2d3eda360c79536e9 Mon Sep 17 00:00:00 2001
From: Ben Howard <ben.howard@canonical.com>
Date: Thu, 29 Sep 2011 16:46:23 +0000
Subject: [PATCH 4/5] Enablement for foreign bootstrap via qemu-static
---
functions/architectures.sh | 36 ++++++++++++++++++++++++++
functions/defaults.sh | 10 +++++++
scripts/build/lb_bootstrap_debootstrap | 39 +++++++++++++++++++---------
scripts/build/lb_config | 44 +++++++++++++++++++++++++++++--
4 files changed, 113 insertions(+), 16 deletions(-)
diff --git a/functions/architectures.sh b/functions/architectures.sh
index 53d925b..7c0b769 100755
--- a/functions/architectures.sh
+++ b/functions/architectures.sh
@@ -22,6 +22,24 @@ Check_architectures ()
fi
done
+ if [ "${ARCHITECTURES}" = "${LB_PORTS_ARCHITECTURES}" ]
+ then
+ VALID="true"
+
+ if [ ! -e "${LB_PORTS_QEMU_STATIC}" ]
+ then
+ Echo_warning "skipping %s, qemu-static binary ${LB_PORTS_ARCHITECTURES} was not found"
+ VALID="false"
+ fi
+
+ if [ ! -x "${LB_PORTS_QEMU_STATIC}" ]
+ then
+ Echo_warning "skipping %s, qemu-static binary ${LB_PORTS_QEMU_STATIC} is not executable"
+ VALID="false"
+ fi
+
+ fi
+
if [ "${VALID}" = "false" ]
then
Echo_warning "skipping %s, foreign architecture(s)." "${0}"
@@ -52,6 +70,24 @@ Check_crossarchitectures ()
;;
esac
+ if [ "${LB_ARCHITECTURES}" = "${LB_PORTS_ARCHITECTURES}" ]
+ then
+
+ if [ ! -e "${LB_PORTS_QEMU_STATIC}" ]
+ then
+ Echo_warning "skipping %s, qemu-static binary ${LB_PORTS_ARCHITECTURES} was not found"
+ exit 0
+ fi
+
+ if [ ! -x "${LB_PORTS_QEMU_STATIC}" ]
+ then
+ Echo_warning "skipping %s, qemu-static binary ${LB_PORTS_QEMU_STATIC} is not executable"
+ exit 0
+ fi
+ return
+ fi
+
+
Check_architectures "${CROSS}"
}
diff --git a/functions/defaults.sh b/functions/defaults.sh
index 685451b..2311d38 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -1249,4 +1249,14 @@ Check_defaults ()
# Label default for rootfs
LB_ROOTFS_FILESYSTEM_LABEL="${LB_ROOTFS_FILESYSTEM_LABEL:-rootfs}"
+ # Architectures to use foriegn bootstrap for
+ LB_PORTS_ARCHITECTURES="${LB_PORTS_ARCHITECTURES:-}"
+
+ # Packages to exclude for the foriegn/ports bootstrapping
+ LB_PORTS_BOOTSTRAP_EXCLUDE="${LB_PORTS_BOOTSTRAP_EXCLUDE:-}"
+
+ # Ports using foriegn bootstrap need a working qemu-*-system. This is the location it
+ LB_PORTS_QEMU_STATIC="${LB_PORTS_QEMU_STATIC:-}"
+
+
}
diff --git a/scripts/build/lb_bootstrap_debootstrap b/scripts/build/lb_bootstrap_debootstrap
index 1b5f5fe..e6d7a97 100755
--- a/scripts/build/lb_bootstrap_debootstrap
+++ b/scripts/build/lb_bootstrap_debootstrap
@@ -21,7 +21,7 @@ USAGE="${PROGRAM} [--force]"
Arguments "${@}"
# Reading configuration files
-Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Read_conffiles config/all config/common config/bootstrap config/chroot config/image config/source config/ports
Set_defaults
if [ "${LB_BOOTSTRAP}" != "debootstrap" ]
@@ -120,24 +120,37 @@ then
cp cache/packages_bootstrap/*.deb chroot/var/cache/apt/archives
fi
- Echo_breakage "Running debootstrap (download-only)... "
- ${LB_ROOT_COMMAND} debootstrap ${DEBOOTSTRAP_OPTIONS} --download-only "${LB_PARENT_DISTRIBUTION}" chroot "${LB_PARENT_MIRROR_BOOTSTRAP}"
+ if [ "${LB_PORTS_ARCHITECTURES}" != "${LB_ARCHITECTURES}" ]; then
+ Echo_breakage "Running debootstrap (download-only)... "
+ ${LB_ROOT_COMMAND} debootstrap ${DEBOOTSTRAP_OPTIONS} --download-only "${LB_PARENT_DISTRIBUTION}" chroot "${LB_PARENT_MIRROR_BOOTSTRAP}"
- if [ -n "${LB_ROOT_COMMAND}" ]
- then
- ${LB_ROOT_COMMAND} chown -R $(whoami):$(whoami) chroot
- fi
+ if [ -n "${LB_ROOT_COMMAND}" ]
+ then
+ ${LB_ROOT_COMMAND} chown -R $(whoami):$(whoami) chroot
+ fi
- # Removing old cache
- rm -f cache/packages_bootstrap/*.deb
+ # Removing old cache
+ rm -f cache/packages_bootstrap/*.deb
- # Saving new cache
- mkdir -p cache/packages_bootstrap
- cp chroot/var/cache/apt/archives/*.deb cache/packages_bootstrap
+ # Saving new cache
+ mkdir -p cache/packages_bootstrap
+ cp chroot/var/cache/apt/archives/*.deb cache/packages_bootstrap
+ fi
fi
Echo_breakage "Running debootstrap... "
- ${LB_ROOT_COMMAND} debootstrap ${DEBOOTSTRAP_OPTIONS} "${LB_PARENT_DISTRIBUTION}" chroot "${LB_PARENT_MIRROR_BOOTSTRAP}"
+
+ # Run appropriate bootstrap, i.e. foriegn or regular bootstrap
+ if [ "${LB_PORTS_ARCHITECTURES}" = "${LB_ARCHITECTURES}" ]; then
+ 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_PORTS_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 aad474e..2e8a589 100755
--- a/scripts/build/lb_config
+++ b/scripts/build/lb_config
@@ -147,7 +147,11 @@ USAGE="${PROGRAM} [--apt apt|aptitude]\n\
\t [--username NAME]\n\
\t [--verbose]\n\
\t [--win32-loader true|false]\n
-\t [--rootfs-label LABEL]"
+\t [--rootfs-label LABEL]\n
+\t [--ports-exclude PACKAGES]\n
+\t [--ports-qemu-static PATH]\n
+\t [--ports-arch ARCH]"
+
Local_arguments ()
{
@@ -170,7 +174,7 @@ 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,rootfs-label:"
+ help,ignore-system-defaults,quiet,usage,verbose,version,rootfs-label:,ports-qemu-static:,ports-arch:,ports-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 +785,21 @@ Local_arguments ()
shift 2
;;
+ --ports-arch)
+ LB_PORTS_ARCHITECTURES="${2}"
+ shift 2
+ ;;
+
+ --ports-exclude)
+ LB_PORTS_BOOTSTRAP_EXCLUDE="${2}"
+ shift 2
+ ;;
+
+ --ports-qemu-static)
+ LB_PORTS_QEMU_STATIC="${2}"
+ shift 2
+ ;;
+
# config/source
--source)
LB_SOURCE="${2}"
@@ -869,7 +888,7 @@ then
fi
# Reading existing configuration
-Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source
+Read_conffiles config/all config/common config/bootstrap config/chroot config/binary config/source config/ports
Local_arguments "${@}"
@@ -1418,6 +1437,25 @@ LB_SOURCE="${LB_SOURCE}"
LB_SOURCE_IMAGES="${LB_SOURCE_IMAGES}"
EOF
+
+# Create qemu foriegn bootstrap configuration
+cat > config/ports << EOF
+# \$LB_PORTS_ARCHITECTURES: architectures to build through foriegn bootstraping
+# most users will also want to set LB_PORTS_QEMU_STATIC as well
+# (Default: ${LB_PORTS_ARCHITECTURES})
+LB_PORTS_ARCHITECTURES="${LB_PORTS_ARCHITECTURES}"
+
+# \$LB_PORTS_BOOTSTRAP_EXCLUDE: which packages to exclude from bootstrapping
+# (Default: ${LB_PORTS_BOOTSTRAP_EXCLUDE})
+LB_PORTS_BOOTSTRAP_EXCLUDE="${LB_PORTS_BOOTSTRAP_EXCLUDE}"
+
+# \$LB_PORTS_QEMU_STATIC: location of qemu-*-static for foriegn bootstrapping
+# if left blank, automatic detection will be attempted
+# (Default: ${LB_PORTS_QEMU_STATIC})
+LB_PORTS_QEMU_STATIC="${LB_PORTS_QEMU_STATIC}"
+EOF
+
+
mkdir -p auto/functions
mkdir -p auto/scripts
--
1.7.5.4
>From 49f703d53a96d720d9fb51be69a7d11649d43643 Mon Sep 17 00:00:00 2001
From: Ben Howard <ben.howard@canonical.com>
Date: Thu, 29 Sep 2011 13:04:17 -0600
Subject: [PATCH 5/5] Set default armel linux flavour for Ubuntu
---
functions/defaults.sh | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/functions/defaults.sh b/functions/defaults.sh
index 2311d38..0c1cb8c 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -639,9 +639,16 @@ Set_defaults ()
# Setting linux flavour string
case "${LB_ARCHITECTURES}" in
armel)
- # armel will have special images: one rootfs image and many additional kernel images.
- # therefore we default to all available armel flavours
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-iop32x ixp4xx kirkwood orion5x versatile}"
+ case "${LB_MODE}" in
+ ubuntu|kubuntu)
+ LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-omap}"
+ ;;
+ *)
+ # armel will have special images: one rootfs image and many additional kernel images.
+ # therefore we default to all available armel flavours
+ LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-iop32x ixp4xx kirkwood orion5x versatile}"
+ ;;
+ esac
;;
amd64)
--
1.7.5.4
Reply to: