#!/bin/bash # Copyright 2001-2002 William Stearns # Released under the GPL. #set -x if [ -z "$CML2VERSION" ]; then echo CML2VERSION unset, skipping CML2. exit fi exec 2>&1 PROJECT="cml2" BKLIBDIR="${BKLIBDIR:-/var/lib/buildkernel}/" THISSCRIPT="$BKLIBDIR/bkrun-$PROJECT" #We can't use $0 as this script is sourced; $0=/usr/bin/buildkernel if [ -f $BKLIBDIR/$PROJECT-options ]; then echo $PROJECT loading options . $BKLIBDIR/$PROJECT-options fi if [ -n "$TEMPCML2VERSION" ]; then CML2VERSION=$TEMPCML2VERSION fi echo $PROJECT \(Version $CML2VERSION\) $1 called from Buildkernel CML2SOURCEDIR=${CML2SOURCEDIR:-"/usr/src/cml2-$CML2VERSION"} CML2TAR=${CML2TAR:-"$BKSOURCEDIR/cml2-$CML2VERSION.tar.gz"} CML2TESTFILE=${CML2TESTFILE:-"$CML2SOURCEDIR/cmlconfigure.py"} case $1 in POSTLOADVARS) if [ -n "`cat $BKLIBDIR/${PROJECT}-options 2>/dev/null | grep '^TEMPCML2VERSION='`" ]; then echo Stripping out old $PROJECT version. cat $BKLIBDIR/${PROJECT}-options | grep -v '^TEMPCML2VERSION=' >$BKLIBDIR/${PROJECT}-options.temp cat $BKLIBDIR/${PROJECT}-options.temp >$BKLIBDIR/${PROJECT}-options rm -f $BKLIBDIR/${PROJECT}-options.temp fi ;; POSTGETSOURCE) cd $BKSOURCEDIR #Figure out what the newest beta or stable version is. if [ "$CML2VERSION" = "NEWESTSTABLE" ]; then echo -n 'Getting the CML2 NEWESTSTABLE snapshot ' rm -f $BKSOURCEDIR/index.html $BKSOURCEDIR/cml2-index.html bkgetfile http www.tuxedo.org '' '' ~esr/kbuild index.html mv -f index.html cml2-index.html #Parse the html to find a version number. TEMPCML2VERSION=`cat cml2-index.html | grep 'can download a copy' | sed -e 's/.*cml2\-//' -e 's/\.tar\.gz.*//'` echo which is version $TEMPCML2VERSION . rm -f $BKSOURCEDIR/cml2-$TEMPCML2VERSION.tar.gz bkgetfile http www.tuxedo.org '' '' ~esr/kbuild cml2-$TEMPCML2VERSION.tar.gz echo >>$BKLIBDIR/${PROJECT}-options echo TEMPCML2VERSION=$TEMPCML2VERSION >>$BKLIBDIR/${PROJECT}-options elif [ ! -f $BKSOURCEDIR/cml2-$CML2VERSION.tar.gz ]; then echo Getting CML2 version $CML2VERSION . rm -f $BKSOURCEDIR/cml2-$CML2VERSION.tar.gz bkgetfile http www.tuxedo.org '' '' ~esr/kbuild cml2-$CML2VERSION.tar.gz else echo $BKSOURCEDIR/cml2-$CML2VERSION.tar.gz is already here. fi ;; POSTOPENSOURCE) #The kernel source is opened, patches applied, and .config has been restored if [ ! -f "$CML2TESTFILE" ]; then #Open up source if [ -f "$CML2TAR" ]; then mkdir --parents $CML2SOURCEDIR cd $CML2SOURCEDIR ; cd .. case $CML2TAR in *.tar.gz) tar -xzvf $CML2TAR ;; *.tar.bz2) cat $CML2TAR | bunzip2 - | tar -xvf - ;; *.tar) tar -xvf $CML2TAR ;; *) echo Don\'t know how to open $CML2TAR \! ; bkbeep ; sleep 30 ;; esac if [ ! -f "$CML2TESTFILE" ]; then echo Still no $CML2TESTFILE after attempting to open \! ; bkbeep ; sleep 30 fi else echo CML2 source is not yet opened and we don\'t have $CML2TAR \! ; bkbeep ; sleep 30 fi fi if [ -f "$CML2TESTFILE" ]; then cd $CML2SOURCEDIR ./install-cml2 /usr/src/linux #Force cml2 to convert existing .config #FIXME - back up and restore config.out instead cd /usr/src/linux #Can't use make oldconfig here as it asks the user for response. #make oldconfig if [ ! -f config.out ]; then cat .config | sed -e 's/#.*//' | grep -v '^$' >config.out fi fi ;; POSTCONFIGURE) : ;; POSTKERNELBUILD) : ;; POSTMODULEBUILD) : ;; POSTINSTALL) : ;; POSTCLEAN) : ;; ''|ALL) . $THISSCRIPT POSTLOADVARS . $THISSCRIPT POSTGETSOURCE . $THISSCRIPT POSTOPENSOURCE . $THISSCRIPT POSTCONFIGURE . $THISSCRIPT POSTKERNELBUILD . $THISSCRIPT POSTMODULEBUILD . $THISSCRIPT POSTINSTALL . $THISSCRIPT POSTCLEAN ;; *) echo unrecognized phase $1 ;; esac