[BACK]Return to release.sh CVS log [TXT][DIR] Up to [local] / openbsd / update_openbsd

Diff for /openbsd/update_openbsd/release.sh between version 1.5 and 1.19

version 1.5, 2006/10/13 19:18:51 version 1.19, 2008/05/22 18:39:20
Line 1 
Line 1 
 #!/bin/sh  #!/bin/sh
 # $RedRiver: release.sh,v 1.4 2006/10/13 18:12:23 andrew Exp $  # $RedRiver: release.sh,v 1.18 2008/04/16 20:54:28 andrew Exp $
 # Copyright (c) 2002 - 2006, FenderQ  
 # All rights reserved.  
 #  #
 # Redistribution and use in source and binary forms, with or without  # Copyright (c) 2002, 2008 Steven Roberts <sroberts@fenderq.com>
 # modification, are permitted provided that the following conditions are met:  
 #  #
 #   * Redistributions of source code must retain the above copyright  # Permission to use, copy, modify, and distribute this software for any
 #     notice, this list of conditions and the following disclaimer.  # purpose with or without fee is hereby granted, provided that the above
 #   * Redistributions in binary form must reproduce the above copyright  # copyright notice and this permission notice appear in all copies.
 #     notice, this list of conditions and the following disclaimer in the  
 #     documentation and/or other materials provided with the distribution.  
 #   * Neither the name of FenderQ nor the names of its contributors  
 #     may be used to endorse or promote products derived from this software  
 #     without specific prior written permission.  
 #  #
 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  
 # POSSIBILITY OF SUCH DAMAGE.  
 #  #
 # --------------------------------------------  
 # OpenBSD - Release Building Shell Script v3.9  
 #  
 # FenderQ.com - Internet Security Solutions  
 # http://www.fenderq.com/  
 #  
 # SEE ALSO release(8)  
 #  
   
 DEST="/usr/dest"  TAG=${TAG:=`uname -sr | tr '[:lower:] .' '[:upper:]_'`}
 RELEASE="/usr/release"  KERNEL="GENERIC"
 CVSTAG=`uname -r | awk '{ sub("\\\.","_"); print "OPENBSD_" $0 }'`  ARCH=`machine`
 #SOURCES="src ports XF4"  DEST="/home/destdir"
 SOURCES="src ports"  RELEASE="/home/releasedir"
   XSRCDIR="/usr/src/xenocara"
   PORTSPATH="/usr/ports"
   
 # Anonymous CVS - http://www.openbsd.org/anoncvs.html  # Anonymous CVS - http://www.openbsd.org/anoncvs.html
 CVSROOT="anoncvs@anoncvs3.usa.openbsd.org:/cvs"  #CVSROOT="anoncvs@anoncvs3.usa.openbsd.org:/cvs"
   #CVSROOT="anoncvs@anoncvs1.usa.openbsd.org:/cvs"
   CVSROOT="anoncvs@rt.fm:/cvs"
 export CVSROOT  export CVSROOT
   
 install_sources() {  if [ -e ${HOME}/.releaserc ]; then
         echo "********** Install sources **********"          . ${HOME}/.releaserc
         cd /usr  fi
         for d in $SOURCES; do  
                 rm -rf $d/*  
                 cvs -q -z6 checkout -r$CVSTAG -P $d  
         done  
 }  
   
   # See http://www.openbsd.org/anoncvs.html for instructions on fetching the
   # sources for the first time.
   
 update_sources() {  update_sources() {
         echo "********** Update sources **********"  echo "---------- Update sources ----------"
         for d in $SOURCES; do  for d in /usr/src ${XSRCDIR} ${PORTSPATH}; do
                 cd /usr && cvs -q -z6 update -r$CVSTAG -Pd $d         _cvstag=-r$TAG
         done         if [ X"$TAG" == X"HEAD" ]; then
                  _cvstag=""
          fi
          echo "cd $d && cvs update $_cvstag -Pd"
          cd $d && cvs update $_cvstag -Pd
   done
 }  }
   
 build_kernel() {  build_kernel() {
         echo "********** Build and install a new kernel **********"  echo "---------- Build and install a new kernel ----------"
         cd /usr/src/sys/arch/i386/conf  cd /usr/src/sys/arch/$ARCH/conf
         config GENERIC  config $KERNEL
         cd ../compile/GENERIC  cd ../compile/$KERNEL
         make clean depend && make  make clean depend && make
         cp /bsd /bsd.old && cp bsd /  make install
 }  }
   
 build_system() {  build_system() {
         echo "********** Build a new system **********"  echo "---------- Build a new system ----------"
         rm -rf /usr/obj/*  rm -rf /usr/obj/*
         cd /usr/src && nice make obj  cd /usr/src && nice make obj
         cd /usr/src/etc && export DESTDIR=/ && make distrib-dirs  cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
         cd /usr/src && nice make build  cd /usr/src && nice make build
   # Update /etc, /var, and /dev/MAKEDEV by hand.
 }  }
   
 make_release() {  make_system_release() {
         echo "********** Make and validate the system release **********"  echo "---------- Make and validate the system release ----------"
         cd /usr/src/distrib/crunch && make obj depend all install  cd /usr/src/distrib/crunch && make obj depend && make all install
         export DESTDIR=$DEST RELEASEDIR=$RELEASE  export DESTDIR=$DEST; export RELEASEDIR=$RELEASE
         rm -rf $DESTDIR/*  rm -rf $DESTDIR
         mkdir -p $DESTDIR $RELEASEDIR  mkdir -p $DESTDIR $RELEASEDIR
         cd /usr/src/etc && nice make release  cd /usr/src/etc && nice make release
         cd /usr/src/distrib/sets && sh checkflist  cd /usr/src/distrib/sets && sh checkflist
         unset DESTDIR RELEASEDIR  unset DESTDIR RELEASEDIR
 }  }
   
 build_XF4() {  build_xenocara() {
         echo "********** Build and install XF4 **********"  echo "---------- Build and install xenocara ----------"
         rm -rf /usr/Xbuild  rm -rf /usr/xobj/*
         mkdir -p /usr/Xbuild  mkdir -p /usr/xobj
         cd /usr/ports/lang/tcl/8.4 && make install  cd $XSRCDIR
         cd /usr/ports/x11/tk/8.4 && make install  make bootstrap
         cd /usr/Xbuild && lndir /usr/XF4 && nice make build  make obj
   make build
 }  }
   
 make_release_XF4() {  make_xenocara_release() {
         echo "********** Make and validate the XF4 release **********"  echo "---------- Make and validate the xenocara release ----------"
         export DESTDIR=$DEST RELEASEDIR=$RELEASE  export DESTDIR=$DEST RELEASEDIR=$RELEASE
         rm -rf $DESTDIR  rm -rf $DESTDIR
         mkdir -p $DESTDIR $RELEASEDIR  mkdir -p $DESTDIR $RELEASEDIR
         nice make release  cd $XSRCDIR
         unset DESTDIR RELEASEDIR  nice make release
   unset DESTDIR RELEASEDIR
 }  }
   
 clean_everything() {  
         echo "********** Clean everything **********"  
         rm -rf /usr/obj/* $DEST /usr/Xbuild  
 }  
   
 usage() {  usage() {
         echo "Usage: $0 options"  echo "  Usage: $0 <options>"
         echo  echo
         echo "Options:"  echo "Options:"
         echo  echo
         echo "  install            - Install sources"  echo "  update           - Update sources"
         echo "  update             - Update sources"  echo "  kernel           - Build and install a new kernel"
         echo "  kernel             - Build and install a new kernel"  echo "  system           - Build a new system"
         echo "  system             - Build a new system"  echo "  system-release   - Make and validate the system release"
         echo "  release            - Make and validate the system release"  echo "  xenocara         - Build and install xenocara"
         echo "  xwindow            - Build and install XF4"  echo "  xenocara-release - Make and validate the xenocara release"
         echo "  xwindow-release    - Make and validate the XF4 release"  echo "  full-release     - Do system, xenocara, system-release, xenocara-release"
         echo "  clean              - Clean everything"  echo
         echo  
 }  }
   
 if [ `whoami` != "root" ]; then  if [ `whoami` != "root" ]; then
         echo "You probably should be root instead of `whoami` to run this safely."  echo "You must be root to build a release."
         exit 1  exit 1
 fi  fi
   
 START=`date`  START=`date`
 echo  echo
 echo "***** OpenBSD - Release Building *****"  echo ".: release.sh - building an OpenBSD release :."
   echo "----------------------------------------------"
 echo  echo
 echo "Dest: $DEST"  echo "    Tag: $TAG"
   echo " Kernel: $KERNEL-$ARCH"
   echo "   Dest: $DEST"
 echo "Release: $RELEASE"  echo "Release: $RELEASE"
 echo "CVS Server: $CVSROOT"  
 echo "CVS Revision Tag: $CVSTAG"  
 echo  echo
   
 if [ $# = 0 ]; then usage; exit 1; fi  if [ $# = 0 ]; then usage; exit 1; fi
   
 for i in $*  for i in $*
 do  do
         case $i in  case $i in
                 install)  full-release)
                 install_sources  build_xenocara
                 ;;  build_system
                 update)  make_xenocara_release
                 update_sources  make_system_release
                 ;;  ;;
                 kernel)  update)
                 build_kernel  update_sources
                 ;;  ;;
                 system)  kernel)
                 build_system  build_kernel
                 ;;  ;;
                 release)  system)
                 make_release  build_system
                 ;;  ;;
                 xwindow)  system-release)
                 build_XF4  make_system_release
                 ;;  ;;
                 xwindow-release)  xenocara)
                 make_release_XF4  build_xenocara
                 ;;  ;;
                 clean)  xenocara-release)
                 clean_everything  make_xenocara_release
                 ;;  ;;
                 *)  *)
                 echo "********** Abort! Abort! **********"  echo "---------- Abort! Abort! ----------"
                 echo "Invalid option encountered: $i"  echo "Invalid option encountered: $i"
                 echo "Exiting......."  echo "Exiting......."
                 echo  echo
                 exit 1  exit 1
                 ;;  ;;
         esac  esac
 done  done
 echo  echo
 echo "Start Time  : $START"  echo " Start Time : $START"
 echo "Finish Time : `date`"  echo "Finish Time : `date`"
 echo  echo

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.19

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>