aboutsummaryrefslogtreecommitdiff
path: root/release/Makefile
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2005-03-02 22:46:07 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2005-03-02 22:46:07 +0000
commit92f6e2c87f4ee327e81cbe3b929c160db576a4da (patch)
treede1dc48c7948f9b6139496b33869c5634126d758 /release/Makefile
parentd61e43fe1ede38d6dbaeb6c97a790a3ab1c98582 (diff)
downloadsrc-92f6e2c87f4ee327e81cbe3b929c160db576a4da.tar.gz
src-92f6e2c87f4ee327e81cbe3b929c160db576a4da.zip
Rework how we layout the CD/DVD ISO images for releases. Note that this
is only the first stage and does not yet handle packages (which will move to their own disc(s)). - By default, include the live filesystem on disc1, so that disc1 is now both an install disc and a fixit disc. The images can still be split into two separate discs by specifying SEPARATE_LIVEFS=yes. - Remove /usr/ports from the live filesystem disc as the merged images do not fit on even i386 otherwise. Also, the merged image already contains a tarball of the entire ports tree, so /usr/ports was a duplicate anyway. - Stop building port READMES for the release sinc they are no longer used (/usr/ports in the live filesystem was the last remaining user). - Split cdrom.1 into three targets. cdrom.1 builds the live filesystem image. cdrom.2 builds the disc1 image. Note that if SEPARATE_LIVEFS is not specified these both write to the same area. cdrom.3 builds the bootonly image and the UFS miniroot. - The various distribution directories are now in a <buildname> subdirectory of disc1 rather than being in the root so that the merged image's root is not quite as cluttered. - The disc1 image is now called disc1.iso and we no longer build a miniinst.iso image. If CD_EXTRA_BITS is defined, then the iso.1 target will simply include those bits in the disc1 image that it builds. MFC after: 1 day Requested by: re (scottl, etc.)
Notes
Notes: svn path=/head/; revision=143066
Diffstat (limited to 'release/Makefile')
-rw-r--r--release/Makefile128
1 files changed, 60 insertions, 68 deletions
diff --git a/release/Makefile b/release/Makefile
index 012c3570f8de..45c10ed1db35 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -63,10 +63,8 @@ PORTSRELEASETAG?= ${AUXRELEASETAG}
# If you want to pass flags to the world build such as -j X, use
# WORLD_FLAGS. Similarly, you can specify make flags for kernel
# builds via KERNEL_FLAGS.
-# Similarly, you can specify make flags for make readmes via PORTREADMES_FLAGS.
#WORLD_FLAGS=-j4
#KERNEL_FLAGS=-j4
-#PORTREADMES_FLAGS=-j4
TARGET_ARCH?= ${MACHINE_ARCH}
.if ${TARGET_ARCH} == ${MACHINE_ARCH}
@@ -130,9 +128,9 @@ RELEASEPORTSMODULE= ${MINIMALDOCPORTS}
.endif
# Make changing names of disc1/disc2 CD's possible.
-DISC1_LABEL?= fbsd_miniinst
-DISC1_NAME?= miniinst
-DISC2_LABEL?= fbsd_livefs
+DISC1_LABEL?= FreeBSD_Install
+DISC1_NAME?= disc1
+DISC2_LABEL?= FreeBSD_LiveFS
DISC2_NAME?= disc2
# Helper variable
@@ -251,15 +249,13 @@ CD= ${_R}/cdrom
CD_BOOT= ${CD}/bootonly
.endif
CD_DISC1= ${CD}/disc1
+.if defined(SEPARATE_LIVEFS)
CD_DISC2= ${CD}/disc2
-_MK?= ${CHROOTDIR}/mk
-
-# Some architectures may not have space for the ports tree on disc2.
-# For these architectures there is no sense building the README.html
-# files no matter what.
-.if ${TARGET_ARCH} == "ia64"
-NOPORTREADMES= yes
+CD_LIVEFS= ${CD_DISC2}
+.else
+CD_LIVEFS= ${CD_DISC1}
.endif
+_MK?= ${CHROOTDIR}/mk
# Where the bootstrap ports (see DOCPORTS) get installed.
LOCALDIR= /usr/local/bin
@@ -287,7 +283,7 @@ EXTRAS+= floppies.3
.endif
EXTRAS+= ftp.1
.if !defined(NOCDROM)
-EXTRAS+= cdrom.1
+EXTRAS+= cdrom.1 cdrom.2 cdrom.3
.if defined(MAKE_ISOS)
EXTRAS+= iso.1
.endif
@@ -423,8 +419,7 @@ release rerelease:
.if !defined(NOPORTS)
cd ${CHROOTDIR}/usr/ports && ${CVSPREFIX} cvs -R ${CVSARGS} -q \
update ${CVSCMDARGS} -P -d
- rm -f ${CHROOTDIR}/tmp/.skip_ports_index \
- ${CHROOTDIR}/tmp/.skip_ports_readmes
+ rm -f ${CHROOTDIR}/tmp/.skip_ports_index
.endif
.if defined(DOMINIMALDOCPORTS) && ${DOMINIMALDOCPORTS} == "YES"
for i in ${MINIMALDOCPORTS}; do \
@@ -480,6 +475,7 @@ release rerelease:
NO_SENDMAIL \
RELEASETAG \
RELNOTES_LANG \
+ SEPARATE_LIVEFS \
TARGET \
TARGET_ARCH \
WORLD_FLAGS
@@ -519,13 +515,6 @@ release rerelease:
echo " touch /tmp/.skip_ports_index" >> ${_MK}
echo " echo \">>> make index finished on \`LC_ALL=C TZ=GMT date\`\"" >> ${_MK}
echo "fi" >> ${_MK}
- echo "if [ ! -f /tmp/.skip_ports_readmes ]; then" >> ${_MK}
- echo " echo \">>> make readmes started on \`LC_ALL=C TZ=GMT date\`\"" >> ${_MK}
- echo " cd /usr/ports" >> ${_MK}
- echo " make ${PORTREADMES_FLAGS} readmes" >> ${_MK}
- echo " touch /tmp/.skip_ports_readmes" >> ${_MK}
- echo " echo \">>> make readmes finished on \`LC_ALL=C TZ=GMT date\`\"" >> ${_MK}
- echo "fi" >> ${_MK}
echo "cd /usr/src/release" >> ${_MK}
echo "make obj" >> ${_MK}
echo "make \$${_RELTARGET}" >> ${_MK}
@@ -534,9 +523,6 @@ release rerelease:
.if defined(NOPORTS)
touch ${CHROOTDIR}/tmp/.skip_ports_index
.endif
-.if defined(NOPORTS) || defined(NOPORTREADMES)
- touch ${CHROOTDIR}/tmp/.skip_ports_readmes
-.endif
# Ensure md.ko is loaded if md(4) is not statically compiled into
# the kernel
-mdconfig 2>/dev/null
@@ -669,7 +655,7 @@ release.6:
@mkdir -p ${RD}/dists/ports
@echo rolling ports/ports tarball
@tar --exclude CVS --exclude 'ports/distfiles/*' \
- --exclude README.html -czf ${RD}/dists/ports/ports.tgz -C /usr ports
+ -czf ${RD}/dists/ports/ports.tgz -C /usr ports
@cp ${.CURDIR}/scripts/ports-install.sh ${RD}/dists/ports/install.sh
@(cd ${RD}/dists/ports; \
rm -f CHECKSUM.MD5; \
@@ -900,33 +886,47 @@ ftp.1:
@echo "CD_VERSION = ${BUILDNAME}" > ${FD}/cdrom.inf
touch ${.TARGET}
-#
-# --==## Setup a suitable cdrom-area ##==--
-#
+# Build a live filesystem cdrom image
cdrom.1:
- @echo "Setting up CDROM distribution area"
- @mkdir -p ${CD_BOOT} ${CD_DISC1} ${CD_DISC2}
- -@ln -s . ${CD_DISC1}/${BUILDNAME}
-.if defined(MAKE_FLOPPIES)
- @cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1}
-.endif
- @cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DISC1}
+ @echo "Building CDROM live filesystem image"
+ @mkdir -p ${CD_LIVEFS}
@for i in ${DISTRIBUTIONS} ; \
do \
if [ -d ${RD}/trees/$${i} ] ; then \
chflags -R noschg ${RD}/trees/$${i} || true ; \
( cd ${RD}/trees/$${i} && \
- find . -depth -print | cpio -dumpl ${CD_DISC2} ) ; \
+ find . -depth -print | cpio -dumpl ${CD_LIVEFS} ) ; \
fi \
done
- @rm -f ${CD_DISC2}/.profile
- @cp ${.CURDIR}/fixit.profile ${CD_DISC2}/.profile
- @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC1}/cdrom.inf
- @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf
-.if !defined(NOPORTS) && !defined(NOPORTREADMES)
- @tar --exclude CVS --exclude 'ports/distfiles/*' -czf - \
- -C /usr ports | (cd ${CD_DISC2}/usr; tar -xpBf -)
+ @rm -f ${CD_LIVEFS}/.profile
+ @cp ${.CURDIR}/fixit.profile ${CD_LIVEFS}/.profile
+.if ${TARGET} != "pc98"
+ @echo "Setting up CDROM boot area"
+ @rm -f ${CD_LIVEFS}/boot/loader.conf
+ @cp ${RD}/mfsroot/mfsroot.gz ${CD_LIVEFS}/boot/mfsroot.gz
+ @echo 'mfsroot_load="YES"' > ${CD_LIVEFS}/boot/loader.conf
+ @echo 'mfsroot_type="mfs_root"' >> ${CD_LIVEFS}/boot/loader.conf
+ @echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_LIVEFS}/boot/loader.conf
+.if exists(${RD}/trees/base/boot/device.hints)
+ # Break the link to device.hints so we can modify it
+ @rm -f ${CD_LIVEFS}/boot/device.hints
+ @cp ${RD}/trees/base/boot/device.hints ${CD_LIVEFS}/boot/device.hints
+.if ${TARGET} == "i386" || ${TARGET_ARCH} == "amd64"
+ @echo 'hint.atkbd.0.flags="0x1"' >> ${CD_LIVEFS}/boot/device.hints
+.endif
.endif
+.endif
+ @echo "CD_VERSION = ${BUILDNAME}" > ${CD_LIVEFS}/cdrom.inf
+ touch ${.TARGET}
+
+# Build disc1 cdrom image
+cdrom.2:
+ @echo "Building CDROM disc1 filesystem image"
+ @mkdir -p ${CD_DISC1}/${BUILDNAME}
+.if defined(MAKE_FLOPPIES)
+ @cd ${RD} && find floppies -print | cpio -dumpl ${CD_DISC1}
+.endif
+ @cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DISC1}/${BUILDNAME}
.if !defined(NODOC)
@for i in ${DIST_DOCS_ARCH_INDEP}; do \
cp ${RND}/${RELNOTES_LANG}/$$i/article.txt \
@@ -944,32 +944,28 @@ cdrom.1:
@mv ${CD_DISC1}/INSTALLATION.TXT ${CD_DISC1}/INSTALL.TXT
@mv ${CD_DISC1}/INSTALLATION.HTM ${CD_DISC1}/INSTALL.HTM
.endif
-.if ${TARGET} != "pc98"
- @echo "Setting up boot area"
- @rm -f ${CD_DISC2}/boot/loader.conf
- @cp ${RD}/mfsroot/mfsroot.gz ${CD_DISC2}/boot/mfsroot.gz
- @echo 'mfsroot_load="YES"' > ${CD_DISC2}/boot/loader.conf
- @echo 'mfsroot_type="mfs_root"' >> ${CD_DISC2}/boot/loader.conf
- @echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DISC2}/boot/loader.conf
-.if exists(${RD}/trees/base/boot/device.hints)
- # Break the link to device.hints so we can modify it
- @rm -f ${CD_DISC2}/boot/device.hints
- @cp ${RD}/trees/base/boot/device.hints ${CD_DISC2}/boot/device.hints
-.if ${TARGET} == "i386" || ${TARGET_ARCH} == "amd64"
- @echo 'hint.atkbd.0.flags="0x1"' >> ${CD_DISC2}/boot/device.hints
-.endif
+.if defined(SEPARATE_LIVEFS)
+ @cp -Rp ${CD_LIVEFS}/boot ${CD_DISC1}
+ @echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC1}/cdrom.inf
.endif
+ touch ${.TARGET}
+
+#
+# --==## Setup a suitable cdrom-area ##==--
+#
+cdrom.3:
.if defined(CD_BOOT)
- @cp -Rp ${CD_DISC2}/boot ${CD_BOOT}
+ @echo "Building bootonly CDROM filesystem image"
+ @mkdir -p ${CD_BOOT}
+ @cp -Rp ${CD_LIVEFS}/boot ${CD_BOOT}
.if defined(MINIROOT)
+ @echo "Building bootonly UFS filesystem image"
@mkdir -p ${FD}/miniroot
@sh -e ${DOFS_SH} ${FD}/miniroot/miniroot.ufs \
${RD} ${MNT} 0 ${CD_BOOT} 8192 auto
@gzip -9v ${FD}/miniroot/miniroot.ufs
.endif
.endif
- @cp -Rp ${CD_DISC2}/boot ${CD_DISC1}
-.endif
touch ${.TARGET}
iso.1:
@@ -982,16 +978,12 @@ iso.1:
.endif
@sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
${DISC1_LABEL} \
- ${CD}/${BUILDNAME}-${TARGET}-${DISC1_NAME}.iso ${CD_DISC1}
+ ${CD}/${BUILDNAME}-${TARGET}-${DISC1_NAME}.iso ${CD_DISC1} \
+ ${CD_EXTRA_BITS}
+.if defined(SEPARATE_LIVEFS)
@sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
${DISC2_LABEL} \
${CD}/${BUILDNAME}-${TARGET}-${DISC2_NAME}.iso ${CD_DISC2}
-.if defined(CD_EXTRA_BITS)
- @sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
- fbsd_boot \
- ${CD}/${BUILDNAME}-${TARGET}-disc1.iso ${CD_DISC1} \
- ${CD_EXTRA_BITS} \
- && false
.endif
@(cd ${CD} && md5 *.iso > ${BUILDNAME}-${TARGET}-iso.CHECKSUM.MD5)
touch ${.TARGET}