#!/bin/sh

# Generate a list of packages required for debian-installer
# This script makes use of the following variables that need to be preset:
# MIRROR, CODENAME, DI_CODENAME

DATE=`date`
cat > debian-installer+kernel-$DI_CODENAME << EOF
/* These files + the ones needed by debootstrap are the ones needed for
 * debian-installer to be able to complete the installation of the base
 * system.
 *
 * 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-$DI_CODENAME>
eject
locales
lvm10
libdevmapper1.01
lvm-common
lvm2
mdadm
aptitude
jfbterm
unifont
hotplug
usbutils
iso-codes
console-cyrillic
console-terminus
pcmcia-cs
wireless-tools
xfsprogs
jfsutils
reiserfsprogs
libfribidi0
localization-config
#ifdef ARCH_i386
discover
discover1
grub
lilo
EOF

/bin/sed -n 's/Package: \(kernel-image-2.4.*-386\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-i386/Packages|/usr/bin/tail -n 1 \
  >> debian-installer+kernel-$DI_CODENAME
/bin/sed -n 's/Package: \(kernel-pcmcia-modules-2.4.*-386\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-i386/Packages|/usr/bin/tail -n 1 \
  >> debian-installer+kernel-$DI_CODENAME
/bin/sed -n 's/Package: \(kernel-image-2.6.*-386\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-i386/Packages|/usr/bin/tail -n 1 \
  >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_amd64
discover
discover1
grub
lilo
EOF

if [ ! -e $MIRROR/dists/$CODENAME/main/binary-amd64/Packages ]; then
	echo "Cannot find amd64 packages file, inserting static entry as workaround" >&2
	echo kernel-image-2.6.8-11-amd64-generic >> debian-installer+kernel-$DI_CODENAME
else
	/bin/sed -n 's/Package: \(kernel-image-2.6.*-generic\)$/\1/p' \
	  $MIRROR/dists/$CODENAME/main/binary-amd64/Packages|/usr/bin/tail -n 1 \
	  >> debian-installer+kernel-$DI_CODENAME
	/bin/sed -n 's/Package: \(kernel-pcmcia-modules-2.6.*-generic\)$/\1/p' \
	  $MIRROR/dists/$CODENAME/main/binary-amd64/Packages|/usr/bin/tail -n 1 \
	  >> debian-installer+kernel-$DI_CODENAME
fi
	 
cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_alpha
aboot
aboot-base
discover1
EOF

/bin/sed -n 's/Package: \(kernel-image-.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-alpha/Packages|grep -v 2.4.21 \
  >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_hppa
discover1
EOF

/bin/sed -n 's/Package: \(kernel-image-2.6.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-hppa/Packages|tail -n4 \
  >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_ia64
discover1
initrd-tools
EOF

/bin/sed -n 's/Package: \(kernel-image-2\.4\..*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-ia64/Packages | tail -n 4 \
  >> debian-installer+kernel-$DI_CODENAME
/bin/sed -n 's/Package: \(kernel-image-2\.4-.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-ia64/Packages \
  >> debian-installer+kernel-$DI_CODENAME
/bin/sed -n 's/Package: \(kernel-image-2\.6\..*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-ia64/Packages | tail -n 4 \
  >> debian-installer+kernel-$DI_CODENAME
/bin/sed -n 's/Package: \(kernel-image-2\.6-.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-ia64/Packages \
  >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_mips
arcboot
EOF

# Only include mips kernels that d-i base-installer installs.
for subarch in r4k-ip22 r5k-ip22; do
	sed -n 's/Package: \(kernel-image-.*-.*\)$/\1/p' \
		$MIRROR/dists/$CODENAME/main/binary-mips/Packages \
		| grep -- "-$subarch$" | sort -n | tail -n 1 \
                >> debian-installer+kernel-$DI_CODENAME
done

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_mipsel
delo
EOF

# Only include mipsel kernels that d-i base-installer installs.
for subarch in r3k-kn02 r4k-kn04; do
	sed -n 's/Package: \(kernel-image-.*-.*\)$/\1/p' \
		$MIRROR/dists/$CODENAME/main/binary-mipsel/Packages \
		| grep -- "-$subarch$" | sort -n | tail -n 1 \
                >> debian-installer+kernel-$DI_CODENAME
done

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_powerpc
discover1
quik
yaboot
mkvmlinuz
module-init-tools
initrd-tools
EOF

# Only include powerpc kernels that d-i base-installer installs.
for subarch in powerpc power3 power4 power3-pmac power3-chrp-rs6k \
		power4-pmac power4-chrp-rs6k powerpc-pmac \
		powerpc-prep powerpc-chrp powerpc-chrp-rs6k apus; do
	sed -n 's/Package: \(kernel-image-.*-.*\)$/\1/p' \
		$MIRROR/dists/$CODENAME/main/binary-powerpc/Packages \
		| grep -- "-$subarch$" | sort -n | tail -n 1 \
                >> debian-installer+kernel-$DI_CODENAME
done

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_sparc
discover1
initrd-tools
EOF

/bin/sed -n 's/Package: \(kernel-image-.*-sparc.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-sparc/Packages \
  >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_m68k
fileutils
EOF

# Get all the latest 2.2 for mac kernel
/bin/sed -n 's/Package: \(kernel-image-2.2.*-mac\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-m68k/Packages | tail -n 1 \
  >> debian-installer+kernel-$DI_CODENAME
# Get the latest 2.4 kernels, except mac
/bin/sed -n 's/Package: \(kernel-image-2.4.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-m68k/Packages | tail -n 7 | \
  grep -v mac >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
#ifdef ARCH_arm
discover1
EOF

/bin/sed -n 's/Package: \(kernel-image-2.4.*\)$/\1/p' \
  $MIRROR/dists/$CODENAME/main/binary-arm/Packages|tail -n5 \
  >> debian-installer+kernel-$DI_CODENAME

cat >> debian-installer+kernel-$DI_CODENAME << EOF
#endif
EOF
