| version 1.27, 2008/11/05 16:43:57 |
version 1.32, 2010/02/24 21:58:18 |
|
|
| #!/bin/sh |
#!/bin/sh |
| # $RedRiver: release.sh,v 1.26 2008/11/03 18:58:23 andrew Exp $ |
# $AFresh1: release.sh,v 1.31 2010/02/10 20:57:07 andrew Exp $ |
| # |
# |
| # Copyright (c) 2002, 2008 Steven Roberts <sroberts@fenderq.com> |
# Copyright (c) 2002, 2008 Steven Roberts <sroberts@fenderq.com> |
| # |
# |
|
|
| # See http://www.openbsd.org/anoncvs.html for instructions on fetching the |
# See http://www.openbsd.org/anoncvs.html for instructions on fetching the |
| # sources for the first time. |
# sources for the first time. |
| |
|
| |
empty_dir() { |
| |
[ 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 |
| |
|
| |
sync |
| |
} |
| |
|
| update_sources() { |
update_sources() { |
| echo "---------- Update sources ----------" |
echo "---------- Update sources ----------" |
| local _d |
local _d |
| for _d in /usr/src "${XSRCDIR}" "${PORTSPATH}"; do |
for _d in /usr/src "${XSRCDIR}" "${PORTSPATH}"; do |
| if [ -d $_d ]; then |
if [ -d $_d ]; then |
| echo [$_d] cvs update -r $TAG -Pd |
echo [$_d] cvs update -r$TAG -Pd |
| cd $_d && cvs update -r $TAG -Pd |
cd $_d && cvs update -r$TAG -Pd || exit 255 |
| fi |
fi |
| done |
done |
| } |
} |
| |
|
| build_kernel() { |
build_kernel() { |
| echo "---------- Build and install a new kernel ----------" |
echo "---------- Build and install a new kernel ----------" |
| |
local _status=0 |
| |
unset DESTDIR RELEASEDIR |
| cd /usr/src/sys/arch/$ARCH/conf |
cd /usr/src/sys/arch/$ARCH/conf |
| config $KERNEL |
config $KERNEL |
| cd ../compile/$KERNEL |
cd ../compile/$KERNEL |
| make clean depend && make |
make clean depend && make |
| make install |
_status=$? |
| |
if [ $_status == 0 ]; then |
| |
make install |
| |
_status=$? |
| |
fi |
| |
if [ $_status != 0 ]; then |
| |
echo Kernel Build Failed |
| |
exit $_status |
| |
fi |
| } |
} |
| |
|
| build_system() { |
build_system() { |
| echo "---------- Build a new system ----------" |
echo "---------- Build a new system ----------" |
| rm -rf /usr/obj/* |
local _status=0 |
| |
unset DESTDIR RELEASEDIR |
| |
empty_dir /usr/obj & |
| cd /usr/src && nice make obj |
cd /usr/src && nice make obj |
| cd /usr/src/etc && env DESTDIR=/ make distrib-dirs |
_status=$? |
| cd /usr/src && nice make build |
if [ $_status == 0 ]; then |
| echo Update /etc, /var, and /dev/MAKEDEV, either by hand or using sysmerge\(8\). |
cd /usr/src/etc && env DESTDIR=/ $SUDO make distrib-dirs |
| |
_status=$? |
| |
fi |
| |
if [ $_status == 0 ]; then |
| |
cd /usr/src && nice make SUDO="${SUDO}" build |
| |
fi |
| |
if [ $_status != 0 ]; then |
| |
echo System Build Failed |
| |
exit $_status |
| |
else |
| |
echo Update /etc, /var, and /dev/MAKEDEV, either by hand or using sysmerge\(8\). |
| |
fi |
| } |
} |
| |
|
| make_system_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 && make all install |
local _status=0 |
| export DESTDIR=$DEST; export RELEASEDIR=$RELEASE |
export DESTDIR=$DEST; export RELEASEDIR=$RELEASE |
| if [ X"$DESTDIR" == X"" ]; then |
if [ X"$DESTDIR" == X"" ]; then |
| echo PLEASE SET \$DEST! >2& |
echo PLEASE SET \$DEST! >2& |
| exit |
exit |
| fi |
fi |
| rm -rf $DESTDIR/* $DESTDIR/.* |
|
| mkdir -p $DESTDIR $RELEASEDIR |
mkdir -p $DESTDIR $RELEASEDIR |
| cd /usr/src/etc && nice make release |
empty_dir $DESTDIR & |
| cd /usr/src/distrib/sets && sh checkflist |
cd /usr/src/etc && ${SUDO} nice make release |
| |
_status=$? |
| |
if [ $_status == 0 ]; then |
| |
cd /usr/src/distrib/sets && ${SUDO} sh checkflist |
| |
_status=$? |
| |
fi |
| unset DESTDIR RELEASEDIR |
unset DESTDIR RELEASEDIR |
| |
if [ $_status != 0 ]; then |
| |
echo System Release Failed |
| |
exit $_status |
| |
fi |
| } |
} |
| |
|
| build_xenocara() { |
build_xenocara() { |
| echo "---------- Build and install xenocara ----------" |
echo "---------- Build and install xenocara ----------" |
| |
local _status=0 |
| |
unset DESTDIR RELEASEDIR |
| |
empty_dir /usr/xobj & |
| cd $XSRCDIR |
cd $XSRCDIR |
| make bootstrap |
_status=$? |
| make obj |
if [ $_status == 0 ]; then |
| make build |
make bootstrap |
| |
_status=$? |
| |
fi |
| |
if [ $_status == 0 ]; then |
| |
make obj |
| |
_status=$? |
| |
fi |
| |
if [ $_status == 0 ]; then |
| |
make build |
| |
_status=$? |
| |
fi |
| |
if [ $_status != 0 ]; then |
| |
echo Xenocara Build Failed |
| |
exit $_status |
| |
fi |
| } |
} |
| |
|
| make_xenocara_release() { |
make_xenocara_release() { |
| echo "---------- Make and validate the xenocara release ----------" |
echo "---------- Make and validate the xenocara release ----------" |
| export DESTDIR=$DEST RELEASEDIR=$RELEASE |
local _status=0 |
| |
export DESTDIR=$DEST;export RELEASEDIR=$RELEASE |
| if [ X"$DESTDIR" == X"" ]; then |
if [ X"$DESTDIR" == X"" ]; then |
| echo PLEASE SET \$DEST! >2& |
echo PLEASE SET \$DEST! >2& |
| exit |
exit |
| fi |
fi |
| rm -rf $DESTDIR/* $DESTDIR/.* |
|
| mkdir -p $DESTDIR $RELEASEDIR |
mkdir -p $DESTDIR $RELEASEDIR |
| |
empty_dir $DESTDIR & |
| cd $XSRCDIR |
cd $XSRCDIR |
| nice make release |
_status=$? |
| |
if [ $_status == 0 ]; then |
| |
nice make release |
| |
_status=$? |
| |
fi |
| unset DESTDIR RELEASEDIR |
unset DESTDIR RELEASEDIR |
| |
if [ $_status != 0 ]; then |
| |
echo Xenocara Release Failed |
| |
exit $_status |
| |
fi |
| } |
} |
| |
|
| usage() { |
usage() { |
|
|
| echo " system-release - Make and validate the system release" |
echo " system-release - Make and validate the system release" |
| echo " xenocara - Build and install xenocara" |
echo " xenocara - Build and install xenocara" |
| echo " xenocara-release - Make and validate the xenocara release" |
echo " xenocara-release - Make and validate the xenocara release" |
| echo " full-release - Do system, xenocara, system-release, xenocara-release" |
echo " full-release - xenocara, xenocara-release, system, system-release" |
| echo |
echo |
| } |
} |
| |
|
| if [ `whoami` != "root" ]; then |
if [ X"" == X"${SUDO}" -a `whoami` != "root" ]; then |
| echo "You must be root to build a release." |
echo "You must be root or set SUDO to build a release." |
| exit 1 |
exit 1 |
| fi |
fi |
| |
|
|
|
| make_xenocara_release |
make_xenocara_release |
| ;; |
;; |
| full-release) |
full-release) |
| build_system |
|
| build_xenocara |
build_xenocara |
| make_xenocara_release |
make_xenocara_release |
| |
build_system |
| make_system_release |
make_system_release |
| ;; |
;; |
| *) |
*) |