2011-06-10 18:59:01 +01:00
|
|
|
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
|
2011-06-15 10:15:14 +01:00
|
|
|
rm -rf config
|
|
|
|
|
2013-09-05 16:02:28 +01:00
|
|
|
echo "Building on $(hostname --fqdn)"
|
|
|
|
|
2011-07-27 16:22:21 -06:00
|
|
|
SEEDMIRROR=http://people.canonical.com/~ubuntu-archive/seeds/
|
2011-06-13 11:50:09 +01:00
|
|
|
if [ -z "$MIRROR" ]; then
|
|
|
|
case $(hostname --fqdn) in
|
2011-07-01 11:59:14 +01:00
|
|
|
*.0c3.net)
|
|
|
|
case $ARCH in
|
|
|
|
i386|amd64) MIRROR=http://mirrors.0c3.net/ubuntu/ ;;
|
|
|
|
*) MIRROR=http://mirrors.0c3.net/ubuntu-ports/ ;;
|
|
|
|
esac
|
|
|
|
;;
|
2011-07-27 16:22:21 -06:00
|
|
|
*.ubuntu.com) MIRROR=http://ftpmaster.internal/ubuntu/
|
|
|
|
SEEDMIRROR=http://archive-team.internal/seeds/
|
|
|
|
;;
|
2018-06-14 12:41:46 +01:00
|
|
|
*.buildd) MIRROR=http://ftpmaster.internal/ubuntu/
|
2011-07-27 16:22:21 -06:00
|
|
|
SEEDMIRROR=http://archive-team.internal/seeds/
|
|
|
|
;;
|
2018-01-31 16:41:21 -08:00
|
|
|
*.ppa|*.scalingstack) MIRROR=http://ftpmaster.internal/ubuntu/
|
2011-07-27 16:22:21 -06:00
|
|
|
SEEDMIRROR=http://archive-team.internal/seeds/
|
|
|
|
;;
|
2018-01-31 21:00:49 -07:00
|
|
|
*) case $ARCH in
|
|
|
|
i386|amd64) MIRROR=http://archive.ubuntu.com/ubuntu/ ;;
|
|
|
|
*) MIRROR=http://ports.ubuntu.com/ubuntu-ports/ ;;
|
|
|
|
esac
|
|
|
|
;;
|
2011-06-13 11:50:09 +01:00
|
|
|
esac
|
|
|
|
fi
|
2011-06-10 18:59:01 +01:00
|
|
|
|
2017-04-11 17:16:35 -04:00
|
|
|
mkdir -p config
|
|
|
|
cp -af /usr/share/livecd-rootfs/live-build/functions config/functions
|
2018-10-22 10:21:50 -07:00
|
|
|
cp -af /usr/share/livecd-rootfs/live-build/snap-seed-parse.py config/snap-seed-parse
|
2017-04-11 17:16:35 -04:00
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
mkdir -p config/package-lists
|
2011-06-11 18:20:32 +01:00
|
|
|
|
|
|
|
add_task ()
|
|
|
|
{
|
|
|
|
local pass="$1"
|
|
|
|
shift
|
|
|
|
local task
|
|
|
|
|
2012-08-23 10:56:35 +01:00
|
|
|
# The removal of direct task installation support from live-build
|
|
|
|
# poses some problems. If the chroot has multiarch configured - for
|
|
|
|
# example, if we're building for amd64 - then dumpavail will show
|
|
|
|
# foreign-architecture packages which will have their own Task
|
|
|
|
# lines, but which we don't want to install. (Compare
|
|
|
|
# PackageContainerInterface::FromTask in apt, which restricts task
|
|
|
|
# expansion to the native architecture.) We therefore restrict our
|
|
|
|
# search to stanzas with Architecture: $ARCH or all.
|
|
|
|
#
|
|
|
|
# However, even this may not be accurate enough. At the moment I
|
|
|
|
# have no idea what happens if an Architecture: all package has
|
|
|
|
# different Task fields on different architectures. This is
|
|
|
|
# probably a lurking timebomb that we need to fix. In the meantime,
|
|
|
|
# the Architecture restriction at least saves us from abject
|
|
|
|
# failure.
|
|
|
|
|
2011-06-11 18:20:32 +01:00
|
|
|
for task; do
|
2012-08-23 10:56:35 +01:00
|
|
|
# We need a ridiculous number of backslashes to protect
|
|
|
|
# parentheses from eval.
|
|
|
|
echo "!chroot chroot apt-cache dumpavail | grep-dctrl -nsPackage \\\\\\( -XFArchitecture $ARCH -o -XFArchitecture all \\\\\\) -a -wFTask $task" >> "config/package-lists/livecd-rootfs.list.chroot_$pass"
|
2011-06-11 18:20:32 +01:00
|
|
|
done
|
|
|
|
}
|
2011-06-11 11:37:14 +01:00
|
|
|
|
|
|
|
add_package ()
|
|
|
|
{
|
2011-06-11 18:20:32 +01:00
|
|
|
local pass="$1"
|
|
|
|
shift
|
2011-06-11 11:37:14 +01:00
|
|
|
local pkg
|
|
|
|
|
|
|
|
for pkg; do
|
2012-08-22 13:23:46 +01:00
|
|
|
echo "$pkg" >> "config/package-lists/livecd-rootfs.list.chroot_$pass"
|
2011-06-11 11:37:14 +01:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
OPTS=
|
|
|
|
COMPONENTS=
|
2011-06-13 23:32:35 +01:00
|
|
|
BINARY_REMOVE_LINUX=:
|
2011-07-14 18:26:58 +01:00
|
|
|
BINARY_IMAGES=none
|
|
|
|
MEMTEST=none
|
2011-07-06 13:25:42 +01:00
|
|
|
SOURCE='--source false'
|
2011-07-14 18:26:58 +01:00
|
|
|
BOOTLOADER=none
|
2013-05-01 12:01:21 -07:00
|
|
|
BOOTAPPEND_LIVE=
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK=
|
2011-07-27 16:22:21 -06:00
|
|
|
PREINSTALLED=false
|
|
|
|
PREINSTALL_POOL=
|
|
|
|
PREINSTALL_POOL_SEEDS=
|
2017-11-09 16:13:08 -08:00
|
|
|
PREFIX="livecd.$PROJECT${SUBARCH:+-$SUBARCH}"
|
2011-06-10 18:59:01 +01:00
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
CHROOT_HOOKS=
|
|
|
|
BINARY_HOOKS=
|
|
|
|
|
2017-06-23 14:23:53 -04:00
|
|
|
APT_OPTIONS=" --yes -oDebug::pkgDepCache::AutoInstall=yes "
|
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
add_chroot_hook ()
|
|
|
|
{
|
|
|
|
CHROOT_HOOKS="${CHROOT_HOOKS:+$CHROOT_HOOKS }$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
add_binary_hook ()
|
|
|
|
{
|
|
|
|
BINARY_HOOKS="${BINARY_HOOKS:+$BINARY_HOOKS }$1"
|
|
|
|
}
|
|
|
|
|
2017-04-28 22:27:50 +02:00
|
|
|
if [ -z "${IMAGEFORMAT:-}" ]; then
|
2017-09-29 15:20:14 -04:00
|
|
|
case $PROJECT:${SUBPROJECT:-} in
|
2017-04-28 22:27:50 +02:00
|
|
|
ubuntu-cpc:*)
|
|
|
|
IMAGEFORMAT=ext4
|
|
|
|
;;
|
|
|
|
ubuntu-server:live)
|
|
|
|
IMAGEFORMAT=plain
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2016-02-09 12:22:13 -08:00
|
|
|
|
2018-02-23 09:37:51 +13:00
|
|
|
skip_lb_stage() {
|
|
|
|
STAGE="$1"
|
|
|
|
mkdir -p .build
|
|
|
|
touch ".build/$STAGE"
|
|
|
|
}
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
case $IMAGEFORMAT in
|
2011-06-28 14:28:30 +01:00
|
|
|
ext2|ext3|ext4)
|
2011-06-15 14:40:01 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--initramfs none --chroot-filesystem $IMAGEFORMAT"
|
2011-07-27 16:22:21 -06:00
|
|
|
PREINSTALLED=true
|
2017-09-29 15:20:14 -04:00
|
|
|
case ${SUBPROJECT:-} in
|
2011-07-06 16:57:27 +01:00
|
|
|
wubi)
|
|
|
|
add_package install lupin-support
|
2011-09-22 10:30:17 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2011-07-06 16:57:27 +01:00
|
|
|
;;
|
|
|
|
*)
|
2016-02-22 11:31:01 +00:00
|
|
|
case $PROJECT in
|
|
|
|
ubuntu-cpc)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
add_package live jasper
|
|
|
|
;;
|
|
|
|
esac
|
2011-07-06 16:57:27 +01:00
|
|
|
;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
2011-07-15 11:27:05 -06:00
|
|
|
plain)
|
2017-04-28 17:43:58 -04:00
|
|
|
INITRAMFS_TYPE=none
|
2017-09-29 15:20:14 -04:00
|
|
|
case $PROJECT:${SUBPROJECT:-} in
|
2017-04-07 17:15:54 -04:00
|
|
|
ubuntu-server:live)
|
2018-02-23 16:53:20 +13:00
|
|
|
# Stop lb installing casper into filesystem.squashfs
|
2018-02-23 09:18:33 +13:00
|
|
|
# by skipping lb_chroot_live-packages.
|
|
|
|
skip_lb_stage chroot_live-packages
|
2017-04-28 17:43:58 -04:00
|
|
|
INITRAMFS_TYPE=auto
|
2018-08-17 12:00:41 +12:00
|
|
|
touch config/universe-enabled
|
2017-04-07 17:15:54 -04:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
PREINSTALLED=true
|
|
|
|
;;
|
|
|
|
esac
|
2017-04-28 17:43:58 -04:00
|
|
|
OPTS="${OPTS:+$OPTS }--initramfs $INITRAMFS_TYPE --chroot-filesystem $IMAGEFORMAT"
|
2011-07-15 11:27:05 -06:00
|
|
|
;;
|
|
|
|
|
2017-04-28 22:30:18 +02:00
|
|
|
ubuntu-image)
|
|
|
|
case "$ARCH+${SUBARCH:-}" in
|
|
|
|
amd64+*)
|
|
|
|
MODEL=pc-amd64 ;;
|
|
|
|
i386+*)
|
|
|
|
MODEL=pc-i386 ;;
|
|
|
|
arm64+snapdragon)
|
|
|
|
MODEL=dragonboard ;;
|
|
|
|
armhf+raspi2)
|
|
|
|
MODEL=pi2 ;;
|
|
|
|
armhf+raspi3)
|
|
|
|
MODEL=pi3 ;;
|
2017-06-15 23:36:42 -07:00
|
|
|
armhf+cm3)
|
|
|
|
MODEL=cm3 ;;
|
2017-04-28 22:30:18 +02:00
|
|
|
*)
|
|
|
|
echo "Model $ARCH+${SUBARCH:-} unknown to livecd-rootfs" >&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
2017-11-09 15:55:45 -08:00
|
|
|
case $MODEL in
|
|
|
|
pc-amd64|pc-i386)
|
|
|
|
UBUNTU_IMAGE_ARGS="--image-size 3700M" ;;
|
|
|
|
*)
|
|
|
|
UBUNTU_IMAGE_ARGS="" ;;
|
|
|
|
esac
|
2018-10-03 11:51:49 +02:00
|
|
|
case $SUITE in
|
|
|
|
xenial)
|
2018-10-10 21:57:55 +02:00
|
|
|
# Ubuntu Core 16
|
|
|
|
;;
|
2018-10-03 11:51:49 +02:00
|
|
|
*)
|
2018-10-10 21:57:55 +02:00
|
|
|
# Ubuntu Core 18
|
2018-10-11 17:12:50 +02:00
|
|
|
MODEL="ubuntu-core-18-${MODEL#pc-}" ;;
|
2018-10-03 11:51:49 +02:00
|
|
|
esac
|
2017-11-09 15:55:45 -08:00
|
|
|
|
2017-04-28 22:30:18 +02:00
|
|
|
echo "IMAGEFORMAT=$IMAGEFORMAT" >> config/common
|
2017-11-09 15:55:45 -08:00
|
|
|
echo "UBUNTU_IMAGE_ARGS=\"$UBUNTU_IMAGE_ARGS\"" >> config/common
|
2017-04-28 22:30:18 +02:00
|
|
|
# Store model assertion in top dir to get it picked up later as a build artifact
|
2018-10-10 21:57:55 +02:00
|
|
|
env SNAPPY_STORE_NO_CDN=1 snap known --remote model series=16 model="$MODEL" brand-id=canonical > "$PREFIX".model-assertion
|
2017-04-28 22:30:18 +02:00
|
|
|
echo "Configured ubuntu-image for the following model assertion:"
|
2017-11-13 09:15:11 -08:00
|
|
|
cat "$PREFIX".model-assertion
|
2017-04-28 22:30:18 +02:00
|
|
|
echo "----------------------------------------------------------"
|
|
|
|
# Fake finished configuration for lb build
|
|
|
|
mkdir -p .build
|
|
|
|
touch .build/config
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
|
2017-10-16 10:43:22 +08:00
|
|
|
none)
|
2017-11-06 20:25:57 +08:00
|
|
|
OPTS="${OPTS:+$OPTS }--chroot-filesystem $IMAGEFORMAT"
|
2017-10-16 10:43:22 +08:00
|
|
|
;;
|
2011-06-10 18:59:01 +01:00
|
|
|
*)
|
2013-05-03 08:45:36 -07:00
|
|
|
case $PROJECT in
|
2016-07-05 15:59:39 +02:00
|
|
|
ubuntu-server|ubuntu-touch|ubuntu-touch-custom)
|
2013-05-03 08:45:36 -07:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
add_package live lupin-casper
|
|
|
|
;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2017-04-07 17:15:54 -04:00
|
|
|
if [ "$PREINSTALLED" = "true" ]; then
|
2018-08-17 12:00:41 +12:00
|
|
|
# Touch a random file that we can refer back to during build,
|
|
|
|
# cause that's wildly hackish
|
|
|
|
touch config/universe-enabled
|
2011-09-28 15:29:01 -06:00
|
|
|
case $PROJECT in
|
|
|
|
kubuntu*)
|
2011-10-06 19:37:38 -06:00
|
|
|
add_package live oem-config-kde ubiquity-frontend-kde
|
2012-12-03 14:39:32 +01:00
|
|
|
add_package live ubiquity-slideshow-kubuntu
|
2011-09-28 15:29:01 -06:00
|
|
|
;;
|
2012-10-02 23:56:33 +02:00
|
|
|
lubuntu*)
|
|
|
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
2012-12-03 14:39:32 +01:00
|
|
|
add_package live ubiquity-slideshow-lubuntu
|
2012-10-02 23:56:33 +02:00
|
|
|
;;
|
|
|
|
xubuntu*)
|
|
|
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
2012-12-03 14:39:32 +01:00
|
|
|
add_package live ubiquity-slideshow-xubuntu
|
2012-10-02 23:56:33 +02:00
|
|
|
;;
|
2015-01-28 11:02:31 -05:00
|
|
|
ubuntu-mate)
|
2014-12-11 14:46:23 +00:00
|
|
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
|
|
|
add_package live ubiquity-slideshow-ubuntu-mate
|
2015-01-28 11:02:31 -05:00
|
|
|
;;
|
2011-09-28 15:29:01 -06:00
|
|
|
ubuntu-server)
|
2011-10-06 19:37:38 -06:00
|
|
|
add_package live oem-config-debconf ubiquity-frontend-debconf
|
2011-09-28 15:29:01 -06:00
|
|
|
;;
|
2017-04-07 17:15:54 -04:00
|
|
|
ubuntu-core|ubuntu-base|base|ubuntu-touch|ubuntu-touch-custom|ubuntu-cpc|ubuntu-desktop-next)
|
2011-09-28 15:29:01 -06:00
|
|
|
;;
|
|
|
|
*)
|
2011-10-06 19:37:38 -06:00
|
|
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
2012-12-03 14:39:32 +01:00
|
|
|
add_package live ubiquity-slideshow-ubuntu
|
2011-09-28 15:29:01 -06:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2011-07-14 18:26:58 +01:00
|
|
|
case $BINARYFORMAT in
|
|
|
|
iso*|usb*)
|
|
|
|
BINARY_IMAGES="$BINARYFORMAT"
|
|
|
|
MEMTEST=memtest86+
|
|
|
|
BOOTLOADER=syslinux
|
2012-08-30 23:39:45 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--zsync=false"
|
2011-07-14 18:26:58 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2015-08-11 11:27:42 +02:00
|
|
|
SIGNED_KERNEL_PACKAGE="linux-signed-generic"
|
|
|
|
|
2017-09-29 15:20:14 -04:00
|
|
|
if [ "${SUBPROJECT:-}" = minimized ]; then
|
2017-10-02 15:17:23 -07:00
|
|
|
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal --linux-packages=linux-image"
|
2017-09-26 22:39:08 -04:00
|
|
|
fi
|
|
|
|
|
2018-01-04 12:11:46 +00:00
|
|
|
# cribbed from cdimage, perhaps this should be a small helper script in germinate?
|
|
|
|
add_inheritance () {
|
|
|
|
case " $inherit " in
|
|
|
|
*" $1 "*)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
inherit="${inherit:+$inherit }$1"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
expand_inheritance () {
|
|
|
|
for seed in $(grep "^$1:" config/germinate-output/structure | cut -d: -f2); do
|
|
|
|
expand_inheritance "$seed"
|
|
|
|
done
|
|
|
|
add_inheritance "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
inheritance () {
|
|
|
|
inherit=
|
|
|
|
expand_inheritance "$1"
|
|
|
|
echo "$inherit"
|
|
|
|
}
|
|
|
|
|
|
|
|
mkdir -p config/germinate-output
|
|
|
|
case $PROJECT in
|
|
|
|
kubuntu-active*)
|
|
|
|
SEED=kubuntu-active.$SUITE
|
|
|
|
;;
|
|
|
|
kubuntu*)
|
|
|
|
SEED=kubuntu.$SUITE
|
|
|
|
;;
|
|
|
|
xubuntu*)
|
|
|
|
SEED=xubuntu.$SUITE
|
|
|
|
;;
|
2018-01-30 10:49:38 +00:00
|
|
|
ubuntu-mate*)
|
|
|
|
SEED=ubuntu-mate.$SUITE
|
|
|
|
;;
|
|
|
|
lubuntu*)
|
|
|
|
SEED=lubuntu.$SUITE
|
|
|
|
;;
|
|
|
|
ubuntu-budgie*)
|
|
|
|
SEED=ubuntu-budgie.$SUITE
|
|
|
|
;;
|
|
|
|
ubuntukylin*)
|
|
|
|
SEED=ubuntukylin.$SUITE
|
|
|
|
;;
|
|
|
|
ubuntustudio*)
|
|
|
|
SEED=ubuntustudio.$SUITE
|
|
|
|
;;
|
2018-01-04 12:11:46 +00:00
|
|
|
*)
|
|
|
|
SEED=ubuntu.$SUITE
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
if ! [ -e config/germinate-output/structure ]; then
|
|
|
|
echo "Running germinate..."
|
|
|
|
(cd config/germinate-output && germinate --no-rdepends --no-installer \
|
|
|
|
-S $SEEDMIRROR -m $MIRROR -d $SUITE -s $SEED \
|
|
|
|
${COMPONENTS:+-c "$COMPONENTS"} -a $ARCH)
|
|
|
|
fi
|
|
|
|
|
2018-03-15 09:48:10 +13:00
|
|
|
case $PROJECT in
|
2018-05-08 21:12:15 -05:00
|
|
|
base|edubuntu|edubuntu-dvd|kubuntu|kubuntu-active|kubuntu-dvd|kubuntu-plasma5|lubuntu|mythbuntu|ubuntu|ubuntu-budgie|ubuntu-desktop-next|ubuntu-dvd|ubuntu-gnome|ubuntu-mate|ubuntu-netbook|ubuntukylin|ubuntustudio-dvd|xubuntu)
|
2018-03-15 09:48:10 +13:00
|
|
|
INITRAMFS_COMPRESSION="lzma"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
case $PROJECT in
|
|
|
|
ubuntu|ubuntu-dvd)
|
2017-06-02 15:07:11 +02:00
|
|
|
add_task install minimal standard ubuntu-desktop
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK='ubuntu-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
2015-08-11 11:27:42 +02:00
|
|
|
amd64) add_package live $SIGNED_KERNEL_PACKAGE ;;
|
2014-06-24 02:18:31 +01:00
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
2014-05-16 17:51:02 +01:00
|
|
|
ubuntu-desktop-next)
|
2014-05-22 16:21:55 +01:00
|
|
|
add_task install minimal standard ubuntu-desktop-next ubuntu-sdk-libs
|
2014-05-12 13:02:29 +01:00
|
|
|
COMPONENTS='main restricted universe'
|
2014-05-22 15:49:27 +01:00
|
|
|
LIVE_TASK='ubuntu-touch-live'
|
2015-06-10 15:09:50 +02:00
|
|
|
KERNEL_FLAVOURS=generic
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2015-04-22 10:57:51 +01:00
|
|
|
|
|
|
|
# system image snappy desktop next image
|
|
|
|
# mvo: This is for cron.daily-preinstalled
|
|
|
|
# CDIMAGE_PREINSTALLED is not passed from build.py
|
|
|
|
# and PREINSTALLED means something different. So
|
|
|
|
# we use SUBPROJECT to pass on the information
|
2017-09-29 15:20:14 -04:00
|
|
|
if [ "${SUBPROJECT:-}" = "system-image" ]; then
|
2015-04-22 10:57:51 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--linux-packages=linux-image"
|
|
|
|
fi
|
2014-05-19 12:14:26 +01:00
|
|
|
;;
|
2014-05-12 13:02:29 +01:00
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
kubuntu|kubuntu-dvd)
|
2013-07-17 10:15:03 +01:00
|
|
|
add_task install minimal standard
|
2016-04-03 02:41:30 -06:00
|
|
|
add_task install kubuntu-desktop
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK='kubuntu-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2012-06-11 12:29:23 +01:00
|
|
|
COMPONENTS='main restricted universe'
|
2012-08-22 13:23:46 +01:00
|
|
|
add_chroot_hook remove-gnome-icon-cache
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
2012-02-22 12:00:27 +00:00
|
|
|
kubuntu-active)
|
|
|
|
add_task install minimal standard kubuntu-active
|
|
|
|
LIVE_TASK='kubuntu-active-live'
|
2011-06-10 18:59:01 +01:00
|
|
|
COMPONENTS='main restricted universe'
|
2012-08-22 13:23:46 +01:00
|
|
|
add_chroot_hook remove-gnome-icon-cache
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
2014-07-31 10:30:02 +01:00
|
|
|
kubuntu-plasma5)
|
|
|
|
add_task install minimal standard
|
|
|
|
add_package install kubuntu-plasma5-desktop
|
|
|
|
# Technically cheating, but PPAs don't have tasks and the
|
|
|
|
# live seed doesn't have a corresponding metapackage. We'll
|
|
|
|
# get away with this as long as kubuntu-desktop and
|
|
|
|
# kubuntu-plasma5-desktop don't grow too far apart.
|
|
|
|
LIVE_TASK='kubuntu-live'
|
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
add_chroot_hook remove-gnome-icon-cache
|
|
|
|
;;
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
edubuntu|edubuntu-dvd)
|
2013-09-24 16:58:16 +01:00
|
|
|
add_task install minimal standard ubuntu-desktop edubuntu-desktop-gnome
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK='edubuntu-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
;;
|
|
|
|
|
|
|
|
xubuntu)
|
2011-06-11 18:20:32 +01:00
|
|
|
add_task install minimal standard xubuntu-desktop
|
|
|
|
add_package install xterm
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK='xubuntu-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2012-03-20 17:52:44 +00:00
|
|
|
case $ARCH in
|
|
|
|
amd64|i386) KERNEL_FLAVOURS=generic ;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
ubuntu-netbook)
|
2011-06-11 18:20:32 +01:00
|
|
|
add_task install minimal standard ubuntu-netbook
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK='netbook-live'
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
mythbuntu)
|
2011-06-11 18:20:32 +01:00
|
|
|
add_task install minimal standard mythbuntu-desktop
|
2011-07-06 16:57:27 +01:00
|
|
|
LIVE_TASK='mythbuntu-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
;;
|
|
|
|
|
2011-06-15 13:30:40 +01:00
|
|
|
lubuntu)
|
|
|
|
add_task install minimal standard lubuntu-desktop
|
2017-05-16 20:09:26 -05:00
|
|
|
LIVE_TASK='lubuntu-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2011-06-15 13:30:40 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2012-03-20 17:52:44 +00:00
|
|
|
case $ARCH in
|
|
|
|
amd64|i386) KERNEL_FLAVOURS=generic ;;
|
|
|
|
esac
|
2016-07-26 12:15:20 -05:00
|
|
|
;;
|
|
|
|
|
2013-03-09 15:34:04 -05:00
|
|
|
ubuntu-gnome)
|
|
|
|
add_task install minimal standard ubuntu-gnome-desktop
|
|
|
|
LIVE_TASK='ubuntu-gnome-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2013-03-09 15:34:04 -05:00
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
;;
|
2016-12-22 18:59:01 +00:00
|
|
|
|
2016-12-22 19:12:48 +00:00
|
|
|
ubuntu-budgie)
|
2016-12-22 18:59:01 +00:00
|
|
|
add_task install minimal standard ubuntu-budgie-desktop
|
|
|
|
LIVE_TASK='ubuntu-budgie-live'
|
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
;;
|
2013-03-09 15:34:04 -05:00
|
|
|
|
2014-12-11 14:46:23 +00:00
|
|
|
ubuntu-mate)
|
2015-01-26 19:33:00 +00:00
|
|
|
add_task install minimal standard ubuntu-mate-core ubuntu-mate-desktop
|
2014-12-11 14:46:23 +00:00
|
|
|
LIVE_TASK='ubuntu-mate-live'
|
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
;;
|
|
|
|
|
2012-01-23 17:15:22 +00:00
|
|
|
ubuntustudio-dvd)
|
2016-03-16 10:45:26 +00:00
|
|
|
add_task install minimal standard ubuntustudio-desktop ubuntustudio-audio ubuntustudio-fonts ubuntustudio-graphics ubuntustudio-video ubuntustudio-publishing ubuntustudio-photography
|
2012-01-20 20:50:58 +00:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2012-03-19 12:44:11 +00:00
|
|
|
case $ARCH in
|
2012-06-26 14:03:31 -06:00
|
|
|
amd64|i386) KERNEL_FLAVOURS=lowlatency ;;
|
2012-03-19 12:44:11 +00:00
|
|
|
esac
|
2012-01-20 20:50:58 +00:00
|
|
|
;;
|
|
|
|
|
2013-03-09 02:36:24 +00:00
|
|
|
ubuntukylin)
|
2014-09-10 10:54:13 +01:00
|
|
|
add_task install minimal standard ubuntukylin-desktop
|
2013-03-09 02:36:24 +00:00
|
|
|
add_package install ubuntukylin-default-settings
|
2014-09-24 10:59:52 +01:00
|
|
|
LIVE_TASK='ubuntukylin-live'
|
2014-06-24 02:18:31 +01:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2013-03-09 02:36:24 +00:00
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
;;
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
base)
|
2011-06-11 18:20:32 +01:00
|
|
|
add_task install minimal standard
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
2011-06-28 14:28:30 +01:00
|
|
|
ubuntu-server)
|
2012-09-09 20:41:14 +01:00
|
|
|
add_task install minimal
|
2017-09-29 15:20:14 -04:00
|
|
|
case ${SUBPROJECT:-} in
|
2017-04-07 17:15:54 -04:00
|
|
|
live)
|
|
|
|
add_task install standard
|
|
|
|
add_task install server
|
|
|
|
LIVE_TASK='cloud-image'
|
2018-02-15 09:31:07 +13:00
|
|
|
case $ARCH in
|
|
|
|
amd64) add_package live linux-signed-generic ;;
|
|
|
|
esac
|
2017-04-07 17:15:54 -04:00
|
|
|
;;
|
|
|
|
esac
|
2012-04-20 12:12:06 -06:00
|
|
|
COMPONENTS='main'
|
2011-07-27 16:22:21 -06:00
|
|
|
PREINSTALL_POOL_SEEDS='server-ship'
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
|
2011-07-15 11:27:05 -06:00
|
|
|
ubuntu-core)
|
2016-05-09 16:31:57 -07:00
|
|
|
OPTS="${OPTS:+$OPTS }--apt-recommends false"
|
2015-11-05 11:49:19 +01:00
|
|
|
|
2016-05-09 16:31:57 -07:00
|
|
|
# some workarounds because the seeds are not quite
|
|
|
|
# corrent at the moment
|
|
|
|
add_package install dbus
|
|
|
|
add_package install isc-dhcp-client
|
|
|
|
add_package install libpam-systemd
|
|
|
|
add_package install ppp
|
|
|
|
add_package install watchdog
|
|
|
|
# no Task: header yet
|
|
|
|
add_package install snapd
|
|
|
|
add_package install ubuntu-core-snapd-units
|
2016-08-16 10:17:52 +12:00
|
|
|
add_package install nplan
|
2016-05-13 21:06:41 +02:00
|
|
|
# we want all arches to have u-boot-tools
|
|
|
|
add_package install u-boot-tools
|
2016-05-09 16:31:57 -07:00
|
|
|
|
|
|
|
# no minimal as we want to be really minimal
|
|
|
|
#add_task install minimal
|
|
|
|
add_task install ubuntu-core
|
|
|
|
|
|
|
|
# more packages are pulled in via the seed.
|
|
|
|
# (important to remember when comparing to the
|
|
|
|
# livecd-rootfs from ppa:snappy-dev/image)
|
2015-06-10 13:32:43 +01:00
|
|
|
|
2016-05-09 16:31:57 -07:00
|
|
|
case $ARCH in
|
|
|
|
i386)
|
|
|
|
# efi support can go once the task
|
|
|
|
# header is available for grub-efi-ia32-bin
|
|
|
|
add_package install grub-efi-ia32-bin
|
|
|
|
;;
|
|
|
|
esac
|
2015-06-10 13:32:43 +01:00
|
|
|
|
2016-05-09 16:31:57 -07:00
|
|
|
# generic kernel etc
|
|
|
|
KERNEL_FLAVOURS=none
|
|
|
|
case $ARCH in
|
|
|
|
i386)
|
|
|
|
add_package install grub-pc
|
|
|
|
;;
|
|
|
|
amd64)
|
|
|
|
add_package install grub-pc-bin
|
|
|
|
add_package install grub-efi-amd64-signed
|
|
|
|
add_package install shim-signed
|
|
|
|
;;
|
|
|
|
esac
|
2018-01-19 12:26:32 -06:00
|
|
|
OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none"
|
2014-10-29 11:04:17 +01:00
|
|
|
|
2016-05-09 16:31:57 -07:00
|
|
|
# contains the framework definition
|
|
|
|
add_package install ubuntu-core-libs
|
|
|
|
|
|
|
|
# universe needed for 'system-image-cli' and multiverse for firmware
|
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2011-07-15 11:27:05 -06:00
|
|
|
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
|
|
|
;;
|
|
|
|
|
2016-05-09 15:08:27 -07:00
|
|
|
ubuntu-base)
|
|
|
|
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
|
|
|
;;
|
|
|
|
|
2016-07-05 15:59:39 +02:00
|
|
|
ubuntu-touch|ubuntu-touch-custom)
|
2016-10-26 18:36:24 +02:00
|
|
|
HINTS="packagekit ubuntu-system-settings"
|
2016-05-26 21:05:21 -06:00
|
|
|
case $ARCH in
|
|
|
|
amd64|i386)
|
|
|
|
HINTS="$HINTS qml-module-ubuntu-components-gles unity8"
|
|
|
|
;;
|
|
|
|
esac
|
2016-07-05 15:59:39 +02:00
|
|
|
add_package install ubuntu-minimal ubuntu-touch $HINTS
|
2015-09-21 15:57:55 +02:00
|
|
|
|
2013-05-01 10:51:50 -07:00
|
|
|
COMPONENTS='main restricted universe'
|
2013-05-01 12:01:21 -07:00
|
|
|
BOOTAPPEND_LIVE='hostname=ubuntu-phablet username=ubuntu'
|
|
|
|
export LB_BOOTSTRAP_INCLUDE='apt-transport-https gnupg'
|
|
|
|
OPTS="${OPTS:+$OPTS }--apt-recommends false"
|
2013-05-03 08:51:20 -07:00
|
|
|
OPTS="${OPTS:+$OPTS }--compression gzip"
|
2013-05-01 12:01:21 -07:00
|
|
|
OPTS="${OPTS:+$OPTS }--system normal"
|
2013-05-03 10:45:54 -07:00
|
|
|
OPTS="${OPTS:+$OPTS }--zsync false"
|
2014-07-17 12:50:05 +01:00
|
|
|
|
|
|
|
# TODO cjwatson 2014-07-17: This is a bit of an abuse of
|
|
|
|
# SUBPROJECT, but it's a handy thing that launchpad-buildd
|
|
|
|
# already passes through to us that we weren't otherwise
|
|
|
|
# using here.
|
2017-09-29 15:20:14 -04:00
|
|
|
case ${SUBPROJECT:-} in
|
2014-07-17 12:50:05 +01:00
|
|
|
ubuntu-rtm/dogfood)
|
|
|
|
MIRROR=http://derived-archive.dogfood.content.paddev.net/ubuntu-rtm/
|
2014-07-23 01:49:11 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--apt-secure false"
|
2014-07-23 11:00:15 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--mirror-chroot-security ${MIRROR}"
|
|
|
|
OPTS="${OPTS:+$OPTS }--mirror-binary-security ${MIRROR}"
|
2014-07-23 11:51:04 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--mirror-binary ${MIRROR}"
|
2014-07-17 12:50:05 +01:00
|
|
|
;;
|
|
|
|
ubuntu-rtm)
|
|
|
|
MIRROR=http://derived.archive.canonical.com/ubuntu-rtm/
|
2014-07-23 11:00:15 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--mirror-chroot-security ${MIRROR}"
|
|
|
|
OPTS="${OPTS:+$OPTS }--mirror-binary-security ${MIRROR}"
|
2014-07-23 11:51:04 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--mirror-binary ${MIRROR}"
|
2014-07-17 12:50:05 +01:00
|
|
|
;;
|
|
|
|
esac
|
2013-05-01 10:51:50 -07:00
|
|
|
;;
|
|
|
|
|
2015-04-08 09:34:15 +01:00
|
|
|
ubuntu-cpc)
|
2017-09-29 15:20:14 -04:00
|
|
|
if [ "${SUBPROJECT:-}" = minimized ]; then
|
2017-09-26 22:39:08 -04:00
|
|
|
add_task install cloud-image
|
2017-09-26 22:39:09 -04:00
|
|
|
add_package install sudo
|
2018-06-06 17:19:17 -07:00
|
|
|
# linux-kvm currently only exists for amd64, so fall back to the
|
|
|
|
# virtual flavour for other architectures
|
|
|
|
if [ "$ARCH" = "amd64" ]; then
|
2017-10-04 10:13:13 -07:00
|
|
|
KERNEL_FLAVOURS=kvm
|
2018-03-21 11:05:46 +00:00
|
|
|
else
|
|
|
|
KERNEL_FLAVOURS=virtual
|
2017-10-04 10:13:13 -07:00
|
|
|
fi
|
2017-09-26 22:39:08 -04:00
|
|
|
else
|
|
|
|
add_task install minimal standard cloud-image
|
|
|
|
add_package install ubuntu-minimal
|
2017-10-02 14:47:46 -07:00
|
|
|
KERNEL_FLAVOURS=virtual
|
2017-10-11 01:57:03 +02:00
|
|
|
case $ARCH in
|
|
|
|
armhf|arm64|ppc64el|powerpc)
|
|
|
|
add_task install server
|
|
|
|
;;
|
|
|
|
esac
|
2017-09-26 22:39:08 -04:00
|
|
|
fi
|
2016-02-01 17:20:31 -08:00
|
|
|
|
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
OPTS="${OPTS:+$OPTS }--initramfs=none"
|
|
|
|
case $ARCH in
|
|
|
|
armhf)
|
|
|
|
KERNEL_FLAVOURS=generic-lpae
|
|
|
|
add_package install flash-kernel
|
|
|
|
;;
|
|
|
|
arm64)
|
|
|
|
add_package install flash-kernel
|
2016-04-07 14:34:12 +01:00
|
|
|
;;
|
2016-02-01 17:20:31 -08:00
|
|
|
esac
|
|
|
|
OPTS="${OPTS:+$OPTS }--system=normal"
|
|
|
|
OPTS="${OPTS:+$OPTS }--hdd-label=cloudimg-rootfs"
|
|
|
|
OPTS="${OPTS:+$OPTS }--ext-resize-blocks=536870912 --ext-block-size=4096"
|
|
|
|
OPTS="${OPTS:+$OPTS }--ext-fudge-factor=15"
|
2015-04-08 09:34:15 +01:00
|
|
|
;;
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
*)
|
|
|
|
echo "unknown project $PROJECT" >&2
|
|
|
|
exit 2
|
|
|
|
;;
|
|
|
|
esac
|
2011-07-06 16:57:27 +01:00
|
|
|
|
2018-04-27 16:07:44 +01:00
|
|
|
case $SUBPROJECT in
|
|
|
|
buildd)
|
|
|
|
OPTS="${OPTS:+$OPTS }--archive-areas main"
|
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
OPTS="${OPTS:+$OPTS }--apt-recommends false"
|
|
|
|
OPTS="${OPTS:+$OPTS }--apt-secure false"
|
2018-04-29 21:42:41 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--parent-mirror-binary ${MIRROR}"
|
2018-04-27 16:07:44 +01:00
|
|
|
# XXX cjwatson 2018-04-27: We need to work out how to make
|
|
|
|
# this conditional so that we can do things like building
|
|
|
|
# buildd chroots with -updates. This probably involves
|
|
|
|
# either extending the PROPOSED hack or fixing the strange
|
|
|
|
# way that SUITE is in fact a series; in either case it's
|
|
|
|
# likely to involve work both here and in launchpad-buildd.
|
|
|
|
OPTS="${OPTS:+$OPTS }--security false --volatile false"
|
|
|
|
|
|
|
|
add_package install adduser
|
|
|
|
add_package install policyrcd-script-zg2
|
|
|
|
add_package install pkgbinarymangler
|
|
|
|
add_package install ca-certificates
|
|
|
|
add_package install gpg
|
|
|
|
add_package install gpg-agent
|
|
|
|
case $SUITE in
|
|
|
|
precise|trusty|xenial)
|
|
|
|
# no longer needed in >= artful
|
|
|
|
add_package install pkg-create-dbgsym
|
|
|
|
# no longer needed in >= bionic
|
|
|
|
add_package install apt-transport-https
|
2018-06-29 21:57:15 +01:00
|
|
|
# no longer needed in >= cosmic
|
2018-04-27 16:07:44 +01:00
|
|
|
add_package install tzdata
|
|
|
|
;;
|
|
|
|
artful)
|
|
|
|
# no longer needed in >= bionic
|
|
|
|
add_package install apt-transport-https
|
2018-06-29 21:57:15 +01:00
|
|
|
# no longer needed in >= cosmic
|
2018-04-27 16:07:44 +01:00
|
|
|
add_package install tzdata
|
|
|
|
;;
|
|
|
|
bionic)
|
2018-06-29 21:57:15 +01:00
|
|
|
# no longer needed in >= cosmic
|
2018-04-27 16:07:44 +01:00
|
|
|
add_package install tzdata
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
add_package install fakeroot
|
|
|
|
add_package install build-essential
|
2018-04-30 16:39:01 +01:00
|
|
|
# Needed for LXD-based builds.
|
|
|
|
add_package install init
|
2018-04-27 16:07:44 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2018-01-30 09:51:32 +00:00
|
|
|
# we'll expand the base seed given here according to the STRUCTURE file, and
|
|
|
|
# then look in all of the seeds found to see which snaps are seeded
|
2018-02-06 23:37:28 -05:00
|
|
|
case $PROJECT:${SUBPROJECT:-} in
|
2018-05-03 23:08:44 -05:00
|
|
|
ubuntu:*|kubuntu*:*|lubuntu*:*|xubuntu*:*|ubuntu-mate*:*|ubuntustudio*:*|ubuntukylin*:*|ubuntu-budgie*:*)
|
2018-01-30 09:51:32 +00:00
|
|
|
BASE_SEED='desktop'
|
|
|
|
;;
|
2018-09-27 11:36:01 -05:00
|
|
|
ubuntu-cpc:*)
|
|
|
|
BASE_SEED='server'
|
|
|
|
;;
|
2018-02-06 23:37:28 -05:00
|
|
|
ubuntu-server:live)
|
|
|
|
BASE_SEED='server'
|
|
|
|
# subiquity is seeded but in a separate squashfs via hooks; set HOOK_SNAPS and ALL_SNAPS.
|
|
|
|
HOOK_SNAPS='subiquity'
|
|
|
|
ALL_SNAPS=''
|
|
|
|
;;
|
2018-01-30 09:51:32 +00:00
|
|
|
esac
|
|
|
|
|
2018-01-30 09:44:25 +00:00
|
|
|
if [ -n "${BASE_SEED}" ]; then
|
|
|
|
SEEDS_EXPANDED=$(inheritance ${BASE_SEED})
|
|
|
|
for seed in ${SEEDS_EXPANDED}; do
|
|
|
|
echo "snap: considering ${seed}"
|
|
|
|
file=config/germinate-output/${seed}.snaps
|
|
|
|
[ -e "${file}" ] || continue
|
|
|
|
# extract the first column (snap package name) from germinate's output
|
|
|
|
# translate the human-readable "foo (classic)" into a
|
|
|
|
# more machine readable "foo/classic"
|
|
|
|
seed_snaps=$(sed -rn '1,/-----/d;/-----/,$d; s/(.*) \|.*/\1/; s, \(classic\),/classic,; p' "${file}")
|
|
|
|
for snap in ${seed_snaps}; do
|
|
|
|
echo "snap: found ${snap}"
|
|
|
|
ALL_SNAPS="${ALL_SNAPS:+${ALL_SNAPS} }${snap}"
|
|
|
|
done
|
|
|
|
done
|
2018-02-06 23:37:28 -05:00
|
|
|
if [ -n "${ALL_SNAPS}" ] || [ -n "${HOOK_SNAPS}" ]; then
|
2018-02-01 11:52:41 +00:00
|
|
|
echo "${ALL_SNAPS}" > config/seeded-snaps
|
|
|
|
fi
|
2018-01-30 09:44:25 +00:00
|
|
|
fi
|
|
|
|
|
2018-02-23 12:08:17 +00:00
|
|
|
# grab a list of packags to remove for a "minimal" installation from the seed
|
|
|
|
# mirror for this project
|
|
|
|
if [ -n "${BASE_SEED}" ] && [ -n "${BASE_SEED}" ]; then
|
|
|
|
minimal_packages_url=${SEEDMIRROR}/${SEED}/${BASE_SEED}.minimal-remove
|
|
|
|
echo -n "Checking ${minimal_packages_url} for a minimal installation list... "
|
|
|
|
minimal_packages_remove=$(wget -q -O- ${minimal_packages_url} | sed -e '/\s*#.*$/d' -e '/^\s*$/d')
|
|
|
|
if [ -n "${minimal_packages_remove}" ]; then
|
|
|
|
echo "${minimal_packages_remove}" > config/manifest-minimal-remove
|
|
|
|
echo "$(echo ${minimal_packages_remove} | tr '\n' ' ')"
|
|
|
|
else
|
|
|
|
echo "failed to retrieve, not including."
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2017-06-23 14:23:53 -04:00
|
|
|
export APT_OPTIONS
|
|
|
|
|
2012-08-23 09:44:35 +01:00
|
|
|
if [ "$PREINSTALLED" != "true" ] && [ "$LIVE_TASK" ]; then
|
2012-01-09 03:28:09 -07:00
|
|
|
add_task live "$LIVE_TASK"
|
|
|
|
fi
|
2011-07-06 16:57:27 +01:00
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
case $PROJECT in
|
2011-08-19 10:56:30 +01:00
|
|
|
ubuntu-dvd)
|
|
|
|
add_task install ubuntu-usb
|
|
|
|
add_task live ubuntu-usb-live
|
|
|
|
;;
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
*-dvd)
|
2011-06-11 18:20:32 +01:00
|
|
|
add_task live "$PROJECT-live"
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
case $ARCH in
|
2011-12-02 11:43:13 -07:00
|
|
|
armel|armhf)
|
2011-07-15 18:02:05 -06:00
|
|
|
KERNEL_FLAVOURS="${SUBARCH:-$KERNEL_FLAVOURS}"
|
2011-06-10 18:59:01 +01:00
|
|
|
case $SUBARCH in
|
|
|
|
dove)
|
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
|
|
|
omap)
|
2012-07-25 06:39:45 -06:00
|
|
|
add_package install u-boot-linaro-omap3-beagle u-boot-tools
|
2011-06-10 18:59:01 +01:00
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
|
|
|
omap4)
|
2012-08-29 12:53:11 +02:00
|
|
|
case $PROJECT in
|
|
|
|
ubuntu-server|ubuntu-core|base)
|
|
|
|
add_package install u-boot-linaro-omap4-panda u-boot-tools
|
|
|
|
;;
|
|
|
|
*)
|
2013-07-16 16:29:52 +01:00
|
|
|
add_package install u-boot-linaro-omap4-panda u-boot-tools pvr-omap4
|
2012-08-29 12:53:11 +02:00
|
|
|
;;
|
|
|
|
esac
|
2011-06-10 18:59:01 +01:00
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
2011-08-12 18:11:54 +03:00
|
|
|
mx5)
|
|
|
|
COMPONENTS='main restricted universe'
|
2011-08-24 18:20:03 +03:00
|
|
|
KERNEL_FLAVOURS=linaro-lt-mx5
|
2012-07-25 06:39:45 -06:00
|
|
|
add_package install flash-kernel u-boot-linaro-mx53loco u-boot-tools
|
2011-08-12 18:11:54 +03:00
|
|
|
BINARY_REMOVE_LINUX=false
|
2011-08-16 15:40:24 +02:00
|
|
|
;;
|
2011-08-09 16:21:50 +02:00
|
|
|
ac100)
|
2012-10-12 14:20:21 +02:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2013-01-29 12:35:51 -07:00
|
|
|
add_package install zram-config abootimg
|
2012-02-29 09:29:54 -07:00
|
|
|
add_package live ac100-tarball-installer
|
2011-08-09 16:21:50 +02:00
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
2016-02-10 23:51:54 -08:00
|
|
|
raspi2)
|
2016-03-14 10:32:26 -06:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2016-04-20 10:50:51 -06:00
|
|
|
add_package install linux-firmware-raspi2 u-boot-rpi flash-kernel u-boot-tools
|
2016-02-10 23:51:54 -08:00
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
2011-06-10 18:59:01 +01:00
|
|
|
esac
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2017-09-29 15:20:14 -04:00
|
|
|
case $PROJECT:${SUBPROJECT:-} in
|
2017-04-28 17:43:04 -04:00
|
|
|
ubuntu-server:live)
|
|
|
|
;;
|
|
|
|
ubuntu-server:*|ubuntu-base:*|ubuntu-touch:*|ubuntu-touch-custom:*)
|
2016-05-09 16:31:57 -07:00
|
|
|
OPTS="${OPTS:+$OPTS }--linux-packages=none --initramfs=none"
|
|
|
|
KERNEL_FLAVOURS=none
|
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
2012-09-11 16:56:40 +01:00
|
|
|
esac
|
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
add_chroot_hook update-apt-file-cache
|
|
|
|
add_chroot_hook update-apt-xapian-index
|
|
|
|
add_chroot_hook update-mlocate-database
|
|
|
|
add_chroot_hook remove-dbus-machine-id
|
|
|
|
add_chroot_hook remove-openssh-server-host-keys
|
|
|
|
add_chroot_hook remove-udev-persistent-rules
|
|
|
|
|
|
|
|
case $PROJECT in
|
2016-10-26 16:58:36 +01:00
|
|
|
# if any flavours want to strip .pyc files from their live images, add them here
|
|
|
|
_)
|
2012-08-22 13:23:46 +01:00
|
|
|
add_chroot_hook remove-python-py
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2017-09-29 15:20:14 -04:00
|
|
|
case ${SUBPROJECT:-} in
|
2012-08-22 13:23:46 +01:00
|
|
|
wubi)
|
|
|
|
add_binary_hook build-wubildr
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-06-10 18:59:01 +01:00
|
|
|
lb config noauto \
|
|
|
|
--mode ubuntu \
|
|
|
|
--distribution "$SUITE" \
|
2017-11-23 20:27:16 +01:00
|
|
|
--iso-preparer "livecd-rootfs" \
|
2011-06-10 18:59:01 +01:00
|
|
|
--bootstrap-keyring ubuntu-keyring \
|
2011-07-14 18:26:58 +01:00
|
|
|
--binary-images "$BINARY_IMAGES" \
|
|
|
|
--memtest "$MEMTEST" \
|
2011-07-06 13:25:42 +01:00
|
|
|
$SOURCE \
|
2011-06-10 18:59:01 +01:00
|
|
|
--build-with-chroot false \
|
|
|
|
${MIRROR:+--parent-mirror-bootstrap $MIRROR} \
|
|
|
|
${COMPONENTS:+--parent-archive-areas "$COMPONENTS"} \
|
2012-08-22 13:23:46 +01:00
|
|
|
--apt-source-archives false \
|
2011-06-14 08:30:06 +01:00
|
|
|
${KERNEL_FLAVOURS:+--linux-flavours "$KERNEL_FLAVOURS"} \
|
2011-06-10 18:59:01 +01:00
|
|
|
--initsystem none \
|
2011-07-14 18:26:58 +01:00
|
|
|
--bootloader "$BOOTLOADER" \
|
2018-04-11 19:18:47 +12:00
|
|
|
${INITRAMFS_COMPRESSION:+--initramfs-compression "$INITRAMFS_COMPRESSION"} \
|
2018-07-11 15:06:16 -05:00
|
|
|
--checksums none \
|
2017-10-13 22:15:38 -04:00
|
|
|
--cache false \
|
2013-05-01 12:01:21 -07:00
|
|
|
${BOOTAPPEND_LIVE:+--bootappend-live "$BOOTAPPEND_LIVE"} \
|
2014-05-10 13:54:00 +01:00
|
|
|
$OPTS \
|
|
|
|
"$@"
|
2011-06-10 18:59:01 +01:00
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
echo "LB_CHROOT_HOOKS=\"$CHROOT_HOOKS\"" >> config/chroot
|
2017-09-29 15:20:14 -04:00
|
|
|
echo "SUBPROJECT=\"${SUBPROJECT:-}\"" >> config/chroot
|
2018-04-10 11:59:19 -05:00
|
|
|
echo "LB_DISTRIBUTION=\"$SUITE\"" >> config/chroot
|
2012-08-22 13:23:46 +01:00
|
|
|
echo "LB_BINARY_HOOKS=\"$BINARY_HOOKS\"" >> config/binary
|
2013-07-11 16:41:25 +02:00
|
|
|
echo "BUILDSTAMP=\"$NOW\"" >> config/binary
|
2017-09-29 15:20:14 -04:00
|
|
|
echo "SUBPROJECT=\"${SUBPROJECT:-}\"" >> config/binary
|
2018-04-10 11:59:19 -05:00
|
|
|
echo "LB_DISTRIBUTION=\"$SUITE\"" >> config/binary
|
2012-08-22 13:23:46 +01:00
|
|
|
|
2016-02-10 23:51:54 -08:00
|
|
|
case $ARCH+$SUBARCH in
|
|
|
|
armhf+raspi2)
|
|
|
|
cat > config/hooks/01-firmware-directory.chroot_early <<EOF
|
|
|
|
#!/bin/sh -ex
|
|
|
|
mkdir -p /boot/firmware
|
|
|
|
EOF
|
|
|
|
cat > config/hooks/999-raspi2-fixes.chroot <<EOF
|
|
|
|
#!/bin/sh -ex
|
|
|
|
cat >> /etc/fstab << EOM
|
|
|
|
LABEL=system-boot /boot/firmware vfat defaults 0 1
|
|
|
|
EOM
|
|
|
|
|
|
|
|
cat > /boot/firmware/cmdline.txt << EOM
|
2016-02-17 17:48:55 -07:00
|
|
|
net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
|
2016-02-10 23:51:54 -08:00
|
|
|
EOM
|
|
|
|
|
|
|
|
cat > /boot/firmware/config.txt << EOM
|
|
|
|
# For more options and information see
|
|
|
|
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
|
|
|
|
# Some settings may impact device functionality. See link above for details
|
|
|
|
|
|
|
|
kernel=uboot.bin
|
2017-02-16 10:30:45 -07:00
|
|
|
device_tree_address=0x02000000
|
2016-02-10 23:51:54 -08:00
|
|
|
|
|
|
|
# enable i2c
|
|
|
|
dtparam=i2c_arm=on
|
|
|
|
dtparam=spi=on
|
|
|
|
|
|
|
|
# uncomment if you get no picture on HDMI for a default "safe" mode
|
|
|
|
#hdmi_safe=1
|
|
|
|
|
|
|
|
# uncomment this if your display has a black border of unused pixels visible
|
|
|
|
# and your display can output without overscan
|
|
|
|
#disable_overscan=1
|
|
|
|
|
|
|
|
# uncomment the following to adjust overscan. Use positive numbers if console
|
|
|
|
# goes off screen, and negative if there is too much border
|
|
|
|
#overscan_left=16
|
|
|
|
#overscan_right=16
|
|
|
|
#overscan_top=16
|
|
|
|
#overscan_bottom=16
|
|
|
|
|
|
|
|
# uncomment to force a console size. By default it will be display's size minus
|
|
|
|
# overscan.
|
|
|
|
#framebuffer_width=1280
|
|
|
|
#framebuffer_height=720
|
|
|
|
|
|
|
|
# uncomment if hdmi display is not detected and composite is being output
|
|
|
|
#hdmi_force_hotplug=1
|
|
|
|
|
|
|
|
# uncomment to force a specific HDMI mode (this will force VGA)
|
|
|
|
#hdmi_group=1
|
|
|
|
#hdmi_mode=1
|
|
|
|
|
|
|
|
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
|
|
|
|
# DMT (computer monitor) modes
|
|
|
|
#hdmi_drive=2
|
|
|
|
|
|
|
|
# uncomment to increase signal to HDMI, if you have interference, blanking, or
|
|
|
|
# no display
|
|
|
|
#config_hdmi_boost=4
|
|
|
|
|
|
|
|
# uncomment for composite PAL
|
|
|
|
#sdtv_mode=2
|
|
|
|
|
|
|
|
#uncomment to overclock the arm. 700 MHz is the default.
|
|
|
|
#arm_freq=800
|
|
|
|
|
|
|
|
EOM
|
|
|
|
EOF
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2018-01-31 20:38:11 -07:00
|
|
|
if [ $PROJECT = ubuntu-server ] && [ "${SUBPROJECT:-}" != live ]; then
|
2017-04-11 21:44:25 -04:00
|
|
|
cat > config/hooks/100-remove-fstab.chroot <<EOF
|
2012-08-23 09:53:09 +01:00
|
|
|
#! /bin/sh
|
|
|
|
rm -f /etc/fstab
|
2013-03-27 14:47:18 +00:00
|
|
|
EOF
|
2017-04-11 21:44:25 -04:00
|
|
|
fi
|
2013-03-27 14:47:18 +00:00
|
|
|
|
2017-04-11 21:44:25 -04:00
|
|
|
if [ $PROJECT = ubuntukylin ]; then
|
|
|
|
cat > config/hooks/100-ubuntukylin.chroot <<EOF
|
2013-03-27 14:47:18 +00:00
|
|
|
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
HOOK=/usr/share/ubuntukylin-default-settings/hooks/chroot
|
|
|
|
if [ -x \$HOOK ]; then
|
|
|
|
exec \$HOOK
|
|
|
|
fi
|
|
|
|
exit 0
|
2012-08-23 09:53:09 +01:00
|
|
|
EOF
|
2017-04-11 21:44:25 -04:00
|
|
|
fi
|
2012-08-23 09:53:09 +01:00
|
|
|
|
2011-06-13 23:32:35 +01:00
|
|
|
if $BINARY_REMOVE_LINUX; then
|
|
|
|
cat > config/binary_rootfs/excludes << EOF
|
|
|
|
boot/vmlinu?-*
|
|
|
|
boot/initrd.img-*
|
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
|
2012-06-30 07:12:22 +01:00
|
|
|
if [ "$PROPOSED" ]; then
|
|
|
|
. config/bootstrap
|
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
cat > config/archives/proposed.list.chroot << EOF
|
2012-06-30 07:12:22 +01:00
|
|
|
deb $LB_PARENT_MIRROR_BINARY_VOLATILE $SUITE-proposed $LB_PARENT_ARCHIVE_AREAS
|
|
|
|
EOF
|
2012-08-22 13:23:46 +01:00
|
|
|
cp -a config/archives/proposed.list.chroot \
|
|
|
|
config/archives/proposed.list.binary
|
2012-06-30 07:12:22 +01:00
|
|
|
fi
|
|
|
|
|
2017-09-29 15:20:14 -04:00
|
|
|
case $PROJECT:${SUBPROJECT:-} in
|
2014-08-05 08:34:24 +02:00
|
|
|
*-dvd:*)
|
2011-06-10 18:59:01 +01:00
|
|
|
. config/bootstrap
|
|
|
|
|
2012-08-22 13:23:46 +01:00
|
|
|
cat > config/archives/dvd.list.binary << EOF
|
2011-06-10 18:59:01 +01:00
|
|
|
deb $LB_PARENT_MIRROR_BINARY $SUITE universe multiverse
|
|
|
|
deb $LB_PARENT_MIRROR_BINARY_VOLATILE $SUITE-updates universe multiverse
|
2016-06-13 05:11:58 -06:00
|
|
|
deb $LB_PARENT_MIRROR_BINARY_SECURITY $SUITE-security universe multiverse
|
2011-06-10 18:59:01 +01:00
|
|
|
EOF
|
2012-06-30 07:12:22 +01:00
|
|
|
if [ "$PROPOSED" ]; then
|
2012-08-22 13:23:46 +01:00
|
|
|
cat >> config/archives/dvd.list.binary << EOF
|
2012-06-30 07:12:22 +01:00
|
|
|
deb $LB_PARENT_MIRROR_BINARY_VOLATILE $SUITE-proposed universe multiverse
|
|
|
|
EOF
|
|
|
|
fi
|
2011-06-10 18:59:01 +01:00
|
|
|
;;
|
2013-05-01 12:01:21 -07:00
|
|
|
|
2017-04-07 17:15:54 -04:00
|
|
|
ubuntu-touch:*|ubuntu-touch-custom:*|ubuntu-core:system-image|ubuntu-desktop-next:system-image|ubuntu-cpc:*|ubuntu-server:live)
|
2014-07-29 21:21:41 +01:00
|
|
|
cp -af /usr/share/livecd-rootfs/live-build/${PROJECT}/* \
|
2013-05-01 12:01:21 -07:00
|
|
|
config/
|
2019-04-24 19:58:52 -05:00
|
|
|
|
|
|
|
if [ "$PROJECT" = "ubuntu-cpc" ]; then
|
|
|
|
case ${IMAGE_TARGETS:-} in
|
|
|
|
"")
|
|
|
|
config/hooks.d/make-hooks --hooks-dir config/hooks all
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
config/hooks.d/make-hooks --hooks-dir config/hooks \
|
|
|
|
"$IMAGE_TARGETS"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2017-11-06 20:25:57 +08:00
|
|
|
if [ "$IMAGEFORMAT" = none ]; then
|
|
|
|
rm -f config/hooks/*.binary*
|
|
|
|
fi
|
2013-05-01 12:01:21 -07:00
|
|
|
;;
|
2011-06-10 18:59:01 +01:00
|
|
|
esac
|
2011-07-27 16:22:21 -06:00
|
|
|
|
2018-04-27 16:07:44 +01:00
|
|
|
case $SUBPROJECT in
|
|
|
|
buildd)
|
|
|
|
cp -af /usr/share/livecd-rootfs/live-build/buildd/* config/
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2014-05-19 15:28:05 +01:00
|
|
|
if [ "$EXTRA_PPAS" ]; then
|
|
|
|
rm -f config/archives/extra-ppas.list.chroot \
|
2015-04-29 18:29:40 -06:00
|
|
|
config/archives/extra-ppas.pref.chroot \
|
2014-05-19 15:28:05 +01:00
|
|
|
config/archives/extra-ppas.key.chroot
|
|
|
|
gpg_tmpdir="$(mktemp -d)"
|
|
|
|
run_gpg () {
|
|
|
|
gpg --no-default-keyring --no-options --homedir "$gpg_tmpdir" \
|
|
|
|
--secret-keyring "$gpg_tmpdir/secring.gpg" \
|
|
|
|
--keyserver hkp://keyserver.ubuntu.com:80/ \
|
|
|
|
"$@"
|
|
|
|
}
|
|
|
|
for extra_ppa in $EXTRA_PPAS; do
|
2015-04-29 18:29:40 -06:00
|
|
|
extra_ppa_pin=''
|
|
|
|
extra_ppa_origin=''
|
|
|
|
case $extra_ppa in
|
|
|
|
*:*)
|
|
|
|
extra_ppa_pin=${extra_ppa#*:}
|
|
|
|
extra_ppa=${extra_ppa%:*}
|
|
|
|
;;
|
|
|
|
esac
|
2014-05-19 15:28:05 +01:00
|
|
|
extra_ppa_fingerprint="$(/usr/share/livecd-rootfs/get-ppa-fingerprint "$extra_ppa")"
|
2015-08-11 11:51:00 +02:00
|
|
|
|
|
|
|
cat >> config/archives/extra-ppas.list.chroot <<EOF
|
|
|
|
deb http://ppa.launchpad.net/$extra_ppa/ubuntu @DISTRIBUTION@ main
|
|
|
|
deb-src http://ppa.launchpad.net/$extra_ppa/ubuntu @DISTRIBUTION@ main
|
|
|
|
EOF
|
|
|
|
|
2015-04-29 18:29:40 -06:00
|
|
|
if [ -n "$extra_ppa_pin" ]; then
|
|
|
|
extra_ppa_origin="LP-PPA-$(echo $extra_ppa | sed -e 's,/ppa$,,' -e 's,/,-,')"
|
|
|
|
echo "Package: *" >> config/archives/extra-ppas.pref.chroot
|
|
|
|
echo "Pin: release o=$extra_ppa_origin" >> config/archives/extra-ppas.pref.chroot
|
|
|
|
echo "Pin-Priority: $extra_ppa_pin" >> config/archives/extra-ppas.pref.chroot
|
|
|
|
echo "" >> config/archives/extra-ppas.pref.chroot
|
|
|
|
fi
|
2014-05-19 15:28:05 +01:00
|
|
|
run_gpg --keyring "$gpg_tmpdir/pubring.gpg" \
|
|
|
|
--recv "$extra_ppa_fingerprint"
|
|
|
|
run_gpg --keyring "$gpg_tmpdir/pubring.gpg" \
|
|
|
|
--output "$gpg_tmpdir/export.gpg" \
|
|
|
|
--export "$extra_ppa_fingerprint"
|
|
|
|
got_fingerprint="$(
|
|
|
|
run_gpg --keyring "$gpg_tmpdir/export.gpg" \
|
|
|
|
--fingerprint --batch --with-colons |
|
|
|
|
grep '^fpr:' | cut -d: -f10)"
|
|
|
|
if [ "$got_fingerprint" != "$extra_ppa_fingerprint" ]; then
|
|
|
|
echo "Fingerprints do not match. Got:" >&2
|
|
|
|
echo "$got_fingerprint" | sed 's/^/ /' >&2
|
|
|
|
echo "Expected:" >&2
|
|
|
|
echo " $extra_ppa_fingerprint" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
cat "$gpg_tmpdir/export.gpg" >> config/archives/extra-ppas.key.chroot
|
|
|
|
rm -f "$gpg_tmpdir/export.gpg"
|
|
|
|
done
|
|
|
|
rm -rf "$gpg_tmpdir"
|
|
|
|
cp -a config/archives/extra-ppas.list.chroot \
|
|
|
|
config/archives/extra-ppas.list.binary
|
|
|
|
cp -a config/archives/extra-ppas.key.chroot \
|
|
|
|
config/archives/extra-ppas.key.binary
|
2015-04-30 08:00:17 -06:00
|
|
|
if [ -f config/archives/extra-ppas.pref.chroot ]; then
|
|
|
|
cp -a config/archives/extra-ppas.pref.chroot \
|
|
|
|
config/archives/extra-ppas.pref.binary
|
|
|
|
fi
|
2014-05-19 12:14:05 +01:00
|
|
|
fi
|
|
|
|
|
2017-09-29 15:20:14 -04:00
|
|
|
case ${SUBPROJECT:-} in
|
2014-07-23 01:49:51 +01:00
|
|
|
ubuntu-rtm|ubuntu-rtm/*)
|
|
|
|
# debootstrap doesn't know about ubuntu-rtm series directly. Rather
|
|
|
|
# than having to teach it, we employ a few hacks to make it use the
|
|
|
|
# Ubuntu script instead.
|
|
|
|
mkdir -p config/fake_debootstrap_dir/scripts
|
|
|
|
ln -s /usr/share/debootstrap/devices.tar.gz \
|
|
|
|
config/fake_debootstrap_dir/
|
|
|
|
ln -s /usr/share/debootstrap/functions config/fake_debootstrap_dir/
|
|
|
|
ln -s /usr/share/debootstrap/scripts/gutsy \
|
|
|
|
"config/fake_debootstrap_dir/scripts/$SUITE"
|
|
|
|
echo 'export DEBOOTSTRAP_DIR="$PWD/config/fake_debootstrap_dir"' \
|
|
|
|
>> config/bootstrap
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-07-27 16:22:21 -06:00
|
|
|
if [ "$PREINSTALLED" = "true" ]; then
|
|
|
|
if [ -n "$PREINSTALL_POOL_SEEDS" ]; then
|
|
|
|
UNWANTED_SEEDS="${LIVE_TASK:+$LIVE_TASK }boot installer required"
|
|
|
|
for i in $UNWANTED_SEEDS; do
|
|
|
|
UNWANTED_SEEDS="${UNWANTED_SEEDS:+$UNWANTED_SEEDS }$(inheritance $i)"
|
|
|
|
done
|
|
|
|
|
|
|
|
for i in $PREINSTALL_POOL_SEEDS; do
|
|
|
|
PREINSTALL_POOL_SEEDS="${PREINSTALL_POOL_SEEDS:+$PREINSTALL_POOL_SEEDS }$(inheritance $i)"
|
|
|
|
done
|
|
|
|
|
|
|
|
for i in $PREINSTALL_POOL_SEEDS; do
|
|
|
|
case " $UNWANTED_SEEDS " in
|
|
|
|
*" $i "*)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
PPS_EXP="${PPS_EXP:+$PPS_EXP }$i"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
for i in $PPS_EXP; do
|
|
|
|
PREINSTALL_POOL="$PREINSTALL_POOL $(awk '{print $1}' \
|
2012-04-20 12:12:06 -06:00
|
|
|
config/germinate-output/$i | egrep -v '^-|^Package|^\|' | tr '\n' ' ')"
|
2011-07-27 16:22:21 -06:00
|
|
|
done
|
|
|
|
fi
|
|
|
|
if [ -n "$PREINSTALL_POOL" ]; then
|
2012-04-20 12:12:06 -06:00
|
|
|
mkdir -p config/gnupg
|
|
|
|
mkdir -p config/indices
|
|
|
|
for component in $COMPONENTS; do
|
|
|
|
(cd config/indices && \
|
|
|
|
wget $MIRROR/indices/override.$SUITE.$component && \
|
|
|
|
wget $MIRROR/indices/override.$SUITE.extra.$component \
|
|
|
|
)
|
|
|
|
done
|
2012-08-22 13:23:46 +01:00
|
|
|
cat > config/hooks/100-preinstall-pool.chroot <<EOF
|
|
|
|
#! /bin/sh
|
|
|
|
mkdir -p /var/lib/preinstalled-pool/pool/
|
|
|
|
cd /var/lib/preinstalled-pool/pool/
|
|
|
|
apt-get -y download $PREINSTALL_POOL
|
|
|
|
EOF
|
2011-07-27 16:22:21 -06:00
|
|
|
fi
|
|
|
|
fi
|