Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Nov 2013 02:45:36 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r258415 - in stable/10: release release/amd64 release/i386 release/scripts share/man/man7
Message-ID:  <201311210245.rAL2jasX084451@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Thu Nov 21 02:45:36 2013
New Revision: 258415
URL: http://svnweb.freebsd.org/changeset/base/258415

Log:
  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

Added:
  stable/10/release/amd64/pkg-stage.conf
     - copied, changed from r258307, head/release/amd64/pkg-stage.conf
  stable/10/release/i386/pkg-stage.conf
     - copied, changed from r258307, head/release/i386/pkg-stage.conf
  stable/10/release/scripts/pkg-stage.sh
     - copied unchanged from r258307, head/release/scripts/pkg-stage.sh
Modified:
  stable/10/release/Makefile
  stable/10/release/release.sh
  stable/10/share/man/man7/release.7
Directory Properties:
  stable/10/release/   (props changed)
  stable/10/share/man/man7/   (props changed)

Modified: stable/10/release/Makefile
==============================================================================
--- stable/10/release/Makefile	Thu Nov 21 02:45:07 2013	(r258414)
+++ stable/10/release/Makefile	Thu Nov 21 02:45:36 2013	(r258415)
@@ -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 ${EXT
 	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)

Copied and modified: stable/10/release/amd64/pkg-stage.conf (from r258307, head/release/amd64/pkg-stage.conf)
==============================================================================
--- head/release/amd64/pkg-stage.conf	Mon Nov 18 15:22:55 2013	(r258307, copy source)
+++ stable/10/release/amd64/pkg-stage.conf	Thu Nov 21 02:45:36 2013	(r258415)
@@ -3,14 +3,14 @@
 # $FreeBSD$
 #
 
-export PKG_ABI="freebsd:$(echo ${REVISION} | tr -d '.0'):x86:64"
+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="release/packages/${PKG_ABI}"
+export PKG_CACHEDIR="dvd/packages/${PKG_ABI}"
 export PERMISSIVE="YES"
 export PKGCMD="/usr/sbin/pkg -d -C ${__PKG_CONF}"
 

Copied and modified: stable/10/release/i386/pkg-stage.conf (from r258307, head/release/i386/pkg-stage.conf)
==============================================================================
--- head/release/i386/pkg-stage.conf	Mon Nov 18 15:22:55 2013	(r258307, copy source)
+++ stable/10/release/i386/pkg-stage.conf	Thu Nov 21 02:45:36 2013	(r258415)
@@ -3,14 +3,14 @@
 # $FreeBSD$
 #
 
-export PKG_ABI="freebsd:$(echo ${REVISION} | tr -d '.0'):x86:32"
+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="release/packages/${PKG_ABI}"
+export PKG_CACHEDIR="dvd/packages/${PKG_ABI}"
 export PERMISSIVE="YES"
 export PKGCMD="/usr/sbin/pkg -d -C ${__PKG_CONF}"
 

Modified: stable/10/release/release.sh
==============================================================================
--- stable/10/release/release.sh	Thu Nov 21 02:45:07 2013	(r258414)
+++ stable/10/release/release.sh	Thu Nov 21 02:45:36 2013	(r258415)
@@ -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_CO
 fi
 
 if [ -d ${CHROOTDIR}/usr/ports ]; then
-	cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf
 	build_doc_ports ${CHROOTDIR}
 fi
 

Copied: stable/10/release/scripts/pkg-stage.sh (from r258307, head/release/scripts/pkg-stage.sh)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/release/scripts/pkg-stage.sh	Thu Nov 21 02:45:36 2013	(r258415, copy of r258307, head/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

Modified: stable/10/share/man/man7/release.7
==============================================================================
--- stable/10/share/man/man7/release.7	Thu Nov 21 02:45:07 2013	(r258414)
+++ stable/10/share/man/man7/release.7	Thu Nov 21 02:45:36 2013	(r258415)
@@ -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 co
 packaged by the
 .Cm packagesystem
 target, and suitable for imaging by the
-.Cm cdrom
+.Cm cdrom ,
+.Cm dvdrom
 and
 .Cm memstick
 targets.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311210245.rAL2jasX084451>