#!/bin/sh
SCSIMODULES=""
NETMODULES=""
CDMODULES=""
BLOCKMODULES=""
PCMCIAMODULES=""
LIBS="ld.so libc.so libuuid.so libcom_err.so libe2p.so libext2fs.so libc- libcrypt libnss_files libnss_dns libnsl"
USRLIBS="libnewt"
BINS="gzip ls mke2fs ash fdisk badblocks cp rm cat minlabel"
SBIN='$1/misc/src/install/install $1/misc/src/init/init $1/misc/src/install/install2'
PATH=/sbin:/usr/sbin:$PATH
usage () {
echo "updboot: <imagetree> <kernel-version>" 2>&1
exit 1
}
if [ -z "$1" -o -z "$2" ]; then
usage
fi
if [ ! -d "$1/misc/src/install" ]; then
echo "$1 is not a valid directory" 2>&1
usage
fi
rm -rf boot/modules
mkdir boot/modules
for n in $SCSIMODULES; do
cp /lib/modules/$2/scsi/$n ./boot/modules
done
for n in $NETMODULES; do
cp /lib/modules/$2/net/$n ./boot/modules
done
for n in $CDMODULES; do
cp /lib/modules/$2/cdrom/$n ./boot/modules
done
for n in $BLOCKMODULES; do
cp /lib/modules/$2/block/$n ./boot/modules
done
for n in $PCMCIAMODULES; do
ln -s /lib/modules/$2/pcmcia/$n ./boot/modules
done
# Unfortunately, this breaks modules
#strip --strip-unneeded boot/modules/*.o
for n in $SBIN; do
file=`eval echo $n`
strip $file
cp -f $file boot/sbin
done
rm -rf boot/lib
mkdir boot/lib
for n in $LIBS; do
cp -a /lib/${n}* boot/lib
done
for n in $USRLIBS; do
cp -a /usr/lib/${n}* boot/lib
done
strip boot/lib/*
for n in $BINS; do
rm -f boot/usr/bin/$n
cp -af `which $n` boot/usr/bin
done
for n in $ZBINS; do
rm -f boot/usr/bin/$n
gzip -9 < `which $n` > boot/usr/bin/$n
chmod 755 boot/usr/bin/$n
done
ln -sf /sbin/init boot/linuxrc
cp keymaps/keymaps.gz boot/etc/keymaps.gz