#!/bin/sh

set -e

# Generate a list of packages required for debian-installer
# This script makes use of the following variables that need to be preset:
# MIRROR, CODENAME
if [ "$MIRROR"x = ""x ] ; then
    echo "\$MIRROR unset; abort!"
    exit 1
fi
if [ "$CODENAME"x = ""x ] ; then
    echo "\$CODENAME unset; abort!"
    exit 1
fi
if [ "$DI_CODENAME"x = ""x ] ; then
    echo "\$DI_CODENAME unset; abort!"
    exit 1
fi

DATE=`date`
cat > debian-installer+kernel << EOF
/* These packages + the ones needed by debootstrap are the ones needed for
 * debian-installer to be able to install a base Debian system.
 *
 * These packages are installed by various parts of the debian-installer,
 * mostly via its apt-install command.
 *
 * This list can be generated with the command:
 * ../tools/generate_di+k_list
 *
 * DO NOT EDIT THIS FILE, edit the above script
 *
 * Last update: $DATE
 */

#include <debian-installer>
eject
locales
libdevmapper1.02
lvm-common
lvm2
mdadm
aptitude
hotplug
pciutils
usbutils
/* Used for Squeeze and onwards */
kbd
console-setup
pcmciautils
wireless-tools
xfsprogs
jfsutils
dosfsutils
reiserfsprogs
libfribidi0
localization-config
acpi
acpid
acpi-support-base
ppp
pppoeconf
pptp-linux
udev
installation-report
openssh-server
cryptsetup
loop-aes-utils
dmraid

/* Needed for rootless installs. */
sudo

/* laptop-detect is used by tasksel when checking if the system is a
 * laptop so we have to make sure to get it included on first CD for
 * arches that are know to have laptops
 */

/* On x86 users have a choice between grub-legacy and grub-pc */

/* #231583: Make life easier for Australian ISP users */
bpalogin

/* multipath-tools-boot is used for multipath support and installed
 * during installation process if multipath is used
 */
multipath-tools-boot

/* #593914: netinsts are being used on wireless too these days. */
wpasupplicant

/* add the list of firmware packages here too if required */
#ifdef FORCE_FIRMWARE
#    include <firmware>
#endif

#ifdef ARCH_i386
initramfs-tools
busybox
grub-legacy
grub-pc
laptop-detect
lilo
elilo
libc6-i686
/* Note that we do not have to include every optimised kernel flavor for
 * i386, but this does control what kernels are available on the netinst CD.
 * Kernel headers are included as third party modules are commonly
 * used on this architecture.
 */
linux-image-2.6-686
linux-headers-2.6-686
loop-aes-modules-2.6-686
atl2-modules-2.6-686
speakup-modules-2.6-686
#ifndef ARCH_i386_EXCLUDE_486_KERNEL
linux-image-2.6-486
linux-headers-2.6-486
loop-aes-modules-2.6-486
atl2-modules-2.6-486
speakup-modules-2.6-486
#endif
#ifdef VARIANT_xen
linux-image-2.6-686-bigmem
linux-headers-2.6-686-bigmem
loop-aes-modules-2.6-686-bigmem
atl2-modules-2.6-686-bigmem
speakup-modules-2.6-686-bigmem
#endif

#endif

#ifdef ARCH_amd64
initramfs-tools
busybox
grub-legacy
grub-pc
laptop-detect
lilo
linux-image-2.6-amd64
linux-headers-2.6-amd64
loop-aes-modules-2.6-amd64
atl2-modules-2.6-amd64
speakup-modules-2.6-amd64
#endif

#ifdef ARCH_alpha
initramfs-tools
busybox
aboot
aboot-base
linux-image-2.6-alpha-generic
linux-image-2.6-alpha-smp
loop-aes-modules-2.6-alpha-generic
loop-aes-modules-2.6-alpha-smp
#endif

#ifdef ARCH_hppa
initramfs-tools
busybox
linux-image-2.6-parisc
linux-image-2.6-parisc-smp
linux-image-2.6-parisc64
linux-image-2.6-parisc64-smp
loop-aes-modules-2.6-parisc
loop-aes-modules-2.6-parisc-smp
loop-aes-modules-2.6-parisc64
loop-aes-modules-2.6-parisc64-smp
palo
#endif

