#!/bin/sh CWD=`pwd` TMP=${TMP:-/tmp} PKG=$TMP/package-kernel-modules # VERSION=${VERSION:-2.4.31} USING=${USING:-`uname -r`} VERSION=${VERSION:-`uname -r | sed 's/-.*//g'`} ARCH=${ARCH:-sparc} BUILD=${BUILD:-0} if [ ! -d $TMP ]; then mkdir -p $TMP fi rm -rf $PKG mkdir -p $PKG # echo "Using /lib/modules/${USING}/" echo echo "Make sure you've run ./build_sparc_kernels.sh" echo " and placed the results in this tree's /kernels" echo " or this will be a very short ride" echo #echo "However you want 'em." sleep 5 echo echo "Prepping package framework" echo "-----" sleep 1 rm -rf $PKG/etc mkdir -p $PKG/etc/rc.d cat $CWD/rc.modules.new > $PKG/etc/rc.d/rc.modules.new chmod 755 $PKG/etc/rc.d/rc.modules.new mkdir -p $PKG/install # Write out the doinst.sh: cat << EOF > $PKG/install/doinst.sh config() { NEW="\$1" OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" # If there's no config file by that name, mv it over: if [ ! -r \$OLD ]; then mv \$NEW \$OLD elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy rm \$NEW fi # Otherwise, we leave the .new copy for the admin to consider... } config etc/rc.d/rc.modules.new # A good idea whenever kernel modules are added or changed: if [ -x sbin/depmod ]; then chroot . /sbin/depmod -a 1> /dev/null 2> /dev/null fi EOF for CPU in sun4cdm sun4dm_smp sun4u; do echo echo "Populating the module tree for $CPU" echo "-----" sleep 1 rm -rf $PKG/lib mkdir -p $PKG/lib/modules/$VERSION cp -va ../../../kernels/$CPU.s/$VERSION/modules/* $PKG/lib/modules/$VERSION echo echo "Compressing modules for $CPU" echo "-----" sleep 1 ( cd $PKG for FILE in `find . -name *.o`; do echo -n $FILE gzip -9 $FILE echo " => `basename $FILE`.gz" done ) echo echo "Finalizing installation for $CPU" echo "-----" sleep 1 cat $CWD/slack-desc-$CPU > $PKG/install/slack-desc ( cd $PKG/lib/modules/$VERSION ln -s /usr/src/linux-$VERSION/ build ) ( cd $PKG makepkg -l y -c n $TMP/kernel-modules-$CPU-$VERSION-$ARCH-$BUILD.tgz ) done