2011-06-13 12:35:47 +01:00
|
|
|
#! /bin/sh
|
|
|
|
set -e
|
|
|
|
|
2011-06-15 10:15:20 +01:00
|
|
|
rm -rf config
|
|
|
|
|
2011-07-26 15:26:01 -06:00
|
|
|
SEEDMIRROR=http://people.canonical.com/~ubuntu-archive/seeds/
|
2011-06-13 12:35:47 +01:00
|
|
|
if [ -z "$MIRROR" ]; then
|
|
|
|
case $(hostname --fqdn) in
|
|
|
|
bld-*.mmjgroup.com) ;;
|
|
|
|
*.mmjgroup.com)
|
|
|
|
case $ARCH in
|
|
|
|
i386|amd64) MIRROR=http://archive.mmjgroup.com/ubuntu/ ;;
|
|
|
|
*) MIRROR=http://archive.mmjgroup.com/ubuntu-ports/ ;;
|
|
|
|
esac
|
|
|
|
;;
|
2011-07-06 16:57:39 +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-26 15:26:01 -06:00
|
|
|
*.ubuntu.com) MIRROR=http://ftpmaster.internal/ubuntu/
|
|
|
|
SEEDMIRROR=http://archive-team.internal/seeds/
|
|
|
|
;;
|
|
|
|
*.warthogs.hbd.com) MIRROR=http://ftpmaster.internal/ubuntu/
|
|
|
|
SEEDMIRROR=http://archive-team.internal/seeds/
|
|
|
|
;;
|
|
|
|
*.buildd) MIRROR=http://ftpmaster.internal/ubuntu/
|
|
|
|
SEEDMIRROR=http://archive-team.internal/seeds/
|
|
|
|
;;
|
2011-06-13 12:35:47 +01:00
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2011-07-13 19:06:29 +01:00
|
|
|
mkdir -p config/task-lists config/package-lists
|
2011-06-13 12:35:47 +01:00
|
|
|
|
|
|
|
add_task ()
|
|
|
|
{
|
|
|
|
local pass="$1"
|
|
|
|
shift
|
|
|
|
local task
|
|
|
|
|
|
|
|
for task; do
|
2011-07-13 19:06:29 +01:00
|
|
|
echo "$task" >> "config/task-lists/livecd-rootfs.chroot_$pass.list"
|
2011-06-13 12:35:47 +01:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
add_package ()
|
|
|
|
{
|
|
|
|
local pass="$1"
|
|
|
|
shift
|
|
|
|
local pkg
|
|
|
|
|
|
|
|
for pkg; do
|
2011-07-13 19:06:29 +01:00
|
|
|
echo "$pkg" >> "config/package-lists/livecd-rootfs.chroot_$pass.list"
|
2011-06-13 12:35:47 +01:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
OPTS=
|
|
|
|
COMPONENTS=
|
2011-06-13 23:32:40 +01:00
|
|
|
BINARY_REMOVE_LINUX=:
|
2011-07-14 18:27:04 +01:00
|
|
|
BINARY_IMAGES=none
|
|
|
|
MEMTEST=none
|
2011-07-06 16:57:39 +01:00
|
|
|
SOURCE='--source false'
|
2011-07-14 18:27:04 +01:00
|
|
|
BOOTLOADER=none
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK=
|
2011-07-26 15:26:01 -06:00
|
|
|
PREINSTALLED=false
|
|
|
|
PREINSTALL_POOL=
|
|
|
|
PREINSTALL_POOL_SEEDS=
|
2011-06-13 12:35:47 +01:00
|
|
|
|
|
|
|
case $IMAGEFORMAT in
|
2011-06-28 14:20:35 +01:00
|
|
|
ext2|ext3|ext4)
|
2011-06-15 14:40:05 +01:00
|
|
|
OPTS="${OPTS:+$OPTS }--initramfs none --chroot-filesystem $IMAGEFORMAT"
|
2011-07-26 15:26:01 -06:00
|
|
|
PREINSTALLED=true
|
2011-07-04 10:54:07 +01:00
|
|
|
case $SUBPROJECT in
|
|
|
|
wubi)
|
|
|
|
add_package install lupin-support
|
2011-09-22 10:31:11 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
2011-07-04 10:54:07 +01:00
|
|
|
;;
|
|
|
|
*)
|
2011-09-28 15:20:38 -06:00
|
|
|
add_package live jasper
|
2011-10-05 13:20:24 -06:00
|
|
|
OPTS="${OPTS:+$OPTS }--swap-file-path SWAP.swap"
|
|
|
|
OPTS="${OPTS:+$OPTS }--swap-file-size 512"
|
2011-07-04 10:54:07 +01:00
|
|
|
;;
|
|
|
|
esac
|
2011-06-13 12:35:47 +01:00
|
|
|
;;
|
|
|
|
|
2011-07-15 11:19:49 -06:00
|
|
|
plain)
|
|
|
|
OPTS="${OPTS:+$OPTS }--initramfs none --chroot-filesystem $IMAGEFORMAT"
|
2011-07-26 15:26:01 -06:00
|
|
|
PREINSTALLED=true
|
2011-07-15 11:19:49 -06:00
|
|
|
;;
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
*)
|
|
|
|
add_package live lupin-casper
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-09-28 15:20:38 -06:00
|
|
|
if [ "$PREINSTALLED" = "true" ] && [ "$SUBPROJECT" != "wubi" ]; then
|
|
|
|
case $PROJECT in
|
|
|
|
kubuntu*)
|
2011-10-06 19:30:51 -06:00
|
|
|
add_package live oem-config-kde ubiquity-frontend-kde
|
2011-09-28 15:20:38 -06:00
|
|
|
;;
|
|
|
|
ubuntu-server)
|
2011-10-06 19:30:51 -06:00
|
|
|
add_package live oem-config-debconf ubiquity-frontend-debconf
|
2011-09-28 15:20:38 -06:00
|
|
|
;;
|
|
|
|
ubuntu-core|base)
|
|
|
|
;;
|
|
|
|
*)
|
2011-10-06 19:30:51 -06:00
|
|
|
add_package live oem-config-gtk ubiquity-frontend-gtk
|
2011-09-28 15:20:38 -06:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2011-07-14 18:27:04 +01:00
|
|
|
case $BINARYFORMAT in
|
|
|
|
iso*|usb*)
|
|
|
|
BINARY_IMAGES="$BINARYFORMAT"
|
|
|
|
MEMTEST=memtest86+
|
|
|
|
BOOTLOADER=syslinux
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
case $PROJECT in
|
|
|
|
ubuntu|ubuntu-dvd)
|
|
|
|
add_task install minimal standard ubuntu-desktop
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='ubuntu-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
kubuntu|kubuntu-dvd)
|
|
|
|
add_task install minimal standard kubuntu-desktop
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='kubuntu-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
kubuntu-mobile)
|
|
|
|
add_task install minimal standard kubuntu-mobile
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='kubuntu-mobile-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
;;
|
|
|
|
|
|
|
|
edubuntu|edubuntu-dvd)
|
|
|
|
add_task install minimal standard edubuntu-desktop-gnome
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='edubuntu-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
COMPONENTS='main restricted universe'
|
|
|
|
;;
|
|
|
|
|
|
|
|
xubuntu)
|
|
|
|
add_task install minimal standard xubuntu-desktop
|
|
|
|
add_package install xterm
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='xubuntu-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
;;
|
|
|
|
|
|
|
|
ubuntu-netbook)
|
|
|
|
add_task install minimal standard ubuntu-netbook
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='netbook-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
;;
|
|
|
|
|
|
|
|
mythbuntu)
|
|
|
|
add_task install minimal standard mythbuntu-desktop
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='mythbuntu-live'
|
2011-06-13 12:35:47 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
;;
|
|
|
|
|
2011-06-15 14:40:05 +01:00
|
|
|
lubuntu)
|
|
|
|
add_task install minimal standard lubuntu-desktop
|
2011-07-04 10:54:07 +01:00
|
|
|
LIVE_TASK='lubuntu-live'
|
2011-06-15 14:40:05 +01:00
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
;;
|
|
|
|
|
2012-01-20 20:51:04 +00:00
|
|
|
ubuntustudio)
|
|
|
|
add_task ubuntustudio-desktop ubuntustudio-generation ubuntustudio-recording ubuntustudio-font-meta ubuntustudio-graphics ubuntustudio-audio-plugins ubuntustudio-video
|
|
|
|
COMPONENTS='main restricted universe multiverse'
|
|
|
|
;;
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
base)
|
|
|
|
add_task install minimal standard
|
|
|
|
;;
|
|
|
|
|
2011-06-28 14:20:35 +01:00
|
|
|
ubuntu-server)
|
2011-06-13 12:35:47 +01:00
|
|
|
add_task install minimal standard
|
2011-07-26 15:26:01 -06:00
|
|
|
PREINSTALL_POOL_SEEDS='server-ship'
|
2011-06-13 12:35:47 +01:00
|
|
|
;;
|
|
|
|
|
2011-07-15 11:19:49 -06:00
|
|
|
ubuntu-core)
|
|
|
|
OPTS="${OPTS:+$OPTS }--bootstrap-flavour=minimal"
|
|
|
|
OPTS="${OPTS:+$OPTS }--linux-packages=none"
|
|
|
|
KERNEL_FLAVOURS=none
|
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
*)
|
|
|
|
echo "unknown project $PROJECT" >&2
|
|
|
|
exit 2
|
|
|
|
;;
|
|
|
|
esac
|
2011-07-04 10:54:07 +01:00
|
|
|
|
2012-01-10 12:41:36 +00:00
|
|
|
if [ "$PREINSTALLED" != "true" ]; then
|
2012-01-09 03:23:26 -07:00
|
|
|
add_task live "$LIVE_TASK"
|
|
|
|
fi
|
2011-07-04 10:54:07 +01:00
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
case $PROJECT in
|
2011-08-19 10:56:49 +01:00
|
|
|
ubuntu-dvd)
|
|
|
|
add_task install ubuntu-usb
|
|
|
|
add_task live ubuntu-usb-live
|
|
|
|
;;
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
*-dvd)
|
|
|
|
add_task live "$PROJECT-live"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
case $ARCH in
|
2011-12-02 11:41:13 -07:00
|
|
|
armel|armhf)
|
2011-07-15 14:55:13 -06:00
|
|
|
KERNEL_FLAVOURS="${SUBARCH:-$KERNEL_FLAVOURS}"
|
2011-06-13 12:35:47 +01:00
|
|
|
case $SUBARCH in
|
|
|
|
dove)
|
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
|
|
|
omap)
|
|
|
|
add_package install x-loader-omap3-beagle u-boot-linaro-omap3-beagle
|
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
|
|
|
omap4)
|
2012-01-10 12:46:20 +01:00
|
|
|
add_package install x-loader-omap4-panda u-boot-linaro-omap4-panda ti-omap4-ppa
|
2011-06-13 12:35:47 +01:00
|
|
|
BINARY_REMOVE_LINUX=false
|
|
|
|
;;
|
2011-08-16 14:50:33 +02:00
|
|
|
mx5)
|
|
|
|
COMPONENTS='main restricted universe'
|
2011-08-24 18:18:42 +03:00
|
|
|
KERNEL_FLAVOURS=linaro-lt-mx5
|
|
|
|
add_package install flash-kernel u-boot-linaro-mx53loco
|
2011-08-16 14:50:33 +02:00
|
|
|
BINARY_REMOVE_LINUX=false
|
2011-08-16 15:40:51 +02:00
|
|
|
;;
|
2011-08-09 16:25:11 +02:00
|
|
|
ac100)
|
2011-08-10 13:14:25 +02:00
|
|
|
COMPONENTS='main restricted universe'
|
2011-08-16 14:50:33 +02:00
|
|
|
add_package install ac100-tarball-installer
|
2011-08-09 16:25:11 +02:00
|
|
|
BINARY_REMOVE_LINUX=false
|
2011-08-16 14:50:33 +02:00
|
|
|
PREINSTALL_POOL_SEEDS=""
|
2011-08-09 16:25:11 +02:00
|
|
|
;;
|
2011-06-13 12:35:47 +01:00
|
|
|
esac
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
lb config noauto \
|
|
|
|
--mode ubuntu \
|
|
|
|
--distribution "$SUITE" \
|
|
|
|
--bootstrap-keyring ubuntu-keyring \
|
2011-07-14 18:27:04 +01:00
|
|
|
--binary-images "$BINARY_IMAGES" \
|
|
|
|
--memtest "$MEMTEST" \
|
2011-07-06 16:57:39 +01:00
|
|
|
$SOURCE \
|
2011-06-13 12:35:47 +01:00
|
|
|
--build-with-chroot false \
|
|
|
|
${MIRROR:+--parent-mirror-bootstrap $MIRROR} \
|
|
|
|
${COMPONENTS:+--parent-archive-areas "$COMPONENTS"} \
|
|
|
|
--package-lists none \
|
2011-06-14 08:30:10 +01:00
|
|
|
${KERNEL_FLAVOURS:+--linux-flavours "$KERNEL_FLAVOURS"} \
|
2011-06-13 12:35:47 +01:00
|
|
|
--initsystem none \
|
2011-07-14 18:27:04 +01:00
|
|
|
--bootloader "$BOOTLOADER" \
|
2011-06-13 12:35:47 +01:00
|
|
|
--initramfs-compression lzma \
|
|
|
|
$OPTS
|
|
|
|
|
2011-06-13 23:32:40 +01:00
|
|
|
if $BINARY_REMOVE_LINUX; then
|
|
|
|
cat > config/binary_rootfs/excludes << EOF
|
|
|
|
boot/vmlinu?-*
|
|
|
|
boot/initrd.img-*
|
|
|
|
EOF
|
|
|
|
fi
|
|
|
|
|
2011-06-22 15:38:30 +01:00
|
|
|
ln -s /usr/share/live/build/examples/hooks/all_chroot_pyc-purge.sh config/chroot_local-hooks/
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
case $PROJECT in
|
|
|
|
kubuntu|kubuntu-mobile)
|
|
|
|
ln -s /usr/share/live/build/examples/hooks/kubuntu_chroot_icon-theme.sh config/chroot_local-hooks/
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-07-04 10:54:07 +01:00
|
|
|
case $SUBPROJECT in
|
|
|
|
wubi)
|
|
|
|
ln -s /usr/share/live/build/examples/hooks/ubuntu_binary_build-wubildr.sh config/binary_local-hooks/
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2011-06-13 12:35:47 +01:00
|
|
|
case $PROJECT in
|
|
|
|
*-dvd)
|
|
|
|
. config/bootstrap
|
|
|
|
|
2011-07-13 19:06:29 +01:00
|
|
|
cat > config/archives/dvd.binary.list << EOF
|
2011-06-13 12:35:47 +01:00
|
|
|
deb $LB_PARENT_MIRROR_BINARY $SUITE universe multiverse
|
|
|
|
deb $LB_PARENT_MIRROR_BINARY_SECURITY $SUITE-security universe multiverse
|
|
|
|
deb $LB_PARENT_MIRROR_BINARY_VOLATILE $SUITE-updates universe multiverse
|
|
|
|
EOF
|
|
|
|
;;
|
|
|
|
esac
|
2011-07-26 15:26:01 -06: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:" germinate-output/structure | cut -d: -f2); do
|
|
|
|
expand_inheritance "$seed"
|
|
|
|
done
|
|
|
|
add_inheritance "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
inheritance () {
|
|
|
|
inherit=
|
|
|
|
expand_inheritance "$1"
|
|
|
|
echo "$inherit"
|
|
|
|
}
|
|
|
|
|
|
|
|
if [ "$PREINSTALLED" = "true" ]; then
|
|
|
|
if [ -n "$PREINSTALL_POOL_SEEDS" ]; then
|
|
|
|
rm -rf germinate-output && mkdir germinate-output
|
|
|
|
case $PROJECT in
|
|
|
|
kubuntu-mobile*)
|
|
|
|
SEED=kubuntu-mobile.$SUITE
|
|
|
|
;;
|
|
|
|
kubuntu*)
|
|
|
|
SEED=kubuntu.$SUITE
|
|
|
|
;;
|
|
|
|
xubuntu*)
|
|
|
|
SEED=xubuntu.$SUITE
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
SEED=ubuntu.$SUITE
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
(cd germinate-output && germinate --no-rdepends --no-installer \
|
|
|
|
-S $SEEDMIRROR -m $MIRROR -d $SUITE -s $SEED \
|
|
|
|
${COMPONENTS:+-c "$COMPONENTS"} -a $ARCH)
|
|
|
|
|
|
|
|
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}' \
|
|
|
|
germinate-output/$i | egrep -v '^-|^Package|^\|' | tr '\n' ' ')"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
if [ -n "$PREINSTALL_POOL" ]; then
|
|
|
|
rm -rf gnupg && mkdir gnupg
|
|
|
|
PREINSTALL_POOL_HOOK=config/chroot_local-hooks/preinstall-pool.sh
|
|
|
|
echo "#! /bin/sh" > $PREINSTALL_POOL_HOOK
|
|
|
|
echo "mkdir -p /var/lib/preinstalled-pool/" >> $PREINSTALL_POOL_HOOK
|
|
|
|
echo "cd /var/lib/preinstalled-pool/" >> $PREINSTALL_POOL_HOOK
|
|
|
|
echo "apt-get -y download $PREINSTALL_POOL" >> $PREINSTALL_POOL_HOOK
|
|
|
|
fi
|
|
|
|
fi
|