From: Franck B. <fra...@us...> - 2005-07-31 16:27:17
|
Update of /cvsroot/ipcop/ipcop In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2987 Modified Files: Tag: IPCOP_v1_4_0 make.sh Log Message: Make functions call instead of a flat script. Goal is to add easily things latter like compiling one stage, making copy of it, restoring it rapidly. Index: make.sh =================================================================== RCS file: /cvsroot/ipcop/ipcop/make.sh,v retrieving revision 1.129.2.111 retrieving revision 1.129.2.112 diff -C2 -d -r1.129.2.111 -r1.129.2.112 *** make.sh 31 Jul 2005 13:51:58 -0000 1.129.2.111 --- make.sh 31 Jul 2005 16:27:01 -0000 1.129.2.112 *************** *** 123,305 **** stdumount fi - exit 0 } ! # See what we're supposed to do ! case "$1" in ! build) ! ;; ! changelog) ! echo "Building doc/Changelog from CVS" ! # cv2cl script come from http://www.red-bean.com/cvs2cl/ ! if [ ! -s $BASEDIR/doc/CVS/Tag ]; then ! BRANCHOPTS="" ! else ! BRANCH=`cat $BASEDIR/doc/CVS/Tag` ! BRANCH=${BRANCH:1} ! BRANCHOPTS="--follow-only $BRANCH" ! fi ! ! $BASEDIR/tools/cvs2cl.pl --gmt --show-dead $BRANCHOPTS -f $BASEDIR/doc/ChangeLog ! rm -f $BASEDIR/doc/ChangeLog.bak ! echo ! echo "Commit the change now to update CVS" ! exit 0 ! ;; ! check) ! echo "Checking sources files availability on the web" ! if [ ! -d $DIR_CHK ]; then ! mkdir -p $DIR_CHK ! fi ! FINISHED=0 ! cd $BASEDIR/lfs ! for c in `seq $MAX_RETRIES`; do ! if (( FINISHED==1 )); then ! break ! fi ! FINISHED=1 ! cd $BASEDIR/lfs ! for i in *; do ! if [ -f "$i" -a "$i" != "Config" ]; then ! make -s -f $i MACHINE=$MACHINE LFS_BASEDIR=$BASEDIR ROOT=$BASEDIR/build \ ! MESSAGE="$i\t ($c/$MAX_RETRIES)" check ! if [ $? -ne 0 ]; then ! echo "Check : wget error in lfs/$i" ! FINISHED=0 ! fi ! fi ! done ! done ! cd - ! exit 0 ! ;; ! checkclean) ! echo "Erasing sources files availability tags" ! rm -rf $DIR_CHK/* ! exit 0 ! ;; ! clean) ! for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do ! $LOSETUP -d $i 2>/dev/null ! done ! for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do ! umount $i ! done ! stdumount ! for i in `seq 0 7`; do ! if ( losetup /dev/loop${i} 2>/dev/null | grep -q "/install/images" ); then ! umount /dev/loop${i} 2>/dev/null; ! losetup -d /dev/loop${i} 2>/dev/null; ! fi; ! done ! rm -rf $BASEDIR/build ! rm -rf $BASEDIR/cdrom ! rm -rf $BASEDIR/log ! rm -f $BASEDIR/updates/$VERSION/patch.tar.gz; ! if [ -h /tools ]; then ! rm -f /tools ! fi ! exit 0 ! ;; ! dist) ! echo "Building source package from CVS, list of changed files, MD5 of release files" ! if [ ! -s $BASEDIR/doc/CVS/Tag ]; then ! BRANCH="" ! BRANCHOPTS="-D `date +'%Y-%m-%d'`" ! else ! BRANCH=`cat $BASEDIR/doc/CVS/Tag` ! BRANCH=${BRANCH:1} ! BRANCHOPTS="-r $BRANCH" ! fi ! rm -rf $BASEDIR/build/tmp/$SNAME-$VERSION $BASEDIR/doc/release.txt ! cd $BASEDIR/build/tmp ! # build sources tgz ! echo "Export tree $BRANCH $SNAME-$VERSION" ! cvs -z3 -d `cat $BASEDIR/CVS/Root` export $BRANCHOPTS ipcop ! if [ $? -eq 0 ]; then ! mv ipcop $SNAME-$VERSION ! tar cfz $BASEDIR/sources-$SNAME-$VERSION.tgz $SNAME-$VERSION ! cd $BASEDIR ! md5sum update-$VERSION.tgz $SNAME-$VERSION.iso fcdsl-$VERSION.tgz sources-$SNAME-$VERSION.tgz \ ! > $BASEDIR/doc/release.txt ! if [ ! -d $BASEDIR/build/tmp/$PREVIOUSTAG ]; then ! # export previous version to be compared with actual, this help to check wich files need to go in update ! cd $BASEDIR/build/tmp ! echo "Export tree $PREVIOUSTAG" ! cvs -z3 -d `cat $BASEDIR/CVS/Root` export -r $PREVIOUSTAG ipcop ! mv ipcop $PREVIOUSTAG ! fi ! if [ -d $BASEDIR/build/tmp/$PREVIOUSTAG -o -d $BASEDIR/build/tmp/$SNAME-$VERSION ]; then ! cd $BASEDIR/build/tmp ! echo "diff $PREVIOUSTAG <> $BRANCH $SNAME-$VERSION >doc/updated-sources.txt" ! diff -rq $PREVIOUSTAG $SNAME-$VERSION > $BASEDIR/doc/updated-sources.txt ! mv $BASEDIR/doc/updated-sources.txt $BASEDIR/doc/updated-sources.bak ! sed -e "s+Files $PREVIOUSTAG\/++" \ ! -e "s+ and .*$++" \ ! -e "s+src/rc.d+etc/rc.d+" \ ! -e "s+^langs/+var/ipcop/langs/+" \ ! -e "s+html/cgi-bin+home/httpd/cgi-bin+" $BASEDIR/doc/updated-sources.bak \ ! > $BASEDIR/doc/updated-sources.txt ! rm -f $BASEDIR/doc/updated-sources.bak ! fi ! fi ! exit 0 ! ;; ! prefetch) ! if [ ! -d $BASEDIR/cache ]; then ! mkdir $BASEDIR/cache ! fi ! mkdir -p $BASEDIR/log ! echo "`date -u '+%b %e %T'`:Preload all source files" | tee -a $LOGFILE ! FINISHED=0 ! cd $BASEDIR/lfs ! for c in `seq $MAX_RETRIES`; do ! if (( FINISHED==1 )); then ! break ! fi ! FINISHED=1 ! cd $BASEDIR/lfs ! for i in *; do ! if [ -f "$i" -a "$i" != "Config" ]; then ! make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1 ! if [ $? -ne 0 ]; then ! echo "Prefetch : wget error in lfs/$i" ! FINISHED=0 ! else ! if [ $c -eq 1 ]; then ! echo "Prefetch : lfs/$i files loaded" ! fi ! fi ! fi ! done ! done ! echo "Prefetch : verifying md5sum" ! ERROR=0 ! for i in *; do ! if [ -f "$i" -a "$i" != "Config" ]; then ! make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1 ! if [ $? -ne 0 ]; then ! echo "md5 difference in lfs/$i" ! ERROR=1 ! fi ! fi ! done ! if [ $ERROR -eq 0 ]; then ! echo "Prefetch : all files md5sum match" fi ! cd - ! exit 0 ! ;; ! shell) ! # enter a shell inside LFS chroot ! # may be used to changed kernel settings ! ;; ! *) ! echo "Usage: $0 {build|changelog|check|checkclean|clean|dist|prefetch|shell}" ! exit 1 ! ;; ! esac ############################################################################ --- 123,243 ---- stdumount fi } ! prepareenv() { ! ############################################################################ ! # # ! # Are we running the right shell? # ! # # ! ############################################################################ ! if [ ! "$BASH" ]; then ! exiterror "BASH environment variable is not set. You're probably running the wrong shell." ! fi ! if [ -z "${BASH_VERSION}" ]; then ! exiterror "Not running BASH shell." ! fi ! ! ############################################################################ ! # # ! # Trap on emergency exit # ! # # ! ############################################################################ ! trap "exiterror 'Build process interrupted'" SIGINT SIGTERM SIGKILL SIGSTOP SIGQUIT ! ! ! ############################################################################ ! # # ! # Resetting our nice level # ! # # ! ############################################################################ ! mkdir $BASEDIR/log/ 2>/dev/null ! ! echo "`date -u '+%b %e %T'`: Resetting our nice level to $NICE" | tee -a $LOGFILE ! renice $NICE $$ > /dev/null ! if [ `nice` != "$NICE" ]; then ! exiterror "Failed to set correct nice level" ! fi ! ! ############################################################################ ! # # ! # Checking if running as root user # ! # # ! ############################################################################ ! echo "`date -u '+%b %e %T'`: Checking if we're running as root user" | tee -a $LOGFILE ! if [ `id -u` != 0 ]; then ! exiterror "Not building as root" ! fi ! ! ! ############################################################################ ! # # ! # Checking for necessary temporary space # ! # # ! ############################################################################ ! echo "`date -u '+%b %e %T'`: Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE ! BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'` ! BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'` ! if (( 2202000 > $BASE_ASPACE )); then ! BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'` ! if (( 2202000 - $BASE_USPACE > $BASE_ASPACE )); then ! exiterror "Not enough temporary space available, need at least 2.1GB on $BASE_DEV" fi ! fi ! ! ############################################################################ ! # # ! # Building Linux From Scratch system # ! # # ! ############################################################################ ! echo "`date -u '+%b %e %T'`: Building Linux From Scratch system" | tee -a $LOGFILE ! ! # Set umask ! umask 022 ! ! # Set LFS Directory ! LFS=$BASEDIR/build ! ! # Check /tools symlink ! if [ -h /tools ]; then ! rm -f /tools ! fi ! if [ ! -a /tools ]; then ! ln -s $BASEDIR/build/tools / ! fi ! if [ ! -h /tools ]; then ! exiterror "Could not create /tools symbolic link." ! fi ! ! # Setup environment ! set +h ! LC_ALL=POSIX ! export LFS LC_ALL CFLAGS CXXFLAGS ! unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD ! ! # Make some extra directories ! mkdir -p $BASEDIR/build/{tools,etc,usr/src} 2>/dev/null ! mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null ! mkdir -p $BASEDIR/build/dev/pts $BASEDIR/build/proc $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache} ! ! # Make all sources and proc available under lfs build ! mount --bind /dev/pts $BASEDIR/build/dev/pts ! mount --bind /proc $BASEDIR/build/proc ! mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache ! mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache ! mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config ! mount --bind $BASEDIR/doc $BASEDIR/build/usr/src/doc ! mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html ! mount --bind $BASEDIR/langs $BASEDIR/build/usr/src/langs ! mount --bind $BASEDIR/lfs $BASEDIR/build/usr/src/lfs ! mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log ! mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src ! ! # Run LFS static binary creation scripts one by one ! export CCACHE_DIR=$BASEDIR/ccache ! export CCACHE_HASHDIR=1 ! } ! ############################################################################ *************** *** 423,641 **** } ! ############################################################################ ! # # ! # Are we running the right shell? # ! # # ! ############################################################################ ! if [ ! "$BASH" ]; then ! exiterror "BASH environment variable is not set. You're probably running the wrong shell." ! fi ! ! if [ -z "${BASH_VERSION}" ]; then ! exiterror "Not running BASH shell." ! fi ! ! ! ############################################################################ ! # # ! # Trap on emergency exit # ! # # ! ############################################################################ ! trap "exiterror 'Build process interrupted'" SIGINT SIGTERM SIGKILL SIGSTOP SIGQUIT ! ! ! ############################################################################ ! # # ! # Resetting our nice level # ! # # ! ############################################################################ ! mkdir $BASEDIR/log/ 2>/dev/null ! ! echo "`date -u '+%b %e %T'`: Resetting our nice level to $NICE" | tee -a $LOGFILE ! renice $NICE $$ > /dev/null ! if [ `nice` != "$NICE" ]; then ! exiterror "Failed to set correct nice level" ! fi ! ! ############################################################################ ! # # ! # Checking if running as root user # ! # # ! ############################################################################ ! echo "`date -u '+%b %e %T'`: Checking if we're running as root user" | tee -a $LOGFILE ! if [ `id -u` != 0 ]; then ! exiterror "Not building as root" ! fi ! umask 022 ! ! ! ############################################################################ ! # # ! # Checking for necessary temporary space # ! # # ! ############################################################################ ! echo "`date -u '+%b %e %T'`: Checking for necessary space on disk $BASE_DEV" | tee -a $LOGFILE ! BASE_DEV=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $1 }'` ! BASE_ASPACE=`df -P -k $BASEDIR | tail -n 1 | awk '{ print $4 }'` ! if (( 2202000 > $BASE_ASPACE )); then ! BASE_USPACE=`du -skx $BASEDIR | awk '{print $1}'` ! if (( 2202000 - $BASE_USPACE > $BASE_ASPACE )); then ! exiterror "Not enough temporary space available, need at least 2.1GB on $BASE_DEV" ! fi ! fi ! ! ############################################################################ ! # # ! # Building Linux From Scratch system # ! # # ! ############################################################################ ! echo "`date -u '+%b %e %T'`: Building Linux From Scratch system" | tee -a $LOGFILE ! ! # Set umask ! umask 022 ! ! # Set LFS Directory ! LFS=$BASEDIR/build ! ! # Check /tools symlink ! if [ -h /tools ]; then ! rm -f /tools ! fi ! if [ ! -a /tools ]; then ! ln -s $BASEDIR/build/tools / ! fi ! if [ ! -h /tools ]; then ! exiterror "Could not create /tools symbolic link." ! fi ! ! # Setup environment ! set +h ! LC_ALL=POSIX ! export LFS LC_ALL CFLAGS CXXFLAGS ! unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD ! ! # Make some extra directories ! mkdir -p $BASEDIR/build/{tools,etc,usr/src} 2>/dev/null ! mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null ! mkdir -p $BASEDIR/build/dev/pts $BASEDIR/build/proc $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache} ! ! # Make all sources and proc available under lfs build ! mount --bind /dev/pts $BASEDIR/build/dev/pts ! mount --bind /proc $BASEDIR/build/proc ! mount --bind $BASEDIR/cache $BASEDIR/build/usr/src/cache ! mount --bind $BASEDIR/ccache $BASEDIR/build/usr/src/ccache ! mount --bind $BASEDIR/config $BASEDIR/build/usr/src/config ! mount --bind $BASEDIR/doc $BASEDIR/build/usr/src/doc ! mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html ! mount --bind $BASEDIR/langs $BASEDIR/build/usr/src/langs ! mount --bind $BASEDIR/lfs $BASEDIR/build/usr/src/lfs ! mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log ! mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src ! ! # Run LFS static binary creation scripts one by one ! ORG_PATH=$PATH ! export CCACHE_DIR=$BASEDIR/ccache ! export CCACHE_HASHDIR=1 ! export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH ! ! if [ "$1" == "shell" ]; then ! entershell ! # exit at the end ! fi ! ! # Build sed now, as we use some extensions ! lfsmake1 ccache ! lfsmake1 sed LFS_PASS=1 ! lfsmake1 m4 LFS_PASS=1 ! lfsmake1 bison LFS_PASS=1 ! lfsmake1 flex LFS_PASS=1 ! lfsmake1 binutils LFS_PASS=1 ! lfsmake1 gcc LFS_PASS=1 ! lfsmake1 linux ! lfsmake1 tcl ! lfsmake1 expect ! lfsmake1 glibc ! lfsmake1 dejagnu ! lfsmake1 gcc LFS_PASS=2 ! lfsmake1 binutils LFS_PASS=2 ! lfsmake1 gawk ! lfsmake1 coreutils ! lfsmake1 bzip2 ! lfsmake1 gzip ! lfsmake1 diffutils ! lfsmake1 findutils ! lfsmake1 make ! lfsmake1 grep ! lfsmake1 sed LFS_PASS=2 ! lfsmake1 m4 LFS_PASS=2 ! lfsmake1 bison LFS_PASS=2 ! lfsmake1 flex LFS_PASS=2 ! lfsmake1 gettext ! lfsmake1 ncurses ! lfsmake1 patch ! lfsmake1 tar ! lfsmake1 texinfo ! lfsmake1 bash ! lfsmake1 util-linux ! lfsmake1 perl ! export PATH=$ORG_PATH ! # Run LFS dynamic binary creation scripts one by one ! lfsmake2 stage2 ! lfsmake2 makedev ! lfsmake2 linux ! lfsmake2 man-pages ! lfsmake2 glibc ! lfsmake2 binutils ! lfsmake2 gcc ! lfsmake2 coreutils ! lfsmake2 zlib ! lfsmake2 mktemp ! lfsmake2 iana-etc ! lfsmake2 findutils ! lfsmake2 gawk ! lfsmake2 ncurses ! lfsmake2 vim ! lfsmake2 m4 ! lfsmake2 bison ! lfsmake2 less ! lfsmake2 groff ! lfsmake2 sed ! lfsmake2 flex ! lfsmake2 gettext ! lfsmake2 net-tools ! lfsmake2 inetutils ! lfsmake2 perl ! lfsmake2 texinfo ! lfsmake2 autoconf ! lfsmake2 automake ! lfsmake2 bash ! lfsmake2 file ! lfsmake2 libtool ! lfsmake2 bzip2 ! lfsmake2 diffutils ! lfsmake2 ed ! lfsmake2 kbd ! lfsmake2 e2fsprogs ! lfsmake2 grep ! if [ 'i386' = $MACHINE ]; then lfsmake2 grub ! elif [ 'alpha' = $MACHINE ]; then lfsmake2 aboot ! fi ! lfsmake2 gzip ! lfsmake2 man ! lfsmake2 make ! lfsmake2 modutils ! lfsmake2 patch ! lfsmake2 procinfo ! lfsmake2 procps ! lfsmake2 psmisc ! lfsmake2 shadow ! lfsmake2 sysklogd ! lfsmake2 sysvinit ! lfsmake2 tar ! lfsmake2 util-linux # Run IPCop make scripts one by one --- 361,465 ---- } ! buildstage1() { ! # Build sed now, as we use some extensions ! ORG_PATH=$PATH ! export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH ! lfsmake1 ccache ! lfsmake1 sed LFS_PASS=1 ! lfsmake1 m4 LFS_PASS=1 ! lfsmake1 bison LFS_PASS=1 ! lfsmake1 flex LFS_PASS=1 ! lfsmake1 binutils LFS_PASS=1 ! lfsmake1 gcc LFS_PASS=1 ! lfsmake1 linux ! lfsmake1 tcl ! lfsmake1 expect ! lfsmake1 glibc ! lfsmake1 dejagnu ! lfsmake1 gcc LFS_PASS=2 ! lfsmake1 binutils LFS_PASS=2 ! lfsmake1 gawk ! lfsmake1 coreutils ! lfsmake1 bzip2 ! lfsmake1 gzip ! lfsmake1 diffutils ! lfsmake1 findutils ! lfsmake1 make ! lfsmake1 grep ! lfsmake1 sed LFS_PASS=2 ! lfsmake1 m4 LFS_PASS=2 ! lfsmake1 bison LFS_PASS=2 ! lfsmake1 flex LFS_PASS=2 ! lfsmake1 gettext ! lfsmake1 ncurses ! lfsmake1 patch ! lfsmake1 tar ! lfsmake1 texinfo ! lfsmake1 bash ! lfsmake1 util-linux ! lfsmake1 perl ! export PATH=$ORG_PATH ! } ! buildstage2() { ! # Run LFS dynamic binary creation scripts one by one ! lfsmake2 stage2 ! lfsmake2 makedev ! lfsmake2 linux ! lfsmake2 man-pages ! lfsmake2 glibc ! lfsmake2 binutils ! lfsmake2 gcc ! lfsmake2 coreutils ! lfsmake2 zlib ! lfsmake2 mktemp ! lfsmake2 iana-etc ! lfsmake2 findutils ! lfsmake2 gawk ! lfsmake2 ncurses ! lfsmake2 vim ! lfsmake2 m4 ! lfsmake2 bison ! lfsmake2 less ! lfsmake2 groff ! lfsmake2 sed ! lfsmake2 flex ! lfsmake2 gettext ! lfsmake2 net-tools ! lfsmake2 inetutils ! lfsmake2 perl ! lfsmake2 texinfo ! lfsmake2 autoconf ! lfsmake2 automake ! lfsmake2 bash ! lfsmake2 file ! lfsmake2 libtool ! lfsmake2 bzip2 ! lfsmake2 diffutils ! lfsmake2 ed ! lfsmake2 kbd ! lfsmake2 e2fsprogs ! lfsmake2 grep ! if [ 'i386' = $MACHINE ]; then lfsmake2 grub ! elif [ 'alpha' = $MACHINE ]; then lfsmake2 aboot ! fi ! lfsmake2 gzip ! lfsmake2 man ! lfsmake2 make ! lfsmake2 modutils ! lfsmake2 patch ! lfsmake2 procinfo ! lfsmake2 procps ! lfsmake2 psmisc ! lfsmake2 shadow ! lfsmake2 sysklogd ! lfsmake2 sysvinit ! lfsmake2 tar ! lfsmake2 util-linux ! } + buildstage3() { # Run IPCop make scripts one by one *************** *** 772,775 **** --- 596,602 ---- ipcopmake libsafe ipcopmake 3c5x9setup + } + + buildstage4() { if [ 'i386' = $MACHINE ]; then ipcopmake syslinux *************** *** 795,799 **** --- 622,628 ---- installmake initrd installmake boot.img + } + buildstage5() { # Strip files echo "`date -u '+%b %e %T'`: Stripping files" | tee -a $LOGFILE *************** *** 824,828 **** # Create update for this version ! # Update can be spread on 10 smaller 'patch' is composed from the four files # ROOTFILES.alpha-1.4.7-x # ROOTFILES.i386-1.4.7-x --- 653,657 ---- # Create update for this version ! # Update can be spread on 10 smaller 'patch' composed from the four files # ROOTFILES.alpha-1.4.7-x # ROOTFILES.i386-1.4.7-x *************** *** 848,851 **** --- 677,681 ---- done rm -f $LFS/var/run/{need-depmod-$KVER,need-depmod-$KVER-smp} + # Generating list of packages used echo "`date -u '+%b %e %T'`: Generating packages list from logs" | tee -a $LOGFILE *************** *** 885,886 **** --- 715,896 ---- cd $PWD echo "You can enter './sign' to sign updates with gpg key 'IPCop development Group'" + } + + # See what we're supposed to do + case "$1" in + build) + prepareenv + buildstage1 + buildstage2 + buildstage3 + buildstage4 + buildstage5 + ;; + shell) + # enter a shell inside LFS chroot + # may be used to changed kernel settings + prepareenv + entershell + ;; + changelog) + echo "Building doc/Changelog from CVS" + # cv2cl script come from http://www.red-bean.com/cvs2cl/ + if [ ! -s $BASEDIR/doc/CVS/Tag ]; then + BRANCHOPTS="" + else + BRANCH=`cat $BASEDIR/doc/CVS/Tag` + BRANCH=${BRANCH:1} + BRANCHOPTS="--follow-only $BRANCH" + fi + + $BASEDIR/tools/cvs2cl.pl --gmt --show-dead $BRANCHOPTS -f $BASEDIR/doc/ChangeLog + rm -f $BASEDIR/doc/ChangeLog.bak + echo + echo "Commit the change now to update CVS" + ;; + check) + echo "Checking sources files availability on the web" + if [ ! -d $DIR_CHK ]; then + mkdir -p $DIR_CHK + fi + FINISHED=0 + cd $BASEDIR/lfs + for c in `seq $MAX_RETRIES`; do + if (( FINISHED==1 )); then + break + fi + FINISHED=1 + cd $BASEDIR/lfs + for i in *; do + if [ -f "$i" -a "$i" != "Config" ]; then + make -s -f $i MACHINE=$MACHINE LFS_BASEDIR=$BASEDIR ROOT=$BASEDIR/build \ + MESSAGE="$i\t ($c/$MAX_RETRIES)" check + if [ $? -ne 0 ]; then + echo "Check : wget error in lfs/$i" + FINISHED=0 + fi + fi + done + done + cd - + ;; + checkclean) + echo "Erasing sources files availability tags" + rm -rf $DIR_CHK/* + ;; + clean) + for i in `mount | grep $BASEDIR | sed 's/^.*loop=\(.*\))/\1/'`; do + $LOSETUP -d $i 2>/dev/null + done + for i in `mount | grep $BASEDIR | cut -d " " -f 1`; do + umount $i + done + stdumount + for i in `seq 0 7`; do + if ( losetup /dev/loop${i} 2>/dev/null | grep -q "/install/images" ); then + umount /dev/loop${i} 2>/dev/null; + losetup -d /dev/loop${i} 2>/dev/null; + fi; + done + rm -rf $BASEDIR/build + rm -rf $BASEDIR/cdrom + rm -rf $BASEDIR/log + rm -f $BASEDIR/updates/$VERSION/patch.tar.gz; + if [ -h /tools ]; then + rm -f /tools + fi + ;; + dist) + echo "Building source package from CVS, list of changed files, MD5 of release files" + if [ ! -s $BASEDIR/doc/CVS/Tag ]; then + BRANCH="" + BRANCHOPTS="-D `date +'%Y-%m-%d'`" + else + BRANCH=`cat $BASEDIR/doc/CVS/Tag` + BRANCH=${BRANCH:1} + BRANCHOPTS="-r $BRANCH" + fi + + rm -rf $BASEDIR/build/tmp/$SNAME-$VERSION $BASEDIR/doc/release.txt + cd $BASEDIR/build/tmp + # build sources tgz + echo "Export tree $BRANCH $SNAME-$VERSION" + cvs -z3 -d `cat $BASEDIR/CVS/Root` export $BRANCHOPTS ipcop + if [ $? -eq 0 ]; then + mv ipcop $SNAME-$VERSION + tar cfz $BASEDIR/sources-$SNAME-$VERSION.tgz $SNAME-$VERSION + cd $BASEDIR + md5sum update-$VERSION.tgz $SNAME-$VERSION.iso fcdsl-$VERSION.tgz sources-$SNAME-$VERSION.tgz \ + > $BASEDIR/doc/release.txt + + if [ ! -d $BASEDIR/build/tmp/$PREVIOUSTAG ]; then + # export previous version to be compared with actual, this help to check wich files need to go in update + cd $BASEDIR/build/tmp + echo "Export tree $PREVIOUSTAG" + cvs -z3 -d `cat $BASEDIR/CVS/Root` export -r $PREVIOUSTAG ipcop + mv ipcop $PREVIOUSTAG + fi + if [ -d $BASEDIR/build/tmp/$PREVIOUSTAG -o -d $BASEDIR/build/tmp/$SNAME-$VERSION ]; then + cd $BASEDIR/build/tmp + echo "diff $PREVIOUSTAG <> $BRANCH $SNAME-$VERSION >doc/updated-sources.txt" + diff -rq $PREVIOUSTAG $SNAME-$VERSION > $BASEDIR/doc/updated-sources.txt + mv $BASEDIR/doc/updated-sources.txt $BASEDIR/doc/updated-sources.bak + sed -e "s+Files $PREVIOUSTAG\/++" \ + -e "s+ and .*$++" \ + -e "s+src/rc.d+etc/rc.d+" \ + -e "s+^langs/+var/ipcop/langs/+" \ + -e "s+html/cgi-bin+home/httpd/cgi-bin+" $BASEDIR/doc/updated-sources.bak \ + > $BASEDIR/doc/updated-sources.txt + rm -f $BASEDIR/doc/updated-sources.bak + fi + fi + ;; + prefetch) + if [ ! -d $BASEDIR/cache ]; then + mkdir $BASEDIR/cache + fi + mkdir -p $BASEDIR/log + echo "`date -u '+%b %e %T'`:Preload all source files" | tee -a $LOGFILE + FINISHED=0 + cd $BASEDIR/lfs + for c in `seq $MAX_RETRIES`; do + if (( FINISHED==1 )); then + break + fi + FINISHED=1 + cd $BASEDIR/lfs + for i in *; do + if [ -f "$i" -a "$i" != "Config" ]; then + make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1 + if [ $? -ne 0 ]; then + echo "Prefetch : wget error in lfs/$i" + FINISHED=0 + else + if [ $c -eq 1 ]; then + echo "Prefetch : lfs/$i files loaded" + fi + fi + fi + done + done + echo "Prefetch : verifying md5sum" + ERROR=0 + for i in *; do + if [ -f "$i" -a "$i" != "Config" ]; then + make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1 + if [ $? -ne 0 ]; then + echo "md5 difference in lfs/$i" + ERROR=1 + fi + fi + done + if [ $ERROR -eq 0 ]; then + echo "Prefetch : all files md5sum match" + fi + cd - + ;; + *) + echo "Usage: $0 {build|changelog|check|checkclean|clean|dist|prefetch|shell}" + exit 1 + ;; + esac |