generate-release.sh (230128) | generate-release.sh (240586) |
---|---|
1#!/bin/sh 2 3# generate-release.sh: check out source trees, and build release components with 4# totally clean, fresh trees. 5# 6# Usage: generate-release.sh [-r revision] svn-branch scratch-dir 7# 8# Environment variables: --- 4 unchanged lines hidden (view full) --- 13# CVS_TAG: CVS tag for ports and documentation (HEAD by default) 14# SVNROOT: SVN URL to FreeBSD source repository (by default, 15# svn://svn.freebsd.org/base) 16# MAKE_FLAGS: optional flags to pass to make (e.g. -j) 17# RELSTRING: optional base name for media images (e.g. FreeBSD-9.0-RC2-amd64) 18# 19# Note: Since this requires a chroot, release cross-builds will not work! 20# | 1#!/bin/sh 2 3# generate-release.sh: check out source trees, and build release components with 4# totally clean, fresh trees. 5# 6# Usage: generate-release.sh [-r revision] svn-branch scratch-dir 7# 8# Environment variables: --- 4 unchanged lines hidden (view full) --- 13# CVS_TAG: CVS tag for ports and documentation (HEAD by default) 14# SVNROOT: SVN URL to FreeBSD source repository (by default, 15# svn://svn.freebsd.org/base) 16# MAKE_FLAGS: optional flags to pass to make (e.g. -j) 17# RELSTRING: optional base name for media images (e.g. FreeBSD-9.0-RC2-amd64) 18# 19# Note: Since this requires a chroot, release cross-builds will not work! 20# |
21# $FreeBSD: head/release/generate-release.sh 230128 2012-01-15 09:27:00Z glebius $ | 21# $FreeBSD: head/release/generate-release.sh 240586 2012-09-17 02:23:03Z gjb $ |
22# 23 24usage() 25{ | 22# 23 24usage() 25{ |
26 echo "Usage: $0 [-r revision] svn-branch scratch-dir" | 26 echo "Usage: $0 [-r revision] [-d docrevision] [-p portsrevision] svn-branch scratch-dir" |
27 exit 1 28} 29 30REVISION= | 27 exit 1 28} 29 30REVISION= |
31while getopts r: opt; do | 31DOCREVISION= 32PORTSREVISION= 33while getopts d:r:p: opt; do |
32 case $opt in | 34 case $opt in |
35 d) 36 DOCREVISION="-r $OPTARG" 37 ;; |
|
33 r) 34 REVISION="-r $OPTARG" 35 ;; | 38 r) 39 REVISION="-r $OPTARG" 40 ;; |
41 p) 42 PORTSREVISION="-r $OPTARG" 43 ;; |
|
36 \?) 37 usage 38 ;; 39 esac 40done 41shift $(($OPTIND - 1)) 42 43if [ $# -lt 2 ]; then --- 8 unchanged lines hidden (view full) --- 52 *) 53 MAKE_FLAGS="$MAKE_FLAGS -j "$(sysctl -n hw.ncpu) 54 ;; 55esac 56 57mkdir -p $2/usr/src 58 59svn co ${SVNROOT:-svn://svn.freebsd.org/base}/$1 $2/usr/src $REVISION | 44 \?) 45 usage 46 ;; 47 esac 48done 49shift $(($OPTIND - 1)) 50 51if [ $# -lt 2 ]; then --- 8 unchanged lines hidden (view full) --- 60 *) 61 MAKE_FLAGS="$MAKE_FLAGS -j "$(sysctl -n hw.ncpu) 62 ;; 63esac 64 65mkdir -p $2/usr/src 66 67svn co ${SVNROOT:-svn://svn.freebsd.org/base}/$1 $2/usr/src $REVISION |
60if [ ! -z $CVSUP_HOST ]; then 61 cat > $2/docports-supfile << EOF 62 *default host=$CVSUP_HOST 63 *default base=/var/db 64 *default prefix=/usr 65 *default release=cvs tag=${CVS_TAG:-.} 66 *default delete use-rel-suffix 67 *default compress 68 ports-all 69 doc-all 70EOF 71elif [ ! -z $CVSROOT ]; then 72 cd $2/usr 73 cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} ports 74 cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} doc 75fi | 68svn co ${SVNROOT:-svn://svn.freebsd.org/doc}/head $2/usr/doc $DOCREVISION 69svn co ${SVNROOT:-svn://svn.freebsd.org/ports}/head $2/usr/ports $PORTSREVISION |
76 77cd $2/usr/src 78make $MAKE_FLAGS buildworld 79make installworld distribution DESTDIR=$2 80mount -t devfs devfs $2/dev 81trap "umount $2/dev" EXIT # Clean up devfs mount on exit 82 | 70 71cd $2/usr/src 72make $MAKE_FLAGS buildworld 73make installworld distribution DESTDIR=$2 74mount -t devfs devfs $2/dev 75trap "umount $2/dev" EXIT # Clean up devfs mount on exit 76 |
83if [ ! -z $CVSUP_HOST ]; then 84 cp /etc/resolv.conf $2/etc/resolv.conf 85 86 # Checkout ports and doc trees 87 chroot $2 /usr/bin/csup /docports-supfile 88fi 89 | |
90if [ -d $2/usr/doc ]; then 91 cp /etc/resolv.conf $2/etc/resolv.conf 92 | 77if [ -d $2/usr/doc ]; then 78 cp /etc/resolv.conf $2/etc/resolv.conf 79 |
93 # Build ports to build release documentation 94 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)' | 80 # Install docproj to build release documentation 81 chroot $2 /bin/sh -c '(export ASSUME_ALWAYS_YES=1 && /usr/sbin/pkg install -y docproj) || (cd /usr/ports/textproc/docproj && make install clean BATCH=yes WITHOUT_X11=yes JADETEX=no WITHOUT_PYTHON=yes)' |
95fi 96 97chroot $2 make -C /usr/src $MAKE_FLAGS buildworld buildkernel 98chroot $2 make -C /usr/src/release release 99chroot $2 make -C /usr/src/release install DESTDIR=/R 100 101: ${RELSTRING=`chroot $2 uname -s`-`chroot $2 uname -r`-`chroot $2 uname -p`} 102 103cd $2/R 104for i in release.iso bootonly.iso memstick; do 105 mv $i $RELSTRING-$i 106done 107sha256 $RELSTRING-* > CHECKSUM.SHA256 108md5 $RELSTRING-* > CHECKSUM.MD5 109 | 82fi 83 84chroot $2 make -C /usr/src $MAKE_FLAGS buildworld buildkernel 85chroot $2 make -C /usr/src/release release 86chroot $2 make -C /usr/src/release install DESTDIR=/R 87 88: ${RELSTRING=`chroot $2 uname -s`-`chroot $2 uname -r`-`chroot $2 uname -p`} 89 90cd $2/R 91for i in release.iso bootonly.iso memstick; do 92 mv $i $RELSTRING-$i 93done 94sha256 $RELSTRING-* > CHECKSUM.SHA256 95md5 $RELSTRING-* > CHECKSUM.MD5 96 |