generate-release.sh revision 219508
138494Sobrien#!/bin/sh
2174297Sobrien
338494Sobrien# generate-release.sh: check out source trees, and build release components with
438494Sobrien#  totally clean, fresh trees
538494Sobrien#
638494Sobrien#  Usage: generate-release.sh svn-branch scratch-dir
738494Sobrien#
838494Sobrien# Environment variables:
938494Sobrien#  CVSUP_HOST: Host of a cvsup server to obtain the ports tree. Must be set
1038494Sobrien#   to include ports.
1138494Sobrien#  CVSUP_TAG:  CVS tag for ports (HEAD by default)
1238494Sobrien#  MAKE_FLAGS: optional flags to pass to make (e.g. -j)
1338494Sobrien# 
1438494Sobrien#  Note: Since this requires a chroot, release cross-builds will not work!
1538494Sobrien#
1638494Sobrien# $FreeBSD: head/release/generate-release.sh 219508 2011-03-11 16:58:21Z nwhitehorn $
1738494Sobrien#
1838494Sobrien
1938494Sobrienmkdir -p $2/usr/src
2038494Sobriensvn co svn://svn.freebsd.org/base/$1 $2/usr/src || exit 1
2138494Sobrienif [ ! -z $CVSUP_HOST ]; then
2238494Sobrien	cat > $2/ports-supfile << EOF
2338494Sobrien	*default host=$CVSUP_HOST
2438494Sobrien	*default base=/var/db
2538494Sobrien	*default prefix=/usr
2638494Sobrien	*default release=cvs tag=${CVSUP_TAG:-.}
2738494Sobrien	*default delete use-rel-suffix
2838494Sobrien	*default compress
2938494Sobrien	ports-all
3038494SobrienEOF
3138494Sobrienelse
3238494Sobrien	RELEASE_FLAGS=-DNOPORTS
3338494Sobrienfi
3438494Sobrien
3538494Sobriencd $2/usr/src
3638494Sobrienmake $MAKE_FLAGS buildworld || exit 1
3738494Sobrienmake installworld distribution DESTDIR=$2 || exit 1
3838494Sobrienmount -t devfs devfs $2/dev
39174297Sobrien
4051300Sobrienif [ ! -z $CVSUP_HOST ]; then 
4138494Sobrien	cp /etc/resolv.conf $2/etc/resolv.conf
4238494Sobrien	chroot $2 /usr/bin/csup /ports-supfile || exit 1
4338494Sobrienfi
4438494Sobrienchroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildkernel" || exit 1
4538494Sobrienmkdir $2/R
46174297Sobrienchroot $2 /bin/sh -c "cd /usr/src/release && MAKEOBJDIR=/R make -f Makefile.bsdinstall release $RELEASE_FLAGS" || exit 1
4739087Sobrien
4839087Sobrien