Deleted Added
full compact
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