diff options
author | gjb <gjb@FreeBSD.org> | 2013-11-21 02:45:36 +0000 |
---|---|---|
committer | gjb <gjb@FreeBSD.org> | 2013-11-21 02:45:36 +0000 |
commit | a2ed0ef7f6d3effa506eee672d738f5ec99b5254 (patch) | |
tree | 070bb5de1784384e98befaf097fe1d73e4c93e3e | |
parent | f3237abb84118cd7a02056d37a0f085c420862fe (diff) | |
download | FreeBSD-src-a2ed0ef7f6d3effa506eee672d738f5ec99b5254.zip FreeBSD-src-a2ed0ef7f6d3effa506eee672d738f5ec99b5254.tar.gz |
MFC r258305, r258307, r258308, r258309, r258310, r258314, r258317,
r258319, r258320:
r258305:
Use the IMAGES variable to determine which image files to remove
as part of 'make -C /usr/src/release clean'.
r258307:
Add a script and configuration files to fetch pre-built packages
from pkg.FreeBSD.org for inclusion on release medium (dvd1.iso).
r258308:
Unconditionally copy the build host /etc/resolv.conf into
the chroot directory, since hostname resolution may be
needed in the case of building a dvd image (with packages)
and also setting 'NOPORTS=1'.
r258309:
Set the PKG_CACHEDIR directory to 'dvd/' instead of 'release/'
in preparation of adding a 'dvd1.iso' target.
r258310:
Add the 'dvd1.iso' target. This mimics the 'release.iso' target,
with the additional step of fetching packages for inclusion on the
dvd image.
The 'pkg-stage' target is used to run 'scripts/pkg-stage.sh' if
the '${TARGET}/pkg-stage.conf' configuration file exists (currently
only amd64 and i386).
Allow dvd1.iso to be skipped if NODVD=1.
r258314:
Fix how ABI is evaluated so it matches more than a dot-zero
case.
r258317:
Document the 'dvdrom' target.
r258319:
Remove WITHOUT_PROFILE=1 for the dvd1.iso medium.
r258320:
Simplify PKG_ABI for pkg-stage.sh.
Approved by: re (hrs)
Sponsored by: The FreeBSD Foundation
-rw-r--r-- | release/Makefile | 37 | ||||
-rwxr-xr-x | release/amd64/pkg-stage.conf | 36 | ||||
-rwxr-xr-x | release/i386/pkg-stage.conf | 36 | ||||
-rwxr-xr-x | release/release.sh | 2 | ||||
-rwxr-xr-x | release/scripts/pkg-stage.sh | 39 | ||||
-rw-r--r-- | share/man/man7/release.7 | 18 |
6 files changed, 163 insertions, 5 deletions
diff --git a/release/Makefile b/release/Makefile index 4921a0c..cf192e1 100644 --- a/release/Makefile +++ b/release/Makefile @@ -71,6 +71,10 @@ IMAGES= .if exists(${.CURDIR}/${TARGET}/mkisoimages.sh) RELEASE_TARGETS+= cdrom IMAGES+= disc1.iso bootonly.iso +. if(!defined(NODVD)) +RELEASE_TARGETS+= dvdrom +IMAGES+= dvd1.iso +. endif .endif .if exists(${.CURDIR}/${TARGET}/make-memstick.sh) RELEASE_TARGETS+= memstick.img @@ -160,10 +164,32 @@ bootonly: packagesystem echo hostid_enable=\"NO\" >> bootonly/etc/rc.conf cp ${.CURDIR}/rc.local bootonly/etc +dvd: +# Install system + mkdir -p ${.TARGET} + cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ + DESTDIR=${.OBJDIR}/${.TARGET} WITHOUT_RESCUE=1 WITHOUT_KERNEL_SYMBOLS=1 +# Copy distfiles + mkdir -p ${.TARGET}/usr/freebsd-dist + cp *.txz MANIFEST ${.TARGET}/usr/freebsd-dist +# Copy documentation, if generated +.if !defined(NODOC) + cp reldoc/* ${.TARGET} +.endif +# Set up installation environment + ln -fs /tmp/bsdinstall_etc/resolv.conf ${.TARGET}/etc/resolv.conf + echo sendmail_enable=\"NONE\" > ${.TARGET}/etc/rc.conf + echo hostid_enable=\"NO\" >> ${.TARGET}/etc/rc.conf + cp ${.CURDIR}/rc.local ${.TARGET}/etc + touch ${.TARGET} + release.iso: disc1.iso disc1.iso: system sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} release +dvd1.iso: dvd pkg-stage + sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} dvd + bootonly.iso: bootonly sh ${.CURDIR}/${TARGET}/mkisoimages.sh -b FreeBSD_Install ${.TARGET} bootonly @@ -175,7 +201,14 @@ packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES} sh ${.CURDIR}/scripts/make-manifest.sh *.txz > MANIFEST touch ${.TARGET} +pkg-stage: +.if(exists(${.CURDIR}/${TARGET}/pkg-stage.conf)) + sh ${.CURDIR}/scripts/pkg-stage.sh ${.CURDIR}/${TARGET}/pkg-stage.conf \ + ${REVISION} +.endif + cdrom: disc1.iso bootonly.iso +dvdrom: dvd1.iso ftp: packagesystem rm -rf ftp mkdir -p ftp @@ -191,8 +224,8 @@ clean: rm -f packagesystem rm -f *.txz MANIFEST rm -f system - rm -rf release bootonly - rm -f disc1.iso bootonly.iso memstick.img + rm -rf release bootonly dvd + rm -f ${IMAGES} install: .if defined(DESTDIR) && !empty(DESTDIR) diff --git a/release/amd64/pkg-stage.conf b/release/amd64/pkg-stage.conf new file mode 100755 index 0000000..4ea7dc4 --- /dev/null +++ b/release/amd64/pkg-stage.conf @@ -0,0 +1,36 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +export PKG_ABI="freebsd:${REVISION%.[0-9]*}:x86:64" +export ASSUME_ALWAYS_YES=1 +export __PKG_CONF="/etc/pkg/FreeBSD.conf" +export PACKAGESITE="http://pkg.FreeBSD.org/${PKG_ABI}/latest" +export MIRROR_TYPE="SRV" +export REPO_AUTOUPDATE="NO" +export PKG_DBDIR="/tmp/pkg" +export PKG_CACHEDIR="dvd/packages/${PKG_ABI}" +export PERMISSIVE="YES" +export PKGCMD="/usr/sbin/pkg -d -C ${__PKG_CONF}" + +DVD_PACKAGES="archivers/unzip +devel/subversion +devel/subversion-static +emulators/linux_base-f10 +misc/freebsd-doc-all +net/mpd5 +net/rsync +ports-mgmt/pkg +ports-mgmt/portaudit +ports-mgmt/portmaster +shells/bash +shells/zsh +security/sudo +sysutils/screen +www/firefox +www/links +x11-drivers/xf86-video-vmware +x11/gnome2 +x11/kde4 +x11/xorg" diff --git a/release/i386/pkg-stage.conf b/release/i386/pkg-stage.conf new file mode 100755 index 0000000..6d9e8ef --- /dev/null +++ b/release/i386/pkg-stage.conf @@ -0,0 +1,36 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +export PKG_ABI="freebsd:${REVISION%.[0-9]*}:x86:32" +export ASSUME_ALWAYS_YES=1 +export __PKG_CONF="/etc/pkg/FreeBSD.conf" +export PACKAGESITE="http://pkg.FreeBSD.org/${PKG_ABI}/latest" +export MIRROR_TYPE="SRV" +export REPO_AUTOUPDATE="NO" +export PKG_DBDIR="/tmp/pkg" +export PKG_CACHEDIR="dvd/packages/${PKG_ABI}" +export PERMISSIVE="YES" +export PKGCMD="/usr/sbin/pkg -d -C ${__PKG_CONF}" + +DVD_PACKAGES="archivers/unzip +devel/subversion +devel/subversion-static +emulators/linux_base-f10 +misc/freebsd-doc-all +net/mpd5 +net/rsync +ports-mgmt/pkg +ports-mgmt/portaudit +ports-mgmt/portmaster +shells/bash +shells/zsh +security/sudo +sysutils/screen +www/firefox +www/links +x11-drivers/xf86-video-vmware +x11/gnome2 +x11/kde4 +x11/xorg" diff --git a/release/release.sh b/release/release.sh index 07c42a1..2baeeb5 100755 --- a/release/release.sh +++ b/release/release.sh @@ -159,6 +159,7 @@ if [ "x${NOPORTS}" = "x" ]; then svn co ${SVNROOT}/${PORTBRANCH} ${CHROOTDIR}/usr/ports fi +cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf cd ${CHROOTDIR}/usr/src make ${CHROOT_WMAKEFLAGS} buildworld make ${CHROOT_IMAKEFLAGS} installworld DESTDIR=${CHROOTDIR} @@ -193,7 +194,6 @@ if [ -e ${SRC_CONF} ] && [ ! -c ${SRC_CONF} ]; then fi if [ -d ${CHROOTDIR}/usr/ports ]; then - cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf build_doc_ports ${CHROOTDIR} fi diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh new file mode 100755 index 0000000..348e153 --- /dev/null +++ b/release/scripts/pkg-stage.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +set -e + +usage() { + echo "$(basename ${0}) /path/to/pkg-stage.conf revision" + exit 1 +} + +if [ ! -e "${1}" ]; then + echo "Configuration file not specified." + echo + usage +fi + +if [ "$#" -lt 2 ]; then + usage +fi + +# Source config file for this architecture. +REVISION="${2}" +. "${1}" || exit 1 + +if [ ! -x /usr/local/sbin/pkg ]; then + /usr/sbin/pkg bootstrap +fi + +/bin/mkdir -p ${PKG_CACHEDIR} + +${PKGCMD} update -f +${PKGCMD} fetch -d ${DVD_PACKAGES} + +${PKGCMD} repo ${PKG_CACHEDIR} + +# Always exit '0', even if pkg(8) complains about conflicts. +exit 0 diff --git a/share/man/man7/release.7 b/share/man/man7/release.7 index b126cd7..9941b01 100644 --- a/share/man/man7/release.7 +++ b/share/man/man7/release.7 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 14, 2013 +.Dd November 18, 2013 .Dt RELEASE 7 .Os .Sh NAME @@ -230,6 +230,10 @@ When set, will prevent the .Fa doc.txz distribution package from being created. +.It Va NODVD +Set to a non-empty value to skip the +.Cm dvdrom +target. .It Va NOPORTS Set to a non-empty value to skip the .Li ports/ @@ -270,6 +274,15 @@ This target produces files called and .Pa bootonly.iso as its output. +.It Cm dvdrom +Builds installation DVD-ROM images. +This may require the +.Xr md 4 +(memory disk) device driver be present in the kernel +(either by being compiled in or available as a module). +This target produces the +.Pa dvd1.iso +file as its output. .It Cm memstick Builds an installation memory stick image named .Pa memstick.img . @@ -297,7 +310,8 @@ Builds a bootable installation system containing all the distribution files packaged by the .Cm packagesystem target, and suitable for imaging by the -.Cm cdrom +.Cm cdrom , +.Cm dvdrom and .Cm memstick targets. |