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

Annotation of openbsd/update_openbsd/release.sh, Revision 1.14

1.1       andrew      1: #!/bin/sh
1.14    ! andrew      2: # $RedRiver: release.sh,v 1.13 2007/11/19 22:08:37 andrew Exp $
1.1       andrew      3: #
1.14    ! andrew      4: # Copyright (c) 2002 - 2007 Steven Roberts <fenderq@fenderq.com>
1.1       andrew      5: #
1.14    ! andrew      6: # Permission to use, copy, modify, and distribute this software for any
        !             7: # purpose with or without fee is hereby granted, provided that the above
        !             8: # copyright notice and this permission notice appear in all copies.
        !             9: #
        !            10: # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            11: # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            12: # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            13: # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            14: # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            15: # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            16: # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            17: #
        !            18:
        !            19: #TAG="OPENBSD_4_2"
        !            20: KERNEL="GENERIC"
        !            21: ARCH="i386"
        !            22: DEST="/home/destdir"
        !            23: RELEASE="/home/releasedir"
        !            24: XSRCDIR="/usr/src/xenocara"
        !            25: PORTSPATH="/usr/ports"
1.1       andrew     26:
1.2       andrew     27: DEST="/usr/dest"
                     28: RELEASE="/usr/release"
1.14    ! andrew     29: TAG=${TAG:=`uname -sr | tr '[:lower:] .' '[:upper:]_'`}
        !            30: ARCH=`machine`
1.2       andrew     31: #SOURCES="src ports XF4"
1.6       andrew     32: #SOURCES="src ports"
1.14    ! andrew     33: SOURCES="/usr/src $XSRCDIR $PORTSPATH"
1.1       andrew     34:
                     35: # Anonymous CVS - http://www.openbsd.org/anoncvs.html
1.13      andrew     36: #CVSROOT="anoncvs@anoncvs3.usa.openbsd.org:/cvs"
                     37: #CVSROOT="anoncvs@anoncvs1.usa.openbsd.org:/cvs"
                     38: CVSROOT="anoncvs@rt.fm:/cvs"
1.1       andrew     39: export CVSROOT
                     40:
1.14    ! andrew     41:
        !            42: # See http://www.openbsd.org/anoncvs.html for instructions on fetching the
        !            43: # sources for the first time.
