generate-release.sh revision 219508
12345Scsgr#!/bin/sh
22345Scsgr
32345Scsgr# generate-release.sh: check out source trees, and build release components with
42345Scsgr#  totally clean, fresh trees
52345Scsgr#
62345Scsgr#  Usage: generate-release.sh svn-branch scratch-dir
72345Scsgr#
82345Scsgr# Environment variables:
92345Scsgr#  CVSUP_HOST: Host of a cvsup server to obtain the ports tree. Must be set
102345Scsgr#   to include ports.
112345Scsgr#  CVSUP_TAG:  CVS tag for ports (HEAD by default)
122345Scsgr#  MAKE_FLAGS: optional flags to pass to make (e.g. -j)
132345Scsgr# 
142345Scsgr#  Note: Since this requires a chroot, release cross-builds will not work!
152345Scsgr#
162345Scsgr# $FreeBSD: head/release/generate-release.sh 219508 2011-03-11 16:58:21Z nwhitehorn $
172345Scsgr#
182345Scsgr
192345Scsgrmkdir -p $2/usr/src
202345Scsgrsvn co svn://svn.freebsd.org/base/$1 $2/usr/src || exit 1
212345Scsgrif [ ! -z $CVSUP_HOST ]; then
222345Scsgr	cat > $2/ports-supfile << EOF
232345Scsgr	*default host=$CVSUP_HOST
242345Scsgr	*default base=/var/db
252345Scsgr	*default prefix=/usr
262345Scsgr	*default release=cvs tag=${CVSUP_TAG:-.}
272345Scsgr	*default delete use-rel-suffix
282345Scsgr	*default compress
292345Scsgr	ports-all
302345ScsgrEOF
312345Scsgrelse
322345Scsgr	RELEASE_FLAGS=-DNOPORTS
332345Scsgrfi
3495619Smarkm
352345Scsgrcd $2/usr/src
3695619Smarkmmake $MAKE_FLAGS buildworld || exit 1
3795619Smarkmmake installworld distribution DESTDIR=$2 || exit 1
382345Scsgrmount -t devfs devfs $2/dev
392345Scsgr
4095619Smarkmif [ ! -z $CVSUP_HOST ]; then 
4178455Smikeh	cp /etc/resolv.conf $2/etc/resolv.conf
4278455Smikeh	chroot $2 /usr/bin/csup /ports-supfile || exit 1
4378455Smikehfi
4495619Smarkmchroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildkernel" || exit 1
4578455Smikehmkdir $2/R
4695619Smarkmchroot $2 /bin/sh -c "cd /usr/src/release && MAKEOBJDIR=/R make -f Makefile.bsdinstall release $RELEASE_FLAGS" || exit 1
4727976Scharnier
482345Scsgr