#ifdef ARCH_ia64
initramfs-tools
busybox
linux-image-2.6-itanium
linux-image-2.6-itanium-smp
linux-image-2.6-mckinley
linux-image-2.6-mckinley-smp
loop-aes-modules-2.6-itanium
loop-aes-modules-2.6-itanium-smp
loop-aes-modules-2.6-mckinley
loop-aes-modules-2.6-mckinley-smp
elilo
#endif

#ifdef ARCH_mips
/* doesn't use a initrd to boot */
arcboot
sibyl
linux-image-2.6-r4k-ip22
linux-image-2.6-r5k-ip32
linux-image-2.6-sb1-bcm91250a
linux-image-2.6-sb1a-bcm91480b
loop-aes-modules-2.6-r4k-ip22
loop-aes-modules-2.6-r5k-ip32
loop-aes-modules-2.6-sb1-bcm91250a
loop-aes-modules-2.6-sb1a-bcm91480b
#endif

#ifdef ARCH_mipsel
/* doesn't use a initrd to boot */
sibyl
colo
delo
linux-image-2.6-r3k-kn02
linux-image-2.6-r4k-kn04
linux-image-2.6-r5k-cobalt
linux-image-2.6-sb1-bcm91250a
linux-image-2.6-sb1a-bcm91480b
loop-aes-modules-2.6-r3k-kn02
loop-aes-modules-2.6-r4k-kn04
loop-aes-modules-2.6-r5k-cobalt
loop-aes-modules-2.6-sb1-bcm91250a
loop-aes-modules-2.6-sb1a-bcm91480b
#endif

#ifdef ARCH_arm
initramfs-tools
busybox
nwutil
slugimage
glantank
flash-kernel
nslu2-utils
apex-nslu2
linux-image-2.6-footbridge
linux-image-2.6-iop32x
linux-image-2.6-ixp4xx
linux-image-2.6-nslu2
linux-image-2.6-rpc
linux-image-2.6-s3c2410
loop-aes-modules-2.6-footbridge
loop-aes-modules-2.6-iop32x
loop-aes-modules-2.6-ixp4xx
loop-aes-modules-2.6-nslu2
loop-aes-modules-2.6-rpc
loop-aes-modules-2.6-s3c2410
#endif

#ifdef ARCH_armel
initramfs-tools
busybox
slugimage
flash-kernel
nslu2-utils
apex-nslu2
linux-image-2.6-iop32x
linux-image-2.6-ixp4xx
linux-image-2.6-versatile
loop-aes-modules-2.6-iop32x
loop-aes-modules-2.6-ixp4xx
loop-aes-modules-2.6-versatile
#endif

#ifdef ARCH_sparc
initramfs-tools
busybox
silo
libc6-sparcv9b
libc6-sparcv9
linux-image-2.6-sparc32
linux-image-2.6-sparc32-smp
linux-image-2.6-sparc64
linux-image-2.6-sparc64-smp
loop-aes-modules-2.6-sparc32
loop-aes-modules-2.6-sparc32-smp
loop-aes-modules-2.6-sparc64
loop-aes-modules-2.6-sparc64-smp
#endif

#ifdef ARCH_powerpc
initramfs-tools
busybox
laptop-detect
quik
yaboot
powerpc-utils
hfsutils
mkvmlinuz
linux-image-2.6-powerpc
linux-image-2.6-powerpc-smp
linux-image-2.6-powerpc64
linux-image-2.6-prep
loop-aes-modules-2.6-powerpc
loop-aes-modules-2.6-powerpc-smp
loop-aes-modules-2.6-powerpc64
loop-aes-modules-2.6-prep
#endif

#ifdef ARCH_kfreebsd_amd64
kfreebsd-image-8-amd64
grub-pc
#endif

#ifdef ARCH_kfreebsd_i386
kfreebsd-image-8-486
kfreebsd-image-8-686
kfreebsd-image-8-686-smp
grub-pc
libc0.1-i686
#endif

EOF