1.1       andrew     44:
                     45: update_sources() {
1.14    ! andrew     46: echo "---------- Update sources ----------"
        !            47: for d in $SOURCES; do
        !            48:        _cvstag=-r$CVSTAG
        !            49:        if [ X"$CVSTAG" == X"HEAD" ]; then
        !            50:                _cvstag=-A
        !            51:        fi
        !            52:        cd $d && cvs -q -z6 update $_cvstag -Pd
        !            53: done
1.1       andrew     54: }
                     55:
                     56: build_kernel() {
1.14    ! andrew     57: echo "---------- Build and install a new kernel ----------"
        !            58: cd /usr/src/sys/arch/$ARCH/conf
        !            59: config $KERNEL
        !            60: cd ../compile/$KERNEL
        !            61: make clean depend && make
        !            62: cp /bsd /bsd.old && cp bsd /
1.1       andrew     63: }
                     64:
                     65: build_system() {
1.14    ! andrew     66: echo "---------- Build a new system ----------"
        !            67: rm -rf /usr/obj/*
        !            68: cd /usr/src && nice make obj
        !            69: cd /usr/src/etc && export DESTDIR=/ && make distrib-dirs
        !            70: cd /usr/src && nice make build
        !            71: # Update /etc, /var, and /dev/MAKEDEV by hand.
        !            72: }
        !            73:
        !            74: make_system_release() {
        !            75: echo "---------- Make and validate the system release ----------"
        !            76: cd /usr/src/distrib/crunch && make obj depend && make all install
        !            77: export DESTDIR=$DEST; export RELEASEDIR=$RELEASE
        !            78: if (-e $DESTDIR); then
        !            79:        mkdir $DESTDIR/old-
        !            80:        mv $DESTDIR/* $DESTDIR/old- 2>/dev/null
        !            81:        rm -rf $DESTDIR/old- &
        !            82: fi
        !            83: mkdir -p $DESTDIR $RELEASEDIR
        !            84: cd /usr/src/etc && nice make release
        !            85: cd /usr/src/distrib/sets && sh checkflist
        !            86: unset DESTDIR RELEASEDIR
        !            87: }
        !            88:
        !            89: build_xenocara() {
        !            90: echo "---------- Build and install xenocara ----------"
        !            91: rm -rf /usr/xobj/*
        !            92: cd $XSRCDIR
        !            93: make bootstrap
        !            94: make obj
        !            95: make build
        !            96: }
        !            97:
        !            98: make_xenocara_release() {
        !            99: echo "---------- Make and validate the xenocara release ----------"
        !           100: export DESTDIR=$DEST RELEASEDIR=$RELEASE
        !           101: if (-e $DESTDIR); then
        !           102:        mkdir $DESTDIR/old-
        !           103:        mv $DESTDIR/* $DESTDIR/old- 2>/dev/null
        !           104:        rm -rf $DESTDIR/old- &
        !           105: fi
        !           106: mkdir -p $DESTDIR $RELEASEDIR
        !           107: cd $XSRCDIR
        !           108: nice make release
        !           109: unset DESTDIR RELEASEDIR
1.1       andrew    110: }
                    111:
                    112: usage() {
1.14    ! andrew    113: echo "  Usage: $0 <options>"
        !           114: echo
        !           115: echo "Options:"
        !           116: echo
        !           117: echo "  update           - Update sources"
        !           118: echo "  kernel           - Build and install a new kernel"
        !           119: echo "  system           - Build a new system"
        !           120: echo "  system-release   - Make and validate the system release"
        !           121: echo "  xenocara         - Build and install xenocara"
        !           122: echo "  xenocara-release - Make and validate the xenocara release"
        !           123: echo
1.1       andrew    124: }
                    125:
1.14    ! andrew    126: if [ $# = 0 ]; then usage; exit 1; fi
        !           127:
        !           128: if [ `whoami` != "root" ]; then
        !           129: echo "You must be root to create a release."
        !           130: exit 1
        !           131: fi
        !           132:
1.1       andrew    133: START=`date`
                    134: echo
1.14    ! andrew    135: echo ".: release.sh - building an OpenBSD release :."
        !           136: echo "----------------------------------------------"
1.1       andrew    137: echo
1.14    ! andrew    138: echo "    Tag: $TAG"
        !           139: echo " Kernel: $KERNEL-$ARCH"
        !           140: echo "   Dest: $DEST"
1.1       andrew    141: echo "Release: $RELEASE"
                    142: echo
                    143:
                    144: for i in $*
                    145: do
1.14    ! andrew    146: case $i in
        !           147: full-release)
        !           148: build_xenocara
        !           149: build_system
        !           150: make_xenocara_release
        !           151: make_system_release
        !           152: ;;
        !           153: case $i in
        !           154: update)
        !           155: update_sources
        !           156: ;;
        !           157: kernel)
        !           158: build_kernel
        !           159: ;;
        !           160: system)
        !           161: build_system
        !           162: ;;
        !           163: system-release)
        !           164: make_system_release
        !           165: ;;
        !           166: xenocara)
        !           167: build_xenocara
        !           168: ;;
        !           169: xenocara-release)
        !           170: make_xenocara_release
        !           171: ;;
        !           172: *)
        !           173: echo "---------- Abort! Abort! ----------"
        !           174: echo "Invalid option encountered: $i"
        !           175: echo "Exiting......."
        !           176: echo
        !           177: exit 1
        !           178: ;;
        !           179: esac
1.1       andrew    180: done
                    181: echo
1.14    ! andrew    182: echo " Start Time : $START"
1.1       andrew    183: echo "Finish Time : `date`"
                    184: echo

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