generate-release.sh revision 219788
1184610Salfred#!/bin/sh 2184610Salfred 3184610Salfred# generate-release.sh: check out source trees, and build release components with 4184610Salfred# totally clean, fresh trees. 5184610Salfred# 6184610Salfred# Usage: generate-release.sh svn-branch scratch-dir 7184610Salfred# 8184610Salfred# Environment variables: 9184610Salfred# CVSUP_HOST: Host of a cvsup server to obtain the ports and documentation 10184610Salfred# trees. This or CVSROOT must be set to include ports and documentation. 11184610Salfred# CVSROOT: CVS root to obtain the ports and documentation trees. This or 12184610Salfred# CVSUP_HOST must be set to include ports and documentation. 13184610Salfred# CVS_TAG: CVS tag for ports and documentation (HEAD by default) 14184610Salfred# SVNROOT: SVN URL to FreeBSD source repository (by default, 15184610Salfred# svn://svn.freebsd.org/base) 16184610Salfred# MAKE_FLAGS: optional flags to pass to make (e.g. -j) 17184610Salfred# 18184610Salfred# Note: Since this requires a chroot, release cross-builds will not work! 19184610Salfred# 20184610Salfred# $FreeBSD: head/release/generate-release.sh 219788 2011-03-19 23:06:17Z nwhitehorn $ 21184610Salfred# 22184610Salfred 23184610Salfredmkdir -p $2/usr/src 24184610Salfredsvn co ${SVNROOT:-svn://svn.freebsd.org/base}/$1 $2/usr/src || exit 1 25184610Salfredif [ ! -z $CVSUP_HOST ]; then 26184610Salfred cat > $2/docports-supfile << EOF 27190754Sthompsa *default host=$CVSUP_HOST 28184610Salfred *default base=/var/db 29194677Sthompsa *default prefix=/usr 30194677Sthompsa *default release=cvs tag=${CVS_TAG:-.} 31194677Sthompsa *default delete use-rel-suffix 32194677Sthompsa *default compress 33194677Sthompsa ports-all 34194677Sthompsa doc-all 35194677SthompsaEOF 36194677Sthompsaelif [ ! -z $CVSROOT ]; then 37194677Sthompsa cd $2/usr 38194677Sthompsa cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} ports || exit 1 39194677Sthompsa cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} doc || exit 1 40194677Sthompsafi 41194677Sthompsa 42194677Sthompsacd $2/usr/src 43194677Sthompsamake $MAKE_FLAGS buildworld || exit 1 44194677Sthompsamake installworld distribution DESTDIR=$2 || exit 1 45194677Sthompsamount -t devfs devfs $2/dev 46194677Sthompsa 47194677Sthompsaif [ ! -z $CVSUP_HOST ]; then 48188942Sthompsa cp /etc/resolv.conf $2/etc/resolv.conf 49194677Sthompsa 50194677Sthompsa # Checkout ports and doc trees 51188942Sthompsa chroot $2 /usr/bin/csup /docports-supfile || exit 1 52188942Sthompsafi 53184610Salfred 54194228Sthompsaif [ -d $2/usr/doc ]; then 55184610Salfred cp /etc/resolv.conf $2/etc/resolv.conf 56188942Sthompsa 57188942Sthompsa # Build ports to build the docs, then build the docs 58188942Sthompsa chroot $2 /bin/sh -c 'pkg_add -r docproj || (cd /usr/ports/textproc/docproj && make install clean BATCH=yes WITHOUT_X11=yes JADETEX=no WITHOUT_PYTHON=yes)' || exit 1 59188942Sthompsa chroot $2 /bin/sh -c "cd /usr/doc && make $MAKE_FLAGS 'FORMATS=html html-split txt' URLS_ABSOLUTE=YES" || exit 1 60188942Sthompsafi 61188942Sthompsa 62188942Sthompsachroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildkernel" || exit 1 63188942Sthompsachroot $2 /bin/sh -c "cd /usr/src/release && make obj release" || exit 1 64188942Sthompsamkdir $2/R 65184610Salfredcp -pRP $2/usr/obj/usr/src/release/release.iso $2/usr/obj/usr/src/release/memstick $2/usr/obj/usr/src/release/ftp $2/R 66188942Sthompsa 67188942Sthompsa