=================================================================== RCS file: /cvs/openbsd/update_openbsd/release.sh,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- openbsd/update_openbsd/release.sh 2015/11/27 22:36:12 1.37 +++ openbsd/update_openbsd/release.sh 2017/02/16 07:08:49 1.38 @@ -1,5 +1,5 @@ #!/bin/sh -# $AFresh1: release.sh,v 1.36 2014/11/27 21:17:46 andrew Exp $ +# $AFresh1: release.sh,v 1.37 2015/11/27 22:36:12 andrew Exp $ # # Copyright (c) 2002, 2008 Steven Roberts # @@ -20,11 +20,15 @@ TAG=`uname -sr | tr '[:lower:] .' '[:upper:]_'` KERNEL="GENERIC" ARCH=`machine` -DEST="/home/destdir" +DEST="/usr/dest" RELEASE="/home/releasedir" XSRCDIR="/usr/xenocara" PORTSPATH="/usr/ports" +BUILDUSER=build +if [ -e /etc/mk.conf ]; then + . /etc/mk.conf +fi if [ -e /etc/release.conf ]; then . /etc/release.conf fi @@ -34,17 +38,25 @@ TAG=$_origtag fi +if [ X"$DEST" = X"" ]; then + echo PLEASE SET \$DEST! >&2 + exit 1 +fi +if [ X"$RELEASE" = X"" ]; then + echo PLEASE SET \$RELEASE! >&2 + exit 1 +fi # See http://www.openbsd.org/anoncvs.html for instructions on fetching the # sources for the first time. empty_dir() { -[ X"" == X"$1" ] && exit +[ X"" = X"$1" ] && exit cd $1 || exit -local _old=`${SUDO} mktemp -d .old.XXXXXXX` -${SUDO} mv -f * .* $_old 2>/dev/null -${SUDO} rm -rf $_old +local _old=`mktemp -d .old.XXXXXXX` +mv -f * .* $_old 2>/dev/null +rm -rf $_old sync } @@ -66,16 +78,16 @@ echo "---------- Build and install a new kernel ----------" local _status=0 unset DESTDIR RELEASEDIR -cd /usr/src/sys/arch/$ARCH/conf -config $KERNEL -cd ../compile/$KERNEL -make clean depend && make + +cd /usr/src/sys/arch/$ARCH/compile/$KERNEL _status=$? -if [ $_status == 0 ]; then - make install + +if [ $_status -eq 0 ]; then + make obj && make config && make && make install _status=$? fi -if [ $_status != 0 ]; then + +if [ $_status -ne 0 ]; then echo Kernel Build Failed exit $_status fi @@ -85,67 +97,88 @@ echo "---------- Build a new system ----------" local _status=0 unset DESTDIR RELEASEDIR +local DESTDIR RELEASEDIR + +mkdir -p /usr/obj +chown $BUILDUSER:wheel /usr/obj +chmod 755 /usr/obj empty_dir /usr/obj & -cd /usr/src && nice make $BUILD_ARGS obj + +cd /usr/src _status=$? -if [ $_status == 0 ]; then - cd /usr/src/etc && env DESTDIR=/ $SUDO make distrib-dirs + +if [ $_status -eq 0 ]; then + nice make $BUILD_ARGS obj && nice make $BUILD_ARGS build _status=$? fi -if [ $_status == 0 ]; then - cd /usr/src && nice make SUDO="${SUDO}" $BUILD_ARGS build -fi -if [ $_status != 0 ]; then + +if [ $_status -ne 0 ]; then echo System Build Failed exit $_status -else - echo Update /etc, /var, and /dev/MAKEDEV, either by hand or using sysmerge\(8\). fi + +echo Update /etc, /var, and /dev/MAKEDEV, either by hand or using sysmerge\(8\). } make_system_release() { echo "---------- Make and validate the system release ----------" -if [ X"$DEST" == X"" ]; then - echo PLEASE SET \$DEST! >2& - exit 1 -fi local _status=0 local DESTDIR RELEASEDIR -[ -e $DEST ] && empty_dir $DEST -${SUDO} install -d -g wheel -m 775 $DEST $RELEASE +export DESTDIR=$DEST/base; export RELEASEDIR=$RELEASE +mkdir -p $DESTDIR $RELEASEDIR +empty_dir $DESTDIR & +chown -R $BUILDUSER:wheel $DESTDIR $RELEASEDIR +chmod -R 700 $DESTDIR $RELEASEDIR -export DESTDIR=$DEST RELEASEDIR=$RELEASE -cd /usr/src/etc && ${SUDO} nice make SUDO="" release -_status=$? -[ $_status == 0 ] && cd /usr/src/distrib/sets && ${SUDO} sh checkflist -_status=$? +if [ $_status -eq 0 ]; then + cd /usr/src/etc && nice make release + _status=$? +fi -[ $_status == 0 ] || echo System Release Failed -exit $_status +if [ $_status -eq 0 ]; then + cd /usr/src/distrib/sets && sh checkflist + _status=$? +fi + +unset DESTDIR RELEASEDIR +if [ $_status -ne 0 ]; then + echo System Release Failed + exit $_status +fi } build_xenocara() { echo "---------- Build and install xenocara ----------" local _status=0 +local DESTDIR RELEASEDIR unset DESTDIR RELEASEDIR + +mkdir -p /usr/xobj +chown $BUILDUSER:wheel /usr/xobj +chmod 755 /usr/xobj empty_dir /usr/xobj & + cd $XSRCDIR _status=$? -if [ $_status == 0 ]; then + +if [ $_status -eq 0 ]; then make $BUILD_ARGS bootstrap _status=$? fi -if [ $_status == 0 ]; then + +if [ $_status -eq 0 ]; then make $BUILD_ARGS obj _status=$? fi -if [ $_status == 0 ]; then + +if [ $_status -eq 0 ]; then make $BUILD_ARGS build _status=$? fi -if [ $_status != 0 ]; then + +if [ $_status -ne 0 ]; then echo Xenocara Build Failed exit $_status fi @@ -154,21 +187,21 @@ make_xenocara_release() { echo "---------- Make and validate the xenocara release ----------" local _status=0 -export DESTDIR=$DEST;export RELEASEDIR=$RELEASE -if [ X"$DESTDIR" == X"" ]; then - echo PLEASE SET \$DEST! >2& - exit -fi +local DESTDIR RELEASEDIR + +export DESTDIR=$DEST/xbase; export RELEASEDIR=$RELEASE mkdir -p $DESTDIR $RELEASEDIR empty_dir $DESTDIR & -cd $XSRCDIR -_status=$? -if [ $_status == 0 ]; then - nice make release +chown -R $BUILDUSER:wheel $DESTDIR $RELEASEDIR +chmod -R 755 $DESTDIR $RELEASEDIR + +if [ $_status -eq 0 ]; then + cd $XSRCDIR && nice make release _status=$? fi + unset DESTDIR RELEASEDIR -if [ $_status != 0 ]; then +if [ $_status -ne 0 ]; then echo Xenocara Release Failed exit $_status fi @@ -187,13 +220,11 @@ echo " xenocara-release - Make and validate the xenocara release" echo " full - xenocara, xenocara-release, system, system-release" echo +if [ `whoami` != "root" ]; then +echo "You must be root to build a release." +fi } -if [ X"" == X"${SUDO}" -a `whoami` != "root" ]; then -echo "You must be root or set SUDO to build a release." -exit 1 -fi - START=`date` echo echo ".: release.sh - building an OpenBSD release :." @@ -209,6 +240,11 @@ echo if [ $# = 0 ]; then usage; exit 1; fi + +if [ `whoami` != "root" ]; then +echo "You must be root to build a release." +exit 1 +fi for i in $* do