MFC r264027, r264028, r264029, r264030, r264046, r264073:

r264027:
  Add a new release build variable, WITH_COMPRESSED_IMAGES.

  When set to a non-empty value, the installation medium is
  compressed as part of the 'install' target in the release/
  directory.

r264028:
  Clean up trailing whitespace in release/Makefile.

r264029:
  Fix logic error.

r264030:
  If WITH_COMPRESSED_IMAGES is set, add the compressed images
  to the CLEANFILES list.

r264046:
  Use xz(1) instead of gzip(1) to compress release images
  when WITH_COMPRESSED_IMAGES is used.

r264073:
  Allow overriding xz(1) path.

Sponsored by:	The FreeBSD Foundation
This commit is contained in:
gjb 2014-04-08 00:53:31 +00:00
parent d32682111b
commit 6f50d7f091
4 changed files with 26 additions and 6 deletions

View File

@ -1,7 +1,7 @@
# $FreeBSD$ # $FreeBSD$
# #
# Makefile for building releases and release media. # Makefile for building releases and release media.
# #
# User-driven targets: # User-driven targets:
# cdrom: Builds release CD-ROM media (disc1.iso) # cdrom: Builds release CD-ROM media (disc1.iso)
# dvdrom: Builds release DVD-ROM media (dvd1.iso) # dvdrom: Builds release DVD-ROM media (dvd1.iso)
@ -13,7 +13,7 @@
# #
# Variables affecting the build process: # Variables affecting the build process:
# WORLDDIR: location of src tree -- must have built world and default kernel # WORLDDIR: location of src tree -- must have built world and default kernel
# (by default, the directory above this one) # (by default, the directory above this one)
# PORTSDIR: location of ports tree to distribute (default: /usr/ports) # PORTSDIR: location of ports tree to distribute (default: /usr/ports)
# DOCDIR: location of doc tree (default: /usr/doc) # DOCDIR: location of doc tree (default: /usr/doc)
# NOPKG: if set, do not distribute third-party packages # NOPKG: if set, do not distribute third-party packages
@ -21,13 +21,16 @@
# NOSRC: if set, do not distribute source tree # NOSRC: if set, do not distribute source tree
# NODOC: if set, do not generate release documentation # NODOC: if set, do not generate release documentation
# WITH_DVD: if set, generate dvd1.iso # WITH_DVD: if set, generate dvd1.iso
# TARGET/TARGET_ARCH: architecture of built release # WITH_COMPRESSED_IMAGES: if set, compress installation images with xz(1)
# (uncompressed images are not removed)
# TARGET/TARGET_ARCH: architecture of built release
# #
WORLDDIR?= ${.CURDIR}/.. WORLDDIR?= ${.CURDIR}/..
PORTSDIR?= /usr/ports PORTSDIR?= /usr/ports
DOCDIR?= /usr/doc DOCDIR?= /usr/doc
RELNOTES_LANG?= en_US.ISO8859-1 RELNOTES_LANG?= en_US.ISO8859-1
XZCMD?= /usr/bin/xz
.if !defined(TARGET) || empty(TARGET) .if !defined(TARGET) || empty(TARGET)
TARGET= ${MACHINE} TARGET= ${MACHINE}
@ -63,7 +66,7 @@ NODOC= true
NOPORTS= true NOPORTS= true
.endif .endif
EXTRA_PACKAGES= EXTRA_PACKAGES=
.if !defined(NOPORTS) .if !defined(NOPORTS)
EXTRA_PACKAGES+= ports.txz EXTRA_PACKAGES+= ports.txz
.endif .endif
@ -92,6 +95,11 @@ IMAGES+= mini-memstick.img
.endif .endif
CLEANFILES= packagesystem *.txz MANIFEST system ${IMAGES} CLEANFILES= packagesystem *.txz MANIFEST system ${IMAGES}
.if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
. for I in ${IMAGES}
CLEANFILES+= ${I}.xz
. endfor
.endif
CLEANDIRS= dist ftp release bootonly dvd CLEANDIRS= dist ftp release bootonly dvd
beforeclean: beforeclean:
chflags -R noschg . chflags -R noschg .
@ -251,6 +259,9 @@ install:
cp -a ftp ${DESTDIR}/ cp -a ftp ${DESTDIR}/
.for I in ${IMAGES} .for I in ${IMAGES}
cp -p ${I} ${DESTDIR}/${OSRELEASE}-${I} cp -p ${I} ${DESTDIR}/${OSRELEASE}-${I}
. if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES)
${XZCMD} -k ${DESTDIR}/${OSRELEASE}-${I}
. endif
.endfor .endfor
cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256 cd ${DESTDIR} && sha256 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.SHA256
cd ${DESTDIR} && md5 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.MD5 cd ${DESTDIR} && md5 ${OSRELEASE}* > ${DESTDIR}/CHECKSUM.MD5

View File

@ -46,6 +46,7 @@ PORTBRANCH="ports/head@rHEAD"
#NODOC= #NODOC=
#NOPORTS= #NOPORTS=
#WITH_DVD= #WITH_DVD=
#WITH_COMPRESSED_IMAGES=
## Set when building embedded images. ## Set when building embedded images.
#EMBEDDEDBUILD= #EMBEDDEDBUILD=

View File

@ -83,6 +83,7 @@ NOPORTS=
# Set to non-empty value to build dvd1.iso as part of the release. # Set to non-empty value to build dvd1.iso as part of the release.
WITH_DVD= WITH_DVD=
WITH_COMPRESSED_IMAGES=
usage() { usage() {
echo "Usage: $0 [-c release.conf]" echo "Usage: $0 [-c release.conf]"
@ -128,6 +129,7 @@ if [ -n "${EMBEDDEDBUILD}" ]; then
exit 1 exit 1
fi fi
WITH_DVD= WITH_DVD=
WITH_COMPRESSED_IMAGES=
NODOC=yes NODOC=yes
fi fi
@ -262,4 +264,4 @@ eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel
eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \
release release
eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \
install DESTDIR=/R install DESTDIR=/R WITH_COMPRESSED_IMAGES=${WITH_COMPRESSED_IMAGES}

View File

@ -24,7 +24,7 @@
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.\" .\"
.Dd March 5, 2014 .Dd April 2, 2014
.Dt RELEASE 7 .Dt RELEASE 7
.Os .Os
.Sh NAME .Sh NAME
@ -250,6 +250,12 @@ Setting this also sets
Set to a non-empty value to include the Set to a non-empty value to include the
.Cm dvdrom .Cm dvdrom
target. target.
.It Va WITH_COMPRESSED_IMAGES
Set to a non-empty value to compress the release images with
.Xr xz 1 .
The original
.Pq uncompressed
images are not removed.
.It Va VCSCMD .It Va VCSCMD
The command run to obtain the source trees. The command run to obtain the source trees.
Defaults to Defaults to